@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/admin.js
ADDED
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
import { jsx as e, jsxs as i, Fragment as j } from "react/jsx-runtime";
|
|
2
|
+
import * as L from "react";
|
|
3
|
+
import { createContext as Y, forwardRef as V, useState as B, useLayoutEffect as Z, useEffect as O, useContext as K } from "react";
|
|
4
|
+
import { c as ee } from "./index-Bke1qZdk.js";
|
|
5
|
+
import { c as s } from "./utils-CwJPJKOE.js";
|
|
6
|
+
import { Button as W } from "./button.js";
|
|
7
|
+
import { Badge as re } from "./badge.js";
|
|
8
|
+
import { Separator as te } from "./separator.js";
|
|
9
|
+
import { TooltipProvider as ne, Tooltip as ae, TooltipTrigger as oe, TooltipContent as se } from "./tooltip.js";
|
|
10
|
+
import { Breadcrumb as ie, BreadcrumbList as de, BreadcrumbItem as le, BreadcrumbLink as ce, BreadcrumbPage as me, BreadcrumbSeparator as ue } from "./breadcrumb.js";
|
|
11
|
+
import { X as fe } from "./x-BxwubQiM.js";
|
|
12
|
+
import { M as _ } from "./menu-DBhEanGo.js";
|
|
13
|
+
import { C as he } from "./chevron-right-pz9eCjj-.js";
|
|
14
|
+
function $() {
|
|
15
|
+
return typeof window > "u" ? !1 : window.innerWidth < 1024;
|
|
16
|
+
}
|
|
17
|
+
function be(x) {
|
|
18
|
+
return typeof window > "u" ? x : $() ? !1 : x;
|
|
19
|
+
}
|
|
20
|
+
const X = Y({
|
|
21
|
+
scheme: "sidebar",
|
|
22
|
+
tone: "subtle",
|
|
23
|
+
size: "lg",
|
|
24
|
+
sidebarExpanded: !0,
|
|
25
|
+
setSidebarExpanded: () => {
|
|
26
|
+
},
|
|
27
|
+
isMobile: !1
|
|
28
|
+
}), pe = ee(
|
|
29
|
+
"min-h-screen flex bg-background",
|
|
30
|
+
{
|
|
31
|
+
variants: {
|
|
32
|
+
tone: {
|
|
33
|
+
clean: "",
|
|
34
|
+
subtle: "",
|
|
35
|
+
brand: "",
|
|
36
|
+
contrast: ""
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
defaultVariants: {
|
|
40
|
+
tone: "subtle"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
), q = V(({
|
|
44
|
+
scheme: x = "sidebar",
|
|
45
|
+
tone: k = "subtle",
|
|
46
|
+
size: h = "lg",
|
|
47
|
+
position: g = "relative",
|
|
48
|
+
defaultSidebarOpen: m = !0,
|
|
49
|
+
className: v,
|
|
50
|
+
children: N
|
|
51
|
+
}, M) => {
|
|
52
|
+
const [d, n] = B($), [w, t] = B(
|
|
53
|
+
() => be(m)
|
|
54
|
+
);
|
|
55
|
+
Z(() => {
|
|
56
|
+
const l = () => {
|
|
57
|
+
const a = window.innerWidth < 1024, C = d;
|
|
58
|
+
n(a), a && !C && w ? t(!1) : !a && C && t(m);
|
|
59
|
+
};
|
|
60
|
+
return l(), window.addEventListener("resize", l), () => window.removeEventListener("resize", l);
|
|
61
|
+
}, [d, w, m]), O(() => (d && w ? document.body.style.overflow = "hidden" : document.body.style.overflow = "unset", () => {
|
|
62
|
+
document.body.style.overflow = "unset";
|
|
63
|
+
}), [d, w]);
|
|
64
|
+
const u = L.Children.toArray(N), y = u.find(
|
|
65
|
+
(l) => L.isValidElement(l) && l.type === I
|
|
66
|
+
), b = u.find(
|
|
67
|
+
(l) => L.isValidElement(l) && l.type === R
|
|
68
|
+
), T = u.find(
|
|
69
|
+
(l) => L.isValidElement(l) && l.type === H
|
|
70
|
+
);
|
|
71
|
+
return /* @__PURE__ */ e(X.Provider, { value: {
|
|
72
|
+
scheme: x,
|
|
73
|
+
tone: k,
|
|
74
|
+
size: h,
|
|
75
|
+
sidebarExpanded: w,
|
|
76
|
+
setSidebarExpanded: t,
|
|
77
|
+
isMobile: d
|
|
78
|
+
}, children: /* @__PURE__ */ i(
|
|
79
|
+
"div",
|
|
80
|
+
{
|
|
81
|
+
ref: M,
|
|
82
|
+
className: s(pe({ tone: k }), v),
|
|
83
|
+
children: [
|
|
84
|
+
/* @__PURE__ */ e("div", { className: s(
|
|
85
|
+
"flex-shrink-0 transition-all duration-200 ease-out overflow-hidden",
|
|
86
|
+
// Desktop: smooth width transition
|
|
87
|
+
!d && w && (h === "sm" ? "w-48" : h === "md" ? "w-56" : h === "lg" ? "w-64" : h === "xl" ? "w-72" : "w-80"),
|
|
88
|
+
!d && !w && "w-0",
|
|
89
|
+
// Mobile: don't affect layout
|
|
90
|
+
d && "w-0",
|
|
91
|
+
g === "sticky" && d && "top-0 max-h-screen",
|
|
92
|
+
g === "sticky" && !d && "sticky top-0 max-h-screen"
|
|
93
|
+
), children: y }),
|
|
94
|
+
/* @__PURE__ */ i("div", { className: "flex-1 flex flex-col min-w-0 transition-all duration-200 ease-out", children: [
|
|
95
|
+
b,
|
|
96
|
+
T
|
|
97
|
+
] })
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
) });
|
|
101
|
+
});
|
|
102
|
+
q.displayName = "AdminLayout";
|
|
103
|
+
const I = V(({
|
|
104
|
+
tone: x,
|
|
105
|
+
navigation: k = [],
|
|
106
|
+
currentPath: h = "",
|
|
107
|
+
onNavigate: g,
|
|
108
|
+
logo: m,
|
|
109
|
+
position: v,
|
|
110
|
+
footer: N,
|
|
111
|
+
className: M
|
|
112
|
+
}, d) => {
|
|
113
|
+
const { scheme: n, tone: w, size: t, sidebarExpanded: u, setSidebarExpanded: y, isMobile: b } = P(), [T, l] = B(/* @__PURE__ */ new Set()), [a, C] = B(!1), o = x || w, E = n === "compact", p = !E || a, G = () => {
|
|
114
|
+
E && C(!a);
|
|
115
|
+
}, J = (r) => {
|
|
116
|
+
const c = new Set(T);
|
|
117
|
+
c.has(r) ? c.delete(r) : c.add(r), l(c);
|
|
118
|
+
}, Q = (r, c = !1) => {
|
|
119
|
+
const z = c ? "w-[92%] flex items-center group text-left font-medium rounded-lg cursor-pointer transition-all duration-300 ease-out transform hover:scale-[1.02]" : "w-full flex items-center group text-left font-medium rounded-lg cursor-pointer transition-all duration-300 ease-out transform hover:scale-[1.02]", S = c ? p ? "ml-4 px-3 py-2" : "px-2 py-2" : p ? "px-3 py-2.5" : "px-2 py-2.5 justify-center";
|
|
120
|
+
let f = "";
|
|
121
|
+
switch (o) {
|
|
122
|
+
case "clean":
|
|
123
|
+
f = r ? "bg-muted text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-muted/50";
|
|
124
|
+
break;
|
|
125
|
+
case "subtle":
|
|
126
|
+
f = r ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-background/60";
|
|
127
|
+
break;
|
|
128
|
+
case "brand":
|
|
129
|
+
f = r ? "bg-primary-foreground/20 text-primary-foreground shadow-sm" : "text-primary-foreground/90 hover:text-primary-foreground hover:bg-primary-foreground/10";
|
|
130
|
+
break;
|
|
131
|
+
case "contrast":
|
|
132
|
+
f = r ? "bg-muted/20 dark:bg-muted/20 text-white shadow-sm" : "text-white hover:bg-muted/20";
|
|
133
|
+
break;
|
|
134
|
+
default:
|
|
135
|
+
f = r ? "bg-muted/10 text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-muted/50";
|
|
136
|
+
}
|
|
137
|
+
return s(z, S, f);
|
|
138
|
+
}, D = ({ item: r, isSubmenu: c = !1 }) => {
|
|
139
|
+
const z = !c && r.items && r.items.length > 0, S = T.has(r.key), f = r.href ? h === r.href : !!r.isActive, F = /* @__PURE__ */ i(
|
|
140
|
+
"button",
|
|
141
|
+
{
|
|
142
|
+
onClick: () => {
|
|
143
|
+
if (E && !a) {
|
|
144
|
+
C(!0);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
z ? J(r.key) : r.href && g ? (g(r.href, r), b && y(!1)) : r.onClick && (r.onClick(), b && y(!1));
|
|
148
|
+
},
|
|
149
|
+
className: Q(f, c),
|
|
150
|
+
children: [
|
|
151
|
+
!c && r.icon && /* @__PURE__ */ e(r.icon, { className: s(
|
|
152
|
+
"flex-shrink-0",
|
|
153
|
+
p ? "h-4 w-4 mr-3" : "h-5 w-5"
|
|
154
|
+
) }),
|
|
155
|
+
p && /* @__PURE__ */ i(j, { children: [
|
|
156
|
+
/* @__PURE__ */ e("span", { className: "flex-1 truncate text-left", children: r.label }),
|
|
157
|
+
r.badge && /* @__PURE__ */ e(
|
|
158
|
+
re,
|
|
159
|
+
{
|
|
160
|
+
variant: f ? "secondary" : "outline",
|
|
161
|
+
className: s(
|
|
162
|
+
"text-xs h-4 px-1 ml-1 flex-shrink-0",
|
|
163
|
+
o === "brand" && !f && "bg-primary-foreground/10 text-primary-foreground border-primary-foreground/20",
|
|
164
|
+
o === "brand" && f && "bg-primary-foreground/20 text-primary-foreground border-primary-foreground/30",
|
|
165
|
+
o === "contrast" && !f && "bg-zinc-700 text-zinc-300 border-zinc-600",
|
|
166
|
+
o === "contrast" && f && "bg-zinc-600 text-zinc-100 border-zinc-500"
|
|
167
|
+
),
|
|
168
|
+
children: r.badge
|
|
169
|
+
}
|
|
170
|
+
),
|
|
171
|
+
z && /* @__PURE__ */ e(he, { className: s(
|
|
172
|
+
"h-4 w-4 flex-shrink-0 transition-transform duration-200",
|
|
173
|
+
S && "rotate-90"
|
|
174
|
+
) })
|
|
175
|
+
] })
|
|
176
|
+
]
|
|
177
|
+
}
|
|
178
|
+
);
|
|
179
|
+
return E && !a && !c && r.icon ? /* @__PURE__ */ i("div", { className: "w-full", children: [
|
|
180
|
+
/* @__PURE__ */ e(ne, { children: /* @__PURE__ */ i(ae, { delayDuration: 300, children: [
|
|
181
|
+
/* @__PURE__ */ e(oe, { asChild: !0, children: F }),
|
|
182
|
+
/* @__PURE__ */ e(
|
|
183
|
+
se,
|
|
184
|
+
{
|
|
185
|
+
side: "right",
|
|
186
|
+
className: "bg-white text-black border border-gray-200 shadow-md",
|
|
187
|
+
children: /* @__PURE__ */ e("p", { children: r.label })
|
|
188
|
+
}
|
|
189
|
+
)
|
|
190
|
+
] }) }),
|
|
191
|
+
z && S && p && r.items && /* @__PURE__ */ e("div", { className: "overflow-hidden transition-all duration-300 mt-1", children: /* @__PURE__ */ e("div", { className: "space-y-1 pb-2", children: r.items.map((A) => /* @__PURE__ */ e(D, { item: A, isSubmenu: !0 }, A.key)) }) })
|
|
192
|
+
] }, r.key) : /* @__PURE__ */ i("div", { className: "w-full", children: [
|
|
193
|
+
F,
|
|
194
|
+
z && S && p && r.items && /* @__PURE__ */ e("div", { className: "overflow-hidden transition-all duration-400 ease-out mt-1", children: /* @__PURE__ */ e("div", { className: "space-y-1 pb-2 animate-in slide-in-from-top-2", children: r.items.map((A, U) => /* @__PURE__ */ e(
|
|
195
|
+
"div",
|
|
196
|
+
{
|
|
197
|
+
className: "transition-all duration-300 ease-out",
|
|
198
|
+
style: { transitionDelay: `${U * 75}ms` },
|
|
199
|
+
children: /* @__PURE__ */ e(D, { item: A, isSubmenu: !0 })
|
|
200
|
+
},
|
|
201
|
+
A.key
|
|
202
|
+
)) }) })
|
|
203
|
+
] }, r.key);
|
|
204
|
+
};
|
|
205
|
+
return /* @__PURE__ */ i(j, { children: [
|
|
206
|
+
b && u && /* @__PURE__ */ e(
|
|
207
|
+
"div",
|
|
208
|
+
{
|
|
209
|
+
className: "fixed inset-0 z-[60] bg-black/50 backdrop-blur-sm lg:hidden",
|
|
210
|
+
onClick: () => y(!1),
|
|
211
|
+
"aria-hidden": "true"
|
|
212
|
+
}
|
|
213
|
+
),
|
|
214
|
+
/* @__PURE__ */ e(
|
|
215
|
+
"aside",
|
|
216
|
+
{
|
|
217
|
+
ref: d,
|
|
218
|
+
className: s(
|
|
219
|
+
"border-r flex flex-col bg-background overflow-hidden",
|
|
220
|
+
// ✅ RESTORED: Original smooth transitions
|
|
221
|
+
"transition-all duration-200 ease-out",
|
|
222
|
+
// ✅ FIXED: Proper z-index layering for mobile
|
|
223
|
+
// Mobile: Higher z-index than header (z-[70] > z-[10])
|
|
224
|
+
b ? "fixed left-0 top-0 z-[70] h-full" : "relative h-screen",
|
|
225
|
+
// Mobile: slide animation
|
|
226
|
+
b && (u ? "translate-x-0" : "-translate-x-full"),
|
|
227
|
+
// Desktop: always visible but container controls width
|
|
228
|
+
!b && "translate-x-0",
|
|
229
|
+
// Fixed widths for consistent animation
|
|
230
|
+
n === "sidebar" && t === "sm" && "w-48",
|
|
231
|
+
n === "sidebar" && t === "md" && "w-56",
|
|
232
|
+
n === "sidebar" && t === "lg" && "w-64",
|
|
233
|
+
n === "sidebar" && t === "xl" && "w-72",
|
|
234
|
+
n === "sidebar" && t === "full" && "w-80",
|
|
235
|
+
n === "compact" && !a && t === "sm" && "w-12",
|
|
236
|
+
n === "compact" && !a && t === "md" && "w-14",
|
|
237
|
+
n === "compact" && !a && t === "lg" && "w-16",
|
|
238
|
+
n === "compact" && !a && t === "xl" && "w-18",
|
|
239
|
+
n === "compact" && !a && t === "full" && "w-20",
|
|
240
|
+
n === "compact" && a && t === "sm" && "w-48",
|
|
241
|
+
n === "compact" && a && t === "md" && "w-56",
|
|
242
|
+
n === "compact" && a && t === "lg" && "w-64",
|
|
243
|
+
n === "compact" && a && t === "xl" && "w-72",
|
|
244
|
+
n === "compact" && a && t === "full" && "w-80",
|
|
245
|
+
// Tone colors
|
|
246
|
+
o === "clean" && "bg-background/90 backdrop-blur-sm border-border/40 text-foreground",
|
|
247
|
+
o === "subtle" && "bg-muted/90 backdrop-blur-sm border-border/30 text-foreground",
|
|
248
|
+
o === "brand" && "bg-primary border-primary-foreground/20 text-primary-foreground",
|
|
249
|
+
o === "contrast" && "bg-zinc-900 border-zinc-700/40 text-zinc-100",
|
|
250
|
+
M
|
|
251
|
+
),
|
|
252
|
+
children: /* @__PURE__ */ i("div", { className: "flex flex-col h-full", children: [
|
|
253
|
+
/* @__PURE__ */ e("div", { className: s(
|
|
254
|
+
"flex items-center shadow-sm flex-shrink-0 border-b transition-all duration-300 ease-out",
|
|
255
|
+
o === "clean" && "border-border/40",
|
|
256
|
+
o === "subtle" && "border-border/30",
|
|
257
|
+
o === "brand" && "border-primary-foreground/20",
|
|
258
|
+
o === "contrast" && "border-zinc-700/40",
|
|
259
|
+
p ? "justify-between h-16 px-4" : "justify-center h-16 px-2"
|
|
260
|
+
), children: p ? /* @__PURE__ */ i(j, { children: [
|
|
261
|
+
m && /* @__PURE__ */ e("div", { className: s(
|
|
262
|
+
"flex-shrink-0",
|
|
263
|
+
o === "brand" && "[&_*]:text-primary-foreground",
|
|
264
|
+
o === "contrast" && "[&_*]:text-zinc-100"
|
|
265
|
+
), children: m }),
|
|
266
|
+
(b || E && a) && /* @__PURE__ */ e(
|
|
267
|
+
W,
|
|
268
|
+
{
|
|
269
|
+
variant: "ghost",
|
|
270
|
+
size: "icon",
|
|
271
|
+
onClick: () => {
|
|
272
|
+
b ? y(!1) : E && C(!1);
|
|
273
|
+
},
|
|
274
|
+
className: "flex-shrink-0",
|
|
275
|
+
children: /* @__PURE__ */ e(fe, { className: "h-4 w-4" })
|
|
276
|
+
}
|
|
277
|
+
)
|
|
278
|
+
] }) : /* @__PURE__ */ e(
|
|
279
|
+
W,
|
|
280
|
+
{
|
|
281
|
+
variant: "ghost",
|
|
282
|
+
size: "icon",
|
|
283
|
+
onClick: G,
|
|
284
|
+
className: "flex-shrink-0",
|
|
285
|
+
children: /* @__PURE__ */ e(_, { className: "h-4 w-4" })
|
|
286
|
+
}
|
|
287
|
+
) }),
|
|
288
|
+
/* @__PURE__ */ e("div", { className: "flex-1 overflow-y-auto", children: /* @__PURE__ */ e("nav", { className: s(
|
|
289
|
+
"space-y-1 transition-all duration-300 ease-out",
|
|
290
|
+
p ? "p-4" : "p-2"
|
|
291
|
+
), children: k.map((r, c) => /* @__PURE__ */ e(
|
|
292
|
+
"div",
|
|
293
|
+
{
|
|
294
|
+
className: s(
|
|
295
|
+
"transition-all duration-300 ease-out",
|
|
296
|
+
p ? "opacity-100 translate-x-0" : "opacity-100"
|
|
297
|
+
),
|
|
298
|
+
style: {
|
|
299
|
+
transitionDelay: p ? `${c * 50}ms` : "0ms"
|
|
300
|
+
},
|
|
301
|
+
children: /* @__PURE__ */ e(D, { item: r })
|
|
302
|
+
},
|
|
303
|
+
r.key
|
|
304
|
+
)) }) }),
|
|
305
|
+
N && p && /* @__PURE__ */ i(j, { children: [
|
|
306
|
+
/* @__PURE__ */ e(te, { className: s(
|
|
307
|
+
o === "clean" && "bg-border/40",
|
|
308
|
+
o === "subtle" && "bg-border/30",
|
|
309
|
+
o === "brand" && "bg-primary-foreground/20",
|
|
310
|
+
o === "contrast" && "bg-zinc-700/40"
|
|
311
|
+
) }),
|
|
312
|
+
/* @__PURE__ */ e("div", { className: "flex-shrink-0 p-4", children: N })
|
|
313
|
+
] })
|
|
314
|
+
] })
|
|
315
|
+
}
|
|
316
|
+
)
|
|
317
|
+
] });
|
|
318
|
+
});
|
|
319
|
+
I.displayName = "AdminSidebar";
|
|
320
|
+
const R = V(({
|
|
321
|
+
tone: x,
|
|
322
|
+
size: k,
|
|
323
|
+
title: h,
|
|
324
|
+
position: g = "sticky",
|
|
325
|
+
breadcrumbs: m = [],
|
|
326
|
+
onBreadcrumbNavigate: v,
|
|
327
|
+
actions: N,
|
|
328
|
+
className: M
|
|
329
|
+
}, d) => {
|
|
330
|
+
const { sidebarExpanded: n, setSidebarExpanded: w, isMobile: t } = P();
|
|
331
|
+
return /* @__PURE__ */ e(
|
|
332
|
+
"header",
|
|
333
|
+
{
|
|
334
|
+
ref: d,
|
|
335
|
+
className: s(
|
|
336
|
+
"w-full shadow-sm bg-background/95 backdrop-blur-md text-foreground flex-shrink-0 border-b border-border/50",
|
|
337
|
+
"transition-all duration-200 ease-out",
|
|
338
|
+
// ✅ FIXED: Sticky on desktop, lower z-index for mobile sidebar layering
|
|
339
|
+
g === "sticky" && "sticky top-0",
|
|
340
|
+
g === "fixed" && "fixed top-0 left-0 right-0",
|
|
341
|
+
// Always use lower z-index so mobile sidebar appears above
|
|
342
|
+
"z-[10]",
|
|
343
|
+
g === "relative" && "relative",
|
|
344
|
+
M
|
|
345
|
+
),
|
|
346
|
+
children: /* @__PURE__ */ i("div", { className: "flex items-center justify-between px-4 lg:px-6 h-16", children: [
|
|
347
|
+
/* @__PURE__ */ i("div", { className: "flex items-center gap-4 min-w-0 flex-1", children: [
|
|
348
|
+
/* @__PURE__ */ e(
|
|
349
|
+
"button",
|
|
350
|
+
{
|
|
351
|
+
className: s(
|
|
352
|
+
"p-2 rounded-lg text-muted-foreground hover:text-foreground hover:bg-muted/80 transition-all duration-300 ease-out",
|
|
353
|
+
"transform hover:scale-105 active:scale-95",
|
|
354
|
+
// Always show on mobile
|
|
355
|
+
t && "block",
|
|
356
|
+
// Show on desktop for toggle functionality
|
|
357
|
+
!t && "block"
|
|
358
|
+
),
|
|
359
|
+
onClick: () => w(!n),
|
|
360
|
+
"aria-label": n ? "Close sidebar" : "Open sidebar",
|
|
361
|
+
children: /* @__PURE__ */ e(_, { className: s(
|
|
362
|
+
"h-5 w-5 transition-transform duration-300 ease-out",
|
|
363
|
+
n && !t && "rotate-180"
|
|
364
|
+
) })
|
|
365
|
+
}
|
|
366
|
+
),
|
|
367
|
+
/* @__PURE__ */ i("div", { className: "min-w-0 flex-1", children: [
|
|
368
|
+
h && !m.length && /* @__PURE__ */ e("h1", { className: "text-lg font-semibold text-foreground truncate", children: h }),
|
|
369
|
+
m.length > 0 && /* @__PURE__ */ e(ie, { children: /* @__PURE__ */ e(de, { children: m.map((u, y) => /* @__PURE__ */ i(L.Fragment, { children: [
|
|
370
|
+
/* @__PURE__ */ e(le, { children: u.href ? /* @__PURE__ */ e(
|
|
371
|
+
ce,
|
|
372
|
+
{
|
|
373
|
+
asChild: !!v,
|
|
374
|
+
...v ? {
|
|
375
|
+
onClick: (b) => {
|
|
376
|
+
b.preventDefault(), v(u.href);
|
|
377
|
+
}
|
|
378
|
+
} : { href: u.href },
|
|
379
|
+
children: v ? /* @__PURE__ */ e("button", { type: "button", children: u.label }) : u.label
|
|
380
|
+
}
|
|
381
|
+
) : /* @__PURE__ */ e(me, { children: u.label }) }),
|
|
382
|
+
y < m.length - 1 && /* @__PURE__ */ e(ue, {})
|
|
383
|
+
] }, y)) }) })
|
|
384
|
+
] })
|
|
385
|
+
] }),
|
|
386
|
+
N && /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: N })
|
|
387
|
+
] })
|
|
388
|
+
}
|
|
389
|
+
);
|
|
390
|
+
});
|
|
391
|
+
R.displayName = "AdminHeader";
|
|
392
|
+
const H = V(({
|
|
393
|
+
tone: x,
|
|
394
|
+
size: k,
|
|
395
|
+
className: h,
|
|
396
|
+
children: g
|
|
397
|
+
}, m) => {
|
|
398
|
+
const { isMobile: v } = P();
|
|
399
|
+
return /* @__PURE__ */ e(
|
|
400
|
+
"main",
|
|
401
|
+
{
|
|
402
|
+
ref: m,
|
|
403
|
+
className: s(
|
|
404
|
+
"flex-1 min-w-0 overflow-auto",
|
|
405
|
+
h
|
|
406
|
+
),
|
|
407
|
+
children: /* @__PURE__ */ e("div", { className: "", children: /* @__PURE__ */ e("div", { className: "w-full mx-auto", children: g }) })
|
|
408
|
+
}
|
|
409
|
+
);
|
|
410
|
+
});
|
|
411
|
+
H.displayName = "AdminContent";
|
|
412
|
+
const P = () => {
|
|
413
|
+
const x = K(X);
|
|
414
|
+
if (!x)
|
|
415
|
+
throw new Error("useAdmin must be used within an AdminLayout component");
|
|
416
|
+
return x;
|
|
417
|
+
}, Le = Object.assign(q, {
|
|
418
|
+
Sidebar: I,
|
|
419
|
+
Header: R,
|
|
420
|
+
Content: H
|
|
421
|
+
});
|
|
422
|
+
export {
|
|
423
|
+
H as AdminContent,
|
|
424
|
+
R as AdminHeader,
|
|
425
|
+
Le as AdminLayout,
|
|
426
|
+
I as AdminSidebar,
|
|
427
|
+
P as useAdmin
|
|
428
|
+
};
|
|
429
|
+
//# sourceMappingURL=admin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.js","sources":["../src/components/layouts/admin.tsx"],"sourcesContent":["/**\n * Admin Layout - FIXED sidebar flash with minimal FOUC prevention\n * @module @bloomneo/uikit\n * @file src/components/layouts/admin.tsx\n */\n\nimport * as React from 'react';\nimport { forwardRef, createContext, useContext, useState, useEffect, useLayoutEffect } from 'react';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\nimport { Badge } from '@/components/ui/badge';\nimport { Separator } from '@/components/ui/separator';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from '@/components/ui/breadcrumb';\nimport { Menu, X, ChevronRight } from 'lucide-react';\nimport type { NavigationItem, Size, Tone } from '@/types';\n\n/**\n * AdminLayout schemes - meaningful admin variations\n * sidebar: Full navigation with icons + labels (classic)\n * compact: Icon-only navigation with click-to-expand (mobile-first)\n */\nexport type AdminLayoutScheme = 'sidebar' | 'compact';\n\n/**\n * Detect if we're on mobile - synchronous detection to prevent flash\n */\nfunction getInitialMobileState(): boolean {\n if (typeof window === 'undefined') return false;\n return window.innerWidth < 1024;\n}\n\n/**\n * Get initial sidebar state based on mobile detection\n */\nfunction getInitialSidebarState(defaultOpen: boolean): boolean {\n if (typeof window === 'undefined') return defaultOpen;\n const isMobile = getInitialMobileState();\n return isMobile ? false : defaultOpen;\n}\n\n/**\n * Admin context for sharing configuration across compound components\n */\nconst AdminContext = createContext<{\n scheme: AdminLayoutScheme;\n tone: Tone;\n size: Size;\n sidebarExpanded: boolean;\n setSidebarExpanded: (expanded: boolean) => void;\n isMobile: boolean;\n}>({\n scheme: 'sidebar',\n tone: 'subtle',\n size: 'lg',\n sidebarExpanded: true,\n setSidebarExpanded: () => {},\n isMobile: false,\n});\n\n/**\n * Admin layout container variants - FLEX LAYOUT\n */\nconst adminVariants = cva(\n 'min-h-screen flex bg-background',\n {\n variants: {\n tone: {\n clean: '',\n subtle: '',\n brand: '',\n contrast: ''\n }\n },\n defaultVariants: {\n tone: 'subtle'\n }\n }\n);\n\n/**\n * AdminLayout Root - Container with context\n */\nexport interface AdminLayoutProps {\n /** RECOMMENDED: Layout scheme (default: \"sidebar\") */\n scheme?: AdminLayoutScheme;\n /** RECOMMENDED: Visual styling tone (default: \"subtle\") */\n tone?: Tone;\n /** OPTIONAL: Layout size (default: \"lg\") */\n size?: Size;\n /** OPTIONAL: Sidebar positioning */\n position?: 'relative' | 'sticky' | 'fixed';\n /** OPTIONAL: Default sidebar state (default: true) */\n defaultSidebarOpen?: boolean;\n /** OPTIONAL: Additional CSS classes */\n className?: string;\n /** REQUIRED: Admin structure (Header, Sidebar, Content) */\n children: React.ReactNode;\n}\n\n/**\n * AdminLayout Root Component - BACK TO ORIGINAL WORKING VERSION\n */\nconst AdminLayoutRoot = forwardRef<HTMLDivElement, AdminLayoutProps>(({\n scheme = 'sidebar',\n tone = 'subtle',\n size = 'lg',\n position = 'relative',\n defaultSidebarOpen = true,\n className,\n children,\n}, ref) => {\n // ✅ RESTORED: Original working state management\n const [isMobile, setIsMobile] = useState(getInitialMobileState);\n const [sidebarExpanded, setSidebarExpanded] = useState(() => \n getInitialSidebarState(defaultSidebarOpen)\n );\n\n // ✅ RESTORED: Original mobile detection logic\n useLayoutEffect(() => {\n const checkMobile = () => {\n const mobile = window.innerWidth < 1024;\n const wasMobile = isMobile;\n \n setIsMobile(mobile);\n \n // Only auto-close sidebar when transitioning TO mobile\n if (mobile && !wasMobile && sidebarExpanded) {\n setSidebarExpanded(false);\n }\n // When transitioning FROM mobile to desktop, respect defaultSidebarOpen\n else if (!mobile && wasMobile) {\n setSidebarExpanded(defaultSidebarOpen);\n }\n };\n\n // Check immediately in case window size changed\n checkMobile();\n \n window.addEventListener('resize', checkMobile);\n return () => window.removeEventListener('resize', checkMobile);\n }, [isMobile, sidebarExpanded, defaultSidebarOpen]);\n\n // Prevent body scroll when mobile sidebar is open\n useEffect(() => {\n if (isMobile && sidebarExpanded) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = 'unset';\n }\n\n return () => {\n document.body.style.overflow = 'unset';\n };\n }, [isMobile, sidebarExpanded]);\n\n // Auto-wrap Header + Content in main area\n const childrenArray = React.Children.toArray(children);\n const sidebar = childrenArray.find(child => \n React.isValidElement(child) && child.type === AdminSidebar\n );\n const header = childrenArray.find(child => \n React.isValidElement(child) && child.type === AdminHeader\n );\n const content = childrenArray.find(child => \n React.isValidElement(child) && child.type === AdminContent\n );\n\n return (\n <AdminContext.Provider value={{ \n scheme, \n tone, \n size, \n sidebarExpanded, \n setSidebarExpanded,\n isMobile\n }}>\n <div\n ref={ref}\n className={cn(adminVariants({ tone }), className)}\n >\n {/* ✅ RESTORED: Original sidebar container */}\n <div className={cn(\n 'flex-shrink-0 transition-all duration-200 ease-out overflow-hidden',\n // Desktop: smooth width transition\n !isMobile && sidebarExpanded && (\n size === 'sm' ? 'w-48' :\n size === 'md' ? 'w-56' :\n size === 'lg' ? 'w-64' :\n size === 'xl' ? 'w-72' :\n 'w-80'\n ),\n !isMobile && !sidebarExpanded && 'w-0',\n // Mobile: don't affect layout\n isMobile && 'w-0',\n position === 'sticky' && isMobile && 'top-0 max-h-screen',\n position === 'sticky' && !isMobile && 'sticky top-0 max-h-screen'\n )}>\n {sidebar}\n </div>\n \n {/* ✅ RESTORED: Original main area */}\n <div className=\"flex-1 flex flex-col min-w-0 transition-all duration-200 ease-out\">\n {header}\n {content}\n </div>\n </div>\n </AdminContext.Provider>\n );\n});\n\nAdminLayoutRoot.displayName = 'AdminLayout';\n\n/**\n * AdminLayout.Sidebar - Navigation sidebar with FOUC prevention\n */\nexport interface AdminSidebarProps {\n /** OPTIONAL: Sidebar tone (inherits from AdminLayout if not set) */\n tone?: Tone;\n /** OPTIONAL: Navigation items */\n navigation?: NavigationItem[];\n /** OPTIONAL: Current path for active states */\n currentPath?: string;\n /** OPTIONAL: Navigation handler */\n onNavigate?: (href: string, item: NavigationItem) => void;\n /** OPTIONAL: Logo component */\n logo?: React.ReactNode;\n /** OPTIONAL: Sidebar positioning */\n position?: 'relative' | 'sticky' | 'fixed';\n /** OPTIONAL: Sidebar footer content */\n footer?: React.ReactNode;\n /** OPTIONAL: Additional CSS classes */\n className?: string;\n}\n\nconst AdminSidebar = forwardRef<HTMLElement, AdminSidebarProps>(({\n tone,\n navigation = [],\n currentPath = '',\n onNavigate,\n logo,\n position,\n footer,\n className,\n}, ref) => {\n const { scheme, tone: adminTone, size, sidebarExpanded, setSidebarExpanded, isMobile } = useAdmin();\n const [expandedMenus, setExpandedMenus] = useState(new Set<string>());\n const [compactExpanded, setCompactExpanded] = useState(false);\n\n const finalTone = tone || adminTone;\n const isCompact = scheme === 'compact';\n const showLabels = !isCompact || compactExpanded;\n\n // Handle compact mode expansion\n const handleCompactToggle = () => {\n if (isCompact) {\n setCompactExpanded(!compactExpanded);\n }\n };\n\n // Handle menu expansion\n const toggleMenu = (menuKey: string) => {\n const newExpanded = new Set(expandedMenus);\n if (newExpanded.has(menuKey)) {\n newExpanded.delete(menuKey);\n } else {\n newExpanded.add(menuKey);\n }\n setExpandedMenus(newExpanded);\n };\n\n // Get menu item styles\n const getMenuItemStyles = (isActive: boolean, isSubmenu = false) => {\n const baseStyles = isSubmenu \n ? 'w-[92%] flex items-center group text-left font-medium rounded-lg cursor-pointer transition-all duration-300 ease-out transform hover:scale-[1.02]'\n : 'w-full flex items-center group text-left font-medium rounded-lg cursor-pointer transition-all duration-300 ease-out transform hover:scale-[1.02]';\n const padding = isSubmenu \n ? (showLabels ? 'ml-4 px-3 py-2' : 'px-2 py-2') \n : (showLabels ? 'px-3 py-2.5' : 'px-2 py-2.5 justify-center');\n \n let toneStyles = '';\n switch (finalTone) {\n case 'clean':\n toneStyles = isActive \n ? 'bg-muted text-foreground shadow-sm' \n : 'text-muted-foreground hover:text-foreground hover:bg-muted/50';\n break;\n case 'subtle':\n toneStyles = isActive \n ? 'bg-background text-foreground shadow-sm' \n : 'text-muted-foreground hover:text-foreground hover:bg-background/60';\n break;\n case 'brand':\n toneStyles = isActive \n ? 'bg-primary-foreground/20 text-primary-foreground shadow-sm' \n : 'text-primary-foreground/90 hover:text-primary-foreground hover:bg-primary-foreground/10';\n break;\n case 'contrast':\n toneStyles = isActive \n ? 'bg-muted/20 dark:bg-muted/20 text-white shadow-sm' \n : 'text-white hover:bg-muted/20';\n break;\n default:\n toneStyles = isActive \n ? 'bg-muted/10 text-foreground shadow-sm' \n : 'text-muted-foreground hover:text-foreground hover:bg-muted/50';\n }\n \n return cn(baseStyles, padding, toneStyles);\n };\n\n // Menu item component\n const MenuItem = ({ item, isSubmenu = false }: { item: NavigationItem; isSubmenu?: boolean }) => {\n const hasSubmenu = !isSubmenu && item.items && item.items.length > 0;\n const isExpanded = expandedMenus.has(item.key);\n const isActive = item.href ? currentPath === item.href : Boolean(item.isActive);\n\n const handleClick = () => {\n if (isCompact && !compactExpanded) {\n setCompactExpanded(true);\n return;\n }\n\n if (hasSubmenu) {\n toggleMenu(item.key);\n } else if (item.href && onNavigate) {\n onNavigate(item.href, item);\n // Close mobile sidebar after navigation\n if (isMobile) {\n setSidebarExpanded(false);\n }\n } else if (item.onClick) {\n item.onClick();\n // Close mobile sidebar after action\n if (isMobile) {\n setSidebarExpanded(false);\n }\n }\n };\n\n const menuButton = (\n <button\n onClick={handleClick}\n className={getMenuItemStyles(isActive, isSubmenu)}\n >\n {!isSubmenu && item.icon && (\n <item.icon className={cn(\n 'flex-shrink-0',\n showLabels ? 'h-4 w-4 mr-3' : 'h-5 w-5'\n )} />\n )}\n \n {showLabels && (\n <>\n <span className=\"flex-1 truncate text-left\">{item.label}</span>\n \n {item.badge && (\n <Badge \n variant={isActive ? 'secondary' : 'outline'} \n className={cn(\n \"text-xs h-4 px-1 ml-1 flex-shrink-0\",\n finalTone === 'brand' && !isActive && 'bg-primary-foreground/10 text-primary-foreground border-primary-foreground/20',\n finalTone === 'brand' && isActive && 'bg-primary-foreground/20 text-primary-foreground border-primary-foreground/30',\n finalTone === 'contrast' && !isActive && 'bg-zinc-700 text-zinc-300 border-zinc-600',\n finalTone === 'contrast' && isActive && 'bg-zinc-600 text-zinc-100 border-zinc-500'\n )}\n >\n {item.badge}\n </Badge>\n )}\n \n {hasSubmenu && (\n <ChevronRight className={cn(\n 'h-4 w-4 flex-shrink-0 transition-transform duration-200',\n isExpanded && 'rotate-90'\n )} />\n )}\n </>\n )}\n </button>\n );\n\n // In compact mode without labels, wrap in tooltip\n if (isCompact && !compactExpanded && !isSubmenu && item.icon) {\n return (\n <div key={item.key} className=\"w-full\">\n <TooltipProvider>\n <Tooltip delayDuration={300}>\n <TooltipTrigger asChild>\n {menuButton}\n </TooltipTrigger>\n <TooltipContent \n side=\"right\" \n className=\"bg-white text-black border border-gray-200 shadow-md\"\n >\n <p>{item.label}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n \n {hasSubmenu && isExpanded && showLabels && item.items && (\n <div className=\"overflow-hidden transition-all duration-300 mt-1\">\n <div className=\"space-y-1 pb-2\">\n {item.items.map((subItem) => (\n <MenuItem key={subItem.key} item={subItem} isSubmenu={true} />\n ))}\n </div>\n </div>\n )}\n </div>\n );\n }\n\n return (\n <div key={item.key} className=\"w-full\">\n {menuButton}\n \n {hasSubmenu && isExpanded && showLabels && item.items && (\n <div className=\"overflow-hidden transition-all duration-400 ease-out mt-1\">\n <div className=\"space-y-1 pb-2 animate-in slide-in-from-top-2\">\n {item.items.map((subItem, subIndex) => (\n <div\n key={subItem.key}\n className=\"transition-all duration-300 ease-out\"\n style={{ transitionDelay: `${subIndex * 75}ms` }}\n >\n <MenuItem item={subItem} isSubmenu={true} />\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n };\n\n return (\n <>\n {/* ✅ FIXED: Mobile Overlay with higher z-index */}\n {isMobile && sidebarExpanded && (\n <div \n className=\"fixed inset-0 z-[60] bg-black/50 backdrop-blur-sm lg:hidden\"\n onClick={() => setSidebarExpanded(false)}\n aria-hidden=\"true\"\n />\n )}\n \n {/* ✅ RESTORED: Original sidebar with working mobile behavior */}\n <aside \n ref={ref}\n className={cn(\n 'border-r flex flex-col bg-background overflow-hidden',\n // ✅ RESTORED: Original smooth transitions\n 'transition-all duration-200 ease-out',\n // ✅ FIXED: Proper z-index layering for mobile\n // Mobile: Higher z-index than header (z-[70] > z-[10])\n isMobile ? 'fixed left-0 top-0 z-[70] h-full' : 'relative h-screen',\n // Mobile: slide animation\n isMobile && (sidebarExpanded ? 'translate-x-0' : '-translate-x-full'),\n // Desktop: always visible but container controls width\n !isMobile && 'translate-x-0',\n // Fixed widths for consistent animation\n scheme === 'sidebar' && size === 'sm' && 'w-48',\n scheme === 'sidebar' && size === 'md' && 'w-56', \n scheme === 'sidebar' && size === 'lg' && 'w-64',\n scheme === 'sidebar' && size === 'xl' && 'w-72',\n scheme === 'sidebar' && size === 'full' && 'w-80',\n scheme === 'compact' && !compactExpanded && size === 'sm' && 'w-12',\n scheme === 'compact' && !compactExpanded && size === 'md' && 'w-14',\n scheme === 'compact' && !compactExpanded && size === 'lg' && 'w-16',\n scheme === 'compact' && !compactExpanded && size === 'xl' && 'w-18',\n scheme === 'compact' && !compactExpanded && size === 'full' && 'w-20',\n scheme === 'compact' && compactExpanded && size === 'sm' && 'w-48',\n scheme === 'compact' && compactExpanded && size === 'md' && 'w-56',\n scheme === 'compact' && compactExpanded && size === 'lg' && 'w-64',\n scheme === 'compact' && compactExpanded && size === 'xl' && 'w-72',\n scheme === 'compact' && compactExpanded && size === 'full' && 'w-80',\n // Tone colors\n finalTone === 'clean' && 'bg-background/90 backdrop-blur-sm border-border/40 text-foreground',\n finalTone === 'subtle' && 'bg-muted/90 backdrop-blur-sm border-border/30 text-foreground',\n finalTone === 'brand' && 'bg-primary border-primary-foreground/20 text-primary-foreground',\n finalTone === 'contrast' && 'bg-zinc-900 border-zinc-700/40 text-zinc-100',\n className\n )}\n >\n <div className=\"flex flex-col h-full\">\n {/* Sidebar Header with smooth transitions */}\n <div className={cn(\n 'flex items-center shadow-sm flex-shrink-0 border-b transition-all duration-300 ease-out',\n finalTone === 'clean' && 'border-border/40',\n finalTone === 'subtle' && 'border-border/30', \n finalTone === 'brand' && 'border-primary-foreground/20',\n finalTone === 'contrast' && 'border-zinc-700/40',\n showLabels ? 'justify-between h-16 px-4' : 'justify-center h-16 px-2'\n )}>\n {showLabels ? (\n <>\n {logo && (\n <div className={cn(\n \"flex-shrink-0\",\n finalTone === 'brand' && '[&_*]:text-primary-foreground',\n finalTone === 'contrast' && '[&_*]:text-zinc-100'\n )}>\n {logo}\n </div>\n )}\n {/* Close button for mobile OR compact expanded */}\n {(isMobile || (isCompact && compactExpanded)) && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => {\n if (isMobile) {\n setSidebarExpanded(false);\n } else if (isCompact) {\n setCompactExpanded(false);\n }\n }}\n className=\"flex-shrink-0\"\n >\n <X className=\"h-4 w-4\" />\n </Button>\n )}\n </>\n ) : (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={handleCompactToggle}\n className=\"flex-shrink-0\"\n >\n <Menu className=\"h-4 w-4\" />\n </Button>\n )}\n </div>\n\n {/* Navigation with staggered animations */}\n <div className=\"flex-1 overflow-y-auto\">\n <nav className={cn(\n 'space-y-1 transition-all duration-300 ease-out', \n showLabels ? 'p-4' : 'p-2'\n )}>\n {navigation.map((item, index) => (\n <div \n key={item.key}\n className={cn(\n \"transition-all duration-300 ease-out\",\n showLabels ? \"opacity-100 translate-x-0\" : \"opacity-100\"\n )}\n style={{ \n transitionDelay: showLabels ? `${index * 50}ms` : '0ms' \n }}\n >\n <MenuItem item={item} />\n </div>\n ))}\n </nav>\n </div>\n\n {/* Sidebar Footer */}\n {footer && showLabels && (\n <>\n <Separator className={cn(\n finalTone === 'clean' && 'bg-border/40',\n finalTone === 'subtle' && 'bg-border/30', \n finalTone === 'brand' && 'bg-primary-foreground/20',\n finalTone === 'contrast' && 'bg-zinc-700/40'\n )} />\n <div className=\"flex-shrink-0 p-4\">\n {footer}\n </div>\n </>\n )}\n </div>\n </aside>\n </>\n );\n});\n\nAdminSidebar.displayName = 'AdminSidebar';\n\n/**\n * AdminLayout.Header - Top header with proper z-index for mobile\n */\nexport interface AdminHeaderProps {\n /** OPTIONAL: Header tone (inherits from AdminLayout if not set) */\n tone?: Tone;\n /** OPTIONAL: Header size (inherits from AdminLayout if not set) */\n size?: Size;\n /** OPTIONAL: Page title */\n title?: string;\n /** OPTIONAL: Header positioning (default: \"sticky\") */\n position?: 'sticky' | 'fixed' | 'relative';\n /** OPTIONAL: Breadcrumb items */\n breadcrumbs?: { label: string; href?: string }[];\n /** OPTIONAL: Breadcrumb navigation handler */\n onBreadcrumbNavigate?: (href: string) => void;\n /** OPTIONAL: Header actions (buttons, user menu, etc.) */\n actions?: React.ReactNode;\n /** OPTIONAL: Additional CSS classes */\n className?: string;\n}\n\nconst AdminHeader = forwardRef<HTMLElement, AdminHeaderProps>(({\n tone,\n size,\n title,\n position = 'sticky',\n breadcrumbs = [],\n onBreadcrumbNavigate,\n actions,\n className,\n}, ref) => {\n const { sidebarExpanded, setSidebarExpanded, isMobile } = useAdmin();\n\n return (\n <header \n ref={ref}\n className={cn(\n 'w-full shadow-sm bg-background/95 backdrop-blur-md text-foreground flex-shrink-0 border-b border-border/50',\n 'transition-all duration-200 ease-out',\n // ✅ FIXED: Sticky on desktop, lower z-index for mobile sidebar layering\n position === 'sticky' && 'sticky top-0',\n position === 'fixed' && 'fixed top-0 left-0 right-0',\n // Always use lower z-index so mobile sidebar appears above\n 'z-[10]',\n position === 'relative' && 'relative',\n className\n )}\n >\n <div className=\"flex items-center justify-between px-4 lg:px-6 h-16\">\n <div className=\"flex items-center gap-4 min-w-0 flex-1\">\n {/* Toggle button with smooth icon transition */}\n <button\n className={cn(\n \"p-2 rounded-lg text-muted-foreground hover:text-foreground hover:bg-muted/80 transition-all duration-300 ease-out\",\n \"transform hover:scale-105 active:scale-95\",\n // Always show on mobile\n isMobile && \"block\",\n // Show on desktop for toggle functionality \n !isMobile && \"block\"\n )}\n onClick={() => setSidebarExpanded(!sidebarExpanded)}\n aria-label={sidebarExpanded ? 'Close sidebar' : 'Open sidebar'}\n >\n <Menu className={cn(\n \"h-5 w-5 transition-transform duration-300 ease-out\",\n sidebarExpanded && !isMobile && \"rotate-180\"\n )} />\n </button>\n \n {/* Title and Breadcrumbs */}\n <div className=\"min-w-0 flex-1\">\n {/* Title */}\n {title && !breadcrumbs.length && (\n <h1 className=\"text-lg font-semibold text-foreground truncate\">\n {title}\n </h1>\n )}\n \n {/* Breadcrumbs */}\n {breadcrumbs.length > 0 && (\n <Breadcrumb>\n <BreadcrumbList>\n {breadcrumbs.map((crumb, index) => (\n <React.Fragment key={index}>\n <BreadcrumbItem>\n {crumb.href ? (\n <BreadcrumbLink\n asChild={!!onBreadcrumbNavigate}\n {...(onBreadcrumbNavigate \n ? {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n onBreadcrumbNavigate(crumb.href!);\n }\n }\n : { href: crumb.href }\n )}\n >\n {onBreadcrumbNavigate ? (\n <button type=\"button\">\n {crumb.label}\n </button>\n ) : (\n crumb.label\n )}\n </BreadcrumbLink>\n ) : (\n <BreadcrumbPage>{crumb.label}</BreadcrumbPage>\n )}\n </BreadcrumbItem>\n {index < breadcrumbs.length - 1 && <BreadcrumbSeparator />}\n </React.Fragment>\n ))}\n </BreadcrumbList>\n </Breadcrumb>\n )}\n </div>\n </div>\n \n {/* Header Actions */}\n {actions && (\n <div className=\"flex-shrink-0\">\n {actions}\n </div>\n )}\n </div>\n </header>\n );\n});\n\nAdminHeader.displayName = 'AdminHeader';\n\n/**\n * AdminLayout.Content - Main content area with PROPER flex layout\n */\nexport interface AdminContentProps {\n /** OPTIONAL: Content tone (inherits from AdminLayout if not set) */\n tone?: Tone;\n /** OPTIONAL: Content size (inherits from AdminLayout if not set) */\n size?: Size;\n /** OPTIONAL: Additional CSS classes */\n className?: string;\n /** REQUIRED: Admin content */\n children: React.ReactNode;\n}\n\nconst AdminContent = forwardRef<HTMLElement, AdminContentProps>(({\n tone,\n size,\n className,\n children,\n}, ref) => {\n const { isMobile } = useAdmin();\n\n return (\n <main \n ref={ref}\n className={cn(\n 'flex-1 min-w-0 overflow-auto',\n className\n )}\n >\n <div className=\"\">\n <div className=\"w-full mx-auto\">\n {children}\n </div>\n </div>\n </main>\n );\n});\n\nAdminContent.displayName = 'AdminContent';\n\n/**\n * Hook to access admin configuration\n */\nconst useAdmin = () => {\n const context = useContext(AdminContext);\n if (!context) {\n throw new Error('useAdmin must be used within an AdminLayout component');\n }\n return context;\n};\n\n/**\n * AdminLayout - COMPOUND-ONLY Component\n */\nconst AdminLayout = Object.assign(AdminLayoutRoot, {\n Sidebar: AdminSidebar,\n Header: AdminHeader,\n Content: AdminContent,\n});\n\n/**\n * Export FIXED AdminLayout\n */\nexport { \n AdminLayout,\n AdminSidebar,\n AdminHeader,\n AdminContent,\n useAdmin\n};"],"names":["getInitialMobileState","getInitialSidebarState","defaultOpen","AdminContext","createContext","adminVariants","cva","AdminLayoutRoot","forwardRef","scheme","tone","size","position","defaultSidebarOpen","className","children","ref","isMobile","setIsMobile","useState","sidebarExpanded","setSidebarExpanded","useLayoutEffect","checkMobile","mobile","wasMobile","useEffect","childrenArray","React","sidebar","child","AdminSidebar","header","AdminHeader","content","AdminContent","jsx","jsxs","cn","navigation","currentPath","onNavigate","logo","footer","adminTone","useAdmin","expandedMenus","setExpandedMenus","compactExpanded","setCompactExpanded","finalTone","isCompact","showLabels","handleCompactToggle","toggleMenu","menuKey","newExpanded","getMenuItemStyles","isActive","isSubmenu","baseStyles","padding","toneStyles","MenuItem","item","hasSubmenu","isExpanded","menuButton","Fragment","Badge","ChevronRight","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","subItem","subIndex","Button","X","Menu","index","Separator","title","breadcrumbs","onBreadcrumbNavigate","actions","Breadcrumb","BreadcrumbList","crumb","BreadcrumbItem","BreadcrumbLink","e","BreadcrumbPage","BreadcrumbSeparator","context","useContext","AdminLayout"],"mappings":";;;;;;;;;;;;;AAmCA,SAASA,IAAiC;AACxC,SAAI,OAAO,SAAW,MAAoB,KACnC,OAAO,aAAa;AAC7B;AAKA,SAASC,GAAuBC,GAA+B;AAC7D,SAAI,OAAO,SAAW,MAAoBA,IACzBF,EAAA,IACC,KAAQE;AAC5B;AAKA,MAAMC,IAAeC,EAOlB;AAAA,EACD,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,oBAAoB,MAAM;AAAA,EAAC;AAAA,EAC3B,UAAU;AACZ,CAAC,GAKKC,KAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,IAEF,iBAAiB;AAAA,MACf,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GAyBMC,IAAkBC,EAA6C,CAAC;AAAA,EACpE,QAAAC,IAAS;AAAA,EACT,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAW;AAAA,EACX,oBAAAC,IAAqB;AAAA,EACrB,WAAAC;AAAA,EACA,UAAAC;AACF,GAAGC,MAAQ;AAET,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAASnB,CAAqB,GACxD,CAACoB,GAAiBC,CAAkB,IAAIF;AAAA,IAAS,MACrDlB,GAAuBY,CAAkB;AAAA,EAAA;AAI3C,EAAAS,EAAgB,MAAM;AACpB,UAAMC,IAAc,MAAM;AACxB,YAAMC,IAAS,OAAO,aAAa,MAC7BC,IAAYR;AAElB,MAAAC,EAAYM,CAAM,GAGdA,KAAU,CAACC,KAAaL,IAC1BC,EAAmB,EAAK,IAGjB,CAACG,KAAUC,KAClBJ,EAAmBR,CAAkB;AAAA,IAEzC;AAGA,WAAAU,EAAA,GAEA,OAAO,iBAAiB,UAAUA,CAAW,GACtC,MAAM,OAAO,oBAAoB,UAAUA,CAAW;AAAA,EAC/D,GAAG,CAACN,GAAUG,GAAiBP,CAAkB,CAAC,GAGlDa,EAAU,OACJT,KAAYG,IACd,SAAS,KAAK,MAAM,WAAW,WAE/B,SAAS,KAAK,MAAM,WAAW,SAG1B,MAAM;AACX,aAAS,KAAK,MAAM,WAAW;AAAA,EACjC,IACC,CAACH,GAAUG,CAAe,CAAC;AAG9B,QAAMO,IAAgBC,EAAM,SAAS,QAAQb,CAAQ,GAC/Cc,IAAUF,EAAc;AAAA,IAAK,OACjCC,EAAM,eAAeE,CAAK,KAAKA,EAAM,SAASC;AAAA,EAAA,GAE1CC,IAASL,EAAc;AAAA,IAAK,OAChCC,EAAM,eAAeE,CAAK,KAAKA,EAAM,SAASG;AAAA,EAAA,GAE1CC,IAAUP,EAAc;AAAA,IAAK,OACjCC,EAAM,eAAeE,CAAK,KAAKA,EAAM,SAASK;AAAA,EAAA;AAGhD,SACE,gBAAAC,EAACjC,EAAa,UAAb,EAAsB,OAAO;AAAA,IAC5B,QAAAM;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,iBAAAS;AAAA,IACA,oBAAAC;AAAA,IACA,UAAAJ;AAAA,EAAA,GAEA,UAAA,gBAAAoB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAArB;AAAA,MACA,WAAWsB,EAAGjC,GAAc,EAAE,MAAAK,EAAA,CAAM,GAAGI,CAAS;AAAA,MAGhD,UAAA;AAAA,QAAA,gBAAAsB,EAAC,SAAI,WAAWE;AAAA,UACd;AAAA;AAAA,UAEA,CAACrB,KAAYG,MACXT,MAAS,OAAO,SAChBA,MAAS,OAAO,SAChBA,MAAS,OAAO,SAChBA,MAAS,OAAO,SAChB;AAAA,UAEF,CAACM,KAAY,CAACG,KAAmB;AAAA;AAAA,UAEjCH,KAAY;AAAA,UACZL,MAAa,YAAYK,KAAY;AAAA,UACrCL,MAAa,YAAY,CAACK,KAAY;AAAA,QAAA,GAErC,UAAAY,GACH;AAAA,QAGA,gBAAAQ,EAAC,OAAA,EAAI,WAAU,qEACZ,UAAA;AAAA,UAAAL;AAAA,UACAE;AAAA,QAAA,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ,CAAC;AAED3B,EAAgB,cAAc;AAwB9B,MAAMwB,IAAevB,EAA2C,CAAC;AAAA,EAC/D,MAAAE;AAAA,EACA,YAAA6B,IAAa,CAAA;AAAA,EACb,aAAAC,IAAc;AAAA,EACd,YAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAA9B;AAAA,EACA,QAAA+B;AAAA,EACA,WAAA7B;AACF,GAAGE,MAAQ;AACT,QAAM,EAAE,QAAAP,GAAQ,MAAMmC,GAAW,MAAAjC,GAAM,iBAAAS,GAAiB,oBAAAC,GAAoB,UAAAJ,EAAA,IAAa4B,EAAA,GACnF,CAACC,GAAeC,CAAgB,IAAI5B,EAAS,oBAAI,KAAa,GAC9D,CAAC6B,GAAiBC,CAAkB,IAAI9B,EAAS,EAAK,GAEtD+B,IAAYxC,KAAQkC,GACpBO,IAAY1C,MAAW,WACvB2C,IAAa,CAACD,KAAaH,GAG3BK,IAAsB,MAAM;AAChC,IAAIF,KACFF,EAAmB,CAACD,CAAe;AAAA,EAEvC,GAGMM,IAAa,CAACC,MAAoB;AACtC,UAAMC,IAAc,IAAI,IAAIV,CAAa;AACzC,IAAIU,EAAY,IAAID,CAAO,IACzBC,EAAY,OAAOD,CAAO,IAE1BC,EAAY,IAAID,CAAO,GAEzBR,EAAiBS,CAAW;AAAA,EAC9B,GAGMC,IAAoB,CAACC,GAAmBC,IAAY,OAAU;AAClE,UAAMC,IAAaD,IACf,sJACA,oJACEE,IAAUF,IACXP,IAAa,mBAAmB,cAChCA,IAAa,gBAAgB;AAElC,QAAIU,IAAa;AACjB,YAAQZ,GAAA;AAAA,MACN,KAAK;AACH,QAAAY,IAAaJ,IACT,uCACA;AACJ;AAAA,MACF,KAAK;AACH,QAAAI,IAAaJ,IACT,4CACA;AACJ;AAAA,MACF,KAAK;AACH,QAAAI,IAAaJ,IACT,+DACA;AACJ;AAAA,MACF,KAAK;AACH,QAAAI,IAAaJ,IACT,sDACA;AACJ;AAAA,MACF;AACE,QAAAI,IAAaJ,IACT,0CACA;AAAA,IAAA;AAGR,WAAOpB,EAAGsB,GAAYC,GAASC,CAAU;AAAA,EAC3C,GAGMC,IAAW,CAAC,EAAE,MAAAC,GAAM,WAAAL,IAAY,SAA2D;AAC/F,UAAMM,IAAa,CAACN,KAAaK,EAAK,SAASA,EAAK,MAAM,SAAS,GAC7DE,IAAapB,EAAc,IAAIkB,EAAK,GAAG,GACvCN,IAAWM,EAAK,OAAOxB,MAAgBwB,EAAK,OAAO,EAAQA,EAAK,UAyBhEG,IACJ,gBAAA9B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAzBgB,MAAM;AACxB,cAAIc,KAAa,CAACH,GAAiB;AACjC,YAAAC,EAAmB,EAAI;AACvB;AAAA,UACF;AAEA,UAAIgB,IACFX,EAAWU,EAAK,GAAG,IACVA,EAAK,QAAQvB,KACtBA,EAAWuB,EAAK,MAAMA,CAAI,GAEtB/C,KACFI,EAAmB,EAAK,KAEjB2C,EAAK,YACdA,EAAK,QAAA,GAED/C,KACFI,EAAmB,EAAK;AAAA,QAG9B;AAAA,QAKI,WAAWoC,EAAkBC,GAAUC,CAAS;AAAA,QAE/C,UAAA;AAAA,UAAA,CAACA,KAAaK,EAAK,0BACjBA,EAAK,MAAL,EAAU,WAAW1B;AAAA,YACpB;AAAA,YACAc,IAAa,iBAAiB;AAAA,UAAA,GAC7B;AAAA,UAGJA,KACC,gBAAAf,EAAA+B,GAAA,EACE,UAAA;AAAA,YAAA,gBAAAhC,EAAC,QAAA,EAAK,WAAU,6BAA6B,UAAA4B,EAAK,OAAM;AAAA,YAEvDA,EAAK,SACJ,gBAAA5B;AAAA,cAACiC;AAAA,cAAA;AAAA,gBACC,SAASX,IAAW,cAAc;AAAA,gBAClC,WAAWpB;AAAA,kBACT;AAAA,kBACAY,MAAc,WAAW,CAACQ,KAAY;AAAA,kBACtCR,MAAc,WAAWQ,KAAY;AAAA,kBACrCR,MAAc,cAAc,CAACQ,KAAY;AAAA,kBACzCR,MAAc,cAAcQ,KAAY;AAAA,gBAAA;AAAA,gBAGzC,UAAAM,EAAK;AAAA,cAAA;AAAA,YAAA;AAAA,YAITC,KACC,gBAAA7B,EAACkC,IAAA,EAAa,WAAWhC;AAAA,cACvB;AAAA,cACA4B,KAAc;AAAA,YAAA,EAChB,CAAG;AAAA,UAAA,EAAA,CAEP;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAMN,WAAIf,KAAa,CAACH,KAAmB,CAACW,KAAaK,EAAK,OAEpD,gBAAA3B,EAAC,OAAA,EAAmB,WAAU,UAC5B,UAAA;AAAA,MAAA,gBAAAD,EAACmC,IAAA,EACC,UAAA,gBAAAlC,EAACmC,IAAA,EAAQ,eAAe,KACtB,UAAA;AAAA,QAAA,gBAAApC,EAACqC,IAAA,EAAe,SAAO,IACpB,UAAAN,GACH;AAAA,QACA,gBAAA/B;AAAA,UAACsC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YAEV,UAAA,gBAAAtC,EAAC,KAAA,EAAG,UAAA4B,EAAK,MAAA,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MACjB,EAAA,CACF,EAAA,CACF;AAAA,MAECC,KAAcC,KAAcd,KAAcY,EAAK,SAC9C,gBAAA5B,EAAC,OAAA,EAAI,WAAU,oDACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,kBACZ,UAAA4B,EAAK,MAAM,IAAI,CAACW,MACf,gBAAAvC,EAAC2B,GAAA,EAA2B,MAAMY,GAAS,WAAW,GAAA,GAAvCA,EAAQ,GAAqC,CAC7D,EAAA,CACH,EAAA,CACF;AAAA,IAAA,EAAA,GAtBMX,EAAK,GAwBf,IAKF,gBAAA3B,EAAC,OAAA,EAAmB,WAAU,UAC3B,UAAA;AAAA,MAAA8B;AAAA,MAEAF,KAAcC,KAAcd,KAAcY,EAAK,SAC9C,gBAAA5B,EAAC,SAAI,WAAU,6DACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,iDACZ,UAAA4B,EAAK,MAAM,IAAI,CAACW,GAASC,MACxB,gBAAAxC;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UACV,OAAO,EAAE,iBAAiB,GAAGwC,IAAW,EAAE,KAAA;AAAA,UAE1C,UAAA,gBAAAxC,EAAC2B,GAAA,EAAS,MAAMY,GAAS,WAAW,GAAA,CAAM;AAAA,QAAA;AAAA,QAJrCA,EAAQ;AAAA,MAAA,CAMhB,GACH,EAAA,CACF;AAAA,IAAA,EAAA,GAhBMX,EAAK,GAkBf;AAAA,EAEJ;AAEA,SACE,gBAAA3B,EAAA+B,GAAA,EAEG,UAAA;AAAA,IAAAnD,KAAYG,KACX,gBAAAgB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,SAAS,MAAMf,EAAmB,EAAK;AAAA,QACvC,eAAY;AAAA,MAAA;AAAA,IAAA;AAAA,IAKhB,gBAAAe;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAApB;AAAA,QACA,WAAWsB;AAAA,UACT;AAAA;AAAA,UAEA;AAAA;AAAA;AAAA,UAGArB,IAAW,qCAAqC;AAAA;AAAA,UAEhDA,MAAaG,IAAkB,kBAAkB;AAAA;AAAA,UAEjD,CAACH,KAAY;AAAA;AAAA,UAEbR,MAAW,aAAaE,MAAS,QAAQ;AAAA,UACzCF,MAAW,aAAaE,MAAS,QAAQ;AAAA,UACzCF,MAAW,aAAaE,MAAS,QAAQ;AAAA,UACzCF,MAAW,aAAaE,MAAS,QAAQ;AAAA,UACzCF,MAAW,aAAaE,MAAS,UAAU;AAAA,UAC3CF,MAAW,aAAa,CAACuC,KAAmBrC,MAAS,QAAQ;AAAA,UAC7DF,MAAW,aAAa,CAACuC,KAAmBrC,MAAS,QAAQ;AAAA,UAC7DF,MAAW,aAAa,CAACuC,KAAmBrC,MAAS,QAAQ;AAAA,UAC7DF,MAAW,aAAa,CAACuC,KAAmBrC,MAAS,QAAQ;AAAA,UAC7DF,MAAW,aAAa,CAACuC,KAAmBrC,MAAS,UAAU;AAAA,UAC/DF,MAAW,aAAauC,KAAmBrC,MAAS,QAAQ;AAAA,UAC5DF,MAAW,aAAauC,KAAmBrC,MAAS,QAAQ;AAAA,UAC5DF,MAAW,aAAauC,KAAmBrC,MAAS,QAAQ;AAAA,UAC5DF,MAAW,aAAauC,KAAmBrC,MAAS,QAAQ;AAAA,UAC5DF,MAAW,aAAauC,KAAmBrC,MAAS,UAAU;AAAA;AAAA,UAE9DuC,MAAc,WAAW;AAAA,UACzBA,MAAc,YAAY;AAAA,UAC1BA,MAAc,WAAW;AAAA,UACzBA,MAAc,cAAc;AAAA,UAC5BpC;AAAA,QAAA;AAAA,QAGF,UAAA,gBAAAuB,EAAC,OAAA,EAAI,WAAU,wBAEb,UAAA;AAAA,UAAA,gBAAAD,EAAC,SAAI,WAAWE;AAAA,YACd;AAAA,YACAY,MAAc,WAAW;AAAA,YACzBA,MAAc,YAAY;AAAA,YAC1BA,MAAc,WAAW;AAAA,YACzBA,MAAc,cAAc;AAAA,YAC5BE,IAAa,8BAA8B;AAAA,UAAA,GAE1C,cACC,gBAAAf,EAAA+B,GAAA,EACG,UAAA;AAAA,YAAA1B,KACC,gBAAAN,EAAC,SAAI,WAAWE;AAAA,cACd;AAAA,cACAY,MAAc,WAAW;AAAA,cACzBA,MAAc,cAAc;AAAA,YAAA,GAE3B,UAAAR,GACH;AAAA,aAGAzB,KAAakC,KAAaH,MAC1B,gBAAAZ;AAAA,cAACyC;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,SAAS,MAAM;AACb,kBAAI5D,IACFI,EAAmB,EAAK,IACf8B,KACTF,EAAmB,EAAK;AAAA,gBAE5B;AAAA,gBACA,WAAU;AAAA,gBAEV,UAAA,gBAAAb,EAAC0C,IAAA,EAAE,WAAU,UAAA,CAAU;AAAA,cAAA;AAAA,YAAA;AAAA,UACzB,EAAA,CAEJ,IAEA,gBAAA1C;AAAA,YAACyC;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,SAASxB;AAAA,cACT,WAAU;AAAA,cAEV,UAAA,gBAAAjB,EAAC2C,GAAA,EAAK,WAAU,UAAA,CAAU;AAAA,YAAA;AAAA,UAAA,GAGhC;AAAA,4BAGC,OAAA,EAAI,WAAU,0BACb,UAAA,gBAAA3C,EAAC,SAAI,WAAWE;AAAA,YACd;AAAA,YACAc,IAAa,QAAQ;AAAA,UAAA,GAEpB,UAAAb,EAAW,IAAI,CAACyB,GAAMgB,MACrB,gBAAA5C;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,WAAWE;AAAA,gBACT;AAAA,gBACAc,IAAa,8BAA8B;AAAA,cAAA;AAAA,cAE7C,OAAO;AAAA,gBACL,iBAAiBA,IAAa,GAAG4B,IAAQ,EAAE,OAAO;AAAA,cAAA;AAAA,cAGpD,UAAA,gBAAA5C,EAAC2B,KAAS,MAAAC,EAAA,CAAY;AAAA,YAAA;AAAA,YATjBA,EAAK;AAAA,UAAA,CAWb,GACH,EAAA,CACF;AAAA,UAGCrB,KAAUS,KACT,gBAAAf,EAAA+B,GAAA,EACE,UAAA;AAAA,YAAA,gBAAAhC,EAAC6C,MAAU,WAAW3C;AAAA,cACpBY,MAAc,WAAW;AAAA,cACzBA,MAAc,YAAY;AAAA,cAC1BA,MAAc,WAAW;AAAA,cACzBA,MAAc,cAAc;AAAA,YAAA,GAC3B;AAAA,YACH,gBAAAd,EAAC,OAAA,EAAI,WAAU,qBACZ,UAAAO,EAAA,CACH;AAAA,UAAA,EAAA,CACF;AAAA,QAAA,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ,CAAC;AAEDZ,EAAa,cAAc;AAwB3B,MAAME,IAAczB,EAA0C,CAAC;AAAA,EAC7D,MAAAE;AAAA,EACA,MAAAC;AAAA,EACA,OAAAuE;AAAA,EACA,UAAAtE,IAAW;AAAA,EACX,aAAAuE,IAAc,CAAA;AAAA,EACd,sBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAvE;AACF,GAAGE,MAAQ;AACT,QAAM,EAAE,iBAAAI,GAAiB,oBAAAC,GAAoB,UAAAJ,EAAA,IAAa4B,EAAA;AAE1D,SACE,gBAAAT;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAApB;AAAA,MACA,WAAWsB;AAAA,QACT;AAAA,QACA;AAAA;AAAA,QAEA1B,MAAa,YAAY;AAAA,QACzBA,MAAa,WAAW;AAAA;AAAA,QAExB;AAAA,QACAA,MAAa,cAAc;AAAA,QAC3BE;AAAA,MAAA;AAAA,MAGF,UAAA,gBAAAuB,EAAC,OAAA,EAAI,WAAU,uDACb,UAAA;AAAA,QAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,0CAEb,UAAA;AAAA,UAAA,gBAAAD;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWE;AAAA,gBACT;AAAA,gBACA;AAAA;AAAA,gBAEArB,KAAY;AAAA;AAAA,gBAEZ,CAACA,KAAY;AAAA,cAAA;AAAA,cAEf,SAAS,MAAMI,EAAmB,CAACD,CAAe;AAAA,cAClD,cAAYA,IAAkB,kBAAkB;AAAA,cAEhD,UAAA,gBAAAgB,EAAC2C,KAAK,WAAWzC;AAAA,gBACf;AAAA,gBACAlB,KAAmB,CAACH,KAAY;AAAA,cAAA,EAClC,CAAG;AAAA,YAAA;AAAA,UAAA;AAAA,UAIL,gBAAAoB,EAAC,OAAA,EAAI,WAAU,kBAEZ,UAAA;AAAA,YAAA6C,KAAS,CAACC,EAAY,4BACpB,MAAA,EAAG,WAAU,kDACX,UAAAD,GACH;AAAA,YAIDC,EAAY,SAAS,KACpB,gBAAA/C,EAACkD,MACC,UAAA,gBAAAlD,EAACmD,IAAA,EACE,UAAAJ,EAAY,IAAI,CAACK,GAAOR,MACvB,gBAAA3C,EAACT,EAAM,UAAN,EACC,UAAA;AAAA,cAAA,gBAAAQ,EAACqD,IAAA,EACE,YAAM,OACL,gBAAArD;AAAA,gBAACsD;AAAA,gBAAA;AAAA,kBACC,SAAS,CAAC,CAACN;AAAA,kBACV,GAAIA,IACD;AAAA,oBACE,SAAS,CAACO,MAAwB;AAChC,sBAAAA,EAAE,eAAA,GACFP,EAAqBI,EAAM,IAAK;AAAA,oBAClC;AAAA,kBAAA,IAEF,EAAE,MAAMA,EAAM,KAAA;AAAA,kBAGjB,UAAAJ,sBACE,UAAA,EAAO,MAAK,UACV,UAAAI,EAAM,MAAA,CACT,IAEAA,EAAM;AAAA,gBAAA;AAAA,cAAA,IAIV,gBAAApD,EAACwD,IAAA,EAAgB,UAAAJ,EAAM,OAAM,GAEjC;AAAA,cACCR,IAAQG,EAAY,SAAS,uBAAMU,IAAA,CAAA,CAAoB;AAAA,YAAA,KA3BrCb,CA4BrB,CACD,EAAA,CACH,EAAA,CACF;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA,GACF;AAAA,QAGCK,KACC,gBAAAjD,EAAC,OAAA,EAAI,WAAU,iBACZ,UAAAiD,EAAA,CACH;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;AAEDpD,EAAY,cAAc;AAgB1B,MAAME,IAAe3B,EAA2C,CAAC;AAAA,EAC/D,MAAAE;AAAA,EACA,MAAAC;AAAA,EACA,WAAAG;AAAA,EACA,UAAAC;AACF,GAAGC,MAAQ;AACT,QAAM,EAAE,UAAAC,EAAA,IAAa4B,EAAA;AAErB,SACE,gBAAAT;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAApB;AAAA,MACA,WAAWsB;AAAA,QACT;AAAA,QACAxB;AAAA,MAAA;AAAA,MAGF,UAAA,gBAAAsB,EAAC,SAAI,WAAU,IACb,4BAAC,OAAA,EAAI,WAAU,kBACZ,UAAArB,EAAA,CACH,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;AAEDoB,EAAa,cAAc;AAK3B,MAAMU,IAAW,MAAM;AACrB,QAAMiD,IAAUC,EAAW5F,CAAY;AACvC,MAAI,CAAC2F;AACH,UAAM,IAAI,MAAM,uDAAuD;AAEzE,SAAOA;AACT,GAKME,KAAc,OAAO,OAAOzF,GAAiB;AAAA,EACjD,SAASwB;AAAA,EACT,QAAQE;AAAA,EACR,SAASE;AACX,CAAC;"}
|
package/dist/alert.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { c as i } from "./index-Bke1qZdk.js";
|
|
3
|
+
import { c as e } from "./utils-CwJPJKOE.js";
|
|
4
|
+
const l = i(
|
|
5
|
+
"relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
|
|
6
|
+
{
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
default: "bg-card text-card-foreground",
|
|
10
|
+
destructive: "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
defaultVariants: {
|
|
14
|
+
variant: "default"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
function o({
|
|
19
|
+
className: t,
|
|
20
|
+
variant: r,
|
|
21
|
+
...s
|
|
22
|
+
}) {
|
|
23
|
+
return /* @__PURE__ */ a(
|
|
24
|
+
"div",
|
|
25
|
+
{
|
|
26
|
+
"data-slot": "alert",
|
|
27
|
+
role: "alert",
|
|
28
|
+
className: e(l({ variant: r }), t),
|
|
29
|
+
...s
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
function g({ className: t, ...r }) {
|
|
34
|
+
return /* @__PURE__ */ a(
|
|
35
|
+
"div",
|
|
36
|
+
{
|
|
37
|
+
"data-slot": "alert-title",
|
|
38
|
+
className: e(
|
|
39
|
+
"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
|
|
40
|
+
t
|
|
41
|
+
),
|
|
42
|
+
...r
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
function u({
|
|
47
|
+
className: t,
|
|
48
|
+
...r
|
|
49
|
+
}) {
|
|
50
|
+
return /* @__PURE__ */ a(
|
|
51
|
+
"div",
|
|
52
|
+
{
|
|
53
|
+
"data-slot": "alert-description",
|
|
54
|
+
className: e(
|
|
55
|
+
"text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
|
|
56
|
+
t
|
|
57
|
+
),
|
|
58
|
+
...r
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
export {
|
|
63
|
+
o as Alert,
|
|
64
|
+
u as AlertDescription,
|
|
65
|
+
g as AlertTitle
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.js","sources":["../src/components/ui/alert.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Alert, AlertTitle, AlertDescription }\n"],"names":["alertVariants","cva","Alert","className","variant","props","jsx","cn","AlertTitle","AlertDescription"],"mappings":";;;AAKA,MAAMA,IAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAEA,SAASC,EAAM;AAAA,EACb,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAqE;AACnE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,MAAK;AAAA,MACL,WAAWC,EAAGP,EAAc,EAAE,SAAAI,EAAA,CAAS,GAAGD,CAAS;AAAA,MAClD,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASG,EAAW,EAAE,WAAAL,GAAW,GAAGE,KAAsC;AACxE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAiB;AAAA,EACxB,WAAAN;AAAA,EACA,GAAGE;AACL,GAAgC;AAC9B,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|