diff --git a/cloudcannon.config.yml b/cloudcannon.config.yml
index c06296c5c..3a8d8cd98 100644
--- a/cloudcannon.config.yml
+++ b/cloudcannon.config.yml
@@ -80,6 +80,9 @@ _inputs:
step: 0.1
head:
label: SEO / Settings
+ type: object
+ options:
+ empty_type: object
head.title:
label: SEO title
comment: 50-60 characters
diff --git a/src/blocks/Compare1.astro b/src/blocks/Compare1.astro
new file mode 100644
index 000000000..0005239c9
--- /dev/null
+++ b/src/blocks/Compare1.astro
@@ -0,0 +1,64 @@
+---
+import Button from 'fulldev-ui/components/Button.astro'
+import Heading from 'fulldev-ui/components/Heading.astro'
+import List from 'fulldev-ui/components/List.astro'
+import Paragraph from 'fulldev-ui/components/Paragraph.astro'
+import Tagline from 'fulldev-ui/components/Tagline.astro'
+import type { BlockSchema } from 'fulldev-ui/schemas/block'
+import Card from 'fulldev-ui/structures/Card.astro'
+import Container from 'fulldev-ui/structures/Container.astro'
+import Prose from 'fulldev-ui/structures/Prose.astro'
+import Section from 'fulldev-ui/structures/Section.astro'
+import Stack from 'fulldev-ui/structures/Stack.astro'
+
+interface Props extends BlockSchema {}
+
+const { depth = 2, heading, paragraph, button, pros, cons } = Astro.props
+---
+
+
+
+
+
+
+
+
+ {
+ [cons || {}, pros || {}].map(
+ ({ tagline, heading, paragraph, list }, i) => (
+
+
+
+
+
+
+
+
+ )
+ )
+ }
+
+
+
+
diff --git a/src/components/List.astro b/src/components/List.astro
index 8377fd3a2..e082ae8db 100644
--- a/src/components/List.astro
+++ b/src/components/List.astro
@@ -1,28 +1,32 @@
---
import type { HTMLAttributes } from 'astro/types'
import Element from 'fulldev-ui/components/Element.astro'
+import Icon from 'fulldev-ui/components/Icon.astro'
interface Props extends HTMLAttributes<'ul' | 'ol'> {
as?: 'ul' | 'ol' | undefined
size?: 'sm' | 'md' | 'lg' | undefined
items?: string[] | undefined
muted?: boolean | undefined
+ icon?: string | undefined
}
-const { as = 'ul', items, ...rest } = Astro.props
+const { as = 'ul', items, icon, ...rest } = Astro.props
---
{
items?.map((item) => (
-
+
+
+
+
+
+
))
}
@@ -32,14 +36,14 @@ const { as = 'ul', items, ...rest } = Astro.props
@layer fulldev {
.list,
.prose :is(ul, ol) {
- @apply ml-6;
+ @apply pl-4;
&:is(ul) {
@apply list-disc;
}
ul {
- @apply ml-6 mt-2 list-disc;
+ @apply ml-5 mt-2 list-disc;
}
&:is(ol) {
@@ -47,7 +51,7 @@ const { as = 'ul', items, ...rest } = Astro.props
}
ol {
- @apply ml-6 mt-2 list-decimal;
+ @apply ml-5 mt-2 list-decimal;
}
li {
@@ -57,11 +61,35 @@ const { as = 'ul', items, ...rest } = Astro.props
&.size-sm,
&:where(.size-sm &) {
@apply text-sm;
+
+ .icon {
+ @apply mt-0;
+ }
}
&.size-lg,
&:where(.size-lg &) {
@apply text-lg;
+
+ .icon {
+ @apply mt-1;
+ }
+ }
+
+ &.muted {
+ @apply text-muted-foreground;
+ }
+
+ .icon {
+ @apply -ml-5 mt-0.5 shrink-0 text-inherit;
+ }
+
+ &.has-icon {
+ @apply ml-0 list-none;
+
+ li {
+ @apply flex gap-2;
+ }
}
}
}
diff --git a/src/content/pages/docs/components/list.mdx b/src/content/pages/docs/components/list.mdx
index d5db20980..e2e89f899 100644
--- a/src/content/pages/docs/components/list.mdx
+++ b/src/content/pages/docs/components/list.mdx
@@ -40,3 +40,14 @@ import List from 'fulldev-ui/components/List.astro'
```
+
+### `icon`
+
+```astro live
+---
+import List from 'fulldev-ui/components/List.astro'
+---
+
+
+
+```
diff --git a/src/schemas/block.ts b/src/schemas/block.ts
index 911534219..992155712 100644
--- a/src/schemas/block.ts
+++ b/src/schemas/block.ts
@@ -11,6 +11,8 @@ export const blockSchema = cardSchema
search: z.boolean().optional(),
cart: z.boolean().optional(),
cards: cardSchema.array().optional(),
+ pros: cardSchema.optional(),
+ cons: cardSchema.optional(),
pages: pathSchema('pages').array().optional(),
records: pathSchema('records').array().optional(),
soldout: z.boolean().optional(),