fulldev-ui 0.6.0-beta.9 → 0.6.1
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/astro.config.ts +6 -8
- package/cloudcannon.config.yml +57 -86
- package/package.json +2 -1
- package/public/images/block-code.png +0 -0
- package/public/images/component-code.png +0 -0
- package/src/blocks/Banner.astro +3 -5
- package/src/blocks/Colleagues1.astro +4 -3
- package/src/blocks/Contact1.astro +42 -42
- package/src/blocks/Contact2.astro +98 -0
- package/src/blocks/Content1.astro +6 -27
- package/src/blocks/Content2.astro +26 -49
- package/src/blocks/Content3.astro +26 -54
- package/src/blocks/Content4.astro +34 -50
- package/src/blocks/Content5.astro +7 -36
- package/src/blocks/Content6.astro +57 -0
- package/src/blocks/Content7.astro +65 -0
- package/src/blocks/Content8.astro +48 -0
- package/src/blocks/Cta1.astro +9 -12
- package/src/blocks/Cta2.astro +52 -0
- package/src/blocks/Features1.astro +8 -6
- package/src/blocks/Features2.astro +71 -0
- package/src/blocks/Footer.astro +2 -6
- package/src/blocks/Header.astro +9 -25
- package/src/blocks/Hero1.astro +19 -27
- package/src/blocks/Intro1.astro +6 -7
- package/src/blocks/{Industries1.astro → JobCategories1.astro} +13 -38
- package/src/blocks/JobCategory1.astro +92 -0
- package/src/blocks/Jobs1.astro +7 -10
- package/src/blocks/Logos1.astro +4 -4
- package/src/blocks/Pages1.astro +85 -0
- package/src/blocks/Pricings1.astro +61 -0
- package/src/blocks/Products1.astro +7 -10
- package/src/blocks/Projects1.astro +59 -83
- package/src/blocks/Reviews1.astro +10 -10
- package/src/blocks/Subheader.astro +4 -9
- package/src/components/Avatar.astro +40 -0
- package/src/components/Avatars.astro +20 -0
- package/src/components/Badge.astro +6 -35
- package/src/components/Block.astro +20 -4
- package/src/components/Channel.astro +4 -0
- package/src/components/Chip.astro +73 -0
- package/src/components/Element.astro +1 -0
- package/src/components/Field.astro +33 -0
- package/src/components/Fields.astro +20 -0
- package/src/components/Heading.astro +12 -5
- package/src/components/Image.astro +1 -1
- package/src/components/Link.astro +1 -1
- package/src/components/Menu.astro +9 -5
- package/src/components/Proof.astro +52 -0
- package/src/components/Select.astro +1 -1
- package/src/components/Tagline.astro +6 -6
- package/src/components/Toc.astro +33 -31
- package/src/content/config.ts +5 -0
- package/src/content/layouts/base.yml +135 -142
- package/src/content/pages/{base → _base}/toggle.mdx +1 -1
- package/src/content/pages/_showcase/stark-vulcanising-products.md +0 -1
- package/src/content/pages/docs/blocks/_categories.mdx +1 -17
- package/src/content/pages/docs/blocks/banner.mdx +1 -1
- package/src/content/pages/docs/blocks/colleagues.mdx +1 -1
- package/src/content/pages/docs/blocks/content.mdx +162 -1
- package/src/content/pages/docs/blocks/cta.mdx +1 -1
- package/src/content/pages/docs/blocks/features.mdx +66 -1
- package/src/content/pages/docs/blocks/footer.mdx +1 -1
- package/src/content/pages/docs/blocks/header.mdx +1 -1
- package/src/content/pages/docs/blocks/hero.mdx +1 -1
- package/src/content/pages/docs/blocks/intro.mdx +1 -1
- package/src/content/pages/docs/blocks/logos.mdx +1 -1
- package/src/content/pages/docs/blocks/projects.mdx +1 -1
- package/src/content/pages/docs/blocks/reviews.mdx +1 -1
- package/src/content/pages/docs/blocks.mdx +1 -7
- package/src/content/pages/docs/collections/images.mdx +1 -1
- package/src/content/pages/docs/collections/pages.mdx +1 -1
- package/src/content/pages/docs/collections/presets.mdx +1 -1
- package/src/content/pages/docs/components/_localeswitcher.mdx +1 -1
- package/src/content/pages/docs/components/_table.mdx +1 -1
- package/src/content/pages/docs/components/_tagline.mdx +1 -1
- package/src/content/pages/docs/components/_themer.mdx +1 -1
- package/src/content/pages/docs/components/_toggle.mdx +1 -1
- package/src/content/pages/docs/components/avatar.mdx +32 -0
- package/src/content/pages/docs/components/badge.mdx +1 -34
- package/src/content/pages/docs/components/badges.mdx +1 -13
- package/src/content/pages/docs/components/button.mdx +1 -1
- package/src/content/pages/docs/components/buttons.mdx +1 -1
- package/src/content/pages/docs/components/channel.mdx +1 -1
- package/src/content/pages/docs/components/channels.mdx +1 -1
- package/src/content/pages/docs/components/checkbox.mdx +1 -1
- package/src/content/pages/docs/components/chip.mdx +75 -0
- package/src/content/pages/docs/components/heading.mdx +1 -1
- package/src/content/pages/docs/components/icon.mdx +1 -1
- package/src/content/pages/docs/components/image.mdx +2 -1
- package/src/content/pages/docs/components/input.mdx +1 -1
- package/src/content/pages/docs/components/label.mdx +1 -1
- package/src/content/pages/docs/components/link.mdx +1 -1
- package/src/content/pages/docs/components/links.mdx +11 -52
- package/src/content/pages/docs/components/list.mdx +1 -1
- package/src/content/pages/docs/components/logo.mdx +1 -1
- package/src/content/pages/docs/components/menu.mdx +5 -18
- package/src/content/pages/docs/components/paragraph.mdx +1 -1
- package/src/content/pages/docs/components/rating.mdx +1 -1
- package/src/content/pages/docs/components/select.mdx +1 -1
- package/src/content/pages/docs/components/social.mdx +1 -1
- package/src/content/pages/docs/components/socials.mdx +1 -1
- package/src/content/pages/docs/components/switch.mdx +1 -1
- package/src/content/pages/docs/components/tagline.mdx +1 -1
- package/src/content/pages/docs/components/textarea.mdx +1 -1
- package/src/content/pages/docs/components.mdx +1 -1
- package/src/content/pages/docs/customization.mdx +1 -1
- package/src/content/pages/docs/frameworks.mdx +1 -1
- package/src/content/pages/docs/index.mdx +1 -1
- package/src/content/pages/docs/installation.mdx +1 -24
- package/src/content/pages/docs/layouts/doc.mdx +1 -1
- package/src/content/pages/docs/layouts/page.mdx +1 -1
- package/src/content/pages/docs/pages.mdx +1 -1
- package/src/content/pages/docs/structures/_card.mdx +1 -1
- package/src/content/pages/docs/structures/_dialog.mdx +1 -1
- package/src/content/pages/docs/structures/_drawer.mdx +1 -1
- package/src/content/pages/docs/structures/card.mdx +1 -1
- package/src/content/pages/docs/structures/code.mdx +1 -1
- package/src/content/pages/docs/structures/container.mdx +1 -1
- package/src/content/pages/docs/structures/drawer.mdx +1 -1
- package/src/content/pages/docs/structures/group.mdx +1 -1
- package/src/content/pages/docs/structures/layout.mdx +1 -1
- package/src/content/pages/docs/structures/masonry.mdx +1 -1
- package/src/content/pages/docs/structures/matrix.mdx +1 -1
- package/src/content/pages/docs/structures/panel.mdx +1 -1
- package/src/content/pages/docs/structures/prose.mdx +1 -1
- package/src/content/pages/docs/structures/section.mdx +1 -1
- package/src/content/pages/docs/structures/stack.mdx +1 -1
- package/src/content/pages/docs/structures/writeup.mdx +1 -1
- package/src/content/pages/docs/structures.mdx +1 -1
- package/src/content/pages/index.mdx +20 -25
- package/src/css/custom.css +4 -0
- package/src/integration/index.ts +1 -0
- package/src/layouts/Page.astro +45 -10
- package/src/layouts/{Product.astro → _Product.astro} +6 -6
- package/src/pages/test.astro +16 -0
- package/src/schemas/block.ts +22 -41
- package/src/schemas/button.ts +2 -0
- package/src/schemas/card.ts +43 -0
- package/src/schemas/channel.ts +1 -0
- package/src/schemas/{badge.ts → chip.ts} +3 -3
- package/src/schemas/page.ts +4 -18
- package/src/schemas/proof.ts +12 -0
- package/src/structures/Drawer.astro +2 -3
- package/src/structures/Prose.astro +40 -41
- package/src/structures/Section.astro +1 -1
- package/src/structures/Sidebar.astro +3 -4
- package/src/structures/Split.astro +38 -0
- package/tailwind.config.ts +4 -1
- package/pnpm-lock.yaml +0 -5186
- package/src/blocks/_Hero.astro +0 -245
- package/src/components/Blocks.astro +0 -26
- package/src/components/Sidebar.astro +0 -43
- package/src/content/pages/docs/blocks/feature.mdx +0 -17
- package/src/content/pages/docs/layouts.mdx +0 -80
- package/src/layouts/Block.astro +0 -81
- package/src/layouts/Category.astro +0 -136
- package/src/layouts/Doc.astro +0 -96
- package/src/layouts/Job.astro +0 -60
- package/src/layouts/Jobs.astro +0 -72
- package/src/layouts/Post.astro +0 -53
- /package/src/content/pages/{posts → _posts}/post.md +0 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
// Heading etc left, image and content right, sticky
|
|
3
|
+
import Badges from 'fulldev-ui/components/Badges.astro'
|
|
4
|
+
import Buttons from 'fulldev-ui/components/Buttons.astro'
|
|
5
|
+
import Element from 'fulldev-ui/components/Element.astro'
|
|
6
|
+
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
7
|
+
import Image from 'fulldev-ui/components/Image.astro'
|
|
8
|
+
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
9
|
+
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
10
|
+
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
11
|
+
import Container from 'fulldev-ui/structures/Container.astro'
|
|
12
|
+
import Group from 'fulldev-ui/structures/Group.astro'
|
|
13
|
+
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
14
|
+
import Section from 'fulldev-ui/structures/Section.astro'
|
|
15
|
+
import Split from 'fulldev-ui/structures/Split.astro'
|
|
16
|
+
|
|
17
|
+
interface Props extends BlockSchema {}
|
|
18
|
+
|
|
19
|
+
const {
|
|
20
|
+
depth = 2,
|
|
21
|
+
tagline,
|
|
22
|
+
heading,
|
|
23
|
+
paragraph,
|
|
24
|
+
buttons,
|
|
25
|
+
content,
|
|
26
|
+
cards,
|
|
27
|
+
} = Astro.props
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
<Section class="pages-1">
|
|
31
|
+
<Container>
|
|
32
|
+
<Split class="items-start">
|
|
33
|
+
<Prose class="lg:sticky lg:top-sticky-16 lg:max-w-xl">
|
|
34
|
+
<Tagline text={tagline} />
|
|
35
|
+
<Heading
|
|
36
|
+
as="h2"
|
|
37
|
+
size="4xl"
|
|
38
|
+
text={heading}
|
|
39
|
+
{depth}
|
|
40
|
+
/>
|
|
41
|
+
<Paragraph
|
|
42
|
+
muted
|
|
43
|
+
size="lg"
|
|
44
|
+
text={paragraph}
|
|
45
|
+
/>
|
|
46
|
+
<Fragment set:html={content} />
|
|
47
|
+
<Group>
|
|
48
|
+
<Buttons
|
|
49
|
+
variant="secondary"
|
|
50
|
+
{buttons}
|
|
51
|
+
/>
|
|
52
|
+
</Group>
|
|
53
|
+
</Prose>
|
|
54
|
+
<Element class="flex flex-col gap-8">
|
|
55
|
+
{
|
|
56
|
+
cards?.map(({ href, image, badges, heading, paragraph }) => (
|
|
57
|
+
<Element
|
|
58
|
+
as="a"
|
|
59
|
+
class="flex flex-col gap-2"
|
|
60
|
+
{href}
|
|
61
|
+
>
|
|
62
|
+
<Image
|
|
63
|
+
class="mb-4"
|
|
64
|
+
{...image}
|
|
65
|
+
/>
|
|
66
|
+
<Group>
|
|
67
|
+
<Badges
|
|
68
|
+
size="sm"
|
|
69
|
+
{badges}
|
|
70
|
+
/>
|
|
71
|
+
</Group>
|
|
72
|
+
<Heading
|
|
73
|
+
depth={(depth + 1) as 3}
|
|
74
|
+
as="h3"
|
|
75
|
+
size="xl"
|
|
76
|
+
text={heading}
|
|
77
|
+
/>
|
|
78
|
+
<Paragraph text={paragraph} />
|
|
79
|
+
</Element>
|
|
80
|
+
))
|
|
81
|
+
}
|
|
82
|
+
</Element>
|
|
83
|
+
</Split>
|
|
84
|
+
</Container>
|
|
85
|
+
</Section>
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
import Button from 'fulldev-ui/components/Button.astro'
|
|
3
|
+
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
4
|
+
import List from 'fulldev-ui/components/List.astro'
|
|
5
|
+
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
6
|
+
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
7
|
+
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
8
|
+
import Card from 'fulldev-ui/structures/Card.astro'
|
|
9
|
+
import Container from 'fulldev-ui/structures/Container.astro'
|
|
10
|
+
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
11
|
+
import Section from 'fulldev-ui/structures/Section.astro'
|
|
12
|
+
import Stack from 'fulldev-ui/structures/Stack.astro'
|
|
13
|
+
|
|
14
|
+
interface Props extends BlockSchema {}
|
|
15
|
+
|
|
16
|
+
const { depth = 2, heading, paragraph, cards } = Astro.props
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<Section class="pricings-1">
|
|
20
|
+
<Container class="flex flex-col items-center gap-16">
|
|
21
|
+
<Prose class="text-center">
|
|
22
|
+
<Heading
|
|
23
|
+
size="5xl"
|
|
24
|
+
text={heading}
|
|
25
|
+
{depth}
|
|
26
|
+
/>
|
|
27
|
+
<Paragraph
|
|
28
|
+
size="xl"
|
|
29
|
+
text={paragraph}
|
|
30
|
+
/>
|
|
31
|
+
</Prose>
|
|
32
|
+
<Stack class="mx-auto flex flex-wrap items-stretch justify-center">
|
|
33
|
+
{
|
|
34
|
+
cards?.map(({ tagline, heading, paragraph, list, button }) => (
|
|
35
|
+
<Card class="min-w-sm flex max-w-md flex-col justify-between gap-8 p-8">
|
|
36
|
+
<Prose>
|
|
37
|
+
<Tagline text={tagline} />
|
|
38
|
+
<Heading
|
|
39
|
+
depth={(depth + 1) as 3}
|
|
40
|
+
size="3xl"
|
|
41
|
+
text={heading}
|
|
42
|
+
/>
|
|
43
|
+
<Paragraph
|
|
44
|
+
muted
|
|
45
|
+
text={paragraph}
|
|
46
|
+
/>
|
|
47
|
+
<List
|
|
48
|
+
size="sm"
|
|
49
|
+
items={list}
|
|
50
|
+
/>
|
|
51
|
+
</Prose>
|
|
52
|
+
<Button
|
|
53
|
+
class=""
|
|
54
|
+
{...button}
|
|
55
|
+
/>
|
|
56
|
+
</Card>
|
|
57
|
+
))
|
|
58
|
+
}
|
|
59
|
+
</Stack>
|
|
60
|
+
</Container>
|
|
61
|
+
</Section>
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
import type { ComponentProps } from 'astro/types'
|
|
3
|
-
import { getEntries } from 'astro:content'
|
|
4
2
|
import Button from 'fulldev-ui/components/Button.astro'
|
|
5
3
|
import Element from 'fulldev-ui/components/Element.astro'
|
|
6
4
|
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
@@ -10,13 +8,10 @@ import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
|
10
8
|
import Card from 'fulldev-ui/structures/Card.astro'
|
|
11
9
|
import Container from 'fulldev-ui/structures/Container.astro'
|
|
12
10
|
import Section from 'fulldev-ui/structures/Section.astro'
|
|
13
|
-
import { getHref } from 'fulldev-ui/utils/getHref'
|
|
14
11
|
|
|
15
|
-
interface Props extends
|
|
12
|
+
interface Props extends BlockSchema {}
|
|
16
13
|
|
|
17
|
-
const { heading, button,
|
|
18
|
-
|
|
19
|
-
const entries = products && (await getEntries(products))
|
|
14
|
+
const { depth = 2, heading, button, cards, ...rest } = Astro.props
|
|
20
15
|
---
|
|
21
16
|
|
|
22
17
|
<Section
|
|
@@ -28,6 +23,7 @@ const entries = products && (await getEntries(products))
|
|
|
28
23
|
<Heading
|
|
29
24
|
size="2xl"
|
|
30
25
|
text={heading}
|
|
26
|
+
{depth}
|
|
31
27
|
/>
|
|
32
28
|
<Button
|
|
33
29
|
variant="ghost"
|
|
@@ -37,14 +33,15 @@ const entries = products && (await getEntries(products))
|
|
|
37
33
|
</Element>
|
|
38
34
|
<Element class:list="products-1-cards">
|
|
39
35
|
{
|
|
40
|
-
|
|
41
|
-
<Card href
|
|
36
|
+
cards?.map(({ href, images, heading, price }) => (
|
|
37
|
+
<Card {href}>
|
|
42
38
|
<Image {...images?.[0]} />
|
|
43
39
|
<Element class:list="products-1-card-content">
|
|
44
40
|
<Heading
|
|
41
|
+
depth={(depth + 1) as 3}
|
|
45
42
|
as="h3"
|
|
46
43
|
size="md"
|
|
47
|
-
text={
|
|
44
|
+
text={heading}
|
|
48
45
|
/>
|
|
49
46
|
<Price amount={price} />
|
|
50
47
|
</Element>
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
// Heading etc left, image and content right, sticky
|
|
3
|
-
import type { ComponentProps } from 'astro/types'
|
|
4
2
|
import Badges from 'fulldev-ui/components/Badges.astro'
|
|
5
3
|
import Buttons from 'fulldev-ui/components/Buttons.astro'
|
|
6
4
|
import Element from 'fulldev-ui/components/Element.astro'
|
|
@@ -8,96 +6,74 @@ import Heading from 'fulldev-ui/components/Heading.astro'
|
|
|
8
6
|
import Image from 'fulldev-ui/components/Image.astro'
|
|
9
7
|
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
10
8
|
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
9
|
+
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
11
10
|
import Container from 'fulldev-ui/structures/Container.astro'
|
|
12
11
|
import Group from 'fulldev-ui/structures/Group.astro'
|
|
13
12
|
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
14
13
|
import Section from 'fulldev-ui/structures/Section.astro'
|
|
14
|
+
import Split from 'fulldev-ui/structures/Split.astro'
|
|
15
15
|
|
|
16
|
-
interface Props extends
|
|
17
|
-
tagline?: string | undefined
|
|
18
|
-
heading?: string | undefined
|
|
19
|
-
paragraph?: string | undefined
|
|
20
|
-
content?: string | undefined
|
|
21
|
-
buttons?: ComponentProps<typeof Buttons>['buttons']
|
|
22
|
-
cards?: {
|
|
23
|
-
image?: ComponentProps<typeof Image> | undefined
|
|
24
|
-
badges?: ComponentProps<typeof Badges>['badges']
|
|
25
|
-
heading?: string | undefined
|
|
26
|
-
paragraph?: string | undefined
|
|
27
|
-
}[]
|
|
28
|
-
}
|
|
16
|
+
interface Props extends BlockSchema {}
|
|
29
17
|
|
|
30
|
-
const {
|
|
31
|
-
|
|
18
|
+
const {
|
|
19
|
+
depth = 2,
|
|
20
|
+
tagline,
|
|
21
|
+
heading,
|
|
22
|
+
paragraph,
|
|
23
|
+
buttons,
|
|
24
|
+
content,
|
|
25
|
+
cards,
|
|
26
|
+
} = Astro.props
|
|
32
27
|
---
|
|
33
28
|
|
|
34
|
-
<Section
|
|
35
|
-
class:list="projects-1"
|
|
36
|
-
{...rest}
|
|
37
|
-
>
|
|
29
|
+
<Section class="projects-1">
|
|
38
30
|
<Container>
|
|
39
|
-
<
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
<
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
31
|
+
<Split align="sticky">
|
|
32
|
+
<Prose class="max-w-xl">
|
|
33
|
+
<Tagline text={tagline} />
|
|
34
|
+
<Heading
|
|
35
|
+
size="3xl"
|
|
36
|
+
text={heading}
|
|
37
|
+
{depth}
|
|
38
|
+
/>
|
|
39
|
+
<Paragraph text={paragraph} />
|
|
40
|
+
<Fragment set:html={content} />
|
|
41
|
+
<Group>
|
|
42
|
+
<Buttons
|
|
43
|
+
variant="secondary"
|
|
44
|
+
{buttons}
|
|
45
|
+
/>
|
|
46
|
+
</Group>
|
|
47
|
+
</Prose>
|
|
48
|
+
<Element class="flex flex-col gap-8">
|
|
49
|
+
{
|
|
50
|
+
cards?.map(({ href, image, badges, heading, paragraph }) => (
|
|
51
|
+
<Element
|
|
52
|
+
class="flex flex-col gap-2"
|
|
53
|
+
as="a"
|
|
54
|
+
{href}
|
|
55
|
+
>
|
|
56
|
+
<Image
|
|
57
|
+
class="mb-4"
|
|
58
|
+
{...image}
|
|
64
59
|
/>
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
60
|
+
<Group>
|
|
61
|
+
<Badges
|
|
62
|
+
size="sm"
|
|
63
|
+
{badges}
|
|
64
|
+
/>
|
|
65
|
+
</Group>
|
|
66
|
+
<Heading
|
|
67
|
+
depth={(depth + 1) as 3}
|
|
68
|
+
as="h3"
|
|
69
|
+
size="xl"
|
|
70
|
+
text={heading}
|
|
71
|
+
/>
|
|
72
|
+
<Paragraph text={paragraph} />
|
|
73
|
+
</Element>
|
|
74
|
+
))
|
|
75
|
+
}
|
|
76
|
+
</Element>
|
|
77
|
+
</Split>
|
|
76
78
|
</Container>
|
|
77
79
|
</Section>
|
|
78
|
-
|
|
79
|
-
<style is:global>
|
|
80
|
-
@layer fulldev {
|
|
81
|
-
.projects-1 {
|
|
82
|
-
.container {
|
|
83
|
-
@apply flex flex-col items-start gap-x-gutter lg:grid lg:grid-cols-2;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.prose {
|
|
87
|
-
@apply lg:sticky lg:top-sticky-16 lg:max-w-xl;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.projects-1-cards {
|
|
91
|
-
@apply flex flex-col gap-8;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.projects-1-card {
|
|
95
|
-
@apply flex flex-col gap-2;
|
|
96
|
-
|
|
97
|
-
.image {
|
|
98
|
-
@apply mb-4 rounded-md;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
</style>
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
import type { ComponentProps } from 'astro/types'
|
|
3
2
|
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
4
|
-
import Image from 'fulldev-ui/components/Image.astro'
|
|
5
3
|
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
6
|
-
import
|
|
4
|
+
import Proof from 'fulldev-ui/components/Proof.astro'
|
|
7
5
|
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
8
6
|
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
9
7
|
import Card from 'fulldev-ui/structures/Card.astro'
|
|
@@ -12,9 +10,9 @@ import Masonry from 'fulldev-ui/structures/Masonry.astro'
|
|
|
12
10
|
import Section from 'fulldev-ui/structures/Section.astro'
|
|
13
11
|
import Writeup from 'fulldev-ui/structures/Writeup.astro'
|
|
14
12
|
|
|
15
|
-
interface Props extends
|
|
13
|
+
interface Props extends BlockSchema {}
|
|
16
14
|
|
|
17
|
-
const { tagline, heading, paragraph, cards, ...rest } = Astro.props
|
|
15
|
+
const { depth = 2, tagline, heading, paragraph, cards, ...rest } = Astro.props
|
|
18
16
|
---
|
|
19
17
|
|
|
20
18
|
<Section
|
|
@@ -30,19 +28,21 @@ const { tagline, heading, paragraph, cards, ...rest } = Astro.props
|
|
|
30
28
|
<Heading
|
|
31
29
|
size="3xl"
|
|
32
30
|
text={heading}
|
|
31
|
+
{depth}
|
|
33
32
|
/>
|
|
34
33
|
<Paragraph text={paragraph} />
|
|
35
34
|
</Writeup>
|
|
36
35
|
<Masonry>
|
|
37
36
|
{
|
|
38
|
-
cards?.map(({ rating, heading, paragraph
|
|
37
|
+
cards?.map(({ tagline, avatar, rating, heading, paragraph }) => (
|
|
39
38
|
<Card class="reviews-1-card">
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
<Proof
|
|
40
|
+
text={tagline}
|
|
41
|
+
{rating}
|
|
42
|
+
{avatar}
|
|
44
43
|
/>
|
|
45
44
|
<Heading
|
|
45
|
+
depth={(depth + 1) as 3}
|
|
46
46
|
as="h3"
|
|
47
47
|
size="md"
|
|
48
48
|
text={heading}
|
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
---
|
|
2
|
-
import type { ComponentProps, HTMLAttributes } from 'astro/types'
|
|
3
2
|
import Element from 'fulldev-ui/components/Element.astro'
|
|
4
3
|
import Links from 'fulldev-ui/components/Links.astro'
|
|
4
|
+
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
5
5
|
|
|
6
|
-
interface Props extends
|
|
7
|
-
dark?: boolean | undefined
|
|
8
|
-
size?: 'sm' | 'md' | 'lg' | undefined
|
|
9
|
-
links?: ComponentProps<typeof Links>['links']
|
|
10
|
-
}
|
|
6
|
+
interface Props extends BlockSchema {}
|
|
11
7
|
|
|
12
|
-
const {
|
|
8
|
+
const { links, ...rest } = Astro.props
|
|
13
9
|
---
|
|
14
10
|
|
|
15
11
|
<Element
|
|
16
12
|
class:list={['subheader']}
|
|
17
13
|
as="subheader"
|
|
18
|
-
{size}
|
|
19
14
|
{...rest}
|
|
20
15
|
>
|
|
21
16
|
<Element class:list="subheader-container">
|
|
22
17
|
<Links
|
|
23
18
|
class:list="subheader-links"
|
|
24
|
-
|
|
19
|
+
size="sm"
|
|
25
20
|
{links}
|
|
26
21
|
/>
|
|
27
22
|
</Element>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps } from 'astro/types'
|
|
3
|
+
import Image from 'fulldev-ui/components/Image.astro'
|
|
4
|
+
|
|
5
|
+
interface Props extends ComponentProps<typeof Image> {
|
|
6
|
+
size?: 'sm' | 'md' | 'lg' | undefined
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { size = 'md', ...rest } = Astro.props
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<Image
|
|
13
|
+
class:list={[
|
|
14
|
+
'avatar',
|
|
15
|
+
{
|
|
16
|
+
[`size-${size}`]: size,
|
|
17
|
+
},
|
|
18
|
+
]}
|
|
19
|
+
{...rest}
|
|
20
|
+
/>
|
|
21
|
+
|
|
22
|
+
<style is:global>
|
|
23
|
+
@layer fulldev {
|
|
24
|
+
.avatar {
|
|
25
|
+
@apply !rounded-full object-cover;
|
|
26
|
+
|
|
27
|
+
&.size-sm {
|
|
28
|
+
@apply h-9 w-9;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&.size-md {
|
|
32
|
+
@apply h-10 w-10;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&.size-lg {
|
|
36
|
+
@apply h-11 w-11;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
</style>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps } from 'astro/types'
|
|
3
|
+
import Avatar from 'fulldev-ui/components/Avatar.astro'
|
|
4
|
+
|
|
5
|
+
interface Props extends ComponentProps<typeof Avatar> {
|
|
6
|
+
avatar?: ComponentProps<typeof Avatar> | undefined
|
|
7
|
+
avatars?: ComponentProps<typeof Avatar>[] | undefined
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { avatar, avatars, ...rest } = Astro.props
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
{
|
|
14
|
+
[avatar, ...(avatars || [])].filter(Boolean).map((avatar) => (
|
|
15
|
+
<Avatar
|
|
16
|
+
{...rest}
|
|
17
|
+
{...avatar}
|
|
18
|
+
/>
|
|
19
|
+
))
|
|
20
|
+
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { HTMLAttributes } from 'astro/types'
|
|
3
3
|
import Element from 'fulldev-ui/components/Element.astro'
|
|
4
|
-
import Icon from 'fulldev-ui/components/Icon.astro'
|
|
5
4
|
|
|
6
5
|
interface Props extends HTMLAttributes<'a'>, HTMLAttributes<'div'> {
|
|
7
6
|
variant?: 'primary' | 'secondary' | 'outline' | undefined
|
|
@@ -20,53 +19,25 @@ const { variant = 'outline', size = 'md', text, icon, ...rest } = Astro.props
|
|
|
20
19
|
{size}
|
|
21
20
|
{...rest}
|
|
22
21
|
>
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
name={icon}
|
|
26
|
-
/>
|
|
27
|
-
<Element as="span">
|
|
28
|
-
<Fragment set:html={text} />
|
|
29
|
-
<slot />
|
|
30
|
-
</Element>
|
|
22
|
+
<Fragment set:html={text} />
|
|
23
|
+
<slot />
|
|
31
24
|
</Element>
|
|
32
25
|
|
|
33
26
|
<style is:global>
|
|
34
27
|
@layer fulldev {
|
|
35
28
|
.badge {
|
|
36
|
-
@apply inline-flex items-center justify-center
|
|
37
|
-
@apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2;
|
|
38
|
-
@apply disabled:pointer-events-none disabled:opacity-50;
|
|
39
|
-
|
|
40
|
-
&.size-sm {
|
|
41
|
-
@apply h-6 min-w-6 px-2;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
&.size-md {
|
|
45
|
-
@apply h-7 min-w-7 px-3;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
&.size-lg {
|
|
49
|
-
@apply h-8 min-w-8 px-3.5;
|
|
50
|
-
}
|
|
29
|
+
@apply inline-flex h-6 items-center justify-center whitespace-nowrap rounded-full px-2.5 text-xs font-medium leading-none ring-offset-background;
|
|
51
30
|
|
|
52
31
|
&.variant-primary {
|
|
53
|
-
@apply bg-primary text-primary-foreground
|
|
32
|
+
@apply bg-primary text-primary-foreground;
|
|
54
33
|
}
|
|
55
34
|
|
|
56
35
|
&.variant-secondary {
|
|
57
|
-
@apply bg-secondary text-secondary-foreground
|
|
36
|
+
@apply bg-secondary text-secondary-foreground;
|
|
58
37
|
}
|
|
59
38
|
|
|
60
39
|
&.variant-outline {
|
|
61
|
-
@apply border border-input text-accent-foreground
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.icon {
|
|
65
|
-
@apply first:last:absolute;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
span {
|
|
69
|
-
@apply text-inherit;
|
|
40
|
+
@apply border border-input text-accent-foreground;
|
|
70
41
|
}
|
|
71
42
|
}
|
|
72
43
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
import { getEntries } from 'astro:content'
|
|
3
3
|
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
4
|
+
import { getHref } from 'fulldev-ui/utils/getHref'
|
|
4
5
|
|
|
5
6
|
interface Props extends BlockSchema {}
|
|
6
7
|
|
|
7
|
-
let { _block, pages, ...rest } = Astro.props
|
|
8
|
-
|
|
9
|
-
pages = pages && (await getEntries(pages))
|
|
8
|
+
let { _block, cards, pages, records, ...rest } = Astro.props
|
|
10
9
|
|
|
11
10
|
const blocks = {
|
|
12
11
|
...import.meta.glob('/src/blocks/**/*.astro'),
|
|
@@ -18,13 +17,30 @@ const path = Object.keys(blocks).find(
|
|
|
18
17
|
)
|
|
19
18
|
|
|
20
19
|
const BlockComponent = path && (await (blocks[path] as any)()).default
|
|
20
|
+
|
|
21
|
+
cards = [
|
|
22
|
+
...(cards || []),
|
|
23
|
+
...(await getEntries(records || [])).map(({ data }) => ({
|
|
24
|
+
...data,
|
|
25
|
+
})),
|
|
26
|
+
...(await getEntries(pages || [])).map(({ slug, data }) => ({
|
|
27
|
+
href: getHref(slug),
|
|
28
|
+
heading: data.title,
|
|
29
|
+
paragraph: data.description,
|
|
30
|
+
...data,
|
|
31
|
+
})),
|
|
32
|
+
]
|
|
21
33
|
---
|
|
22
34
|
|
|
23
35
|
{
|
|
24
36
|
BlockComponent && (
|
|
25
37
|
<BlockComponent
|
|
38
|
+
{cards}
|
|
26
39
|
{pages}
|
|
40
|
+
{records}
|
|
27
41
|
{...rest}
|
|
28
|
-
|
|
42
|
+
>
|
|
43
|
+
<slot />
|
|
44
|
+
</BlockComponent>
|
|
29
45
|
)
|
|
30
46
|
}
|
|
@@ -3,6 +3,7 @@ import type { HTMLAttributes } from 'astro/types'
|
|
|
3
3
|
import Button from 'fulldev-ui/components/Button.astro'
|
|
4
4
|
import Element from 'fulldev-ui/components/Element.astro'
|
|
5
5
|
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
6
|
+
import type { ComponentProps } from 'svelte'
|
|
6
7
|
|
|
7
8
|
interface Props extends HTMLAttributes<'div'> {
|
|
8
9
|
variant?: 'secondary' | 'outline' | undefined
|
|
@@ -11,6 +12,7 @@ interface Props extends HTMLAttributes<'div'> {
|
|
|
11
12
|
text?: string | undefined
|
|
12
13
|
href?: string | undefined
|
|
13
14
|
icon?: string | undefined
|
|
15
|
+
target?: ComponentProps<typeof Button>['target']
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
const {
|
|
@@ -20,6 +22,7 @@ const {
|
|
|
20
22
|
icon,
|
|
21
23
|
heading,
|
|
22
24
|
text,
|
|
25
|
+
target,
|
|
23
26
|
...rest
|
|
24
27
|
} = Astro.props
|
|
25
28
|
---
|
|
@@ -34,6 +37,7 @@ const {
|
|
|
34
37
|
{size}
|
|
35
38
|
{href}
|
|
36
39
|
{icon}
|
|
40
|
+
{target}
|
|
37
41
|
/>
|
|
38
42
|
<Element class:list="channel-content">
|
|
39
43
|
<Heading
|