@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,649 @@
1
+ # UIKit Composite UI System
2
+
3
+ **Industry-standard design system built on ShadCN foundations, enhanced with rapid prototyping capabilities for enterprise-scale applications.**
4
+
5
+ ## 🏗️ Built on Industry Standards
6
+
7
+ UIKit is strategically built on **ShadCN components** and **Tailwind CSS v4** - the proven foundation used by thousands of production applications. This isn't reinventing the wheel; it's enhancing what already works.
8
+
9
+ **Why this foundation matters:**
10
+ - **Industry adoption** - ShadCN is the de-facto standard for React component libraries
11
+ - **Battle-tested patterns** - Proven in production across enterprises and startups
12
+ - **Radix UI primitives** - Accessibility and keyboard navigation built-in
13
+ - **Tailwind CSS integration** - The most adopted utility-first CSS framework
14
+ - **Community ecosystem** - Extensive documentation, tutorials, and community support
15
+
16
+ **UIKit's enhancement approach:**
17
+ - **Maintains 100% ShadCN compatibility** - Use any ShadCN pattern or tutorial
18
+ - **Adds semantic color system** - Automatic theme adaptation without code changes
19
+ - **Provides production layouts** - Skip weeks of layout development
20
+ - **Enables rapid prototyping** - From idea to interface in minutes
21
+
22
+ ## 🎯 Why Consistent Design Matters
23
+
24
+ The composite system ensures **design consistency** across your entire application:
25
+
26
+ **🧩 Components (37 Standard)** → **📐 Section Components (3 Bridging)** → **🏗️ Layouts (5 Production-Ready)**
27
+
28
+ **Consistency benefits:**
29
+ - **Predictable behavior** - Users know how to interact with your interface
30
+ - **Faster development** - Developers use familiar patterns everywhere
31
+ - **Easier maintenance** - Changes propagate systematically across the system
32
+ - **Professional appearance** - Cohesive design that builds user trust
33
+ - **Team productivity** - No more "how should this look?" debates
34
+
35
+ **Rapid prototyping advantage:**
36
+ - **Start with components** - Build individual features quickly
37
+ - **Compose with sections** - Combine into reusable interface blocks
38
+ - **Scale to layouts** - Deploy complete application structures
39
+ - **Iterate fast** - Modify any tier without breaking others
40
+
41
+ ---
42
+
43
+ ## 🧩 Tier 1: Components (37 Total)
44
+
45
+ ### Component Categories
46
+
47
+ | Category | Count | Components | Usage |
48
+ | ------------------- | ----- | ------------------------------------------------------------------------- | ------------------------ |
49
+ | **Form & Input** | 9 | Button, Input, Textarea, Label, Checkbox, RadioGroup, Switch, Slider, Select | User interactions |
50
+ | **Display & Layout** | 10 | Card, Badge, Avatar, Separator, Progress, Skeleton, Alert, Breadcrumb, Tabs, Accordion | Information presentation |
51
+ | **Navigation & Menu** | 6 | DropdownMenu, Menubar, Pagination, Command, Collapsible, Toggle | User navigation |
52
+ | **Overlay & Modal** | 5 | Dialog, Sheet, Popover, HoverCard, Tooltip | Layered interactions |
53
+ | **Data & Table** | 4 | Table, DataTable, Calendar, Toaster | Data management |
54
+ | **Motion & Animation** | 3 | Motion, LoadingSpinner, Reveal, Hover | Visual effects |
55
+
56
+ ### Component Usage Patterns
57
+
58
+ All UIKit components follow consistent prop patterns for predictable behavior:
59
+
60
+ #### Button Component Example
61
+ ```jsx
62
+ import { Button } from '@bloomneo/uikit/button';
63
+
64
+ // Variant system - different visual styles
65
+ <Button variant="default">Primary Action</Button>
66
+ <Button variant="secondary">Secondary Action</Button>
67
+ <Button variant="outline">Outline Style</Button>
68
+ <Button variant="ghost">Subtle Action</Button>
69
+ <Button variant="destructive">Delete Action</Button>
70
+
71
+ // Size system - consistent sizing across components
72
+ <Button size="sm">Small</Button>
73
+ <Button size="md">Medium (default)</Button>
74
+ <Button size="lg">Large</Button>
75
+
76
+ // Common props available on most components
77
+ <Button
78
+ variant="default"
79
+ size="md"
80
+ disabled={isLoading}
81
+ className="w-full" // Extend with Tailwind classes
82
+ onClick={handleClick}
83
+ >
84
+ Save Changes
85
+ </Button>
86
+ ```
87
+
88
+ #### Pattern Consistency
89
+ ```jsx
90
+ // Same patterns work across all components
91
+ <Input variant="default" size="md" placeholder="Enter text" />
92
+ <Card variant="default" size="md">
93
+ <CardContent>Consistent sizing and styling</CardContent>
94
+ </Card>
95
+ <Badge variant="default" size="sm">Status</Badge>
96
+ ```
97
+
98
+ ### Import Patterns
99
+ ```jsx
100
+ // ✅ Individual imports (recommended for tree-shaking)
101
+ import { Button } from '@bloomneo/uikit/button';
102
+ import { Card, CardContent, CardHeader } from '@bloomneo/uikit/card';
103
+ import { ValidatedInput } from '@bloomneo/uikit/form';
104
+
105
+ // ❌ Avoid barrel imports
106
+ import { Button, Card } from '@bloomneo/uikit'; // Larger bundle size
107
+ ```
108
+
109
+ ### Complete Component Reference
110
+
111
+ | Component | Prop | Possible Values |
112
+ |-----------|------|-----------------|
113
+ | **Form & Input (9)** | | |
114
+ | **Button** | `variant` | `default\|secondary\|outline\|ghost\|destructive` |
115
+ | | `size` | `sm\|md\|lg` |
116
+ | | `disabled` | `boolean` |
117
+ | **Input** | `type` | `text\|email\|password\|number\|search` |
118
+ | | `variant` | `default` |
119
+ | | `size` | `sm\|md\|lg` |
120
+ | **Textarea** | `rows` | `number` |
121
+ | | `variant` | `default` |
122
+ | | `resize` | `none\|vertical\|horizontal\|both` |
123
+ | **Label** | `htmlFor` | `string` |
124
+ | **Checkbox** | `checked` | `boolean` |
125
+ | | `variant` | `default` |
126
+ | **RadioGroup** | `value` | `string` |
127
+ | | `orientation` | `horizontal\|vertical` |
128
+ | **Switch** | `checked` | `boolean` |
129
+ | | `size` | `sm\|md\|lg` |
130
+ | **Slider** | `value` | `number[]` |
131
+ | | `min` | `number` |
132
+ | | `max` | `number` |
133
+ | | `step` | `number` |
134
+ | **Select** | `value` | `string` |
135
+ | | `size` | `sm\|md\|lg` |
136
+ | **Display & Layout (10)** | | |
137
+ | **Card** | `variant` | `default` |
138
+ | | `size` | `sm\|md\|lg\|xl` |
139
+ | **Badge** | `variant` | `default\|secondary\|destructive\|outline` |
140
+ | | `size` | `sm\|md\|lg` |
141
+ | **Avatar** | `size` | `sm\|md\|lg\|xl` |
142
+ | | `src` | `string` |
143
+ | | `fallback` | `string` |
144
+ | **Separator** | `orientation` | `horizontal\|vertical` |
145
+ | | `variant` | `default` |
146
+ | **Progress** | `value` | `number` |
147
+ | | `max` | `number` |
148
+ | | `size` | `sm\|md\|lg` |
149
+ | **Skeleton** | `variant` | `default\|circular\|text` |
150
+ | | `animation` | `pulse\|wave\|none` |
151
+ | **Alert** | `variant` | `default\|destructive\|warning\|success` |
152
+ | | `size` | `sm\|md\|lg` |
153
+ | **Breadcrumb** | `separator` | `string\|component` |
154
+ | | `maxItems` | `number` |
155
+ | **Tabs** | `value` | `string` |
156
+ | | `orientation` | `horizontal\|vertical` |
157
+ | **Accordion** | `type` | `single\|multiple` |
158
+ | | `collapsible` | `boolean` |
159
+ | **Navigation & Menu (6)** | | |
160
+ | **DropdownMenu** | `open` | `boolean` |
161
+ | | `modal` | `boolean` |
162
+ | **Menubar** | `value` | `string` |
163
+ | | `orientation` | `horizontal\|vertical` |
164
+ | **Pagination** | `page` | `number` |
165
+ | | `totalPages` | `number` |
166
+ | | `showEdges` | `boolean` |
167
+ | **Command** | `value` | `string` |
168
+ | | `filter` | `function` |
169
+ | **Collapsible** | `open` | `boolean` |
170
+ | | `disabled` | `boolean` |
171
+ | **Toggle** | `pressed` | `boolean` |
172
+ | | `variant` | `default\|outline` |
173
+ | | `size` | `sm\|md\|lg` |
174
+ | **Overlay & Modal (5)** | | |
175
+ | **Dialog** | `open` | `boolean` |
176
+ | | `modal` | `boolean` |
177
+ | **Sheet** | `open` | `boolean` |
178
+ | | `side` | `top\|bottom\|left\|right` |
179
+ | **Popover** | `open` | `boolean` |
180
+ | | `side` | `top\|bottom\|left\|right` |
181
+ | | `align` | `start\|center\|end` |
182
+ | **HoverCard** | `openDelay` | `number` |
183
+ | | `closeDelay` | `number` |
184
+ | **Tooltip** | `side` | `top\|bottom\|left\|right` |
185
+ | | `align` | `start\|center\|end` |
186
+ | | `delayDuration` | `number` |
187
+ | **Data & Table (4)** | | |
188
+ | **Table** | `variant` | `default` |
189
+ | | `size` | `sm\|md\|lg` |
190
+ | **DataTable** | `data` | `array` |
191
+ | | `columns` | `array` |
192
+ | | `searchable` | `boolean` |
193
+ | | `filterable` | `boolean` |
194
+ | | `sortable` | `boolean` |
195
+ | | `pagination` | `boolean` |
196
+ | **Calendar** | `mode` | `single\|multiple\|range` |
197
+ | | `selected` | `Date\|Date[]` |
198
+ | | `numberOfMonths` | `number` |
199
+ | **Toaster** | `position` | `top-left\|top-right\|bottom-left\|bottom-right` |
200
+ | | `richColors` | `boolean` |
201
+ | **Motion & Animation (3)** | | |
202
+ | **Motion** | `preset` | `fadeIn\|slideInUp\|scaleIn\|slideInLeft\|slideInRight` |
203
+ | | `duration` | `fast\|normal\|slow` |
204
+ | | `delay` | `number` |
205
+ | **LoadingSpinner** | `size` | `sm\|md\|lg\|xl` |
206
+ | | `variant` | `default\|dots\|pulse\|ring` |
207
+ | **Reveal** | `preset` | `fadeIn\|slideInUp\|slideInLeft\|slideInRight` |
208
+ | | `threshold` | `number` |
209
+
210
+ ---
211
+
212
+ ## 📐 Tier 2: Section Components (3 Standalone)
213
+
214
+ Section components are **standalone layout building blocks** that bridge individual components and complete page layouts. They provide reusable interface sections that can be used independently or combined to create custom layouts.
215
+
216
+ **Why use section components:**
217
+ - **Independent sections** - Use without full page layouts
218
+ - **Flexible composition** - Mix and match with any layout
219
+ - **Consistent styling** - Follow the same prop patterns as all UIKit components
220
+ - **Rapid prototyping** - Quickly build custom interface sections
221
+
222
+ | Component | Prop | Possible Values |
223
+ |-----------|------|-----------------|
224
+ | **Header** | `tone` | `clean\|subtle\|brand\|contrast` |
225
+ | | `size` | `sm\|md\|lg\|xl\|full` |
226
+ | | `position` | `sticky\|fixed\|relative` |
227
+ | | `navigation` | `NavigationItem[]` |
228
+ | | `logo` | `ReactNode` |
229
+ | | `actions` | `ReactNode` |
230
+ | **Footer** | `tone` | `clean\|subtle\|brand\|contrast` |
231
+ | | `size` | `sm\|md\|lg\|xl\|full` |
232
+ | | `position` | `sticky\|fixed\|relative` |
233
+ | | `navigation` | `NavigationItem[]` |
234
+ | | `copyright` | `string` |
235
+ | **Container** | `tone` | `clean\|subtle\|brand\|contrast` |
236
+ | | `size` | `sm\|md\|lg\|xl\|full` |
237
+ | | `sidebar` | `left\|right\|none` |
238
+ | | `navigation` | `NavigationItem[]` |
239
+ | | `onNavigate` | `function` |
240
+
241
+ ### Section Component Examples
242
+
243
+ #### Standalone Header
244
+ ```jsx
245
+ import { Header, HeaderLogo, HeaderNav } from '@bloomneo/uikit/header';
246
+
247
+ <Header tone="clean" size="xl" position="sticky">
248
+ <HeaderLogo>
249
+ <img src="/logo.png" alt="Logo" className="h-8 w-auto" />
250
+ </HeaderLogo>
251
+ <HeaderNav
252
+ navigation={navigation}
253
+ currentPath="/current"
254
+ onNavigate={handleNavigation}
255
+ />
256
+ </Header>
257
+ ```
258
+
259
+ #### Standalone Footer
260
+ ```jsx
261
+ import { Footer } from '@bloomneo/uikit/footer';
262
+
263
+ <Footer tone="contrast" size="xl" position="relative">
264
+ <div className="text-center py-4">
265
+ <p className="text-muted-foreground">© 2025 Company</p>
266
+ </div>
267
+ </Footer>
268
+ ```
269
+
270
+ #### Container with Sidebar
271
+ ```jsx
272
+ import { Container } from '@bloomneo/uikit/container';
273
+
274
+ <Container
275
+ tone="clean"
276
+ size="xl"
277
+ sidebar="left"
278
+ navigation={sidebarNav}
279
+ onNavigate={handleNavigation}
280
+ >
281
+ <MainContent />
282
+ </Container>
283
+ ```
284
+
285
+ ---
286
+
287
+ ## 🏗️ Tier 3: Layouts (5 Production-Ready)
288
+
289
+ Layouts are **complete page structures** that provide instant application scaffolding. They include built-in responsive design, routing support, and production-ready patterns used by thousands of applications.
290
+
291
+ **Why use layouts:**
292
+ - **Instant scaffolding** - Complete page structure in one component
293
+ - **Production-ready** - Battle-tested patterns from real applications
294
+ - **Responsive design** - Mobile-first approach with breakpoint handling
295
+ - **Routing integration** - Built-in navigation state management
296
+ - **Consistent behavior** - Standardized patterns across your application
297
+
298
+ ### Layout Decision Tree
299
+
300
+ ```
301
+ What are you building?
302
+ ├── Admin Dashboard/SaaS App → AdminLayout (compound pattern)
303
+ ├── Marketing Website → PageLayout (compound pattern)
304
+ ├── Authentication Pages → AuthLayout (single pattern)
305
+ ├── Error/Simple Pages → BlankLayout (single pattern)
306
+ └── Browser Extensions → PopupLayout (single pattern)
307
+ ```
308
+
309
+ ### Layout Reference
310
+
311
+ | Layout | Child Component | Prop | Possible Values |
312
+ |--------|----------------|------|-----------------|
313
+ | **AdminLayout** | | `scheme` | `sidebar\|compact` |
314
+ | | | `tone` | `clean\|subtle\|brand\|contrast` |
315
+ | | | `size` | `sm\|md\|lg\|xl\|full` |
316
+ | | | `defaultSidebarOpen` | `boolean` |
317
+ | | **AdminLayout.Header** | `title` | `string` |
318
+ | | | `position` | `sticky\|fixed\|relative` |
319
+ | | | `breadcrumbs` | `array` |
320
+ | | | `actions` | `ReactNode` |
321
+ | | **AdminLayout.Sidebar** | `navigation` | `NavigationItem[]` |
322
+ | | | `currentPath` | `string` |
323
+ | | | `onNavigate` | `function` |
324
+ | | | `logo` | `ReactNode` |
325
+ | | | `footer` | `ReactNode` |
326
+ | | **AdminLayout.Content** | `className` | `string` |
327
+ | **PageLayout** | | `scheme` | `base\|sidebar` |
328
+ | | | `tone` | `clean\|subtle\|brand\|contrast` |
329
+ | | | `size` | `sm\|md\|lg\|xl\|full` |
330
+ | | **PageLayout.Header** | `navigation` | `NavigationItem[]` |
331
+ | | | `currentPath` | `string` |
332
+ | | | `onNavigate` | `function` |
333
+ | | | `logo` | `ReactNode` |
334
+ | | | `title` | `string` |
335
+ | | | `actions` | `ReactNode` |
336
+ | | **PageLayout.Content** | `title` | `string` |
337
+ | | | `breadcrumbs` | `array` |
338
+ | | | `sidebar` | `none\|left\|right` |
339
+ | | | `sidebarContent` | `ReactNode` |
340
+ | | **PageLayout.Footer** | `navigation` | `NavigationItem[]` |
341
+ | | | `copyright` | `string` |
342
+ | **AuthLayout** | | `scheme` | `simple\|card\|split\|hero` |
343
+ | | | `tone` | `clean\|subtle\|brand\|contrast` |
344
+ | | | `size` | `sm\|md\|lg\|xl\|full` |
345
+ | | | `title` | `string` |
346
+ | | | `subtitle` | `string` |
347
+ | | | `logo` | `ReactNode` |
348
+ | | | `imageUrl` | `string` |
349
+ | **BlankLayout** | | `scheme` | `simple\|card` |
350
+ | | | `tone` | `clean\|subtle\|brand\|contrast` |
351
+ | | | `size` | `sm\|md\|lg\|xl\|full` |
352
+ | **PopupLayout** | | `scheme` | `modal\|drawer\|floating` |
353
+ | | | `tone` | `clean\|subtle\|brand\|contrast` |
354
+ | | | `size` | `sm\|md\|lg\|xl\|full` |
355
+ | | | `title` | `string` |
356
+ | | | `showClose` | `boolean` |
357
+ | | | `onClose` | `function` |
358
+
359
+ ### Layout Examples
360
+
361
+ #### AdminLayout (Compound Pattern)
362
+ ```jsx
363
+ import { AdminLayout } from '@bloomneo/uikit/admin';
364
+
365
+ // Compound pattern: Use child components
366
+ <AdminLayout scheme="sidebar" tone="subtle" size="lg">
367
+ <AdminLayout.Header
368
+ title="Dashboard"
369
+ position="sticky"
370
+ breadcrumbs={breadcrumbs}
371
+ actions={<Button>Export</Button>}
372
+ />
373
+ <AdminLayout.Sidebar
374
+ navigation={navigation}
375
+ currentPath="/admin"
376
+ onNavigate={handleNavigation}
377
+ logo={<Logo />}
378
+ />
379
+ <AdminLayout.Content>
380
+ <DataTable data={users} columns={columns} />
381
+ </AdminLayout.Content>
382
+ </AdminLayout>
383
+ ```
384
+
385
+ #### PageLayout (Compound Pattern)
386
+ ```jsx
387
+ import { PageLayout } from '@bloomneo/uikit/page';
388
+
389
+ // Compound pattern: Use child components
390
+ <PageLayout scheme="base" tone="clean" size="xl">
391
+ <PageLayout.Header
392
+ logo="MyApp"
393
+ navigation={navigation}
394
+ currentPath="/"
395
+ onNavigate={handleNavigation}
396
+ />
397
+ <PageLayout.Content>
398
+ <h1 className="text-foreground">Welcome</h1>
399
+ <p className="text-muted-foreground">Build amazing apps</p>
400
+ </PageLayout.Content>
401
+ <PageLayout.Footer copyright="© 2025 MyApp" />
402
+ </PageLayout>
403
+ ```
404
+
405
+ #### AuthLayout (Single Pattern)
406
+ ```jsx
407
+ import { AuthLayout } from '@bloomneo/uikit/auth';
408
+
409
+ // Single pattern: Direct children
410
+ <AuthLayout scheme="card" tone="clean" size="md">
411
+ <ValidatedInput
412
+ type="email"
413
+ required
414
+ label="Email"
415
+ placeholder="Enter your email"
416
+ />
417
+ <ValidatedInput
418
+ type="password"
419
+ required
420
+ label="Password"
421
+ showPasswordToggle
422
+ />
423
+ <Button variant="default" size="md" className="w-full">
424
+ Sign In
425
+ </Button>
426
+ </AuthLayout>
427
+ ```
428
+
429
+ ---
430
+
431
+ ## 🎨 Common Prop Patterns
432
+
433
+ UIKit follows consistent naming conventions across similar component types:
434
+
435
+ ### Layout Props (AdminLayout, PageLayout, etc.)
436
+ ```jsx
437
+ <Layout
438
+ scheme="sidebar" // Layout structure
439
+ tone="subtle" // Visual emphasis
440
+ size="lg" // Layout dimensions
441
+ />
442
+ ```
443
+
444
+ ### Component Props (Button, Input, Card, etc.)
445
+ ```jsx
446
+ <Component
447
+ variant="default" // Visual style (where applicable)
448
+ size="md" // Component sizing (where applicable)
449
+ />
450
+ ```
451
+
452
+ ### Size System
453
+ | Size | Layout Width | Sidebar Width | Usage |
454
+ | ------ | ------------ | ------------- | ----------------- |
455
+ | `sm` | 672px | 192px | Compact interfaces |
456
+ | `md` | 896px | 224px | Standard content |
457
+ | `lg` | 1152px | 256px | Wide content |
458
+ | `xl` | 1280px | 288px | Full-width layouts |
459
+ | `full` | 100% | 320px | Edge-to-edge |
460
+
461
+ ### Tone System
462
+ | Tone | Background | Usage |
463
+ | ---------- | --------------- | ------------------------ |
464
+ | `clean` | Pure white/light | Minimal, marketing pages |
465
+ | `subtle` | Light gray | Professional, admin panels |
466
+ | `brand` | Primary color | Headers, CTAs, emphasis |
467
+ | `contrast` | Dark/bold | Footers, high contrast |
468
+
469
+ ---
470
+
471
+ ## 🧭 Navigation System
472
+
473
+ ### Navigation Structure
474
+ ```typescript
475
+ interface NavigationItem {
476
+ key: string; // REQUIRED: Unique identifier
477
+ label: string; // REQUIRED: Display text
478
+ href?: string; // For page navigation
479
+ onClick?: () => void; // For actions/functions
480
+ icon?: ComponentType; // Lucide React icon
481
+ badge?: string; // Notification badge
482
+ isActive?: boolean; // Current page indicator
483
+ items?: NavigationItem[]; // Submenu (max 2 levels)
484
+ }
485
+ ```
486
+
487
+ ### Navigation Examples
488
+ ```jsx
489
+ const navigation = [
490
+ {
491
+ key: 'dashboard',
492
+ label: 'Dashboard',
493
+ href: '/admin',
494
+ icon: LayoutDashboard,
495
+ isActive: true,
496
+ },
497
+ {
498
+ key: 'users',
499
+ label: 'Users',
500
+ icon: Users,
501
+ badge: '12',
502
+ items: [
503
+ { key: 'list', label: 'All Users', href: '/admin/users' },
504
+ { key: 'new', label: 'Add User', href: '/admin/users/new' },
505
+ ],
506
+ },
507
+ {
508
+ key: 'logout',
509
+ label: 'Logout',
510
+ icon: LogOut,
511
+ onClick: () => handleLogout(),
512
+ },
513
+ ];
514
+ ```
515
+
516
+ ### Navigation Handlers
517
+ ```jsx
518
+ const handleNavigation = (href, item) => {
519
+ if (item.onClick) {
520
+ item.onClick(); // Execute custom function
521
+ } else if (href) {
522
+ navigate(href); // React Router
523
+ // router.push(href); // Next.js
524
+ // window.location.href = href; // Simple navigation
525
+ }
526
+ };
527
+ ```
528
+
529
+ ---
530
+
531
+ ## 🚀 Quick Start Patterns
532
+
533
+ ### 1. Simple Page with Components
534
+ ```jsx
535
+ import { Card, CardContent, CardHeader, CardTitle } from '@bloomneo/uikit/card';
536
+ import { Button } from '@bloomneo/uikit/button';
537
+
538
+ function SimplePage() {
539
+ return (
540
+ <div className="p-6 bg-background">
541
+ <Card className="max-w-md">
542
+ <CardHeader>
543
+ <CardTitle>Welcome</CardTitle>
544
+ </CardHeader>
545
+ <CardContent>
546
+ <p className="text-muted-foreground">Get started with UIKit</p>
547
+ <Button className="mt-4">Continue</Button>
548
+ </CardContent>
549
+ </Card>
550
+ </div>
551
+ );
552
+ }
553
+ ```
554
+
555
+ ### 2. Complete Admin Interface
556
+ ```jsx
557
+ import { AdminLayout } from '@bloomneo/uikit/admin';
558
+ import { DataTable } from '@bloomneo/uikit/data-table';
559
+
560
+ function AdminDashboard() {
561
+ return (
562
+ <AdminLayout scheme="sidebar" tone="subtle" size="lg">
563
+ <AdminLayout.Header title="Users" />
564
+ <AdminLayout.Sidebar navigation={nav} />
565
+ <AdminLayout.Content>
566
+ <DataTable
567
+ data={users}
568
+ columns={columns}
569
+ searchable
570
+ pagination
571
+ />
572
+ </AdminLayout.Content>
573
+ </AdminLayout>
574
+ );
575
+ }
576
+ ```
577
+
578
+ ### 3. Marketing Site
579
+ ```jsx
580
+ import { PageLayout } from '@bloomneo/uikit/page';
581
+
582
+ function MarketingSite() {
583
+ return (
584
+ <PageLayout scheme="base" tone="clean" size="xl">
585
+ <PageLayout.Header logo="MyApp" navigation={nav} />
586
+ <PageLayout.Content>
587
+ <div className="text-center py-20">
588
+ <h1 className="text-4xl font-bold text-foreground">
589
+ Build Better Apps
590
+ </h1>
591
+ <p className="text-muted-foreground mt-4">
592
+ With UIKit's composite system
593
+ </p>
594
+ </div>
595
+ </PageLayout.Content>
596
+ <PageLayout.Footer />
597
+ </PageLayout>
598
+ );
599
+ }
600
+ ```
601
+
602
+ ---
603
+
604
+ ## 💡 Best Practices
605
+
606
+ ### ✅ Do This
607
+ - **Use semantic colors** for theme compatibility
608
+ - **Individual imports** for better tree-shaking
609
+ - **Compound patterns** for AdminLayout and PageLayout
610
+ - **Single patterns** for AuthLayout, BlankLayout, PopupLayout
611
+ - **Consistent props** (scheme, tone, size) across components
612
+
613
+ ### ❌ Avoid This
614
+ - **Hardcoded colors** that break in themes
615
+ - **Barrel imports** that increase bundle size
616
+ - **Wrong layout patterns** (single vs compound)
617
+ - **Inconsistent navigation** structure
618
+ - **Missing semantic classes**
619
+
620
+ ### Component Selection Guide
621
+ ```jsx
622
+ // Forms with validation → Use Enhanced Components
623
+ <ValidatedInput type="email" required />
624
+
625
+ // Simple forms → Use Basic Components
626
+ <Input placeholder="Search..." />
627
+
628
+ // Complex data → Use DataTable
629
+ <DataTable data={users} searchable filterable />
630
+
631
+ // Simple data → Use Table
632
+ <Table>
633
+ <TableBody>
634
+ <TableRow>...</TableRow>
635
+ </TableBody>
636
+ </Table>
637
+ ```
638
+
639
+ ---
640
+
641
+ ## 📚 Related Guides
642
+
643
+ - **[UIKit Theme Guide](./UIKIT_THEME_GUIDE.md)** - Custom theming and colors
644
+ - **[UIKit LLM Guide](./UIKIT_LLM_GUIDE.md)** - Complete implementation reference
645
+ - **[GitHub Repository](https://github.com/bloomneo/uikit)** - Source code and examples
646
+
647
+ ---
648
+
649
+ **Build beautiful, consistent interfaces with UIKit's Composite UI System** ✨