@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,288 @@
1
+ import React from 'react';
2
+ import { Button } from '@bloomneo/uikit/button';
3
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@bloomneo/uikit/card';
4
+ import { Badge } from '@bloomneo/uikit/badge';
5
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@bloomneo/uikit/tabs';
6
+ import { SEO } from '../components';
7
+
8
+ export const ComponentsPage: React.FC = () => {
9
+ return (
10
+ <>
11
+ <SEO
12
+ title="Components - UIKit Multi-Page Demo"
13
+ description="Comprehensive showcase of UIKit's production-ready React components with examples and variations"
14
+ />
15
+ <div className="space-y-8">
16
+ <div className="text-center space-y-4">
17
+ <h1 className="voila-heading text-4xl">Component Library</h1>
18
+ <p className="voila-subheading text-muted-foreground max-w-3xl mx-auto">
19
+ Comprehensive showcase of UIKit's production-ready React components with examples and variations
20
+ </p>
21
+ </div>
22
+
23
+ <Tabs defaultValue="buttons" className="space-y-6">
24
+ <TabsList className="grid w-full grid-cols-4">
25
+ <TabsTrigger value="buttons">Buttons</TabsTrigger>
26
+ <TabsTrigger value="cards">Cards</TabsTrigger>
27
+ <TabsTrigger value="forms">Forms</TabsTrigger>
28
+ <TabsTrigger value="display">Display</TabsTrigger>
29
+ </TabsList>
30
+
31
+ <TabsContent value="buttons" className="space-y-6">
32
+ <Card>
33
+ <CardHeader>
34
+ <CardTitle className="flex items-center gap-2">
35
+ <div className="w-8 h-8 bg-primary/10 rounded flex items-center justify-center">
36
+ 🔘
37
+ </div>
38
+ Button Variants
39
+ </CardTitle>
40
+ <CardDescription>Interactive elements with multiple variants, sizes, and states</CardDescription>
41
+ </CardHeader>
42
+ <CardContent className="space-y-6">
43
+ <div className="space-y-4">
44
+ <h4 className="text-sm font-medium text-muted-foreground">Primary Actions</h4>
45
+ <div className="flex flex-wrap gap-3">
46
+ <Button size="lg">Primary</Button>
47
+ <Button variant="secondary" size="lg">Secondary</Button>
48
+ <Button variant="outline" size="lg">Outline</Button>
49
+ <Button variant="ghost" size="lg">Ghost</Button>
50
+ <Button variant="destructive" size="lg">Destructive</Button>
51
+ </div>
52
+ </div>
53
+
54
+ <div className="space-y-4">
55
+ <h4 className="text-sm font-medium text-muted-foreground">Size Variations</h4>
56
+ <div className="flex flex-wrap items-center gap-3">
57
+ <Button size="sm">Small</Button>
58
+ <Button>Default</Button>
59
+ <Button size="lg">Large</Button>
60
+ </div>
61
+ </div>
62
+
63
+ <div className="space-y-4">
64
+ <h4 className="text-sm font-medium text-muted-foreground">States & Loading</h4>
65
+ <div className="flex flex-wrap gap-3">
66
+ <Button>Normal</Button>
67
+ <Button disabled>Disabled</Button>
68
+ <Button className="opacity-50 cursor-not-allowed">Loading...</Button>
69
+ </div>
70
+ </div>
71
+ </CardContent>
72
+ </Card>
73
+
74
+ <Card>
75
+ <CardHeader>
76
+ <CardTitle>Badges & Labels</CardTitle>
77
+ <CardDescription>Small status indicators and labels</CardDescription>
78
+ </CardHeader>
79
+ <CardContent className="space-y-4">
80
+ <div className="flex flex-wrap gap-3">
81
+ <Badge>Default</Badge>
82
+ <Badge variant="secondary">Secondary</Badge>
83
+ <Badge variant="destructive">Error</Badge>
84
+ <Badge variant="outline">Outline</Badge>
85
+ </div>
86
+ </CardContent>
87
+ </Card>
88
+ </TabsContent>
89
+
90
+ <TabsContent value="cards" className="space-y-6">
91
+ <Card>
92
+ <CardHeader>
93
+ <CardTitle className="flex items-center gap-2">
94
+ <div className="w-8 h-8 bg-secondary/10 rounded flex items-center justify-center">
95
+ 📋
96
+ </div>
97
+ Card Layouts
98
+ </CardTitle>
99
+ <CardDescription>Flexible containers for displaying content and actions</CardDescription>
100
+ </CardHeader>
101
+ <CardContent>
102
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
103
+ <Card className="border-2">
104
+ <CardHeader>
105
+ <CardTitle className="text-lg">Simple Card</CardTitle>
106
+ <CardDescription>Basic card with header and content</CardDescription>
107
+ </CardHeader>
108
+ <CardContent>
109
+ <p className="text-sm text-muted-foreground">
110
+ Cards provide a flexible container for content with consistent spacing and styling.
111
+ </p>
112
+ </CardContent>
113
+ </Card>
114
+
115
+ <Card className="border-2 bg-primary/5">
116
+ <CardHeader>
117
+ <CardTitle className="text-lg">Action Card</CardTitle>
118
+ <CardDescription>Card with interactive elements</CardDescription>
119
+ </CardHeader>
120
+ <CardContent className="space-y-3">
121
+ <p className="text-sm text-muted-foreground">
122
+ Enhanced with buttons and other interactive components.
123
+ </p>
124
+ <Button size="sm" className="w-full">Take Action</Button>
125
+ </CardContent>
126
+ </Card>
127
+
128
+ <Card className="border-2 border-dashed">
129
+ <CardHeader>
130
+ <CardTitle className="text-lg">Custom Styled</CardTitle>
131
+ <CardDescription>Customizable appearance</CardDescription>
132
+ </CardHeader>
133
+ <CardContent>
134
+ <p className="text-sm text-muted-foreground">
135
+ Easy to customize with different borders, backgrounds, and layouts.
136
+ </p>
137
+ </CardContent>
138
+ </Card>
139
+ </div>
140
+ </CardContent>
141
+ </Card>
142
+ </TabsContent>
143
+
144
+ <TabsContent value="forms" className="space-y-6">
145
+ <Card>
146
+ <CardHeader>
147
+ <CardTitle className="flex items-center gap-2">
148
+ <div className="w-8 h-8 bg-accent/10 rounded flex items-center justify-center">
149
+ 📝
150
+ </div>
151
+ Form Controls
152
+ </CardTitle>
153
+ <CardDescription>Input fields and form controls with consistent styling</CardDescription>
154
+ </CardHeader>
155
+ <CardContent className="space-y-6">
156
+ <div className="space-y-4">
157
+ <h4 className="text-sm font-medium text-muted-foreground">Text Inputs</h4>
158
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
159
+ <div className="space-y-2">
160
+ <label className="text-sm font-medium">Standard Input</label>
161
+ <input
162
+ type="text"
163
+ placeholder="Enter your text"
164
+ className="w-full p-3 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring"
165
+ />
166
+ </div>
167
+ <div className="space-y-2">
168
+ <label className="text-sm font-medium">Email Input</label>
169
+ <input
170
+ type="email"
171
+ placeholder="your@email.com"
172
+ className="w-full p-3 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring"
173
+ />
174
+ </div>
175
+ </div>
176
+ </div>
177
+
178
+ <div className="space-y-4">
179
+ <h4 className="text-sm font-medium text-muted-foreground">Selection Controls</h4>
180
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
181
+ <div className="space-y-2">
182
+ <label className="text-sm font-medium">Dropdown Select</label>
183
+ <select className="w-full p-3 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring">
184
+ <option>Choose an option</option>
185
+ <option>Option 1</option>
186
+ <option>Option 2</option>
187
+ <option>Option 3</option>
188
+ </select>
189
+ </div>
190
+ <div className="space-y-2">
191
+ <label className="text-sm font-medium">Multi-select</label>
192
+ <select multiple size={3} className="w-full p-3 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring">
193
+ <option>Option A</option>
194
+ <option>Option B</option>
195
+ <option>Option C</option>
196
+ </select>
197
+ </div>
198
+ </div>
199
+ </div>
200
+
201
+ <div className="space-y-4">
202
+ <h4 className="text-sm font-medium text-muted-foreground">Text Areas</h4>
203
+ <div className="space-y-2">
204
+ <label className="text-sm font-medium">Message</label>
205
+ <textarea
206
+ placeholder="Enter your message here..."
207
+ rows={4}
208
+ className="w-full p-3 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring resize-none"
209
+ />
210
+ </div>
211
+ </div>
212
+ </CardContent>
213
+ </Card>
214
+ </TabsContent>
215
+
216
+ <TabsContent value="display" className="space-y-6">
217
+ <Card>
218
+ <CardHeader>
219
+ <CardTitle className="flex items-center gap-2">
220
+ <div className="w-8 h-8 bg-chart1/10 rounded flex items-center justify-center">
221
+ 📊
222
+ </div>
223
+ Data Display
224
+ </CardTitle>
225
+ <CardDescription>Components for presenting structured information</CardDescription>
226
+ </CardHeader>
227
+ <CardContent className="space-y-6">
228
+ <div className="space-y-4">
229
+ <h4 className="text-sm font-medium text-muted-foreground">Chart Colors</h4>
230
+ <div className="grid grid-cols-5 gap-3">
231
+ {[1, 2, 3, 4, 5].map(i => (
232
+ <div key={i} className="text-center">
233
+ <div className={`w-full h-16 rounded-lg mb-2 bg-chart${i} shadow-sm`} />
234
+ <div className="text-xs text-muted-foreground font-medium">Chart {i}</div>
235
+ </div>
236
+ ))}
237
+ </div>
238
+ </div>
239
+
240
+ <div className="space-y-4">
241
+ <h4 className="text-sm font-medium text-muted-foreground">Status Indicators</h4>
242
+ <div className="flex flex-wrap gap-3">
243
+ <div className="inline-flex items-center gap-2 bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm">
244
+ <div className="w-2 h-2 bg-green-600 rounded-full"></div>
245
+ Active
246
+ </div>
247
+ <div className="inline-flex items-center gap-2 bg-yellow-100 text-yellow-800 px-3 py-1 rounded-full text-sm">
248
+ <div className="w-2 h-2 bg-yellow-600 rounded-full"></div>
249
+ Pending
250
+ </div>
251
+ <div className="inline-flex items-center gap-2 bg-red-100 text-red-800 px-3 py-1 rounded-full text-sm">
252
+ <div className="w-2 h-2 bg-red-600 rounded-full"></div>
253
+ Inactive
254
+ </div>
255
+ <div className="inline-flex items-center gap-2 bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">
256
+ <div className="w-2 h-2 bg-blue-600 rounded-full"></div>
257
+ Processing
258
+ </div>
259
+ </div>
260
+ </div>
261
+ </CardContent>
262
+ </Card>
263
+
264
+ <Card>
265
+ <CardHeader>
266
+ <CardTitle>Typography Scale</CardTitle>
267
+ <CardDescription>Text hierarchy and styling examples</CardDescription>
268
+ </CardHeader>
269
+ <CardContent className="space-y-4">
270
+ <div className="space-y-3">
271
+ <h1 className="text-3xl font-bold">Heading 1 - Main Title</h1>
272
+ <h2 className="text-2xl font-bold">Heading 2 - Section Title</h2>
273
+ <h3 className="text-xl font-bold">Heading 3 - Subsection</h3>
274
+ <h4 className="text-lg font-semibold">Heading 4 - Component Title</h4>
275
+ <p className="text-base">Body text - Lorem ipsum dolor sit amet consectetur adipiscing elit.</p>
276
+ <p className="text-sm text-muted-foreground">Small text for captions, metadata, and secondary information.</p>
277
+ <code className="text-sm bg-muted px-2 py-1 rounded font-mono">Code snippet example</code>
278
+ </div>
279
+ </CardContent>
280
+ </Card>
281
+ </TabsContent>
282
+ </Tabs>
283
+ </div>
284
+ </>
285
+ );
286
+ };
287
+
288
+ export default ComponentsPage;
@@ -0,0 +1,348 @@
1
+ import React, { useState } from 'react';
2
+ import { Button } from '@bloomneo/uikit/button';
3
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@bloomneo/uikit/card';
4
+ import { Badge } from '@bloomneo/uikit/badge';
5
+ import {
6
+ Mail,
7
+ MessageSquare,
8
+ Send,
9
+ CheckCircle,
10
+ AlertCircle,
11
+ User,
12
+ Building,
13
+ Phone
14
+ } from 'lucide-react';
15
+
16
+ export const ContactPage: React.FC = () => {
17
+ const [formData, setFormData] = useState({
18
+ name: '',
19
+ email: '',
20
+ company: '',
21
+ phone: '',
22
+ subject: '',
23
+ message: '',
24
+ inquiryType: 'general'
25
+ });
26
+
27
+ const [isSubmitting, setIsSubmitting] = useState(false);
28
+ const [isSubmitted, setIsSubmitted] = useState(false);
29
+
30
+ const handleInputChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => {
31
+ const { name, value } = e.target;
32
+ setFormData(prev => ({
33
+ ...prev,
34
+ [name]: value
35
+ }));
36
+ };
37
+
38
+ const handleSubmit = async (e: React.FormEvent) => {
39
+ e.preventDefault();
40
+ setIsSubmitting(true);
41
+
42
+ // Simulate form submission
43
+ await new Promise(resolve => setTimeout(resolve, 2000));
44
+
45
+ setIsSubmitting(false);
46
+ setIsSubmitted(true);
47
+
48
+ // Reset form after 3 seconds
49
+ setTimeout(() => {
50
+ setIsSubmitted(false);
51
+ setFormData({
52
+ name: '',
53
+ email: '',
54
+ company: '',
55
+ phone: '',
56
+ subject: '',
57
+ message: '',
58
+ inquiryType: 'general'
59
+ });
60
+ }, 3000);
61
+ };
62
+
63
+ const inquiryTypes = [
64
+ { value: 'general', label: 'General Inquiry', icon: MessageSquare },
65
+ { value: 'support', label: 'Technical Support', icon: AlertCircle },
66
+ { value: 'business', label: 'Business Partnership', icon: Building },
67
+ { value: 'feedback', label: 'Feedback & Suggestions', icon: CheckCircle }
68
+ ];
69
+
70
+ if (isSubmitted) {
71
+ return (
72
+ <div className="max-w-2xl mx-auto text-center space-y-6 py-16">
73
+ <div className="w-20 h-20 bg-green-100 rounded-full flex items-center justify-center mx-auto">
74
+ <CheckCircle className="h-10 w-10 text-green-600" />
75
+ </div>
76
+ <h1 className="text-3xl font-bold text-green-700">Message Sent!</h1>
77
+ <p className="text-muted-foreground max-w-md mx-auto">
78
+ Thank you for reaching out. We've received your message and will get back to you within 24 hours.
79
+ </p>
80
+ <div className="bg-green-50 border border-green-200 rounded-lg p-4 max-w-md mx-auto">
81
+ <p className="text-sm text-green-700">
82
+ <strong>What's next?</strong><br />
83
+ Our team will review your message and respond via email.
84
+ For urgent matters, please call our support line.
85
+ </p>
86
+ </div>
87
+ </div>
88
+ );
89
+ }
90
+
91
+ return (
92
+ <div className="space-y-8">
93
+ <div className="text-center space-y-4">
94
+ <h1 className="voila-heading text-4xl">Get in Touch</h1>
95
+ <p className="voila-subheading text-muted-foreground max-w-3xl mx-auto">
96
+ Have questions about UIKit? Need support? Want to provide feedback? We'd love to hear from you.
97
+ </p>
98
+ </div>
99
+
100
+ <div className="grid grid-cols-1 lg:grid-cols-3 gap-8">
101
+ {/* Contact Form */}
102
+ <div className="lg:col-span-2">
103
+ <Card>
104
+ <CardHeader>
105
+ <CardTitle className="flex items-center gap-2">
106
+ <Send className="h-5 w-5" />
107
+ Send us a Message
108
+ </CardTitle>
109
+ <CardDescription>
110
+ Fill out the form below and we'll get back to you as soon as possible
111
+ </CardDescription>
112
+ </CardHeader>
113
+ <CardContent>
114
+ <form onSubmit={handleSubmit} className="space-y-6">
115
+ {/* Inquiry Type */}
116
+ <div className="space-y-3">
117
+ <label className="text-sm font-medium">What can we help you with?</label>
118
+ <div className="grid grid-cols-2 gap-3">
119
+ {inquiryTypes.map(type => {
120
+ const Icon = type.icon;
121
+ return (
122
+ <label key={type.value} className="cursor-pointer">
123
+ <input
124
+ type="radio"
125
+ name="inquiryType"
126
+ value={type.value}
127
+ checked={formData.inquiryType === type.value}
128
+ onChange={handleInputChange}
129
+ className="sr-only"
130
+ />
131
+ <div className={`p-3 border-2 rounded-lg text-center transition-all ${
132
+ formData.inquiryType === type.value
133
+ ? 'border-primary bg-primary/5 text-primary'
134
+ : 'border-input hover:border-primary/30'
135
+ }`}>
136
+ <Icon className="h-5 w-5 mx-auto mb-2" />
137
+ <div className="text-sm font-medium">{type.label}</div>
138
+ </div>
139
+ </label>
140
+ );
141
+ })}
142
+ </div>
143
+ </div>
144
+
145
+ {/* Personal Information */}
146
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
147
+ <div className="space-y-2">
148
+ <label className="text-sm font-medium flex items-center gap-2">
149
+ <User className="h-4 w-4" />
150
+ Full Name *
151
+ </label>
152
+ <input
153
+ type="text"
154
+ name="name"
155
+ value={formData.name}
156
+ onChange={handleInputChange}
157
+ required
158
+ className="w-full p-3 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring"
159
+ placeholder="Enter your full name"
160
+ />
161
+ </div>
162
+
163
+ <div className="space-y-2">
164
+ <label className="text-sm font-medium flex items-center gap-2">
165
+ <Mail className="h-4 w-4" />
166
+ Email Address *
167
+ </label>
168
+ <input
169
+ type="email"
170
+ name="email"
171
+ value={formData.email}
172
+ onChange={handleInputChange}
173
+ required
174
+ className="w-full p-3 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring"
175
+ placeholder="your@email.com"
176
+ />
177
+ </div>
178
+
179
+ <div className="space-y-2">
180
+ <label className="text-sm font-medium flex items-center gap-2">
181
+ <Building className="h-4 w-4" />
182
+ Company
183
+ </label>
184
+ <input
185
+ type="text"
186
+ name="company"
187
+ value={formData.company}
188
+ onChange={handleInputChange}
189
+ className="w-full p-3 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring"
190
+ placeholder="Your company name"
191
+ />
192
+ </div>
193
+
194
+ <div className="space-y-2">
195
+ <label className="text-sm font-medium flex items-center gap-2">
196
+ <Phone className="h-4 w-4" />
197
+ Phone Number
198
+ </label>
199
+ <input
200
+ type="tel"
201
+ name="phone"
202
+ value={formData.phone}
203
+ onChange={handleInputChange}
204
+ className="w-full p-3 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring"
205
+ placeholder="(555) 123-4567"
206
+ />
207
+ </div>
208
+ </div>
209
+
210
+ {/* Subject */}
211
+ <div className="space-y-2">
212
+ <label className="text-sm font-medium">Subject *</label>
213
+ <input
214
+ type="text"
215
+ name="subject"
216
+ value={formData.subject}
217
+ onChange={handleInputChange}
218
+ required
219
+ className="w-full p-3 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring"
220
+ placeholder="Brief description of your inquiry"
221
+ />
222
+ </div>
223
+
224
+ {/* Message */}
225
+ <div className="space-y-2">
226
+ <label className="text-sm font-medium">Message *</label>
227
+ <textarea
228
+ name="message"
229
+ value={formData.message}
230
+ onChange={handleInputChange}
231
+ required
232
+ rows={5}
233
+ className="w-full p-3 bg-background border border-input rounded-lg focus:outline-none focus:ring-2 focus:ring-ring resize-none"
234
+ placeholder="Please provide detailed information about your inquiry..."
235
+ />
236
+ </div>
237
+
238
+ {/* Submit Button */}
239
+ <Button
240
+ type="submit"
241
+ size="lg"
242
+ className="w-full"
243
+ disabled={isSubmitting}
244
+ >
245
+ {isSubmitting ? (
246
+ <>
247
+ <div className="w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin mr-2" />
248
+ Sending Message...
249
+ </>
250
+ ) : (
251
+ <>
252
+ <Send className="h-4 w-4 mr-2" />
253
+ Send Message
254
+ </>
255
+ )}
256
+ </Button>
257
+ </form>
258
+ </CardContent>
259
+ </Card>
260
+ </div>
261
+
262
+ {/* Contact Information & FAQ */}
263
+ <div className="space-y-6">
264
+ {/* Contact Info */}
265
+ <Card>
266
+ <CardHeader>
267
+ <CardTitle className="flex items-center gap-2">
268
+ <MessageSquare className="h-5 w-5" />
269
+ Other Ways to Reach Us
270
+ </CardTitle>
271
+ </CardHeader>
272
+ <CardContent className="space-y-4">
273
+ <div className="space-y-3">
274
+ <div className="flex items-start gap-3">
275
+ <Mail className="h-5 w-5 text-muted-foreground mt-0.5" />
276
+ <div>
277
+ <div className="font-medium">Email Support</div>
278
+ <div className="text-sm text-muted-foreground">support@bloomneo.com</div>
279
+ <Badge variant="secondary" className="mt-1">24-48h response</Badge>
280
+ </div>
281
+ </div>
282
+
283
+ <div className="flex items-start gap-3">
284
+ <MessageSquare className="h-5 w-5 text-muted-foreground mt-0.5" />
285
+ <div>
286
+ <div className="font-medium">Live Chat</div>
287
+ <div className="text-sm text-muted-foreground">Available Mon-Fri 9AM-5PM PST</div>
288
+ <Badge variant="secondary" className="mt-1">Instant response</Badge>
289
+ </div>
290
+ </div>
291
+
292
+ <div className="flex items-start gap-3">
293
+ <Building className="h-5 w-5 text-muted-foreground mt-0.5" />
294
+ <div>
295
+ <div className="font-medium">Enterprise Sales</div>
296
+ <div className="text-sm text-muted-foreground">For custom solutions & partnerships</div>
297
+ <Badge variant="secondary" className="mt-1">Same day response</Badge>
298
+ </div>
299
+ </div>
300
+ </div>
301
+ </CardContent>
302
+ </Card>
303
+
304
+ {/* FAQ */}
305
+ <Card>
306
+ <CardHeader>
307
+ <CardTitle>Frequently Asked</CardTitle>
308
+ <CardDescription>Quick answers to common questions</CardDescription>
309
+ </CardHeader>
310
+ <CardContent className="space-y-4">
311
+ <div className="space-y-3">
312
+ <div>
313
+ <div className="font-medium text-sm">How do I get started with UIKit?</div>
314
+ <div className="text-sm text-muted-foreground mt-1">
315
+ Run <code className="bg-muted px-1 rounded">npx create-uikit my-app</code> to create a new project.
316
+ </div>
317
+ </div>
318
+
319
+ <div>
320
+ <div className="font-medium text-sm">Is UIKit free to use?</div>
321
+ <div className="text-sm text-muted-foreground mt-1">
322
+ Yes, UIKit is open source and free for both personal and commercial use.
323
+ </div>
324
+ </div>
325
+
326
+ <div>
327
+ <div className="font-medium text-sm">Can I customize the themes?</div>
328
+ <div className="text-sm text-muted-foreground mt-1">
329
+ Absolutely! Create custom themes using our theming system and OKLCH colors.
330
+ </div>
331
+ </div>
332
+
333
+ <div>
334
+ <div className="font-medium text-sm">Do you provide support?</div>
335
+ <div className="text-sm text-muted-foreground mt-1">
336
+ Yes, we offer community support via GitHub and premium support for enterprises.
337
+ </div>
338
+ </div>
339
+ </div>
340
+ </CardContent>
341
+ </Card>
342
+ </div>
343
+ </div>
344
+ </div>
345
+ );
346
+ };
347
+
348
+ export default ContactPage;