@bloomneo/uikit 1.5.0

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 (678) hide show
  1. package/CHANGELOG.md +222 -0
  2. package/LICENSE +21 -0
  3. package/README.md +513 -0
  4. package/bin/commands/build.js +232 -0
  5. package/bin/commands/bundle.js +587 -0
  6. package/bin/commands/create.js +768 -0
  7. package/bin/commands/deploy.js +533 -0
  8. package/bin/commands/generate.js +673 -0
  9. package/bin/commands/optimize.js +198 -0
  10. package/bin/commands/prerender.js +306 -0
  11. package/bin/commands/serve.js +216 -0
  12. package/bin/templates/fbca/README.md.template +130 -0
  13. package/bin/templates/fbca/docs/QUICKSTART_FBCA.md +368 -0
  14. package/bin/templates/fbca/docs/UIKIT_CLI_GUIDE.md +574 -0
  15. package/bin/templates/fbca/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
  16. package/bin/templates/fbca/docs/UIKIT_LLM_GUIDE.md +2055 -0
  17. package/bin/templates/fbca/docs/UIKIT_THEME_GUIDE.md +359 -0
  18. package/bin/templates/fbca/package.json.template +41 -0
  19. package/bin/templates/fbca/public/favicon.svg +10 -0
  20. package/bin/templates/fbca/public/hero_fbca.svg +1 -0
  21. package/bin/templates/fbca/src/utils/asset.ts +6 -0
  22. package/bin/templates/fbca/src/web/App.tsx.template +20 -0
  23. package/bin/templates/fbca/src/web/features/auth/pages/index.tsx.template +157 -0
  24. package/bin/templates/fbca/src/web/features/docs/pages/[...slug].tsx.template +83 -0
  25. package/bin/templates/fbca/src/web/features/gallery/hooks/useGallery.ts.template +74 -0
  26. package/bin/templates/fbca/src/web/features/gallery/pages/index.tsx.template +136 -0
  27. package/bin/templates/fbca/src/web/features/main/components/CTASection.tsx.template +43 -0
  28. package/bin/templates/fbca/src/web/features/main/pages/About.tsx.template +374 -0
  29. package/bin/templates/fbca/src/web/features/main/pages/index.tsx.template +214 -0
  30. package/bin/templates/fbca/src/web/index.html.template +15 -0
  31. package/bin/templates/fbca/src/web/lib/page-router.tsx.template +134 -0
  32. package/bin/templates/fbca/src/web/main.tsx.template +14 -0
  33. package/bin/templates/fbca/src/web/shared/components/Footer.tsx.template +57 -0
  34. package/bin/templates/fbca/src/web/shared/components/Header.tsx.template +91 -0
  35. package/bin/templates/fbca/src/web/shared/components/SEO.tsx.template +24 -0
  36. package/bin/templates/fbca/src/web/shared/components/index.ts.template +3 -0
  37. package/bin/templates/fbca/src/web/shared/hooks/useSEO.ts.template +85 -0
  38. package/bin/templates/fbca/src/web/shared/utils/asset.ts +6 -0
  39. package/bin/templates/fbca/src/web/styles/index.css.template +8 -0
  40. package/bin/templates/fbca/src/web/utils/asset.ts +6 -0
  41. package/bin/templates/fbca/tsconfig.json.template +32 -0
  42. package/bin/templates/fbca/tsconfig.node.json.template +10 -0
  43. package/bin/templates/fbca/vite.config.ts.template +38 -0
  44. package/bin/templates/generate/component/component.tsx.template +79 -0
  45. package/bin/templates/generate/component/index.ts.template +2 -0
  46. package/bin/templates/generate/component/types.ts.template +58 -0
  47. package/bin/templates/generate/feature/index.ts.template +14 -0
  48. package/bin/templates/generate/feature/list-page.tsx.template +34 -0
  49. package/bin/templates/generate/feature/main-component.tsx.template +37 -0
  50. package/bin/templates/generate/feature/main-page.tsx.template +30 -0
  51. package/bin/templates/generate/feature/types.ts.template +34 -0
  52. package/bin/templates/generate/hook/hook.ts.template +35 -0
  53. package/bin/templates/generate/index.css.template +10 -0
  54. package/bin/templates/generate/main.tsx.template +10 -0
  55. package/bin/templates/generate/page/index.ts.template +2 -0
  56. package/bin/templates/generate/page/page.tsx.template +86 -0
  57. package/bin/templates/generate/theme/README.md +31 -0
  58. package/bin/templates/generate/theme/theme.js.template +155 -0
  59. package/bin/templates/multi/README.md.template +120 -0
  60. package/bin/templates/multi/docs/QUICKSTART_MULTI.md +334 -0
  61. package/bin/templates/multi/docs/UIKIT_CLI_GUIDE.md +574 -0
  62. package/bin/templates/multi/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
  63. package/bin/templates/multi/docs/UIKIT_LLM_GUIDE.md +2055 -0
  64. package/bin/templates/multi/docs/UIKIT_THEME_GUIDE.md +359 -0
  65. package/bin/templates/multi/index.html.template +58 -0
  66. package/bin/templates/multi/package.json.template +35 -0
  67. package/bin/templates/multi/public/favicon.svg +10 -0
  68. package/bin/templates/multi/public/hero_multi.svg +1 -0
  69. package/bin/templates/multi/src/App.tsx.template +92 -0
  70. package/bin/templates/multi/src/components/Footer.tsx.template +58 -0
  71. package/bin/templates/multi/src/components/Header.tsx.template +103 -0
  72. package/bin/templates/multi/src/components/SEO.tsx.template +19 -0
  73. package/bin/templates/multi/src/components/index.ts.template +3 -0
  74. package/bin/templates/multi/src/hooks/useSEO.ts.template +38 -0
  75. package/bin/templates/multi/src/index.css.template +7 -0
  76. package/bin/templates/multi/src/main.tsx.template +14 -0
  77. package/bin/templates/multi/src/pages/About.tsx.template +276 -0
  78. package/bin/templates/multi/src/pages/Components.tsx.template +288 -0
  79. package/bin/templates/multi/src/pages/Contact.tsx.template +348 -0
  80. package/bin/templates/multi/src/pages/Dashboard.tsx.template +306 -0
  81. package/bin/templates/multi/src/pages/ErrorPage.tsx.template +37 -0
  82. package/bin/templates/multi/src/pages/Home.tsx.template +201 -0
  83. package/bin/templates/multi/src/pages/Login.tsx.template +148 -0
  84. package/bin/templates/multi/src/pages/Themes.tsx.template +207 -0
  85. package/bin/templates/multi/src/router.tsx.template +34 -0
  86. package/bin/templates/multi/src/utils/asset.ts +6 -0
  87. package/bin/templates/multi/tsconfig.json.template +30 -0
  88. package/bin/templates/multi/tsconfig.node.json +22 -0
  89. package/bin/templates/multi/vite.config.ts.template +36 -0
  90. package/bin/templates/single/README.md.template +131 -0
  91. package/bin/templates/single/docs/QUICKSTART_SINGLE.md +259 -0
  92. package/bin/templates/single/docs/UIKIT_CLI_GUIDE.md +574 -0
  93. package/bin/templates/single/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
  94. package/bin/templates/single/docs/UIKIT_LLM_GUIDE.md +2055 -0
  95. package/bin/templates/single/docs/UIKIT_THEME_GUIDE.md +359 -0
  96. package/bin/templates/single/index.html.template +37 -0
  97. package/bin/templates/single/package.json.template +34 -0
  98. package/bin/templates/single/public/favicon.svg +10 -0
  99. package/bin/templates/single/public/hero.svg +1 -0
  100. package/bin/templates/single/src/App.tsx.template +233 -0
  101. package/bin/templates/single/src/index.css.template +7 -0
  102. package/bin/templates/single/src/main.tsx.template +14 -0
  103. package/bin/templates/single/src/styles/fonts.css +99 -0
  104. package/bin/templates/single/src/utils/asset.ts +6 -0
  105. package/bin/templates/single/tsconfig.json +31 -0
  106. package/bin/templates/single/tsconfig.node.json +22 -0
  107. package/bin/templates/single/vite.config.ts.template +36 -0
  108. package/bin/templates/spa/README.md.template +105 -0
  109. package/bin/templates/spa/components/SEO.tsx.template +19 -0
  110. package/bin/templates/spa/docs/QUICKSTART_SPA.md +300 -0
  111. package/bin/templates/spa/docs/UIKIT_CLI_GUIDE.md +574 -0
  112. package/bin/templates/spa/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
  113. package/bin/templates/spa/docs/UIKIT_LLM_GUIDE.md +2055 -0
  114. package/bin/templates/spa/docs/UIKIT_THEME_GUIDE.md +359 -0
  115. package/bin/templates/spa/hooks/useSEO.ts.template +38 -0
  116. package/bin/templates/spa/index.html.template +58 -0
  117. package/bin/templates/spa/package.json.template +35 -0
  118. package/bin/templates/spa/public/favicon.svg +15 -0
  119. package/bin/templates/spa/public/hero_spa.svg +1 -0
  120. package/bin/templates/spa/src/App.tsx.template +659 -0
  121. package/bin/templates/spa/src/index.css.template +7 -0
  122. package/bin/templates/spa/src/main.tsx.template +14 -0
  123. package/bin/templates/spa/src/utils/asset.ts +6 -0
  124. package/bin/templates/spa/tsconfig.json.template +30 -0
  125. package/bin/templates/spa/tsconfig.node.json +22 -0
  126. package/bin/templates/spa/vite.config.ts.template +36 -0
  127. package/bin/uikit.js +133 -0
  128. package/cookbook/README.md +20 -0
  129. package/cookbook/crud-page.tsx +99 -0
  130. package/cookbook/dashboard.tsx +89 -0
  131. package/cookbook/delete-flow.tsx +59 -0
  132. package/cookbook/login.tsx +85 -0
  133. package/cookbook/settings.tsx +113 -0
  134. package/dist/Combination-C0DFrmJW.js +674 -0
  135. package/dist/Combination-C0DFrmJW.js.map +1 -0
  136. package/dist/accordion.js +284 -0
  137. package/dist/accordion.js.map +1 -0
  138. package/dist/admin.js +429 -0
  139. package/dist/admin.js.map +1 -0
  140. package/dist/alert.js +67 -0
  141. package/dist/alert.js.map +1 -0
  142. package/dist/auth.js +178 -0
  143. package/dist/auth.js.map +1 -0
  144. package/dist/avatar.js +249 -0
  145. package/dist/avatar.js.map +1 -0
  146. package/dist/badge.js +40 -0
  147. package/dist/badge.js.map +1 -0
  148. package/dist/blank.js +80 -0
  149. package/dist/blank.js.map +1 -0
  150. package/dist/breadcrumb.js +104 -0
  151. package/dist/breadcrumb.js.map +1 -0
  152. package/dist/button.js +50 -0
  153. package/dist/button.js.map +1 -0
  154. package/dist/calendar.js +2785 -0
  155. package/dist/calendar.js.map +1 -0
  156. package/dist/card.js +91 -0
  157. package/dist/card.js.map +1 -0
  158. package/dist/check-DXouwtzp.js +12 -0
  159. package/dist/check-DXouwtzp.js.map +1 -0
  160. package/dist/checkbox.js +268 -0
  161. package/dist/checkbox.js.map +1 -0
  162. package/dist/chevron-down-BORJtX8F.js +14 -0
  163. package/dist/chevron-down-BORJtX8F.js.map +1 -0
  164. package/dist/chevron-left-C1pkx4AF.js +14 -0
  165. package/dist/chevron-left-C1pkx4AF.js.map +1 -0
  166. package/dist/chevron-right-pz9eCjj-.js +14 -0
  167. package/dist/chevron-right-pz9eCjj-.js.map +1 -0
  168. package/dist/circle-DHOdTDQh.js +14 -0
  169. package/dist/circle-DHOdTDQh.js.map +1 -0
  170. package/dist/collapsible.js +35 -0
  171. package/dist/collapsible.js.map +1 -0
  172. package/dist/command.js +481 -0
  173. package/dist/command.js.map +1 -0
  174. package/dist/confirm-dialog.js +129 -0
  175. package/dist/confirm-dialog.js.map +1 -0
  176. package/dist/container.js +334 -0
  177. package/dist/container.js.map +1 -0
  178. package/dist/createLucideIcon-B45kRl5r.js +80 -0
  179. package/dist/createLucideIcon-B45kRl5r.js.map +1 -0
  180. package/dist/data-table.js +574 -0
  181. package/dist/data-table.js.map +1 -0
  182. package/dist/detail-page.js +454 -0
  183. package/dist/detail-page.js.map +1 -0
  184. package/dist/dialog.js +137 -0
  185. package/dist/dialog.js.map +1 -0
  186. package/dist/dropdown-menu.js +424 -0
  187. package/dist/dropdown-menu.js.map +1 -0
  188. package/dist/ellipsis-BhAoKPVk.js +16 -0
  189. package/dist/ellipsis-BhAoKPVk.js.map +1 -0
  190. package/dist/empty-state.js +54 -0
  191. package/dist/empty-state.js.map +1 -0
  192. package/dist/errors.js +36 -0
  193. package/dist/errors.js.map +1 -0
  194. package/dist/eye-DDKoW0KS.js +46 -0
  195. package/dist/eye-DDKoW0KS.js.map +1 -0
  196. package/dist/fonts/caveat-cyrillic-400-normal.woff +0 -0
  197. package/dist/fonts/caveat-cyrillic-400-normal.woff2 +0 -0
  198. package/dist/fonts/caveat-cyrillic-700-normal.woff +0 -0
  199. package/dist/fonts/caveat-cyrillic-700-normal.woff2 +0 -0
  200. package/dist/fonts/caveat-cyrillic-ext-400-normal.woff +0 -0
  201. package/dist/fonts/caveat-cyrillic-ext-400-normal.woff2 +0 -0
  202. package/dist/fonts/caveat-cyrillic-ext-700-normal.woff +0 -0
  203. package/dist/fonts/caveat-cyrillic-ext-700-normal.woff2 +0 -0
  204. package/dist/fonts/caveat-latin-400-normal.woff +0 -0
  205. package/dist/fonts/caveat-latin-400-normal.woff2 +0 -0
  206. package/dist/fonts/caveat-latin-700-normal.woff +0 -0
  207. package/dist/fonts/caveat-latin-700-normal.woff2 +0 -0
  208. package/dist/fonts/caveat-latin-ext-400-normal.woff +0 -0
  209. package/dist/fonts/caveat-latin-ext-400-normal.woff2 +0 -0
  210. package/dist/fonts/caveat-latin-ext-700-normal.woff +0 -0
  211. package/dist/fonts/caveat-latin-ext-700-normal.woff2 +0 -0
  212. package/dist/fonts/crimson-text-latin-400-normal.woff +0 -0
  213. package/dist/fonts/crimson-text-latin-400-normal.woff2 +0 -0
  214. package/dist/fonts/crimson-text-latin-600-normal.woff +0 -0
  215. package/dist/fonts/crimson-text-latin-600-normal.woff2 +0 -0
  216. package/dist/fonts/crimson-text-latin-700-normal.woff +0 -0
  217. package/dist/fonts/crimson-text-latin-700-normal.woff2 +0 -0
  218. package/dist/fonts/crimson-text-latin-ext-400-normal.woff +0 -0
  219. package/dist/fonts/crimson-text-latin-ext-400-normal.woff2 +0 -0
  220. package/dist/fonts/crimson-text-latin-ext-600-normal.woff +0 -0
  221. package/dist/fonts/crimson-text-latin-ext-600-normal.woff2 +0 -0
  222. package/dist/fonts/crimson-text-latin-ext-700-normal.woff +0 -0
  223. package/dist/fonts/crimson-text-latin-ext-700-normal.woff2 +0 -0
  224. package/dist/fonts/crimson-text-vietnamese-400-normal.woff +0 -0
  225. package/dist/fonts/crimson-text-vietnamese-400-normal.woff2 +0 -0
  226. package/dist/fonts/crimson-text-vietnamese-600-normal.woff +0 -0
  227. package/dist/fonts/crimson-text-vietnamese-600-normal.woff2 +0 -0
  228. package/dist/fonts/crimson-text-vietnamese-700-normal.woff +0 -0
  229. package/dist/fonts/crimson-text-vietnamese-700-normal.woff2 +0 -0
  230. package/dist/fonts/dm-serif-display-latin-400-normal.woff +0 -0
  231. package/dist/fonts/dm-serif-display-latin-400-normal.woff2 +0 -0
  232. package/dist/fonts/dm-serif-display-latin-ext-400-normal.woff +0 -0
  233. package/dist/fonts/dm-serif-display-latin-ext-400-normal.woff2 +0 -0
  234. package/dist/fonts/libre-baskerville-latin-400-normal.woff +0 -0
  235. package/dist/fonts/libre-baskerville-latin-400-normal.woff2 +0 -0
  236. package/dist/fonts/libre-baskerville-latin-700-normal.woff +0 -0
  237. package/dist/fonts/libre-baskerville-latin-700-normal.woff2 +0 -0
  238. package/dist/fonts/libre-baskerville-latin-ext-400-normal.woff +0 -0
  239. package/dist/fonts/libre-baskerville-latin-ext-400-normal.woff2 +0 -0
  240. package/dist/fonts/libre-baskerville-latin-ext-700-normal.woff +0 -0
  241. package/dist/fonts/libre-baskerville-latin-ext-700-normal.woff2 +0 -0
  242. package/dist/fonts/montserrat-cyrillic-400-normal.woff +0 -0
  243. package/dist/fonts/montserrat-cyrillic-400-normal.woff2 +0 -0
  244. package/dist/fonts/montserrat-cyrillic-500-normal.woff +0 -0
  245. package/dist/fonts/montserrat-cyrillic-500-normal.woff2 +0 -0
  246. package/dist/fonts/montserrat-cyrillic-600-normal.woff +0 -0
  247. package/dist/fonts/montserrat-cyrillic-600-normal.woff2 +0 -0
  248. package/dist/fonts/montserrat-cyrillic-ext-400-normal.woff +0 -0
  249. package/dist/fonts/montserrat-cyrillic-ext-400-normal.woff2 +0 -0
  250. package/dist/fonts/montserrat-cyrillic-ext-500-normal.woff +0 -0
  251. package/dist/fonts/montserrat-cyrillic-ext-500-normal.woff2 +0 -0
  252. package/dist/fonts/montserrat-cyrillic-ext-600-normal.woff +0 -0
  253. package/dist/fonts/montserrat-cyrillic-ext-600-normal.woff2 +0 -0
  254. package/dist/fonts/montserrat-latin-400-normal.woff +0 -0
  255. package/dist/fonts/montserrat-latin-400-normal.woff2 +0 -0
  256. package/dist/fonts/montserrat-latin-500-normal.woff +0 -0
  257. package/dist/fonts/montserrat-latin-500-normal.woff2 +0 -0
  258. package/dist/fonts/montserrat-latin-600-normal.woff +0 -0
  259. package/dist/fonts/montserrat-latin-600-normal.woff2 +0 -0
  260. package/dist/fonts/montserrat-latin-ext-400-normal.woff +0 -0
  261. package/dist/fonts/montserrat-latin-ext-400-normal.woff2 +0 -0
  262. package/dist/fonts/montserrat-latin-ext-500-normal.woff +0 -0
  263. package/dist/fonts/montserrat-latin-ext-500-normal.woff2 +0 -0
  264. package/dist/fonts/montserrat-latin-ext-600-normal.woff +0 -0
  265. package/dist/fonts/montserrat-latin-ext-600-normal.woff2 +0 -0
  266. package/dist/fonts/montserrat-vietnamese-400-normal.woff +0 -0
  267. package/dist/fonts/montserrat-vietnamese-400-normal.woff2 +0 -0
  268. package/dist/fonts/montserrat-vietnamese-500-normal.woff +0 -0
  269. package/dist/fonts/montserrat-vietnamese-500-normal.woff2 +0 -0
  270. package/dist/fonts/montserrat-vietnamese-600-normal.woff +0 -0
  271. package/dist/fonts/montserrat-vietnamese-600-normal.woff2 +0 -0
  272. package/dist/fonts/playfair-display-cyrillic-400-normal.woff +0 -0
  273. package/dist/fonts/playfair-display-cyrillic-400-normal.woff2 +0 -0
  274. package/dist/fonts/playfair-display-cyrillic-500-normal.woff +0 -0
  275. package/dist/fonts/playfair-display-cyrillic-500-normal.woff2 +0 -0
  276. package/dist/fonts/playfair-display-latin-400-normal.woff +0 -0
  277. package/dist/fonts/playfair-display-latin-400-normal.woff2 +0 -0
  278. package/dist/fonts/playfair-display-latin-500-normal.woff +0 -0
  279. package/dist/fonts/playfair-display-latin-500-normal.woff2 +0 -0
  280. package/dist/fonts/playfair-display-latin-ext-400-normal.woff +0 -0
  281. package/dist/fonts/playfair-display-latin-ext-400-normal.woff2 +0 -0
  282. package/dist/fonts/playfair-display-latin-ext-500-normal.woff +0 -0
  283. package/dist/fonts/playfair-display-latin-ext-500-normal.woff2 +0 -0
  284. package/dist/fonts/playfair-display-vietnamese-400-normal.woff +0 -0
  285. package/dist/fonts/playfair-display-vietnamese-400-normal.woff2 +0 -0
  286. package/dist/fonts/playfair-display-vietnamese-500-normal.woff +0 -0
  287. package/dist/fonts/playfair-display-vietnamese-500-normal.woff2 +0 -0
  288. package/dist/fonts/poppins-devanagari-400-normal.woff +0 -0
  289. package/dist/fonts/poppins-devanagari-400-normal.woff2 +0 -0
  290. package/dist/fonts/poppins-devanagari-500-normal.woff +0 -0
  291. package/dist/fonts/poppins-devanagari-500-normal.woff2 +0 -0
  292. package/dist/fonts/poppins-devanagari-600-normal.woff +0 -0
  293. package/dist/fonts/poppins-devanagari-600-normal.woff2 +0 -0
  294. package/dist/fonts/poppins-latin-400-normal.woff +0 -0
  295. package/dist/fonts/poppins-latin-400-normal.woff2 +0 -0
  296. package/dist/fonts/poppins-latin-500-normal.woff +0 -0
  297. package/dist/fonts/poppins-latin-500-normal.woff2 +0 -0
  298. package/dist/fonts/poppins-latin-600-normal.woff +0 -0
  299. package/dist/fonts/poppins-latin-600-normal.woff2 +0 -0
  300. package/dist/fonts/poppins-latin-ext-400-normal.woff +0 -0
  301. package/dist/fonts/poppins-latin-ext-400-normal.woff2 +0 -0
  302. package/dist/fonts/poppins-latin-ext-500-normal.woff +0 -0
  303. package/dist/fonts/poppins-latin-ext-500-normal.woff2 +0 -0
  304. package/dist/fonts/poppins-latin-ext-600-normal.woff +0 -0
  305. package/dist/fonts/poppins-latin-ext-600-normal.woff2 +0 -0
  306. package/dist/fonts/rubik-arabic-400-normal.woff +0 -0
  307. package/dist/fonts/rubik-arabic-400-normal.woff2 +0 -0
  308. package/dist/fonts/rubik-arabic-500-normal.woff +0 -0
  309. package/dist/fonts/rubik-arabic-500-normal.woff2 +0 -0
  310. package/dist/fonts/rubik-cyrillic-400-normal.woff +0 -0
  311. package/dist/fonts/rubik-cyrillic-400-normal.woff2 +0 -0
  312. package/dist/fonts/rubik-cyrillic-500-normal.woff +0 -0
  313. package/dist/fonts/rubik-cyrillic-500-normal.woff2 +0 -0
  314. package/dist/fonts/rubik-cyrillic-ext-400-normal.woff +0 -0
  315. package/dist/fonts/rubik-cyrillic-ext-400-normal.woff2 +0 -0
  316. package/dist/fonts/rubik-cyrillic-ext-500-normal.woff +0 -0
  317. package/dist/fonts/rubik-cyrillic-ext-500-normal.woff2 +0 -0
  318. package/dist/fonts/rubik-hebrew-400-normal.woff +0 -0
  319. package/dist/fonts/rubik-hebrew-400-normal.woff2 +0 -0
  320. package/dist/fonts/rubik-hebrew-500-normal.woff +0 -0
  321. package/dist/fonts/rubik-hebrew-500-normal.woff2 +0 -0
  322. package/dist/fonts/rubik-latin-400-normal.woff +0 -0
  323. package/dist/fonts/rubik-latin-400-normal.woff2 +0 -0
  324. package/dist/fonts/rubik-latin-500-normal.woff +0 -0
  325. package/dist/fonts/rubik-latin-500-normal.woff2 +0 -0
  326. package/dist/fonts/rubik-latin-ext-400-normal.woff +0 -0
  327. package/dist/fonts/rubik-latin-ext-400-normal.woff2 +0 -0
  328. package/dist/fonts/rubik-latin-ext-500-normal.woff +0 -0
  329. package/dist/fonts/rubik-latin-ext-500-normal.woff2 +0 -0
  330. package/dist/fonts/source-serif-pro-cyrillic-400-normal.woff +0 -0
  331. package/dist/fonts/source-serif-pro-cyrillic-400-normal.woff2 +0 -0
  332. package/dist/fonts/source-serif-pro-cyrillic-ext-400-normal.woff +0 -0
  333. package/dist/fonts/source-serif-pro-cyrillic-ext-400-normal.woff2 +0 -0
  334. package/dist/fonts/source-serif-pro-greek-400-normal.woff +0 -0
  335. package/dist/fonts/source-serif-pro-greek-400-normal.woff2 +0 -0
  336. package/dist/fonts/source-serif-pro-latin-400-normal.woff +0 -0
  337. package/dist/fonts/source-serif-pro-latin-400-normal.woff2 +0 -0
  338. package/dist/fonts/source-serif-pro-latin-ext-400-normal.woff +0 -0
  339. package/dist/fonts/source-serif-pro-latin-ext-400-normal.woff2 +0 -0
  340. package/dist/fonts/source-serif-pro-vietnamese-400-normal.woff +0 -0
  341. package/dist/fonts/source-serif-pro-vietnamese-400-normal.woff2 +0 -0
  342. package/dist/fonts/space-grotesk-latin-400-normal.woff +0 -0
  343. package/dist/fonts/space-grotesk-latin-400-normal.woff2 +0 -0
  344. package/dist/fonts/space-grotesk-latin-600-normal.woff +0 -0
  345. package/dist/fonts/space-grotesk-latin-600-normal.woff2 +0 -0
  346. package/dist/fonts/space-grotesk-latin-700-normal.woff +0 -0
  347. package/dist/fonts/space-grotesk-latin-700-normal.woff2 +0 -0
  348. package/dist/fonts/space-grotesk-latin-ext-400-normal.woff +0 -0
  349. package/dist/fonts/space-grotesk-latin-ext-400-normal.woff2 +0 -0
  350. package/dist/fonts/space-grotesk-latin-ext-600-normal.woff +0 -0
  351. package/dist/fonts/space-grotesk-latin-ext-600-normal.woff2 +0 -0
  352. package/dist/fonts/space-grotesk-latin-ext-700-normal.woff +0 -0
  353. package/dist/fonts/space-grotesk-latin-ext-700-normal.woff2 +0 -0
  354. package/dist/fonts/space-grotesk-vietnamese-400-normal.woff +0 -0
  355. package/dist/fonts/space-grotesk-vietnamese-400-normal.woff2 +0 -0
  356. package/dist/fonts/space-grotesk-vietnamese-600-normal.woff +0 -0
  357. package/dist/fonts/space-grotesk-vietnamese-600-normal.woff2 +0 -0
  358. package/dist/fonts/space-grotesk-vietnamese-700-normal.woff +0 -0
  359. package/dist/fonts/space-grotesk-vietnamese-700-normal.woff2 +0 -0
  360. package/dist/fonts/work-sans-latin-400-normal.woff +0 -0
  361. package/dist/fonts/work-sans-latin-400-normal.woff2 +0 -0
  362. package/dist/fonts/work-sans-latin-500-normal.woff +0 -0
  363. package/dist/fonts/work-sans-latin-500-normal.woff2 +0 -0
  364. package/dist/fonts/work-sans-latin-ext-400-normal.woff +0 -0
  365. package/dist/fonts/work-sans-latin-ext-400-normal.woff2 +0 -0
  366. package/dist/fonts/work-sans-latin-ext-500-normal.woff +0 -0
  367. package/dist/fonts/work-sans-latin-ext-500-normal.woff2 +0 -0
  368. package/dist/fonts/work-sans-vietnamese-400-normal.woff +0 -0
  369. package/dist/fonts/work-sans-vietnamese-400-normal.woff2 +0 -0
  370. package/dist/fonts/work-sans-vietnamese-500-normal.woff +0 -0
  371. package/dist/fonts/work-sans-vietnamese-500-normal.woff2 +0 -0
  372. package/dist/footer.js +308 -0
  373. package/dist/footer.js.map +1 -0
  374. package/dist/form-field.js +69 -0
  375. package/dist/form-field.js.map +1 -0
  376. package/dist/form.js +732 -0
  377. package/dist/form.js.map +1 -0
  378. package/dist/format.js +112 -0
  379. package/dist/format.js.map +1 -0
  380. package/dist/fouc.js +28 -0
  381. package/dist/fouc.js.map +1 -0
  382. package/dist/header.js +289 -0
  383. package/dist/header.js.map +1 -0
  384. package/dist/hooks.js +13 -0
  385. package/dist/hooks.js.map +1 -0
  386. package/dist/hover-card.js +210 -0
  387. package/dist/hover-card.js.map +1 -0
  388. package/dist/index-0ioNhtNM.js +11 -0
  389. package/dist/index-0ioNhtNM.js.map +1 -0
  390. package/dist/index-1QHKgw6D.js +55 -0
  391. package/dist/index-1QHKgw6D.js.map +1 -0
  392. package/dist/index-B6sSWi7l.js +747 -0
  393. package/dist/index-B6sSWi7l.js.map +1 -0
  394. package/dist/index-BCjJQGh8.js +71 -0
  395. package/dist/index-BCjJQGh8.js.map +1 -0
  396. package/dist/index-BGQepRFJ.js +28 -0
  397. package/dist/index-BGQepRFJ.js.map +1 -0
  398. package/dist/index-BVRIAMfe.js +37 -0
  399. package/dist/index-BVRIAMfe.js.map +1 -0
  400. package/dist/index-BY7PeRJA.js +145 -0
  401. package/dist/index-BY7PeRJA.js.map +1 -0
  402. package/dist/index-BZPx6jYI.js +9 -0
  403. package/dist/index-BZPx6jYI.js.map +1 -0
  404. package/dist/index-Ba4eHUBD.js +243 -0
  405. package/dist/index-Ba4eHUBD.js.map +1 -0
  406. package/dist/index-Bke1qZdk.js +35 -0
  407. package/dist/index-Bke1qZdk.js.map +1 -0
  408. package/dist/index-C0UREtMP.js +60 -0
  409. package/dist/index-C0UREtMP.js.map +1 -0
  410. package/dist/index-CCKe-Mpx.js +7 -0
  411. package/dist/index-CCKe-Mpx.js.map +1 -0
  412. package/dist/index-DFZozV_h.js +69 -0
  413. package/dist/index-DFZozV_h.js.map +1 -0
  414. package/dist/index-DFi6WydO.js +180 -0
  415. package/dist/index-DFi6WydO.js.map +1 -0
  416. package/dist/index-DQH6odE9.js +83 -0
  417. package/dist/index-DQH6odE9.js.map +1 -0
  418. package/dist/index-EO5flKM3.js +119 -0
  419. package/dist/index-EO5flKM3.js.map +1 -0
  420. package/dist/index-Lf7yDOXW.js +615 -0
  421. package/dist/index-Lf7yDOXW.js.map +1 -0
  422. package/dist/index-dhIqEbxW.js +1541 -0
  423. package/dist/index-dhIqEbxW.js.map +1 -0
  424. package/dist/index-pWhlqjff.js +32 -0
  425. package/dist/index-pWhlqjff.js.map +1 -0
  426. package/dist/index-rKs9bXHr.js +7 -0
  427. package/dist/index-rKs9bXHr.js.map +1 -0
  428. package/dist/index-xqkGMOJ8.js +14 -0
  429. package/dist/index-xqkGMOJ8.js.map +1 -0
  430. package/dist/index.js +247 -0
  431. package/dist/index.js.map +1 -0
  432. package/dist/input.js +22 -0
  433. package/dist/input.js.map +1 -0
  434. package/dist/label.js +36 -0
  435. package/dist/label.js.map +1 -0
  436. package/dist/layout-wrapper.js +208 -0
  437. package/dist/layout-wrapper.js.map +1 -0
  438. package/dist/llms.txt +1140 -0
  439. package/dist/menu-DBhEanGo.js +16 -0
  440. package/dist/menu-DBhEanGo.js.map +1 -0
  441. package/dist/menubar.js +565 -0
  442. package/dist/menubar.js.map +1 -0
  443. package/dist/mobile.js +183 -0
  444. package/dist/mobile.js.map +1 -0
  445. package/dist/motion.js +119 -0
  446. package/dist/motion.js.map +1 -0
  447. package/dist/page-header.js +47 -0
  448. package/dist/page-header.js.map +1 -0
  449. package/dist/page.js +214 -0
  450. package/dist/page.js.map +1 -0
  451. package/dist/pagination.js +121 -0
  452. package/dist/pagination.js.map +1 -0
  453. package/dist/platform.js +194 -0
  454. package/dist/platform.js.map +1 -0
  455. package/dist/popover.js +263 -0
  456. package/dist/popover.js.map +1 -0
  457. package/dist/popup.js +335 -0
  458. package/dist/popup.js.map +1 -0
  459. package/dist/progress.js +108 -0
  460. package/dist/progress.js.map +1 -0
  461. package/dist/radio-group.js +272 -0
  462. package/dist/radio-group.js.map +1 -0
  463. package/dist/safe-area.js +42 -0
  464. package/dist/safe-area.js.map +1 -0
  465. package/dist/search-CpUwRnG-.js +15 -0
  466. package/dist/search-CpUwRnG-.js.map +1 -0
  467. package/dist/select.js +985 -0
  468. package/dist/select.js.map +1 -0
  469. package/dist/separator.js +45 -0
  470. package/dist/separator.js.map +1 -0
  471. package/dist/sheet.js +127 -0
  472. package/dist/sheet.js.map +1 -0
  473. package/dist/skeleton.js +16 -0
  474. package/dist/skeleton.js.map +1 -0
  475. package/dist/slider.js +485 -0
  476. package/dist/slider.js.map +1 -0
  477. package/dist/sonner.js +52 -0
  478. package/dist/sonner.js.map +1 -0
  479. package/dist/styles/fonts.css +253 -0
  480. package/dist/styles.css +2 -0
  481. package/dist/switch.js +155 -0
  482. package/dist/switch.js.map +1 -0
  483. package/dist/tab-bar.js +110 -0
  484. package/dist/tab-bar.js.map +1 -0
  485. package/dist/table.js +115 -0
  486. package/dist/table.js.map +1 -0
  487. package/dist/tabs.js +218 -0
  488. package/dist/tabs.js.map +1 -0
  489. package/dist/textarea.js +19 -0
  490. package/dist/textarea.js.map +1 -0
  491. package/dist/theme-provider.js +154 -0
  492. package/dist/theme-provider.js.map +1 -0
  493. package/dist/themes.js +873 -0
  494. package/dist/themes.js.map +1 -0
  495. package/dist/toast.js +63 -0
  496. package/dist/toast.js.map +1 -0
  497. package/dist/toggle.js +70 -0
  498. package/dist/toggle.js.map +1 -0
  499. package/dist/tooltip.js +375 -0
  500. package/dist/tooltip.js.map +1 -0
  501. package/dist/types/App.d.ts +3 -0
  502. package/dist/types/App.d.ts.map +1 -0
  503. package/dist/types/components/layouts/admin.d.ts +117 -0
  504. package/dist/types/components/layouts/admin.d.ts.map +1 -0
  505. package/dist/types/components/layouts/auth.d.ts +17 -0
  506. package/dist/types/components/layouts/auth.d.ts.map +1 -0
  507. package/dist/types/components/layouts/blank.d.ts +63 -0
  508. package/dist/types/components/layouts/blank.d.ts.map +1 -0
  509. package/dist/types/components/layouts/layout-wrapper.d.ts +130 -0
  510. package/dist/types/components/layouts/layout-wrapper.d.ts.map +1 -0
  511. package/dist/types/components/layouts/mobile.d.ts +91 -0
  512. package/dist/types/components/layouts/mobile.d.ts.map +1 -0
  513. package/dist/types/components/layouts/page.d.ts +181 -0
  514. package/dist/types/components/layouts/page.d.ts.map +1 -0
  515. package/dist/types/components/layouts/popup.d.ts +100 -0
  516. package/dist/types/components/layouts/popup.d.ts.map +1 -0
  517. package/dist/types/components/sections/container.d.ts +79 -0
  518. package/dist/types/components/sections/container.d.ts.map +1 -0
  519. package/dist/types/components/sections/footer.d.ts +128 -0
  520. package/dist/types/components/sections/footer.d.ts.map +1 -0
  521. package/dist/types/components/sections/header.d.ts +72 -0
  522. package/dist/types/components/sections/header.d.ts.map +1 -0
  523. package/dist/types/components/sections/safe-area.d.ts +46 -0
  524. package/dist/types/components/sections/safe-area.d.ts.map +1 -0
  525. package/dist/types/components/sections/tab-bar.d.ts +61 -0
  526. package/dist/types/components/sections/tab-bar.d.ts.map +1 -0
  527. package/dist/types/components/ui/accordion.d.ts +8 -0
  528. package/dist/types/components/ui/accordion.d.ts.map +1 -0
  529. package/dist/types/components/ui/alert.d.ts +10 -0
  530. package/dist/types/components/ui/alert.d.ts.map +1 -0
  531. package/dist/types/components/ui/avatar.d.ts +7 -0
  532. package/dist/types/components/ui/avatar.d.ts.map +1 -0
  533. package/dist/types/components/ui/badge.d.ts +10 -0
  534. package/dist/types/components/ui/badge.d.ts.map +1 -0
  535. package/dist/types/components/ui/breadcrumb.d.ts +12 -0
  536. package/dist/types/components/ui/breadcrumb.d.ts.map +1 -0
  537. package/dist/types/components/ui/button.d.ts +11 -0
  538. package/dist/types/components/ui/button.d.ts.map +1 -0
  539. package/dist/types/components/ui/calendar.d.ts +9 -0
  540. package/dist/types/components/ui/calendar.d.ts.map +1 -0
  541. package/dist/types/components/ui/card.d.ts +10 -0
  542. package/dist/types/components/ui/card.d.ts.map +1 -0
  543. package/dist/types/components/ui/checkbox.d.ts +5 -0
  544. package/dist/types/components/ui/checkbox.d.ts.map +1 -0
  545. package/dist/types/components/ui/collapsible.d.ts +6 -0
  546. package/dist/types/components/ui/collapsible.d.ts.map +1 -0
  547. package/dist/types/components/ui/command.d.ts +19 -0
  548. package/dist/types/components/ui/command.d.ts.map +1 -0
  549. package/dist/types/components/ui/confirm-dialog.d.ts +72 -0
  550. package/dist/types/components/ui/confirm-dialog.d.ts.map +1 -0
  551. package/dist/types/components/ui/data-table.d.ts +211 -0
  552. package/dist/types/components/ui/data-table.d.ts.map +1 -0
  553. package/dist/types/components/ui/detail-page.d.ts +119 -0
  554. package/dist/types/components/ui/detail-page.d.ts.map +1 -0
  555. package/dist/types/components/ui/dialog.d.ts +16 -0
  556. package/dist/types/components/ui/dialog.d.ts.map +1 -0
  557. package/dist/types/components/ui/dropdown-menu.d.ts +26 -0
  558. package/dist/types/components/ui/dropdown-menu.d.ts.map +1 -0
  559. package/dist/types/components/ui/empty-state.d.ts +30 -0
  560. package/dist/types/components/ui/empty-state.d.ts.map +1 -0
  561. package/dist/types/components/ui/form-field.d.ts +57 -0
  562. package/dist/types/components/ui/form-field.d.ts.map +1 -0
  563. package/dist/types/components/ui/form.d.ts +185 -0
  564. package/dist/types/components/ui/form.d.ts.map +1 -0
  565. package/dist/types/components/ui/hover-card.d.ts +7 -0
  566. package/dist/types/components/ui/hover-card.d.ts.map +1 -0
  567. package/dist/types/components/ui/input.d.ts +4 -0
  568. package/dist/types/components/ui/input.d.ts.map +1 -0
  569. package/dist/types/components/ui/label.d.ts +5 -0
  570. package/dist/types/components/ui/label.d.ts.map +1 -0
  571. package/dist/types/components/ui/menubar.d.ts +27 -0
  572. package/dist/types/components/ui/menubar.d.ts.map +1 -0
  573. package/dist/types/components/ui/motion.d.ts +130 -0
  574. package/dist/types/components/ui/motion.d.ts.map +1 -0
  575. package/dist/types/components/ui/page-header.d.ts +45 -0
  576. package/dist/types/components/ui/page-header.d.ts.map +1 -0
  577. package/dist/types/components/ui/pagination.d.ts +14 -0
  578. package/dist/types/components/ui/pagination.d.ts.map +1 -0
  579. package/dist/types/components/ui/popover.d.ts +8 -0
  580. package/dist/types/components/ui/popover.d.ts.map +1 -0
  581. package/dist/types/components/ui/progress.d.ts +5 -0
  582. package/dist/types/components/ui/progress.d.ts.map +1 -0
  583. package/dist/types/components/ui/radio-group.d.ts +6 -0
  584. package/dist/types/components/ui/radio-group.d.ts.map +1 -0
  585. package/dist/types/components/ui/select.d.ts +16 -0
  586. package/dist/types/components/ui/select.d.ts.map +1 -0
  587. package/dist/types/components/ui/separator.d.ts +5 -0
  588. package/dist/types/components/ui/separator.d.ts.map +1 -0
  589. package/dist/types/components/ui/sheet.d.ts +14 -0
  590. package/dist/types/components/ui/sheet.d.ts.map +1 -0
  591. package/dist/types/components/ui/skeleton.d.ts +3 -0
  592. package/dist/types/components/ui/skeleton.d.ts.map +1 -0
  593. package/dist/types/components/ui/slider.d.ts +5 -0
  594. package/dist/types/components/ui/slider.d.ts.map +1 -0
  595. package/dist/types/components/ui/sonner.d.ts +4 -0
  596. package/dist/types/components/ui/sonner.d.ts.map +1 -0
  597. package/dist/types/components/ui/switch.d.ts +5 -0
  598. package/dist/types/components/ui/switch.d.ts.map +1 -0
  599. package/dist/types/components/ui/table.d.ts +11 -0
  600. package/dist/types/components/ui/table.d.ts.map +1 -0
  601. package/dist/types/components/ui/tabs.d.ts +8 -0
  602. package/dist/types/components/ui/tabs.d.ts.map +1 -0
  603. package/dist/types/components/ui/textarea.d.ts +4 -0
  604. package/dist/types/components/ui/textarea.d.ts.map +1 -0
  605. package/dist/types/components/ui/toast.d.ts +70 -0
  606. package/dist/types/components/ui/toast.d.ts.map +1 -0
  607. package/dist/types/components/ui/toggle.d.ts +10 -0
  608. package/dist/types/components/ui/toggle.d.ts.map +1 -0
  609. package/dist/types/components/ui/tooltip.d.ts +8 -0
  610. package/dist/types/components/ui/tooltip.d.ts.map +1 -0
  611. package/dist/types/hooks/index.d.ts +14 -0
  612. package/dist/types/hooks/index.d.ts.map +1 -0
  613. package/dist/types/hooks/useApi.d.ts +38 -0
  614. package/dist/types/hooks/useApi.d.ts.map +1 -0
  615. package/dist/types/hooks/useBreakpoint.d.ts +35 -0
  616. package/dist/types/hooks/useBreakpoint.d.ts.map +1 -0
  617. package/dist/types/hooks/useDataTable.d.ts +59 -0
  618. package/dist/types/hooks/useDataTable.d.ts.map +1 -0
  619. package/dist/types/hooks/useMediaQuery.d.ts +12 -0
  620. package/dist/types/hooks/useMediaQuery.d.ts.map +1 -0
  621. package/dist/types/hooks/useStorage.d.ts +35 -0
  622. package/dist/types/hooks/useStorage.d.ts.map +1 -0
  623. package/dist/types/index.d.ts +75 -0
  624. package/dist/types/index.d.ts.map +1 -0
  625. package/dist/types/lib/errors.d.ts +37 -0
  626. package/dist/types/lib/errors.d.ts.map +1 -0
  627. package/dist/types/lib/format.d.ts +80 -0
  628. package/dist/types/lib/format.d.ts.map +1 -0
  629. package/dist/types/lib/fouc.d.ts +64 -0
  630. package/dist/types/lib/fouc.d.ts.map +1 -0
  631. package/dist/types/lib/platform.d.ts +156 -0
  632. package/dist/types/lib/platform.d.ts.map +1 -0
  633. package/dist/types/lib/utils.d.ts +14 -0
  634. package/dist/types/lib/utils.d.ts.map +1 -0
  635. package/dist/types/main.d.ts +2 -0
  636. package/dist/types/main.d.ts.map +1 -0
  637. package/dist/types/themes/index.d.ts +499 -0
  638. package/dist/types/themes/index.d.ts.map +1 -0
  639. package/dist/types/themes/presets/base.d.ts +108 -0
  640. package/dist/types/themes/presets/base.d.ts.map +1 -0
  641. package/dist/types/themes/presets/elegant.d.ts +108 -0
  642. package/dist/types/themes/presets/elegant.d.ts.map +1 -0
  643. package/dist/types/themes/presets/metro.d.ts +114 -0
  644. package/dist/types/themes/presets/metro.d.ts.map +1 -0
  645. package/dist/types/themes/presets/studio.d.ts +115 -0
  646. package/dist/types/themes/presets/studio.d.ts.map +1 -0
  647. package/dist/types/themes/presets/vivid.d.ts +115 -0
  648. package/dist/types/themes/presets/vivid.d.ts.map +1 -0
  649. package/dist/types/themes/theme-provider.d.ts +122 -0
  650. package/dist/types/themes/theme-provider.d.ts.map +1 -0
  651. package/dist/types/types/index.d.ts +813 -0
  652. package/dist/types/types/index.d.ts.map +1 -0
  653. package/dist/uikit.css +1 -0
  654. package/dist/useDataTable-CPiBpEg-.js +254 -0
  655. package/dist/useDataTable-CPiBpEg-.js.map +1 -0
  656. package/dist/utils-CwJPJKOE.js +2278 -0
  657. package/dist/utils-CwJPJKOE.js.map +1 -0
  658. package/dist/utils.js +5 -0
  659. package/dist/utils.js.map +1 -0
  660. package/dist/wrapper.js +13 -0
  661. package/dist/wrapper.js.map +1 -0
  662. package/dist/x-BxwubQiM.js +15 -0
  663. package/dist/x-BxwubQiM.js.map +1 -0
  664. package/examples/README.md +18 -0
  665. package/examples/button.tsx +16 -0
  666. package/examples/confirm-dialog.tsx +44 -0
  667. package/examples/data-table.tsx +35 -0
  668. package/examples/dialog.tsx +34 -0
  669. package/examples/empty-state.tsx +13 -0
  670. package/examples/form-field.tsx +22 -0
  671. package/examples/format.tsx +19 -0
  672. package/examples/page-header.tsx +17 -0
  673. package/examples/skeleton.tsx +12 -0
  674. package/examples/theme-provider.tsx +33 -0
  675. package/examples/toast.tsx +32 -0
  676. package/examples/use-breakpoint.tsx +17 -0
  677. package/llms.txt +1140 -0
  678. package/package.json +430 -0
@@ -0,0 +1,374 @@
1
+ import React from 'react';
2
+ import { PageLayout } from '@bloomneo/uikit/page';
3
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@bloomneo/uikit/card';
4
+ import { Badge } from '@bloomneo/uikit/badge';
5
+ import {
6
+ Layers,
7
+ Zap,
8
+ Route,
9
+ FolderOpen,
10
+ Code2,
11
+ Globe,
12
+ Lightbulb,
13
+ ArrowRight
14
+ } from 'lucide-react';
15
+ import { Header, Footer, SEO } from '../../../shared/components';
16
+
17
+ export const AboutPage: React.FC = () => {
18
+ return (
19
+ <PageLayout>
20
+ <SEO
21
+ title="About FBCA - Feature-Based Component Architecture | UIKit Demo"
22
+ description="Learn about Feature-Based Component Architecture (FBCA) with convention-based routing, auto-discovery, and modern React patterns. Complete guide to FBCA implementation."
23
+ keywords="fbca, feature-based architecture, react architecture, component organization, routing conventions, auto-discovery, react patterns"
24
+ ogTitle="About FBCA - Feature-Based Component Architecture"
25
+ ogDescription="Complete guide to Feature-Based Component Architecture with auto-discovery routing and modern React patterns"
26
+ />
27
+ <Header />
28
+
29
+ <PageLayout.Content>
30
+ <div className="space-y-8">
31
+ <div className="text-center space-y-4">
32
+ <h1 className="voila-heading text-4xl md:text-5xl text-gradient-primary">
33
+ About FBCA Architecture
34
+ </h1>
35
+ <p className="voila-subheading text-muted-foreground max-w-3xl mx-auto text-xl">
36
+ Feature-Based Component Architecture with Page Router - A modern approach to building scalable React applications
37
+ </p>
38
+ </div>
39
+
40
+ {/* What is FBCA */}
41
+ <Card>
42
+ <CardHeader>
43
+ <CardTitle className="flex items-center gap-2">
44
+ <Lightbulb className="h-5 w-5" />
45
+ What is FBCA?
46
+ </CardTitle>
47
+ <CardDescription>
48
+ Feature-Based Component Architecture organizes your application by features, not technical layers
49
+ </CardDescription>
50
+ </CardHeader>
51
+ <CardContent className="space-y-6">
52
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-8">
53
+ <div className="space-y-4">
54
+ <h4 className="font-semibold text-lg">Traditional Structure</h4>
55
+ <div className="bg-muted/50 p-4 rounded-lg font-mono text-sm">
56
+ <div className="text-red-600">❌ src/</div>
57
+ <div className="ml-2">├── components/</div>
58
+ <div className="ml-2">├── pages/</div>
59
+ <div className="ml-2">├── hooks/</div>
60
+ <div className="ml-2">├── utils/</div>
61
+ <div className="ml-2">└── services/</div>
62
+ </div>
63
+ <p className="text-sm text-muted-foreground">
64
+ Files scattered across technical layers, hard to find related code
65
+ </p>
66
+ </div>
67
+
68
+ <div className="space-y-4">
69
+ <h4 className="font-semibold text-lg">FBCA Structure</h4>
70
+ <div className="bg-muted/50 p-4 rounded-lg font-mono text-sm">
71
+ <div className="text-green-600">✅ src/</div>
72
+ <div className="ml-2">├── features/</div>
73
+ <div className="ml-4">│ ├── auth/pages/</div>
74
+ <div className="ml-4">│ ├── gallery/pages/</div>
75
+ <div className="ml-4">│ └── main/pages/</div>
76
+ <div className="ml-2">├── shared/components/</div>
77
+ <div className="ml-2">└── lib/page-router.tsx</div>
78
+ </div>
79
+ <p className="text-sm text-muted-foreground">
80
+ Everything related to a feature lives together, easy to find and maintain
81
+ </p>
82
+ </div>
83
+ </div>
84
+ </CardContent>
85
+ </Card>
86
+
87
+ {/* FBCA Routing System */}
88
+ <Card>
89
+ <CardHeader>
90
+ <CardTitle className="flex items-center gap-2">
91
+ <Route className="h-5 w-5" />
92
+ FBCA Routing System
93
+ </CardTitle>
94
+ <CardDescription>
95
+ Convention-based routing with support for nested routes and dynamic parameters
96
+ </CardDescription>
97
+ </CardHeader>
98
+ <CardContent>
99
+ <div className="space-y-6">
100
+ {/* Basic Routing Rules */}
101
+ <div className="space-y-4">
102
+ <h4 className="font-semibold flex items-center gap-2">
103
+ <FolderOpen className="h-4 w-4" />
104
+ Basic File-Based Routing
105
+ </h4>
106
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
107
+ <div className="space-y-3">
108
+ <Badge variant="outline" className="mb-2">Main Feature Priority</Badge>
109
+ <div className="bg-muted/50 p-3 rounded text-sm font-mono space-y-1">
110
+ <div>features/main/pages/index.tsx</div>
111
+ <div className="text-primary">→ /</div>
112
+ </div>
113
+ <div className="bg-muted/50 p-3 rounded text-sm font-mono space-y-1">
114
+ <div>features/main/pages/About.tsx</div>
115
+ <div className="text-primary">→ /about</div>
116
+ </div>
117
+ </div>
118
+ <div className="space-y-3">
119
+ <Badge variant="outline" className="mb-2">Feature Routes</Badge>
120
+ <div className="bg-muted/50 p-3 rounded text-sm font-mono space-y-1">
121
+ <div>features/auth/pages/index.tsx</div>
122
+ <div className="text-primary">→ /auth</div>
123
+ </div>
124
+ <div className="bg-muted/50 p-3 rounded text-sm font-mono space-y-1">
125
+ <div>features/gallery/pages/index.tsx</div>
126
+ <div className="text-primary">→ /gallery</div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+
132
+ {/* Advanced Routing */}
133
+ <div className="space-y-4">
134
+ <h4 className="font-semibold flex items-center gap-2">
135
+ <Layers className="h-4 w-4" />
136
+ Advanced Routing Patterns
137
+ </h4>
138
+
139
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
140
+ {/* Nested Routes */}
141
+ <div className="space-y-3">
142
+ <Badge variant="secondary" className="mb-2">Nested Routes</Badge>
143
+ <div className="bg-gradient-to-br from-blue-50 to-blue-100 dark:from-blue-950 dark:to-blue-900 border border-blue-200 dark:border-blue-800 p-4 rounded-lg">
144
+ <div className="font-mono text-sm space-y-2">
145
+ <div className="font-semibold text-blue-800 dark:text-blue-200">File Structure:</div>
146
+ <div className="ml-2">features/gallery/pages/new/</div>
147
+ <div className="ml-4 text-blue-600 dark:text-blue-300">└── cat.tsx</div>
148
+ <div className="mt-3 pt-2 border-t border-blue-200 dark:border-blue-700">
149
+ <span className="text-blue-800 dark:text-blue-200 font-semibold">Route:</span>
150
+ <div className="text-blue-600 dark:text-blue-300 font-bold">/gallery/new/cat</div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ <p className="text-xs text-muted-foreground">
155
+ Create nested directories for deeply nested routes
156
+ </p>
157
+ </div>
158
+
159
+ {/* Dynamic Routes */}
160
+ <div className="space-y-3">
161
+ <Badge variant="secondary" className="mb-2">Dynamic Parameters</Badge>
162
+ <div className="bg-gradient-to-br from-green-50 to-green-100 dark:from-green-950 dark:to-green-900 border border-green-200 dark:border-green-800 p-4 rounded-lg">
163
+ <div className="font-mono text-sm space-y-2">
164
+ <div className="font-semibold text-green-800 dark:text-green-200">File Structure:</div>
165
+ <div className="ml-2">features/gallery/pages/</div>
166
+ <div className="ml-4 text-green-600 dark:text-green-300">└── [animal].tsx</div>
167
+ <div className="mt-3 pt-2 border-t border-green-200 dark:border-green-700">
168
+ <span className="text-green-800 dark:text-green-200 font-semibold">Route:</span>
169
+ <div className="text-green-600 dark:text-green-300 font-bold">/gallery/:animal</div>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ <p className="text-xs text-muted-foreground">
174
+ Square brackets create URL parameters
175
+ </p>
176
+ </div>
177
+ </div>
178
+ </div>
179
+ </div>
180
+ </CardContent>
181
+ </Card>
182
+
183
+ {/* Page Router Magic */}
184
+ <Card>
185
+ <CardHeader>
186
+ <CardTitle className="flex items-center gap-2">
187
+ <Zap className="h-5 w-5" />
188
+ Page Router Magic
189
+ </CardTitle>
190
+ <CardDescription>
191
+ Zero-configuration routing that automatically discovers your pages
192
+ </CardDescription>
193
+ </CardHeader>
194
+ <CardContent>
195
+ <div className="space-y-6">
196
+ <div className="bg-gradient-to-r from-primary/10 to-accent/10 p-6 rounded-lg border border-primary/20">
197
+ <div className="flex items-start gap-4">
198
+ <div className="w-12 h-12 bg-primary/20 rounded-lg flex items-center justify-center">
199
+ <Globe className="h-6 w-6 text-primary" />
200
+ </div>
201
+ <div className="space-y-2">
202
+ <h4 className="font-semibold text-lg">Auto-Discovery</h4>
203
+ <p className="text-muted-foreground">
204
+ The PageRouter scans <code className="bg-muted px-1 rounded">features/*/pages/*.tsx</code> using Vite glob imports and automatically generates routes. No manual configuration needed!
205
+ </p>
206
+ </div>
207
+ </div>
208
+ </div>
209
+
210
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
211
+ <div className="space-y-3">
212
+ <h4 className="font-semibold">How It Works</h4>
213
+ <ol className="text-sm space-y-2 text-muted-foreground list-decimal list-inside">
214
+ <li>PageRouter scans all feature folders at build time</li>
215
+ <li>Generates route map based on file paths</li>
216
+ <li>Main feature gets priority routes (/, /about)</li>
217
+ <li>Other features get namespaced routes (/auth, /gallery)</li>
218
+ <li>Components are lazy-loaded automatically</li>
219
+ </ol>
220
+ </div>
221
+
222
+ <div className="space-y-3">
223
+ <h4 className="font-semibold">Benefits</h4>
224
+ <ul className="text-sm space-y-2 text-muted-foreground">
225
+ <li className="flex items-center gap-2">
226
+ <ArrowRight className="h-3 w-3 text-primary" />
227
+ No route configuration needed
228
+ </li>
229
+ <li className="flex items-center gap-2">
230
+ <ArrowRight className="h-3 w-3 text-primary" />
231
+ Add feature folder → route appears automatically
232
+ </li>
233
+ <li className="flex items-center gap-2">
234
+ <ArrowRight className="h-3 w-3 text-primary" />
235
+ No route conflicts or overlaps
236
+ </li>
237
+ <li className="flex items-center gap-2">
238
+ <ArrowRight className="h-3 w-3 text-primary" />
239
+ Clear ownership per feature
240
+ </li>
241
+ <li className="flex items-center gap-2">
242
+ <ArrowRight className="h-3 w-3 text-primary" />
243
+ Automatic code splitting
244
+ </li>
245
+ </ul>
246
+ </div>
247
+ </div>
248
+ </div>
249
+ </CardContent>
250
+ </Card>
251
+
252
+ {/* Key Technologies */}
253
+ <Card>
254
+ <CardHeader>
255
+ <CardTitle className="flex items-center gap-2">
256
+ <Code2 className="h-5 w-5" />
257
+ Technology Stack
258
+ </CardTitle>
259
+ <CardDescription>
260
+ Modern tools that power this FBCA implementation
261
+ </CardDescription>
262
+ </CardHeader>
263
+ <CardContent>
264
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
265
+ <div className="space-y-3">
266
+ <div className="flex items-center justify-between">
267
+ <span className="font-medium">React 19</span>
268
+ <Badge variant="secondary">Frontend</Badge>
269
+ </div>
270
+ <p className="text-sm text-muted-foreground">
271
+ Latest React with Suspense for code splitting
272
+ </p>
273
+ </div>
274
+
275
+ <div className="space-y-3">
276
+ <div className="flex items-center justify-between">
277
+ <span className="font-medium">Vite Glob Imports</span>
278
+ <Badge variant="secondary">Build</Badge>
279
+ </div>
280
+ <p className="text-sm text-muted-foreground">
281
+ Dynamic page discovery at build time
282
+ </p>
283
+ </div>
284
+
285
+ <div className="space-y-3">
286
+ <div className="flex items-center justify-between">
287
+ <span className="font-medium">UIKit Components</span>
288
+ <Badge variant="secondary">UI</Badge>
289
+ </div>
290
+ <p className="text-sm text-muted-foreground">
291
+ Professional components with theme support
292
+ </p>
293
+ </div>
294
+
295
+ <div className="space-y-3">
296
+ <div className="flex items-center justify-between">
297
+ <span className="font-medium">TypeScript</span>
298
+ <Badge variant="secondary">Language</Badge>
299
+ </div>
300
+ <p className="text-sm text-muted-foreground">
301
+ Full type safety across the application
302
+ </p>
303
+ </div>
304
+
305
+ <div className="space-y-3">
306
+ <div className="flex items-center justify-between">
307
+ <span className="font-medium">Tailwind CSS</span>
308
+ <Badge variant="secondary">Styling</Badge>
309
+ </div>
310
+ <p className="text-sm text-muted-foreground">
311
+ Utility-first CSS with UIKit integration
312
+ </p>
313
+ </div>
314
+
315
+ <div className="space-y-3">
316
+ <div className="flex items-center justify-between">
317
+ <span className="font-medium">React Router</span>
318
+ <Badge variant="secondary">Routing</Badge>
319
+ </div>
320
+ <p className="text-sm text-muted-foreground">
321
+ Client-side routing with lazy loading
322
+ </p>
323
+ </div>
324
+ </div>
325
+ </CardContent>
326
+ </Card>
327
+
328
+ {/* Getting Started */}
329
+ <Card className="bg-gradient-to-r from-primary/5 via-accent/5 to-primary/5 border-primary/20">
330
+ <CardHeader>
331
+ <CardTitle>Try FBCA Yourself</CardTitle>
332
+ <CardDescription>
333
+ Experience the power of Feature-Based Component Architecture
334
+ </CardDescription>
335
+ </CardHeader>
336
+ <CardContent className="space-y-6">
337
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
338
+ <div className="space-y-4">
339
+ <h4 className="font-semibold">Create a New Feature</h4>
340
+ <div className="bg-muted/50 p-4 rounded-lg font-mono text-sm space-y-1">
341
+ <div>mkdir src/features/blog</div>
342
+ <div>mkdir src/features/blog/pages</div>
343
+ <div>touch src/features/blog/pages/index.tsx</div>
344
+ <div className="text-green-600"># Route automatically available at /blog</div>
345
+ </div>
346
+ </div>
347
+
348
+ <div className="space-y-4">
349
+ <h4 className="font-semibold">Add Feature Components</h4>
350
+ <div className="bg-muted/50 p-4 rounded-lg font-mono text-sm space-y-1">
351
+ <div>mkdir src/features/blog/components</div>
352
+ <div>mkdir src/features/blog/hooks</div>
353
+ <div>touch src/features/blog/hooks/usePosts.ts</div>
354
+ <div className="text-green-600"># Self-contained feature</div>
355
+ </div>
356
+ </div>
357
+ </div>
358
+
359
+ <div className="text-center pt-4">
360
+ <Badge variant="outline" className="text-sm">
361
+ No configuration needed • Routes auto-discovered • Zero conflicts
362
+ </Badge>
363
+ </div>
364
+ </CardContent>
365
+ </Card>
366
+ </div>
367
+ </PageLayout.Content>
368
+
369
+ <Footer />
370
+ </PageLayout>
371
+ );
372
+ };
373
+
374
+ export default AboutPage;
@@ -0,0 +1,214 @@
1
+ import React from 'react';
2
+ import { Link } from 'react-router-dom';
3
+ import { Button } from '@bloomneo/uikit/button';
4
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@bloomneo/uikit/card';
5
+ import { PageLayout } from '@bloomneo/uikit/page';
6
+ import { useTheme } from '@bloomneo/uikit/theme-provider';
7
+ import { ArrowRight, Zap, Images, BookOpen, LogIn, Code2 } from 'lucide-react';
8
+ import { CTASection } from '../components/CTASection';
9
+ import { Header, Footer, SEO } from '../../../shared/components';
10
+ import { asset } from '../../../shared/utils/asset';
11
+
12
+ export const HomePage: React.FC = () => {
13
+ const { theme } = useTheme();
14
+
15
+ const themeDescriptions = {
16
+ base: 'Clean default configuration showcasing the base system',
17
+ elegant: 'Fresh sky blue theme with clean design',
18
+ metro: 'Dark teal theme with bright yellow accents',
19
+ studio: 'Sophisticated neutral theme with golden accents',
20
+ vivid: 'Premium cursive theme with sophisticated typography'
21
+ };
22
+
23
+
24
+ return (
25
+ <PageLayout>
26
+ <SEO
27
+ title="UIKit FBCA Demo - Feature-Based Component Architecture"
28
+ description="Experience Feature-Based Component Architecture with auto-discovery routing, UIKit components, and modern React patterns. Zero configuration, convention-based routing."
29
+ keywords="react, fbca, feature-based architecture, uikit, components, typescript, auto-discovery, routing"
30
+ ogTitle="UIKit FBCA Demo - Modern React Architecture"
31
+ ogDescription="Discover Feature-Based Component Architecture with UIKit components and zero-config routing"
32
+ />
33
+ <Header />
34
+
35
+ <PageLayout.Content>
36
+ <div className="space-y-12">
37
+ {/* Hero Section */}
38
+ <section className="text-center py-16 bg-gradient-to-b from-background to-muted/20 rounded-lg">
39
+ <div className="space-y-6">
40
+ <div className="mb-6">
41
+ <img
42
+ src={asset('/hero_fbca.svg')}
43
+ alt="UIKit FBCA Hero Illustration"
44
+ className="mx-auto max-w-md w-full h-auto"
45
+ />
46
+ </div>
47
+ <h1 className="voila-heading text-4xl md:text-6xl mb-6 text-gradient-primary">
48
+ UIKit FBCA Demo
49
+ </h1>
50
+ <p className="voila-subheading text-xl md:text-2xl text-muted-foreground max-w-3xl mx-auto leading-relaxed">
51
+ Experience Feature-Based Component Architecture with auto-discovery routing and modern React patterns
52
+ </p>
53
+ <div className="inline-flex items-center gap-3 text-sm text-muted-foreground bg-muted/50 backdrop-blur px-6 py-3 rounded-full border">
54
+ <div className="w-2 h-2 bg-primary rounded-full animate-pulse"></div>
55
+ {themeDescriptions[theme as keyof typeof themeDescriptions]}
56
+ </div>
57
+ <div className="flex flex-col sm:flex-row gap-4 justify-center mt-8">
58
+ <Button size="lg" asChild>
59
+ <Link to="/gallery">
60
+ <Images className="mr-2 h-4 w-4" />
61
+ View Gallery
62
+ </Link>
63
+ </Button>
64
+ <Button variant="secondary" size="lg" asChild>
65
+ <Link to="/about">
66
+ <BookOpen className="mr-2 h-4 w-4" />
67
+ Learn FBCA
68
+ </Link>
69
+ </Button>
70
+ </div>
71
+ </div>
72
+ </section>
73
+
74
+
75
+ {/* Features Grid */}
76
+ <section className="space-y-6">
77
+ <div className="text-center">
78
+ <h2 className="text-3xl font-bold mb-4">Feature-Based Architecture</h2>
79
+ <p className="text-muted-foreground max-w-2xl mx-auto">
80
+ Explore features organized by domain with auto-discovery routing and zero configuration
81
+ </p>
82
+ </div>
83
+
84
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-6">
85
+ <Card className="border-2 hover:border-primary/50 transition-all duration-200 hover:shadow-lg">
86
+ <CardHeader>
87
+ <div className="w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center mb-4">
88
+ <Images className="h-6 w-6 text-primary" />
89
+ </div>
90
+ <CardTitle>Gallery Feature</CardTitle>
91
+ <CardDescription>Image gallery with responsive design and custom hooks</CardDescription>
92
+ </CardHeader>
93
+ <CardContent className="space-y-4">
94
+ <ul className="text-sm space-y-2 text-muted-foreground">
95
+ <li>• Custom React Hooks</li>
96
+ <li>• Responsive Image Grid</li>
97
+ <li>• Feature-Based Organization</li>
98
+ <li>• Modern UI Components</li>
99
+ </ul>
100
+ <Button asChild className="w-full">
101
+ <Link to="/gallery">
102
+ View Gallery
103
+ <ArrowRight className="ml-2 h-4 w-4" />
104
+ </Link>
105
+ </Button>
106
+ </CardContent>
107
+ </Card>
108
+
109
+ <Card className="border-2 hover:border-primary/50 transition-all duration-200 hover:shadow-lg">
110
+ <CardHeader>
111
+ <div className="w-12 h-12 bg-secondary/10 rounded-lg flex items-center justify-center mb-4">
112
+ <LogIn className="h-6 w-6 text-secondary" />
113
+ </div>
114
+ <CardTitle>Auth Feature</CardTitle>
115
+ <CardDescription>Authentication flow with login forms and user management</CardDescription>
116
+ </CardHeader>
117
+ <CardContent className="space-y-4">
118
+ <ul className="text-sm space-y-2 text-muted-foreground">
119
+ <li>• Login & Registration Forms</li>
120
+ <li>• Form Validation</li>
121
+ <li>• User State Management</li>
122
+ <li>• Route Protection</li>
123
+ </ul>
124
+ <Button asChild className="w-full">
125
+ <Link to="/auth">
126
+ Try Auth
127
+ <ArrowRight className="ml-2 h-4 w-4" />
128
+ </Link>
129
+ </Button>
130
+ </CardContent>
131
+ </Card>
132
+
133
+ <Card className="border-2 hover:border-primary/50 transition-all duration-200 hover:shadow-lg">
134
+ <CardHeader>
135
+ <div className="w-12 h-12 bg-accent/10 rounded-lg flex items-center justify-center mb-4">
136
+ <BookOpen className="h-6 w-6 text-accent" />
137
+ </div>
138
+ <CardTitle>FBCA Architecture</CardTitle>
139
+ <CardDescription>Learn about Feature-Based Component Architecture and conventions</CardDescription>
140
+ </CardHeader>
141
+ <CardContent className="space-y-4">
142
+ <ul className="text-sm space-y-2 text-muted-foreground">
143
+ <li>• Convention-Based Routing</li>
144
+ <li>• Auto-Discovery Pattern</li>
145
+ <li>• Feature Organization</li>
146
+ <li>• Zero Configuration</li>
147
+ </ul>
148
+ <Button asChild className="w-full">
149
+ <Link to="/about">
150
+ Learn FBCA
151
+ <ArrowRight className="ml-2 h-4 w-4" />
152
+ </Link>
153
+ </Button>
154
+ </CardContent>
155
+ </Card>
156
+ </div>
157
+ </section>
158
+
159
+ {/* FBCA Benefits */}
160
+ <section className="bg-gradient-to-r from-primary/5 via-accent/5 to-primary/5 border border-primary/20 rounded-lg p-8">
161
+ <div className="text-center space-y-6">
162
+ <div className="flex items-center justify-center gap-3 mb-4">
163
+ <div className="w-12 h-12 bg-primary/20 rounded-lg flex items-center justify-center">
164
+ <Zap className="h-6 w-6 text-primary" />
165
+ </div>
166
+ <h2 className="text-2xl font-bold">FBCA Architecture Benefits</h2>
167
+ </div>
168
+ <p className="text-muted-foreground max-w-2xl mx-auto">
169
+ This demo showcases Feature-Based Component Architecture with zero-configuration routing
170
+ </p>
171
+ <div className="grid grid-cols-1 md:grid-cols-3 gap-4 text-sm">
172
+ <div className="bg-background/80 border rounded-lg p-4 space-y-2">
173
+ <div className="w-8 h-8 bg-primary/20 rounded flex items-center justify-center mb-3">
174
+ <Code2 className="h-4 w-4 text-primary" />
175
+ </div>
176
+ <div className="font-semibold">Feature Organization</div>
177
+ <div className="text-muted-foreground">features/*/pages/*.tsx</div>
178
+ </div>
179
+ <div className="bg-background/80 border rounded-lg p-4 space-y-2">
180
+ <div className="w-8 h-8 bg-secondary/20 rounded flex items-center justify-center mb-3">
181
+ <Zap className="h-4 w-4 text-secondary" />
182
+ </div>
183
+ <div className="font-semibold">Auto-Discovery</div>
184
+ <div className="text-muted-foreground">Zero configuration routing</div>
185
+ </div>
186
+ <div className="bg-background/80 border rounded-lg p-4 space-y-2">
187
+ <div className="w-8 h-8 bg-accent/20 rounded flex items-center justify-center mb-3">
188
+ <ArrowRight className="h-4 w-4 text-accent" />
189
+ </div>
190
+ <div className="font-semibold">Convention-Based</div>
191
+ <div className="text-muted-foreground">File path = route path</div>
192
+ </div>
193
+ </div>
194
+ </div>
195
+ </section>
196
+
197
+ {/* CTA Section */}
198
+ <CTASection
199
+ title="Ready to Try FBCA?"
200
+ description="Experience Feature-Based Component Architecture with auto-discovery routing and zero configuration."
201
+ primaryAction="Learn Architecture"
202
+ secondaryAction="View Gallery"
203
+ onPrimaryClick={() => window.location.href = '/about'}
204
+ onSecondaryClick={() => window.location.href = '/gallery'}
205
+ />
206
+ </div>
207
+ </PageLayout.Content>
208
+
209
+ <Footer />
210
+ </PageLayout>
211
+ );
212
+ };
213
+
214
+ export default HomePage;
@@ -0,0 +1,15 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>{{PROJECT_NAME}} - UIKit FBCA</title>
8
+ <meta name="description" content="Feature-Based Component Architecture demo with UIKit components" />
9
+ <meta name="theme-color" content="#8B5CF6">
10
+ </head>
11
+ <body>
12
+ <div id="root"></div>
13
+ <script type="module" src="/main.tsx"></script>
14
+ </body>
15
+ </html>