@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
package/dist/themes.js ADDED
@@ -0,0 +1,873 @@
1
+ import { ThemeProvider as s, useTheme as l } from "./theme-provider.js";
2
+ const e = {
3
+ id: "base",
4
+ name: "Base",
5
+ description: "Clean sky blue theme with modern styling and professional appearance",
6
+ // Base theme with system fonts only
7
+ customStyles: `
8
+ /* Base theme - Only 4 unified classes */
9
+ .theme-base {
10
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
11
+ font-weight: 400;
12
+ line-height: 1.6;
13
+ font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1;
14
+ }
15
+
16
+ .theme-base .voila-heading {
17
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
18
+ font-weight: 800;
19
+ letter-spacing: -0.04em;
20
+ line-height: 1.1;
21
+ font-size: clamp(2.5rem, 6vw, 4rem);
22
+ color: var(--color-foreground);
23
+ }
24
+
25
+ .theme-base .voila-subheading {
26
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
27
+ font-weight: 600;
28
+ letter-spacing: -0.02em;
29
+ line-height: 1.3;
30
+ font-size: clamp(1.25rem, 3vw, 2rem);
31
+ color: var(--color-muted-foreground);
32
+ }
33
+
34
+ .theme-base .voila-brand-logo {
35
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
36
+ font-weight: 700;
37
+ letter-spacing: -0.03em;
38
+ font-size: 1.25rem;
39
+ }
40
+
41
+ /* Body text enhancements */
42
+ .theme-base strong, .theme-base b {
43
+ font-weight: 600;
44
+ }
45
+
46
+ /* Cursor styles for interactive elements */
47
+ .theme-base button,
48
+ .theme-base .btn,
49
+ .theme-base [data-slot="button"],
50
+ .theme-base input[type="button"],
51
+ .theme-base input[type="submit"],
52
+ .theme-base input[type="reset"],
53
+ .theme-base a,
54
+ .theme-base [role="button"],
55
+ .theme-base [tabindex="0"]:not(input):not(textarea):not(select) {
56
+ cursor: pointer;
57
+ }
58
+
59
+ /* Disabled buttons get not-allowed cursor */
60
+ .theme-base button:disabled,
61
+ .theme-base .btn:disabled,
62
+ .theme-base [data-slot="button"]:disabled,
63
+ .theme-base input:disabled {
64
+ cursor: not-allowed;
65
+ }
66
+
67
+ /* Clean focus ring */
68
+ .theme-base *:focus-visible {
69
+ outline: 2px solid var(--color-foreground);
70
+ outline-offset: 2px;
71
+ box-shadow: 0 0 0 4px rgb(from var(--color-foreground) r g b / 0.1);
72
+ }
73
+ `,
74
+ // Sky blue themed colors
75
+ light: {
76
+ // Base clean colors with sky blue tint
77
+ background: "#FFFFFF",
78
+ foreground: "#1E293B",
79
+ card: "#F8FAFC",
80
+ cardForeground: "#1E293B",
81
+ popover: "#FFFFFF",
82
+ popoverForeground: "#1E293B",
83
+ // Sky blue interactive colors
84
+ primary: "#0EA5E9",
85
+ primaryForeground: "#FFFFFF",
86
+ secondary: "#F5E6D3",
87
+ secondaryForeground: "#92400E",
88
+ muted: "#F0F9FF",
89
+ mutedForeground: "#64748B",
90
+ accent: "#E0F2FE",
91
+ accentForeground: "#0C4A6E",
92
+ // State colors
93
+ destructive: "#DC2626",
94
+ destructiveForeground: "#FFFFFF",
95
+ // Border colors with sky blue tint
96
+ border: "#E2E8F0",
97
+ input: "#CBD5E1",
98
+ ring: "#0EA5E9",
99
+ // Chart colors - sky blue progression
100
+ chart1: "#0EA5E9",
101
+ chart2: "#38BDF8",
102
+ chart3: "#7DD3FC",
103
+ chart4: "#BAE6FD",
104
+ chart5: "#E0F2FE",
105
+ // Sidebar colors
106
+ sidebar: "#F8FAFC",
107
+ sidebarForeground: "#1E293B",
108
+ sidebarPrimary: "#0EA5E9",
109
+ sidebarPrimaryForeground: "#FFFFFF",
110
+ sidebarAccent: "#F5E6D3",
111
+ sidebarAccentForeground: "#92400E",
112
+ sidebarBorder: "#E2E8F0",
113
+ sidebarRing: "#0EA5E9"
114
+ },
115
+ dark: {
116
+ // Dark colors with sky blue accents
117
+ background: "#0F172A",
118
+ foreground: "#F1F5F9",
119
+ card: "#1E293B",
120
+ cardForeground: "#F1F5F9",
121
+ popover: "#1E293B",
122
+ popoverForeground: "#F1F5F9",
123
+ // Sky blue interactive colors for dark mode
124
+ primary: "#38BDF8",
125
+ primaryForeground: "#0F172A",
126
+ secondary: "#44403C",
127
+ secondaryForeground: "#FEF7ED",
128
+ muted: "#1E293B",
129
+ mutedForeground: "#94A3B8",
130
+ accent: "#334155",
131
+ accentForeground: "#F1F5F9",
132
+ // State colors
133
+ destructive: "#EF4444",
134
+ destructiveForeground: "#FFFFFF",
135
+ // Border colors with sky blue tint
136
+ border: "#334155",
137
+ input: "#475569",
138
+ ring: "#38BDF8",
139
+ // Chart colors - sky blue progression for dark mode
140
+ chart1: "#38BDF8",
141
+ chart2: "#0EA5E9",
142
+ chart3: "#0284C7",
143
+ chart4: "#0369A1",
144
+ chart5: "#075985",
145
+ // Sidebar colors
146
+ sidebar: "#1E293B",
147
+ sidebarForeground: "#F1F5F9",
148
+ sidebarPrimary: "#38BDF8",
149
+ sidebarPrimaryForeground: "#0F172A",
150
+ sidebarAccent: "#44403C",
151
+ sidebarAccentForeground: "#FEF7ED",
152
+ sidebarBorder: "#475569",
153
+ sidebarRing: "#38BDF8"
154
+ }
155
+ }, r = {
156
+ id: "elegant",
157
+ name: "Elegant",
158
+ description: "Fresh, minimal sky blue theme perfect for business and professional applications",
159
+ // Elegant theme with Playfair Display headings and Montserrat body
160
+ customStyles: `
161
+ /* Elegant theme - Only 4 unified classes */
162
+ .theme-elegant {
163
+ font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
164
+ font-weight: 400;
165
+ line-height: 1.6;
166
+ font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1;
167
+ }
168
+
169
+ .theme-elegant .voila-heading {
170
+ font-family: 'DM Serif Display', serif;
171
+ font-weight: 400;
172
+ letter-spacing: -0.02em;
173
+ line-height: 1.1;
174
+ font-size: clamp(2.5rem, 6vw, 4rem);
175
+ color: var(--color-foreground);
176
+ }
177
+
178
+ .theme-elegant .voila-subheading {
179
+ font-family: 'Rubik', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
180
+ font-weight: 500;
181
+ letter-spacing: -0.01em;
182
+ line-height: 1.3;
183
+ font-size: clamp(1.25rem, 3vw, 2rem);
184
+ color: var(--color-muted-foreground);
185
+ }
186
+
187
+ .theme-elegant .voila-brand-logo {
188
+ font-family: 'DM Serif Display', serif;
189
+ font-weight: 400;
190
+ letter-spacing: -0.01em;
191
+ font-size: 1.25rem;
192
+ }
193
+
194
+ /* Body text enhancements */
195
+ .theme-elegant strong, .theme-elegant b {
196
+ font-weight: 600;
197
+ }
198
+
199
+ /* Cursor styles for interactive elements */
200
+ .theme-elegant button,
201
+ .theme-elegant .btn,
202
+ .theme-elegant [data-slot="button"],
203
+ .theme-elegant input[type="button"],
204
+ .theme-elegant input[type="submit"],
205
+ .theme-elegant input[type="reset"],
206
+ .theme-elegant a,
207
+ .theme-elegant [role="button"],
208
+ .theme-elegant [tabindex="0"]:not(input):not(textarea):not(select) {
209
+ cursor: pointer;
210
+ }
211
+
212
+ /* Disabled buttons get not-allowed cursor */
213
+ .theme-elegant button:disabled,
214
+ .theme-elegant .btn:disabled,
215
+ .theme-elegant [data-slot="button"]:disabled,
216
+ .theme-elegant input:disabled {
217
+ cursor: not-allowed;
218
+ }
219
+
220
+ /* Elegant focus ring with blue accent */
221
+ .theme-elegant *:focus-visible {
222
+ outline: 2px solid #003285;
223
+ outline-offset: 2px;
224
+ box-shadow: 0 0 0 4px rgb(0, 50, 133, 0.1);
225
+ }
226
+ `,
227
+ light: {
228
+ // Clean blue color palette
229
+ background: "#FFFFFF",
230
+ foreground: "#1F2937",
231
+ card: "#F8FAFC",
232
+ cardForeground: "#1F2937",
233
+ popover: "#FFFFFF",
234
+ popoverForeground: "#1F2937",
235
+ // Blue accent system with yellow secondary - 50% lighter for visibility
236
+ primary: "#2C5688",
237
+ primaryForeground: "#FFFFFF",
238
+ secondary: "#FAA533",
239
+ secondaryForeground: "#FFFFFF",
240
+ muted: "#F8FAFC",
241
+ mutedForeground: "#6B7280",
242
+ accent: "#E0F2FE",
243
+ accentForeground: "#1F2937",
244
+ // State colors
245
+ destructive: "#DC2626",
246
+ destructiveForeground: "#FFFFFF",
247
+ // Border colors
248
+ border: "#E2E8F0",
249
+ input: "#CBD5E1",
250
+ ring: "#003285",
251
+ // Chart colors - blue progression
252
+ chart1: "#003285",
253
+ chart2: "#1E40AF",
254
+ chart3: "#3B82F6",
255
+ chart4: "#60A5FA",
256
+ chart5: "#93C5FD",
257
+ // Sidebar colors
258
+ sidebar: "#F8FAFC",
259
+ sidebarForeground: "#1F2937",
260
+ sidebarPrimary: "#003285",
261
+ sidebarPrimaryForeground: "#FFFFFF",
262
+ sidebarAccent: "#E0F2FE",
263
+ sidebarAccentForeground: "#6B7280",
264
+ sidebarBorder: "#E2E8F0",
265
+ sidebarRing: "#003285"
266
+ },
267
+ dark: {
268
+ // Dark blue palette
269
+ background: "#0F172A",
270
+ foreground: "#F8FAFC",
271
+ card: "#1E293B",
272
+ cardForeground: "#F8FAFC",
273
+ popover: "#1E293B",
274
+ popoverForeground: "#F8FAFC",
275
+ // Dark blue accents with yellow secondary - 50% lighter for visibility
276
+ primary: "#3A6498",
277
+ primaryForeground: "#0F172A",
278
+ secondary: "#FAA533",
279
+ secondaryForeground: "#000000",
280
+ muted: "#1E293B",
281
+ mutedForeground: "#94A3B8",
282
+ accent: "#1E40AF",
283
+ accentForeground: "#F8FAFC",
284
+ // State colors
285
+ destructive: "#EF4444",
286
+ destructiveForeground: "#FFFFFF",
287
+ // Border colors
288
+ border: "#334155",
289
+ input: "#475569",
290
+ ring: "#2563EB",
291
+ // Chart colors - bright blues for dark mode
292
+ chart1: "#2563EB",
293
+ chart2: "#3B82F6",
294
+ chart3: "#60A5FA",
295
+ chart4: "#93C5FD",
296
+ chart5: "#DBEAFE",
297
+ // Sidebar colors
298
+ sidebar: "#1E293B",
299
+ sidebarForeground: "#F8FAFC",
300
+ sidebarPrimary: "#2563EB",
301
+ sidebarPrimaryForeground: "#F8FAFC",
302
+ sidebarAccent: "#1E40AF",
303
+ sidebarAccentForeground: "#94A3B8",
304
+ sidebarBorder: "#475569",
305
+ sidebarRing: "#2563EB"
306
+ }
307
+ }, o = {
308
+ id: "metro",
309
+ name: "Metro",
310
+ description: "Clean, systematic design inspired by modern transit systems for professional applications",
311
+ // Only override design tokens that differ from default
312
+ design: {
313
+ // Metro-specific fonts
314
+ fontDisplay: "'Crimson Text', serif",
315
+ // Metro-specific gradients
316
+ gradientPrimary: "#0f3a36",
317
+ // Flat primary color
318
+ gradientSubtle: "linear-gradient(135deg, oklch(0.96 0.005 240) 0%, oklch(0.88 0.008 240) 100%)",
319
+ gradientHover: "linear-gradient(135deg, oklch(0.55 0.12 220) 0%, #0f3a36 100%)",
320
+ gradientText: "linear-gradient(135deg, #0f3a36 0%, oklch(0.55 0.12 200) 50%, oklch(0.96 0.005 240) 100%)",
321
+ gradientBackground: "linear-gradient(135deg, oklch(0.09 0.01 240) 0%, oklch(0.15 0.015 220) 100%)",
322
+ gradientBackgroundLight: "linear-gradient(135deg, oklch(0.96 0.005 240) 0%, oklch(0.99 0.002 240) 70%, oklch(0.88 0.008 240) 100%)"
323
+ },
324
+ // Only metro-specific styles
325
+ customStyles: `
326
+ /* Metro theme - Only 4 unified classes */
327
+ .theme-metro {
328
+ font-family: 'Libre Baskerville', serif;
329
+ font-weight: 400;
330
+ line-height: 1.6;
331
+ }
332
+
333
+ .theme-metro .voila-heading {
334
+ font-family: 'Crimson Text', serif;
335
+ font-weight: 700;
336
+ letter-spacing: -0.04em;
337
+ line-height: 1.1;
338
+ font-size: clamp(2.5rem, 6vw, 4rem);
339
+ }
340
+
341
+ .theme-metro .voila-subheading {
342
+ font-family: 'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
343
+ font-weight: 500;
344
+ letter-spacing: -0.01em;
345
+ line-height: 1.3;
346
+ font-size: clamp(1.25rem, 3vw, 2rem);
347
+ }
348
+
349
+ .theme-metro .voila-brand-logo {
350
+ font-family: 'Crimson Text', serif;
351
+ font-weight: 700;
352
+ letter-spacing: -0.03em;
353
+ font-size: 1.25rem;
354
+ }
355
+
356
+ /* Body text enhancements */
357
+ .theme-metro strong, .theme-metro b {
358
+ font-weight: 600;
359
+ }
360
+
361
+ /* Cursor styles for interactive elements */
362
+ .theme-metro button,
363
+ .theme-metro .btn,
364
+ .theme-metro [data-slot="button"],
365
+ .theme-metro input[type="button"],
366
+ .theme-metro input[type="submit"],
367
+ .theme-metro input[type="reset"],
368
+ .theme-metro a,
369
+ .theme-metro [role="button"],
370
+ .theme-metro [tabindex="0"]:not(input):not(textarea):not(select) {
371
+ cursor: pointer;
372
+ }
373
+
374
+ /* Disabled buttons get not-allowed cursor */
375
+ .theme-metro button:disabled,
376
+ .theme-metro .btn:disabled,
377
+ .theme-metro [data-slot="button"]:disabled,
378
+ .theme-metro input:disabled {
379
+ cursor: not-allowed;
380
+ }
381
+
382
+ /* Metro focus style override */
383
+ .theme-metro *:focus-visible {
384
+ outline: 2px solid #0f3a36;
385
+ outline-offset: 2px;
386
+ box-shadow: 0 0 0 4px rgb(15, 58, 54, 0.2);
387
+ }
388
+ `,
389
+ light: {
390
+ // Only override colors that are different from default
391
+ background: "oklch(0.99 0.002 240)",
392
+ backgroundGradient: "linear-gradient(135deg, oklch(0.96 0.005 240) 0%, oklch(0.99 0.002 240) 70%, oklch(0.88 0.008 240) 100%)",
393
+ foreground: "oklch(0.09 0.01 240)",
394
+ card: "oklch(0.98 0.003 240)",
395
+ cardForeground: "oklch(0.09 0.01 240)",
396
+ popover: "oklch(0.98 0.003 240)",
397
+ popoverForeground: "oklch(0.09 0.01 240)",
398
+ // Metro color palette - 50% lighter for visibility
399
+ primary: "#1B4942",
400
+ primaryForeground: "oklch(0.98 0.003 240)",
401
+ secondary: "#FAA533",
402
+ secondaryForeground: "#000000",
403
+ muted: "oklch(0.96 0.005 240)",
404
+ mutedForeground: "oklch(0.35 0.01 240)",
405
+ accent: "oklch(0.55 0.12 200)",
406
+ accentForeground: "oklch(0.98 0.003 240)",
407
+ // Border colors
408
+ border: "oklch(0.88 0.008 240)",
409
+ input: "oklch(0.88 0.008 240)",
410
+ ring: "#0f3a36",
411
+ // Chart colors - transit-inspired
412
+ chart1: "#0f3a36",
413
+ chart2: "oklch(0.55 0.12 200)",
414
+ chart3: "oklch(0.5 0.1 160)",
415
+ chart4: "oklch(0.6 0.15 60)",
416
+ chart5: "oklch(0.45 0.25 25)",
417
+ // Sidebar colors
418
+ sidebar: "oklch(0.98 0.003 240)",
419
+ sidebarForeground: "oklch(0.09 0.01 240)",
420
+ sidebarPrimary: "#0f3a36",
421
+ sidebarPrimaryForeground: "oklch(0.98 0.003 240)",
422
+ sidebarAccent: "oklch(0.55 0.12 200)",
423
+ sidebarAccentForeground: "oklch(0.35 0.01 240)",
424
+ sidebarBorder: "oklch(0.88 0.008 240)",
425
+ sidebarRing: "#0f3a36"
426
+ },
427
+ dark: {
428
+ // Dark mode metro colors
429
+ background: "oklch(0.05 0.005 220)",
430
+ backgroundGradient: "linear-gradient(135deg, oklch(0.05 0.005 220) 0%, oklch(0.15 0.015 220) 100%)",
431
+ foreground: "oklch(0.95 0.01 220)",
432
+ card: "oklch(0.20 0.015 220)",
433
+ cardForeground: "oklch(0.95 0.01 220)",
434
+ popover: "oklch(0.20 0.015 220)",
435
+ popoverForeground: "oklch(0.95 0.01 220)",
436
+ primary: "#2F625C",
437
+ primaryForeground: "oklch(0.05 0.005 220)",
438
+ secondary: "#FAA533",
439
+ secondaryForeground: "#000000",
440
+ muted: "oklch(0.08 0.01 240)",
441
+ mutedForeground: "oklch(0.75 0.01 240)",
442
+ accent: "oklch(0.75 0.18 200)",
443
+ accentForeground: "oklch(0.04 0.01 240)",
444
+ // Border colors
445
+ border: "oklch(0.18 0.015 240)",
446
+ input: "oklch(0.18 0.015 240)",
447
+ ring: "#0f3a36",
448
+ // Chart colors - brightened for dark mode
449
+ chart1: "#0f3a36",
450
+ chart2: "oklch(0.75 0.18 200)",
451
+ chart3: "oklch(0.7 0.15 160)",
452
+ chart4: "oklch(0.75 0.2 60)",
453
+ chart5: "oklch(0.65 0.25 25)",
454
+ // Sidebar colors
455
+ sidebar: "oklch(0.20 0.015 220)",
456
+ sidebarForeground: "oklch(0.95 0.01 220)",
457
+ sidebarPrimary: "#0f3a36",
458
+ sidebarPrimaryForeground: "oklch(0.98 0.005 220)",
459
+ sidebarAccent: "oklch(0.75 0.18 200)",
460
+ sidebarAccentForeground: "oklch(0.75 0.01 240)",
461
+ sidebarBorder: "oklch(0.18 0.015 240)",
462
+ sidebarRing: "#0f3a36"
463
+ }
464
+ }, t = {
465
+ id: "studio",
466
+ name: "Studio",
467
+ description: "Sophisticated designer grays with strategic color accents for creative professionals",
468
+ // Only override design tokens that differ from default
469
+ design: {
470
+ // Studio-specific fonts
471
+ fontPrimary: "'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
472
+ fontDisplay: "'Merriweather', serif",
473
+ // Studio-specific gradients
474
+ gradientPrimary: "rgb(37, 41, 49)",
475
+ // Flat primary color
476
+ gradientSubtle: "linear-gradient(135deg, oklch(0.97 0.002 270) 0%, oklch(0.90 0.003 270) 100%)",
477
+ gradientHover: "linear-gradient(135deg, oklch(0.60 0.08 260) 0%, rgb(37, 41, 49) 100%)",
478
+ gradientText: "linear-gradient(135deg, rgb(37, 41, 49) 0%, oklch(0.65 0.15 45) 50%, oklch(0.97 0.002 270) 100%)",
479
+ gradientBackground: "linear-gradient(135deg, oklch(0.08 0.005 270) 0%, oklch(0.15 0.01 270) 100%)",
480
+ gradientBackgroundLight: "linear-gradient(135deg, oklch(0.97 0.002 270) 0%, oklch(0.99 0.001 270) 70%, oklch(0.90 0.003 270) 100%)"
481
+ },
482
+ // Only studio-specific styles
483
+ customStyles: `
484
+ /* Studio theme - Only 4 unified classes */
485
+ .theme-studio {
486
+ font-family: 'Source Serif Pro', serif;
487
+ font-weight: 400;
488
+ line-height: 1.6;
489
+ }
490
+
491
+ .theme-studio .voila-heading {
492
+ font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
493
+ font-weight: 700;
494
+ letter-spacing: -0.02em;
495
+ line-height: 1.1;
496
+ font-size: clamp(2.5rem, 6vw, 4rem);
497
+ }
498
+
499
+ .theme-studio .voila-subheading {
500
+ font-family: 'Poppins', sans-serif;
501
+ font-weight: 600;
502
+ letter-spacing: -0.02em;
503
+ line-height: 1.3;
504
+ font-size: clamp(1.25rem, 3vw, 2rem);
505
+ }
506
+
507
+ .theme-studio .voila-brand-logo {
508
+ font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
509
+ font-weight: 600;
510
+ letter-spacing: -0.01em;
511
+ font-size: 1.25rem;
512
+ }
513
+
514
+ /* Studio-specific button hover */
515
+ .theme-studio .btn-primary:hover,
516
+ .theme-studio button[data-variant="primary"]:hover,
517
+ .theme-studio [data-slot="button"][data-variant="primary"]:hover {
518
+ background: var(--voila-gradient-hover);
519
+ }
520
+
521
+
522
+ /* Body text enhancements */
523
+ .theme-studio strong, .theme-studio b {
524
+ font-weight: 600;
525
+ }
526
+
527
+ /* Cursor styles for interactive elements */
528
+ .theme-studio button,
529
+ .theme-studio .btn,
530
+ .theme-studio [data-slot="button"],
531
+ .theme-studio input[type="button"],
532
+ .theme-studio input[type="submit"],
533
+ .theme-studio input[type="reset"],
534
+ .theme-studio a,
535
+ .theme-studio [role="button"],
536
+ .theme-studio [tabindex="0"]:not(input):not(textarea):not(select) {
537
+ cursor: pointer;
538
+ }
539
+
540
+ /* Disabled buttons get not-allowed cursor */
541
+ .theme-studio button:disabled,
542
+ .theme-studio .btn:disabled,
543
+ .theme-studio [data-slot="button"]:disabled,
544
+ .theme-studio input:disabled {
545
+ cursor: not-allowed;
546
+ }
547
+
548
+ /* Studio focus style override */
549
+ .theme-studio *:focus-visible {
550
+ outline: 2px solid rgb(37, 41, 49);
551
+ outline-offset: 2px;
552
+ box-shadow: 0 0 0 4px rgb(37, 41, 49, 0.2);
553
+ }
554
+ `,
555
+ light: {
556
+ // Only override colors that are different from default
557
+ background: "oklch(0.99 0.001 270)",
558
+ backgroundGradient: "linear-gradient(135deg, oklch(0.97 0.002 270) 0%, oklch(0.99 0.001 270) 70%, oklch(0.90 0.003 270) 100%)",
559
+ foreground: "oklch(0.08 0.005 270)",
560
+ card: "oklch(0.98 0.002 270)",
561
+ cardForeground: "oklch(0.08 0.005 270)",
562
+ popover: "oklch(0.98 0.002 270)",
563
+ popoverForeground: "oklch(0.08 0.005 270)",
564
+ // Studio color palette - 50% lighter for visibility
565
+ primary: "rgb(56, 61, 73)",
566
+ primaryForeground: "oklch(0.98 0.002 270)",
567
+ secondary: "oklch(0.85 0.003 270)",
568
+ secondaryForeground: "oklch(0.15 0.008 270)",
569
+ muted: "oklch(0.97 0.002 270)",
570
+ mutedForeground: "oklch(0.38 0.005 270)",
571
+ accent: "oklch(0.65 0.15 45)",
572
+ accentForeground: "oklch(0.98 0.002 270)",
573
+ // Border colors
574
+ border: "oklch(0.9 0.003 270)",
575
+ input: "oklch(0.9 0.003 270)",
576
+ ring: "rgb(37, 41, 49)",
577
+ // Chart colors - creative palette
578
+ chart1: "rgb(37, 41, 49)",
579
+ chart2: "oklch(0.65 0.15 45)",
580
+ chart3: "oklch(0.45 0.12 200)",
581
+ chart4: "oklch(0.5 0.1 320)",
582
+ chart5: "oklch(0.4 0.08 120)",
583
+ // Sidebar colors
584
+ sidebar: "oklch(0.98 0.002 270)",
585
+ sidebarForeground: "oklch(0.08 0.005 270)",
586
+ sidebarPrimary: "rgb(37, 41, 49)",
587
+ sidebarPrimaryForeground: "oklch(0.98 0.002 270)",
588
+ sidebarAccent: "oklch(0.65 0.15 45)",
589
+ sidebarAccentForeground: "oklch(0.38 0.005 270)",
590
+ sidebarBorder: "oklch(0.9 0.003 270)",
591
+ sidebarRing: "rgb(37, 41, 49)"
592
+ },
593
+ dark: {
594
+ // Dark mode studio colors
595
+ background: "oklch(0.05 0.003 270)",
596
+ backgroundGradient: "linear-gradient(135deg, oklch(0.05 0.003 270) 0%, oklch(0.15 0.01 270) 100%)",
597
+ foreground: "oklch(0.95 0.005 270)",
598
+ card: "oklch(0.20 0.01 270)",
599
+ cardForeground: "oklch(0.95 0.005 270)",
600
+ popover: "oklch(0.20 0.01 270)",
601
+ popoverForeground: "oklch(0.95 0.005 270)",
602
+ primary: "rgb(78, 84, 96)",
603
+ primaryForeground: "oklch(0.08 0.005 270)",
604
+ secondary: "oklch(0.10 0.008 270)",
605
+ secondaryForeground: "oklch(0.94 0.005 270)",
606
+ muted: "oklch(0.08 0.006 270)",
607
+ mutedForeground: "oklch(0.74 0.005 270)",
608
+ accent: "oklch(0.85 0.18 45)",
609
+ accentForeground: "oklch(0.04 0.005 270)",
610
+ // Border colors
611
+ border: "oklch(0.18 0.008 270)",
612
+ input: "oklch(0.18 0.008 270)",
613
+ ring: "rgb(37, 41, 49)",
614
+ // Chart colors - brightened for dark mode
615
+ chart1: "rgb(37, 41, 49)",
616
+ chart2: "oklch(0.85 0.18 45)",
617
+ chart3: "oklch(0.7 0.15 200)",
618
+ chart4: "oklch(0.72 0.12 320)",
619
+ chart5: "oklch(0.68 0.1 120)",
620
+ // Sidebar colors
621
+ sidebar: "oklch(0.20 0.01 270)",
622
+ sidebarForeground: "oklch(0.95 0.005 270)",
623
+ sidebarPrimary: "rgb(37, 41, 49)",
624
+ sidebarPrimaryForeground: "oklch(0.98 0.003 270)",
625
+ sidebarAccent: "oklch(0.85 0.18 45)",
626
+ sidebarAccentForeground: "oklch(0.74 0.005 270)",
627
+ sidebarBorder: "oklch(0.18 0.008 270)",
628
+ sidebarRing: "rgb(37, 41, 49)"
629
+ }
630
+ }, a = {
631
+ id: "vivid",
632
+ name: "Vivid",
633
+ description: "Premium cursive theme with sophisticated typography for luxury brands and creative portfolios",
634
+ // Only override design tokens that differ from default
635
+ design: {
636
+ // Vivid-specific fonts
637
+ fontPrimary: "'Libre Baskerville', 'Merriweather', 'Times New Roman', serif",
638
+ fontDisplay: "'Playfair Display', 'Crimson Text', 'Times New Roman', serif",
639
+ fontScript: "'Caveat', 'Amatic SC', cursive",
640
+ // More elegant spacing and radius for luxury feel
641
+ radiusEnhance: "1.2rem",
642
+ spacingEnhance: "1.2",
643
+ // Enhanced shadows for premium feel
644
+ shadowEnhance: "0 4px 20px rgb(0 0 0 / 0.08), 0 1px 3px rgb(0 0 0 / 0.05)",
645
+ shadowLg: "0 8px 30px rgb(0 0 0 / 0.12), 0 2px 6px rgb(0 0 0 / 0.08)",
646
+ shadowXl: "0 12px 40px rgb(0 0 0 / 0.15), 0 4px 12px rgb(0 0 0 / 0.1)"
647
+ },
648
+ // Only vivid-specific styles
649
+ customStyles: `
650
+ /* Vivid theme - Only 4 unified classes */
651
+ .theme-vivid {
652
+ font-family: 'Libre Baskerville', serif;
653
+ font-weight: 400;
654
+ line-height: 1.7;
655
+ font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1, 'onum' 1;
656
+ }
657
+
658
+ .theme-vivid .voila-heading {
659
+ font-family: 'Caveat', cursive;
660
+ font-weight: 700;
661
+ letter-spacing: -0.02em;
662
+ line-height: 1.1;
663
+ font-size: clamp(2.5rem, 6vw, 4rem);
664
+ }
665
+
666
+ .theme-vivid .voila-subheading {
667
+ font-family: 'Playfair Display', serif;
668
+ font-weight: 500;
669
+ font-style: italic;
670
+ letter-spacing: -0.01em;
671
+ line-height: 1.3;
672
+ font-size: clamp(1.25rem, 3vw, 2rem);
673
+ }
674
+
675
+ .theme-vivid .voila-brand-logo {
676
+ font-family: 'Caveat', cursive;
677
+ font-weight: 700;
678
+ letter-spacing: -0.01em;
679
+ font-size: 1.5rem;
680
+ }
681
+
682
+ /* Clean gradient for bg-primary in Vivid theme only */
683
+ .theme-vivid .bg-primary {
684
+ background: linear-gradient(135deg, oklch(0.25 0.12 280) 0%, rgb(111, 103, 244) 100%) !important;
685
+ }
686
+
687
+ .theme-vivid.dark .bg-primary {
688
+ background: linear-gradient(135deg, oklch(0.45 0.18 280) 0%, rgb(151, 143, 255) 100%) !important;
689
+ }
690
+
691
+ /* Premium typography */
692
+ .theme-vivid p, .theme-vivid div, .theme-vivid span {
693
+ font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1, 'onum' 1;
694
+ line-height: 1.7;
695
+ }
696
+
697
+ /* Elegant button effects */
698
+ .theme-vivid .btn-primary,
699
+ .theme-vivid button[data-variant="primary"],
700
+ .theme-vivid [data-slot="button"][data-variant="primary"] {
701
+ background: linear-gradient(135deg, oklch(0.25 0.12 280) 0%, rgb(111, 103, 244) 100%);
702
+ letter-spacing: 0.025em;
703
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
704
+ border-radius: 1.2rem;
705
+ }
706
+
707
+ .theme-vivid button,
708
+ .theme-vivid [data-slot="button"] {
709
+ border-radius: 1.2rem;
710
+ }
711
+
712
+ .theme-vivid .btn-primary:hover,
713
+ .theme-vivid button[data-variant="primary"]:hover,
714
+ .theme-vivid [data-slot="button"][data-variant="primary"]:hover {
715
+ background: linear-gradient(135deg, oklch(0.22 0.14 315) 0%, oklch(0.25 0.12 280) 100%);
716
+ transform: translateY(-2px);
717
+ box-shadow: 0 8px 25px rgb(0 0 0 / 0.15), 0 3px 10px rgb(0 0 0 / 0.1);
718
+ }
719
+
720
+ /* Premium cards */
721
+ .theme-vivid [data-slot="card"] {
722
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
723
+ border: 1px solid oklch(from var(--color-border) l c h / 0.3);
724
+ }
725
+
726
+ .theme-vivid [data-slot="card"]:hover {
727
+ transform: translateY(-4px);
728
+ box-shadow: 0 12px 40px rgb(0 0 0 / 0.12), 0 4px 12px rgb(0 0 0 / 0.08);
729
+ }
730
+
731
+ /* Darker shadows for dark mode cards */
732
+ .theme-vivid.dark [data-slot="card"] {
733
+ box-shadow: 0 4px 20px rgb(0 0 0 / 0.25), 0 1px 3px rgb(0 0 0 / 0.15);
734
+ border: 1px solid oklch(from var(--color-border) l c h / 0.4);
735
+ }
736
+
737
+ .theme-vivid.dark [data-slot="card"]:hover {
738
+ box-shadow: 0 12px 40px rgb(0 0 0 / 0.35), 0 4px 12px rgb(0 0 0 / 0.20);
739
+ }
740
+
741
+ /* Cursor styles for interactive elements */
742
+ .theme-vivid button,
743
+ .theme-vivid .btn,
744
+ .theme-vivid [data-slot="button"],
745
+ .theme-vivid input[type="button"],
746
+ .theme-vivid input[type="submit"],
747
+ .theme-vivid input[type="reset"],
748
+ .theme-vivid a,
749
+ .theme-vivid [role="button"],
750
+ .theme-vivid [tabindex="0"]:not(input):not(textarea):not(select) {
751
+ cursor: pointer;
752
+ }
753
+
754
+ /* Disabled buttons get not-allowed cursor */
755
+ .theme-vivid button:disabled,
756
+ .theme-vivid .btn:disabled,
757
+ .theme-vivid [data-slot="button"]:disabled,
758
+ .theme-vivid input:disabled {
759
+ cursor: not-allowed;
760
+ }
761
+
762
+ /* Refined focus styles */
763
+ .theme-vivid *:focus-visible {
764
+ outline-offset: 3px;
765
+ box-shadow: 0 0 0 6px oklch(0.45 0.08 290 / 0.15);
766
+ }
767
+ `,
768
+ light: {
769
+ // Only override colors that are different from default
770
+ background: "oklch(1.00 0.000 0)",
771
+ backgroundGradient: "linear-gradient(135deg, oklch(0.45 0.08 290 / 0.02) 0%, oklch(1.00 0.000 0) 70%, oklch(0.98 0.005 60 / 0.01) 100%)",
772
+ foreground: "oklch(0.18 0.02 290)",
773
+ card: "oklch(0.99 0.002 290)",
774
+ cardForeground: "oklch(0.18 0.02 290)",
775
+ popover: "oklch(0.99 0.002 290)",
776
+ popoverForeground: "oklch(0.18 0.02 290)",
777
+ // Vivid color palette - blue-dominant elegant with custom rgb gradient
778
+ primary: "oklch(0.50 0.18 280)",
779
+ primaryForeground: "oklch(0.98 0.005 60)",
780
+ secondary: "oklch(0.58 0.20 15)",
781
+ secondaryForeground: "oklch(0.98 0.005 60)",
782
+ muted: "oklch(0.97 0.02 70)",
783
+ mutedForeground: "oklch(0.42 0.05 290)",
784
+ accent: "oklch(0.75 0.12 40)",
785
+ accentForeground: "oklch(0.08 0.02 290)",
786
+ // Border colors
787
+ border: "oklch(0.90 0.02 290)",
788
+ input: "oklch(0.90 0.02 290)",
789
+ ring: "oklch(0.45 0.08 290)",
790
+ // Chart colors - vibrant elegant spectrum
791
+ chart1: "oklch(0.25 0.12 280)",
792
+ chart2: "oklch(0.58 0.20 15)",
793
+ chart3: "oklch(0.75 0.12 40)",
794
+ chart4: "oklch(0.22 0.14 315)",
795
+ chart5: "oklch(0.45 0.08 290)",
796
+ // Sidebar colors
797
+ sidebar: "oklch(0.98 0.005 60)",
798
+ sidebarForeground: "oklch(0.18 0.02 290)",
799
+ sidebarPrimary: "oklch(0.45 0.08 290)",
800
+ sidebarPrimaryForeground: "oklch(0.98 0.005 60)",
801
+ sidebarAccent: "oklch(0.95 0.015 290)",
802
+ sidebarAccentForeground: "oklch(0.42 0.05 290)",
803
+ sidebarBorder: "oklch(0.90 0.02 290)",
804
+ sidebarRing: "oklch(0.45 0.08 290)"
805
+ },
806
+ dark: {
807
+ // Dark mode vivid colors
808
+ background: "oklch(0.08 0.02 290)",
809
+ backgroundGradient: "linear-gradient(135deg, oklch(0.08 0.02 290) 0%, oklch(0.06 0.015 320) 100%)",
810
+ foreground: "oklch(0.92 0.01 60)",
811
+ card: "oklch(0.20 0.04 290)",
812
+ cardForeground: "oklch(0.92 0.01 60)",
813
+ popover: "oklch(0.16 0.03 290)",
814
+ popoverForeground: "oklch(0.92 0.01 60)",
815
+ // Brightened colors for dark mode with custom rgb gradient
816
+ primary: "oklch(0.68 0.25 280)",
817
+ primaryForeground: "oklch(0.08 0.02 290)",
818
+ secondary: "oklch(0.70 0.25 15)",
819
+ secondaryForeground: "oklch(0.08 0.02 290)",
820
+ muted: "oklch(0.10 0.02 290)",
821
+ mutedForeground: "oklch(0.70 0.05 290)",
822
+ accent: "oklch(0.80 0.15 40)",
823
+ accentForeground: "oklch(0.08 0.02 290)",
824
+ // Border colors
825
+ border: "oklch(0.28 0.05 290)",
826
+ input: "oklch(0.25 0.04 290)",
827
+ ring: "oklch(0.62 0.12 290)",
828
+ // Chart colors - brightened for dark mode
829
+ chart1: "oklch(0.45 0.18 280)",
830
+ chart2: "oklch(0.70 0.25 15)",
831
+ chart3: "oklch(0.80 0.15 40)",
832
+ chart4: "oklch(0.42 0.20 315)",
833
+ chart5: "oklch(0.65 0.12 290)",
834
+ // Sidebar colors
835
+ sidebar: "oklch(0.10 0.02 290)",
836
+ sidebarForeground: "oklch(0.92 0.01 60)",
837
+ sidebarPrimary: "oklch(0.62 0.12 290)",
838
+ sidebarPrimaryForeground: "oklch(0.08 0.02 290)",
839
+ sidebarAccent: "oklch(0.18 0.03 290)",
840
+ sidebarAccentForeground: "oklch(0.70 0.05 290)",
841
+ sidebarBorder: "oklch(0.28 0.05 290)",
842
+ sidebarRing: "oklch(0.62 0.12 290)"
843
+ }
844
+ }, i = [
845
+ "base",
846
+ "elegant",
847
+ "metro",
848
+ "studio",
849
+ "vivid"
850
+ ], n = {
851
+ base: e,
852
+ elegant: r,
853
+ metro: o,
854
+ studio: t,
855
+ vivid: a
856
+ };
857
+ export {
858
+ n as ALL_THEME_PRESETS,
859
+ i as AVAILABLE_THEMES,
860
+ s as ThemeProvider,
861
+ e as base,
862
+ e as baseTheme,
863
+ r as elegant,
864
+ r as elegantTheme,
865
+ o as metro,
866
+ o as metroTheme,
867
+ t as studio,
868
+ t as studioTheme,
869
+ l as useTheme,
870
+ a as vivid,
871
+ a as vividTheme
872
+ };
873
+ //# sourceMappingURL=themes.js.map