fulldev-ui 0.10.1 → 0.11.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 +6 -0
- package/README.md +7 -1
- package/package.json +6 -4
- package/public/r/accordion.json +7 -1
- package/public/r/alert-dialog.json +7 -1
- package/public/r/alert.json +6 -0
- package/public/r/article-1.json +7 -1
- package/public/r/article-2.json +7 -1
- package/public/r/articles-1.json +7 -1
- package/public/r/articles-2.json +7 -1
- package/public/r/articles-3.json +7 -1
- package/public/r/articles-4.json +7 -1
- package/public/r/avatar.json +6 -0
- package/public/r/badge.json +6 -0
- package/public/r/banner-1.json +7 -1
- package/public/r/banner-2.json +7 -1
- package/public/r/banner.json +6 -0
- package/public/r/blocks-1.json +6 -1
- package/public/r/blocks.json +92 -0
- package/public/r/breadcrumb.json +6 -0
- package/public/r/button.json +6 -0
- package/public/r/card.json +6 -0
- package/public/r/carousel.json +6 -0
- package/public/r/checkbox.json +6 -0
- package/public/r/collapsible.json +7 -1
- package/public/r/combobox.json +6 -0
- package/public/r/command.json +6 -0
- package/public/r/components.json +14 -3
- package/public/r/contact-1.json +10 -2
- package/public/r/contact-2.json +10 -2
- package/public/r/contact-3.json +10 -2
- package/public/r/content-1.json +7 -1
- package/public/r/content-2.json +7 -1
- package/public/r/content-3.json +7 -1
- package/public/r/content-4.json +7 -1
- package/public/r/cta-1.json +7 -1
- package/public/r/cta-2.json +7 -1
- package/public/r/cta-3.json +7 -1
- package/public/r/cta-4.json +7 -1
- package/public/r/cta-5.json +7 -1
- package/public/r/cta-6.json +7 -1
- package/public/r/cta-7.json +7 -1
- package/public/r/cta-8.json +7 -1
- package/public/r/dialog.json +7 -1
- package/public/r/doc-1.json +7 -1
- package/public/r/dropdown-menu.json +7 -1
- package/public/r/empty.json +6 -0
- package/public/r/faqs-1.json +7 -1
- package/public/r/faqs-2.json +7 -1
- package/public/r/faqs-3.json +7 -1
- package/public/r/faqs-4.json +7 -1
- package/public/r/features-1.json +7 -1
- package/public/r/features-2.json +7 -1
- package/public/r/features-3.json +7 -1
- package/public/r/features-4.json +7 -1
- package/public/r/features-5.json +7 -1
- package/public/r/features-6.json +7 -1
- package/public/r/field.json +6 -0
- package/public/r/footer-1.json +7 -1
- package/public/r/footer-2.json +7 -1
- package/public/r/footer-3.json +7 -1
- package/public/r/form.json +6 -0
- package/public/r/header-1.json +7 -1
- package/public/r/header-2.json +7 -1
- package/public/r/header-3.json +7 -1
- package/public/r/header-4.json +7 -1
- package/public/r/header-5.json +7 -1
- package/public/r/header.json +6 -0
- package/public/r/hero-1.json +7 -1
- package/public/r/hero-10.json +7 -1
- package/public/r/hero-11.json +7 -1
- package/public/r/hero-12.json +7 -1
- package/public/r/hero-13.json +7 -1
- package/public/r/hero-2.json +7 -1
- package/public/r/hero-3.json +7 -1
- package/public/r/hero-4.json +7 -1
- package/public/r/hero-5.json +7 -1
- package/public/r/hero-6.json +7 -1
- package/public/r/hero-7.json +7 -1
- package/public/r/hero-8.json +7 -1
- package/public/r/hero-9.json +7 -1
- package/public/r/hover-card.json +7 -1
- package/public/r/icon.json +7 -1
- package/public/r/init.json +28 -0
- package/public/r/input-group.json +6 -0
- package/public/r/input.json +6 -0
- package/public/r/item.json +6 -0
- package/public/r/kbd.json +6 -0
- package/public/r/label.json +6 -0
- package/public/r/layout.json +6 -0
- package/public/r/links-2.json +7 -1
- package/public/r/logo.json +6 -0
- package/public/r/logos-1.json +7 -1
- package/public/r/logos-2.json +7 -1
- package/public/r/logos-3.json +7 -1
- package/public/r/marquee.json +6 -0
- package/public/r/native-select.json +6 -0
- package/public/r/navigation-menu.json +7 -1
- package/public/r/popover.json +7 -1
- package/public/r/price.json +6 -0
- package/public/r/pricing-1.json +7 -1
- package/public/r/pricing-2.json +7 -1
- package/public/r/pricing-3.json +7 -1
- package/public/r/product-1.json +7 -1
- package/public/r/products-1.json +7 -1
- package/public/r/products-2.json +7 -1
- package/public/r/products-3.json +7 -1
- package/public/r/products-4.json +7 -1
- package/public/r/products-5.json +7 -1
- package/public/r/radio-group.json +7 -1
- package/public/r/rating.json +6 -0
- package/public/r/registry.json +1645 -457
- package/public/r/reviews-1.json +7 -1
- package/public/r/reviews-2.json +7 -1
- package/public/r/reviews-3.json +7 -1
- package/public/r/reviews-4.json +7 -1
- package/public/r/reviews-5.json +7 -1
- package/public/r/section.json +18 -2
- package/public/r/select.json +6 -0
- package/public/r/separator.json +6 -0
- package/public/r/services-1.json +7 -1
- package/public/r/services-2.json +7 -1
- package/public/r/services-3.json +7 -1
- package/public/r/services-4.json +7 -1
- package/public/r/services-5.json +7 -1
- package/public/r/services-6.json +7 -1
- package/public/r/services-7.json +7 -1
- package/public/r/sheet.json +8 -2
- package/public/r/sidebar-1.json +5 -0
- package/public/r/sidebar.json +6 -0
- package/public/r/skeleton.json +6 -0
- package/public/r/slider.json +7 -1
- package/public/r/spinner.json +6 -0
- package/public/r/switch.json +7 -1
- package/public/r/table.json +6 -0
- package/public/r/tabs.json +7 -1
- package/public/r/textarea.json +6 -0
- package/public/r/theme-toggle.json +6 -0
- package/public/r/toc.json +6 -0
- package/public/r/toggle.json +7 -1
- package/public/r/tooltip.json +7 -1
- package/public/r/typography.json +6 -0
- package/public/r/video.json +6 -0
- package/registry/init/global.css +187 -0
- package/registry.json +1137 -454
- package/src/components/blocks/article-1.astro +4 -3
- package/src/components/blocks/article-2.astro +4 -3
- package/src/components/blocks/articles-1.astro +18 -9
- package/src/components/blocks/articles-2.astro +4 -3
- package/src/components/blocks/articles-3.astro +11 -9
- package/src/components/blocks/articles-4.astro +11 -4
- package/src/components/blocks/banner-1.astro +4 -3
- package/src/components/blocks/banner-2.astro +10 -4
- package/src/components/blocks/blocks-1.astro +1 -1
- package/src/components/blocks/contact-1.astro +72 -39
- package/src/components/blocks/contact-2.astro +69 -35
- package/src/components/blocks/contact-3.astro +61 -34
- package/src/components/blocks/content-1.astro +15 -10
- package/src/components/blocks/content-2.astro +15 -10
- package/src/components/blocks/content-3.astro +14 -12
- package/src/components/blocks/content-4.astro +15 -10
- package/src/components/blocks/cta-1.astro +14 -10
- package/src/components/blocks/cta-2.astro +11 -8
- package/src/components/blocks/cta-3.astro +15 -8
- package/src/components/blocks/cta-4.astro +14 -9
- package/src/components/blocks/cta-5.astro +12 -8
- package/src/components/blocks/cta-6.astro +11 -8
- package/src/components/blocks/cta-7.astro +17 -10
- package/src/components/blocks/cta-8.astro +15 -10
- package/src/components/blocks/doc-1.astro +1 -1
- package/src/components/blocks/faqs-1.astro +22 -11
- package/src/components/blocks/faqs-2.astro +19 -9
- package/src/components/blocks/faqs-3.astro +19 -9
- package/src/components/blocks/faqs-4.astro +12 -9
- package/src/components/blocks/features-1.astro +21 -13
- package/src/components/blocks/features-2.astro +22 -13
- package/src/components/blocks/features-3.astro +14 -13
- package/src/components/blocks/features-4.astro +18 -9
- package/src/components/blocks/features-5.astro +22 -13
- package/src/components/blocks/features-6.astro +19 -9
- package/src/components/blocks/footer-1.astro +4 -3
- package/src/components/blocks/footer-2.astro +4 -3
- package/src/components/blocks/footer-3.astro +4 -3
- package/src/components/blocks/header-1.astro +13 -7
- package/src/components/blocks/header-2.astro +12 -6
- package/src/components/blocks/header-3.astro +12 -6
- package/src/components/blocks/header-4.astro +13 -6
- package/src/components/blocks/header-5.astro +16 -6
- package/src/components/blocks/hero-1.astro +11 -8
- package/src/components/blocks/hero-10.astro +7 -3
- package/src/components/blocks/hero-11.astro +4 -2
- package/src/components/blocks/hero-12.astro +11 -4
- package/src/components/blocks/hero-13.astro +11 -4
- package/src/components/blocks/hero-2.astro +11 -8
- package/src/components/blocks/hero-3.astro +11 -3
- package/src/components/blocks/hero-4.astro +4 -2
- package/src/components/blocks/hero-5.astro +4 -3
- package/src/components/blocks/hero-6.astro +4 -3
- package/src/components/blocks/hero-7.astro +4 -3
- package/src/components/blocks/hero-8.astro +11 -4
- package/src/components/blocks/hero-9.astro +4 -3
- package/src/components/blocks/links-2.astro +4 -4
- package/src/components/blocks/logos-1.astro +14 -16
- package/src/components/blocks/logos-2.astro +14 -12
- package/src/components/blocks/logos-3.astro +5 -4
- package/src/components/blocks/pricing-1.astro +13 -16
- package/src/components/blocks/pricing-2.astro +14 -13
- package/src/components/blocks/pricing-3.astro +20 -16
- package/src/components/blocks/product-1.astro +4 -3
- package/src/components/blocks/products-1.astro +11 -9
- package/src/components/blocks/products-2.astro +12 -9
- package/src/components/blocks/products-3.astro +12 -9
- package/src/components/blocks/products-4.astro +18 -9
- package/src/components/blocks/products-5.astro +18 -9
- package/src/components/blocks/reviews-1.astro +13 -12
- package/src/components/blocks/reviews-2.astro +4 -4
- package/src/components/blocks/reviews-3.astro +13 -12
- package/src/components/blocks/reviews-4.astro +13 -12
- package/src/components/blocks/reviews-5.astro +13 -12
- package/src/components/blocks/services-1.astro +19 -9
- package/src/components/blocks/services-2.astro +11 -8
- package/src/components/blocks/services-3.astro +11 -8
- package/src/components/blocks/services-4.astro +19 -9
- package/src/components/blocks/services-5.astro +11 -8
- package/src/components/blocks/services-6.astro +4 -3
- package/src/components/blocks/services-7.astro +12 -8
- package/src/components/ui/accordion/accordion.astro +1 -0
- package/src/components/ui/alert-dialog/alert-dialog.astro +1 -0
- package/src/components/ui/collapsible/collapsible.astro +1 -0
- package/src/components/ui/dialog/dialog.astro +1 -0
- package/src/components/ui/dropdown-menu/dropdown-menu.astro +1 -0
- package/src/components/ui/hover-card/hover-card.astro +7 -3
- package/src/components/ui/icon/icon.astro +46 -29
- package/src/components/ui/navigation-menu/navigation-menu.astro +1 -0
- package/src/components/ui/popover/popover.astro +1 -0
- package/src/components/ui/radio-group/radio-group.astro +1 -0
- package/src/components/ui/section/index.ts +2 -0
- package/src/components/ui/section/section-container.astro +1 -0
- package/src/components/ui/section/section-description.astro +20 -0
- package/src/components/ui/section/section-title.astro +20 -0
- package/src/components/ui/sheet/sheet-close.astro +4 -2
- package/src/components/ui/sheet/sheet.astro +1 -0
- package/src/components/ui/slider/slider.astro +1 -0
- package/src/components/ui/switch/switch.astro +1 -0
- package/src/components/ui/tabs/tabs.astro +1 -0
- package/src/components/ui/toggle/toggle.astro +1 -0
- package/src/components/ui/tooltip/tooltip.astro +1 -0
- package/src/lib/pages.ts +12 -0
package/public/r/pricing-3.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
3
|
"name": "pricing-3",
|
|
4
|
+
"title": "Pricing 3",
|
|
5
|
+
"description": "Pricing sections for plan grids, featured offers, and concise offer presentation.",
|
|
4
6
|
"dependencies": [
|
|
5
7
|
"@lucide/astro"
|
|
6
8
|
],
|
|
@@ -15,9 +17,13 @@
|
|
|
15
17
|
"files": [
|
|
16
18
|
{
|
|
17
19
|
"path": "src/components/blocks/pricing-3.astro",
|
|
18
|
-
"content": "---\nimport { CheckIcon } from \"@lucide/astro\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {
|
|
20
|
+
"content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { CheckIcon } from \"@lucide/astro\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {\n Section,\n SectionContainer,\n SectionDescription,\n SectionTitle,\n} from \"@/components/ui/section\"\nimport { Separator } from \"@/components/ui/separator\"\n\ntype Props = HTMLAttributes<\"section\"> & {\n badge?: string\n title: string\n description?: string\n offer: {\n name: string\n description: string\n price: number\n currency: string\n unit: string\n features: string[]\n button: {\n label: string\n href: string\n variant?: \"default\" | \"outline\" | \"secondary\" | \"ghost\"\n }\n }\n}\n\nconst {\n class: className,\n badge,\n title,\n description,\n offer,\n ...props\n} = Astro.props\n---\n\n<Section class={cn(\"\", className)} {...props}>\n <SectionContainer class=\"items-center gap-8 text-center\">\n <div class=\"flex max-w-2xl flex-col items-center gap-4\">\n {badge && <Badge variant=\"secondary\">{badge}</Badge>}\n <SectionTitle>\n {title}\n </SectionTitle>\n {description && <SectionDescription>{description}</SectionDescription>}\n </div>\n <Card class=\"ring-primary w-full max-w-md ring-2\">\n <CardHeader class=\"text-left\">\n <CardTitle>{offer.name}</CardTitle>\n <CardDescription>{offer.description}</CardDescription>\n </CardHeader>\n <CardContent class=\"flex flex-col gap-6 text-left\">\n <Price>\n <PriceValue price={offer.price} currency={offer.currency} />\n <PriceUnit>{offer.unit}</PriceUnit>\n </Price>\n <Separator />\n <ul class=\"flex flex-col gap-3\">\n {\n offer.features.map((feature) => (\n <li class=\"flex items-center gap-3 text-sm\">\n <CheckIcon class=\"text-primary size-4 shrink-0\" />\n {feature}\n </li>\n ))\n }\n </ul>\n </CardContent>\n <CardFooter>\n <Button\n as=\"a\"\n href={offer.button.href}\n variant={offer.button.variant ?? \"default\"}\n class=\"w-full\"\n >\n {offer.button.label}\n </Button>\n </CardFooter>\n </Card>\n </SectionContainer>\n</Section>\n",
|
|
19
21
|
"type": "registry:block"
|
|
20
22
|
}
|
|
21
23
|
],
|
|
24
|
+
"docs": "https://ui.full.dev/blocks/pricing/",
|
|
25
|
+
"categories": [
|
|
26
|
+
"pricing"
|
|
27
|
+
],
|
|
22
28
|
"type": "registry:block"
|
|
23
29
|
}
|
package/public/r/product-1.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
3
|
"name": "product-1",
|
|
4
|
+
"title": "Product 1",
|
|
5
|
+
"description": "A focused product section for flagship offers and compact product storytelling.",
|
|
4
6
|
"registryDependencies": [
|
|
5
7
|
"@fulldev/badge",
|
|
6
8
|
"@fulldev/button",
|
|
@@ -10,9 +12,13 @@
|
|
|
10
12
|
"files": [
|
|
11
13
|
{
|
|
12
14
|
"path": "src/components/blocks/product-1.astro",
|
|
13
|
-
"content": "---\nimport type { ImageMetadata } from \"astro\"\nimport { Image } from \"astro:assets\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport { Section, SectionContainer } from \"@/components/ui/section\"\n\ntype Props =
|
|
15
|
+
"content": "---\nimport type { ImageMetadata } from \"astro\"\nimport { Image } from \"astro:assets\"\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport { Section, SectionContainer } from \"@/components/ui/section\"\n\ntype Props = HTMLAttributes<\"section\"> & {\n badge: string\n title: string\n description: string\n image: {\n src: ImageMetadata\n alt: string\n }\n price: {\n value: number\n currency: string\n unit: string\n }\n note: string\n buttons: {\n label: string\n href: string\n variant?: \"default\" | \"outline\" | \"secondary\" | \"ghost\"\n }[]\n}\n\nconst {\n class: className,\n badge,\n title,\n description,\n image,\n price,\n note,\n buttons,\n ...props\n} = Astro.props\n---\n\n<Section class={cn(\"\", className)} {...props}>\n <SectionContainer class=\"grid gap-8 lg:grid-cols-2 lg:items-center\">\n <Image\n src={image.src}\n alt={image.alt}\n class=\"aspect-[16/11] rounded-lg object-cover\"\n />\n <div class=\"flex flex-col gap-5\">\n <Badge variant=\"secondary\" class=\"w-fit\">{badge}</Badge>\n <h1\n class=\"text-4xl font-semibold tracking-tight text-balance sm:text-5xl\"\n >\n {title}\n </h1>\n <p class=\"text-muted-foreground text-lg leading-8\">{description}</p>\n <Price>\n <PriceValue price={price.value} currency={price.currency} />\n <PriceUnit>{price.unit}</PriceUnit>\n </Price>\n <p class=\"border-y py-4 text-sm leading-7\">{note}</p>\n <div class=\"flex flex-wrap gap-3\">\n {\n buttons.map(({ href, label, ...button }) => (\n <Button as=\"a\" href={href} variant={button.variant}>\n {label}\n </Button>\n ))\n }\n </div>\n </div>\n </SectionContainer>\n</Section>\n",
|
|
14
16
|
"type": "registry:block"
|
|
15
17
|
}
|
|
16
18
|
],
|
|
19
|
+
"docs": "https://ui.full.dev/blocks/product/",
|
|
20
|
+
"categories": [
|
|
21
|
+
"product"
|
|
22
|
+
],
|
|
17
23
|
"type": "registry:block"
|
|
18
24
|
}
|
package/public/r/products-1.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
3
|
"name": "products-1",
|
|
4
|
+
"title": "Products 1",
|
|
5
|
+
"description": "Product collection layouts for bundles, grouped offers, and category-led merchandising.",
|
|
4
6
|
"registryDependencies": [
|
|
5
7
|
"@fulldev/badge",
|
|
6
8
|
"@fulldev/card",
|
|
@@ -10,9 +12,13 @@
|
|
|
10
12
|
"files": [
|
|
11
13
|
{
|
|
12
14
|
"path": "src/components/blocks/products-1.astro",
|
|
13
|
-
"content": "---\nimport type { ImageMetadata } from \"astro\"\nimport { Image } from \"astro:assets\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {
|
|
15
|
+
"content": "---\nimport type { ImageMetadata } from \"astro\"\nimport { Image } from \"astro:assets\"\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {\n Section,\n SectionContainer,\n SectionTitle,\n} from \"@/components/ui/section\"\n\ntype Props = HTMLAttributes<\"section\"> & {\n badge: string\n title: string\n products: {\n image: {\n src: ImageMetadata\n alt: string\n }\n title: string\n description: string\n price: {\n value: number\n currency: string\n unit: string\n }\n }[]\n}\n\nconst { class: className, badge, title, products, ...props } = Astro.props\n---\n\n<Section class={cn(\"\", className)} {...props}>\n <SectionContainer class=\"gap-8\">\n <div class=\"mx-auto max-w-2xl text-center\">\n <Badge variant=\"secondary\">{badge}</Badge>\n <SectionTitle class=\"mt-4\">\n {title}\n </SectionTitle>\n </div>\n <div class=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n {\n products.map((product) => (\n <Card>\n <Image\n src={product.image.src}\n alt={product.image.alt}\n class=\"aspect-[4/3] w-full object-cover\"\n />\n <CardHeader>\n <CardTitle>{product.title}</CardTitle>\n <CardDescription>{product.description}</CardDescription>\n </CardHeader>\n <CardContent>\n <Price>\n <PriceValue\n price={product.price.value}\n currency={product.price.currency}\n />\n <PriceUnit>{product.price.unit}</PriceUnit>\n </Price>\n </CardContent>\n </Card>\n ))\n }\n </div>\n </SectionContainer>\n</Section>\n",
|
|
14
16
|
"type": "registry:block"
|
|
15
17
|
}
|
|
16
18
|
],
|
|
19
|
+
"docs": "https://ui.full.dev/blocks/products/",
|
|
20
|
+
"categories": [
|
|
21
|
+
"products"
|
|
22
|
+
],
|
|
17
23
|
"type": "registry:block"
|
|
18
24
|
}
|
package/public/r/products-2.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
3
|
"name": "products-2",
|
|
4
|
+
"title": "Products 2",
|
|
5
|
+
"description": "Product collection layouts for bundles, grouped offers, and category-led merchandising.",
|
|
4
6
|
"registryDependencies": [
|
|
5
7
|
"@fulldev/badge",
|
|
6
8
|
"@fulldev/price",
|
|
@@ -10,9 +12,13 @@
|
|
|
10
12
|
"files": [
|
|
11
13
|
{
|
|
12
14
|
"path": "src/components/blocks/products-2.astro",
|
|
13
|
-
"content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {
|
|
15
|
+
"content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {\n Section,\n SectionContainer,\n SectionTitle,\n} from \"@/components/ui/section\"\nimport { Separator } from \"@/components/ui/separator\"\n\ntype Props = HTMLAttributes<\"section\"> & {\n badge: string\n title: string\n products: {\n title: string\n description: string\n price: {\n value: number\n currency: string\n unit: string\n }\n }[]\n}\n\nconst { class: className, badge, title, products, ...props } = Astro.props\n---\n\n<Section class={cn(\"\", className)} {...props}>\n <SectionContainer class=\"gap-8\">\n <div class=\"max-w-2xl\">\n <Badge variant=\"secondary\">{badge}</Badge>\n <SectionTitle class=\"mt-4\">\n {title}\n </SectionTitle>\n </div>\n <div class=\"grid gap-3\">\n {\n products.map((item) => (\n <div>\n <Separator />\n <div class=\"flex flex-col gap-4 py-5 md:flex-row md:items-center md:justify-between\">\n <div class=\"flex flex-col gap-1 md:max-w-lg\">\n <h3 class=\"text-base font-medium\">{item.title}</h3>\n <p class=\"text-muted-foreground text-sm leading-6\">\n {item.description}\n </p>\n </div>\n <Price>\n <PriceValue\n price={item.price.value}\n currency={item.price.currency}\n />\n <PriceUnit>{item.price.unit}</PriceUnit>\n </Price>\n </div>\n </div>\n ))\n }\n </div>\n </SectionContainer>\n</Section>\n",
|
|
14
16
|
"type": "registry:block"
|
|
15
17
|
}
|
|
16
18
|
],
|
|
19
|
+
"docs": "https://ui.full.dev/blocks/products/",
|
|
20
|
+
"categories": [
|
|
21
|
+
"products"
|
|
22
|
+
],
|
|
17
23
|
"type": "registry:block"
|
|
18
24
|
}
|
package/public/r/products-3.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
3
|
"name": "products-3",
|
|
4
|
+
"title": "Products 3",
|
|
5
|
+
"description": "Product collection layouts for bundles, grouped offers, and category-led merchandising.",
|
|
4
6
|
"registryDependencies": [
|
|
5
7
|
"@fulldev/badge",
|
|
6
8
|
"@fulldev/card",
|
|
@@ -10,9 +12,13 @@
|
|
|
10
12
|
"files": [
|
|
11
13
|
{
|
|
12
14
|
"path": "src/components/blocks/products-3.astro",
|
|
13
|
-
"content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Price, PriceValue } from \"@/components/ui/price\"\nimport {
|
|
15
|
+
"content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Price, PriceValue } from \"@/components/ui/price\"\nimport {\n Section,\n SectionContainer,\n SectionTitle,\n} from \"@/components/ui/section\"\n\ntype Props = HTMLAttributes<\"section\"> & {\n badge: string\n title: string\n products: {\n title: string\n description: string\n price: {\n value: number\n currency: string\n }\n }[]\n}\n\nconst { class: className, badge, title, products, ...props } = Astro.props\n---\n\n<Section class={cn(\"\", className)} {...props}>\n <SectionContainer class=\"gap-8\">\n <div class=\"mx-auto max-w-2xl text-center\">\n <Badge variant=\"secondary\">{badge}</Badge>\n <SectionTitle class=\"mt-4\">\n {title}\n </SectionTitle>\n </div>\n <div class=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {\n products.map((product) => (\n <Card class=\"text-center\">\n <CardHeader>\n <Price class=\"justify-center\">\n <PriceValue\n class=\"text-3xl font-semibold\"\n price={product.price.value}\n currency={product.price.currency}\n />\n </Price>\n </CardHeader>\n <CardContent class=\"flex flex-col gap-2\">\n <CardTitle>{product.title}</CardTitle>\n <CardDescription>{product.description}</CardDescription>\n </CardContent>\n </Card>\n ))\n }\n </div>\n </SectionContainer>\n</Section>\n",
|
|
14
16
|
"type": "registry:block"
|
|
15
17
|
}
|
|
16
18
|
],
|
|
19
|
+
"docs": "https://ui.full.dev/blocks/products/",
|
|
20
|
+
"categories": [
|
|
21
|
+
"products"
|
|
22
|
+
],
|
|
17
23
|
"type": "registry:block"
|
|
18
24
|
}
|
package/public/r/products-4.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
3
|
"name": "products-4",
|
|
4
|
+
"title": "Products 4",
|
|
5
|
+
"description": "Product collection layouts for bundles, grouped offers, and category-led merchandising.",
|
|
4
6
|
"registryDependencies": [
|
|
5
7
|
"@fulldev/button",
|
|
6
8
|
"@fulldev/card",
|
|
@@ -10,9 +12,13 @@
|
|
|
10
12
|
"files": [
|
|
11
13
|
{
|
|
12
14
|
"path": "src/components/blocks/products-4.astro",
|
|
13
|
-
"content": "---\nimport type { ImageMetadata } from \"astro\"\nimport { Image } from \"astro:assets\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {
|
|
15
|
+
"content": "---\nimport type { ImageMetadata } from \"astro\"\nimport { Image } from \"astro:assets\"\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {\n Section,\n SectionContainer,\n SectionTitle,\n} from \"@/components/ui/section\"\n\ntype Props = HTMLAttributes<\"section\"> & {\n title: string\n description: string\n buttons: {\n label: string\n href: string\n variant?: \"default\" | \"outline\" | \"secondary\" | \"ghost\"\n }[]\n products: {\n image: {\n src: ImageMetadata\n alt: string\n }\n title: string\n description: string\n price: {\n value: number\n currency: string\n unit: string\n }\n }[]\n}\n\nconst {\n class: className,\n title,\n description,\n buttons,\n products,\n ...props\n} = Astro.props\n---\n\n<Section class={cn(\"\", className)} {...props}>\n <SectionContainer class=\"gap-8\">\n <div\n class=\"flex flex-col gap-4 md:flex-row md:items-end md:justify-between\"\n >\n <div class=\"max-w-2xl\">\n <SectionTitle>\n {title}\n </SectionTitle>\n <p class=\"text-muted-foreground mt-3 text-lg leading-8\">\n {description}\n </p>\n </div>\n <div class=\"flex flex-shrink-0 flex-wrap gap-3\">\n {\n buttons.map(({ href, label, ...button }) => (\n <Button as=\"a\" href={href} variant={button.variant}>\n {label}\n </Button>\n ))\n }\n </div>\n </div>\n <div class=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {\n products.map((product) => (\n <Card>\n <Image\n src={product.image.src}\n alt={product.image.alt}\n class=\"aspect-[4/3] w-full object-cover\"\n />\n <CardHeader>\n <CardTitle>{product.title}</CardTitle>\n <CardDescription>{product.description}</CardDescription>\n </CardHeader>\n <CardContent>\n <Price>\n <PriceValue\n price={product.price.value}\n currency={product.price.currency}\n />\n <PriceUnit>{product.price.unit}</PriceUnit>\n </Price>\n </CardContent>\n </Card>\n ))\n }\n </div>\n </SectionContainer>\n</Section>\n",
|
|
14
16
|
"type": "registry:block"
|
|
15
17
|
}
|
|
16
18
|
],
|
|
19
|
+
"docs": "https://ui.full.dev/blocks/products/",
|
|
20
|
+
"categories": [
|
|
21
|
+
"products"
|
|
22
|
+
],
|
|
17
23
|
"type": "registry:block"
|
|
18
24
|
}
|
package/public/r/products-5.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
3
|
"name": "products-5",
|
|
4
|
+
"title": "Products 5",
|
|
5
|
+
"description": "Product collection layouts for bundles, grouped offers, and category-led merchandising.",
|
|
4
6
|
"registryDependencies": [
|
|
5
7
|
"@fulldev/badge",
|
|
6
8
|
"@fulldev/button",
|
|
@@ -11,9 +13,13 @@
|
|
|
11
13
|
"files": [
|
|
12
14
|
{
|
|
13
15
|
"path": "src/components/blocks/products-5.astro",
|
|
14
|
-
"content": "---\nimport type { ImageMetadata } from \"astro\"\nimport { Image } from \"astro:assets\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {
|
|
16
|
+
"content": "---\nimport type { ImageMetadata } from \"astro\"\nimport { Image } from \"astro:assets\"\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {\n Section,\n SectionContainer,\n SectionTitle,\n} from \"@/components/ui/section\"\n\ntype Props = HTMLAttributes<\"section\"> & {\n badge: string\n title: string\n buttons: {\n label: string\n href: string\n variant?: \"default\" | \"outline\" | \"secondary\" | \"ghost\"\n }[]\n products: {\n image: {\n src: ImageMetadata\n alt: string\n }\n title: string\n description: string\n price: {\n value: number\n currency: string\n unit: string\n }\n }[]\n}\n\nconst {\n class: className,\n badge,\n title,\n buttons,\n products,\n ...props\n} = Astro.props\n---\n\n<Section class={cn(\"\", className)} {...props}>\n <SectionContainer class=\"gap-8\">\n <div class=\"mx-auto max-w-2xl text-center\">\n <Badge variant=\"secondary\">{badge}</Badge>\n <SectionTitle class=\"mt-4\">\n {title}\n </SectionTitle>\n <div class=\"mt-4 flex flex-wrap justify-center gap-3\">\n {\n buttons.map(({ href, label, ...button }) => (\n <Button as=\"a\" href={href} variant={button.variant}>\n {label}\n </Button>\n ))\n }\n </div>\n </div>\n <div class=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n {\n products.map((product) => (\n <Card class=\"group/product gap-0 overflow-hidden\">\n <div class=\"overflow-hidden\">\n <Image\n src={product.image.src}\n alt={product.image.alt}\n class=\"aspect-[3/4] w-full object-cover transition-transform duration-300 group-hover/product:scale-105\"\n />\n </div>\n <CardHeader>\n <CardTitle>{product.title}</CardTitle>\n <CardDescription>{product.description}</CardDescription>\n </CardHeader>\n <CardContent>\n <Price>\n <PriceValue\n price={product.price.value}\n currency={product.price.currency}\n />\n <PriceUnit>{product.price.unit}</PriceUnit>\n </Price>\n </CardContent>\n </Card>\n ))\n }\n </div>\n </SectionContainer>\n</Section>\n",
|
|
15
17
|
"type": "registry:block"
|
|
16
18
|
}
|
|
17
19
|
],
|
|
20
|
+
"docs": "https://ui.full.dev/blocks/products/",
|
|
21
|
+
"categories": [
|
|
22
|
+
"products"
|
|
23
|
+
],
|
|
18
24
|
"type": "registry:block"
|
|
19
25
|
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
3
|
"name": "radio-group",
|
|
4
|
+
"title": "Radio Group",
|
|
5
|
+
"description": "A set of checkable buttons, known as radio buttons, where no more than one of the buttons can be checked at a time.",
|
|
4
6
|
"dependencies": [
|
|
5
7
|
"@data-slot/radio-group"
|
|
6
8
|
],
|
|
7
9
|
"files": [
|
|
8
10
|
{
|
|
9
11
|
"path": "src/components/ui/radio-group/radio-group.astro",
|
|
10
|
-
"content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: string\n name?: string\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n}\n\nconst {\n class: className,\n defaultValue,\n name,\n disabled,\n readOnly,\n required,\n ...props\n} = Astro.props\n---\n\n<div\n data-slot=\"radio-group\"\n data-default-value={defaultValue}\n data-name={name}\n data-disabled={disabled}\n data-read-only={readOnly}\n data-required={required}\n class={cn(\"grid w-full gap-3\", className)}\n {...props}\n>\n <slot />\n</div>\n\n<script>\n import { create } from \"@data-slot/radio-group\"\n\n create()\n</script>\n",
|
|
12
|
+
"content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: string\n name?: string\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n}\n\nconst {\n class: className,\n defaultValue,\n name,\n disabled,\n readOnly,\n required,\n ...props\n} = Astro.props\n---\n\n<div\n data-slot=\"radio-group\"\n data-default-value={defaultValue}\n data-name={name}\n data-disabled={disabled}\n data-read-only={readOnly}\n data-required={required}\n class={cn(\"grid w-full gap-3\", className)}\n {...props}\n>\n <slot />\n</div>\n\n<script>\n import { create } from \"@data-slot/radio-group\"\n\n create()\n document.addEventListener(\"astro:page-load\", () => create())\n</script>\n",
|
|
11
13
|
"type": "registry:ui"
|
|
12
14
|
},
|
|
13
15
|
{
|
|
@@ -21,5 +23,9 @@
|
|
|
21
23
|
"type": "registry:ui"
|
|
22
24
|
}
|
|
23
25
|
],
|
|
26
|
+
"docs": "https://ui.full.dev/components/radio-group/",
|
|
27
|
+
"categories": [
|
|
28
|
+
"ui"
|
|
29
|
+
],
|
|
24
30
|
"type": "registry:ui"
|
|
25
31
|
}
|
package/public/r/rating.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
3
|
"name": "rating",
|
|
4
|
+
"title": "Rating",
|
|
5
|
+
"description": "A star rating component for displaying ratings visually.",
|
|
4
6
|
"dependencies": [
|
|
5
7
|
"@lucide/astro"
|
|
6
8
|
],
|
|
@@ -16,5 +18,9 @@
|
|
|
16
18
|
"type": "registry:ui"
|
|
17
19
|
}
|
|
18
20
|
],
|
|
21
|
+
"docs": "https://ui.full.dev/components/rating/",
|
|
22
|
+
"categories": [
|
|
23
|
+
"ui"
|
|
24
|
+
],
|
|
19
25
|
"type": "registry:ui"
|
|
20
26
|
}
|