fulldev-ui 0.6.0 → 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/package.json +1 -1
- package/src/blocks/{_Contact1.astro → Contact1.astro} +41 -39
- package/src/blocks/Contact2.astro +98 -0
- package/src/blocks/Content1.astro +1 -0
- package/src/blocks/Content2.astro +1 -0
- package/src/blocks/Content3.astro +1 -0
- package/src/blocks/Content4.astro +9 -2
- package/src/blocks/Content5.astro +1 -0
- package/src/blocks/Content6.astro +2 -1
- package/src/blocks/Content7.astro +1 -0
- package/src/blocks/Content8.astro +1 -0
- package/src/blocks/Cta1.astro +3 -3
- package/src/blocks/Cta2.astro +1 -1
- package/src/blocks/Features1.astro +3 -2
- package/src/blocks/Features2.astro +3 -2
- package/src/blocks/Header.astro +1 -0
- package/src/blocks/Hero1.astro +2 -2
- package/src/blocks/Intro1.astro +3 -3
- package/src/blocks/JobCategory1.astro +5 -3
- package/src/blocks/Projects1.astro +10 -10
- package/src/components/Block.astro +2 -1
- package/src/components/Channel.astro +4 -0
- package/src/components/Field.astro +33 -0
- package/src/components/Fields.astro +20 -0
- package/src/components/Heading.astro +0 -1
- package/src/components/Select.astro +1 -1
- package/src/components/Tagline.astro +6 -6
- package/src/components/Toc.astro +10 -6
- package/src/content/layouts/base.yml +3 -0
- package/src/content/pages/index.mdx +2 -2
- package/src/css/custom.css +4 -0
- package/src/integration/index.ts +1 -0
- package/src/layouts/Page.astro +1 -0
- package/src/schemas/block.ts +7 -0
- package/src/schemas/channel.ts +1 -0
- package/src/structures/Prose.astro +17 -9
package/package.json
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import Element from 'fulldev-ui/components/Element.astro'
|
|
2
|
+
import Button from 'fulldev-ui/components/Button.astro'
|
|
3
|
+
import Channels from 'fulldev-ui/components/Channels.astro'
|
|
4
|
+
import Fields from 'fulldev-ui/components/Fields.astro'
|
|
6
5
|
import Form from 'fulldev-ui/components/Form.astro'
|
|
7
6
|
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
8
7
|
import Image from 'fulldev-ui/components/Image.astro'
|
|
9
8
|
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
10
|
-
import
|
|
9
|
+
import Socials from 'fulldev-ui/components/Socials.astro'
|
|
11
10
|
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
12
11
|
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
12
|
+
import Container from 'fulldev-ui/structures/Container.astro'
|
|
13
|
+
import Group from 'fulldev-ui/structures/Group.astro'
|
|
14
|
+
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
13
15
|
import Section from 'fulldev-ui/structures/Section.astro'
|
|
14
16
|
|
|
15
17
|
interface Props extends BlockSchema {}
|
|
16
18
|
|
|
17
19
|
const {
|
|
18
|
-
|
|
19
|
-
badges,
|
|
20
|
+
depth = 2,
|
|
20
21
|
tagline,
|
|
21
22
|
heading,
|
|
22
|
-
text,
|
|
23
23
|
paragraph,
|
|
24
|
-
|
|
24
|
+
content,
|
|
25
|
+
channels,
|
|
25
26
|
socials,
|
|
26
27
|
form,
|
|
27
28
|
image,
|
|
28
|
-
channels,
|
|
29
29
|
...rest
|
|
30
30
|
} = Astro.props
|
|
31
31
|
---
|
|
@@ -34,38 +34,40 @@ const {
|
|
|
34
34
|
class:list="contact-1"
|
|
35
35
|
{...rest}
|
|
36
36
|
>
|
|
37
|
-
<
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
<
|
|
56
|
-
|
|
57
|
-
</
|
|
58
|
-
<Element class:list="contact-1-socials">
|
|
59
|
-
{socials?.map((social) => <Social href={social} />)}
|
|
60
|
-
</Element>
|
|
37
|
+
<Container>
|
|
38
|
+
<Prose
|
|
39
|
+
align="middle"
|
|
40
|
+
class="max-w-xl"
|
|
41
|
+
>
|
|
42
|
+
<Tagline text={tagline} />
|
|
43
|
+
<Heading
|
|
44
|
+
size="4xl"
|
|
45
|
+
text={heading}
|
|
46
|
+
{depth}
|
|
47
|
+
/>
|
|
48
|
+
<Paragraph
|
|
49
|
+
muted
|
|
50
|
+
size="lg"
|
|
51
|
+
text={paragraph}
|
|
52
|
+
/>
|
|
53
|
+
<Fragment set:html={content} />
|
|
54
|
+
<Channels {channels} />
|
|
55
|
+
<Group>
|
|
56
|
+
<Socials {socials} />
|
|
57
|
+
</Group>
|
|
61
58
|
<Form
|
|
62
59
|
action="/thank-you"
|
|
63
60
|
method="POST"
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
>
|
|
62
|
+
<Fields fields={form?.fields} />
|
|
63
|
+
<Button
|
|
64
|
+
type="submit"
|
|
65
|
+
text={form?.submit}
|
|
66
|
+
/>
|
|
67
|
+
</Form>
|
|
68
|
+
<Image {...image} />
|
|
69
|
+
</Prose>
|
|
70
|
+
</Container>
|
|
69
71
|
</Section>
|
|
70
72
|
|
|
71
73
|
<style is:global>
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
import Button from 'fulldev-ui/components/Button.astro'
|
|
3
|
+
import Channels from 'fulldev-ui/components/Channels.astro'
|
|
4
|
+
import Fields from 'fulldev-ui/components/Fields.astro'
|
|
5
|
+
import Form from 'fulldev-ui/components/Form.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 Socials from 'fulldev-ui/components/Socials.astro'
|
|
10
|
+
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
11
|
+
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
12
|
+
import Container from 'fulldev-ui/structures/Container.astro'
|
|
13
|
+
import Group from 'fulldev-ui/structures/Group.astro'
|
|
14
|
+
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
15
|
+
import Section from 'fulldev-ui/structures/Section.astro'
|
|
16
|
+
import Split from 'fulldev-ui/structures/Split.astro'
|
|
17
|
+
|
|
18
|
+
interface Props extends BlockSchema {}
|
|
19
|
+
|
|
20
|
+
const {
|
|
21
|
+
depth = 2,
|
|
22
|
+
tagline,
|
|
23
|
+
heading,
|
|
24
|
+
paragraph,
|
|
25
|
+
content,
|
|
26
|
+
channels,
|
|
27
|
+
socials,
|
|
28
|
+
form,
|
|
29
|
+
image,
|
|
30
|
+
...rest
|
|
31
|
+
} = Astro.props
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
<Section
|
|
35
|
+
class:list="contact-2"
|
|
36
|
+
{...rest}
|
|
37
|
+
>
|
|
38
|
+
<Container>
|
|
39
|
+
<Split>
|
|
40
|
+
<Prose
|
|
41
|
+
align="middle"
|
|
42
|
+
class="max-w-xl"
|
|
43
|
+
>
|
|
44
|
+
<Tagline text={tagline} />
|
|
45
|
+
<Heading
|
|
46
|
+
size="4xl"
|
|
47
|
+
text={heading}
|
|
48
|
+
{depth}
|
|
49
|
+
/>
|
|
50
|
+
<Paragraph
|
|
51
|
+
muted
|
|
52
|
+
size="lg"
|
|
53
|
+
text={paragraph}
|
|
54
|
+
/>
|
|
55
|
+
<Fragment set:html={content} />
|
|
56
|
+
<Channels {channels} />
|
|
57
|
+
<Group>
|
|
58
|
+
<Socials {socials} />
|
|
59
|
+
</Group>
|
|
60
|
+
<Form
|
|
61
|
+
action="/thank-you"
|
|
62
|
+
method="POST"
|
|
63
|
+
>
|
|
64
|
+
<Fields fields={form?.fields} />
|
|
65
|
+
<Button
|
|
66
|
+
type="submit"
|
|
67
|
+
text={form?.submit}
|
|
68
|
+
/>
|
|
69
|
+
</Form>
|
|
70
|
+
</Prose>
|
|
71
|
+
<Image {...image} />
|
|
72
|
+
</Split>
|
|
73
|
+
</Container>
|
|
74
|
+
</Section>
|
|
75
|
+
|
|
76
|
+
<style is:global>
|
|
77
|
+
@layer fulldev {
|
|
78
|
+
.contact-2 {
|
|
79
|
+
@apply relative w-full;
|
|
80
|
+
|
|
81
|
+
.container {
|
|
82
|
+
@apply flex flex-col gap-16;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.contact-2-segment {
|
|
86
|
+
@apply flex flex-col items-start gap-8;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.contact-2-content {
|
|
90
|
+
@apply flex max-w-screen-md flex-col gap-4;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.image {
|
|
94
|
+
@apply rounded-md;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
</style>
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import Buttons from 'fulldev-ui/components/Buttons.astro'
|
|
3
3
|
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
4
4
|
import Image from 'fulldev-ui/components/Image.astro'
|
|
5
|
+
import List from 'fulldev-ui/components/List.astro'
|
|
5
6
|
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
6
7
|
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
7
8
|
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
@@ -13,16 +14,17 @@ import Split from 'fulldev-ui/structures/Split.astro'
|
|
|
13
14
|
|
|
14
15
|
interface Props extends BlockSchema {}
|
|
15
16
|
|
|
16
|
-
const { depth, tagline, heading, paragraph, buttons, image, content } =
|
|
17
|
+
const { depth, tagline, heading, paragraph, buttons, image, content, list } =
|
|
17
18
|
Astro.props
|
|
18
19
|
---
|
|
19
20
|
|
|
20
21
|
<Section class="content-4">
|
|
21
22
|
<Container>
|
|
22
23
|
<Split align="sticky">
|
|
23
|
-
<Prose>
|
|
24
|
+
<Prose class="lg:max-w-xl">
|
|
24
25
|
<Tagline text={tagline} />
|
|
25
26
|
<Heading
|
|
27
|
+
size="4xl"
|
|
26
28
|
text={heading}
|
|
27
29
|
{depth}
|
|
28
30
|
/>
|
|
@@ -31,6 +33,7 @@ const { depth, tagline, heading, paragraph, buttons, image, content } =
|
|
|
31
33
|
size="lg"
|
|
32
34
|
text={paragraph}
|
|
33
35
|
/>
|
|
36
|
+
<List items={list} />
|
|
34
37
|
<Group>
|
|
35
38
|
<Buttons {buttons} />
|
|
36
39
|
</Group>
|
|
@@ -39,6 +42,10 @@ const { depth, tagline, heading, paragraph, buttons, image, content } =
|
|
|
39
42
|
<Image {...image} />
|
|
40
43
|
<Fragment set:html={content} />
|
|
41
44
|
<slot />
|
|
45
|
+
<Buttons
|
|
46
|
+
class="lg:hidden"
|
|
47
|
+
{buttons}
|
|
48
|
+
/>
|
|
42
49
|
</Prose>
|
|
43
50
|
</Split>
|
|
44
51
|
</Container>
|
|
@@ -30,13 +30,14 @@ const {
|
|
|
30
30
|
<Prose class="mx-auto py-8">
|
|
31
31
|
<Tagline text={tagline} />
|
|
32
32
|
<Heading
|
|
33
|
+
size="5xl"
|
|
33
34
|
text={heading}
|
|
34
35
|
{depth}
|
|
35
36
|
/>
|
|
36
37
|
<Paragraph
|
|
37
|
-
muted
|
|
38
38
|
size="lg"
|
|
39
39
|
text={paragraph}
|
|
40
|
+
muted
|
|
40
41
|
/>
|
|
41
42
|
<Image {...image} />
|
|
42
43
|
<Fragment set:html={content} />
|
package/src/blocks/Cta1.astro
CHANGED
|
@@ -8,8 +8,8 @@ import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
|
8
8
|
import Container from 'fulldev-ui/structures/Container.astro'
|
|
9
9
|
import Group from 'fulldev-ui/structures/Group.astro'
|
|
10
10
|
import Panel from 'fulldev-ui/structures/Panel.astro'
|
|
11
|
+
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
11
12
|
import Section from 'fulldev-ui/structures/Section.astro'
|
|
12
|
-
import Writeup from 'fulldev-ui/structures/Writeup.astro'
|
|
13
13
|
|
|
14
14
|
interface Props extends BlockSchema {}
|
|
15
15
|
|
|
@@ -28,7 +28,7 @@ const {
|
|
|
28
28
|
<Section class:list="cta-1">
|
|
29
29
|
<Container>
|
|
30
30
|
<Panel>
|
|
31
|
-
<
|
|
31
|
+
<Prose align="center">
|
|
32
32
|
<Tagline text={tagline} />
|
|
33
33
|
<Heading
|
|
34
34
|
size="5xl"
|
|
@@ -49,7 +49,7 @@ const {
|
|
|
49
49
|
{buttons}
|
|
50
50
|
/>
|
|
51
51
|
</Group>
|
|
52
|
-
</
|
|
52
|
+
</Prose>
|
|
53
53
|
<Image {...image} />
|
|
54
54
|
</Panel>
|
|
55
55
|
</Container>
|
package/src/blocks/Cta2.astro
CHANGED
|
@@ -24,7 +24,7 @@ const { depth, tagline, heading, paragraph, buttons, image, content, ...rest } =
|
|
|
24
24
|
>
|
|
25
25
|
<Container>
|
|
26
26
|
<Panel class="p-0">
|
|
27
|
-
<Split
|
|
27
|
+
<Split align="center">
|
|
28
28
|
<Prose class="px-4 sm:px-8 lg:px-16">
|
|
29
29
|
<Tagline text={tagline} />
|
|
30
30
|
<Heading
|
|
@@ -5,6 +5,7 @@ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
|
5
5
|
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
6
6
|
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
7
7
|
import Container from 'fulldev-ui/structures/Container.astro'
|
|
8
|
+
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
8
9
|
import Section from 'fulldev-ui/structures/Section.astro'
|
|
9
10
|
import Stack from 'fulldev-ui/structures/Stack.astro'
|
|
10
11
|
import Writeup from 'fulldev-ui/structures/Writeup.astro'
|
|
@@ -19,7 +20,7 @@ const { depth = 2, tagline, heading, paragraph, cards, ...rest } = Astro.props
|
|
|
19
20
|
{...rest}
|
|
20
21
|
>
|
|
21
22
|
<Container>
|
|
22
|
-
<
|
|
23
|
+
<Prose>
|
|
23
24
|
<Tagline
|
|
24
25
|
size="sm"
|
|
25
26
|
text={tagline}
|
|
@@ -33,7 +34,7 @@ const { depth = 2, tagline, heading, paragraph, cards, ...rest } = Astro.props
|
|
|
33
34
|
size="lg"
|
|
34
35
|
text={paragraph}
|
|
35
36
|
/>
|
|
36
|
-
</
|
|
37
|
+
</Prose>
|
|
37
38
|
<Stack>
|
|
38
39
|
{
|
|
39
40
|
cards?.map(({ icon, heading, paragraph }) => (
|
|
@@ -6,6 +6,7 @@ import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
|
6
6
|
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
7
7
|
import Container from 'fulldev-ui/structures/Container.astro'
|
|
8
8
|
import Matrix from 'fulldev-ui/structures/Matrix.astro'
|
|
9
|
+
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
9
10
|
import Section from 'fulldev-ui/structures/Section.astro'
|
|
10
11
|
import Writeup from 'fulldev-ui/structures/Writeup.astro'
|
|
11
12
|
|
|
@@ -19,7 +20,7 @@ const { depth = 2, tagline, heading, paragraph, cards, ...rest } = Astro.props
|
|
|
19
20
|
{...rest}
|
|
20
21
|
>
|
|
21
22
|
<Container>
|
|
22
|
-
<
|
|
23
|
+
<Prose>
|
|
23
24
|
<Tagline
|
|
24
25
|
size="sm"
|
|
25
26
|
text={tagline}
|
|
@@ -33,7 +34,7 @@ const { depth = 2, tagline, heading, paragraph, cards, ...rest } = Astro.props
|
|
|
33
34
|
size="lg"
|
|
34
35
|
text={paragraph}
|
|
35
36
|
/>
|
|
36
|
-
</
|
|
37
|
+
</Prose>
|
|
37
38
|
<Matrix size="sm">
|
|
38
39
|
{
|
|
39
40
|
cards?.map(({ icon, heading, paragraph }) => (
|
package/src/blocks/Header.astro
CHANGED
package/src/blocks/Hero1.astro
CHANGED
|
@@ -33,7 +33,7 @@ const {
|
|
|
33
33
|
{...rest}
|
|
34
34
|
>
|
|
35
35
|
<Container class="flex flex-col items-center gap-16">
|
|
36
|
-
<Prose
|
|
36
|
+
<Prose align="center">
|
|
37
37
|
<Proof {...proof} />
|
|
38
38
|
<Chip
|
|
39
39
|
size="lg"
|
|
@@ -62,7 +62,7 @@ const {
|
|
|
62
62
|
</Group>
|
|
63
63
|
</Prose>
|
|
64
64
|
<Image
|
|
65
|
-
class="max-h-[700px] w-auto rounded-lg"
|
|
65
|
+
class="mx-auto max-h-[700px] w-auto rounded-lg"
|
|
66
66
|
{...image}
|
|
67
67
|
/>
|
|
68
68
|
</Container>
|
package/src/blocks/Intro1.astro
CHANGED
|
@@ -7,8 +7,8 @@ import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
|
7
7
|
import type { BlockSchema } from 'fulldev-ui/schemas/block'
|
|
8
8
|
import Container from 'fulldev-ui/structures/Container.astro'
|
|
9
9
|
import Group from 'fulldev-ui/structures/Group.astro'
|
|
10
|
+
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
10
11
|
import Section from 'fulldev-ui/structures/Section.astro'
|
|
11
|
-
import Writeup from 'fulldev-ui/structures/Writeup.astro'
|
|
12
12
|
|
|
13
13
|
interface Props extends BlockSchema {}
|
|
14
14
|
|
|
@@ -30,7 +30,7 @@ const {
|
|
|
30
30
|
{...rest}
|
|
31
31
|
>
|
|
32
32
|
<Container>
|
|
33
|
-
<
|
|
33
|
+
<Prose>
|
|
34
34
|
<Tagline
|
|
35
35
|
size="sm"
|
|
36
36
|
text={tagline}
|
|
@@ -49,7 +49,7 @@ const {
|
|
|
49
49
|
{buttons}
|
|
50
50
|
/>
|
|
51
51
|
</Group>
|
|
52
|
-
</
|
|
52
|
+
</Prose>
|
|
53
53
|
<Image {...image} />
|
|
54
54
|
</Container>
|
|
55
55
|
</Section>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { CollectionEntry } from 'astro:content'
|
|
3
|
-
import { getCollection } from 'astro:content'
|
|
3
|
+
import { getCollection, getEntries } from 'astro:content'
|
|
4
4
|
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
5
5
|
import Image from 'fulldev-ui/components/Image.astro'
|
|
6
6
|
import List from 'fulldev-ui/components/List.astro'
|
|
@@ -28,6 +28,8 @@ const jobs = await getCollection('pages', (page) =>
|
|
|
28
28
|
category.slug == slug || pages?.some((p) => p.slug == category.slug)
|
|
29
29
|
)
|
|
30
30
|
)
|
|
31
|
+
|
|
32
|
+
const pageEntries = pages && (await getEntries(pages))
|
|
31
33
|
---
|
|
32
34
|
|
|
33
35
|
<Section
|
|
@@ -47,13 +49,13 @@ const jobs = await getCollection('pages', (page) =>
|
|
|
47
49
|
<Container class="flex flex-col gap-12">
|
|
48
50
|
<Matrix class="gap-2">
|
|
49
51
|
{
|
|
50
|
-
|
|
52
|
+
pageEntries?.map(({ slug, data: { title, image } }) => (
|
|
51
53
|
<Card
|
|
52
54
|
class="grid grid-cols-3 items-center bg-transparent p-0"
|
|
53
55
|
href={getHref(slug)}
|
|
54
56
|
>
|
|
55
57
|
<Image
|
|
56
|
-
class="h-
|
|
58
|
+
class="h-auto w-full rounded-sm object-cover"
|
|
57
59
|
{...image}
|
|
58
60
|
/>
|
|
59
61
|
<Heading
|
|
@@ -28,19 +28,15 @@ const {
|
|
|
28
28
|
|
|
29
29
|
<Section class="projects-1">
|
|
30
30
|
<Container>
|
|
31
|
-
<Split
|
|
32
|
-
<Prose class="
|
|
31
|
+
<Split align="sticky">
|
|
32
|
+
<Prose class="max-w-xl">
|
|
33
33
|
<Tagline text={tagline} />
|
|
34
34
|
<Heading
|
|
35
|
-
size="
|
|
35
|
+
size="3xl"
|
|
36
36
|
text={heading}
|
|
37
37
|
{depth}
|
|
38
38
|
/>
|
|
39
|
-
<Paragraph
|
|
40
|
-
muted
|
|
41
|
-
size="lg"
|
|
42
|
-
text={paragraph}
|
|
43
|
-
/>
|
|
39
|
+
<Paragraph text={paragraph} />
|
|
44
40
|
<Fragment set:html={content} />
|
|
45
41
|
<Group>
|
|
46
42
|
<Buttons
|
|
@@ -51,8 +47,12 @@ const {
|
|
|
51
47
|
</Prose>
|
|
52
48
|
<Element class="flex flex-col gap-8">
|
|
53
49
|
{
|
|
54
|
-
cards?.map(({ image, badges, heading, paragraph }) => (
|
|
55
|
-
<Element
|
|
50
|
+
cards?.map(({ href, image, badges, heading, paragraph }) => (
|
|
51
|
+
<Element
|
|
52
|
+
class="flex flex-col gap-2"
|
|
53
|
+
as="a"
|
|
54
|
+
{href}
|
|
55
|
+
>
|
|
56
56
|
<Image
|
|
57
57
|
class="mb-4"
|
|
58
58
|
{...image}
|
|
@@ -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
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
import Input from 'fulldev-ui/components/Input.astro'
|
|
3
|
+
import Select from 'fulldev-ui/components/Select.astro'
|
|
4
|
+
import Textarea from 'fulldev-ui/components/Textarea.astro'
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
label?: string | undefined
|
|
8
|
+
placeholder?: string | undefined
|
|
9
|
+
value?: string | undefined
|
|
10
|
+
required?: boolean | undefined
|
|
11
|
+
disabled?: boolean | undefined
|
|
12
|
+
type?: keyof typeof components | undefined
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const { type = 'text', ...rest } = Astro.props
|
|
16
|
+
|
|
17
|
+
const components = {
|
|
18
|
+
select: Select,
|
|
19
|
+
textarea: Textarea,
|
|
20
|
+
text: Input,
|
|
21
|
+
number: Input,
|
|
22
|
+
tel: Input,
|
|
23
|
+
email: Input,
|
|
24
|
+
password: Input,
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const Component = components[type]
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
<Component
|
|
31
|
+
class:list="field"
|
|
32
|
+
{...rest}
|
|
33
|
+
/>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps } from 'astro/types'
|
|
3
|
+
import Field from 'fulldev-ui/components/Field.astro'
|
|
4
|
+
|
|
5
|
+
interface Props extends ComponentProps<typeof Field> {
|
|
6
|
+
field?: ComponentProps<typeof Field> | undefined
|
|
7
|
+
fields?: ComponentProps<typeof Field>[] | undefined
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { field, fields, ...rest } = Astro.props
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
{
|
|
14
|
+
[field, ...(fields || [])].filter(Boolean).map((field) => (
|
|
15
|
+
<Field
|
|
16
|
+
{...rest}
|
|
17
|
+
{...field}
|
|
18
|
+
/>
|
|
19
|
+
))
|
|
20
|
+
}
|
|
@@ -5,7 +5,7 @@ import Icon from 'fulldev-ui/components/Icon.astro'
|
|
|
5
5
|
import Label from 'fulldev-ui/components/Label.astro'
|
|
6
6
|
|
|
7
7
|
interface Props extends HTMLAttributes<'select'> {
|
|
8
|
-
|
|
8
|
+
size?: 'sm' | 'md' | 'lg' | undefined
|
|
9
9
|
label?: string | undefined
|
|
10
10
|
placeholder?: string | undefined
|
|
11
11
|
options?: string[] | undefined
|
|
@@ -23,26 +23,26 @@ const { text, ...rest } = Astro.props
|
|
|
23
23
|
<style is:global>
|
|
24
24
|
@layer fulldev {
|
|
25
25
|
.tagline {
|
|
26
|
-
@apply font-
|
|
26
|
+
@apply font-medium text-primary;
|
|
27
27
|
|
|
28
28
|
&.size-xs {
|
|
29
|
-
@apply text-xs;
|
|
29
|
+
@apply text-xs leading-tight;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
&.size-sm {
|
|
33
|
-
@apply text-sm;
|
|
33
|
+
@apply text-sm leading-tight;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
&.size-md {
|
|
37
|
-
@apply text-base;
|
|
37
|
+
@apply text-base leading-tight;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
&.size-lg {
|
|
41
|
-
@apply text-lg;
|
|
41
|
+
@apply text-lg leading-tight;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
&.size-xl {
|
|
45
|
-
@apply text-xl;
|
|
45
|
+
@apply text-xl leading-tight;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
package/src/components/Toc.astro
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import type { MarkdownHeading } from 'astro'
|
|
3
3
|
import type { HTMLAttributes } from 'astro/types'
|
|
4
4
|
import Element from 'fulldev-ui/components/Element.astro'
|
|
5
|
-
import
|
|
5
|
+
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
6
6
|
import Links from './Links.astro'
|
|
7
7
|
|
|
8
8
|
interface Props extends HTMLAttributes<'div'> {
|
|
@@ -26,11 +26,15 @@ const links = filteredHeadings?.map((button: any) => ({
|
|
|
26
26
|
class:list="toc"
|
|
27
27
|
{...rest}
|
|
28
28
|
>
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
{
|
|
30
|
+
(links?.length || 0) > 0 && (
|
|
31
|
+
<Heading
|
|
32
|
+
as="h6"
|
|
33
|
+
text={heading}
|
|
34
|
+
size="sm"
|
|
35
|
+
/>
|
|
36
|
+
)
|
|
37
|
+
}
|
|
34
38
|
<Links
|
|
35
39
|
{size}
|
|
36
40
|
{links}
|
|
@@ -4,8 +4,8 @@ _block: Hero1
|
|
|
4
4
|
|
|
5
5
|
title: Fulldev UI - Astro component and block library, open-source
|
|
6
6
|
description: Make websites rapidly with pre-built components and blocks.
|
|
7
|
-
heading:
|
|
8
|
-
paragraph:
|
|
7
|
+
heading: The Astro UI library for building content sites
|
|
8
|
+
paragraph: Components and blocks to build content-driven websites.
|
|
9
9
|
buttons:
|
|
10
10
|
- text: Get Started
|
|
11
11
|
href: /docs/
|
package/src/css/custom.css
CHANGED
package/src/integration/index.ts
CHANGED
package/src/layouts/Page.astro
CHANGED
package/src/schemas/block.ts
CHANGED
|
@@ -17,6 +17,13 @@ export const blockSchema = cardSchema
|
|
|
17
17
|
variants: z.record(z.string(), z.string().array()).optional(),
|
|
18
18
|
categories: pathSchema('pages').array().optional(),
|
|
19
19
|
menus: menuSchema.array().optional(),
|
|
20
|
+
form: z
|
|
21
|
+
.object({
|
|
22
|
+
fields: z.array(z.any()).optional(),
|
|
23
|
+
submit: z.string().optional(),
|
|
24
|
+
})
|
|
25
|
+
.strict()
|
|
26
|
+
.optional(),
|
|
20
27
|
headings: z
|
|
21
28
|
.array(
|
|
22
29
|
z.object({
|
package/src/schemas/channel.ts
CHANGED
|
@@ -10,5 +10,6 @@ export const channelSchema = z
|
|
|
10
10
|
href: z.string().optional(),
|
|
11
11
|
size: z.enum(['sm', 'md', 'lg']).optional(),
|
|
12
12
|
variant: z.enum(['secondary', 'outline']).optional(),
|
|
13
|
+
target: z.enum(['_blank', '_self', '_parent', '_top']).optional(),
|
|
13
14
|
})
|
|
14
15
|
.strict() satisfies z.ZodType<ComponentProps<typeof Channel>>
|
|
@@ -27,10 +27,14 @@ const { ...rest } = Astro.props
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
&.align-center {
|
|
30
|
-
@apply mx-auto flex max-w-screen-md;
|
|
30
|
+
@apply mx-auto flex max-w-screen-md flex-col items-center;
|
|
31
31
|
|
|
32
|
-
>
|
|
32
|
+
> * {
|
|
33
33
|
@apply text-center;
|
|
34
|
+
|
|
35
|
+
> * {
|
|
36
|
+
@apply text-left;
|
|
37
|
+
}
|
|
34
38
|
}
|
|
35
39
|
}
|
|
36
40
|
|
|
@@ -39,16 +43,25 @@ const { ...rest } = Astro.props
|
|
|
39
43
|
}
|
|
40
44
|
|
|
41
45
|
> *,
|
|
42
|
-
.tagline +
|
|
46
|
+
.tagline + *,
|
|
47
|
+
.proof + *,
|
|
48
|
+
.channel + .channel {
|
|
43
49
|
@apply mt-4;
|
|
44
50
|
}
|
|
45
51
|
|
|
46
52
|
> .group,
|
|
47
53
|
> .button,
|
|
48
|
-
> .buttons
|
|
54
|
+
> .buttons,
|
|
55
|
+
> .channel {
|
|
49
56
|
@apply mt-8;
|
|
50
57
|
}
|
|
51
58
|
|
|
59
|
+
> .form,
|
|
60
|
+
> img,
|
|
61
|
+
> p > img {
|
|
62
|
+
@apply my-12;
|
|
63
|
+
}
|
|
64
|
+
|
|
52
65
|
> h2 {
|
|
53
66
|
@apply mt-10;
|
|
54
67
|
}
|
|
@@ -71,11 +84,6 @@ const { ...rest } = Astro.props
|
|
|
71
84
|
@apply rounded-md border border-destructive p-4 text-destructive;
|
|
72
85
|
}
|
|
73
86
|
|
|
74
|
-
> img,
|
|
75
|
-
> p > img {
|
|
76
|
-
@apply my-12 rounded-md;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
87
|
blockquote > p + p {
|
|
80
88
|
@apply !mt-1;
|
|
81
89
|
}
|