@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.
- package/CHANGELOG.md +222 -0
- package/LICENSE +21 -0
- package/README.md +513 -0
- package/bin/commands/build.js +232 -0
- package/bin/commands/bundle.js +587 -0
- package/bin/commands/create.js +768 -0
- package/bin/commands/deploy.js +533 -0
- package/bin/commands/generate.js +673 -0
- package/bin/commands/optimize.js +198 -0
- package/bin/commands/prerender.js +306 -0
- package/bin/commands/serve.js +216 -0
- package/bin/templates/fbca/README.md.template +130 -0
- package/bin/templates/fbca/docs/QUICKSTART_FBCA.md +368 -0
- package/bin/templates/fbca/docs/UIKIT_CLI_GUIDE.md +574 -0
- package/bin/templates/fbca/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
- package/bin/templates/fbca/docs/UIKIT_LLM_GUIDE.md +2055 -0
- package/bin/templates/fbca/docs/UIKIT_THEME_GUIDE.md +359 -0
- package/bin/templates/fbca/package.json.template +41 -0
- package/bin/templates/fbca/public/favicon.svg +10 -0
- package/bin/templates/fbca/public/hero_fbca.svg +1 -0
- package/bin/templates/fbca/src/utils/asset.ts +6 -0
- package/bin/templates/fbca/src/web/App.tsx.template +20 -0
- package/bin/templates/fbca/src/web/features/auth/pages/index.tsx.template +157 -0
- package/bin/templates/fbca/src/web/features/docs/pages/[...slug].tsx.template +83 -0
- package/bin/templates/fbca/src/web/features/gallery/hooks/useGallery.ts.template +74 -0
- package/bin/templates/fbca/src/web/features/gallery/pages/index.tsx.template +136 -0
- package/bin/templates/fbca/src/web/features/main/components/CTASection.tsx.template +43 -0
- package/bin/templates/fbca/src/web/features/main/pages/About.tsx.template +374 -0
- package/bin/templates/fbca/src/web/features/main/pages/index.tsx.template +214 -0
- package/bin/templates/fbca/src/web/index.html.template +15 -0
- package/bin/templates/fbca/src/web/lib/page-router.tsx.template +134 -0
- package/bin/templates/fbca/src/web/main.tsx.template +14 -0
- package/bin/templates/fbca/src/web/shared/components/Footer.tsx.template +57 -0
- package/bin/templates/fbca/src/web/shared/components/Header.tsx.template +91 -0
- package/bin/templates/fbca/src/web/shared/components/SEO.tsx.template +24 -0
- package/bin/templates/fbca/src/web/shared/components/index.ts.template +3 -0
- package/bin/templates/fbca/src/web/shared/hooks/useSEO.ts.template +85 -0
- package/bin/templates/fbca/src/web/shared/utils/asset.ts +6 -0
- package/bin/templates/fbca/src/web/styles/index.css.template +8 -0
- package/bin/templates/fbca/src/web/utils/asset.ts +6 -0
- package/bin/templates/fbca/tsconfig.json.template +32 -0
- package/bin/templates/fbca/tsconfig.node.json.template +10 -0
- package/bin/templates/fbca/vite.config.ts.template +38 -0
- package/bin/templates/generate/component/component.tsx.template +79 -0
- package/bin/templates/generate/component/index.ts.template +2 -0
- package/bin/templates/generate/component/types.ts.template +58 -0
- package/bin/templates/generate/feature/index.ts.template +14 -0
- package/bin/templates/generate/feature/list-page.tsx.template +34 -0
- package/bin/templates/generate/feature/main-component.tsx.template +37 -0
- package/bin/templates/generate/feature/main-page.tsx.template +30 -0
- package/bin/templates/generate/feature/types.ts.template +34 -0
- package/bin/templates/generate/hook/hook.ts.template +35 -0
- package/bin/templates/generate/index.css.template +10 -0
- package/bin/templates/generate/main.tsx.template +10 -0
- package/bin/templates/generate/page/index.ts.template +2 -0
- package/bin/templates/generate/page/page.tsx.template +86 -0
- package/bin/templates/generate/theme/README.md +31 -0
- package/bin/templates/generate/theme/theme.js.template +155 -0
- package/bin/templates/multi/README.md.template +120 -0
- package/bin/templates/multi/docs/QUICKSTART_MULTI.md +334 -0
- package/bin/templates/multi/docs/UIKIT_CLI_GUIDE.md +574 -0
- package/bin/templates/multi/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
- package/bin/templates/multi/docs/UIKIT_LLM_GUIDE.md +2055 -0
- package/bin/templates/multi/docs/UIKIT_THEME_GUIDE.md +359 -0
- package/bin/templates/multi/index.html.template +58 -0
- package/bin/templates/multi/package.json.template +35 -0
- package/bin/templates/multi/public/favicon.svg +10 -0
- package/bin/templates/multi/public/hero_multi.svg +1 -0
- package/bin/templates/multi/src/App.tsx.template +92 -0
- package/bin/templates/multi/src/components/Footer.tsx.template +58 -0
- package/bin/templates/multi/src/components/Header.tsx.template +103 -0
- package/bin/templates/multi/src/components/SEO.tsx.template +19 -0
- package/bin/templates/multi/src/components/index.ts.template +3 -0
- package/bin/templates/multi/src/hooks/useSEO.ts.template +38 -0
- package/bin/templates/multi/src/index.css.template +7 -0
- package/bin/templates/multi/src/main.tsx.template +14 -0
- package/bin/templates/multi/src/pages/About.tsx.template +276 -0
- package/bin/templates/multi/src/pages/Components.tsx.template +288 -0
- package/bin/templates/multi/src/pages/Contact.tsx.template +348 -0
- package/bin/templates/multi/src/pages/Dashboard.tsx.template +306 -0
- package/bin/templates/multi/src/pages/ErrorPage.tsx.template +37 -0
- package/bin/templates/multi/src/pages/Home.tsx.template +201 -0
- package/bin/templates/multi/src/pages/Login.tsx.template +148 -0
- package/bin/templates/multi/src/pages/Themes.tsx.template +207 -0
- package/bin/templates/multi/src/router.tsx.template +34 -0
- package/bin/templates/multi/src/utils/asset.ts +6 -0
- package/bin/templates/multi/tsconfig.json.template +30 -0
- package/bin/templates/multi/tsconfig.node.json +22 -0
- package/bin/templates/multi/vite.config.ts.template +36 -0
- package/bin/templates/single/README.md.template +131 -0
- package/bin/templates/single/docs/QUICKSTART_SINGLE.md +259 -0
- package/bin/templates/single/docs/UIKIT_CLI_GUIDE.md +574 -0
- package/bin/templates/single/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
- package/bin/templates/single/docs/UIKIT_LLM_GUIDE.md +2055 -0
- package/bin/templates/single/docs/UIKIT_THEME_GUIDE.md +359 -0
- package/bin/templates/single/index.html.template +37 -0
- package/bin/templates/single/package.json.template +34 -0
- package/bin/templates/single/public/favicon.svg +10 -0
- package/bin/templates/single/public/hero.svg +1 -0
- package/bin/templates/single/src/App.tsx.template +233 -0
- package/bin/templates/single/src/index.css.template +7 -0
- package/bin/templates/single/src/main.tsx.template +14 -0
- package/bin/templates/single/src/styles/fonts.css +99 -0
- package/bin/templates/single/src/utils/asset.ts +6 -0
- package/bin/templates/single/tsconfig.json +31 -0
- package/bin/templates/single/tsconfig.node.json +22 -0
- package/bin/templates/single/vite.config.ts.template +36 -0
- package/bin/templates/spa/README.md.template +105 -0
- package/bin/templates/spa/components/SEO.tsx.template +19 -0
- package/bin/templates/spa/docs/QUICKSTART_SPA.md +300 -0
- package/bin/templates/spa/docs/UIKIT_CLI_GUIDE.md +574 -0
- package/bin/templates/spa/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
- package/bin/templates/spa/docs/UIKIT_LLM_GUIDE.md +2055 -0
- package/bin/templates/spa/docs/UIKIT_THEME_GUIDE.md +359 -0
- package/bin/templates/spa/hooks/useSEO.ts.template +38 -0
- package/bin/templates/spa/index.html.template +58 -0
- package/bin/templates/spa/package.json.template +35 -0
- package/bin/templates/spa/public/favicon.svg +15 -0
- package/bin/templates/spa/public/hero_spa.svg +1 -0
- package/bin/templates/spa/src/App.tsx.template +659 -0
- package/bin/templates/spa/src/index.css.template +7 -0
- package/bin/templates/spa/src/main.tsx.template +14 -0
- package/bin/templates/spa/src/utils/asset.ts +6 -0
- package/bin/templates/spa/tsconfig.json.template +30 -0
- package/bin/templates/spa/tsconfig.node.json +22 -0
- package/bin/templates/spa/vite.config.ts.template +36 -0
- package/bin/uikit.js +133 -0
- package/cookbook/README.md +20 -0
- package/cookbook/crud-page.tsx +99 -0
- package/cookbook/dashboard.tsx +89 -0
- package/cookbook/delete-flow.tsx +59 -0
- package/cookbook/login.tsx +85 -0
- package/cookbook/settings.tsx +113 -0
- package/dist/Combination-C0DFrmJW.js +674 -0
- package/dist/Combination-C0DFrmJW.js.map +1 -0
- package/dist/accordion.js +284 -0
- package/dist/accordion.js.map +1 -0
- package/dist/admin.js +429 -0
- package/dist/admin.js.map +1 -0
- package/dist/alert.js +67 -0
- package/dist/alert.js.map +1 -0
- package/dist/auth.js +178 -0
- package/dist/auth.js.map +1 -0
- package/dist/avatar.js +249 -0
- package/dist/avatar.js.map +1 -0
- package/dist/badge.js +40 -0
- package/dist/badge.js.map +1 -0
- package/dist/blank.js +80 -0
- package/dist/blank.js.map +1 -0
- package/dist/breadcrumb.js +104 -0
- package/dist/breadcrumb.js.map +1 -0
- package/dist/button.js +50 -0
- package/dist/button.js.map +1 -0
- package/dist/calendar.js +2785 -0
- package/dist/calendar.js.map +1 -0
- package/dist/card.js +91 -0
- package/dist/card.js.map +1 -0
- package/dist/check-DXouwtzp.js +12 -0
- package/dist/check-DXouwtzp.js.map +1 -0
- package/dist/checkbox.js +268 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/chevron-down-BORJtX8F.js +14 -0
- package/dist/chevron-down-BORJtX8F.js.map +1 -0
- package/dist/chevron-left-C1pkx4AF.js +14 -0
- package/dist/chevron-left-C1pkx4AF.js.map +1 -0
- package/dist/chevron-right-pz9eCjj-.js +14 -0
- package/dist/chevron-right-pz9eCjj-.js.map +1 -0
- package/dist/circle-DHOdTDQh.js +14 -0
- package/dist/circle-DHOdTDQh.js.map +1 -0
- package/dist/collapsible.js +35 -0
- package/dist/collapsible.js.map +1 -0
- package/dist/command.js +481 -0
- package/dist/command.js.map +1 -0
- package/dist/confirm-dialog.js +129 -0
- package/dist/confirm-dialog.js.map +1 -0
- package/dist/container.js +334 -0
- package/dist/container.js.map +1 -0
- package/dist/createLucideIcon-B45kRl5r.js +80 -0
- package/dist/createLucideIcon-B45kRl5r.js.map +1 -0
- package/dist/data-table.js +574 -0
- package/dist/data-table.js.map +1 -0
- package/dist/detail-page.js +454 -0
- package/dist/detail-page.js.map +1 -0
- package/dist/dialog.js +137 -0
- package/dist/dialog.js.map +1 -0
- package/dist/dropdown-menu.js +424 -0
- package/dist/dropdown-menu.js.map +1 -0
- package/dist/ellipsis-BhAoKPVk.js +16 -0
- package/dist/ellipsis-BhAoKPVk.js.map +1 -0
- package/dist/empty-state.js +54 -0
- package/dist/empty-state.js.map +1 -0
- package/dist/errors.js +36 -0
- package/dist/errors.js.map +1 -0
- package/dist/eye-DDKoW0KS.js +46 -0
- package/dist/eye-DDKoW0KS.js.map +1 -0
- package/dist/fonts/caveat-cyrillic-400-normal.woff +0 -0
- package/dist/fonts/caveat-cyrillic-400-normal.woff2 +0 -0
- package/dist/fonts/caveat-cyrillic-700-normal.woff +0 -0
- package/dist/fonts/caveat-cyrillic-700-normal.woff2 +0 -0
- package/dist/fonts/caveat-cyrillic-ext-400-normal.woff +0 -0
- package/dist/fonts/caveat-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/fonts/caveat-cyrillic-ext-700-normal.woff +0 -0
- package/dist/fonts/caveat-cyrillic-ext-700-normal.woff2 +0 -0
- package/dist/fonts/caveat-latin-400-normal.woff +0 -0
- package/dist/fonts/caveat-latin-400-normal.woff2 +0 -0
- package/dist/fonts/caveat-latin-700-normal.woff +0 -0
- package/dist/fonts/caveat-latin-700-normal.woff2 +0 -0
- package/dist/fonts/caveat-latin-ext-400-normal.woff +0 -0
- package/dist/fonts/caveat-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/caveat-latin-ext-700-normal.woff +0 -0
- package/dist/fonts/caveat-latin-ext-700-normal.woff2 +0 -0
- package/dist/fonts/crimson-text-latin-400-normal.woff +0 -0
- package/dist/fonts/crimson-text-latin-400-normal.woff2 +0 -0
- package/dist/fonts/crimson-text-latin-600-normal.woff +0 -0
- package/dist/fonts/crimson-text-latin-600-normal.woff2 +0 -0
- package/dist/fonts/crimson-text-latin-700-normal.woff +0 -0
- package/dist/fonts/crimson-text-latin-700-normal.woff2 +0 -0
- package/dist/fonts/crimson-text-latin-ext-400-normal.woff +0 -0
- package/dist/fonts/crimson-text-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/crimson-text-latin-ext-600-normal.woff +0 -0
- package/dist/fonts/crimson-text-latin-ext-600-normal.woff2 +0 -0
- package/dist/fonts/crimson-text-latin-ext-700-normal.woff +0 -0
- package/dist/fonts/crimson-text-latin-ext-700-normal.woff2 +0 -0
- package/dist/fonts/crimson-text-vietnamese-400-normal.woff +0 -0
- package/dist/fonts/crimson-text-vietnamese-400-normal.woff2 +0 -0
- package/dist/fonts/crimson-text-vietnamese-600-normal.woff +0 -0
- package/dist/fonts/crimson-text-vietnamese-600-normal.woff2 +0 -0
- package/dist/fonts/crimson-text-vietnamese-700-normal.woff +0 -0
- package/dist/fonts/crimson-text-vietnamese-700-normal.woff2 +0 -0
- package/dist/fonts/dm-serif-display-latin-400-normal.woff +0 -0
- package/dist/fonts/dm-serif-display-latin-400-normal.woff2 +0 -0
- package/dist/fonts/dm-serif-display-latin-ext-400-normal.woff +0 -0
- package/dist/fonts/dm-serif-display-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/libre-baskerville-latin-400-normal.woff +0 -0
- package/dist/fonts/libre-baskerville-latin-400-normal.woff2 +0 -0
- package/dist/fonts/libre-baskerville-latin-700-normal.woff +0 -0
- package/dist/fonts/libre-baskerville-latin-700-normal.woff2 +0 -0
- package/dist/fonts/libre-baskerville-latin-ext-400-normal.woff +0 -0
- package/dist/fonts/libre-baskerville-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/libre-baskerville-latin-ext-700-normal.woff +0 -0
- package/dist/fonts/libre-baskerville-latin-ext-700-normal.woff2 +0 -0
- package/dist/fonts/montserrat-cyrillic-400-normal.woff +0 -0
- package/dist/fonts/montserrat-cyrillic-400-normal.woff2 +0 -0
- package/dist/fonts/montserrat-cyrillic-500-normal.woff +0 -0
- package/dist/fonts/montserrat-cyrillic-500-normal.woff2 +0 -0
- package/dist/fonts/montserrat-cyrillic-600-normal.woff +0 -0
- package/dist/fonts/montserrat-cyrillic-600-normal.woff2 +0 -0
- package/dist/fonts/montserrat-cyrillic-ext-400-normal.woff +0 -0
- package/dist/fonts/montserrat-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/fonts/montserrat-cyrillic-ext-500-normal.woff +0 -0
- package/dist/fonts/montserrat-cyrillic-ext-500-normal.woff2 +0 -0
- package/dist/fonts/montserrat-cyrillic-ext-600-normal.woff +0 -0
- package/dist/fonts/montserrat-cyrillic-ext-600-normal.woff2 +0 -0
- package/dist/fonts/montserrat-latin-400-normal.woff +0 -0
- package/dist/fonts/montserrat-latin-400-normal.woff2 +0 -0
- package/dist/fonts/montserrat-latin-500-normal.woff +0 -0
- package/dist/fonts/montserrat-latin-500-normal.woff2 +0 -0
- package/dist/fonts/montserrat-latin-600-normal.woff +0 -0
- package/dist/fonts/montserrat-latin-600-normal.woff2 +0 -0
- package/dist/fonts/montserrat-latin-ext-400-normal.woff +0 -0
- package/dist/fonts/montserrat-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/montserrat-latin-ext-500-normal.woff +0 -0
- package/dist/fonts/montserrat-latin-ext-500-normal.woff2 +0 -0
- package/dist/fonts/montserrat-latin-ext-600-normal.woff +0 -0
- package/dist/fonts/montserrat-latin-ext-600-normal.woff2 +0 -0
- package/dist/fonts/montserrat-vietnamese-400-normal.woff +0 -0
- package/dist/fonts/montserrat-vietnamese-400-normal.woff2 +0 -0
- package/dist/fonts/montserrat-vietnamese-500-normal.woff +0 -0
- package/dist/fonts/montserrat-vietnamese-500-normal.woff2 +0 -0
- package/dist/fonts/montserrat-vietnamese-600-normal.woff +0 -0
- package/dist/fonts/montserrat-vietnamese-600-normal.woff2 +0 -0
- package/dist/fonts/playfair-display-cyrillic-400-normal.woff +0 -0
- package/dist/fonts/playfair-display-cyrillic-400-normal.woff2 +0 -0
- package/dist/fonts/playfair-display-cyrillic-500-normal.woff +0 -0
- package/dist/fonts/playfair-display-cyrillic-500-normal.woff2 +0 -0
- package/dist/fonts/playfair-display-latin-400-normal.woff +0 -0
- package/dist/fonts/playfair-display-latin-400-normal.woff2 +0 -0
- package/dist/fonts/playfair-display-latin-500-normal.woff +0 -0
- package/dist/fonts/playfair-display-latin-500-normal.woff2 +0 -0
- package/dist/fonts/playfair-display-latin-ext-400-normal.woff +0 -0
- package/dist/fonts/playfair-display-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/playfair-display-latin-ext-500-normal.woff +0 -0
- package/dist/fonts/playfair-display-latin-ext-500-normal.woff2 +0 -0
- package/dist/fonts/playfair-display-vietnamese-400-normal.woff +0 -0
- package/dist/fonts/playfair-display-vietnamese-400-normal.woff2 +0 -0
- package/dist/fonts/playfair-display-vietnamese-500-normal.woff +0 -0
- package/dist/fonts/playfair-display-vietnamese-500-normal.woff2 +0 -0
- package/dist/fonts/poppins-devanagari-400-normal.woff +0 -0
- package/dist/fonts/poppins-devanagari-400-normal.woff2 +0 -0
- package/dist/fonts/poppins-devanagari-500-normal.woff +0 -0
- package/dist/fonts/poppins-devanagari-500-normal.woff2 +0 -0
- package/dist/fonts/poppins-devanagari-600-normal.woff +0 -0
- package/dist/fonts/poppins-devanagari-600-normal.woff2 +0 -0
- package/dist/fonts/poppins-latin-400-normal.woff +0 -0
- package/dist/fonts/poppins-latin-400-normal.woff2 +0 -0
- package/dist/fonts/poppins-latin-500-normal.woff +0 -0
- package/dist/fonts/poppins-latin-500-normal.woff2 +0 -0
- package/dist/fonts/poppins-latin-600-normal.woff +0 -0
- package/dist/fonts/poppins-latin-600-normal.woff2 +0 -0
- package/dist/fonts/poppins-latin-ext-400-normal.woff +0 -0
- package/dist/fonts/poppins-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/poppins-latin-ext-500-normal.woff +0 -0
- package/dist/fonts/poppins-latin-ext-500-normal.woff2 +0 -0
- package/dist/fonts/poppins-latin-ext-600-normal.woff +0 -0
- package/dist/fonts/poppins-latin-ext-600-normal.woff2 +0 -0
- package/dist/fonts/rubik-arabic-400-normal.woff +0 -0
- package/dist/fonts/rubik-arabic-400-normal.woff2 +0 -0
- package/dist/fonts/rubik-arabic-500-normal.woff +0 -0
- package/dist/fonts/rubik-arabic-500-normal.woff2 +0 -0
- package/dist/fonts/rubik-cyrillic-400-normal.woff +0 -0
- package/dist/fonts/rubik-cyrillic-400-normal.woff2 +0 -0
- package/dist/fonts/rubik-cyrillic-500-normal.woff +0 -0
- package/dist/fonts/rubik-cyrillic-500-normal.woff2 +0 -0
- package/dist/fonts/rubik-cyrillic-ext-400-normal.woff +0 -0
- package/dist/fonts/rubik-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/fonts/rubik-cyrillic-ext-500-normal.woff +0 -0
- package/dist/fonts/rubik-cyrillic-ext-500-normal.woff2 +0 -0
- package/dist/fonts/rubik-hebrew-400-normal.woff +0 -0
- package/dist/fonts/rubik-hebrew-400-normal.woff2 +0 -0
- package/dist/fonts/rubik-hebrew-500-normal.woff +0 -0
- package/dist/fonts/rubik-hebrew-500-normal.woff2 +0 -0
- package/dist/fonts/rubik-latin-400-normal.woff +0 -0
- package/dist/fonts/rubik-latin-400-normal.woff2 +0 -0
- package/dist/fonts/rubik-latin-500-normal.woff +0 -0
- package/dist/fonts/rubik-latin-500-normal.woff2 +0 -0
- package/dist/fonts/rubik-latin-ext-400-normal.woff +0 -0
- package/dist/fonts/rubik-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/rubik-latin-ext-500-normal.woff +0 -0
- package/dist/fonts/rubik-latin-ext-500-normal.woff2 +0 -0
- package/dist/fonts/source-serif-pro-cyrillic-400-normal.woff +0 -0
- package/dist/fonts/source-serif-pro-cyrillic-400-normal.woff2 +0 -0
- package/dist/fonts/source-serif-pro-cyrillic-ext-400-normal.woff +0 -0
- package/dist/fonts/source-serif-pro-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/fonts/source-serif-pro-greek-400-normal.woff +0 -0
- package/dist/fonts/source-serif-pro-greek-400-normal.woff2 +0 -0
- package/dist/fonts/source-serif-pro-latin-400-normal.woff +0 -0
- package/dist/fonts/source-serif-pro-latin-400-normal.woff2 +0 -0
- package/dist/fonts/source-serif-pro-latin-ext-400-normal.woff +0 -0
- package/dist/fonts/source-serif-pro-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/source-serif-pro-vietnamese-400-normal.woff +0 -0
- package/dist/fonts/source-serif-pro-vietnamese-400-normal.woff2 +0 -0
- package/dist/fonts/space-grotesk-latin-400-normal.woff +0 -0
- package/dist/fonts/space-grotesk-latin-400-normal.woff2 +0 -0
- package/dist/fonts/space-grotesk-latin-600-normal.woff +0 -0
- package/dist/fonts/space-grotesk-latin-600-normal.woff2 +0 -0
- package/dist/fonts/space-grotesk-latin-700-normal.woff +0 -0
- package/dist/fonts/space-grotesk-latin-700-normal.woff2 +0 -0
- package/dist/fonts/space-grotesk-latin-ext-400-normal.woff +0 -0
- package/dist/fonts/space-grotesk-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/space-grotesk-latin-ext-600-normal.woff +0 -0
- package/dist/fonts/space-grotesk-latin-ext-600-normal.woff2 +0 -0
- package/dist/fonts/space-grotesk-latin-ext-700-normal.woff +0 -0
- package/dist/fonts/space-grotesk-latin-ext-700-normal.woff2 +0 -0
- package/dist/fonts/space-grotesk-vietnamese-400-normal.woff +0 -0
- package/dist/fonts/space-grotesk-vietnamese-400-normal.woff2 +0 -0
- package/dist/fonts/space-grotesk-vietnamese-600-normal.woff +0 -0
- package/dist/fonts/space-grotesk-vietnamese-600-normal.woff2 +0 -0
- package/dist/fonts/space-grotesk-vietnamese-700-normal.woff +0 -0
- package/dist/fonts/space-grotesk-vietnamese-700-normal.woff2 +0 -0
- package/dist/fonts/work-sans-latin-400-normal.woff +0 -0
- package/dist/fonts/work-sans-latin-400-normal.woff2 +0 -0
- package/dist/fonts/work-sans-latin-500-normal.woff +0 -0
- package/dist/fonts/work-sans-latin-500-normal.woff2 +0 -0
- package/dist/fonts/work-sans-latin-ext-400-normal.woff +0 -0
- package/dist/fonts/work-sans-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/work-sans-latin-ext-500-normal.woff +0 -0
- package/dist/fonts/work-sans-latin-ext-500-normal.woff2 +0 -0
- package/dist/fonts/work-sans-vietnamese-400-normal.woff +0 -0
- package/dist/fonts/work-sans-vietnamese-400-normal.woff2 +0 -0
- package/dist/fonts/work-sans-vietnamese-500-normal.woff +0 -0
- package/dist/fonts/work-sans-vietnamese-500-normal.woff2 +0 -0
- package/dist/footer.js +308 -0
- package/dist/footer.js.map +1 -0
- package/dist/form-field.js +69 -0
- package/dist/form-field.js.map +1 -0
- package/dist/form.js +732 -0
- package/dist/form.js.map +1 -0
- package/dist/format.js +112 -0
- package/dist/format.js.map +1 -0
- package/dist/fouc.js +28 -0
- package/dist/fouc.js.map +1 -0
- package/dist/header.js +289 -0
- package/dist/header.js.map +1 -0
- package/dist/hooks.js +13 -0
- package/dist/hooks.js.map +1 -0
- package/dist/hover-card.js +210 -0
- package/dist/hover-card.js.map +1 -0
- package/dist/index-0ioNhtNM.js +11 -0
- package/dist/index-0ioNhtNM.js.map +1 -0
- package/dist/index-1QHKgw6D.js +55 -0
- package/dist/index-1QHKgw6D.js.map +1 -0
- package/dist/index-B6sSWi7l.js +747 -0
- package/dist/index-B6sSWi7l.js.map +1 -0
- package/dist/index-BCjJQGh8.js +71 -0
- package/dist/index-BCjJQGh8.js.map +1 -0
- package/dist/index-BGQepRFJ.js +28 -0
- package/dist/index-BGQepRFJ.js.map +1 -0
- package/dist/index-BVRIAMfe.js +37 -0
- package/dist/index-BVRIAMfe.js.map +1 -0
- package/dist/index-BY7PeRJA.js +145 -0
- package/dist/index-BY7PeRJA.js.map +1 -0
- package/dist/index-BZPx6jYI.js +9 -0
- package/dist/index-BZPx6jYI.js.map +1 -0
- package/dist/index-Ba4eHUBD.js +243 -0
- package/dist/index-Ba4eHUBD.js.map +1 -0
- package/dist/index-Bke1qZdk.js +35 -0
- package/dist/index-Bke1qZdk.js.map +1 -0
- package/dist/index-C0UREtMP.js +60 -0
- package/dist/index-C0UREtMP.js.map +1 -0
- package/dist/index-CCKe-Mpx.js +7 -0
- package/dist/index-CCKe-Mpx.js.map +1 -0
- package/dist/index-DFZozV_h.js +69 -0
- package/dist/index-DFZozV_h.js.map +1 -0
- package/dist/index-DFi6WydO.js +180 -0
- package/dist/index-DFi6WydO.js.map +1 -0
- package/dist/index-DQH6odE9.js +83 -0
- package/dist/index-DQH6odE9.js.map +1 -0
- package/dist/index-EO5flKM3.js +119 -0
- package/dist/index-EO5flKM3.js.map +1 -0
- package/dist/index-Lf7yDOXW.js +615 -0
- package/dist/index-Lf7yDOXW.js.map +1 -0
- package/dist/index-dhIqEbxW.js +1541 -0
- package/dist/index-dhIqEbxW.js.map +1 -0
- package/dist/index-pWhlqjff.js +32 -0
- package/dist/index-pWhlqjff.js.map +1 -0
- package/dist/index-rKs9bXHr.js +7 -0
- package/dist/index-rKs9bXHr.js.map +1 -0
- package/dist/index-xqkGMOJ8.js +14 -0
- package/dist/index-xqkGMOJ8.js.map +1 -0
- package/dist/index.js +247 -0
- package/dist/index.js.map +1 -0
- package/dist/input.js +22 -0
- package/dist/input.js.map +1 -0
- package/dist/label.js +36 -0
- package/dist/label.js.map +1 -0
- package/dist/layout-wrapper.js +208 -0
- package/dist/layout-wrapper.js.map +1 -0
- package/dist/llms.txt +1140 -0
- package/dist/menu-DBhEanGo.js +16 -0
- package/dist/menu-DBhEanGo.js.map +1 -0
- package/dist/menubar.js +565 -0
- package/dist/menubar.js.map +1 -0
- package/dist/mobile.js +183 -0
- package/dist/mobile.js.map +1 -0
- package/dist/motion.js +119 -0
- package/dist/motion.js.map +1 -0
- package/dist/page-header.js +47 -0
- package/dist/page-header.js.map +1 -0
- package/dist/page.js +214 -0
- package/dist/page.js.map +1 -0
- package/dist/pagination.js +121 -0
- package/dist/pagination.js.map +1 -0
- package/dist/platform.js +194 -0
- package/dist/platform.js.map +1 -0
- package/dist/popover.js +263 -0
- package/dist/popover.js.map +1 -0
- package/dist/popup.js +335 -0
- package/dist/popup.js.map +1 -0
- package/dist/progress.js +108 -0
- package/dist/progress.js.map +1 -0
- package/dist/radio-group.js +272 -0
- package/dist/radio-group.js.map +1 -0
- package/dist/safe-area.js +42 -0
- package/dist/safe-area.js.map +1 -0
- package/dist/search-CpUwRnG-.js +15 -0
- package/dist/search-CpUwRnG-.js.map +1 -0
- package/dist/select.js +985 -0
- package/dist/select.js.map +1 -0
- package/dist/separator.js +45 -0
- package/dist/separator.js.map +1 -0
- package/dist/sheet.js +127 -0
- package/dist/sheet.js.map +1 -0
- package/dist/skeleton.js +16 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/slider.js +485 -0
- package/dist/slider.js.map +1 -0
- package/dist/sonner.js +52 -0
- package/dist/sonner.js.map +1 -0
- package/dist/styles/fonts.css +253 -0
- package/dist/styles.css +2 -0
- package/dist/switch.js +155 -0
- package/dist/switch.js.map +1 -0
- package/dist/tab-bar.js +110 -0
- package/dist/tab-bar.js.map +1 -0
- package/dist/table.js +115 -0
- package/dist/table.js.map +1 -0
- package/dist/tabs.js +218 -0
- package/dist/tabs.js.map +1 -0
- package/dist/textarea.js +19 -0
- package/dist/textarea.js.map +1 -0
- package/dist/theme-provider.js +154 -0
- package/dist/theme-provider.js.map +1 -0
- package/dist/themes.js +873 -0
- package/dist/themes.js.map +1 -0
- package/dist/toast.js +63 -0
- package/dist/toast.js.map +1 -0
- package/dist/toggle.js +70 -0
- package/dist/toggle.js.map +1 -0
- package/dist/tooltip.js +375 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/types/App.d.ts +3 -0
- package/dist/types/App.d.ts.map +1 -0
- package/dist/types/components/layouts/admin.d.ts +117 -0
- package/dist/types/components/layouts/admin.d.ts.map +1 -0
- package/dist/types/components/layouts/auth.d.ts +17 -0
- package/dist/types/components/layouts/auth.d.ts.map +1 -0
- package/dist/types/components/layouts/blank.d.ts +63 -0
- package/dist/types/components/layouts/blank.d.ts.map +1 -0
- package/dist/types/components/layouts/layout-wrapper.d.ts +130 -0
- package/dist/types/components/layouts/layout-wrapper.d.ts.map +1 -0
- package/dist/types/components/layouts/mobile.d.ts +91 -0
- package/dist/types/components/layouts/mobile.d.ts.map +1 -0
- package/dist/types/components/layouts/page.d.ts +181 -0
- package/dist/types/components/layouts/page.d.ts.map +1 -0
- package/dist/types/components/layouts/popup.d.ts +100 -0
- package/dist/types/components/layouts/popup.d.ts.map +1 -0
- package/dist/types/components/sections/container.d.ts +79 -0
- package/dist/types/components/sections/container.d.ts.map +1 -0
- package/dist/types/components/sections/footer.d.ts +128 -0
- package/dist/types/components/sections/footer.d.ts.map +1 -0
- package/dist/types/components/sections/header.d.ts +72 -0
- package/dist/types/components/sections/header.d.ts.map +1 -0
- package/dist/types/components/sections/safe-area.d.ts +46 -0
- package/dist/types/components/sections/safe-area.d.ts.map +1 -0
- package/dist/types/components/sections/tab-bar.d.ts +61 -0
- package/dist/types/components/sections/tab-bar.d.ts.map +1 -0
- package/dist/types/components/ui/accordion.d.ts +8 -0
- package/dist/types/components/ui/accordion.d.ts.map +1 -0
- package/dist/types/components/ui/alert.d.ts +10 -0
- package/dist/types/components/ui/alert.d.ts.map +1 -0
- package/dist/types/components/ui/avatar.d.ts +7 -0
- package/dist/types/components/ui/avatar.d.ts.map +1 -0
- package/dist/types/components/ui/badge.d.ts +10 -0
- package/dist/types/components/ui/badge.d.ts.map +1 -0
- package/dist/types/components/ui/breadcrumb.d.ts +12 -0
- package/dist/types/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/types/components/ui/button.d.ts +11 -0
- package/dist/types/components/ui/button.d.ts.map +1 -0
- package/dist/types/components/ui/calendar.d.ts +9 -0
- package/dist/types/components/ui/calendar.d.ts.map +1 -0
- package/dist/types/components/ui/card.d.ts +10 -0
- package/dist/types/components/ui/card.d.ts.map +1 -0
- package/dist/types/components/ui/checkbox.d.ts +5 -0
- package/dist/types/components/ui/checkbox.d.ts.map +1 -0
- package/dist/types/components/ui/collapsible.d.ts +6 -0
- package/dist/types/components/ui/collapsible.d.ts.map +1 -0
- package/dist/types/components/ui/command.d.ts +19 -0
- package/dist/types/components/ui/command.d.ts.map +1 -0
- package/dist/types/components/ui/confirm-dialog.d.ts +72 -0
- package/dist/types/components/ui/confirm-dialog.d.ts.map +1 -0
- package/dist/types/components/ui/data-table.d.ts +211 -0
- package/dist/types/components/ui/data-table.d.ts.map +1 -0
- package/dist/types/components/ui/detail-page.d.ts +119 -0
- package/dist/types/components/ui/detail-page.d.ts.map +1 -0
- package/dist/types/components/ui/dialog.d.ts +16 -0
- package/dist/types/components/ui/dialog.d.ts.map +1 -0
- package/dist/types/components/ui/dropdown-menu.d.ts +26 -0
- package/dist/types/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/types/components/ui/empty-state.d.ts +30 -0
- package/dist/types/components/ui/empty-state.d.ts.map +1 -0
- package/dist/types/components/ui/form-field.d.ts +57 -0
- package/dist/types/components/ui/form-field.d.ts.map +1 -0
- package/dist/types/components/ui/form.d.ts +185 -0
- package/dist/types/components/ui/form.d.ts.map +1 -0
- package/dist/types/components/ui/hover-card.d.ts +7 -0
- package/dist/types/components/ui/hover-card.d.ts.map +1 -0
- package/dist/types/components/ui/input.d.ts +4 -0
- package/dist/types/components/ui/input.d.ts.map +1 -0
- package/dist/types/components/ui/label.d.ts +5 -0
- package/dist/types/components/ui/label.d.ts.map +1 -0
- package/dist/types/components/ui/menubar.d.ts +27 -0
- package/dist/types/components/ui/menubar.d.ts.map +1 -0
- package/dist/types/components/ui/motion.d.ts +130 -0
- package/dist/types/components/ui/motion.d.ts.map +1 -0
- package/dist/types/components/ui/page-header.d.ts +45 -0
- package/dist/types/components/ui/page-header.d.ts.map +1 -0
- package/dist/types/components/ui/pagination.d.ts +14 -0
- package/dist/types/components/ui/pagination.d.ts.map +1 -0
- package/dist/types/components/ui/popover.d.ts +8 -0
- package/dist/types/components/ui/popover.d.ts.map +1 -0
- package/dist/types/components/ui/progress.d.ts +5 -0
- package/dist/types/components/ui/progress.d.ts.map +1 -0
- package/dist/types/components/ui/radio-group.d.ts +6 -0
- package/dist/types/components/ui/radio-group.d.ts.map +1 -0
- package/dist/types/components/ui/select.d.ts +16 -0
- package/dist/types/components/ui/select.d.ts.map +1 -0
- package/dist/types/components/ui/separator.d.ts +5 -0
- package/dist/types/components/ui/separator.d.ts.map +1 -0
- package/dist/types/components/ui/sheet.d.ts +14 -0
- package/dist/types/components/ui/sheet.d.ts.map +1 -0
- package/dist/types/components/ui/skeleton.d.ts +3 -0
- package/dist/types/components/ui/skeleton.d.ts.map +1 -0
- package/dist/types/components/ui/slider.d.ts +5 -0
- package/dist/types/components/ui/slider.d.ts.map +1 -0
- package/dist/types/components/ui/sonner.d.ts +4 -0
- package/dist/types/components/ui/sonner.d.ts.map +1 -0
- package/dist/types/components/ui/switch.d.ts +5 -0
- package/dist/types/components/ui/switch.d.ts.map +1 -0
- package/dist/types/components/ui/table.d.ts +11 -0
- package/dist/types/components/ui/table.d.ts.map +1 -0
- package/dist/types/components/ui/tabs.d.ts +8 -0
- package/dist/types/components/ui/tabs.d.ts.map +1 -0
- package/dist/types/components/ui/textarea.d.ts +4 -0
- package/dist/types/components/ui/textarea.d.ts.map +1 -0
- package/dist/types/components/ui/toast.d.ts +70 -0
- package/dist/types/components/ui/toast.d.ts.map +1 -0
- package/dist/types/components/ui/toggle.d.ts +10 -0
- package/dist/types/components/ui/toggle.d.ts.map +1 -0
- package/dist/types/components/ui/tooltip.d.ts +8 -0
- package/dist/types/components/ui/tooltip.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +14 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/useApi.d.ts +38 -0
- package/dist/types/hooks/useApi.d.ts.map +1 -0
- package/dist/types/hooks/useBreakpoint.d.ts +35 -0
- package/dist/types/hooks/useBreakpoint.d.ts.map +1 -0
- package/dist/types/hooks/useDataTable.d.ts +59 -0
- package/dist/types/hooks/useDataTable.d.ts.map +1 -0
- package/dist/types/hooks/useMediaQuery.d.ts +12 -0
- package/dist/types/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/types/hooks/useStorage.d.ts +35 -0
- package/dist/types/hooks/useStorage.d.ts.map +1 -0
- package/dist/types/index.d.ts +75 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/errors.d.ts +37 -0
- package/dist/types/lib/errors.d.ts.map +1 -0
- package/dist/types/lib/format.d.ts +80 -0
- package/dist/types/lib/format.d.ts.map +1 -0
- package/dist/types/lib/fouc.d.ts +64 -0
- package/dist/types/lib/fouc.d.ts.map +1 -0
- package/dist/types/lib/platform.d.ts +156 -0
- package/dist/types/lib/platform.d.ts.map +1 -0
- package/dist/types/lib/utils.d.ts +14 -0
- package/dist/types/lib/utils.d.ts.map +1 -0
- package/dist/types/main.d.ts +2 -0
- package/dist/types/main.d.ts.map +1 -0
- package/dist/types/themes/index.d.ts +499 -0
- package/dist/types/themes/index.d.ts.map +1 -0
- package/dist/types/themes/presets/base.d.ts +108 -0
- package/dist/types/themes/presets/base.d.ts.map +1 -0
- package/dist/types/themes/presets/elegant.d.ts +108 -0
- package/dist/types/themes/presets/elegant.d.ts.map +1 -0
- package/dist/types/themes/presets/metro.d.ts +114 -0
- package/dist/types/themes/presets/metro.d.ts.map +1 -0
- package/dist/types/themes/presets/studio.d.ts +115 -0
- package/dist/types/themes/presets/studio.d.ts.map +1 -0
- package/dist/types/themes/presets/vivid.d.ts +115 -0
- package/dist/types/themes/presets/vivid.d.ts.map +1 -0
- package/dist/types/themes/theme-provider.d.ts +122 -0
- package/dist/types/themes/theme-provider.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +813 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/uikit.css +1 -0
- package/dist/useDataTable-CPiBpEg-.js +254 -0
- package/dist/useDataTable-CPiBpEg-.js.map +1 -0
- package/dist/utils-CwJPJKOE.js +2278 -0
- package/dist/utils-CwJPJKOE.js.map +1 -0
- package/dist/utils.js +5 -0
- package/dist/utils.js.map +1 -0
- package/dist/wrapper.js +13 -0
- package/dist/wrapper.js.map +1 -0
- package/dist/x-BxwubQiM.js +15 -0
- package/dist/x-BxwubQiM.js.map +1 -0
- package/examples/README.md +18 -0
- package/examples/button.tsx +16 -0
- package/examples/confirm-dialog.tsx +44 -0
- package/examples/data-table.tsx +35 -0
- package/examples/dialog.tsx +34 -0
- package/examples/empty-state.tsx +13 -0
- package/examples/form-field.tsx +22 -0
- package/examples/format.tsx +19 -0
- package/examples/page-header.tsx +17 -0
- package/examples/skeleton.tsx +12 -0
- package/examples/theme-provider.tsx +33 -0
- package/examples/toast.tsx +32 -0
- package/examples/use-breakpoint.tsx +17 -0
- package/llms.txt +1140 -0
- 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
|