@xbg.solutions/create-frontend 1.1.1 → 1.2.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/bin/xbg-frontend.cjs +32 -0
- package/package.json +17 -3
- package/src/commands/add.cjs +470 -0
- package/src/commands/generate.cjs +24 -0
- package/src/manifest.json +1578 -0
- package/src/registry/advanced/ChartWrapper.svelte +587 -0
- package/src/registry/advanced/DataTable.svelte +645 -0
- package/src/registry/advanced/FormWizard.svelte +546 -0
- package/src/registry/advanced/ImageUpload.svelte +663 -0
- package/src/registry/advanced/index.ts +33 -0
- package/src/registry/atoms/calendar/Calendar.svelte +181 -0
- package/src/registry/atoms/calendar/index.ts +1 -0
- package/src/registry/atoms/dialog/Dialog.svelte +179 -0
- package/src/registry/atoms/dialog/DialogDescription.svelte +16 -0
- package/src/registry/atoms/dialog/DialogFooter.svelte +16 -0
- package/src/registry/atoms/dialog/DialogHeader.svelte +16 -0
- package/src/registry/atoms/dialog/DialogTitle.svelte +16 -0
- package/src/registry/atoms/dialog/index.ts +10 -0
- package/src/registry/atoms/icon/BrandIcon.svelte +47 -0
- package/src/registry/atoms/icon/DynamicIcon.svelte +49 -0
- package/src/registry/atoms/icon/index.ts +2 -0
- package/src/registry/atoms/legend/Legend.svelte +32 -0
- package/src/registry/atoms/legend/index.ts +1 -0
- package/src/registry/atoms/menu/MenuItem.svelte +85 -0
- package/src/registry/atoms/menu/index.ts +1 -0
- package/src/registry/atoms/message/Message.svelte +62 -0
- package/src/registry/atoms/message/index.ts +1 -0
- package/src/registry/atoms/nav/NavItem.svelte +67 -0
- package/src/registry/atoms/nav/index.ts +1 -0
- package/src/registry/atoms/notification-badge/NotificationBadge.svelte +30 -0
- package/src/registry/atoms/notification-badge/index.ts +1 -0
- package/src/registry/atoms/otp-input/OtpInput.svelte +108 -0
- package/src/registry/atoms/otp-input/index.ts +1 -0
- package/src/registry/atoms/select/Select.svelte +216 -0
- package/src/registry/atoms/select/index.ts +6 -0
- package/src/registry/atoms/settings-card/SettingsCard.svelte +48 -0
- package/src/registry/atoms/settings-card/index.ts +1 -0
- package/src/registry/atoms/sidebar-item/SidebarItem.svelte +90 -0
- package/src/registry/atoms/sidebar-item/index.ts +1 -0
- package/src/registry/atoms/statistic-card/StatisticCard.svelte +53 -0
- package/src/registry/atoms/statistic-card/index.ts +1 -0
- package/src/registry/atoms/text-editor/TextEditor.svelte +77 -0
- package/src/registry/atoms/text-editor/index.ts +1 -0
- package/src/registry/atoms/uploader/Uploader.svelte +102 -0
- package/src/registry/atoms/uploader/index.ts +1 -0
- package/src/registry/atoms/user-item/UserItem.svelte +39 -0
- package/src/registry/atoms/user-item/index.ts +1 -0
- package/src/registry/blocks/account-section/AccountSection01.svelte +112 -0
- package/src/registry/blocks/account-section/AccountSection02.svelte +190 -0
- package/src/registry/blocks/account-section/AccountSection03.svelte +161 -0
- package/src/registry/blocks/account-section/AccountSection04.svelte +164 -0
- package/src/registry/blocks/account-section/AccountSection05.svelte +76 -0
- package/src/registry/blocks/account-section/index.ts +5 -0
- package/src/registry/blocks/app-shell/AppShell01.svelte +74 -0
- package/src/registry/blocks/app-shell/AppShell02.svelte +87 -0
- package/src/registry/blocks/app-shell/AppShell03.svelte +79 -0
- package/src/registry/blocks/app-shell/AppShell04.svelte +177 -0
- package/src/registry/blocks/app-shell/index.ts +4 -0
- package/src/registry/blocks/auth/AuthSplitScreen.svelte +132 -0
- package/src/registry/blocks/auth/LoginBlock01.svelte +94 -0
- package/src/registry/blocks/auth/LoginBlock02.svelte +103 -0
- package/src/registry/blocks/auth/LoginBlock03.svelte +53 -0
- package/src/registry/blocks/auth/LoginBlock04.svelte +99 -0
- package/src/registry/blocks/auth/LoginBlock05.svelte +101 -0
- package/src/registry/blocks/auth/OtpBlock01.svelte +115 -0
- package/src/registry/blocks/auth/OtpBlock02.svelte +113 -0
- package/src/registry/blocks/auth/OtpBlock03.svelte +143 -0
- package/src/registry/blocks/auth/OtpBlock04.svelte +122 -0
- package/src/registry/blocks/auth/OtpBlock05.svelte +81 -0
- package/src/registry/blocks/auth/SignupBlock01.svelte +103 -0
- package/src/registry/blocks/auth/SignupBlock02.svelte +94 -0
- package/src/registry/blocks/auth/SignupBlock03.svelte +120 -0
- package/src/registry/blocks/auth/SignupBlock04.svelte +112 -0
- package/src/registry/blocks/auth/SignupBlock05.svelte +77 -0
- package/src/registry/blocks/auth/index.ts +31 -0
- package/src/registry/blocks/banner/Banner01.svelte +67 -0
- package/src/registry/blocks/banner/Banner02.svelte +61 -0
- package/src/registry/blocks/banner/Banner03.svelte +54 -0
- package/src/registry/blocks/banner/Banner04.svelte +49 -0
- package/src/registry/blocks/banner/Banner05.svelte +47 -0
- package/src/registry/blocks/banner/index.ts +5 -0
- package/src/registry/blocks/bento-grid/BentoGrid01.svelte +92 -0
- package/src/registry/blocks/bento-grid/BentoGrid02.svelte +79 -0
- package/src/registry/blocks/bento-grid/BentoGrid03.svelte +79 -0
- package/src/registry/blocks/bento-grid/BentoGrid04.svelte +58 -0
- package/src/registry/blocks/bento-grid/BentoGrid05.svelte +92 -0
- package/src/registry/blocks/bento-grid/BentoGrid06.svelte +42 -0
- package/src/registry/blocks/bento-grid/index.ts +14 -0
- package/src/registry/blocks/blog-section/BlogSection01.svelte +100 -0
- package/src/registry/blocks/blog-section/BlogSection02.svelte +93 -0
- package/src/registry/blocks/blog-section/BlogSection03.svelte +92 -0
- package/src/registry/blocks/blog-section/BlogSection04.svelte +97 -0
- package/src/registry/blocks/blog-section/BlogSection05.svelte +120 -0
- package/src/registry/blocks/blog-section/index.ts +15 -0
- package/src/registry/blocks/buttons/ButtonBookmark.svelte +37 -0
- package/src/registry/blocks/buttons/ButtonLike.svelte +37 -0
- package/src/registry/blocks/buttons/ButtonMenu.svelte +37 -0
- package/src/registry/blocks/buttons/ButtonSplitDropdown.svelte +46 -0
- package/src/registry/blocks/buttons/ButtonStepper.svelte +55 -0
- package/src/registry/blocks/buttons/ButtonSteps.svelte +73 -0
- package/src/registry/blocks/buttons/ButtonToggleGroup.svelte +35 -0
- package/src/registry/blocks/buttons/ButtonsGroup.svelte +63 -0
- package/src/registry/blocks/buttons/SocialButtonsHorizontal.svelte +41 -0
- package/src/registry/blocks/buttons/SocialButtonsVertical.svelte +53 -0
- package/src/registry/blocks/buttons/index.ts +10 -0
- package/src/registry/blocks/calendar/CalendarBlock01.svelte +169 -0
- package/src/registry/blocks/calendar/CalendarBlock02.svelte +133 -0
- package/src/registry/blocks/calendar/CalendarBlock03.svelte +194 -0
- package/src/registry/blocks/calendar/CalendarBlock04.svelte +96 -0
- package/src/registry/blocks/calendar/CalendarBlock05.svelte +97 -0
- package/src/registry/blocks/calendar/CalendarBlock06.svelte +98 -0
- package/src/registry/blocks/calendar/CalendarBlock07.svelte +109 -0
- package/src/registry/blocks/calendar/CalendarBlock08.svelte +71 -0
- package/src/registry/blocks/calendar/CalendarBlock09.svelte +99 -0
- package/src/registry/blocks/calendar/CalendarBlock10.svelte +88 -0
- package/src/registry/blocks/calendar/CalendarBlock11.svelte +99 -0
- package/src/registry/blocks/calendar/CalendarBlock12.svelte +121 -0
- package/src/registry/blocks/calendar/CalendarBlock13.svelte +92 -0
- package/src/registry/blocks/calendar/CalendarBlock14.svelte +71 -0
- package/src/registry/blocks/calendar/CalendarBlock15.svelte +96 -0
- package/src/registry/blocks/calendar/CalendarBlock16.svelte +98 -0
- package/src/registry/blocks/calendar/CalendarBlock17.svelte +88 -0
- package/src/registry/blocks/calendar/CalendarBlock18.svelte +84 -0
- package/src/registry/blocks/calendar/CalendarBlock19.svelte +105 -0
- package/src/registry/blocks/calendar/CalendarBlock20.svelte +78 -0
- package/src/registry/blocks/calendar/CalendarBlock21.svelte +115 -0
- package/src/registry/blocks/calendar/CalendarBlock22.svelte +136 -0
- package/src/registry/blocks/calendar/CalendarBlock23.svelte +112 -0
- package/src/registry/blocks/calendar/CalendarBlock24.svelte +116 -0
- package/src/registry/blocks/calendar/CalendarBlock25.svelte +144 -0
- package/src/registry/blocks/calendar/CalendarBlock26.svelte +163 -0
- package/src/registry/blocks/calendar/CalendarBlock27.svelte +112 -0
- package/src/registry/blocks/calendar/CalendarBlock28.svelte +109 -0
- package/src/registry/blocks/calendar/CalendarBlock29.svelte +126 -0
- package/src/registry/blocks/calendar/CalendarBlock30.svelte +122 -0
- package/src/registry/blocks/calendar/CalendarBlock31.svelte +161 -0
- package/src/registry/blocks/calendar/CalendarBlock32.svelte +154 -0
- package/src/registry/blocks/calendar/index.ts +32 -0
- package/src/registry/blocks/card/Card01.svelte +69 -0
- package/src/registry/blocks/card/Card02.svelte +50 -0
- package/src/registry/blocks/card/Card03.svelte +60 -0
- package/src/registry/blocks/card/Card04.svelte +89 -0
- package/src/registry/blocks/card/Card05.svelte +51 -0
- package/src/registry/blocks/card/Card06.svelte +77 -0
- package/src/registry/blocks/card/Card07.svelte +35 -0
- package/src/registry/blocks/card/Card08.svelte +36 -0
- package/src/registry/blocks/card/index.ts +8 -0
- package/src/registry/blocks/cart/Cart01.svelte +183 -0
- package/src/registry/blocks/cart/Cart02.svelte +103 -0
- package/src/registry/blocks/cart/Cart03.svelte +38 -0
- package/src/registry/blocks/cart/Cart04.svelte +174 -0
- package/src/registry/blocks/cart/index.ts +4 -0
- package/src/registry/blocks/checkout/Checkout01.svelte +237 -0
- package/src/registry/blocks/checkout/Checkout02.svelte +205 -0
- package/src/registry/blocks/checkout/Checkout03.svelte +189 -0
- package/src/registry/blocks/checkout/Checkout04.svelte +109 -0
- package/src/registry/blocks/checkout/index.ts +4 -0
- package/src/registry/blocks/comparison-section/ComparisonSection01.svelte +116 -0
- package/src/registry/blocks/comparison-section/ComparisonSection02.svelte +98 -0
- package/src/registry/blocks/comparison-section/ComparisonSection03.svelte +93 -0
- package/src/registry/blocks/comparison-section/ComparisonSection04.svelte +98 -0
- package/src/registry/blocks/comparison-section/ComparisonSection05.svelte +119 -0
- package/src/registry/blocks/comparison-section/ComparisonSection06.svelte +154 -0
- package/src/registry/blocks/comparison-section/index.ts +6 -0
- package/src/registry/blocks/contact-section/ContactSection01.svelte +64 -0
- package/src/registry/blocks/contact-section/ContactSection02.svelte +108 -0
- package/src/registry/blocks/contact-section/ContactSection03.svelte +64 -0
- package/src/registry/blocks/contact-section/ContactSection04.svelte +30 -0
- package/src/registry/blocks/contact-section/ContactSection05.svelte +71 -0
- package/src/registry/blocks/contact-section/ContactSection06.svelte +88 -0
- package/src/registry/blocks/contact-section/index.ts +6 -0
- package/src/registry/blocks/cta/CTA01.svelte +44 -0
- package/src/registry/blocks/cta/CTA02.svelte +48 -0
- package/src/registry/blocks/cta/CTA03.svelte +53 -0
- package/src/registry/blocks/cta/CTA04.svelte +60 -0
- package/src/registry/blocks/cta/CTA05.svelte +53 -0
- package/src/registry/blocks/cta/CTA06.svelte +44 -0
- package/src/registry/blocks/cta/CTA07.svelte +39 -0
- package/src/registry/blocks/cta/index.ts +7 -0
- package/src/registry/blocks/dashboard/ChartsBlock01.svelte +275 -0
- package/src/registry/blocks/dashboard/DashboardBlock01.svelte +207 -0
- package/src/registry/blocks/dashboard/DashboardBlock02.svelte +259 -0
- package/src/registry/blocks/dashboard/DashboardBlock03.svelte +315 -0
- package/src/registry/blocks/dashboard/DashboardBlock04.svelte +220 -0
- package/src/registry/blocks/dashboard/DashboardBlock05.svelte +158 -0
- package/src/registry/blocks/dashboard/DashboardBlock06.svelte +173 -0
- package/src/registry/blocks/dashboard/DashboardBlock07.svelte +103 -0
- package/src/registry/blocks/dashboard/index.ts +16 -0
- package/src/registry/blocks/description-list/DescriptionList01.svelte +75 -0
- package/src/registry/blocks/description-list/DescriptionList02.svelte +50 -0
- package/src/registry/blocks/description-list/DescriptionList03.svelte +74 -0
- package/src/registry/blocks/description-list/DescriptionList04.svelte +88 -0
- package/src/registry/blocks/description-list/index.ts +4 -0
- package/src/registry/blocks/empty-lp/EmptyLP01.svelte +46 -0
- package/src/registry/blocks/empty-lp/EmptyLP02.svelte +49 -0
- package/src/registry/blocks/empty-lp/EmptyLP03.svelte +61 -0
- package/src/registry/blocks/empty-lp/EmptyLP04.svelte +37 -0
- package/src/registry/blocks/empty-lp/index.ts +4 -0
- package/src/registry/blocks/empty-section/EmptySection01.svelte +47 -0
- package/src/registry/blocks/empty-section/EmptySection02.svelte +93 -0
- package/src/registry/blocks/empty-section/EmptySection03.svelte +101 -0
- package/src/registry/blocks/empty-section/EmptySection04.svelte +76 -0
- package/src/registry/blocks/empty-section/index.ts +4 -0
- package/src/registry/blocks/faq-section/FaqSection01.svelte +114 -0
- package/src/registry/blocks/faq-section/FaqSection02.svelte +137 -0
- package/src/registry/blocks/faq-section/FaqSection03.svelte +107 -0
- package/src/registry/blocks/faq-section/FaqSection04.svelte +74 -0
- package/src/registry/blocks/faq-section/FaqSection05.svelte +69 -0
- package/src/registry/blocks/faq-section/index.ts +11 -0
- package/src/registry/blocks/feature-section/FeatureSection01.svelte +94 -0
- package/src/registry/blocks/feature-section/FeatureSection02.svelte +61 -0
- package/src/registry/blocks/feature-section/FeatureSection03.svelte +85 -0
- package/src/registry/blocks/feature-section/FeatureSection04.svelte +67 -0
- package/src/registry/blocks/feature-section/FeatureSection05.svelte +61 -0
- package/src/registry/blocks/feature-section/FeatureSection06.svelte +58 -0
- package/src/registry/blocks/feature-section/FeatureSection07.svelte +79 -0
- package/src/registry/blocks/feature-section/FeatureSection08.svelte +92 -0
- package/src/registry/blocks/feature-section/FeatureSection09.svelte +58 -0
- package/src/registry/blocks/feature-section/FeatureSection10.svelte +87 -0
- package/src/registry/blocks/feature-section/FeatureSection11.svelte +118 -0
- package/src/registry/blocks/feature-section/FeatureSection12.svelte +76 -0
- package/src/registry/blocks/feature-section/FeatureSection13.svelte +88 -0
- package/src/registry/blocks/feature-section/FeatureSection14.svelte +119 -0
- package/src/registry/blocks/feature-section/FeatureSection15.svelte +122 -0
- package/src/registry/blocks/feature-section/FeatureSection16.svelte +113 -0
- package/src/registry/blocks/feature-section/FeatureSection17.svelte +93 -0
- package/src/registry/blocks/feature-section/FeatureSection18.svelte +97 -0
- package/src/registry/blocks/feature-section/FeatureSection19.svelte +74 -0
- package/src/registry/blocks/feature-section/FeatureSection20.svelte +69 -0
- package/src/registry/blocks/feature-section/index.ts +20 -0
- package/src/registry/blocks/footer/Footer01.svelte +62 -0
- package/src/registry/blocks/footer/Footer02.svelte +67 -0
- package/src/registry/blocks/footer/Footer03.svelte +87 -0
- package/src/registry/blocks/footer/Footer04.svelte +67 -0
- package/src/registry/blocks/footer/Footer05.svelte +20 -0
- package/src/registry/blocks/footer/Footer06.svelte +107 -0
- package/src/registry/blocks/footer/Footer07.svelte +88 -0
- package/src/registry/blocks/footer/Footer08.svelte +84 -0
- package/src/registry/blocks/footer/Footer09.svelte +65 -0
- package/src/registry/blocks/footer/index.ts +19 -0
- package/src/registry/blocks/forms/SettingsBlock.svelte +329 -0
- package/src/registry/blocks/forms/index.ts +1 -0
- package/src/registry/blocks/gallery-section/GallerySection01.svelte +43 -0
- package/src/registry/blocks/gallery-section/GallerySection02.svelte +45 -0
- package/src/registry/blocks/gallery-section/GallerySection03.svelte +43 -0
- package/src/registry/blocks/gallery-section/GallerySection04.svelte +49 -0
- package/src/registry/blocks/gallery-section/GallerySection05.svelte +45 -0
- package/src/registry/blocks/gallery-section/GallerySection06.svelte +49 -0
- package/src/registry/blocks/gallery-section/GallerySection07.svelte +48 -0
- package/src/registry/blocks/gallery-section/GallerySection08.svelte +43 -0
- package/src/registry/blocks/gallery-section/GallerySection09.svelte +55 -0
- package/src/registry/blocks/gallery-section/GallerySection10.svelte +43 -0
- package/src/registry/blocks/gallery-section/GallerySection11.svelte +75 -0
- package/src/registry/blocks/gallery-section/GallerySection12.svelte +76 -0
- package/src/registry/blocks/gallery-section/index.ts +12 -0
- package/src/registry/blocks/header-section/HeaderSection01.svelte +53 -0
- package/src/registry/blocks/header-section/HeaderSection02.svelte +53 -0
- package/src/registry/blocks/header-section/HeaderSection03.svelte +61 -0
- package/src/registry/blocks/header-section/HeaderSection04.svelte +63 -0
- package/src/registry/blocks/header-section/HeaderSection05.svelte +53 -0
- package/src/registry/blocks/header-section/HeaderSection06.svelte +70 -0
- package/src/registry/blocks/header-section/HeaderSection07.svelte +97 -0
- package/src/registry/blocks/header-section/HeaderSection08.svelte +61 -0
- package/src/registry/blocks/header-section/HeaderSection09.svelte +53 -0
- package/src/registry/blocks/header-section/HeaderSection10.svelte +63 -0
- package/src/registry/blocks/header-section/HeaderSection11.svelte +68 -0
- package/src/registry/blocks/header-section/HeaderSection12.svelte +60 -0
- package/src/registry/blocks/header-section/HeaderSection13.svelte +92 -0
- package/src/registry/blocks/header-section/HeaderSection14.svelte +77 -0
- package/src/registry/blocks/header-section/HeaderSection15.svelte +49 -0
- package/src/registry/blocks/header-section/HeaderSection16.svelte +74 -0
- package/src/registry/blocks/header-section/HeaderSection17.svelte +58 -0
- package/src/registry/blocks/header-section/HeaderSection18.svelte +66 -0
- package/src/registry/blocks/header-section/HeaderSection19.svelte +47 -0
- package/src/registry/blocks/header-section/HeaderSection20.svelte +53 -0
- package/src/registry/blocks/header-section/index.ts +20 -0
- package/src/registry/blocks/hero-section/HeroSection01.svelte +69 -0
- package/src/registry/blocks/hero-section/HeroSection02.svelte +47 -0
- package/src/registry/blocks/hero-section/HeroSection03.svelte +56 -0
- package/src/registry/blocks/hero-section/HeroSection04.svelte +69 -0
- package/src/registry/blocks/hero-section/HeroSection05.svelte +73 -0
- package/src/registry/blocks/hero-section/HeroSection06.svelte +78 -0
- package/src/registry/blocks/hero-section/HeroSection07.svelte +48 -0
- package/src/registry/blocks/hero-section/HeroSection08.svelte +73 -0
- package/src/registry/blocks/hero-section/HeroSection09.svelte +51 -0
- package/src/registry/blocks/hero-section/HeroSection10.svelte +47 -0
- package/src/registry/blocks/hero-section/HeroSection11.svelte +60 -0
- package/src/registry/blocks/hero-section/HeroSection12.svelte +74 -0
- package/src/registry/blocks/hero-section/HeroSection13.svelte +86 -0
- package/src/registry/blocks/hero-section/HeroSection14.svelte +116 -0
- package/src/registry/blocks/hero-section/HeroSection15.svelte +75 -0
- package/src/registry/blocks/hero-section/HeroSection16.svelte +92 -0
- package/src/registry/blocks/hero-section/HeroSection17.svelte +78 -0
- package/src/registry/blocks/hero-section/HeroSection18.svelte +82 -0
- package/src/registry/blocks/hero-section/HeroSection19.svelte +72 -0
- package/src/registry/blocks/hero-section/HeroSection20.svelte +79 -0
- package/src/registry/blocks/hero-section/HeroSection21.svelte +75 -0
- package/src/registry/blocks/hero-section/HeroSection22.svelte +103 -0
- package/src/registry/blocks/hero-section/index.ts +22 -0
- package/src/registry/blocks/logo-section/LogoSection01.svelte +54 -0
- package/src/registry/blocks/logo-section/LogoSection02.svelte +56 -0
- package/src/registry/blocks/logo-section/LogoSection03.svelte +58 -0
- package/src/registry/blocks/logo-section/LogoSection04.svelte +58 -0
- package/src/registry/blocks/logo-section/LogoSection05.svelte +43 -0
- package/src/registry/blocks/logo-section/LogoSection06.svelte +43 -0
- package/src/registry/blocks/logo-section/LogoSection07.svelte +56 -0
- package/src/registry/blocks/logo-section/index.ts +7 -0
- package/src/registry/blocks/lp-navbar/LPNavbar01.svelte +94 -0
- package/src/registry/blocks/lp-navbar/LPNavbar02.svelte +96 -0
- package/src/registry/blocks/lp-navbar/LPNavbar03.svelte +97 -0
- package/src/registry/blocks/lp-navbar/LPNavbar04.svelte +103 -0
- package/src/registry/blocks/lp-navbar/LPNavbar05.svelte +173 -0
- package/src/registry/blocks/lp-navbar/LPNavbar06.svelte +200 -0
- package/src/registry/blocks/lp-navbar/LPNavbar07.svelte +202 -0
- package/src/registry/blocks/lp-navbar/index.ts +7 -0
- package/src/registry/blocks/mail/MailBlock.svelte +321 -0
- package/src/registry/blocks/mail/index.ts +2 -0
- package/src/registry/blocks/music/MusicBlock.svelte +239 -0
- package/src/registry/blocks/music/index.ts +1 -0
- package/src/registry/blocks/navbar/Navbar01.svelte +234 -0
- package/src/registry/blocks/navbar/Navbar02.svelte +111 -0
- package/src/registry/blocks/navbar/Navbar03.svelte +88 -0
- package/src/registry/blocks/navbar/index.ts +3 -0
- package/src/registry/blocks/not-found/NotFound01.svelte +29 -0
- package/src/registry/blocks/not-found/NotFound02.svelte +28 -0
- package/src/registry/blocks/not-found/NotFound03.svelte +25 -0
- package/src/registry/blocks/not-found/index.ts +3 -0
- package/src/registry/blocks/order-history/OrderHistory01.svelte +208 -0
- package/src/registry/blocks/order-history/OrderHistory02.svelte +131 -0
- package/src/registry/blocks/order-history/OrderHistory03.svelte +133 -0
- package/src/registry/blocks/order-history/index.ts +3 -0
- package/src/registry/blocks/page-header/PageHeader01.svelte +39 -0
- package/src/registry/blocks/page-header/PageHeader02.svelte +58 -0
- package/src/registry/blocks/page-header/PageHeader03.svelte +64 -0
- package/src/registry/blocks/page-header/PageHeader04.svelte +49 -0
- package/src/registry/blocks/page-header/PageHeader05.svelte +49 -0
- package/src/registry/blocks/page-header/PageHeader06.svelte +58 -0
- package/src/registry/blocks/page-header/PageHeader07.svelte +64 -0
- package/src/registry/blocks/page-header/PageHeader08.svelte +68 -0
- package/src/registry/blocks/page-header/index.ts +8 -0
- package/src/registry/blocks/playground/PlaygroundBlock01.svelte +162 -0
- package/src/registry/blocks/playground/PlaygroundBlock02.svelte +156 -0
- package/src/registry/blocks/playground/index.ts +2 -0
- package/src/registry/blocks/pricing-section/PricingSection01.svelte +109 -0
- package/src/registry/blocks/pricing-section/PricingSection02.svelte +145 -0
- package/src/registry/blocks/pricing-section/PricingSection03.svelte +94 -0
- package/src/registry/blocks/pricing-section/PricingSection04.svelte +103 -0
- package/src/registry/blocks/pricing-section/PricingSection05.svelte +128 -0
- package/src/registry/blocks/pricing-section/index.ts +20 -0
- package/src/registry/blocks/product-card/ProductCard01.svelte +74 -0
- package/src/registry/blocks/product-card/ProductCard02.svelte +108 -0
- package/src/registry/blocks/product-card/ProductCard03.svelte +80 -0
- package/src/registry/blocks/product-card/ProductCard04.svelte +50 -0
- package/src/registry/blocks/product-card/ProductCard05.svelte +107 -0
- package/src/registry/blocks/product-card/index.ts +5 -0
- package/src/registry/blocks/product-detail/ProductDetail01.svelte +174 -0
- package/src/registry/blocks/product-detail/ProductDetail02.svelte +170 -0
- package/src/registry/blocks/product-detail/ProductDetail03.svelte +159 -0
- package/src/registry/blocks/product-detail/ProductDetail04.svelte +106 -0
- package/src/registry/blocks/product-detail/ProductDetail05.svelte +181 -0
- package/src/registry/blocks/product-detail/index.ts +5 -0
- package/src/registry/blocks/product-listing/ProductListing01.svelte +194 -0
- package/src/registry/blocks/product-listing/ProductListing02.svelte +163 -0
- package/src/registry/blocks/product-listing/ProductListing03.svelte +173 -0
- package/src/registry/blocks/product-listing/ProductListing04.svelte +179 -0
- package/src/registry/blocks/product-listing/ProductListing05.svelte +126 -0
- package/src/registry/blocks/product-listing/index.ts +5 -0
- package/src/registry/blocks/product-reviews/ProductReviews01.svelte +156 -0
- package/src/registry/blocks/product-reviews/ProductReviews02.svelte +139 -0
- package/src/registry/blocks/product-reviews/ProductReviews03.svelte +137 -0
- package/src/registry/blocks/product-reviews/ProductReviews04.svelte +129 -0
- package/src/registry/blocks/product-reviews/index.ts +4 -0
- package/src/registry/blocks/promo-section/PromoSection01.svelte +72 -0
- package/src/registry/blocks/promo-section/PromoSection02.svelte +61 -0
- package/src/registry/blocks/promo-section/PromoSection03.svelte +110 -0
- package/src/registry/blocks/promo-section/PromoSection04.svelte +103 -0
- package/src/registry/blocks/promo-section/index.ts +4 -0
- package/src/registry/blocks/rich-text/RichText01.svelte +30 -0
- package/src/registry/blocks/rich-text/RichText02.svelte +72 -0
- package/src/registry/blocks/rich-text/RichText03.svelte +52 -0
- package/src/registry/blocks/rich-text/RichText04.svelte +44 -0
- package/src/registry/blocks/rich-text/RichText05.svelte +56 -0
- package/src/registry/blocks/rich-text/index.ts +5 -0
- package/src/registry/blocks/section/Section01.svelte +38 -0
- package/src/registry/blocks/section/Section02.svelte +90 -0
- package/src/registry/blocks/section/Section03.svelte +95 -0
- package/src/registry/blocks/section/Section04.svelte +117 -0
- package/src/registry/blocks/section/index.ts +4 -0
- package/src/registry/blocks/section-footer/SectionFooter01.svelte +39 -0
- package/src/registry/blocks/section-footer/SectionFooter02.svelte +33 -0
- package/src/registry/blocks/section-footer/SectionFooter03.svelte +33 -0
- package/src/registry/blocks/section-footer/SectionFooter04.svelte +34 -0
- package/src/registry/blocks/section-footer/SectionFooter05.svelte +69 -0
- package/src/registry/blocks/section-footer/index.ts +5 -0
- package/src/registry/blocks/section-header/SectionHeader01.svelte +39 -0
- package/src/registry/blocks/section-header/SectionHeader02.svelte +58 -0
- package/src/registry/blocks/section-header/SectionHeader03.svelte +88 -0
- package/src/registry/blocks/section-header/SectionHeader04.svelte +45 -0
- package/src/registry/blocks/section-header/SectionHeader05.svelte +64 -0
- package/src/registry/blocks/section-header/index.ts +5 -0
- package/src/registry/blocks/settings/Settings01.svelte +202 -0
- package/src/registry/blocks/settings/Settings02.svelte +201 -0
- package/src/registry/blocks/settings/Settings03.svelte +156 -0
- package/src/registry/blocks/settings/Settings04.svelte +175 -0
- package/src/registry/blocks/settings/Settings05.svelte +248 -0
- package/src/registry/blocks/settings/Settings06.svelte +120 -0
- package/src/registry/blocks/settings/Settings07.svelte +136 -0
- package/src/registry/blocks/settings/index.ts +7 -0
- package/src/registry/blocks/sidebar/SidebarLayout01.svelte +108 -0
- package/src/registry/blocks/sidebar/SidebarLayout02.svelte +75 -0
- package/src/registry/blocks/sidebar/SidebarLayout03.svelte +108 -0
- package/src/registry/blocks/sidebar/SidebarLayout04.svelte +111 -0
- package/src/registry/blocks/sidebar/SidebarLayout05.svelte +103 -0
- package/src/registry/blocks/sidebar/SidebarLayout06.svelte +122 -0
- package/src/registry/blocks/sidebar/SidebarLayout07.svelte +183 -0
- package/src/registry/blocks/sidebar/SidebarLayout08.svelte +162 -0
- package/src/registry/blocks/sidebar/SidebarLayout09.svelte +167 -0
- package/src/registry/blocks/sidebar/SidebarLayout10.svelte +159 -0
- package/src/registry/blocks/sidebar/SidebarLayout11.svelte +135 -0
- package/src/registry/blocks/sidebar/SidebarLayout12.svelte +159 -0
- package/src/registry/blocks/sidebar/SidebarLayout13.svelte +103 -0
- package/src/registry/blocks/sidebar/SidebarLayout14.svelte +87 -0
- package/src/registry/blocks/sidebar/SidebarLayout15.svelte +228 -0
- package/src/registry/blocks/sidebar/index.ts +15 -0
- package/src/registry/blocks/sign-in/SignIn01.svelte +140 -0
- package/src/registry/blocks/sign-in/SignIn02.svelte +155 -0
- package/src/registry/blocks/sign-in/SignIn03.svelte +214 -0
- package/src/registry/blocks/sign-in/SignIn04.svelte +163 -0
- package/src/registry/blocks/sign-in/SignIn05.svelte +209 -0
- package/src/registry/blocks/sign-in/SignIn06.svelte +233 -0
- package/src/registry/blocks/sign-in/SignIn07.svelte +268 -0
- package/src/registry/blocks/sign-in/SignIn08.svelte +125 -0
- package/src/registry/blocks/sign-in/SignIn09.svelte +93 -0
- package/src/registry/blocks/sign-in/SignIn10.svelte +74 -0
- package/src/registry/blocks/sign-in/index.ts +10 -0
- package/src/registry/blocks/sign-up/SignUp01.svelte +124 -0
- package/src/registry/blocks/sign-up/SignUp02.svelte +110 -0
- package/src/registry/blocks/sign-up/SignUp03.svelte +182 -0
- package/src/registry/blocks/sign-up/SignUp04.svelte +126 -0
- package/src/registry/blocks/sign-up/SignUp05.svelte +182 -0
- package/src/registry/blocks/sign-up/SignUp06.svelte +221 -0
- package/src/registry/blocks/sign-up/SignUp07.svelte +98 -0
- package/src/registry/blocks/sign-up/index.ts +7 -0
- package/src/registry/blocks/stats-section/StatsSection01.svelte +66 -0
- package/src/registry/blocks/stats-section/StatsSection02.svelte +60 -0
- package/src/registry/blocks/stats-section/StatsSection03.svelte +66 -0
- package/src/registry/blocks/stats-section/StatsSection04.svelte +66 -0
- package/src/registry/blocks/stats-section/StatsSection05.svelte +60 -0
- package/src/registry/blocks/stats-section/StatsSection06.svelte +48 -0
- package/src/registry/blocks/stats-section/StatsSection07.svelte +66 -0
- package/src/registry/blocks/stats-section/index.ts +7 -0
- package/src/registry/blocks/store-navbar/StoreNavbar01.svelte +101 -0
- package/src/registry/blocks/store-navbar/StoreNavbar02.svelte +65 -0
- package/src/registry/blocks/store-navbar/StoreNavbar03.svelte +83 -0
- package/src/registry/blocks/store-navbar/StoreNavbar04.svelte +110 -0
- package/src/registry/blocks/store-navbar/StoreNavbar05.svelte +80 -0
- package/src/registry/blocks/store-navbar/index.ts +5 -0
- package/src/registry/blocks/table-header/TableHeader01.svelte +96 -0
- package/src/registry/blocks/table-header/TableHeader02.svelte +86 -0
- package/src/registry/blocks/table-header/TableHeader03.svelte +99 -0
- package/src/registry/blocks/table-header/TableHeader04.svelte +107 -0
- package/src/registry/blocks/table-header/index.ts +4 -0
- package/src/registry/blocks/tasks/TasksBlock.svelte +286 -0
- package/src/registry/blocks/tasks/index.ts +1 -0
- package/src/registry/blocks/team-section/TeamSection01.svelte +80 -0
- package/src/registry/blocks/team-section/TeamSection02.svelte +102 -0
- package/src/registry/blocks/team-section/TeamSection03.svelte +76 -0
- package/src/registry/blocks/team-section/TeamSection04.svelte +106 -0
- package/src/registry/blocks/team-section/index.ts +13 -0
- package/src/registry/blocks/testimonials/Testimonial01.svelte +74 -0
- package/src/registry/blocks/testimonials/Testimonial02.svelte +74 -0
- package/src/registry/blocks/testimonials/Testimonial03.svelte +79 -0
- package/src/registry/blocks/testimonials/Testimonial04.svelte +113 -0
- package/src/registry/blocks/testimonials/Testimonial05.svelte +74 -0
- package/src/registry/blocks/testimonials/Testimonial06.svelte +114 -0
- package/src/registry/blocks/testimonials/Testimonial07.svelte +131 -0
- package/src/registry/blocks/testimonials/Testimonials01.svelte +60 -0
- package/src/registry/blocks/testimonials/Testimonials02.svelte +61 -0
- package/src/registry/blocks/testimonials/Testimonials03.svelte +79 -0
- package/src/registry/blocks/testimonials/Testimonials04.svelte +74 -0
- package/src/registry/blocks/testimonials/Testimonials05.svelte +68 -0
- package/src/registry/blocks/testimonials/Testimonials06.svelte +82 -0
- package/src/registry/blocks/testimonials/Testimonials07.svelte +98 -0
- package/src/registry/blocks/testimonials/index.ts +16 -0
- package/src/registry/templates/cn.ts +42 -0
- package/src/index.ts +0 -2
- package/tsconfig.json +0 -20
- /package/src/{generate-component.cjs → commands/generate-component.cjs} +0 -0
- /package/src/{generate-route.cjs → commands/generate-route.cjs} +0 -0
- /package/src/{generate-service.cjs → commands/generate-service.cjs} +0 -0
- /package/src/{manage-auth-users.cjs → commands/manage-auth-users.cjs} +0 -0
- /package/src/{setup.cjs → commands/setup.cjs} +0 -0
- /package/src/{validate-setup.cjs → commands/validate.cjs} +0 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { cn } from '$lib/utils/cn';
|
|
3
|
+
import { Button } from '$lib/components/ui';
|
|
4
|
+
|
|
5
|
+
interface Props {
|
|
6
|
+
class?: string;
|
|
7
|
+
onSave?: () => void;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { class: className, onSave }: Props = $props();
|
|
11
|
+
|
|
12
|
+
// Basic information state
|
|
13
|
+
let username = $state('kathypacheco');
|
|
14
|
+
let firstName = $state('Kathy');
|
|
15
|
+
let lastName = $state('Pacheco');
|
|
16
|
+
let email = $state('kathy@example.com');
|
|
17
|
+
|
|
18
|
+
// Change password state
|
|
19
|
+
let currentPassword = $state('');
|
|
20
|
+
let newPassword = $state('');
|
|
21
|
+
let confirmPassword = $state('');
|
|
22
|
+
|
|
23
|
+
// Advanced settings state
|
|
24
|
+
let dataExportAccess = $state(true);
|
|
25
|
+
let allowAdminToAddMembers = $state(true);
|
|
26
|
+
let enableTwoFactorAuth = $state(true);
|
|
27
|
+
|
|
28
|
+
function handleSave() {
|
|
29
|
+
onSave?.();
|
|
30
|
+
}
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<div class={cn('space-y-6', className)}>
|
|
34
|
+
<!-- Basic Information Section -->
|
|
35
|
+
<div class="rounded-lg border bg-background p-4 sm:p-6">
|
|
36
|
+
<div class="flex flex-col gap-6 sm:grid sm:grid-cols-[200px_1fr] sm:gap-6">
|
|
37
|
+
<div>
|
|
38
|
+
<h3 class="text-lg font-semibold">Basic information</h3>
|
|
39
|
+
<p class="mt-2 text-sm text-muted-foreground">Update your profile details.</p>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<div class="space-y-4">
|
|
43
|
+
<div>
|
|
44
|
+
<label class="block text-sm font-medium mb-2">Username</label>
|
|
45
|
+
<input
|
|
46
|
+
type="text"
|
|
47
|
+
bind:value={username}
|
|
48
|
+
placeholder="Username"
|
|
49
|
+
class="w-full rounded-md border bg-background px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-ring"
|
|
50
|
+
/>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div class="grid grid-cols-2 gap-4">
|
|
54
|
+
<div>
|
|
55
|
+
<label class="block text-sm font-medium mb-2">First name</label>
|
|
56
|
+
<input
|
|
57
|
+
type="text"
|
|
58
|
+
bind:value={firstName}
|
|
59
|
+
placeholder="First name"
|
|
60
|
+
class="w-full rounded-md border bg-background px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-ring"
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<div>
|
|
65
|
+
<label class="block text-sm font-medium mb-2">Last name</label>
|
|
66
|
+
<input
|
|
67
|
+
type="text"
|
|
68
|
+
bind:value={lastName}
|
|
69
|
+
placeholder="Last name"
|
|
70
|
+
class="w-full rounded-md border bg-background px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-ring"
|
|
71
|
+
/>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<div>
|
|
76
|
+
<label class="block text-sm font-medium mb-2">Email address</label>
|
|
77
|
+
<input
|
|
78
|
+
type="email"
|
|
79
|
+
bind:value={email}
|
|
80
|
+
placeholder="email@example.com"
|
|
81
|
+
class="w-full rounded-md border bg-background px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-ring"
|
|
82
|
+
/>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<div class="flex justify-end pt-2">
|
|
86
|
+
<Button onclick={handleSave}>
|
|
87
|
+
Save changes
|
|
88
|
+
</Button>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
|
|
94
|
+
<!-- Change Password Section -->
|
|
95
|
+
<div class="rounded-lg border bg-background p-4 sm:p-6">
|
|
96
|
+
<div class="flex flex-col gap-6 sm:grid sm:grid-cols-[200px_1fr] sm:gap-6">
|
|
97
|
+
<div>
|
|
98
|
+
<h3 class="text-lg font-semibold">Change password</h3>
|
|
99
|
+
<p class="mt-2 text-sm text-muted-foreground">Update your account password.</p>
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
<div class="space-y-4">
|
|
103
|
+
<div>
|
|
104
|
+
<label class="block text-sm font-medium mb-2">Current password</label>
|
|
105
|
+
<input
|
|
106
|
+
type="password"
|
|
107
|
+
bind:value={currentPassword}
|
|
108
|
+
placeholder="Enter current password"
|
|
109
|
+
class="w-full rounded-md border bg-background px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-ring"
|
|
110
|
+
/>
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
<div>
|
|
114
|
+
<label class="block text-sm font-medium mb-2">New password</label>
|
|
115
|
+
<input
|
|
116
|
+
type="password"
|
|
117
|
+
bind:value={newPassword}
|
|
118
|
+
placeholder="Enter new password"
|
|
119
|
+
class="w-full rounded-md border bg-background px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-ring"
|
|
120
|
+
/>
|
|
121
|
+
</div>
|
|
122
|
+
|
|
123
|
+
<div>
|
|
124
|
+
<label class="block text-sm font-medium mb-2">Confirm password</label>
|
|
125
|
+
<input
|
|
126
|
+
type="password"
|
|
127
|
+
bind:value={confirmPassword}
|
|
128
|
+
placeholder="Confirm new password"
|
|
129
|
+
class="w-full rounded-md border bg-background px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-ring"
|
|
130
|
+
/>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
<div class="flex justify-end pt-2">
|
|
134
|
+
<Button onclick={handleSave}>
|
|
135
|
+
Save changes
|
|
136
|
+
</Button>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
<!-- Advanced Settings Section -->
|
|
143
|
+
<div class="rounded-lg border bg-background p-4 sm:p-6">
|
|
144
|
+
<div class="flex flex-col gap-6 sm:grid sm:grid-cols-[200px_1fr] sm:gap-6">
|
|
145
|
+
<div>
|
|
146
|
+
<h3 class="text-lg font-semibold">Advanced settings</h3>
|
|
147
|
+
<p class="mt-2 text-sm text-muted-foreground">Manage additional account options.</p>
|
|
148
|
+
</div>
|
|
149
|
+
|
|
150
|
+
<div class="space-y-4">
|
|
151
|
+
<!-- Data Export Access -->
|
|
152
|
+
<div class="flex items-start gap-3">
|
|
153
|
+
<input
|
|
154
|
+
type="checkbox"
|
|
155
|
+
bind:checked={dataExportAccess}
|
|
156
|
+
id="data-export"
|
|
157
|
+
class="mt-1 rounded border bg-background"
|
|
158
|
+
/>
|
|
159
|
+
<div class="flex-1">
|
|
160
|
+
<label for="data-export" class="text-sm font-medium cursor-pointer block">Data Export Access</label>
|
|
161
|
+
<p class="text-xs text-muted-foreground mt-1">Allow export of personal data and backups.</p>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
|
|
165
|
+
<!-- Allow Admin to Add Members -->
|
|
166
|
+
<div class="flex items-start gap-3">
|
|
167
|
+
<input
|
|
168
|
+
type="checkbox"
|
|
169
|
+
bind:checked={allowAdminToAddMembers}
|
|
170
|
+
id="admin-members"
|
|
171
|
+
class="mt-1 rounded border bg-background"
|
|
172
|
+
/>
|
|
173
|
+
<div class="flex-1">
|
|
174
|
+
<label for="admin-members" class="text-sm font-medium cursor-pointer block">Allow Admin to Add Members</label>
|
|
175
|
+
<p class="text-xs text-muted-foreground mt-1">Admins can invite and manage members.</p>
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
|
|
179
|
+
<!-- Enable Two-Factor Authentication -->
|
|
180
|
+
<div class="flex items-start gap-3">
|
|
181
|
+
<input
|
|
182
|
+
type="checkbox"
|
|
183
|
+
bind:checked={enableTwoFactorAuth}
|
|
184
|
+
id="two-factor"
|
|
185
|
+
class="mt-1 rounded border bg-background"
|
|
186
|
+
/>
|
|
187
|
+
<div class="flex-1">
|
|
188
|
+
<label for="two-factor" class="text-sm font-medium cursor-pointer block">Enable Two-Factor Authentication</label>
|
|
189
|
+
<p class="text-xs text-muted-foreground mt-1">Require 2FA for added account security.</p>
|
|
190
|
+
</div>
|
|
191
|
+
</div>
|
|
192
|
+
|
|
193
|
+
<div class="flex justify-end pt-2">
|
|
194
|
+
<Button onclick={handleSave}>
|
|
195
|
+
Save changes
|
|
196
|
+
</Button>
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
</div>
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { cn } from '$lib/utils/cn';
|
|
3
|
+
import { Button } from '$lib/components/ui';
|
|
4
|
+
|
|
5
|
+
interface ApiRow {
|
|
6
|
+
name: string;
|
|
7
|
+
date: string;
|
|
8
|
+
status: 'Active' | 'Revoked' | 'Disabled' | 'Sent';
|
|
9
|
+
actions?: () => void;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface Props {
|
|
13
|
+
class?: string;
|
|
14
|
+
publicApis?: ApiRow[];
|
|
15
|
+
privateApis?: ApiRow[];
|
|
16
|
+
onNewPublic?: () => void;
|
|
17
|
+
onNewPrivate?: () => void;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const {
|
|
21
|
+
class: className,
|
|
22
|
+
publicApis = [
|
|
23
|
+
{ name: 'Table Cell Text', date: 'Sep 6, 2024 2:08 am', status: 'Active' },
|
|
24
|
+
{ name: 'Table Cell Text', date: 'Sep 12, 2024 2:07 pm', status: 'Active' },
|
|
25
|
+
{ name: 'User Data API', date: 'Aug 20, 2024 7:59 am', status: 'Revoked' }
|
|
26
|
+
],
|
|
27
|
+
privateApis = [
|
|
28
|
+
{ name: 'Webhook Manager', date: 'Sep 10, 2024 3:45 pm', status: 'Active' },
|
|
29
|
+
{ name: 'Analytics Engine', date: 'Sep 5, 2024 11:22 am', status: 'Active' },
|
|
30
|
+
{ name: 'Billing API', date: 'Aug 19, 2024 8:51 pm', status: 'Disabled' }
|
|
31
|
+
],
|
|
32
|
+
onNewPublic,
|
|
33
|
+
onNewPrivate
|
|
34
|
+
}: Props = $props();
|
|
35
|
+
|
|
36
|
+
function getStatusBadgeClass(status: string): string {
|
|
37
|
+
if (status === 'Active') {
|
|
38
|
+
return 'bg-foreground text-background text-xs px-2 py-0.5 rounded-full';
|
|
39
|
+
} else if (status === 'Revoked') {
|
|
40
|
+
return 'text-foreground text-xs';
|
|
41
|
+
} else if (status === 'Disabled') {
|
|
42
|
+
return 'text-destructive text-xs';
|
|
43
|
+
}
|
|
44
|
+
return 'text-xs';
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// SVG Icons
|
|
48
|
+
function MoreIcon() {
|
|
49
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><circle cx="12" cy="5" r="2"/><circle cx="12" cy="12" r="2"/><circle cx="12" cy="19" r="2"/></svg>`;
|
|
50
|
+
}
|
|
51
|
+
</script>
|
|
52
|
+
|
|
53
|
+
<div class={cn('space-y-6', className)}>
|
|
54
|
+
<!-- Header -->
|
|
55
|
+
<div class="flex items-center justify-between">
|
|
56
|
+
<div>
|
|
57
|
+
<h2 class="text-2xl font-semibold">API Settings</h2>
|
|
58
|
+
<p class="mt-1 text-sm text-muted-foreground">Manage your API keys and integrations.</p>
|
|
59
|
+
</div>
|
|
60
|
+
<Button variant="outline">
|
|
61
|
+
Contact Support
|
|
62
|
+
</Button>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<!-- Public APIs Section -->
|
|
66
|
+
<div class="rounded-lg border bg-background p-4 sm:p-6">
|
|
67
|
+
<div class="flex items-center justify-between mb-6">
|
|
68
|
+
<div>
|
|
69
|
+
<h3 class="text-lg font-semibold">Public APIs</h3>
|
|
70
|
+
<p class="mt-1 text-sm text-muted-foreground">Your public API endpoints.</p>
|
|
71
|
+
</div>
|
|
72
|
+
<Button onclick={onNewPublic}>
|
|
73
|
+
+ New
|
|
74
|
+
</Button>
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
|
+
<div class="overflow-x-auto">
|
|
78
|
+
<table class="w-full text-sm">
|
|
79
|
+
<thead>
|
|
80
|
+
<tr class="border-b">
|
|
81
|
+
<th class="text-left text-xs text-muted-foreground font-medium pb-2">API Name</th>
|
|
82
|
+
<th class="text-left text-xs text-muted-foreground font-medium pb-2">Date of Creation</th>
|
|
83
|
+
<th class="text-left text-xs text-muted-foreground font-medium pb-2">Status</th>
|
|
84
|
+
<th class="text-left text-xs text-muted-foreground font-medium pb-2">Head Text</th>
|
|
85
|
+
<th class="text-left text-xs text-muted-foreground font-medium pb-2"></th>
|
|
86
|
+
</tr>
|
|
87
|
+
</thead>
|
|
88
|
+
<tbody>
|
|
89
|
+
{#each publicApis as api (api.name)}
|
|
90
|
+
<tr class="border-b">
|
|
91
|
+
<td class="py-3">{api.name}</td>
|
|
92
|
+
<td class="py-3 text-muted-foreground">{api.date}</td>
|
|
93
|
+
<td class="py-3">
|
|
94
|
+
<span class={getStatusBadgeClass(api.status)}>
|
|
95
|
+
{api.status}
|
|
96
|
+
</span>
|
|
97
|
+
</td>
|
|
98
|
+
<td class="py-3 text-muted-foreground">—</td>
|
|
99
|
+
<td class="py-3 text-right">
|
|
100
|
+
<button class="text-muted-foreground hover:text-foreground transition-colors">
|
|
101
|
+
{@html MoreIcon()}
|
|
102
|
+
</button>
|
|
103
|
+
</td>
|
|
104
|
+
</tr>
|
|
105
|
+
{/each}
|
|
106
|
+
</tbody>
|
|
107
|
+
</table>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
<!-- Private APIs Section -->
|
|
112
|
+
<div class="rounded-lg border bg-background p-4 sm:p-6">
|
|
113
|
+
<div class="flex items-center justify-between mb-6">
|
|
114
|
+
<div>
|
|
115
|
+
<h3 class="text-lg font-semibold">Private APIs</h3>
|
|
116
|
+
<p class="mt-1 text-sm text-muted-foreground">Your private API endpoints.</p>
|
|
117
|
+
</div>
|
|
118
|
+
<Button onclick={onNewPrivate}>
|
|
119
|
+
+ New
|
|
120
|
+
</Button>
|
|
121
|
+
</div>
|
|
122
|
+
|
|
123
|
+
<div class="overflow-x-auto">
|
|
124
|
+
<table class="w-full text-sm">
|
|
125
|
+
<thead>
|
|
126
|
+
<tr class="border-b">
|
|
127
|
+
<th class="text-left text-xs text-muted-foreground font-medium pb-2">API Name</th>
|
|
128
|
+
<th class="text-left text-xs text-muted-foreground font-medium pb-2">Date of Creation</th>
|
|
129
|
+
<th class="text-left text-xs text-muted-foreground font-medium pb-2">Status</th>
|
|
130
|
+
<th class="text-left text-xs text-muted-foreground font-medium pb-2">Head Text</th>
|
|
131
|
+
<th class="text-left text-xs text-muted-foreground font-medium pb-2"></th>
|
|
132
|
+
</tr>
|
|
133
|
+
</thead>
|
|
134
|
+
<tbody>
|
|
135
|
+
{#each privateApis as api (api.name)}
|
|
136
|
+
<tr class="border-b">
|
|
137
|
+
<td class="py-3">{api.name}</td>
|
|
138
|
+
<td class="py-3 text-muted-foreground">{api.date}</td>
|
|
139
|
+
<td class="py-3">
|
|
140
|
+
<span class={getStatusBadgeClass(api.status)}>
|
|
141
|
+
{api.status}
|
|
142
|
+
</span>
|
|
143
|
+
</td>
|
|
144
|
+
<td class="py-3 text-muted-foreground">—</td>
|
|
145
|
+
<td class="py-3 text-right">
|
|
146
|
+
<button class="text-muted-foreground hover:text-foreground transition-colors">
|
|
147
|
+
{@html MoreIcon()}
|
|
148
|
+
</button>
|
|
149
|
+
</td>
|
|
150
|
+
</tr>
|
|
151
|
+
{/each}
|
|
152
|
+
</tbody>
|
|
153
|
+
</table>
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
</div>
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { cn } from '$lib/utils/cn';
|
|
3
|
+
import { Button } from '$lib/components/ui';
|
|
4
|
+
|
|
5
|
+
interface Integration {
|
|
6
|
+
name: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
logoUrl?: string;
|
|
9
|
+
enabled?: boolean;
|
|
10
|
+
href?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
interface Props {
|
|
14
|
+
class?: string;
|
|
15
|
+
integrations?: Integration[];
|
|
16
|
+
onCreate?: () => void;
|
|
17
|
+
onExport?: () => void;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const defaultIntegrations: Integration[] = [
|
|
21
|
+
{ name: 'Facebook', enabled: false },
|
|
22
|
+
{ name: 'GitHub', enabled: false },
|
|
23
|
+
{ name: 'WhatsApp', enabled: false },
|
|
24
|
+
{ name: 'Figma', enabled: false },
|
|
25
|
+
{ name: 'Google', enabled: false },
|
|
26
|
+
{ name: 'Pinterest', enabled: false },
|
|
27
|
+
{ name: 'Messenger', enabled: false },
|
|
28
|
+
{ name: 'PayPal', enabled: false },
|
|
29
|
+
{ name: 'Vimeo', enabled: false }
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const {
|
|
33
|
+
class: className,
|
|
34
|
+
integrations = defaultIntegrations,
|
|
35
|
+
onCreate,
|
|
36
|
+
onExport
|
|
37
|
+
}: Props = $props();
|
|
38
|
+
|
|
39
|
+
let activeFilter = $state<'All' | 'Active' | 'Inactive'>('All');
|
|
40
|
+
let searchQuery = $state('');
|
|
41
|
+
let enabledStates = $state<Record<string, boolean>>(
|
|
42
|
+
Object.fromEntries(integrations.map((int, idx) => [`${idx}`, int.enabled ?? false]))
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
$derived filteredIntegrations = integrations.filter((int, idx) => {
|
|
46
|
+
const isEnabled = enabledStates[`${idx}`];
|
|
47
|
+
const matchesFilter =
|
|
48
|
+
activeFilter === 'All' ||
|
|
49
|
+
(activeFilter === 'Active' && isEnabled) ||
|
|
50
|
+
(activeFilter === 'Inactive' && !isEnabled);
|
|
51
|
+
|
|
52
|
+
const matchesSearch = int.name.toLowerCase().includes(searchQuery.toLowerCase());
|
|
53
|
+
|
|
54
|
+
return matchesFilter && matchesSearch;
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
// SVG Icons
|
|
58
|
+
function ExternalLinkIcon() {
|
|
59
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg>`;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function SettingsIcon() {
|
|
63
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M12 1v6m0 6v6M4.22 4.22l4.24 4.24m5.08 5.08l4.24 4.24M1 12h6m6 0h6M4.22 19.78l4.24-4.24m5.08-5.08l4.24-4.24"/></svg>`;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function toggleIntegration(idx: number) {
|
|
67
|
+
enabledStates[`${idx}`] = !enabledStates[`${idx}`];
|
|
68
|
+
}
|
|
69
|
+
</script>
|
|
70
|
+
|
|
71
|
+
<div class={cn('space-y-6', className)}>
|
|
72
|
+
<!-- Header -->
|
|
73
|
+
<div class="flex items-center justify-between">
|
|
74
|
+
<h2 class="text-2xl font-semibold">Integrations</h2>
|
|
75
|
+
<div class="flex gap-2">
|
|
76
|
+
<Button variant="outline" onclick={onExport}>
|
|
77
|
+
Export
|
|
78
|
+
</Button>
|
|
79
|
+
<Button onclick={onCreate}>
|
|
80
|
+
Create new
|
|
81
|
+
</Button>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<!-- Filter Tabs and Search -->
|
|
86
|
+
<div class="flex items-center justify-between gap-4">
|
|
87
|
+
<div class="flex gap-1 p-1 bg-muted rounded-md">
|
|
88
|
+
<button
|
|
89
|
+
onclick={() => (activeFilter = 'All')}
|
|
90
|
+
class={cn(
|
|
91
|
+
'px-3 py-1 rounded text-sm font-medium transition-colors',
|
|
92
|
+
activeFilter === 'All' ? 'bg-background shadow-sm' : 'text-muted-foreground hover:text-foreground'
|
|
93
|
+
)}
|
|
94
|
+
>
|
|
95
|
+
All
|
|
96
|
+
</button>
|
|
97
|
+
<button
|
|
98
|
+
onclick={() => (activeFilter = 'Active')}
|
|
99
|
+
class={cn(
|
|
100
|
+
'px-3 py-1 rounded text-sm font-medium transition-colors',
|
|
101
|
+
activeFilter === 'Active' ? 'bg-background shadow-sm' : 'text-muted-foreground hover:text-foreground'
|
|
102
|
+
)}
|
|
103
|
+
>
|
|
104
|
+
Active
|
|
105
|
+
</button>
|
|
106
|
+
<button
|
|
107
|
+
onclick={() => (activeFilter = 'Inactive')}
|
|
108
|
+
class={cn(
|
|
109
|
+
'px-3 py-1 rounded text-sm font-medium transition-colors',
|
|
110
|
+
activeFilter === 'Inactive' ? 'bg-background shadow-sm' : 'text-muted-foreground hover:text-foreground'
|
|
111
|
+
)}
|
|
112
|
+
>
|
|
113
|
+
Inactive
|
|
114
|
+
</button>
|
|
115
|
+
</div>
|
|
116
|
+
|
|
117
|
+
<input
|
|
118
|
+
type="search"
|
|
119
|
+
bind:value={searchQuery}
|
|
120
|
+
placeholder="Search integrations..."
|
|
121
|
+
class="w-48 rounded-md border bg-background px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-ring"
|
|
122
|
+
/>
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
<!-- Integration Cards Grid -->
|
|
126
|
+
<div class="grid gap-4 sm:grid-cols-3">
|
|
127
|
+
{#each filteredIntegrations as integration, idx (integration.name)}
|
|
128
|
+
{@const globalIdx = integrations.indexOf(integration)}
|
|
129
|
+
<div class="rounded-lg border bg-background p-4">
|
|
130
|
+
<!-- Top Row with Logo and External Link -->
|
|
131
|
+
<div class="flex items-center justify-between mb-4">
|
|
132
|
+
<div class="w-8 h-8 rounded bg-muted flex-shrink-0"></div>
|
|
133
|
+
<button class="text-muted-foreground hover:text-foreground transition-colors">
|
|
134
|
+
{@html ExternalLinkIcon()}
|
|
135
|
+
</button>
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
<!-- Title and Description -->
|
|
139
|
+
<div class="mb-4">
|
|
140
|
+
<h3 class="text-sm font-semibold">{integration.name}</h3>
|
|
141
|
+
<p class="text-xs text-muted-foreground mt-1">{integration.description || 'Connect and manage integrations'}</p>
|
|
142
|
+
</div>
|
|
143
|
+
|
|
144
|
+
<!-- Bottom Row with Settings Button and Toggle -->
|
|
145
|
+
<div class="flex items-center justify-between">
|
|
146
|
+
<Button variant="outline" size="sm">
|
|
147
|
+
⚙ Settings
|
|
148
|
+
</Button>
|
|
149
|
+
|
|
150
|
+
<!-- Custom Toggle Switch -->
|
|
151
|
+
<button
|
|
152
|
+
onclick={() => toggleIntegration(globalIdx)}
|
|
153
|
+
class={cn(
|
|
154
|
+
'relative inline-flex h-5 w-9 items-center rounded-full transition-colors',
|
|
155
|
+
enabledStates[`${globalIdx}`] ? 'bg-foreground' : 'bg-muted'
|
|
156
|
+
)}
|
|
157
|
+
>
|
|
158
|
+
<span
|
|
159
|
+
class={cn(
|
|
160
|
+
'inline-block h-4 w-4 transform rounded-full bg-background transition-transform',
|
|
161
|
+
enabledStates[`${globalIdx}`] ? 'translate-x-4' : 'translate-x-0.5'
|
|
162
|
+
)}
|
|
163
|
+
></span>
|
|
164
|
+
</button>
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
{/each}
|
|
168
|
+
</div>
|
|
169
|
+
|
|
170
|
+
{#if filteredIntegrations.length === 0}
|
|
171
|
+
<div class="text-center py-12">
|
|
172
|
+
<p class="text-muted-foreground">No integrations found</p>
|
|
173
|
+
</div>
|
|
174
|
+
{/if}
|
|
175
|
+
</div>
|