@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/form.js ADDED
@@ -0,0 +1,732 @@
1
+ import { jsxs as b, jsx as l } from "react/jsx-runtime";
2
+ import * as M from "react";
3
+ import c, { forwardRef as W, useState as p, useCallback as Z } from "react";
4
+ import { S as Ve } from "./index-DQH6odE9.js";
5
+ import { c as _ } from "./utils-CwJPJKOE.js";
6
+ import { Input as xe } from "./input.js";
7
+ import { Textarea as ve } from "./textarea.js";
8
+ import { Button as X } from "./button.js";
9
+ import { Label as H } from "./label.js";
10
+ import { Checkbox as Ne } from "./checkbox.js";
11
+ import { Select as Ce, SelectTrigger as Fe, SelectValue as Se, SelectContent as ke, SelectItem as te } from "./select.js";
12
+ import { E as _e, a as Ee } from "./eye-DDKoW0KS.js";
13
+ import { c as ne } from "./createLucideIcon-B45kRl5r.js";
14
+ /**
15
+ * @license lucide-react v0.468.0 - ISC
16
+ *
17
+ * This source code is licensed under the ISC license.
18
+ * See the LICENSE file in the root directory of this source tree.
19
+ */
20
+ const U = ne("CircleAlert", [
21
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
22
+ ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
23
+ ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
24
+ ]);
25
+ /**
26
+ * @license lucide-react v0.468.0 - ISC
27
+ *
28
+ * This source code is licensed under the ISC license.
29
+ * See the LICENSE file in the root directory of this source tree.
30
+ */
31
+ const Ie = ne("CircleCheck", [
32
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
33
+ ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
34
+ ]);
35
+ var we = (e) => e.type === "checkbox", R = (e) => e instanceof Date, L = (e) => e == null;
36
+ const le = (e) => typeof e == "object";
37
+ var P = (e) => !L(e) && !Array.isArray(e) && le(e) && !R(e), Me = (e) => P(e) && e.target ? we(e.target) ? e.target.checked : e.target.value : e, Ae = (e) => e.substring(0, e.search(/\.\d+(\.|$)/)) || e, Pe = (e, r) => e.has(Ae(r)), Te = (e) => {
38
+ const r = e.constructor && e.constructor.prototype;
39
+ return P(r) && r.hasOwnProperty("isPrototypeOf");
40
+ }, Oe = typeof window < "u" && typeof window.HTMLElement < "u" && typeof document < "u";
41
+ function ie(e) {
42
+ let r;
43
+ const t = Array.isArray(e), a = typeof FileList < "u" ? e instanceof FileList : !1;
44
+ if (e instanceof Date)
45
+ r = new Date(e);
46
+ else if (!(Oe && (e instanceof Blob || a)) && (t || P(e)))
47
+ if (r = t ? [] : Object.create(Object.getPrototypeOf(e)), !t && !Te(e))
48
+ r = e;
49
+ else
50
+ for (const s in e)
51
+ e.hasOwnProperty(s) && (r[s] = ie(e[s]));
52
+ else
53
+ return e;
54
+ return r;
55
+ }
56
+ var ce = (e) => /^\w*$/.test(e), Y = (e) => e === void 0, De = (e) => Array.isArray(e) ? e.filter(Boolean) : [], ue = (e) => De(e.replace(/["|']|\]/g, "").split(/\.|\[/)), k = (e, r, t) => {
57
+ if (!r || !P(e))
58
+ return t;
59
+ const a = (ce(r) ? [r] : ue(r)).reduce((s, o) => L(s) ? s : s[o], e);
60
+ return Y(a) || a === e ? Y(e[r]) ? t : e[r] : a;
61
+ }, Q = (e) => typeof e == "boolean", re = (e, r, t) => {
62
+ let a = -1;
63
+ const s = ce(r) ? [r] : ue(r), o = s.length, n = o - 1;
64
+ for (; ++a < o; ) {
65
+ const i = s[a];
66
+ let d = t;
67
+ if (a !== n) {
68
+ const u = e[i];
69
+ d = P(u) || Array.isArray(u) ? u : isNaN(+s[a + 1]) ? {} : [];
70
+ }
71
+ if (i === "__proto__" || i === "constructor" || i === "prototype")
72
+ return;
73
+ e[i] = d, e = e[i];
74
+ }
75
+ };
76
+ const se = {
77
+ BLUR: "blur",
78
+ CHANGE: "change"
79
+ }, ae = {
80
+ all: "all"
81
+ }, q = c.createContext(null);
82
+ q.displayName = "HookFormContext";
83
+ const K = () => c.useContext(q), $e = (e) => {
84
+ const { children: r, ...t } = e;
85
+ return c.createElement(q.Provider, { value: t }, r);
86
+ };
87
+ var Be = (e, r, t, a = !0) => {
88
+ const s = {
89
+ defaultValues: r._defaultValues
90
+ };
91
+ for (const o in e)
92
+ Object.defineProperty(s, o, {
93
+ get: () => {
94
+ const n = o;
95
+ return r._proxyFormState[n] !== ae.all && (r._proxyFormState[n] = !a || ae.all), t && (t[n] = !0), e[n];
96
+ }
97
+ });
98
+ return s;
99
+ };
100
+ const de = typeof window < "u" ? c.useLayoutEffect : c.useEffect;
101
+ function fe(e) {
102
+ const r = K(), { control: t = r.control, disabled: a, name: s, exact: o } = e || {}, [n, i] = c.useState(t._formState), d = c.useRef({
103
+ isDirty: !1,
104
+ isLoading: !1,
105
+ dirtyFields: !1,
106
+ touchedFields: !1,
107
+ validatingFields: !1,
108
+ isValidating: !1,
109
+ isValid: !1,
110
+ errors: !1
111
+ });
112
+ return de(() => t._subscribe({
113
+ name: s,
114
+ formState: d.current,
115
+ exact: o,
116
+ callback: (u) => {
117
+ !a && i({
118
+ ...t._formState,
119
+ ...u
120
+ });
121
+ }
122
+ }), [s, a, o]), c.useEffect(() => {
123
+ d.current.isValid && t._setValid(!0);
124
+ }, [t]), c.useMemo(() => Be(n, t, d.current, !1), [n, t]);
125
+ }
126
+ var Re = (e) => typeof e == "string", Ue = (e, r, t, a, s) => Re(e) ? k(t, e, s) : Array.isArray(e) ? e.map((o) => k(t, o)) : t, oe = (e) => L(e) || !le(e);
127
+ function me(e, r, t = /* @__PURE__ */ new WeakSet()) {
128
+ if (oe(e) || oe(r))
129
+ return e === r;
130
+ if (R(e) && R(r))
131
+ return e.getTime() === r.getTime();
132
+ const a = Object.keys(e), s = Object.keys(r);
133
+ if (a.length !== s.length)
134
+ return !1;
135
+ if (t.has(e) || t.has(r))
136
+ return !0;
137
+ t.add(e), t.add(r);
138
+ for (const o of a) {
139
+ const n = e[o];
140
+ if (!s.includes(o))
141
+ return !1;
142
+ if (o !== "ref") {
143
+ const i = r[o];
144
+ if (R(n) && R(i) || P(n) && P(i) || Array.isArray(n) && Array.isArray(i) ? !me(n, i, t) : n !== i)
145
+ return !1;
146
+ }
147
+ }
148
+ return !0;
149
+ }
150
+ function We(e) {
151
+ const r = K(), { control: t = r.control, name: a, defaultValue: s, disabled: o, exact: n, compute: i } = e || {}, d = c.useRef(s), u = c.useRef(i), f = c.useRef(void 0);
152
+ u.current = i;
153
+ const v = c.useMemo(() => t._getWatch(a, d.current), [t, a]), [I, F] = c.useState(u.current ? u.current(v) : v);
154
+ return de(() => t._subscribe({
155
+ name: a,
156
+ formState: {
157
+ values: !0
158
+ },
159
+ exact: n,
160
+ callback: (E) => {
161
+ if (!o) {
162
+ const V = Ue(a, t._names, E.values || t._formValues, !1, d.current);
163
+ if (u.current) {
164
+ const N = u.current(V);
165
+ me(N, f.current) || (F(N), f.current = N);
166
+ } else
167
+ F(V);
168
+ }
169
+ }
170
+ }), [t, o, a, n]), c.useEffect(() => t._removeUnmounted()), I;
171
+ }
172
+ function He(e) {
173
+ const r = K(), { name: t, disabled: a, control: s = r.control, shouldUnregister: o, defaultValue: n } = e, i = Pe(s._names.array, t), d = c.useMemo(() => k(s._formValues, t, k(s._defaultValues, t, n)), [s, t, n]), u = We({
174
+ control: s,
175
+ name: t,
176
+ defaultValue: d,
177
+ exact: !0
178
+ }), f = fe({
179
+ control: s,
180
+ name: t,
181
+ exact: !0
182
+ }), v = c.useRef(e), I = c.useRef(s.register(t, {
183
+ ...e.rules,
184
+ value: u,
185
+ ...Q(e.disabled) ? { disabled: e.disabled } : {}
186
+ }));
187
+ v.current = e;
188
+ const F = c.useMemo(() => Object.defineProperties({}, {
189
+ invalid: {
190
+ enumerable: !0,
191
+ get: () => !!k(f.errors, t)
192
+ },
193
+ isDirty: {
194
+ enumerable: !0,
195
+ get: () => !!k(f.dirtyFields, t)
196
+ },
197
+ isTouched: {
198
+ enumerable: !0,
199
+ get: () => !!k(f.touchedFields, t)
200
+ },
201
+ isValidating: {
202
+ enumerable: !0,
203
+ get: () => !!k(f.validatingFields, t)
204
+ },
205
+ error: {
206
+ enumerable: !0,
207
+ get: () => k(f.errors, t)
208
+ }
209
+ }), [f, t]), E = c.useCallback((m) => I.current.onChange({
210
+ target: {
211
+ value: Me(m),
212
+ name: t
213
+ },
214
+ type: se.CHANGE
215
+ }), [t]), V = c.useCallback(() => I.current.onBlur({
216
+ target: {
217
+ value: k(s._formValues, t),
218
+ name: t
219
+ },
220
+ type: se.BLUR
221
+ }), [t, s._formValues]), N = c.useCallback((m) => {
222
+ const y = k(s._fields, t);
223
+ y && m && (y._f.ref = {
224
+ focus: () => m.focus && m.focus(),
225
+ select: () => m.select && m.select(),
226
+ setCustomValidity: (x) => m.setCustomValidity(x),
227
+ reportValidity: () => m.reportValidity()
228
+ });
229
+ }, [s._fields, t]), h = c.useMemo(() => ({
230
+ name: t,
231
+ value: u,
232
+ ...Q(a) || f.disabled ? { disabled: f.disabled || a } : {},
233
+ onChange: E,
234
+ onBlur: V,
235
+ ref: N
236
+ }), [t, a, f.disabled, E, V, N, u]);
237
+ return c.useEffect(() => {
238
+ const m = s._options.shouldUnregister || o;
239
+ s.register(t, {
240
+ ...v.current.rules,
241
+ ...Q(v.current.disabled) ? { disabled: v.current.disabled } : {}
242
+ });
243
+ const y = (x, g) => {
244
+ const w = k(s._fields, x);
245
+ w && w._f && (w._f.mount = g);
246
+ };
247
+ if (y(t, !0), m) {
248
+ const x = ie(k(s._options.defaultValues, t));
249
+ re(s._defaultValues, t, x), Y(k(s._formValues, t)) && re(s._formValues, t, x);
250
+ }
251
+ return !i && s.register(t), () => {
252
+ (i ? m && !s._state.action : m) ? s.unregister(t) : y(t, !1);
253
+ };
254
+ }, [t, s, i, o]), c.useEffect(() => {
255
+ s._setDisabledField({
256
+ disabled: a,
257
+ name: t
258
+ });
259
+ }, [a, t, s]), c.useMemo(() => ({
260
+ field: h,
261
+ formState: f,
262
+ fieldState: F
263
+ }), [h, f, F]);
264
+ }
265
+ const ze = (e) => e.render(He(e)), ge = (e, r) => {
266
+ const [t, a] = p(e);
267
+ return M.useEffect(() => {
268
+ const s = setTimeout(() => a(e), r);
269
+ return () => clearTimeout(s);
270
+ }, [e, r]), t;
271
+ }, Ge = (e) => {
272
+ if (!e) return { score: 0, label: "", color: "" };
273
+ let r = 0;
274
+ return e.length >= 8 && (r += 25), e.length >= 12 && (r += 25), /[a-z]/.test(e) && (r += 10), /[A-Z]/.test(e) && (r += 10), /\d/.test(e) && (r += 15), /[^a-zA-Z\d]/.test(e) && (r += 15), r < 30 ? { score: r, label: "Weak", color: "text-destructive" } : r < 60 ? { score: r, label: "Medium", color: "text-orange-600" } : { score: r, label: "Strong", color: "text-green-600" };
275
+ }, it = $e, he = M.createContext(
276
+ {}
277
+ ), ct = ({
278
+ ...e
279
+ }) => /* @__PURE__ */ l(he.Provider, { value: { name: e.name }, children: /* @__PURE__ */ l(ze, { ...e }) }), J = () => {
280
+ const e = M.useContext(he), r = M.useContext(ye), { getFieldState: t } = K(), a = fe({ name: e.name }), s = t(e.name, a);
281
+ if (!e)
282
+ throw new Error("useFormField should be used within <FormField>");
283
+ const { id: o } = r;
284
+ return {
285
+ id: o,
286
+ name: e.name,
287
+ formItemId: `${o}-form-item`,
288
+ formDescriptionId: `${o}-form-item-description`,
289
+ formMessageId: `${o}-form-item-message`,
290
+ ...s
291
+ };
292
+ }, ye = M.createContext(
293
+ {}
294
+ );
295
+ function ut({ className: e, ...r }) {
296
+ const t = M.useId();
297
+ return /* @__PURE__ */ l(ye.Provider, { value: { id: t }, children: /* @__PURE__ */ l(
298
+ "div",
299
+ {
300
+ "data-slot": "form-item",
301
+ className: _("grid gap-2", e),
302
+ ...r
303
+ }
304
+ ) });
305
+ }
306
+ function dt({
307
+ className: e,
308
+ ...r
309
+ }) {
310
+ const { error: t, formItemId: a } = J();
311
+ return /* @__PURE__ */ l(
312
+ H,
313
+ {
314
+ "data-slot": "form-label",
315
+ "data-error": !!t,
316
+ className: _("data-[error=true]:text-destructive", e),
317
+ htmlFor: a,
318
+ ...r
319
+ }
320
+ );
321
+ }
322
+ function ft({ ...e }) {
323
+ const { error: r, formItemId: t, formDescriptionId: a, formMessageId: s } = J();
324
+ return /* @__PURE__ */ l(
325
+ Ve,
326
+ {
327
+ "data-slot": "form-control",
328
+ id: t,
329
+ "aria-describedby": r ? `${a} ${s}` : `${a}`,
330
+ "aria-invalid": !!r,
331
+ ...e
332
+ }
333
+ );
334
+ }
335
+ function mt({ className: e, ...r }) {
336
+ const { formDescriptionId: t } = J();
337
+ return /* @__PURE__ */ l(
338
+ "p",
339
+ {
340
+ "data-slot": "form-description",
341
+ id: t,
342
+ className: _("text-muted-foreground text-sm", e),
343
+ ...r
344
+ }
345
+ );
346
+ }
347
+ function gt({ className: e, ...r }) {
348
+ const { error: t, formMessageId: a } = J(), s = t ? String(t?.message ?? "") : r.children;
349
+ return s ? /* @__PURE__ */ l(
350
+ "p",
351
+ {
352
+ "data-slot": "form-message",
353
+ id: a,
354
+ className: _("text-destructive text-sm", e),
355
+ ...r,
356
+ children: s
357
+ }
358
+ ) : null;
359
+ }
360
+ const Ze = W(({
361
+ value: e = "",
362
+ onChange: r,
363
+ onFocus: t,
364
+ onBlur: a,
365
+ type: s = "text",
366
+ required: o = !1,
367
+ minLength: n,
368
+ maxLength: i,
369
+ pattern: d,
370
+ label: u,
371
+ placeholder: f,
372
+ disabled: v = !1,
373
+ showPasswordStrength: I = !1,
374
+ showPasswordToggle: F = !0,
375
+ className: E,
376
+ ...V
377
+ }, N) => {
378
+ const [h, m] = p(e), [y, x] = p(!1), [g, w] = p(!1), [T, O] = p(!0), [z, G] = p("");
379
+ M.useEffect(() => {
380
+ m(e || "");
381
+ }, [e]);
382
+ const D = ge(h, 300), $ = Z((C) => o && !C.trim() ? { isValid: !1, message: "This field is required" } : !C.trim() && !o ? { isValid: !0, message: "" } : n && C.length < n ? { isValid: !1, message: `Minimum ${n} characters required` } : i && C.length > i ? { isValid: !1, message: `Maximum ${i} characters allowed` } : s === "email" && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(C) ? { isValid: !1, message: "Please enter a valid email address" } : s === "url" && !/^https?:\/\/.+\..+/.test(C) ? { isValid: !1, message: "Please enter a valid URL" } : s === "tel" && !/^[\+]?[1-9][\d]{0,15}$/.test(C) ? { isValid: !1, message: "Please enter a valid phone number" } : d && !new RegExp(d).test(C) ? { isValid: !1, message: "Please match the required format" } : { isValid: !0, message: "" }, [o, n, i, s, d]);
383
+ M.useEffect(() => {
384
+ if (g) {
385
+ const C = $(D);
386
+ O(C.isValid), G(C.message);
387
+ }
388
+ }, [D, $, g]);
389
+ const S = (C) => {
390
+ const ee = C.target.value;
391
+ m(ee), r?.(ee), g || w(!0);
392
+ }, B = () => {
393
+ w(!0);
394
+ const C = $(h);
395
+ O(C.isValid), G(C.message), a?.();
396
+ }, be = s === "password" && y ? "text" : s, j = g && !T, pe = g && T && h, A = s === "password" && I ? Ge(h) : null;
397
+ return /* @__PURE__ */ b("div", { className: "space-y-2", children: [
398
+ u && /* @__PURE__ */ l(
399
+ H,
400
+ {
401
+ className: _(
402
+ "text-foreground",
403
+ o && "after:content-['*'] after:ml-0.5 after:text-destructive"
404
+ ),
405
+ children: u
406
+ }
407
+ ),
408
+ /* @__PURE__ */ b("div", { className: "relative", children: [
409
+ /* @__PURE__ */ l(
410
+ xe,
411
+ {
412
+ ...V,
413
+ ref: N,
414
+ type: be,
415
+ value: h,
416
+ onChange: S,
417
+ onBlur: B,
418
+ onFocus: t,
419
+ placeholder: f,
420
+ disabled: v,
421
+ className: _(
422
+ "bg-background border-border text-foreground",
423
+ j && "border-destructive focus:border-destructive",
424
+ pe && "border-green-500",
425
+ s === "password" && F && "pr-10",
426
+ E
427
+ )
428
+ }
429
+ ),
430
+ s === "password" && F && /* @__PURE__ */ l(
431
+ X,
432
+ {
433
+ type: "button",
434
+ variant: "ghost",
435
+ size: "sm",
436
+ className: "absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",
437
+ onClick: () => x(!y),
438
+ tabIndex: -1,
439
+ children: y ? /* @__PURE__ */ l(_e, { className: "h-4 w-4" }) : /* @__PURE__ */ l(Ee, { className: "h-4 w-4" })
440
+ }
441
+ ),
442
+ g && h && !F && /* @__PURE__ */ l("div", { className: "absolute right-3 top-2.5", children: T ? /* @__PURE__ */ l(Ie, { className: "h-4 w-4 text-green-500" }) : /* @__PURE__ */ l(U, { className: "h-4 w-4 text-destructive" }) })
443
+ ] }),
444
+ A && h && /* @__PURE__ */ b("div", { className: "space-y-1", children: [
445
+ /* @__PURE__ */ b("div", { className: "flex justify-between text-xs", children: [
446
+ /* @__PURE__ */ l("span", { className: "text-muted-foreground", children: "Password strength" }),
447
+ /* @__PURE__ */ l("span", { className: A.color, children: A.label })
448
+ ] }),
449
+ /* @__PURE__ */ l("div", { className: "w-full bg-muted rounded-full h-1.5", children: /* @__PURE__ */ l(
450
+ "div",
451
+ {
452
+ className: _(
453
+ "h-1.5 rounded-full transition-all duration-300",
454
+ A.score < 30 && "bg-destructive",
455
+ A.score >= 30 && A.score < 60 && "bg-orange-500",
456
+ A.score >= 60 && "bg-green-500"
457
+ ),
458
+ style: { width: `${A.score}%` }
459
+ }
460
+ ) })
461
+ ] }),
462
+ j && z && /* @__PURE__ */ b("div", { className: "flex items-center gap-1 text-sm text-destructive", children: [
463
+ /* @__PURE__ */ l(U, { className: "h-3 w-3" }),
464
+ z
465
+ ] })
466
+ ] });
467
+ });
468
+ Ze.displayName = "ValidatedInput";
469
+ const Ke = W(({
470
+ value: e = "",
471
+ onChange: r,
472
+ onFocus: t,
473
+ onBlur: a,
474
+ required: s = !1,
475
+ minLength: o,
476
+ maxLength: n,
477
+ label: i,
478
+ placeholder: d,
479
+ disabled: u = !1,
480
+ rows: f = 3,
481
+ showCharCount: v = !0,
482
+ className: I,
483
+ ...F
484
+ }, E) => {
485
+ const [V, N] = p(e), [h, m] = p(!1), [y, x] = p(!0), [g, w] = p("");
486
+ M.useEffect(() => {
487
+ N(e || "");
488
+ }, [e]);
489
+ const T = ge(V, 300), O = Z((S) => s && !S.trim() ? { isValid: !1, message: "This field is required" } : !S.trim() && !s ? { isValid: !0, message: "" } : o && S.length < o ? { isValid: !1, message: `Minimum ${o} characters required` } : n && S.length > n ? { isValid: !1, message: `Maximum ${n} characters allowed` } : { isValid: !0, message: "" }, [s, o, n]);
490
+ M.useEffect(() => {
491
+ if (h) {
492
+ const S = O(T);
493
+ x(S.isValid), w(S.message);
494
+ }
495
+ }, [T, O, h]);
496
+ const z = (S) => {
497
+ const B = S.target.value;
498
+ n && B.length > n || (N(B), r?.(B), h || m(!0));
499
+ }, G = () => {
500
+ m(!0);
501
+ const S = O(V);
502
+ x(S.isValid), w(S.message), a?.();
503
+ }, D = h && !y, $ = h && y && V;
504
+ return /* @__PURE__ */ b("div", { className: "space-y-2", children: [
505
+ i && /* @__PURE__ */ l(
506
+ H,
507
+ {
508
+ className: _(
509
+ "text-foreground",
510
+ s && "after:content-['*'] after:ml-0.5 after:text-destructive"
511
+ ),
512
+ children: i
513
+ }
514
+ ),
515
+ /* @__PURE__ */ l(
516
+ ve,
517
+ {
518
+ ...F,
519
+ ref: E,
520
+ value: V,
521
+ onChange: z,
522
+ onBlur: G,
523
+ onFocus: t,
524
+ placeholder: d,
525
+ disabled: u,
526
+ rows: f,
527
+ className: _(
528
+ "bg-background border-border text-foreground",
529
+ D && "border-destructive focus:border-destructive",
530
+ $ && "border-green-500",
531
+ I
532
+ )
533
+ }
534
+ ),
535
+ v && n && /* @__PURE__ */ b("div", { className: "text-xs text-muted-foreground text-right", children: [
536
+ V.length,
537
+ " / ",
538
+ n
539
+ ] }),
540
+ D && g && /* @__PURE__ */ b("div", { className: "flex items-center gap-1 text-sm text-destructive", children: [
541
+ /* @__PURE__ */ l(U, { className: "h-3 w-3" }),
542
+ g
543
+ ] })
544
+ ] });
545
+ });
546
+ Ke.displayName = "ValidatedTextarea";
547
+ const Je = W(({
548
+ value: e = "",
549
+ onChange: r,
550
+ required: t = !1,
551
+ disabled: a = !1,
552
+ label: s,
553
+ placeholder: o = "Select an option...",
554
+ options: n,
555
+ clearable: i = !1,
556
+ className: d
557
+ }, u) => {
558
+ const [f, v] = p(e), [I, F] = p(!1), [E, V] = p(!0), [N, h] = p("");
559
+ M.useEffect(() => {
560
+ v(e || "");
561
+ }, [e]);
562
+ const m = Z((g) => t && !g ? { isValid: !1, message: "Please select an option" } : { isValid: !0, message: "" }, [t]), y = (g) => {
563
+ F(!0), v(g);
564
+ const w = m(g);
565
+ V(w.isValid), h(w.message), r?.(g);
566
+ }, x = I && !E;
567
+ return /* @__PURE__ */ b("div", { className: "space-y-2", ref: u, children: [
568
+ s && /* @__PURE__ */ l(
569
+ H,
570
+ {
571
+ className: _(
572
+ "text-foreground",
573
+ t && "after:content-['*'] after:ml-0.5 after:text-destructive"
574
+ ),
575
+ children: s
576
+ }
577
+ ),
578
+ /* @__PURE__ */ b(
579
+ Ce,
580
+ {
581
+ value: f,
582
+ onValueChange: y,
583
+ disabled: a,
584
+ children: [
585
+ /* @__PURE__ */ l(
586
+ Fe,
587
+ {
588
+ className: _(
589
+ "bg-background border-border text-foreground",
590
+ x && "border-destructive focus:border-destructive",
591
+ d
592
+ ),
593
+ children: /* @__PURE__ */ l(Se, { placeholder: o })
594
+ }
595
+ ),
596
+ /* @__PURE__ */ b(ke, { className: "bg-popover border-border", children: [
597
+ i && f && /* @__PURE__ */ l(te, { value: "", className: "text-muted-foreground", children: "Clear selection" }),
598
+ n.map((g) => /* @__PURE__ */ l(
599
+ te,
600
+ {
601
+ value: g.value,
602
+ disabled: g.disabled,
603
+ className: "text-foreground",
604
+ children: g.label
605
+ },
606
+ g.value
607
+ ))
608
+ ] })
609
+ ]
610
+ }
611
+ ),
612
+ x && N && /* @__PURE__ */ b("div", { className: "flex items-center gap-1 text-sm text-destructive", children: [
613
+ /* @__PURE__ */ l(U, { className: "h-3 w-3" }),
614
+ N
615
+ ] })
616
+ ] });
617
+ });
618
+ Je.displayName = "ValidatedSelect";
619
+ const Qe = W(({
620
+ checked: e = !1,
621
+ onChange: r,
622
+ required: t = !1,
623
+ disabled: a = !1,
624
+ label: s,
625
+ description: o,
626
+ className: n
627
+ }, i) => {
628
+ const [d, u] = p(e), [f, v] = p(!1), [I, F] = p(!0), [E, V] = p("");
629
+ M.useEffect(() => {
630
+ u(e || !1);
631
+ }, [e]);
632
+ const N = Z((y) => t && !y ? { isValid: !1, message: "This field is required" } : { isValid: !0, message: "" }, [t]), h = (y) => {
633
+ v(!0), u(y);
634
+ const x = N(y);
635
+ F(x.isValid), V(x.message), r?.(y);
636
+ }, m = f && !I;
637
+ return /* @__PURE__ */ b("div", { className: _("space-y-2", n), ref: i, children: [
638
+ /* @__PURE__ */ b("div", { className: "flex items-start space-x-2", children: [
639
+ /* @__PURE__ */ l(
640
+ Ne,
641
+ {
642
+ checked: d,
643
+ onCheckedChange: h,
644
+ disabled: a,
645
+ className: "mt-0.5"
646
+ }
647
+ ),
648
+ /* @__PURE__ */ b("div", { className: "space-y-1 flex-1", children: [
649
+ /* @__PURE__ */ l(
650
+ H,
651
+ {
652
+ className: _(
653
+ "text-sm font-medium leading-none text-foreground cursor-pointer",
654
+ t && "after:content-['*'] after:ml-0.5 after:text-destructive"
655
+ ),
656
+ children: s
657
+ }
658
+ ),
659
+ o && /* @__PURE__ */ l("p", { className: "text-xs text-muted-foreground", children: o })
660
+ ] })
661
+ ] }),
662
+ m && E && /* @__PURE__ */ b("div", { className: "flex items-center gap-1 text-sm text-destructive ml-6", children: [
663
+ /* @__PURE__ */ l(U, { className: "h-3 w-3" }),
664
+ E
665
+ ] })
666
+ ] });
667
+ });
668
+ Qe.displayName = "ValidatedCheckbox";
669
+ const Xe = W(({
670
+ submitText: e = "Submit",
671
+ cancelText: r = "Cancel",
672
+ showCancel: t = !1,
673
+ loading: a = !1,
674
+ disabled: s = !1,
675
+ onCancel: o,
676
+ align: n = "right",
677
+ className: i
678
+ }, d) => /* @__PURE__ */ b(
679
+ "div",
680
+ {
681
+ ref: d,
682
+ className: _(
683
+ "flex gap-2",
684
+ n === "left" && "justify-start",
685
+ n === "center" && "justify-center",
686
+ n === "right" && "justify-end",
687
+ i
688
+ ),
689
+ children: [
690
+ t && /* @__PURE__ */ l(
691
+ X,
692
+ {
693
+ type: "button",
694
+ variant: "outline",
695
+ onClick: o,
696
+ disabled: a,
697
+ className: "border-border",
698
+ children: r
699
+ }
700
+ ),
701
+ /* @__PURE__ */ l(
702
+ X,
703
+ {
704
+ type: "submit",
705
+ disabled: a || s,
706
+ className: "min-w-24 bg-primary text-primary-foreground",
707
+ children: a ? /* @__PURE__ */ b("div", { className: "flex items-center gap-2", children: [
708
+ /* @__PURE__ */ l("div", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }),
709
+ "Loading..."
710
+ ] }) : e
711
+ }
712
+ )
713
+ ]
714
+ }
715
+ ));
716
+ Xe.displayName = "FormActions";
717
+ export {
718
+ it as Form,
719
+ Xe as FormActions,
720
+ ft as FormControl,
721
+ mt as FormDescription,
722
+ ct as FormField,
723
+ ut as FormItem,
724
+ dt as FormLabel,
725
+ gt as FormMessage,
726
+ Qe as ValidatedCheckbox,
727
+ Ze as ValidatedInput,
728
+ Je as ValidatedSelect,
729
+ Ke as ValidatedTextarea,
730
+ J as useFormField
731
+ };
732
+ //# sourceMappingURL=form.js.map