@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/header.js
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { jsx as r, jsxs as l } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as T, forwardRef as C, useState as p, useContext as W, useEffect as m } from "react";
|
|
3
|
+
import { c as E } from "./index-Bke1qZdk.js";
|
|
4
|
+
import { c as n } from "./utils-CwJPJKOE.js";
|
|
5
|
+
import { Button as X } from "./button.js";
|
|
6
|
+
import { C as S } from "./chevron-down-BORJtX8F.js";
|
|
7
|
+
import { X as q } from "./x-BxwubQiM.js";
|
|
8
|
+
import { M as F } from "./menu-DBhEanGo.js";
|
|
9
|
+
const H = T({
|
|
10
|
+
tone: "clean",
|
|
11
|
+
size: "xl"
|
|
12
|
+
}), G = E(
|
|
13
|
+
"w-full border-b transition-all duration-200 z-40",
|
|
14
|
+
{
|
|
15
|
+
variants: {
|
|
16
|
+
tone: {
|
|
17
|
+
clean: [
|
|
18
|
+
"bg-background/80 backdrop-blur-sm border-border/40 supports-[backdrop-filter]:bg-background/60",
|
|
19
|
+
"text-foreground"
|
|
20
|
+
],
|
|
21
|
+
subtle: [
|
|
22
|
+
"bg-muted/50 backdrop-blur-sm border-border/30",
|
|
23
|
+
"text-foreground"
|
|
24
|
+
],
|
|
25
|
+
brand: [
|
|
26
|
+
"bg-primary border-primary-foreground/20",
|
|
27
|
+
"text-primary-foreground"
|
|
28
|
+
],
|
|
29
|
+
contrast: [
|
|
30
|
+
"bg-zinc-900 border-zinc-700/40",
|
|
31
|
+
"text-zinc-100"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
position: {
|
|
35
|
+
sticky: "sticky top-0",
|
|
36
|
+
fixed: "fixed top-0 left-0 right-0",
|
|
37
|
+
relative: "relative"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
defaultVariants: {
|
|
41
|
+
tone: "clean",
|
|
42
|
+
position: "sticky"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
), J = E(
|
|
46
|
+
"mx-auto flex items-center justify-between",
|
|
47
|
+
{
|
|
48
|
+
variants: {
|
|
49
|
+
size: {
|
|
50
|
+
sm: "max-w-2xl h-12 px-4",
|
|
51
|
+
md: "max-w-4xl h-14 px-4 sm:px-6",
|
|
52
|
+
lg: "max-w-6xl h-16 px-4 sm:px-6 lg:px-8",
|
|
53
|
+
xl: "max-w-7xl h-16 px-4 sm:px-6 lg:px-8",
|
|
54
|
+
full: "max-w-full h-16 px-4 sm:px-6 lg:px-8"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
defaultVariants: {
|
|
58
|
+
size: "xl"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
), L = C(({
|
|
62
|
+
className: c,
|
|
63
|
+
tone: s = "clean",
|
|
64
|
+
size: d = "xl",
|
|
65
|
+
position: u = "sticky",
|
|
66
|
+
children: h,
|
|
67
|
+
...b
|
|
68
|
+
}, a) => /* @__PURE__ */ r(H.Provider, { value: { tone: s, size: d }, children: /* @__PURE__ */ r(
|
|
69
|
+
"header",
|
|
70
|
+
{
|
|
71
|
+
ref: a,
|
|
72
|
+
className: n(G({ tone: s, position: u }), c),
|
|
73
|
+
...b,
|
|
74
|
+
children: /* @__PURE__ */ r("div", { className: n(J({ size: d })), children: h })
|
|
75
|
+
}
|
|
76
|
+
) }));
|
|
77
|
+
L.displayName = "Header";
|
|
78
|
+
const O = C(({
|
|
79
|
+
className: c,
|
|
80
|
+
children: s,
|
|
81
|
+
...d
|
|
82
|
+
}, u) => /* @__PURE__ */ r(
|
|
83
|
+
"div",
|
|
84
|
+
{
|
|
85
|
+
ref: u,
|
|
86
|
+
className: n("flex items-center flex-shrink-0", c),
|
|
87
|
+
...d,
|
|
88
|
+
children: s
|
|
89
|
+
}
|
|
90
|
+
));
|
|
91
|
+
O.displayName = "HeaderLogo";
|
|
92
|
+
const D = C(({
|
|
93
|
+
navigation: c = [],
|
|
94
|
+
currentPath: s = "",
|
|
95
|
+
onNavigate: d,
|
|
96
|
+
className: u,
|
|
97
|
+
...h
|
|
98
|
+
}, b) => {
|
|
99
|
+
const [a, y] = p(!1), [z, v] = p(/* @__PURE__ */ new Set()), [w, f] = p(null), [x, A] = p(!1), { tone: M } = W(H);
|
|
100
|
+
m(() => {
|
|
101
|
+
A(!0);
|
|
102
|
+
}, []), m(() => {
|
|
103
|
+
if (!x) return;
|
|
104
|
+
const e = () => {
|
|
105
|
+
window.innerWidth >= 768 && (y(!1), v(/* @__PURE__ */ new Set()));
|
|
106
|
+
};
|
|
107
|
+
return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
|
|
108
|
+
}, [x]), m(() => {
|
|
109
|
+
if (x)
|
|
110
|
+
return a ? document.body.style.overflow = "hidden" : document.body.style.overflow = "unset", () => {
|
|
111
|
+
document.body.style.overflow = "unset";
|
|
112
|
+
};
|
|
113
|
+
}, [a, x]), m(() => {
|
|
114
|
+
const e = () => f(null);
|
|
115
|
+
if (w !== null)
|
|
116
|
+
return document.addEventListener("click", e), () => document.removeEventListener("click", e);
|
|
117
|
+
}, [w]);
|
|
118
|
+
const j = (e) => {
|
|
119
|
+
const t = new Set(z);
|
|
120
|
+
t.has(e) ? t.delete(e) : t.add(e), v(t);
|
|
121
|
+
}, g = (e) => {
|
|
122
|
+
y(!1), v(/* @__PURE__ */ new Set()), f(null), e.href && d ? d(e.href, e) : e.onClick && e.onClick();
|
|
123
|
+
}, V = (e = !1) => {
|
|
124
|
+
const t = "px-3 py-2 text-sm font-medium transition-colors duration-200 rounded-md flex items-center gap-2";
|
|
125
|
+
switch (M) {
|
|
126
|
+
case "subtle":
|
|
127
|
+
return n(
|
|
128
|
+
t,
|
|
129
|
+
"cursor-pointer",
|
|
130
|
+
e ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-background/60"
|
|
131
|
+
// ← CHANGED
|
|
132
|
+
);
|
|
133
|
+
case "brand":
|
|
134
|
+
return n(
|
|
135
|
+
t,
|
|
136
|
+
"cursor-pointer",
|
|
137
|
+
e ? "bg-primary-foreground/20 text-primary-foreground shadow-sm" : "text-primary-foreground/90 hover:text-primary-foreground hover:bg-primary-foreground/10"
|
|
138
|
+
);
|
|
139
|
+
case "contrast":
|
|
140
|
+
return n(
|
|
141
|
+
t,
|
|
142
|
+
"cursor-pointer",
|
|
143
|
+
e ? "bg-muted text-foreground shadow-sm" : "text-muted-background/50 dark:text-muted-foreground hover:text-foreground hover:bg-muted/50"
|
|
144
|
+
// ← CHANGED
|
|
145
|
+
);
|
|
146
|
+
default:
|
|
147
|
+
return n(
|
|
148
|
+
t,
|
|
149
|
+
"cursor-pointer",
|
|
150
|
+
e ? "bg-muted text-foreground shadow-sm" : "text-foreground hover:text-foreground hover:bg-muted/50"
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
}, B = (e = !1) => n(
|
|
154
|
+
"w-full flex items-center px-3 py-2 text-left transition-colors duration-200 rounded-lg",
|
|
155
|
+
e ? "bg-secondary text-secondary-foreground" : "text-foreground hover:text-foreground hover:bg-muted"
|
|
156
|
+
), R = () => {
|
|
157
|
+
switch (M) {
|
|
158
|
+
case "subtle":
|
|
159
|
+
return "text-muted-foreground hover:text-foreground hover:bg-muted/50";
|
|
160
|
+
case "brand":
|
|
161
|
+
return "text-primary-foreground hover:text-primary-foreground hover:bg-primary-foreground/10";
|
|
162
|
+
case "contrast":
|
|
163
|
+
return "text-foreground hover:text-foreground hover:bg-muted/50";
|
|
164
|
+
default:
|
|
165
|
+
return "text-foreground hover:text-foreground hover:bg-muted/50";
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
return /* @__PURE__ */ l("div", { className: "flex items-center ml-auto", children: [
|
|
169
|
+
/* @__PURE__ */ r("nav", { className: n("hidden md:flex items-center space-x-1", u), ref: b, ...h, children: c.map((e) => {
|
|
170
|
+
const t = e.items && e.items.length > 0, i = w === e.key, k = e.href ? s === e.href : e.isActive;
|
|
171
|
+
return /* @__PURE__ */ l("div", { className: "relative", children: [
|
|
172
|
+
/* @__PURE__ */ l(
|
|
173
|
+
"button",
|
|
174
|
+
{
|
|
175
|
+
type: "button",
|
|
176
|
+
className: n(V(k), e.className),
|
|
177
|
+
onClick: (o) => {
|
|
178
|
+
o.stopPropagation(), t ? f(i ? null : e.key) : (f(null), g(e));
|
|
179
|
+
},
|
|
180
|
+
children: [
|
|
181
|
+
e.icon && /* @__PURE__ */ r(e.icon, { className: "h-4 w-4" }),
|
|
182
|
+
/* @__PURE__ */ r("span", { children: e.label }),
|
|
183
|
+
t && /* @__PURE__ */ r(S, { className: n(
|
|
184
|
+
"h-3 w-3 transition-transform duration-200",
|
|
185
|
+
i && "rotate-180"
|
|
186
|
+
) })
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
),
|
|
190
|
+
t && i && /* @__PURE__ */ r(
|
|
191
|
+
"div",
|
|
192
|
+
{
|
|
193
|
+
className: "absolute top-full left-0 w-48 bg-background border border-border rounded-lg shadow-lg z-50 mt-1",
|
|
194
|
+
onClick: (o) => o.stopPropagation(),
|
|
195
|
+
children: /* @__PURE__ */ r("div", { className: "py-1", children: e.items?.map((o) => {
|
|
196
|
+
const N = o.href ? s === o.href : o.isActive;
|
|
197
|
+
return /* @__PURE__ */ l(
|
|
198
|
+
"button",
|
|
199
|
+
{
|
|
200
|
+
type: "button",
|
|
201
|
+
className: n(
|
|
202
|
+
"w-full px-3 py-2 text-left text-sm transition-colors flex items-center gap-2",
|
|
203
|
+
"hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground focus:outline-none",
|
|
204
|
+
N ? "bg-muted text-foreground font-medium" : "text-foreground"
|
|
205
|
+
),
|
|
206
|
+
onClick: () => {
|
|
207
|
+
f(null), g(o);
|
|
208
|
+
},
|
|
209
|
+
children: [
|
|
210
|
+
o.icon && /* @__PURE__ */ r(o.icon, { className: "h-4 w-4" }),
|
|
211
|
+
/* @__PURE__ */ r("span", { children: o.label }),
|
|
212
|
+
o.badge && /* @__PURE__ */ r("span", { className: "ml-auto text-xs bg-gray-100 text-gray-600 px-1.5 py-0.5 rounded", children: o.badge })
|
|
213
|
+
]
|
|
214
|
+
},
|
|
215
|
+
o.key
|
|
216
|
+
);
|
|
217
|
+
}) })
|
|
218
|
+
}
|
|
219
|
+
)
|
|
220
|
+
] }, e.key);
|
|
221
|
+
}) }),
|
|
222
|
+
/* @__PURE__ */ r(
|
|
223
|
+
X,
|
|
224
|
+
{
|
|
225
|
+
variant: "ghost",
|
|
226
|
+
size: "icon",
|
|
227
|
+
className: n("md:hidden", R()),
|
|
228
|
+
onClick: () => y(!a),
|
|
229
|
+
"aria-label": a ? "Close menu" : "Open menu",
|
|
230
|
+
children: a ? /* @__PURE__ */ r(q, { className: "h-5 w-5" }) : /* @__PURE__ */ r(F, { className: "h-5 w-5" })
|
|
231
|
+
}
|
|
232
|
+
),
|
|
233
|
+
a && /* @__PURE__ */ r("div", { className: "fixed top-16 left-0 right-0 z-40 md:hidden bg-background border-b border-border/40 shadow-lg", children: /* @__PURE__ */ r("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ r("div", { className: "px-4 py-4 space-y-2", children: c.map((e) => {
|
|
234
|
+
const t = e.items && e.items.length > 0, i = z.has(e.key), k = e.href ? s === e.href : e.isActive;
|
|
235
|
+
return /* @__PURE__ */ l("div", { className: "space-y-1", children: [
|
|
236
|
+
/* @__PURE__ */ l(
|
|
237
|
+
"button",
|
|
238
|
+
{
|
|
239
|
+
type: "button",
|
|
240
|
+
className: n(B(k), e.className),
|
|
241
|
+
onClick: () => t ? j(e.key) : g(e),
|
|
242
|
+
children: [
|
|
243
|
+
e.icon && /* @__PURE__ */ r(e.icon, { className: "h-4 w-4 mr-3 flex-shrink-0" }),
|
|
244
|
+
/* @__PURE__ */ r("span", { className: "flex-1 text-sm", children: e.label }),
|
|
245
|
+
e.badge && /* @__PURE__ */ r("span", { className: "text-xs bg-gray-100 text-gray-600 px-1.5 py-0.5 rounded mr-2", children: e.badge }),
|
|
246
|
+
t && /* @__PURE__ */ r(S, { className: n(
|
|
247
|
+
"h-4 w-4 transition-transform duration-200 flex-shrink-0",
|
|
248
|
+
i && "rotate-180"
|
|
249
|
+
) })
|
|
250
|
+
]
|
|
251
|
+
}
|
|
252
|
+
),
|
|
253
|
+
t && i && /* @__PURE__ */ r("div", { className: "ml-6 space-y-1 border-l border-border/30 pl-4", children: e.items?.map((o) => {
|
|
254
|
+
const N = o.href ? s === o.href : o.isActive;
|
|
255
|
+
return /* @__PURE__ */ l(
|
|
256
|
+
"button",
|
|
257
|
+
{
|
|
258
|
+
type: "button",
|
|
259
|
+
className: n(
|
|
260
|
+
"w-full flex items-center px-3 py-2 text-left transition-colors rounded-lg",
|
|
261
|
+
N ? "bg-secondary text-secondary-foreground" : "text-muted-foreground hover:text-foreground hover:bg-muted"
|
|
262
|
+
),
|
|
263
|
+
onClick: () => g(o),
|
|
264
|
+
children: [
|
|
265
|
+
o.icon && /* @__PURE__ */ r(o.icon, { className: "h-3 w-3 mr-3 flex-shrink-0" }),
|
|
266
|
+
/* @__PURE__ */ r("span", { className: "flex-1 text-sm", children: o.label }),
|
|
267
|
+
o.badge && /* @__PURE__ */ r("span", { className: "text-xs bg-gray-100 text-gray-600 px-1.5 py-0.5 rounded", children: o.badge })
|
|
268
|
+
]
|
|
269
|
+
},
|
|
270
|
+
o.key
|
|
271
|
+
);
|
|
272
|
+
}) })
|
|
273
|
+
] }, e.key);
|
|
274
|
+
}) }) }) })
|
|
275
|
+
] });
|
|
276
|
+
});
|
|
277
|
+
D.displayName = "HeaderNav";
|
|
278
|
+
const I = Object.assign(L, {
|
|
279
|
+
Logo: O,
|
|
280
|
+
Nav: D
|
|
281
|
+
});
|
|
282
|
+
export {
|
|
283
|
+
I as Header,
|
|
284
|
+
O as HeaderLogo,
|
|
285
|
+
D as HeaderNav,
|
|
286
|
+
J as containerVariants,
|
|
287
|
+
G as headerVariants
|
|
288
|
+
};
|
|
289
|
+
//# sourceMappingURL=header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.js","sources":["../src/components/sections/header.tsx"],"sourcesContent":["/**\n * Header component with proper responsive behavior and light hover colors\n * @module @bloomneo/uikit\n * @file src/components/sections/header.tsx\n */\n\nimport * as React from 'react';\nimport { forwardRef, createContext, useContext, useState, useEffect } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\nimport { Menu, X, ChevronDown } from 'lucide-react';\nimport type { NavigationItem, Size } from '@/types';\n\n/**\n * Header context for sharing configuration\n */\nconst HeaderContext = createContext<{\n tone: 'clean' | 'subtle' | 'brand' | 'contrast';\n size: Size;\n}>({\n tone: 'clean',\n size: 'xl',\n});\n\n/**\n * Header variants with tone-based semantic colors\n */\nconst headerVariants = cva(\n 'w-full border-b transition-all duration-200 z-40',\n {\n variants: {\n tone: {\n clean: [\n 'bg-background/80 backdrop-blur-sm border-border/40 supports-[backdrop-filter]:bg-background/60',\n 'text-foreground'\n ],\n subtle: [\n 'bg-muted/50 backdrop-blur-sm border-border/30',\n 'text-foreground'\n ],\n brand: [\n 'bg-primary border-primary-foreground/20',\n 'text-primary-foreground'\n ],\n contrast: [\n 'bg-zinc-900 border-zinc-700/40',\n 'text-zinc-100'\n ]\n },\n position: {\n sticky: 'sticky top-0',\n fixed: 'fixed top-0 left-0 right-0',\n relative: 'relative'\n }\n },\n defaultVariants: {\n tone: 'clean',\n position: 'sticky'\n }\n }\n);\n\n/**\n * Container variants for responsive sizing\n */\nconst containerVariants = cva(\n 'mx-auto flex items-center justify-between',\n {\n variants: {\n size: {\n sm: 'max-w-2xl h-12 px-4',\n md: 'max-w-4xl h-14 px-4 sm:px-6',\n lg: 'max-w-6xl h-16 px-4 sm:px-6 lg:px-8',\n xl: 'max-w-7xl h-16 px-4 sm:px-6 lg:px-8',\n full: 'max-w-full h-16 px-4 sm:px-6 lg:px-8'\n }\n },\n defaultVariants: {\n size: 'xl'\n }\n }\n);\n\n/**\n * Header component props\n */\nexport interface HeaderProps \n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof headerVariants> {\n /** Visual styling tone */\n tone?: 'clean' | 'subtle' | 'brand' | 'contrast';\n /** Header size (width + height + padding) */\n size?: Size;\n /** Header positioning */\n position?: 'sticky' | 'fixed' | 'relative';\n /** Header content */\n children: React.ReactNode;\n}\n\n/**\n * Main Header component\n */\nconst HeaderComponent = forwardRef<HTMLElement, HeaderProps>(({ \n className,\n tone = 'clean',\n size = 'xl',\n position = 'sticky',\n children,\n ...props \n}, ref) => {\n return (\n <HeaderContext.Provider value={{ tone, size }}>\n <header\n ref={ref}\n className={cn(headerVariants({ tone, position }), className)}\n {...props}\n >\n <div className={cn(containerVariants({ size }))}>\n {children}\n </div>\n </header>\n </HeaderContext.Provider>\n );\n});\n\nHeaderComponent.displayName = 'Header';\n\n/**\n * Header Logo section props\n */\nexport interface HeaderLogoProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Logo content */\n children: React.ReactNode;\n}\n\n/**\n * Header Logo section (always on the left)\n */\nconst HeaderLogo = forwardRef<HTMLDivElement, HeaderLogoProps>(({ \n className, \n children, \n ...props \n}, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center flex-shrink-0', className)}\n {...props}\n >\n {children}\n </div>\n));\n\nHeaderLogo.displayName = 'HeaderLogo';\n\n/**\n * Header Navigation props\n */\nexport interface HeaderNavProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Navigation items */\n navigation?: NavigationItem[];\n /** Current path for active states */\n currentPath?: string;\n /** Navigation handler */\n onNavigate?: (href: string, item: NavigationItem) => void;\n}\n\n/**\n * Header Navigation with proper responsive behavior\n */\nconst HeaderNav = forwardRef<HTMLDivElement, HeaderNavProps>(({ \n navigation = [],\n currentPath = '',\n onNavigate,\n className, \n ...props \n}, ref) => {\n const [mobileOpen, setMobileOpen] = useState(false);\n const [expandedMobileItems, setExpandedMobileItems] = useState(new Set<string>());\n const [openDropdown, setOpenDropdown] = useState<string | null>(null);\n const [isMounted, setIsMounted] = useState(false);\n const { tone } = useContext(HeaderContext);\n\n // Ensure component is mounted\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n // Close mobile menu on resize to desktop\n useEffect(() => {\n if (!isMounted) return;\n \n const handleResize = () => {\n if (window.innerWidth >= 768) {\n setMobileOpen(false);\n setExpandedMobileItems(new Set());\n }\n };\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [isMounted]);\n\n // Prevent body scroll when mobile menu is open\n useEffect(() => {\n if (!isMounted) return;\n \n if (mobileOpen) {\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 }, [mobileOpen, isMounted]);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n const handleOutsideClick = () => setOpenDropdown(null);\n \n if (openDropdown !== null) {\n document.addEventListener('click', handleOutsideClick);\n return () => document.removeEventListener('click', handleOutsideClick);\n }\n }, [openDropdown]);\n\n // Handle mobile dropdown toggle\n const toggleMobileDropdown = (key: string) => {\n const newExpanded = new Set(expandedMobileItems);\n if (newExpanded.has(key)) {\n newExpanded.delete(key);\n } else {\n newExpanded.add(key);\n }\n setExpandedMobileItems(newExpanded);\n };\n\n // Handle navigation click\n const handleItemClick = (item: NavigationItem) => {\n setMobileOpen(false);\n setExpandedMobileItems(new Set());\n setOpenDropdown(null);\n \n if (item.href && onNavigate) {\n onNavigate(item.href, item);\n } else if (item.onClick) {\n item.onClick();\n }\n };\n\n // Desktop button styles with light hover colors only\n const getDesktopButtonStyles = (isActive = false) => {\n const baseStyles = 'px-3 py-2 text-sm font-medium transition-colors duration-200 rounded-md flex items-center gap-2';\n \n switch (tone) {\n case 'subtle':\n return cn(\n baseStyles,\n 'cursor-pointer',\n isActive \n ? 'bg-background text-foreground shadow-sm' \n : 'text-muted-foreground hover:text-foreground hover:bg-background/60' // ← CHANGED\n );\n case 'brand':\n return cn(\n baseStyles,\n 'cursor-pointer',\n 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 );\n case 'contrast':\n return cn(\n baseStyles,\n 'cursor-pointer', \n isActive \n ? 'bg-muted text-foreground shadow-sm' \n : 'text-muted-background/50 dark:text-muted-foreground hover:text-foreground hover:bg-muted/50' // ← CHANGED\n );\n default: // clean\n return cn(\n baseStyles,\n 'cursor-pointer',\n isActive \n ? 'bg-muted text-foreground shadow-sm' \n : 'text-foreground hover:text-foreground hover:bg-muted/50'\n );\n}\n };\n\n // Mobile button styles\n const getMobileButtonStyles = (isActive = false) => {\n return cn(\n 'w-full flex items-center px-3 py-2 text-left transition-colors duration-200 rounded-lg',\n isActive \n ? 'bg-secondary text-secondary-foreground' \n : 'text-foreground hover:text-foreground hover:bg-muted'\n );\n };\n\n // Mobile toggle button styles\n const getMobileToggleStyles = () => {\n switch (tone) {\n case 'subtle':\n return 'text-muted-foreground hover:text-foreground hover:bg-muted/50';\n case 'brand':\n return 'text-primary-foreground hover:text-primary-foreground hover:bg-primary-foreground/10';\n case 'contrast':\n return 'text-foreground hover:text-foreground hover:bg-muted/50';\n default: // clean\n return 'text-foreground hover:text-foreground hover:bg-muted/50';\n }\n };\n\n return (\n <div className=\"flex items-center ml-auto\">\n {/* Desktop Navigation - Hidden on mobile, visible on desktop */}\n <nav className={cn('hidden md:flex items-center space-x-1', className)} ref={ref} {...props}>\n {navigation.map((item) => {\n const hasDropdown = item.items && item.items.length > 0;\n const isOpen = openDropdown === item.key;\n const isActive = item.href ? currentPath === item.href : item.isActive;\n\n return (\n <div key={item.key} className=\"relative\">\n <button\n type=\"button\"\n className={cn(getDesktopButtonStyles(isActive), item.className)}\n onClick={(e) => {\n e.stopPropagation();\n if (hasDropdown) {\n setOpenDropdown(isOpen ? null : item.key);\n } else {\n setOpenDropdown(null);\n handleItemClick(item);\n }\n }}\n >\n {item.icon && <item.icon className=\"h-4 w-4\" />}\n <span>{item.label}</span>\n {hasDropdown && (\n <ChevronDown className={cn(\n 'h-3 w-3 transition-transform duration-200',\n isOpen && 'rotate-180'\n )} />\n )}\n </button>\n \n {/* Desktop Dropdown Menu */}\n {hasDropdown && isOpen && (\n <div \n className=\"absolute top-full left-0 w-48 bg-background border border-border rounded-lg shadow-lg z-50 mt-1\"\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"py-1\">\n {item.items?.map((subItem) => {\n const subIsActive = subItem.href ? currentPath === subItem.href : subItem.isActive;\n \n return (\n <button\n key={subItem.key}\n type=\"button\"\n className={cn(\n 'w-full px-3 py-2 text-left text-sm transition-colors flex items-center gap-2',\n 'hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground focus:outline-none',\n subIsActive \n ? 'bg-muted text-foreground font-medium' \n : 'text-foreground'\n )}\n onClick={() => {\n setOpenDropdown(null);\n handleItemClick(subItem);\n }}\n >\n {subItem.icon && <subItem.icon className=\"h-4 w-4\" />}\n <span>{subItem.label}</span>\n {subItem.badge && (\n <span className=\"ml-auto text-xs bg-gray-100 text-gray-600 px-1.5 py-0.5 rounded\">\n {subItem.badge}\n </span>\n )}\n </button>\n );\n })}\n </div>\n </div>\n )}\n </div>\n );\n })}\n </nav>\n \n {/* Mobile Toggle Button - Hidden on desktop, visible on mobile */}\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className={cn('md:hidden', getMobileToggleStyles())}\n onClick={() => setMobileOpen(!mobileOpen)}\n aria-label={mobileOpen ? 'Close menu' : 'Open menu'}\n >\n {mobileOpen ? <X className=\"h-5 w-5\" /> : <Menu className=\"h-5 w-5\" />}\n </Button>\n \n {/* Mobile Navigation Menu - Hidden on desktop, shows on mobile when toggled */}\n {mobileOpen && (\n <div className=\"fixed top-16 left-0 right-0 z-40 md:hidden bg-background border-b border-border/40 shadow-lg\">\n <div className=\"max-h-96 overflow-y-auto\">\n <div className=\"px-4 py-4 space-y-2\">\n {navigation.map((item) => {\n const hasSubItems = item.items && item.items.length > 0;\n const isExpanded = expandedMobileItems.has(item.key);\n const isActive = item.href ? currentPath === item.href : item.isActive;\n\n return (\n <div key={item.key} className=\"space-y-1\">\n <button \n type=\"button\"\n className={cn(getMobileButtonStyles(isActive), item.className)}\n onClick={() => hasSubItems ? toggleMobileDropdown(item.key) : handleItemClick(item)}\n >\n {item.icon && <item.icon className=\"h-4 w-4 mr-3 flex-shrink-0\" />}\n <span className=\"flex-1 text-sm\">{item.label}</span>\n {item.badge && (\n <span className=\"text-xs bg-gray-100 text-gray-600 px-1.5 py-0.5 rounded mr-2\">\n {item.badge}\n </span>\n )}\n {hasSubItems && (\n <ChevronDown className={cn(\n 'h-4 w-4 transition-transform duration-200 flex-shrink-0',\n isExpanded && 'rotate-180'\n )} />\n )}\n </button>\n \n {/* Mobile Submenu */}\n {hasSubItems && isExpanded && (\n <div className=\"ml-6 space-y-1 border-l border-border/30 pl-4\">\n {item.items?.map((subItem) => {\n const subIsActive = subItem.href ? currentPath === subItem.href : subItem.isActive;\n \n return (\n <button\n key={subItem.key}\n type=\"button\"\n className={cn(\n 'w-full flex items-center px-3 py-2 text-left transition-colors rounded-lg',\n subIsActive \n ? 'bg-secondary text-secondary-foreground' \n : 'text-muted-foreground hover:text-foreground hover:bg-muted'\n )}\n onClick={() => handleItemClick(subItem)}\n >\n {subItem.icon && <subItem.icon className=\"h-3 w-3 mr-3 flex-shrink-0\" />}\n <span className=\"flex-1 text-sm\">{subItem.label}</span>\n {subItem.badge && (\n <span className=\"text-xs bg-gray-100 text-gray-600 px-1.5 py-0.5 rounded\">\n {subItem.badge}\n </span>\n )}\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n })}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n});\n\nHeaderNav.displayName = 'HeaderNav';\n\n/**\n * Header with compound components\n */\nconst Header = Object.assign(HeaderComponent, {\n Logo: HeaderLogo,\n Nav: HeaderNav,\n});\n\n/**\n * Export Header with compound components and individual components\n */\nexport { \n Header,\n HeaderLogo,\n HeaderNav,\n headerVariants,\n containerVariants\n};"],"names":["HeaderContext","createContext","headerVariants","cva","containerVariants","HeaderComponent","forwardRef","className","tone","size","position","children","props","ref","jsx","cn","HeaderLogo","HeaderNav","navigation","currentPath","onNavigate","mobileOpen","setMobileOpen","useState","expandedMobileItems","setExpandedMobileItems","openDropdown","setOpenDropdown","isMounted","setIsMounted","useContext","useEffect","handleResize","handleOutsideClick","toggleMobileDropdown","key","newExpanded","handleItemClick","item","getDesktopButtonStyles","isActive","baseStyles","getMobileButtonStyles","getMobileToggleStyles","jsxs","hasDropdown","isOpen","e","ChevronDown","subItem","subIsActive","Button","X","Menu","hasSubItems","isExpanded","Header"],"mappings":"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"}
|
package/dist/hooks.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { B as s, f as u, e as t, u as r, a as o, d as i, g as p, b as B, c } from "./useDataTable-CPiBpEg-.js";
|
|
2
|
+
export {
|
|
3
|
+
s as BREAKPOINTS,
|
|
4
|
+
u as breakpointQuery,
|
|
5
|
+
t as useActiveBreakpoint,
|
|
6
|
+
r as useApi,
|
|
7
|
+
o as useBackendStatus,
|
|
8
|
+
i as useBreakpoint,
|
|
9
|
+
p as useDataTable,
|
|
10
|
+
B as useLocalStorage,
|
|
11
|
+
c as useMediaQuery
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import * as n from "react";
|
|
3
|
+
import { u as k, c as l } from "./index-C0UREtMP.js";
|
|
4
|
+
import { c as F } from "./index-DFZozV_h.js";
|
|
5
|
+
import { u as I } from "./index-DQH6odE9.js";
|
|
6
|
+
import { c as H, R as U, A as $, C as W, a as z } from "./index-dhIqEbxW.js";
|
|
7
|
+
import { P as B, D as G } from "./index-BY7PeRJA.js";
|
|
8
|
+
import { P as T } from "./index-BCjJQGh8.js";
|
|
9
|
+
import { P as K } from "./index-BVRIAMfe.js";
|
|
10
|
+
import { c as j } from "./utils-CwJPJKOE.js";
|
|
11
|
+
var x, S = "HoverCard", [O, fe] = F(S, [
|
|
12
|
+
H
|
|
13
|
+
]), b = H(), [V, w] = O(S), _ = (e) => {
|
|
14
|
+
const {
|
|
15
|
+
__scopeHoverCard: o,
|
|
16
|
+
children: t,
|
|
17
|
+
open: s,
|
|
18
|
+
defaultOpen: i,
|
|
19
|
+
onOpenChange: c,
|
|
20
|
+
openDelay: f = 700,
|
|
21
|
+
closeDelay: v = 300
|
|
22
|
+
} = e, d = b(o), m = n.useRef(0), u = n.useRef(0), C = n.useRef(!1), p = n.useRef(!1), [h, r] = k({
|
|
23
|
+
prop: s,
|
|
24
|
+
defaultProp: i ?? !1,
|
|
25
|
+
onChange: c,
|
|
26
|
+
caller: S
|
|
27
|
+
}), P = n.useCallback(() => {
|
|
28
|
+
clearTimeout(u.current), m.current = window.setTimeout(() => r(!0), f);
|
|
29
|
+
}, [f, r]), L = n.useCallback(() => {
|
|
30
|
+
clearTimeout(m.current), !C.current && !p.current && (u.current = window.setTimeout(() => r(!1), v));
|
|
31
|
+
}, [v, r]), M = n.useCallback(() => r(!1), [r]);
|
|
32
|
+
return n.useEffect(() => () => {
|
|
33
|
+
clearTimeout(m.current), clearTimeout(u.current);
|
|
34
|
+
}, []), /* @__PURE__ */ a(
|
|
35
|
+
V,
|
|
36
|
+
{
|
|
37
|
+
scope: o,
|
|
38
|
+
open: h,
|
|
39
|
+
onOpenChange: r,
|
|
40
|
+
onOpen: P,
|
|
41
|
+
onClose: L,
|
|
42
|
+
onDismiss: M,
|
|
43
|
+
hasSelectionRef: C,
|
|
44
|
+
isPointerDownOnContentRef: p,
|
|
45
|
+
children: /* @__PURE__ */ a(U, { ...d, children: t })
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
};
|
|
49
|
+
_.displayName = S;
|
|
50
|
+
var y = "HoverCardTrigger", N = n.forwardRef(
|
|
51
|
+
(e, o) => {
|
|
52
|
+
const { __scopeHoverCard: t, ...s } = e, i = w(y, t), c = b(t);
|
|
53
|
+
return /* @__PURE__ */ a($, { asChild: !0, ...c, children: /* @__PURE__ */ a(
|
|
54
|
+
K.a,
|
|
55
|
+
{
|
|
56
|
+
"data-state": i.open ? "open" : "closed",
|
|
57
|
+
...s,
|
|
58
|
+
ref: o,
|
|
59
|
+
onPointerEnter: l(e.onPointerEnter, R(i.onOpen)),
|
|
60
|
+
onPointerLeave: l(e.onPointerLeave, R(i.onClose)),
|
|
61
|
+
onFocus: l(e.onFocus, i.onOpen),
|
|
62
|
+
onBlur: l(e.onBlur, i.onClose),
|
|
63
|
+
onTouchStart: l(e.onTouchStart, (f) => f.preventDefault())
|
|
64
|
+
}
|
|
65
|
+
) });
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
N.displayName = y;
|
|
69
|
+
var E = "HoverCardPortal", [q, J] = O(E, {
|
|
70
|
+
forceMount: void 0
|
|
71
|
+
}), D = (e) => {
|
|
72
|
+
const { __scopeHoverCard: o, forceMount: t, children: s, container: i } = e, c = w(E, o);
|
|
73
|
+
return /* @__PURE__ */ a(q, { scope: o, forceMount: t, children: /* @__PURE__ */ a(T, { present: t || c.open, children: /* @__PURE__ */ a(B, { asChild: !0, container: i, children: s }) }) });
|
|
74
|
+
};
|
|
75
|
+
D.displayName = E;
|
|
76
|
+
var g = "HoverCardContent", A = n.forwardRef(
|
|
77
|
+
(e, o) => {
|
|
78
|
+
const t = J(g, e.__scopeHoverCard), { forceMount: s = t.forceMount, ...i } = e, c = w(g, e.__scopeHoverCard);
|
|
79
|
+
return /* @__PURE__ */ a(T, { present: s || c.open, children: /* @__PURE__ */ a(
|
|
80
|
+
Q,
|
|
81
|
+
{
|
|
82
|
+
"data-state": c.open ? "open" : "closed",
|
|
83
|
+
...i,
|
|
84
|
+
onPointerEnter: l(e.onPointerEnter, R(c.onOpen)),
|
|
85
|
+
onPointerLeave: l(e.onPointerLeave, R(c.onClose)),
|
|
86
|
+
ref: o
|
|
87
|
+
}
|
|
88
|
+
) });
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
A.displayName = g;
|
|
92
|
+
var Q = n.forwardRef((e, o) => {
|
|
93
|
+
const {
|
|
94
|
+
__scopeHoverCard: t,
|
|
95
|
+
onEscapeKeyDown: s,
|
|
96
|
+
onPointerDownOutside: i,
|
|
97
|
+
onFocusOutside: c,
|
|
98
|
+
onInteractOutside: f,
|
|
99
|
+
...v
|
|
100
|
+
} = e, d = w(g, t), m = b(t), u = n.useRef(null), C = I(o, u), [p, h] = n.useState(!1);
|
|
101
|
+
return n.useEffect(() => {
|
|
102
|
+
if (p) {
|
|
103
|
+
const r = document.body;
|
|
104
|
+
return x = r.style.userSelect || r.style.webkitUserSelect, r.style.userSelect = "none", r.style.webkitUserSelect = "none", () => {
|
|
105
|
+
r.style.userSelect = x, r.style.webkitUserSelect = x;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}, [p]), n.useEffect(() => {
|
|
109
|
+
if (u.current) {
|
|
110
|
+
const r = () => {
|
|
111
|
+
h(!1), d.isPointerDownOnContentRef.current = !1, setTimeout(() => {
|
|
112
|
+
document.getSelection()?.toString() !== "" && (d.hasSelectionRef.current = !0);
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
return document.addEventListener("pointerup", r), () => {
|
|
116
|
+
document.removeEventListener("pointerup", r), d.hasSelectionRef.current = !1, d.isPointerDownOnContentRef.current = !1;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}, [d.isPointerDownOnContentRef, d.hasSelectionRef]), n.useEffect(() => {
|
|
120
|
+
u.current && Z(u.current).forEach((P) => P.setAttribute("tabindex", "-1"));
|
|
121
|
+
}), /* @__PURE__ */ a(
|
|
122
|
+
G,
|
|
123
|
+
{
|
|
124
|
+
asChild: !0,
|
|
125
|
+
disableOutsidePointerEvents: !1,
|
|
126
|
+
onInteractOutside: f,
|
|
127
|
+
onEscapeKeyDown: s,
|
|
128
|
+
onPointerDownOutside: i,
|
|
129
|
+
onFocusOutside: l(c, (r) => {
|
|
130
|
+
r.preventDefault();
|
|
131
|
+
}),
|
|
132
|
+
onDismiss: d.onDismiss,
|
|
133
|
+
children: /* @__PURE__ */ a(
|
|
134
|
+
W,
|
|
135
|
+
{
|
|
136
|
+
...m,
|
|
137
|
+
...v,
|
|
138
|
+
onPointerDown: l(v.onPointerDown, (r) => {
|
|
139
|
+
r.currentTarget.contains(r.target) && h(!0), d.hasSelectionRef.current = !1, d.isPointerDownOnContentRef.current = !0;
|
|
140
|
+
}),
|
|
141
|
+
ref: C,
|
|
142
|
+
style: {
|
|
143
|
+
...v.style,
|
|
144
|
+
userSelect: p ? "text" : void 0,
|
|
145
|
+
// Safari requires prefix
|
|
146
|
+
WebkitUserSelect: p ? "text" : void 0,
|
|
147
|
+
"--radix-hover-card-content-transform-origin": "var(--radix-popper-transform-origin)",
|
|
148
|
+
"--radix-hover-card-content-available-width": "var(--radix-popper-available-width)",
|
|
149
|
+
"--radix-hover-card-content-available-height": "var(--radix-popper-available-height)",
|
|
150
|
+
"--radix-hover-card-trigger-width": "var(--radix-popper-anchor-width)",
|
|
151
|
+
"--radix-hover-card-trigger-height": "var(--radix-popper-anchor-height)"
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
}
|
|
156
|
+
);
|
|
157
|
+
}), X = "HoverCardArrow", Y = n.forwardRef(
|
|
158
|
+
(e, o) => {
|
|
159
|
+
const { __scopeHoverCard: t, ...s } = e, i = b(t);
|
|
160
|
+
return /* @__PURE__ */ a(z, { ...i, ...s, ref: o });
|
|
161
|
+
}
|
|
162
|
+
);
|
|
163
|
+
Y.displayName = X;
|
|
164
|
+
function R(e) {
|
|
165
|
+
return (o) => o.pointerType === "touch" ? void 0 : e();
|
|
166
|
+
}
|
|
167
|
+
function Z(e) {
|
|
168
|
+
const o = [], t = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, {
|
|
169
|
+
acceptNode: (s) => s.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP
|
|
170
|
+
});
|
|
171
|
+
for (; t.nextNode(); ) o.push(t.currentNode);
|
|
172
|
+
return o;
|
|
173
|
+
}
|
|
174
|
+
var ee = _, re = N, oe = D, te = A;
|
|
175
|
+
function ve({
|
|
176
|
+
...e
|
|
177
|
+
}) {
|
|
178
|
+
return /* @__PURE__ */ a(ee, { "data-slot": "hover-card", ...e });
|
|
179
|
+
}
|
|
180
|
+
function me({
|
|
181
|
+
...e
|
|
182
|
+
}) {
|
|
183
|
+
return /* @__PURE__ */ a(re, { "data-slot": "hover-card-trigger", ...e });
|
|
184
|
+
}
|
|
185
|
+
function Ce({
|
|
186
|
+
className: e,
|
|
187
|
+
align: o = "center",
|
|
188
|
+
sideOffset: t = 4,
|
|
189
|
+
...s
|
|
190
|
+
}) {
|
|
191
|
+
return /* @__PURE__ */ a(oe, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ a(
|
|
192
|
+
te,
|
|
193
|
+
{
|
|
194
|
+
"data-slot": "hover-card-content",
|
|
195
|
+
align: o,
|
|
196
|
+
sideOffset: t,
|
|
197
|
+
className: j(
|
|
198
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
|
|
199
|
+
e
|
|
200
|
+
),
|
|
201
|
+
...s
|
|
202
|
+
}
|
|
203
|
+
) });
|
|
204
|
+
}
|
|
205
|
+
export {
|
|
206
|
+
ve as HoverCard,
|
|
207
|
+
Ce as HoverCardContent,
|
|
208
|
+
me as HoverCardTrigger
|
|
209
|
+
};
|
|
210
|
+
//# sourceMappingURL=hover-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hover-card.js","sources":["../node_modules/@radix-ui/react-hover-card/dist/index.mjs","../src/components/ui/hover-card.tsx"],"sourcesContent":["\"use client\";\n\n// src/hover-card.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { jsx } from \"react/jsx-runtime\";\nvar originalBodyUserSelect;\nvar HOVERCARD_NAME = \"HoverCard\";\nvar [createHoverCardContext, createHoverCardScope] = createContextScope(HOVERCARD_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [HoverCardProvider, useHoverCardContext] = createHoverCardContext(HOVERCARD_NAME);\nvar HoverCard = (props) => {\n const {\n __scopeHoverCard,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300\n } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n const openTimerRef = React.useRef(0);\n const closeTimerRef = React.useRef(0);\n const hasSelectionRef = React.useRef(false);\n const isPointerDownOnContentRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: HOVERCARD_NAME\n });\n const handleOpen = React.useCallback(() => {\n clearTimeout(closeTimerRef.current);\n openTimerRef.current = window.setTimeout(() => setOpen(true), openDelay);\n }, [openDelay, setOpen]);\n const handleClose = React.useCallback(() => {\n clearTimeout(openTimerRef.current);\n if (!hasSelectionRef.current && !isPointerDownOnContentRef.current) {\n closeTimerRef.current = window.setTimeout(() => setOpen(false), closeDelay);\n }\n }, [closeDelay, setOpen]);\n const handleDismiss = React.useCallback(() => setOpen(false), [setOpen]);\n React.useEffect(() => {\n return () => {\n clearTimeout(openTimerRef.current);\n clearTimeout(closeTimerRef.current);\n };\n }, []);\n return /* @__PURE__ */ jsx(\n HoverCardProvider,\n {\n scope: __scopeHoverCard,\n open,\n onOpenChange: setOpen,\n onOpen: handleOpen,\n onClose: handleClose,\n onDismiss: handleDismiss,\n hasSelectionRef,\n isPointerDownOnContentRef,\n children: /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children })\n }\n );\n};\nHoverCard.displayName = HOVERCARD_NAME;\nvar TRIGGER_NAME = \"HoverCardTrigger\";\nvar HoverCardTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeHoverCard, ...triggerProps } = props;\n const context = useHoverCardContext(TRIGGER_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.a,\n {\n \"data-state\": context.open ? \"open\" : \"closed\",\n ...triggerProps,\n ref: forwardedRef,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, excludeTouch(context.onOpen)),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose)),\n onFocus: composeEventHandlers(props.onFocus, context.onOpen),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onTouchStart: composeEventHandlers(props.onTouchStart, (event) => event.preventDefault())\n }\n ) });\n }\n);\nHoverCardTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"HoverCardPortal\";\nvar [PortalProvider, usePortalContext] = createHoverCardContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar HoverCardPortal = (props) => {\n const { __scopeHoverCard, forceMount, children, container } = props;\n const context = useHoverCardContext(PORTAL_NAME, __scopeHoverCard);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeHoverCard, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nHoverCardPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"HoverCardContent\";\nvar HoverCardContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeHoverCard);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useHoverCardContext(CONTENT_NAME, props.__scopeHoverCard);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(\n HoverCardContentImpl,\n {\n \"data-state\": context.open ? \"open\" : \"closed\",\n ...contentProps,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, excludeTouch(context.onOpen)),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose)),\n ref: forwardedRef\n }\n ) });\n }\n);\nHoverCardContent.displayName = CONTENT_NAME;\nvar HoverCardContentImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeHoverCard,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = useHoverCardContext(CONTENT_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [containSelection, setContainSelection] = React.useState(false);\n React.useEffect(() => {\n if (containSelection) {\n const body = document.body;\n originalBodyUserSelect = body.style.userSelect || body.style.webkitUserSelect;\n body.style.userSelect = \"none\";\n body.style.webkitUserSelect = \"none\";\n return () => {\n body.style.userSelect = originalBodyUserSelect;\n body.style.webkitUserSelect = originalBodyUserSelect;\n };\n }\n }, [containSelection]);\n React.useEffect(() => {\n if (ref.current) {\n const handlePointerUp = () => {\n setContainSelection(false);\n context.isPointerDownOnContentRef.current = false;\n setTimeout(() => {\n const hasSelection = document.getSelection()?.toString() !== \"\";\n if (hasSelection) context.hasSelectionRef.current = true;\n });\n };\n document.addEventListener(\"pointerup\", handlePointerUp);\n return () => {\n document.removeEventListener(\"pointerup\", handlePointerUp);\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = false;\n };\n }\n }, [context.isPointerDownOnContentRef, context.hasSelectionRef]);\n React.useEffect(() => {\n if (ref.current) {\n const tabbables = getTabbableNodes(ref.current);\n tabbables.forEach((tabbable) => tabbable.setAttribute(\"tabindex\", \"-1\"));\n }\n });\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: composeEventHandlers(onFocusOutside, (event) => {\n event.preventDefault();\n }),\n onDismiss: context.onDismiss,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...contentProps,\n onPointerDown: composeEventHandlers(contentProps.onPointerDown, (event) => {\n if (event.currentTarget.contains(event.target)) {\n setContainSelection(true);\n }\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = true;\n }),\n ref: composedRefs,\n style: {\n ...contentProps.style,\n userSelect: containSelection ? \"text\" : void 0,\n // Safari requires prefix\n WebkitUserSelect: containSelection ? \"text\" : void 0,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-hover-card-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-hover-card-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-hover-card-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-hover-card-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-hover-card-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n );\n});\nvar ARROW_NAME = \"HoverCardArrow\";\nvar HoverCardArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeHoverCard, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nHoverCardArrow.displayName = ARROW_NAME;\nfunction excludeTouch(eventHandler) {\n return (event) => event.pointerType === \"touch\" ? void 0 : eventHandler();\n}\nfunction getTabbableNodes(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nvar Root2 = HoverCard;\nvar Trigger = HoverCardTrigger;\nvar Portal = HoverCardPortal;\nvar Content2 = HoverCardContent;\nvar Arrow2 = HoverCardArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n HoverCard,\n HoverCardArrow,\n HoverCardContent,\n HoverCardPortal,\n HoverCardTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createHoverCardScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\"\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction HoverCard({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return (\n <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n )\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n"],"names":["originalBodyUserSelect","HOVERCARD_NAME","createHoverCardContext","createHoverCardScope","createContextScope","createPopperScope","usePopperScope","HoverCardProvider","useHoverCardContext","HoverCard","props","__scopeHoverCard","children","openProp","defaultOpen","onOpenChange","openDelay","closeDelay","popperScope","openTimerRef","React","closeTimerRef","hasSelectionRef","isPointerDownOnContentRef","open","setOpen","useControllableState","handleOpen","handleClose","handleDismiss","jsx","PopperPrimitive.Root","TRIGGER_NAME","HoverCardTrigger","forwardedRef","triggerProps","context","PopperPrimitive.Anchor","Primitive","composeEventHandlers","excludeTouch","event","PORTAL_NAME","PortalProvider","usePortalContext","HoverCardPortal","forceMount","container","Presence","PortalPrimitive","CONTENT_NAME","HoverCardContent","portalContext","contentProps","HoverCardContentImpl","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","ref","composedRefs","useComposedRefs","containSelection","setContainSelection","body","handlePointerUp","getTabbableNodes","tabbable","DismissableLayer","PopperPrimitive.Content","ARROW_NAME","HoverCardArrow","arrowProps","PopperPrimitive.Arrow","eventHandler","nodes","walker","node","Root2","Trigger","Portal","Content2","HoverCardPrimitive.Root","HoverCardPrimitive.Trigger","className","align","sideOffset","HoverCardPrimitive.Portal","HoverCardPrimitive.Content","cn"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-0ioNhtNM.js","sources":["../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs"],"sourcesContent":["// packages/react/use-callback-ref/src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useCallbackRef","callback","callbackRef","React","args"],"mappings":";AAEA,SAASA,EAAeC,GAAU;AAChC,QAAMC,IAAcC,EAAM,OAAOF,CAAQ;AACzC,SAAAE,EAAM,UAAU,MAAM;AACpB,IAAAD,EAAY,UAAUD;AAAA,EACxB,CAAC,GACME,EAAM,QAAQ,MAAM,IAAIC,MAASF,EAAY,UAAU,GAAGE,CAAI,GAAG,EAAE;AAC5E;","x_google_ignoreList":[0]}
|