@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popup.js","sources":["../src/components/layouts/popup.tsx"],"sourcesContent":["/**\n * Popup Layout with standardized scheme + tone system\n * @module @bloomneo/uikit\n * @file src/components/layouts/popup.tsx\n */\n\nimport * as React from 'react';\nimport { forwardRef } 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 { X, ChevronLeft, MoreVertical, Settings } from 'lucide-react';\nimport type { Size, PopupLayoutScheme, Tone } from '@/types';\n\n/**\n * Popup layout scheme variants - structural arrangements\n */\nconst popupVariants = cva(\n 'flex flex-col border rounded-lg overflow-hidden',\n {\n variants: {\n scheme: {\n modal: 'shadow-lg',\n drawer: 'shadow-md h-full rounded-none',\n floating: 'shadow-xl',\n },\n tone: {\n clean: 'bg-background border-border',\n subtle: 'bg-muted/30 border-border/50',\n brand: 'bg-primary/5 border-primary/20',\n contrast: 'bg-zinc-900 border-zinc-700 text-zinc-100'\n },\n size: {\n sm: 'w-72 max-h-80', // 288px × 320px - Ultra compact\n md: 'w-80 max-h-96', // 320px × 384px - Standard popup\n lg: 'w-96 max-h-[32rem]', // 384px × 512px - Large popup\n xl: 'w-[28rem] max-h-[36rem]', // 448px × 576px - Extra large\n full: 'min-w-72 max-w-lg max-h-[80vh]' // Responsive\n },\n position: {\n sticky: 'sticky top-0 z-50',\n fixed: 'fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-50',\n relative: 'relative'\n }\n },\n defaultVariants: {\n scheme: 'modal',\n tone: 'clean',\n size: 'md',\n position: 'relative'\n }\n }\n);\n\n/**\n * Header variants based on popup tone\n */\nconst headerVariants = cva(\n 'flex items-center gap-3',\n {\n variants: {\n tone: {\n clean: '',\n subtle: '',\n brand: '',\n contrast: ''\n },\n size: {\n sm: 'p-2',\n md: 'p-3',\n lg: 'p-4',\n xl: 'p-4',\n full: 'p-4'\n }\n },\n defaultVariants: {\n tone: 'clean',\n size: 'md'\n }\n }\n);\n\n/**\n * Content variants based on popup tone and size\n */\nconst contentVariants = cva(\n 'flex-1',\n {\n variants: {\n tone: {\n clean: '',\n subtle: '',\n brand: '',\n contrast: ''\n },\n size: {\n sm: 'p-2',\n md: 'p-3',\n lg: 'p-4',\n xl: 'p-4',\n full: 'p-4'\n },\n scrollable: {\n true: 'overflow-y-auto overflow-x-hidden',\n false: ''\n }\n },\n defaultVariants: {\n tone: 'clean',\n size: 'md',\n scrollable: true\n }\n }\n);\n\n/**\n * Footer variants\n */\nconst footerVariants = cva(\n 'border-t',\n {\n variants: {\n tone: {\n clean: 'border-border',\n subtle: 'border-border/50',\n brand: 'border-primary/20',\n contrast: 'border-zinc-700'\n },\n size: {\n sm: 'p-2',\n md: 'p-3',\n lg: 'p-4',\n xl: 'p-4',\n full: 'p-4'\n }\n },\n defaultVariants: {\n tone: 'clean',\n size: 'md'\n }\n }\n);\n\n/**\n * Button variants for popup actions\n */\nconst buttonVariants = cva(\n 'h-8 w-8 p-0 shrink-0',\n {\n variants: {\n tone: {\n clean: 'text-muted-foreground hover:text-foreground hover:bg-muted',\n subtle: 'text-muted-foreground hover:text-foreground hover:bg-background/50',\n brand: 'text-primary/80 hover:text-primary hover:bg-primary/10',\n contrast: 'text-zinc-400 hover:text-zinc-100 hover:bg-zinc-800'\n }\n },\n defaultVariants: {\n tone: 'clean'\n }\n }\n);\n\n/**\n * Title variants based on size\n */\nconst titleVariants = cva(\n 'font-semibold truncate',\n {\n variants: {\n size: {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n xl: 'text-base',\n full: 'text-base'\n },\n tone: {\n clean: 'text-foreground',\n subtle: 'text-foreground',\n brand: 'text-foreground',\n contrast: 'text-zinc-100'\n }\n },\n defaultVariants: {\n size: 'md',\n tone: 'clean'\n }\n }\n);\n\n/**\n * Subtitle variants\n */\nconst subtitleVariants = cva(\n 'truncate mt-0.5',\n {\n variants: {\n size: {\n sm: 'text-xs',\n md: 'text-xs',\n lg: 'text-sm',\n xl: 'text-sm',\n full: 'text-sm'\n },\n tone: {\n clean: 'text-muted-foreground',\n subtle: 'text-muted-foreground',\n brand: 'text-muted-foreground',\n contrast: 'text-zinc-400'\n }\n },\n defaultVariants: {\n size: 'md',\n tone: 'clean'\n }\n }\n);\n\n/**\n * Popup Layout props with standardized system\n */\nexport interface PopupLayoutProps {\n /** Layout structure/arrangement */\n scheme?: PopupLayoutScheme;\n /** Visual styling tone */\n tone?: Tone;\n /** Popup size */\n size?: Size;\n /** Popup positioning */\n position?: 'sticky' | 'fixed' | 'relative';\n /** Header title text */\n title?: string;\n /** Header subtitle text */\n subtitle?: string;\n /** Logo/icon component */\n logo?: React.ReactNode;\n /** Status badge */\n badge?: React.ReactNode;\n /** Header action buttons */\n headerActions?: React.ReactNode;\n /** Show back button */\n showBack?: boolean;\n /** Show close button */\n showClose?: boolean;\n /** Show header divider */\n showDivider?: boolean;\n /** Back button handler */\n onBack?: () => void;\n /** Close button handler */\n onClose?: () => void;\n /** Footer content */\n footer?: React.ReactNode;\n /** Enable content scrolling */\n scrollable?: boolean;\n /** Additional CSS classes */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n /** Main content */\n children: React.ReactNode;\n}\n\n/**\n * PopupLayout - Compact layout with standardized scheme + tone system\n */\nconst PopupLayoutComponent = forwardRef<HTMLDivElement, PopupLayoutProps>(({\n scheme = 'modal',\n tone = 'clean',\n size = 'md',\n position = 'relative',\n title,\n subtitle,\n logo,\n badge,\n headerActions,\n showBack = false,\n showClose = false,\n showDivider = true,\n onBack,\n onClose,\n footer,\n scrollable = true,\n className,\n style,\n children,\n}, ref) => {\n\n const hasHeader = title || subtitle || logo || badge || headerActions || showBack || showClose;\n\n return (\n <div\n ref={ref}\n className={cn(popupVariants({ scheme, tone, size, position }), className)}\n style={style}\n >\n {/* Header */}\n {hasHeader && (\n <>\n <div className={cn(headerVariants({ tone, size }))}>\n {/* Back Button */}\n {showBack && (\n <Button\n variant=\"ghost\"\n className={cn(buttonVariants({ tone }))}\n onClick={onBack}\n aria-label=\"Go back\"\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </Button>\n )}\n\n {/* Logo */}\n {logo && (\n <div className=\"shrink-0\">\n {logo}\n </div>\n )}\n\n {/* Title Section */}\n <div className=\"flex-1 min-w-0\">\n {title && (\n <div className=\"flex items-center gap-2\">\n <h1 className={cn(titleVariants({ size, tone }))}>\n {title}\n </h1>\n {badge && badge}\n </div>\n )}\n {subtitle && (\n <p className={cn(subtitleVariants({ size, tone }))}>\n {subtitle}\n </p>\n )}\n </div>\n\n {/* Header Actions */}\n {headerActions && (\n <div className=\"shrink-0 flex items-center gap-1\">\n {headerActions}\n </div>\n )}\n\n {/* Close Button */}\n {showClose && (\n <Button\n variant=\"ghost\"\n className={cn(buttonVariants({ tone }))}\n onClick={onClose}\n aria-label=\"Close\"\n >\n <X className=\"h-4 w-4\" />\n </Button>\n )}\n </div>\n\n {showDivider && <Separator className={cn(\n tone === 'subtle' && 'bg-border/50',\n tone === 'brand' && 'bg-primary/20',\n tone === 'contrast' && 'bg-zinc-700'\n )} />}\n </>\n )}\n\n {/* Content */}\n <div\n className={cn(\n contentVariants({ tone, size, scrollable }),\n !hasHeader && headerVariants({ tone, size })\n )}\n >\n {children}\n </div>\n\n {/* Footer */}\n {footer && (\n <>\n <Separator className={cn(\n tone === 'subtle' && 'bg-border/50',\n tone === 'brand' && 'bg-primary/20',\n tone === 'contrast' && 'bg-zinc-700'\n )} />\n <div className={cn(footerVariants({ tone, size }))}>\n {footer}\n </div>\n </>\n )}\n </div>\n );\n});\n\nPopupLayoutComponent.displayName = 'PopupLayout';\n\n/**\n * PopupHeader - Standalone header component\n */\nexport interface PopupHeaderProps {\n tone?: Tone;\n size?: Size;\n title?: string;\n subtitle?: string;\n logo?: React.ReactNode;\n badge?: React.ReactNode;\n actions?: React.ReactNode;\n showBack?: boolean;\n showClose?: boolean;\n onBack?: () => void;\n onClose?: () => void;\n className?: string;\n}\n\nconst PopupHeader = forwardRef<HTMLDivElement, PopupHeaderProps>(({\n tone = 'clean',\n size = 'md',\n title,\n subtitle,\n logo,\n badge,\n actions,\n showBack = false,\n showClose = false,\n onBack,\n onClose,\n className,\n}, ref) => {\n return (\n <div ref={ref} className={cn(headerVariants({ tone, size }), className)}>\n {showBack && (\n <Button variant=\"ghost\" className={cn(buttonVariants({ tone }))} onClick={onBack}>\n <ChevronLeft className=\"h-4 w-4\" />\n </Button>\n )}\n\n {logo && <div className=\"shrink-0\">{logo}</div>}\n\n <div className=\"flex-1 min-w-0\">\n {title && (\n <div className=\"flex items-center gap-2\">\n <h1 className={cn(titleVariants({ size, tone }))}>{title}</h1>\n {badge && badge}\n </div>\n )}\n {subtitle && (\n <p className={cn(subtitleVariants({ size, tone }))}>{subtitle}</p>\n )}\n </div>\n\n {actions && <div className=\"shrink-0\">{actions}</div>}\n\n {showClose && (\n <Button variant=\"ghost\" className={cn(buttonVariants({ tone }))} onClick={onClose}>\n <X className=\"h-4 w-4\" />\n </Button>\n )}\n </div>\n );\n});\n\nPopupHeader.displayName = 'PopupHeader';\n\n/**\n * PopupContent - Scrollable content container\n */\nexport interface PopupContentProps {\n tone?: Tone;\n size?: Size;\n scrollable?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nconst PopupContent = forwardRef<HTMLDivElement, PopupContentProps>(({\n tone = 'clean',\n size = 'md',\n scrollable = true,\n className,\n children,\n}, ref) => {\n return (\n <div\n ref={ref}\n className={cn(contentVariants({ tone, size, scrollable }), className)}\n >\n {children}\n </div>\n );\n});\n\nPopupContent.displayName = 'PopupContent';\n\n/**\n * PopupFooter - Footer actions container\n */\nexport interface PopupFooterProps {\n tone?: Tone;\n size?: Size;\n actions?: React.ReactNode;\n className?: string;\n children?: React.ReactNode;\n}\n\nconst PopupFooter = forwardRef<HTMLDivElement, PopupFooterProps>(({\n tone = 'clean',\n size = 'md',\n actions,\n className,\n children,\n}, ref) => {\n return (\n <div ref={ref} className={cn(footerVariants({ tone, size }), className)}>\n {actions || children}\n </div>\n );\n});\n\nPopupFooter.displayName = 'PopupFooter';\n\n/**\n * PopupLayout with compound components\n */\nconst PopupLayout = Object.assign(PopupLayoutComponent, {\n Header: PopupHeader,\n Content: PopupContent,\n Footer: PopupFooter,\n});\n\nexport { \n PopupLayout,\n PopupHeader,\n PopupContent,\n PopupFooter\n};"],"names":["popupVariants","cva","headerVariants","contentVariants","footerVariants","buttonVariants","titleVariants","subtitleVariants","PopupLayoutComponent","forwardRef","scheme","tone","size","position","title","subtitle","logo","badge","headerActions","showBack","showClose","showDivider","onBack","onClose","footer","scrollable","className","style","children","ref","hasHeader","jsxs","cn","Fragment","jsx","Button","ChevronLeft","X","Separator","PopupHeader","actions","PopupContent","PopupFooter","PopupLayout"],"mappings":"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"}
|
package/dist/progress.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import * as m from "react";
|
|
3
|
+
import { c as $ } from "./index-DFZozV_h.js";
|
|
4
|
+
import { P as v } from "./index-BVRIAMfe.js";
|
|
5
|
+
import { c as I } from "./utils-CwJPJKOE.js";
|
|
6
|
+
var u = "Progress", d = 100, [y, O] = $(u), [R, _] = y(u), f = m.forwardRef(
|
|
7
|
+
(r, e) => {
|
|
8
|
+
const {
|
|
9
|
+
__scopeProgress: n,
|
|
10
|
+
value: o = null,
|
|
11
|
+
max: a,
|
|
12
|
+
getValueLabel: N = w,
|
|
13
|
+
...b
|
|
14
|
+
} = r;
|
|
15
|
+
(a || a === 0) && !p(a) && console.error(E(`${a}`, "Progress"));
|
|
16
|
+
const t = p(a) ? a : d;
|
|
17
|
+
o !== null && !c(o, t) && console.error(M(`${o}`, "Progress"));
|
|
18
|
+
const s = c(o, t) ? o : null, h = l(s) ? N(s, t) : void 0;
|
|
19
|
+
return /* @__PURE__ */ i(R, { scope: n, value: s, max: t, children: /* @__PURE__ */ i(
|
|
20
|
+
v.div,
|
|
21
|
+
{
|
|
22
|
+
"aria-valuemax": t,
|
|
23
|
+
"aria-valuemin": 0,
|
|
24
|
+
"aria-valuenow": l(s) ? s : void 0,
|
|
25
|
+
"aria-valuetext": h,
|
|
26
|
+
role: "progressbar",
|
|
27
|
+
"data-state": x(s, t),
|
|
28
|
+
"data-value": s ?? void 0,
|
|
29
|
+
"data-max": t,
|
|
30
|
+
...b,
|
|
31
|
+
ref: e
|
|
32
|
+
}
|
|
33
|
+
) });
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
f.displayName = u;
|
|
37
|
+
var g = "ProgressIndicator", P = m.forwardRef(
|
|
38
|
+
(r, e) => {
|
|
39
|
+
const { __scopeProgress: n, ...o } = r, a = _(g, n);
|
|
40
|
+
return /* @__PURE__ */ i(
|
|
41
|
+
v.div,
|
|
42
|
+
{
|
|
43
|
+
"data-state": x(a.value, a.max),
|
|
44
|
+
"data-value": a.value ?? void 0,
|
|
45
|
+
"data-max": a.max,
|
|
46
|
+
...o,
|
|
47
|
+
ref: e
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
P.displayName = g;
|
|
53
|
+
function w(r, e) {
|
|
54
|
+
return `${Math.round(r / e * 100)}%`;
|
|
55
|
+
}
|
|
56
|
+
function x(r, e) {
|
|
57
|
+
return r == null ? "indeterminate" : r === e ? "complete" : "loading";
|
|
58
|
+
}
|
|
59
|
+
function l(r) {
|
|
60
|
+
return typeof r == "number";
|
|
61
|
+
}
|
|
62
|
+
function p(r) {
|
|
63
|
+
return l(r) && !isNaN(r) && r > 0;
|
|
64
|
+
}
|
|
65
|
+
function c(r, e) {
|
|
66
|
+
return l(r) && !isNaN(r) && r <= e && r >= 0;
|
|
67
|
+
}
|
|
68
|
+
function E(r, e) {
|
|
69
|
+
return `Invalid prop \`max\` of value \`${r}\` supplied to \`${e}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${d}\`.`;
|
|
70
|
+
}
|
|
71
|
+
function M(r, e) {
|
|
72
|
+
return `Invalid prop \`value\` of value \`${r}\` supplied to \`${e}\`. The \`value\` prop must be:
|
|
73
|
+
- a positive number
|
|
74
|
+
- less than the value passed to \`max\` (or ${d} if no \`max\` prop is set)
|
|
75
|
+
- \`null\` or \`undefined\` if the progress is indeterminate.
|
|
76
|
+
|
|
77
|
+
Defaulting to \`null\`.`;
|
|
78
|
+
}
|
|
79
|
+
var V = f, A = P;
|
|
80
|
+
function T({
|
|
81
|
+
className: r,
|
|
82
|
+
value: e,
|
|
83
|
+
...n
|
|
84
|
+
}) {
|
|
85
|
+
return /* @__PURE__ */ i(
|
|
86
|
+
V,
|
|
87
|
+
{
|
|
88
|
+
"data-slot": "progress",
|
|
89
|
+
className: I(
|
|
90
|
+
"bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",
|
|
91
|
+
r
|
|
92
|
+
),
|
|
93
|
+
...n,
|
|
94
|
+
children: /* @__PURE__ */ i(
|
|
95
|
+
A,
|
|
96
|
+
{
|
|
97
|
+
"data-slot": "progress-indicator",
|
|
98
|
+
className: "bg-primary h-full w-full flex-1 transition-all",
|
|
99
|
+
style: { transform: `translateX(-${100 - (e || 0)}%)` }
|
|
100
|
+
}
|
|
101
|
+
)
|
|
102
|
+
}
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
export {
|
|
106
|
+
T as Progress
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sources":["../node_modules/@radix-ui/react-progress/dist/index.mjs","../src/components/ui/progress.tsx"],"sourcesContent":["\"use client\";\n\n// src/progress.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PROGRESS_NAME = \"Progress\";\nvar DEFAULT_MAX = 100;\nvar [createProgressContext, createProgressScope] = createContextScope(PROGRESS_NAME);\nvar [ProgressProvider, useProgressContext] = createProgressContext(PROGRESS_NAME);\nvar Progress = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeProgress,\n value: valueProp = null,\n max: maxProp,\n getValueLabel = defaultGetValueLabel,\n ...progressProps\n } = props;\n if ((maxProp || maxProp === 0) && !isValidMaxNumber(maxProp)) {\n console.error(getInvalidMaxError(`${maxProp}`, \"Progress\"));\n }\n const max = isValidMaxNumber(maxProp) ? maxProp : DEFAULT_MAX;\n if (valueProp !== null && !isValidValueNumber(valueProp, max)) {\n console.error(getInvalidValueError(`${valueProp}`, \"Progress\"));\n }\n const value = isValidValueNumber(valueProp, max) ? valueProp : null;\n const valueLabel = isNumber(value) ? getValueLabel(value, max) : void 0;\n return /* @__PURE__ */ jsx(ProgressProvider, { scope: __scopeProgress, value, max, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-valuemax\": max,\n \"aria-valuemin\": 0,\n \"aria-valuenow\": isNumber(value) ? value : void 0,\n \"aria-valuetext\": valueLabel,\n role: \"progressbar\",\n \"data-state\": getProgressState(value, max),\n \"data-value\": value ?? void 0,\n \"data-max\": max,\n ...progressProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nProgress.displayName = PROGRESS_NAME;\nvar INDICATOR_NAME = \"ProgressIndicator\";\nvar ProgressIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeProgress, ...indicatorProps } = props;\n const context = useProgressContext(INDICATOR_NAME, __scopeProgress);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getProgressState(context.value, context.max),\n \"data-value\": context.value ?? void 0,\n \"data-max\": context.max,\n ...indicatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nProgressIndicator.displayName = INDICATOR_NAME;\nfunction defaultGetValueLabel(value, max) {\n return `${Math.round(value / max * 100)}%`;\n}\nfunction getProgressState(value, maxValue) {\n return value == null ? \"indeterminate\" : value === maxValue ? \"complete\" : \"loading\";\n}\nfunction isNumber(value) {\n return typeof value === \"number\";\n}\nfunction isValidMaxNumber(max) {\n return isNumber(max) && !isNaN(max) && max > 0;\n}\nfunction isValidValueNumber(value, max) {\n return isNumber(value) && !isNaN(value) && value <= max && value >= 0;\n}\nfunction getInvalidMaxError(propValue, componentName) {\n return `Invalid prop \\`max\\` of value \\`${propValue}\\` supplied to \\`${componentName}\\`. Only numbers greater than 0 are valid max values. Defaulting to \\`${DEFAULT_MAX}\\`.`;\n}\nfunction getInvalidValueError(propValue, componentName) {\n return `Invalid prop \\`value\\` of value \\`${propValue}\\` supplied to \\`${componentName}\\`. The \\`value\\` prop must be:\n - a positive number\n - less than the value passed to \\`max\\` (or ${DEFAULT_MAX} if no \\`max\\` prop is set)\n - \\`null\\` or \\`undefined\\` if the progress is indeterminate.\n\nDefaulting to \\`null\\`.`;\n}\nvar Root = Progress;\nvar Indicator = ProgressIndicator;\nexport {\n Indicator,\n Progress,\n ProgressIndicator,\n Root,\n createProgressScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Progress({\n className,\n value,\n ...props\n}: React.ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n \"bg-primary/20 relative h-2 w-full overflow-hidden rounded-full\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"bg-primary h-full w-full flex-1 transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress }\n"],"names":["PROGRESS_NAME","DEFAULT_MAX","createProgressContext","createProgressScope","createContextScope","ProgressProvider","useProgressContext","Progress","React","props","forwardedRef","__scopeProgress","valueProp","maxProp","getValueLabel","defaultGetValueLabel","progressProps","isValidMaxNumber","getInvalidMaxError","max","isValidValueNumber","getInvalidValueError","value","valueLabel","isNumber","jsx","Primitive","getProgressState","INDICATOR_NAME","ProgressIndicator","indicatorProps","context","maxValue","propValue","componentName","Root","Indicator","className","ProgressPrimitive.Root","cn","ProgressPrimitive.Indicator"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { jsx as i, jsxs as B } from "react/jsx-runtime";
|
|
2
|
+
import * as s from "react";
|
|
3
|
+
import { u as K, c as C } from "./index-C0UREtMP.js";
|
|
4
|
+
import { u as w } from "./index-DQH6odE9.js";
|
|
5
|
+
import { c as k } from "./index-DFZozV_h.js";
|
|
6
|
+
import { P as g } from "./index-BVRIAMfe.js";
|
|
7
|
+
import { c as P, R as T, I as U } from "./index-DFi6WydO.js";
|
|
8
|
+
import { u as V } from "./index-1QHKgw6D.js";
|
|
9
|
+
import { u as j } from "./index-BGQepRFJ.js";
|
|
10
|
+
import { u as z } from "./index-BZPx6jYI.js";
|
|
11
|
+
import { P as H } from "./index-BCjJQGh8.js";
|
|
12
|
+
import { c as E } from "./utils-CwJPJKOE.js";
|
|
13
|
+
import { C as $ } from "./circle-DHOdTDQh.js";
|
|
14
|
+
var I = "Radio", [W, _] = k(I), [X, Y] = W(I), G = s.forwardRef(
|
|
15
|
+
(r, t) => {
|
|
16
|
+
const {
|
|
17
|
+
__scopeRadio: o,
|
|
18
|
+
name: d,
|
|
19
|
+
checked: e = !1,
|
|
20
|
+
required: a,
|
|
21
|
+
disabled: n,
|
|
22
|
+
value: p = "on",
|
|
23
|
+
onCheck: f,
|
|
24
|
+
form: m,
|
|
25
|
+
...v
|
|
26
|
+
} = r, [l, R] = s.useState(null), c = w(t, (h) => R(h)), u = s.useRef(!1), b = l ? m || !!l.closest("form") : !0;
|
|
27
|
+
return /* @__PURE__ */ B(X, { scope: o, checked: e, disabled: n, children: [
|
|
28
|
+
/* @__PURE__ */ i(
|
|
29
|
+
g.button,
|
|
30
|
+
{
|
|
31
|
+
type: "button",
|
|
32
|
+
role: "radio",
|
|
33
|
+
"aria-checked": e,
|
|
34
|
+
"data-state": A(e),
|
|
35
|
+
"data-disabled": n ? "" : void 0,
|
|
36
|
+
disabled: n,
|
|
37
|
+
value: p,
|
|
38
|
+
...v,
|
|
39
|
+
ref: c,
|
|
40
|
+
onClick: C(r.onClick, (h) => {
|
|
41
|
+
e || f?.(), b && (u.current = h.isPropagationStopped(), u.current || h.stopPropagation());
|
|
42
|
+
})
|
|
43
|
+
}
|
|
44
|
+
),
|
|
45
|
+
b && /* @__PURE__ */ i(
|
|
46
|
+
x,
|
|
47
|
+
{
|
|
48
|
+
control: l,
|
|
49
|
+
bubbles: !u.current,
|
|
50
|
+
name: d,
|
|
51
|
+
value: p,
|
|
52
|
+
checked: e,
|
|
53
|
+
required: a,
|
|
54
|
+
disabled: n,
|
|
55
|
+
form: m,
|
|
56
|
+
style: { transform: "translateX(-100%)" }
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
] });
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
G.displayName = I;
|
|
63
|
+
var N = "RadioIndicator", S = s.forwardRef(
|
|
64
|
+
(r, t) => {
|
|
65
|
+
const { __scopeRadio: o, forceMount: d, ...e } = r, a = Y(N, o);
|
|
66
|
+
return /* @__PURE__ */ i(H, { present: d || a.checked, children: /* @__PURE__ */ i(
|
|
67
|
+
g.span,
|
|
68
|
+
{
|
|
69
|
+
"data-state": A(a.checked),
|
|
70
|
+
"data-disabled": a.disabled ? "" : void 0,
|
|
71
|
+
...e,
|
|
72
|
+
ref: t
|
|
73
|
+
}
|
|
74
|
+
) });
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
S.displayName = N;
|
|
78
|
+
var J = "RadioBubbleInput", x = s.forwardRef(
|
|
79
|
+
({
|
|
80
|
+
__scopeRadio: r,
|
|
81
|
+
control: t,
|
|
82
|
+
checked: o,
|
|
83
|
+
bubbles: d = !0,
|
|
84
|
+
...e
|
|
85
|
+
}, a) => {
|
|
86
|
+
const n = s.useRef(null), p = w(n, a), f = z(o), m = j(t);
|
|
87
|
+
return s.useEffect(() => {
|
|
88
|
+
const v = n.current;
|
|
89
|
+
if (!v) return;
|
|
90
|
+
const l = window.HTMLInputElement.prototype, c = Object.getOwnPropertyDescriptor(
|
|
91
|
+
l,
|
|
92
|
+
"checked"
|
|
93
|
+
).set;
|
|
94
|
+
if (f !== o && c) {
|
|
95
|
+
const u = new Event("click", { bubbles: d });
|
|
96
|
+
c.call(v, o), v.dispatchEvent(u);
|
|
97
|
+
}
|
|
98
|
+
}, [f, o, d]), /* @__PURE__ */ i(
|
|
99
|
+
g.input,
|
|
100
|
+
{
|
|
101
|
+
type: "radio",
|
|
102
|
+
"aria-hidden": !0,
|
|
103
|
+
defaultChecked: o,
|
|
104
|
+
...e,
|
|
105
|
+
tabIndex: -1,
|
|
106
|
+
ref: p,
|
|
107
|
+
style: {
|
|
108
|
+
...e.style,
|
|
109
|
+
...m,
|
|
110
|
+
position: "absolute",
|
|
111
|
+
pointerEvents: "none",
|
|
112
|
+
opacity: 0,
|
|
113
|
+
margin: 0
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
);
|
|
119
|
+
x.displayName = J;
|
|
120
|
+
function A(r) {
|
|
121
|
+
return r ? "checked" : "unchecked";
|
|
122
|
+
}
|
|
123
|
+
var Q = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"], y = "RadioGroup", [Z, he] = k(y, [
|
|
124
|
+
P,
|
|
125
|
+
_
|
|
126
|
+
]), D = P(), M = _(), [ee, oe] = Z(y), O = s.forwardRef(
|
|
127
|
+
(r, t) => {
|
|
128
|
+
const {
|
|
129
|
+
__scopeRadioGroup: o,
|
|
130
|
+
name: d,
|
|
131
|
+
defaultValue: e,
|
|
132
|
+
value: a,
|
|
133
|
+
required: n = !1,
|
|
134
|
+
disabled: p = !1,
|
|
135
|
+
orientation: f,
|
|
136
|
+
dir: m,
|
|
137
|
+
loop: v = !0,
|
|
138
|
+
onValueChange: l,
|
|
139
|
+
...R
|
|
140
|
+
} = r, c = D(o), u = V(m), [b, h] = K({
|
|
141
|
+
prop: a,
|
|
142
|
+
defaultProp: e ?? null,
|
|
143
|
+
onChange: l,
|
|
144
|
+
caller: y
|
|
145
|
+
});
|
|
146
|
+
return /* @__PURE__ */ i(
|
|
147
|
+
ee,
|
|
148
|
+
{
|
|
149
|
+
scope: o,
|
|
150
|
+
name: d,
|
|
151
|
+
required: n,
|
|
152
|
+
disabled: p,
|
|
153
|
+
value: b,
|
|
154
|
+
onValueChange: h,
|
|
155
|
+
children: /* @__PURE__ */ i(
|
|
156
|
+
T,
|
|
157
|
+
{
|
|
158
|
+
asChild: !0,
|
|
159
|
+
...c,
|
|
160
|
+
orientation: f,
|
|
161
|
+
dir: u,
|
|
162
|
+
loop: v,
|
|
163
|
+
children: /* @__PURE__ */ i(
|
|
164
|
+
g.div,
|
|
165
|
+
{
|
|
166
|
+
role: "radiogroup",
|
|
167
|
+
"aria-required": n,
|
|
168
|
+
"aria-orientation": f,
|
|
169
|
+
"data-disabled": p ? "" : void 0,
|
|
170
|
+
dir: u,
|
|
171
|
+
...R,
|
|
172
|
+
ref: t
|
|
173
|
+
}
|
|
174
|
+
)
|
|
175
|
+
}
|
|
176
|
+
)
|
|
177
|
+
}
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
);
|
|
181
|
+
O.displayName = y;
|
|
182
|
+
var F = "RadioGroupItem", L = s.forwardRef(
|
|
183
|
+
(r, t) => {
|
|
184
|
+
const { __scopeRadioGroup: o, disabled: d, ...e } = r, a = oe(F, o), n = a.disabled || d, p = D(o), f = M(o), m = s.useRef(null), v = w(t, m), l = a.value === e.value, R = s.useRef(!1);
|
|
185
|
+
return s.useEffect(() => {
|
|
186
|
+
const c = (b) => {
|
|
187
|
+
Q.includes(b.key) && (R.current = !0);
|
|
188
|
+
}, u = () => R.current = !1;
|
|
189
|
+
return document.addEventListener("keydown", c), document.addEventListener("keyup", u), () => {
|
|
190
|
+
document.removeEventListener("keydown", c), document.removeEventListener("keyup", u);
|
|
191
|
+
};
|
|
192
|
+
}, []), /* @__PURE__ */ i(
|
|
193
|
+
U,
|
|
194
|
+
{
|
|
195
|
+
asChild: !0,
|
|
196
|
+
...p,
|
|
197
|
+
focusable: !n,
|
|
198
|
+
active: l,
|
|
199
|
+
children: /* @__PURE__ */ i(
|
|
200
|
+
G,
|
|
201
|
+
{
|
|
202
|
+
disabled: n,
|
|
203
|
+
required: a.required,
|
|
204
|
+
checked: l,
|
|
205
|
+
...f,
|
|
206
|
+
...e,
|
|
207
|
+
name: a.name,
|
|
208
|
+
ref: v,
|
|
209
|
+
onCheck: () => a.onValueChange(e.value),
|
|
210
|
+
onKeyDown: C((c) => {
|
|
211
|
+
c.key === "Enter" && c.preventDefault();
|
|
212
|
+
}),
|
|
213
|
+
onFocus: C(e.onFocus, () => {
|
|
214
|
+
R.current && m.current?.click();
|
|
215
|
+
})
|
|
216
|
+
}
|
|
217
|
+
)
|
|
218
|
+
}
|
|
219
|
+
);
|
|
220
|
+
}
|
|
221
|
+
);
|
|
222
|
+
L.displayName = F;
|
|
223
|
+
var re = "RadioGroupIndicator", q = s.forwardRef(
|
|
224
|
+
(r, t) => {
|
|
225
|
+
const { __scopeRadioGroup: o, ...d } = r, e = M(o);
|
|
226
|
+
return /* @__PURE__ */ i(S, { ...e, ...d, ref: t });
|
|
227
|
+
}
|
|
228
|
+
);
|
|
229
|
+
q.displayName = re;
|
|
230
|
+
var te = O, ae = L, ie = q;
|
|
231
|
+
function ge({
|
|
232
|
+
className: r,
|
|
233
|
+
...t
|
|
234
|
+
}) {
|
|
235
|
+
return /* @__PURE__ */ i(
|
|
236
|
+
te,
|
|
237
|
+
{
|
|
238
|
+
"data-slot": "radio-group",
|
|
239
|
+
className: E("grid gap-3", r),
|
|
240
|
+
...t
|
|
241
|
+
}
|
|
242
|
+
);
|
|
243
|
+
}
|
|
244
|
+
function ye({
|
|
245
|
+
className: r,
|
|
246
|
+
...t
|
|
247
|
+
}) {
|
|
248
|
+
return /* @__PURE__ */ i(
|
|
249
|
+
ae,
|
|
250
|
+
{
|
|
251
|
+
"data-slot": "radio-group-item",
|
|
252
|
+
className: E(
|
|
253
|
+
"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
|
|
254
|
+
r
|
|
255
|
+
),
|
|
256
|
+
...t,
|
|
257
|
+
children: /* @__PURE__ */ i(
|
|
258
|
+
ie,
|
|
259
|
+
{
|
|
260
|
+
"data-slot": "radio-group-indicator",
|
|
261
|
+
className: "relative flex items-center justify-center",
|
|
262
|
+
children: /* @__PURE__ */ i($, { className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" })
|
|
263
|
+
}
|
|
264
|
+
)
|
|
265
|
+
}
|
|
266
|
+
);
|
|
267
|
+
}
|
|
268
|
+
export {
|
|
269
|
+
ge as RadioGroup,
|
|
270
|
+
ye as RadioGroupItem
|
|
271
|
+
};
|
|
272
|
+
//# sourceMappingURL=radio-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-group.js","sources":["../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../src/components/ui/radio-group.tsx"],"sourcesContent":["\"use client\";\n\n// src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// src/radio.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = \"on\",\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n return /* @__PURE__ */ jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n RadioBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = React.forwardRef(\n ({\n __scopeRadio,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// src/radio-group.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange,\n caller: RADIO_GROUP_NAME\n });\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: forwardedRef\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !isDisabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n Radio,\n {\n disabled: isDisabled,\n required: context.required,\n checked,\n ...radioScope,\n ...itemProps,\n name: context.name,\n ref: composedRefs,\n onCheck: () => context.onValueChange(itemProps.value),\n onKeyDown: composeEventHandlers2((event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(itemProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })\n }\n )\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nvar Root2 = RadioGroup;\nvar Item2 = RadioGroupItem;\nvar Indicator = RadioGroupIndicator;\nexport {\n Indicator,\n Item2 as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n Root2 as Root,\n createRadioGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { CircleIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n"],"names":["RADIO_NAME","createRadioContext","createRadioScope","createContextScope","RadioProvider","useRadioContext","Radio","React","props","forwardedRef","__scopeRadio","name","checked","required","disabled","value","onCheck","form","radioProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","jsxs","jsx","Primitive","getState","composeEventHandlers","event","RadioBubbleInput","INDICATOR_NAME","RadioIndicator","forceMount","indicatorProps","context","Presence","BUBBLE_INPUT_NAME","control","bubbles","ref","prevChecked","usePrevious","controlSize","useSize","input","inputProto","setChecked","ARROW_KEYS","RADIO_GROUP_NAME","createRadioGroupContext","createRadioGroupScope","createContextScope2","createRovingFocusGroupScope","useRovingFocusGroupScope","useRadioScope","RadioGroupProvider","useRadioGroupContext","RadioGroup","React2","__scopeRadioGroup","defaultValue","valueProp","orientation","dir","loop","onValueChange","groupProps","rovingFocusGroupScope","direction","useDirection","setValue","useControllableState","jsx2","RovingFocusGroup.Root","Primitive2","ITEM_NAME","RadioGroupItem","itemProps","isDisabled","radioScope","useComposedRefs2","isArrowKeyPressedRef","handleKeyDown","handleKeyUp","RovingFocusGroup.Item","composeEventHandlers2","INDICATOR_NAME2","RadioGroupIndicator","Root2","Item2","Indicator","className","RadioGroupPrimitive.Root","cn","RadioGroupPrimitive.Item","RadioGroupPrimitive.Indicator","CircleIcon"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as f } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as l } from "react";
|
|
3
|
+
import { c } from "./index-Bke1qZdk.js";
|
|
4
|
+
import { c as m } from "./utils-CwJPJKOE.js";
|
|
5
|
+
const p = c(
|
|
6
|
+
"w-full",
|
|
7
|
+
{
|
|
8
|
+
variants: {
|
|
9
|
+
tone: {
|
|
10
|
+
clean: "",
|
|
11
|
+
subtle: "bg-muted/5",
|
|
12
|
+
brand: "bg-primary/5",
|
|
13
|
+
contrast: "bg-zinc-900"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
tone: "clean"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
), d = l(({
|
|
21
|
+
edges: a = ["top", "bottom", "left", "right"],
|
|
22
|
+
tone: r = "clean",
|
|
23
|
+
useMargin: n = !1,
|
|
24
|
+
className: o,
|
|
25
|
+
children: i
|
|
26
|
+
}, s) => {
|
|
27
|
+
const t = {}, e = n ? "margin" : "padding";
|
|
28
|
+
return a.includes("top") && (t[`${e}Top`] = "env(safe-area-inset-top)"), a.includes("bottom") && (t[`${e}Bottom`] = "env(safe-area-inset-bottom)"), a.includes("left") && (t[`${e}Left`] = "env(safe-area-inset-left)"), a.includes("right") && (t[`${e}Right`] = "env(safe-area-inset-right)"), /* @__PURE__ */ f(
|
|
29
|
+
"div",
|
|
30
|
+
{
|
|
31
|
+
ref: s,
|
|
32
|
+
className: m(p({ tone: r }), o),
|
|
33
|
+
style: t,
|
|
34
|
+
children: i
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
});
|
|
38
|
+
d.displayName = "SafeArea";
|
|
39
|
+
export {
|
|
40
|
+
d as SafeArea
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=safe-area.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-area.js","sources":["../src/components/sections/safe-area.tsx"],"sourcesContent":["/**\n * SafeArea Section - Safe area wrapper for mobile notch/home indicator\n * @module @bloomneo/uikit\n * @file src/components/sections/safe-area.tsx\n */\n\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\nimport type { Tone } from '@/types';\n\n/**\n * SafeArea edges to apply insets\n */\nexport type SafeAreaEdge = 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * SafeArea variants\n */\nconst safeAreaVariants = cva(\n 'w-full',\n {\n variants: {\n tone: {\n clean: '',\n subtle: 'bg-muted/5',\n brand: 'bg-primary/5',\n contrast: 'bg-zinc-900'\n }\n },\n defaultVariants: {\n tone: 'clean'\n }\n }\n);\n\n/**\n * SafeArea Component Props\n */\nexport interface SafeAreaProps {\n /** OPTIONAL: Edges to apply safe area insets (default: all edges) */\n edges?: SafeAreaEdge[];\n /** OPTIONAL: Visual styling tone (default: \"clean\") */\n tone?: Tone;\n /** OPTIONAL: Use margin instead of padding (default: false) */\n useMargin?: boolean;\n /** OPTIONAL: Additional CSS classes */\n className?: string;\n /** REQUIRED: Content to wrap */\n children: React.ReactNode;\n}\n\n/**\n * SafeArea - Wraps content with safe area insets for mobile devices\n * Handles iOS notch, Android punch-hole, and home indicators\n *\n * @llm-usage\n * <SafeArea edges={['top', 'bottom']}>\n * <AppContent />\n * </SafeArea>\n *\n * @example Full safe area (all edges)\n * <SafeArea>{children}</SafeArea>\n *\n * @example Only top and bottom (common for main content)\n * <SafeArea edges={['top', 'bottom']}>{children}</SafeArea>\n *\n * @example With background tone\n * <SafeArea tone=\"subtle\" edges={['top']}>{children}</SafeArea>\n */\nexport const SafeArea = forwardRef<HTMLDivElement, SafeAreaProps>(({\n edges = ['top', 'bottom', 'left', 'right'],\n tone = 'clean',\n useMargin = false,\n className,\n children,\n}, ref) => {\n // Build inline styles for safe area insets\n const safeAreaStyles: React.CSSProperties = {};\n const property = useMargin ? 'margin' : 'padding';\n\n if (edges.includes('top')) {\n safeAreaStyles[`${property}Top` as keyof React.CSSProperties] = 'env(safe-area-inset-top)' as any;\n }\n if (edges.includes('bottom')) {\n safeAreaStyles[`${property}Bottom` as keyof React.CSSProperties] = 'env(safe-area-inset-bottom)' as any;\n }\n if (edges.includes('left')) {\n safeAreaStyles[`${property}Left` as keyof React.CSSProperties] = 'env(safe-area-inset-left)' as any;\n }\n if (edges.includes('right')) {\n safeAreaStyles[`${property}Right` as keyof React.CSSProperties] = 'env(safe-area-inset-right)' as any;\n }\n\n return (\n <div\n ref={ref}\n className={cn(safeAreaVariants({ tone }), className)}\n style={safeAreaStyles}\n >\n {children}\n </div>\n );\n});\n\nSafeArea.displayName = 'SafeArea';\n"],"names":["safeAreaVariants","cva","SafeArea","forwardRef","edges","tone","useMargin","className","children","ref","safeAreaStyles","property","jsx","cn"],"mappings":";;;;AAoBA,MAAMA,IAAmBC;AAAA,EACvB;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,GAoCaC,IAAWC,EAA0C,CAAC;AAAA,EACjE,OAAAC,IAAQ,CAAC,OAAO,UAAU,QAAQ,OAAO;AAAA,EACzC,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,WAAAC;AAAA,EACA,UAAAC;AACF,GAAGC,MAAQ;AAET,QAAMC,IAAsC,CAAA,GACtCC,IAAWL,IAAY,WAAW;AAExC,SAAIF,EAAM,SAAS,KAAK,MACtBM,EAAe,GAAGC,CAAQ,KAAkC,IAAI,6BAE9DP,EAAM,SAAS,QAAQ,MACzBM,EAAe,GAAGC,CAAQ,QAAqC,IAAI,gCAEjEP,EAAM,SAAS,MAAM,MACvBM,EAAe,GAAGC,CAAQ,MAAmC,IAAI,8BAE/DP,EAAM,SAAS,OAAO,MACxBM,EAAe,GAAGC,CAAQ,OAAoC,IAAI,+BAIlE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAH;AAAA,MACA,WAAWI,EAAGb,EAAiB,EAAE,MAAAK,EAAA,CAAM,GAAGE,CAAS;AAAA,MACnD,OAAOG;AAAA,MAEN,UAAAF;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;AAEDN,EAAS,cAAc;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { c } from "./createLucideIcon-B45kRl5r.js";
|
|
2
|
+
/**
|
|
3
|
+
* @license lucide-react v0.468.0 - ISC
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the ISC license.
|
|
6
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
const r = c("Search", [
|
|
9
|
+
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
|
|
10
|
+
["path", { d: "m21 21-4.3-4.3", key: "1qie3q" }]
|
|
11
|
+
]);
|
|
12
|
+
export {
|
|
13
|
+
r as S
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=search-CpUwRnG-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-CpUwRnG-.js","sources":["../node_modules/lucide-react/dist/esm/icons/search.js"],"sourcesContent":["/**\n * @license lucide-react v0.468.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Search = createLucideIcon(\"Search\", [\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"path\", { d: \"m21 21-4.3-4.3\", key: \"1qie3q\" }]\n]);\n\nexport { Search as default };\n//# sourceMappingURL=search.js.map\n"],"names":["Search","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAACA,IAASC,EAAiB,UAAU;AAAA,EACxC,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,UAAU;AAAA,EACxD,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AACjD,CAAC;","x_google_ignoreList":[0]}
|