@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,813 @@
1
+ /**
2
+ * LLM-optimized type definitions for @bloomneo/uikit - COMPLETE & CONSISTENT
3
+ * @module @bloomneo/uikit
4
+ * @file src/types/index.ts
5
+ */
6
+ import type { ComponentType, ReactNode, HTMLAttributes } from 'react';
7
+ import type { FieldValues, FieldPath } from 'react-hook-form';
8
+ import type { ZodSchema } from 'zod';
9
+ /**
10
+ * @llm-rule Component Categories for Clear Selection:
11
+ *
12
+ * COMPOUND-ONLY LAYOUTS (require child components):
13
+ * - AdminLayout: Dashboard/admin interfaces → AdminLayout.Header + AdminLayout.Sidebar + AdminLayout.Content
14
+ * - PageLayout: Public websites → PageLayout.Header + PageLayout.Content + PageLayout.Footer
15
+ *
16
+ * SINGLE-USE LAYOUTS (accept direct content as children):
17
+ * - AuthLayout: Login/signup pages → Pass form content directly
18
+ * - BlankLayout: Error/simple pages → Pass page content directly
19
+ * - PopupLayout: Extensions/modals → Pass popup content directly
20
+ *
21
+ * SECTION COMPONENTS (page building blocks):
22
+ * - Header: Navigation headers with responsive behavior
23
+ * - Footer: Page footers with navigation and branding
24
+ * - Container: Content areas with optional sidebars
25
+ *
26
+ * UI COMPONENTS (interactive elements):
27
+ * - All shadcn/ui components with semantic color system
28
+ * - Enhanced DataTable: Professional data tables with sorting/filtering
29
+ * - Motion: Animation components with presets and gestures
30
+ * - EnhancedForm: React Hook Form + Zod validation system
31
+ */
32
+ /**
33
+ * @llm-decision-tree Component Selection Rules
34
+ *
35
+ * What are you building?
36
+ * ├── Admin dashboard/CRM/analytics → AdminLayout scheme="sidebar|compact"
37
+ * ├── Company website/blog/docs → PageLayout scheme="default|sidebar"
38
+ * ├── Login/signup/onboarding → AuthLayout scheme="simple|card|split|hero"
39
+ * ├── Error page/maintenance/about → BlankLayout scheme="simple|card"
40
+ * └── Chrome extension/popup/overlay → PopupLayout scheme="modal|drawer|floating"
41
+ */
42
+ /**
43
+ * Standardized size variants - CONSISTENT across ALL components
44
+ * @llm-rule Use same sizes everywhere for predictability
45
+ */
46
+ export type Size = 'sm' | 'md' | 'lg' | 'xl' | 'full';
47
+ /**
48
+ * System color scheme preference
49
+ * @llm-rule mode: System-level light/dark preference
50
+ */
51
+ export type Mode = 'light' | 'dark';
52
+ /**
53
+ * Pre-bundled theme options
54
+ * @llm-rule theme: Pre-bundled CSS themes included in package
55
+ */
56
+ export type Theme = 'base' | 'elegant' | 'metro' | 'studio' | 'vivid';
57
+ /**
58
+ * Semantic tone system for component emphasis
59
+ * @llm-rule tone: Component-level visual emphasis
60
+ * clean → Pure, minimal, white/light backgrounds (most websites)
61
+ * subtle → Muted, supporting, gray areas (admin panels)
62
+ * brand → Primary colored, branded elements (headers, CTAs)
63
+ * contrast → High emphasis, dark/bold areas (footers, emphasis)
64
+ */
65
+ export type Tone = 'clean' | 'subtle' | 'brand' | 'contrast';
66
+ /**
67
+ * @llm-defaults Context-aware tone defaults:
68
+ * AdminLayout: "subtle" (professional gray)
69
+ * PageLayout: "clean" (pure white)
70
+ * AuthLayout: "clean" (focused minimal)
71
+ * PopupLayout: "clean" (clean extension)
72
+ * BlankLayout: "clean" (simple pages)
73
+ * Header: "clean" (clean headers)
74
+ * Footer: "contrast" (bold footers)
75
+ */
76
+ /**
77
+ * Layout scheme types - BEHAVIORAL descriptions for clear LLM understanding
78
+ * @llm-rule All layouts use scheme for structural consistency
79
+ */
80
+ /**
81
+ * AdminLayout schemes - Dashboard/admin interface variations
82
+ * sidebar: Persistent left sidebar with full navigation (classic admin dashboard)
83
+ * compact: Icon-only sidebar that expands on hover/click (space-saving modern)
84
+ */
85
+ export type AdminLayoutScheme = 'sidebar' | 'compact';
86
+ /**
87
+ * PageLayout schemes - Public website variations
88
+ * default: Simple header + content + footer (standard website)
89
+ * sidebar: Header + content with sidebar + footer (documentation site)
90
+ */
91
+ export type PageLayoutScheme = 'default' | 'sidebar';
92
+ /**
93
+ * AuthLayout schemes - Authentication page variations
94
+ * simple: Centered form without card styling (minimal login)
95
+ * card: Elevated card container with shadow (standard login)
96
+ * split: Left image/content + right form (modern split-screen)
97
+ * hero: Form overlay on background image (dramatic marketing)
98
+ */
99
+ export type AuthLayoutScheme = 'simple' | 'card' | 'split' | 'hero';
100
+ /**
101
+ * BlankLayout schemes - Simple page variations
102
+ * simple: Plain centered content (error pages)
103
+ * card: Content in elevated card (maintenance pages)
104
+ */
105
+ export type BlankLayoutScheme = 'simple' | 'card';
106
+ /**
107
+ * PopupLayout schemes - Extension/modal variations
108
+ * modal: Standard popup window (Chrome extensions)
109
+ * drawer: Slide-out panel (mobile-first)
110
+ * floating: Detached overlay (tooltips, menus)
111
+ */
112
+ export type PopupLayoutScheme = 'modal' | 'drawer' | 'floating';
113
+ /**
114
+ * MobileLayout schemes - Mobile navigation patterns
115
+ * tabbed: Bottom tab navigation (iOS/Android standard)
116
+ * stack: Stack navigation with back button (detail pages)
117
+ * drawer: Side drawer navigation (hamburger menu)
118
+ */
119
+ export type MobileLayoutScheme = 'tabbed' | 'stack' | 'drawer';
120
+ /**
121
+ * Standardized navigation interface - SINGLE structure for ALL components
122
+ * @llm-rules Navigation Usage:
123
+ * - key: REQUIRED unique identifier
124
+ * - label: REQUIRED display text
125
+ * - href: USE for page navigation (routing)
126
+ * - onClick: USE for app functions (modals, actions)
127
+ * - items: USE for submenus (max 2 levels deep)
128
+ * - badge: USE for notifications/counts
129
+ * - isActive: USE for current page highlighting
130
+ * - icon: USE lucide-react icons
131
+ */
132
+ export interface NavigationItem {
133
+ /** REQUIRED: Unique identifier */
134
+ key: string;
135
+ /** REQUIRED: Display text */
136
+ label: string;
137
+ /** OPTIONAL: Page navigation - USE for routing */
138
+ href?: string;
139
+ /** OPTIONAL: App function - USE for actions/modals */
140
+ onClick?: () => void;
141
+ /** OPTIONAL: Icon component from lucide-react */
142
+ icon?: ComponentType<{
143
+ className?: string;
144
+ }>;
145
+ /** OPTIONAL: Nested items - USE for dropdowns (max 2 levels) */
146
+ items?: NavigationItem[];
147
+ /** OPTIONAL: Badge text for notifications */
148
+ badge?: string;
149
+ /** OPTIONAL: Current page indicator */
150
+ isActive?: boolean;
151
+ /** OPTIONAL: Additional CSS classes */
152
+ className?: string;
153
+ }
154
+ /**
155
+ * @llm-rule Navigation Props Hierarchy - CLEAR priority order
156
+ *
157
+ * Priority Order:
158
+ * 1. navigation?: NavigationItem[] - PRIMARY navigation items
159
+ * 2. sidebarContent?: React.ReactNode - OVERRIDES navigation with custom JSX
160
+ * 3. If both provided: sidebarContent takes precedence
161
+ *
162
+ * Usage Examples:
163
+ * ✅ <Sidebar navigation={navItems} /> // Use navigation array
164
+ * ✅ <Sidebar sidebarContent={<CustomSidebar />} /> // Use custom content
165
+ * ❌ <Sidebar navigation={navItems} sidebarContent={jsx} /> // Confusing - avoid both
166
+ */
167
+ /**
168
+ * Base props that ALL components should extend
169
+ * @llm-props Base pattern for all components
170
+ */
171
+ export interface BaseComponentProps {
172
+ /** OPTIONAL: Additional CSS classes */
173
+ className?: string;
174
+ /** OPTIONAL: Inline styles */
175
+ style?: React.CSSProperties;
176
+ }
177
+ /**
178
+ * Props for components that support navigation
179
+ * @llm-props Navigation components
180
+ */
181
+ export interface NavigationProps {
182
+ /** RECOMMENDED: Navigation items using standard structure */
183
+ navigation?: NavigationItem[];
184
+ /** OPTIONAL: Current path for active state detection */
185
+ currentPath?: string;
186
+ /** OPTIONAL: Navigation handler function */
187
+ onNavigate?: (href: string, item: NavigationItem) => void;
188
+ }
189
+ /**
190
+ * Props for components that support tone theming
191
+ * @llm-props Tone system
192
+ */
193
+ export interface ToneProps {
194
+ /** RECOMMENDED: Visual emphasis - clean/subtle/brand/contrast */
195
+ tone?: Tone;
196
+ }
197
+ /**
198
+ * Props for components that support sizing
199
+ * @llm-props Size system
200
+ */
201
+ export interface SizeProps {
202
+ /** OPTIONAL: Component size - sm/md/lg/xl/full */
203
+ size?: Size;
204
+ }
205
+ /**
206
+ * Standard layout scheme props - ALL layouts with schemes extend this
207
+ * @llm-props Layout scheme base
208
+ */
209
+ interface LayoutSchemeProps<TScheme> extends BaseComponentProps {
210
+ /** RECOMMENDED: Layout structural arrangement */
211
+ scheme?: TScheme;
212
+ /** RECOMMENDED: Visual styling tone */
213
+ tone?: Tone;
214
+ /** OPTIONAL: Layout size */
215
+ size?: Size;
216
+ }
217
+ /**
218
+ * @llm-usage AdminLayout - COMPOUND-ONLY
219
+ * <AdminLayout scheme="sidebar" tone="subtle" size="lg">
220
+ * <AdminLayout.Header title="Dashboard" actions={<UserMenu />} />
221
+ * <AdminLayout.Sidebar navigation={adminNav} logo={<Logo />} />
222
+ * <AdminLayout.Content>
223
+ * <DashboardContent />
224
+ * </AdminLayout.Content>
225
+ * </AdminLayout>
226
+ *
227
+ * @llm-defaults scheme="sidebar", tone="subtle", size="lg"
228
+ */
229
+ export interface AdminLayoutProps extends LayoutSchemeProps<AdminLayoutScheme> {
230
+ /** REQUIRED: Compound components only (Header, Sidebar, Content) */
231
+ children: ReactNode;
232
+ /** OPTIONAL: Default sidebar expanded state (default: true) */
233
+ defaultSidebarOpen?: boolean;
234
+ /** OPTIONAL: Sidebar positioning behavior (default: "relative") */
235
+ position?: 'relative' | 'sticky' | 'fixed';
236
+ }
237
+ /**
238
+ * AdminLayout.Header props
239
+ */
240
+ export interface AdminHeaderProps extends BaseComponentProps, ToneProps, SizeProps {
241
+ /** OPTIONAL: Header positioning (default: "sticky") */
242
+ position?: 'sticky' | 'fixed' | 'relative';
243
+ /** OPTIONAL: Page title */
244
+ title?: string;
245
+ /** OPTIONAL: Breadcrumb items */
246
+ breadcrumbs?: {
247
+ label: string;
248
+ href?: string;
249
+ }[];
250
+ /** OPTIONAL: Header actions (buttons, user menu, etc.) */
251
+ actions?: ReactNode;
252
+ }
253
+ /**
254
+ * AdminLayout.Sidebar props
255
+ */
256
+ export interface AdminSidebarProps extends BaseComponentProps, ToneProps, NavigationProps {
257
+ /** OPTIONAL: Logo component */
258
+ logo?: ReactNode;
259
+ /** OPTIONAL: Sidebar footer content */
260
+ footer?: ReactNode;
261
+ /** OPTIONAL: Sidebar positioning */
262
+ position?: 'relative' | 'sticky' | 'fixed';
263
+ }
264
+ /**
265
+ * AdminLayout.Content props
266
+ */
267
+ export interface AdminContentProps extends BaseComponentProps, ToneProps, SizeProps {
268
+ /** REQUIRED: Admin content */
269
+ children: ReactNode;
270
+ }
271
+ /**
272
+ * @llm-usage PageLayout - COMPOUND-ONLY
273
+ * <PageLayout scheme="default" tone="clean" size="xl">
274
+ * <PageLayout.Header navigation={mainNav} logo={<Logo />} />
275
+ * <PageLayout.Content>
276
+ * <WebsiteContent />
277
+ * </PageLayout.Content>
278
+ * <PageLayout.Footer copyright="© 2024 Company" />
279
+ * </PageLayout>
280
+ *
281
+ * @llm-defaults scheme="default", tone="clean", size="xl"
282
+ */
283
+ export interface PageLayoutProps extends LayoutSchemeProps<PageLayoutScheme> {
284
+ /** REQUIRED: Compound components only (Header, Content, Footer) */
285
+ children: ReactNode;
286
+ }
287
+ /**
288
+ * PageLayout.Header props
289
+ */
290
+ export interface PageHeaderProps extends BaseComponentProps, ToneProps, SizeProps, NavigationProps {
291
+ /** OPTIONAL: Header positioning (default: "sticky") */
292
+ position?: 'sticky' | 'fixed' | 'relative';
293
+ /** OPTIONAL: Logo component */
294
+ logo?: ReactNode;
295
+ /** OPTIONAL: Page title (used if no logo) */
296
+ title?: string;
297
+ /** OPTIONAL: Header actions (buttons, theme toggle, etc.) */
298
+ actions?: ReactNode;
299
+ }
300
+ /**
301
+ * PageLayout.Content props
302
+ */
303
+ export interface PageContentProps extends BaseComponentProps, ToneProps, SizeProps, NavigationProps {
304
+ /** OPTIONAL: Sidebar position (default: "none") - overrides scheme */
305
+ sidebar?: 'none' | 'left' | 'right';
306
+ /** OPTIONAL: Custom sidebar content (overrides navigation) */
307
+ sidebarContent?: ReactNode;
308
+ /** OPTIONAL: Whether sidebar should be sticky */
309
+ sidebarPosition?: 'sticky' | 'fixed' | 'relative';
310
+ /** OPTIONAL: Breadcrumb items */
311
+ breadcrumbs?: {
312
+ label: string;
313
+ href?: string;
314
+ }[];
315
+ /** OPTIONAL: Page title (shown above breadcrumbs) */
316
+ title?: string;
317
+ /** REQUIRED: Page content */
318
+ children: ReactNode;
319
+ }
320
+ /**
321
+ * PageLayout.Footer props
322
+ */
323
+ export interface PageFooterProps extends BaseComponentProps, ToneProps, SizeProps, NavigationProps {
324
+ /** OPTIONAL: Footer positioning (default: "relative") */
325
+ position?: 'sticky' | 'fixed' | 'relative';
326
+ /** OPTIONAL: Copyright text */
327
+ copyright?: ReactNode;
328
+ /** OPTIONAL: Custom footer content */
329
+ children?: ReactNode;
330
+ }
331
+ /**
332
+ * @llm-usage AuthLayout - SINGLE component with props
333
+ * <AuthLayout scheme="card" tone="clean" size="md" title="Sign In" logo={<Logo />}>
334
+ * <LoginForm />
335
+ * </AuthLayout>
336
+ *
337
+ * @llm-defaults scheme="card", tone="clean", size="md"
338
+ */
339
+ export interface AuthLayoutProps extends LayoutSchemeProps<AuthLayoutScheme> {
340
+ /** REQUIRED: Form content */
341
+ children: ReactNode;
342
+ /** OPTIONAL: Page title */
343
+ title?: string;
344
+ /** OPTIONAL: Page subtitle */
345
+ subtitle?: string;
346
+ /** OPTIONAL: Logo component */
347
+ logo?: ReactNode;
348
+ /** OPTIONAL: Footer content */
349
+ footer?: ReactNode;
350
+ /** OPTIONAL: Container props for customization */
351
+ containerProps?: HTMLAttributes<HTMLDivElement>;
352
+ /** OPTIONAL: Left side content for split scheme */
353
+ splitContent?: ReactNode;
354
+ /** OPTIONAL: Custom background classes for split scheme left side (colors, gradients, images, patterns) */
355
+ splitBackground?: string;
356
+ /** OPTIONAL: Background image URL for hero scheme */
357
+ imageUrl?: string;
358
+ /** OPTIONAL: Image alt text */
359
+ imageAlt?: string;
360
+ /** OPTIONAL: Image overlay */
361
+ imageOverlay?: 'light' | 'dark' | 'none';
362
+ /** OPTIONAL: Additional card content for card scheme */
363
+ cardContent?: ReactNode;
364
+ }
365
+ /**
366
+ * @llm-usage BlankLayout - SINGLE component
367
+ * <BlankLayout scheme="simple" tone="clean" size="lg">
368
+ * <h1 className="text-4xl font-bold mb-4">404 Not Found</h1>
369
+ * <p className="text-muted-foreground mb-6">Page not found.</p>
370
+ * <Button>Go Home</Button>
371
+ * </BlankLayout>
372
+ *
373
+ * @llm-defaults scheme="simple", tone="clean", size="lg"
374
+ */
375
+ export interface BlankLayoutProps extends LayoutSchemeProps<BlankLayoutScheme> {
376
+ /** REQUIRED: Page content */
377
+ children: ReactNode;
378
+ }
379
+ /**
380
+ * @llm-usage PopupLayout - SINGLE component
381
+ * <PopupLayout scheme="modal" tone="clean" size="md" title="Extension" showClose onClose={close}>
382
+ * <ExtensionContent />
383
+ * </PopupLayout>
384
+ *
385
+ * @llm-defaults scheme="modal", tone="clean", size="md"
386
+ */
387
+ export interface PopupLayoutProps extends LayoutSchemeProps<PopupLayoutScheme> {
388
+ /** REQUIRED: Popup content */
389
+ children: ReactNode;
390
+ /** OPTIONAL: Popup title */
391
+ title?: string;
392
+ /** OPTIONAL: Popup subtitle */
393
+ subtitle?: string;
394
+ /** OPTIONAL: Logo/icon component */
395
+ logo?: ReactNode;
396
+ /** OPTIONAL: Status badge */
397
+ badge?: ReactNode;
398
+ /** OPTIONAL: Header action buttons */
399
+ headerActions?: ReactNode;
400
+ /** OPTIONAL: Show back button */
401
+ showBack?: boolean;
402
+ /** OPTIONAL: Show close button */
403
+ showClose?: boolean;
404
+ /** OPTIONAL: Show header divider */
405
+ showDivider?: boolean;
406
+ /** OPTIONAL: Back button handler */
407
+ onBack?: () => void;
408
+ /** OPTIONAL: Close button handler */
409
+ onClose?: () => void;
410
+ /** OPTIONAL: Footer content */
411
+ footer?: ReactNode;
412
+ /** OPTIONAL: Enable content scrolling */
413
+ scrollable?: boolean;
414
+ /** OPTIONAL: Popup positioning */
415
+ position?: 'sticky' | 'fixed' | 'relative';
416
+ }
417
+ /**
418
+ * Section component props - Header, Footer, Container
419
+ */
420
+ /**
421
+ * Header component props (Section component - no scheme)
422
+ * @llm-props Header
423
+ * REQUIRED: children
424
+ * RECOMMENDED: tone="clean"
425
+ * OPTIONAL: size, navigation, position
426
+ */
427
+ export interface HeaderProps extends BaseComponentProps, ToneProps, SizeProps, NavigationProps {
428
+ /** REQUIRED: Header content */
429
+ children: ReactNode;
430
+ /** OPTIONAL: Header positioning (default: "sticky") */
431
+ position?: 'sticky' | 'fixed' | 'relative';
432
+ }
433
+ /**
434
+ * Footer component props (Section component - no scheme)
435
+ * @llm-props Footer
436
+ * REQUIRED: children
437
+ * RECOMMENDED: tone="contrast"
438
+ * OPTIONAL: size, navigation, position
439
+ */
440
+ export interface FooterProps extends BaseComponentProps, ToneProps, SizeProps, NavigationProps {
441
+ /** REQUIRED: Footer content */
442
+ children: ReactNode;
443
+ /** OPTIONAL: Footer positioning (default: "relative") */
444
+ position?: 'sticky' | 'fixed' | 'relative';
445
+ }
446
+ /**
447
+ * Container component props (Section component - no scheme)
448
+ * @llm-props Container
449
+ * REQUIRED: children
450
+ * RECOMMENDED: tone="clean"
451
+ * OPTIONAL: size, sidebar, navigation
452
+ */
453
+ export interface ContainerProps extends BaseComponentProps, ToneProps, SizeProps, NavigationProps {
454
+ /** REQUIRED: Container content */
455
+ children: ReactNode;
456
+ /** OPTIONAL: Container positioning */
457
+ position?: 'sticky' | 'fixed' | 'relative';
458
+ /** OPTIONAL: Sidebar position */
459
+ sidebar?: 'none' | 'left' | 'right';
460
+ /** OPTIONAL: Custom sidebar content (overrides navigation) */
461
+ sidebarContent?: ReactNode;
462
+ /** OPTIONAL: Whether sidebar should be sticky */
463
+ sidebarPosition?: 'sticky' | 'fixed' | 'relative';
464
+ }
465
+ /**
466
+ * Enhanced DataTable Types
467
+ * @llm-usage Professional data tables with sorting, filtering, pagination
468
+ */
469
+ /**
470
+ * Cell value extracted from a row by `accessor` / `accessorKey`. Defaults to
471
+ * `unknown` so consumers must narrow the type before using it — this is the
472
+ * point of the generic.
473
+ */
474
+ export type DataTableCellValue = unknown;
475
+ /**
476
+ * Filter primitive value used by `FilterConfig`. Kept narrow enough to round-
477
+ * trip through URL params and `Intl` formatters without losing information.
478
+ */
479
+ export type DataTableFilterValue = string | number | boolean | Date | null;
480
+ /**
481
+ * DataTable column definition
482
+ */
483
+ export interface DataTableColumn<TRow = unknown, TValue = DataTableCellValue> {
484
+ /** REQUIRED: Unique column identifier */
485
+ id: string;
486
+ /** REQUIRED: Column header text */
487
+ header: string;
488
+ /** OPTIONAL: Data accessor key (a property of the row) */
489
+ accessorKey?: keyof TRow & (string | number);
490
+ /** OPTIONAL: Data accessor function (computed value) */
491
+ accessor?: (row: TRow) => TValue;
492
+ /** OPTIONAL: Cell renderer function */
493
+ cell?: (value: TValue, row: TRow, index: number) => React.ReactNode;
494
+ /** OPTIONAL: Column width */
495
+ width?: string | number;
496
+ minWidth?: number;
497
+ maxWidth?: number;
498
+ /** OPTIONAL: Enable sorting */
499
+ sortable?: boolean;
500
+ /** OPTIONAL: Enable filtering */
501
+ filterable?: boolean;
502
+ filterType?: 'text' | 'select' | 'date' | 'number' | 'boolean';
503
+ filterOptions?: Array<{
504
+ label: string;
505
+ value: DataTableFilterValue;
506
+ }>;
507
+ /** OPTIONAL: Enable column resizing */
508
+ resizable?: boolean;
509
+ /** OPTIONAL: Hide column by default */
510
+ hidden?: boolean;
511
+ /** OPTIONAL: Pin column to left or right */
512
+ pinned?: 'left' | 'right';
513
+ /** OPTIONAL: Data type for sorting */
514
+ dataType?: 'string' | 'number' | 'date' | 'boolean';
515
+ /** OPTIONAL: Custom sort function */
516
+ sortFn?: (a: TValue, b: TValue) => number;
517
+ /** OPTIONAL: Column group */
518
+ group?: string;
519
+ /** OPTIONAL: Additional CSS classes */
520
+ className?: string;
521
+ }
522
+ /**
523
+ * Sort configuration
524
+ */
525
+ export interface SortConfig {
526
+ key: string;
527
+ direction: 'asc' | 'desc';
528
+ }
529
+ /**
530
+ * Filter configuration
531
+ */
532
+ export type FilterOperator = 'equals' | 'contains' | 'startsWith' | 'endsWith' | 'gt' | 'lt' | 'gte' | 'lte';
533
+ export interface FilterConfig {
534
+ [key: string]: {
535
+ type: 'text' | 'select' | 'date' | 'number' | 'boolean';
536
+ value: DataTableFilterValue;
537
+ operator?: FilterOperator;
538
+ };
539
+ }
540
+ /**
541
+ * Row action definition
542
+ */
543
+ export interface RowAction<TRow = unknown> {
544
+ /** REQUIRED: Action identifier */
545
+ id: string;
546
+ /** REQUIRED: Action label */
547
+ label: string;
548
+ /** OPTIONAL: Action icon */
549
+ icon?: React.ComponentType<{
550
+ className?: string;
551
+ }>;
552
+ /** REQUIRED: Action handler */
553
+ onClick: (row: TRow, index: number) => void;
554
+ /** OPTIONAL: Conditional visibility */
555
+ visible?: (row: TRow, index: number) => boolean;
556
+ /** OPTIONAL: Action variant */
557
+ variant?: 'default' | 'destructive' | 'secondary';
558
+ /** OPTIONAL: Confirmation required */
559
+ confirmation?: {
560
+ title: string;
561
+ description: string;
562
+ };
563
+ }
564
+ /**
565
+ * Motion Animation Types
566
+ * @llm-usage CSS-based animations with presets and gestures
567
+ */
568
+ /**
569
+ * Animation transition configuration
570
+ */
571
+ export interface AnimationTransition {
572
+ type?: 'spring' | 'tween';
573
+ duration?: number;
574
+ delay?: number;
575
+ ease?: string | number[];
576
+ damping?: number;
577
+ stiffness?: number;
578
+ mass?: number;
579
+ repeat?: number;
580
+ repeatType?: 'loop' | 'reverse' | 'mirror';
581
+ }
582
+ /**
583
+ * Animation state configuration
584
+ */
585
+ export interface AnimationState {
586
+ opacity?: number;
587
+ x?: number | string | number[];
588
+ y?: number | string | number[];
589
+ scale?: number | number[];
590
+ rotate?: number | number[];
591
+ transformOrigin?: string;
592
+ transition?: AnimationTransition;
593
+ }
594
+ /**
595
+ * Available animation presets
596
+ */
597
+ export type AnimationPreset = 'fadeIn' | 'fadeInUp' | 'fadeInDown' | 'fadeInLeft' | 'fadeInRight' | 'fadeOut' | 'scaleIn' | 'scaleInCenter' | 'slideInUp' | 'slideInDown' | 'slideInLeft' | 'slideInRight' | 'bounce' | 'elastic' | 'rubberBand' | 'pulse' | 'wobble' | 'shake';
598
+ /**
599
+ * Motion component props
600
+ */
601
+ export interface MotionProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onAnimationStart'> {
602
+ /** OPTIONAL: HTML element to render */
603
+ as?: keyof React.JSX.IntrinsicElements;
604
+ /** OPTIONAL: Animation preset */
605
+ preset?: AnimationPreset;
606
+ /** OPTIONAL: Custom initial state */
607
+ initial?: AnimationState;
608
+ /** OPTIONAL: Custom animate state */
609
+ animate?: AnimationState;
610
+ /** OPTIONAL: Custom exit state */
611
+ exit?: AnimationState;
612
+ /** OPTIONAL: Animation duration */
613
+ duration?: 'fast' | 'normal' | 'slow' | 'slower' | 'slowest' | number;
614
+ /** OPTIONAL: Animation delay */
615
+ delay?: number;
616
+ /** OPTIONAL: Animation easing */
617
+ easing?: 'easeInOut' | 'easeOut' | 'easeIn' | 'easeOutBack' | 'easeInBack' | 'easeOutBounce' | 'linear';
618
+ /** OPTIONAL: Trigger animation when in view */
619
+ triggerInView?: boolean;
620
+ /** OPTIONAL: Animation repeat count */
621
+ repeat?: number | 'infinite';
622
+ /** OPTIONAL: Repeat type */
623
+ repeatType?: 'loop' | 'reverse' | 'mirror';
624
+ /** OPTIONAL: Spring physics */
625
+ spring?: {
626
+ damping?: number;
627
+ stiffness?: number;
628
+ mass?: number;
629
+ };
630
+ /** OPTIONAL: Gesture animations */
631
+ whileHover?: AnimationState;
632
+ whileTap?: AnimationState;
633
+ whileFocus?: AnimationState;
634
+ /** OPTIONAL: Animation callbacks */
635
+ onAnimationStart?: () => void;
636
+ onAnimationComplete?: () => void;
637
+ /** REQUIRED: Children */
638
+ children: React.ReactNode;
639
+ }
640
+ /**
641
+ * Enhanced Form Types
642
+ * @llm-usage React Hook Form + Zod validation system
643
+ */
644
+ /**
645
+ * Enhanced Form props with Zod validation
646
+ */
647
+ export interface EnhancedFormProps<T extends FieldValues = FieldValues> {
648
+ /** REQUIRED: Zod schema for validation */
649
+ schema: ZodSchema<T>;
650
+ /** OPTIONAL: Default values */
651
+ defaultValues?: Partial<T>;
652
+ /** REQUIRED: Form submission handler */
653
+ onSubmit: (data: T) => void | Promise<void>;
654
+ /** OPTIONAL: Error handler — receives react-hook-form's FieldErrors */
655
+ onError?: (errors: import('react-hook-form').FieldErrors<T>) => void;
656
+ /** OPTIONAL: Loading state */
657
+ loading?: boolean;
658
+ /** OPTIONAL: Form mode */
659
+ mode?: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';
660
+ /** OPTIONAL: Revalidate mode */
661
+ reValidateMode?: 'onChange' | 'onBlur' | 'onSubmit';
662
+ /** OPTIONAL: Auto-save functionality */
663
+ autoSave?: {
664
+ enabled: boolean;
665
+ debounceMs?: number;
666
+ onSave?: (data: Partial<T>) => void;
667
+ };
668
+ /** OPTIONAL: Form layout */
669
+ layout?: 'vertical' | 'horizontal' | 'inline';
670
+ /** OPTIONAL: Form size */
671
+ size?: 'sm' | 'md' | 'lg';
672
+ /** OPTIONAL: Additional CSS classes */
673
+ className?: string;
674
+ /** REQUIRED: Form content */
675
+ children: React.ReactNode;
676
+ }
677
+ /**
678
+ * Form field props
679
+ */
680
+ export interface FormFieldProps<T extends FieldValues = FieldValues> {
681
+ /** REQUIRED: Field name */
682
+ name: FieldPath<T>;
683
+ /** OPTIONAL: Field label */
684
+ label?: string;
685
+ /** OPTIONAL: Field description */
686
+ description?: string;
687
+ /** OPTIONAL: Field is required */
688
+ required?: boolean;
689
+ /** OPTIONAL: Field variant */
690
+ variant?: 'default' | 'inline' | 'stacked';
691
+ /** OPTIONAL: Additional CSS classes */
692
+ className?: string;
693
+ /** REQUIRED: Field content */
694
+ children: React.ReactNode;
695
+ }
696
+ /**
697
+ * Input field props
698
+ */
699
+ export interface InputFieldProps<T extends FieldValues = FieldValues> {
700
+ /** REQUIRED: Field name */
701
+ name: FieldPath<T>;
702
+ /** OPTIONAL: Input type */
703
+ type?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search';
704
+ /** OPTIONAL: Placeholder text */
705
+ placeholder?: string;
706
+ /** OPTIONAL: Input is disabled */
707
+ disabled?: boolean;
708
+ /** OPTIONAL: Input is readonly */
709
+ readOnly?: boolean;
710
+ /** OPTIONAL: Show password toggle (for password type) */
711
+ showPasswordToggle?: boolean;
712
+ /** OPTIONAL: Input prefix icon */
713
+ prefixIcon?: React.ComponentType<{
714
+ className?: string;
715
+ }>;
716
+ /** OPTIONAL: Input suffix icon */
717
+ suffixIcon?: React.ComponentType<{
718
+ className?: string;
719
+ }>;
720
+ /** OPTIONAL: Additional props */
721
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement>;
722
+ }
723
+ /**
724
+ * Select field props
725
+ */
726
+ export interface SelectFieldProps<T extends FieldValues = FieldValues> {
727
+ /** REQUIRED: Field name */
728
+ name: FieldPath<T>;
729
+ /** OPTIONAL: Placeholder text */
730
+ placeholder?: string;
731
+ /** REQUIRED: Select options */
732
+ options: Array<{
733
+ label: string;
734
+ value: string | number;
735
+ disabled?: boolean;
736
+ }>;
737
+ /** OPTIONAL: Select is disabled */
738
+ disabled?: boolean;
739
+ /** OPTIONAL: Allow clearing selection */
740
+ clearable?: boolean;
741
+ }
742
+ /**
743
+ * @llm-pattern COMPOUND-ONLY Layout Usage
744
+ *
745
+ * AdminLayout (dashboard/admin):
746
+ * <AdminLayout scheme="sidebar" tone="subtle">
747
+ * <AdminLayout.Header title="Dashboard" />
748
+ * <AdminLayout.Sidebar navigation={nav} />
749
+ * <AdminLayout.Content>...</AdminLayout.Content>
750
+ * </AdminLayout>
751
+ *
752
+ * PageLayout (websites):
753
+ * <PageLayout scheme="default" tone="clean">
754
+ * <PageLayout.Header navigation={nav} />
755
+ * <PageLayout.Content>...</PageLayout.Content>
756
+ * <PageLayout.Footer />
757
+ * </PageLayout>
758
+ *
759
+ * AuthLayout (login/signup):
760
+ * <AuthLayout scheme="card" tone="clean" title="Sign In">
761
+ * <LoginForm />
762
+ * </AuthLayout>
763
+ *
764
+ * BlankLayout (error/simple pages):
765
+ * <BlankLayout scheme="simple" tone="clean">
766
+ * <ErrorContent />
767
+ * </BlankLayout>
768
+ *
769
+ * PopupLayout (extensions/modals):
770
+ * <PopupLayout scheme="modal" tone="clean" title="Extension">
771
+ * <ExtensionContent />
772
+ * </PopupLayout>
773
+ */
774
+ /**
775
+ * @llm-decision-tree Layout Selection Guide
776
+ *
777
+ * What are you building?
778
+ * ├── Admin dashboard/CRM/analytics → AdminLayout scheme="sidebar|compact"
779
+ * ├── Company website/blog/docs → PageLayout scheme="default|sidebar"
780
+ * ├── Login/signup/onboarding → AuthLayout scheme="simple|card|split|hero"
781
+ * ├── Error page/maintenance/about → BlankLayout scheme="simple|card"
782
+ * └── Chrome extension/popup/overlay → PopupLayout scheme="modal|drawer|floating"
783
+ *
784
+ * All layouts follow consistent patterns:
785
+ * 1. scheme prop for structural variation
786
+ * 2. tone prop for visual emphasis
787
+ * 3. size prop for responsive sizing
788
+ * 4. Compound components for flexibility (AdminLayout, PageLayout)
789
+ * 5. Single components for simplicity (AuthLayout, BlankLayout, PopupLayout)
790
+ */
791
+ /**
792
+ * Platform detection types
793
+ */
794
+ export type Platform = 'web' | 'native' | 'tauri' | 'unknown';
795
+ /**
796
+ * Legacy theme config interface for backward compatibility
797
+ */
798
+ export interface ThemeConfig {
799
+ id: Theme;
800
+ name: string;
801
+ description?: string;
802
+ cssVars: {
803
+ light: Record<string, string>;
804
+ dark: Record<string, string>;
805
+ };
806
+ }
807
+ /**
808
+ * Re-export commonly used types for convenience
809
+ */
810
+ export type { ComponentType, ReactNode, ReactElement, HTMLAttributes, ForwardRefExoticComponent, RefAttributes, } from 'react';
811
+ export type { FieldValues, FieldPath, UseFormReturn, SubmitHandler, SubmitErrorHandler, } from 'react-hook-form';
812
+ export type { ZodSchema } from 'zod';
813
+ //# sourceMappingURL=index.d.ts.map