fulldev-ui 0.6.0-beta.3 → 0.6.0-beta.6
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 +1 -7
- package/cloudcannon.config.yml +269 -0
- package/package.json +1 -1
- package/src/blocks/Banner.astro +33 -0
- package/src/blocks/Colleagues1.astro +73 -0
- package/src/blocks/Contact1.astro +12 -4
- package/src/blocks/Content1.astro +79 -0
- package/src/blocks/Content2.astro +94 -0
- package/src/blocks/Content3.astro +70 -0
- package/src/blocks/Content4.astro +75 -0
- package/src/blocks/Cta1.astro +35 -34
- package/src/blocks/Feature1.astro +20 -26
- package/src/blocks/Features1.astro +66 -0
- package/src/blocks/Footer.astro +27 -52
- package/src/blocks/Header.astro +154 -0
- package/src/blocks/Hero1.astro +41 -41
- package/src/blocks/Intro1.astro +32 -18
- package/src/blocks/Jobs1.astro +73 -0
- package/src/blocks/Logos1.astro +55 -0
- package/src/blocks/Products1.astro +4 -4
- package/src/blocks/Reviews1.astro +79 -0
- package/src/components/Badges.astro +12 -35
- package/src/components/Block.astro +5 -24
- package/src/components/Button.astro +1 -2
- package/src/components/Buttons.astro +12 -43
- package/src/components/Cart.astro +6 -12
- package/src/components/Drawer.astro +1 -2
- package/src/components/Form.astro +3 -3
- package/src/components/Grid.astro +39 -0
- package/src/components/{Banner.astro → Group.astro} +5 -6
- package/src/components/Heading.astro +5 -1
- package/src/components/Icon.astro +0 -1
- package/src/components/Image.astro +15 -50
- package/src/components/Layout.astro +35 -0
- package/src/components/Links.astro +14 -35
- package/src/components/Logo.astro +5 -7
- package/src/components/Masonry.astro +42 -0
- package/src/components/Menu.astro +17 -38
- package/src/components/Menus.astro +20 -0
- package/src/components/Panel.astro +1 -1
- package/src/components/Paragraph.astro +8 -8
- package/src/components/Prose.astro +15 -7
- package/src/components/Search.astro +1 -1
- package/src/components/Section.astro +1 -1
- package/src/components/Sidebar.astro +11 -42
- package/src/components/Stack.astro +25 -0
- package/src/components/Tagline.astro +1 -1
- package/src/components/Toc.astro +22 -30
- package/src/components/Writeup.astro +59 -0
- package/src/components/_Image.astro +79 -0
- package/src/content/config.ts +2 -28
- package/src/content/layouts/base.yml +4 -3
- package/src/content/{docs → pages/docs}/_internationalization.mdx +1 -0
- package/src/content/{docs → pages/docs}/_using-blocks.mdx +1 -0
- package/src/content/{docs → pages/docs}/_using-presets.mdx +1 -0
- package/src/content/{docs → pages/docs}/blocks.mdx +1 -0
- package/src/content/{docs → pages/docs}/collections/images.mdx +1 -0
- package/src/content/{docs → pages/docs}/collections/pages.mdx +1 -0
- package/src/content/{docs → pages/docs}/collections/presets.mdx +1 -0
- package/src/content/{docs → pages/docs}/collections.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/_card.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/_dialog.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/_drawer.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/_localeswitcher.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/_switch.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/_tagline.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/_toggle.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/avatar.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/badge.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/badges.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/button.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/buttons.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/channel.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/channels.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/checkbox.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/code.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/heading.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/icon.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/image.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/input.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/label.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/link.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/links.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/list.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/logo.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/menu.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/prose.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/rating.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/section.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/select.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/social.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/socials.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/switch.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/table.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/tagline.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/text.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/textarea.mdx +1 -0
- package/src/content/{docs → pages/docs}/components/themer.mdx +1 -0
- package/src/content/{docs → pages/docs}/components.mdx +1 -0
- package/src/content/{docs → pages/docs}/customization.mdx +1 -0
- package/src/content/{docs → pages/docs}/frameworks.mdx +1 -0
- package/src/content/{docs → pages/docs}/generating-pages.mdx +1 -0
- package/src/content/{docs → pages/docs}/index.mdx +1 -0
- package/src/content/{docs → pages/docs}/installation.mdx +1 -0
- package/src/content/{docs → pages/docs}/layouts.mdx +1 -0
- package/src/content/pages/index.mdx +3 -3
- package/src/content/{products → pages/products}/product.md +2 -2
- package/src/integration/index.ts +38 -16
- package/src/layouts/{CategoryLayout.astro → Category.astro} +19 -20
- package/src/layouts/Doc.astro +70 -0
- package/src/layouts/Job.astro +62 -0
- package/src/layouts/Jobs.astro +72 -0
- package/src/layouts/Page.astro +29 -0
- package/src/layouts/Post.astro +52 -0
- package/src/layouts/{ProductLayout.astro → Product.astro} +20 -11
- package/src/pages/[...page].astro +36 -4
- package/src/pages/test.astro +25 -1
- package/src/schemas/components/block.ts +58 -15
- package/src/schemas/components/button.ts +1 -0
- package/src/schemas/components/image.ts +32 -18
- package/src/schemas/components/menu.ts +1 -0
- package/src/schemas/imageSchema.ts +3 -3
- package/src/schemas/page.ts +40 -0
- package/src/utils/getHref.ts +4 -21
- package/tailwind.config.ts +4 -0
- package/src/blocks/Banner1.astro +0 -35
- package/src/blocks/Header1.astro +0 -192
- package/src/content/layouts/docs.yml +0 -2
- package/src/layouts/DocLayout.astro +0 -59
- package/src/layouts/Layout.astro +0 -107
- package/src/layouts/PageLayout.astro +0 -27
- package/src/layouts/PostLayout.astro +0 -22
- package/src/pages/[...category].astro +0 -17
- package/src/pages/[...doc].astro +0 -17
- package/src/pages/[...post].astro +0 -17
- package/src/pages/[...product].astro +0 -17
- package/src/schemas/blocks/banner.ts +0 -10
- package/src/schemas/blocks/categories.ts +0 -14
- package/src/schemas/blocks/contact.ts +0 -18
- package/src/schemas/blocks/cta.ts +0 -18
- package/src/schemas/blocks/feature.ts +0 -18
- package/src/schemas/blocks/hero.ts +0 -20
- package/src/schemas/blocks/intro.ts +0 -16
- package/src/schemas/blocks/products.ts +0 -14
- package/src/schemas/categorySchema.ts +0 -16
- package/src/schemas/docSchema.ts +0 -14
- package/src/schemas/layoutSchema.ts +0 -22
- package/src/schemas/pageSchema.ts +0 -17
- package/src/schemas/postSchema.ts +0 -14
- package/src/schemas/productSchema.ts +0 -22
- /package/src/content/{categories → pages/categories}/category.md +0 -0
- /package/src/content/{posts → pages/posts}/post.md +0 -0
package/src/blocks/Intro1.astro
CHANGED
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
---
|
|
2
|
+
import type { ComponentProps } from 'astro/types'
|
|
2
3
|
import Buttons from 'fulldev-ui/components/Buttons.astro'
|
|
3
4
|
import Container from 'fulldev-ui/components/Container.astro'
|
|
4
|
-
import
|
|
5
|
+
import Group from 'fulldev-ui/components/Group.astro'
|
|
5
6
|
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
7
|
+
import Image from 'fulldev-ui/components/Image.astro'
|
|
6
8
|
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
7
9
|
import Section from 'fulldev-ui/components/Section.astro'
|
|
8
10
|
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
9
|
-
import
|
|
10
|
-
import type {
|
|
11
|
+
import Writeup from 'fulldev-ui/components/Writeup.astro'
|
|
12
|
+
import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
|
|
11
13
|
|
|
12
|
-
interface Props extends ComponentProps<typeof Section>,
|
|
14
|
+
interface Props extends ComponentProps<typeof Section>, BlockSchema {}
|
|
13
15
|
|
|
14
|
-
const {
|
|
16
|
+
const {
|
|
17
|
+
badge,
|
|
18
|
+
tagline,
|
|
19
|
+
heading,
|
|
20
|
+
paragraph,
|
|
21
|
+
content,
|
|
22
|
+
button,
|
|
23
|
+
buttons,
|
|
24
|
+
image,
|
|
25
|
+
...rest
|
|
26
|
+
} = Astro.props
|
|
15
27
|
---
|
|
16
28
|
|
|
17
29
|
<Section
|
|
@@ -19,7 +31,7 @@ const { tagline, heading, paragraph, buttons, ...rest } = Astro.props
|
|
|
19
31
|
{...rest}
|
|
20
32
|
>
|
|
21
33
|
<Container>
|
|
22
|
-
<
|
|
34
|
+
<Writeup>
|
|
23
35
|
<Tagline
|
|
24
36
|
size="sm"
|
|
25
37
|
text={tagline}
|
|
@@ -30,26 +42,28 @@ const { tagline, heading, paragraph, buttons, ...rest } = Astro.props
|
|
|
30
42
|
text={heading}
|
|
31
43
|
/>
|
|
32
44
|
<Paragraph
|
|
33
|
-
size="
|
|
45
|
+
size="lg"
|
|
34
46
|
text={paragraph}
|
|
35
47
|
/>
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
48
|
+
<Fragment set:html={content} />
|
|
49
|
+
<Group>
|
|
50
|
+
<Buttons
|
|
51
|
+
{button}
|
|
52
|
+
{buttons}
|
|
53
|
+
/>
|
|
54
|
+
</Group>
|
|
55
|
+
</Writeup>
|
|
56
|
+
<Image {...image} />
|
|
41
57
|
</Container>
|
|
42
58
|
</Section>
|
|
43
59
|
|
|
44
60
|
<style is:global>
|
|
45
61
|
@layer fulldev {
|
|
46
|
-
.intro-1 {
|
|
47
|
-
|
|
48
|
-
@apply flex flex-col items-center gap-8 text-center;
|
|
49
|
-
}
|
|
62
|
+
.section.intro-1 {
|
|
63
|
+
@apply border-b py-8;
|
|
50
64
|
|
|
51
|
-
.
|
|
52
|
-
@apply
|
|
65
|
+
.image {
|
|
66
|
+
@apply rounded-lg;
|
|
53
67
|
}
|
|
54
68
|
}
|
|
55
69
|
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps } from 'astro/types'
|
|
3
|
+
import { getEntries } from 'astro:content'
|
|
4
|
+
import Card from 'fulldev-ui/components/Card.astro'
|
|
5
|
+
import Container from 'fulldev-ui/components/Container.astro'
|
|
6
|
+
import Grid from 'fulldev-ui/components/Grid.astro'
|
|
7
|
+
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
8
|
+
import List from 'fulldev-ui/components/List.astro'
|
|
9
|
+
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
10
|
+
import Section from 'fulldev-ui/components/Section.astro'
|
|
11
|
+
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
12
|
+
import Writeup from 'fulldev-ui/components/Writeup.astro'
|
|
13
|
+
import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
|
|
14
|
+
import { getHref } from 'fulldev-ui/utils/getHref'
|
|
15
|
+
|
|
16
|
+
interface Props extends ComponentProps<typeof Section>, BlockSchema {}
|
|
17
|
+
|
|
18
|
+
const { tagline, heading, paragraph, pages, ...rest } = Astro.props
|
|
19
|
+
|
|
20
|
+
const entries = pages && (await getEntries(pages))
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
<Section
|
|
24
|
+
class:list="jobs-1"
|
|
25
|
+
{...rest}
|
|
26
|
+
>
|
|
27
|
+
<Container>
|
|
28
|
+
<Writeup align="center">
|
|
29
|
+
<Tagline
|
|
30
|
+
size="sm"
|
|
31
|
+
text={tagline}
|
|
32
|
+
/>
|
|
33
|
+
<Heading
|
|
34
|
+
size="3xl"
|
|
35
|
+
text={heading}
|
|
36
|
+
/>
|
|
37
|
+
<Paragraph text={paragraph} />
|
|
38
|
+
</Writeup>
|
|
39
|
+
<Grid>
|
|
40
|
+
{
|
|
41
|
+
entries?.map(({ slug, data: { title, list } }) => (
|
|
42
|
+
<Card
|
|
43
|
+
class="jobs-1-card"
|
|
44
|
+
href={getHref(slug)}
|
|
45
|
+
>
|
|
46
|
+
<Heading
|
|
47
|
+
as="h2"
|
|
48
|
+
size="lg"
|
|
49
|
+
text={title}
|
|
50
|
+
/>
|
|
51
|
+
<List
|
|
52
|
+
size="sm"
|
|
53
|
+
items={list}
|
|
54
|
+
/>
|
|
55
|
+
</Card>
|
|
56
|
+
))
|
|
57
|
+
}
|
|
58
|
+
</Grid>
|
|
59
|
+
</Container>
|
|
60
|
+
</Section>
|
|
61
|
+
|
|
62
|
+
<style is:global>
|
|
63
|
+
@layer fulldev {
|
|
64
|
+
.jobs-1 {
|
|
65
|
+
.container {
|
|
66
|
+
@apply flex flex-col items-center gap-16;
|
|
67
|
+
}
|
|
68
|
+
.card {
|
|
69
|
+
@apply flex flex-col gap-3;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
</style>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps } from 'astro/types'
|
|
3
|
+
import Container from 'fulldev-ui/components/Container.astro'
|
|
4
|
+
import Element from 'fulldev-ui/components/Element.astro'
|
|
5
|
+
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
6
|
+
import Image from 'fulldev-ui/components/Image.astro'
|
|
7
|
+
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
8
|
+
import Section from 'fulldev-ui/components/Section.astro'
|
|
9
|
+
import Writeup from 'fulldev-ui/components/Writeup.astro'
|
|
10
|
+
import type { BlockSchema } from 'fulldev-ui/schemas/components/block.ts'
|
|
11
|
+
|
|
12
|
+
interface Props extends ComponentProps<typeof Section>, BlockSchema {}
|
|
13
|
+
|
|
14
|
+
const { tagline, heading, paragraph, images, ...rest } = Astro.props
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
<Section
|
|
18
|
+
class:list="logos-1"
|
|
19
|
+
{...rest}
|
|
20
|
+
>
|
|
21
|
+
<Container>
|
|
22
|
+
<Writeup align="center">
|
|
23
|
+
<Heading
|
|
24
|
+
size="xl"
|
|
25
|
+
text={heading}
|
|
26
|
+
/>
|
|
27
|
+
<Paragraph
|
|
28
|
+
size="sm"
|
|
29
|
+
muted
|
|
30
|
+
text={paragraph}
|
|
31
|
+
/>
|
|
32
|
+
</Writeup>
|
|
33
|
+
<Element class:list="logos-1-cards">
|
|
34
|
+
{images?.map((image) => <Image {...image} />)}
|
|
35
|
+
</Element>
|
|
36
|
+
</Container>
|
|
37
|
+
</Section>
|
|
38
|
+
|
|
39
|
+
<style is:global>
|
|
40
|
+
@layer fulldev {
|
|
41
|
+
.logos-1 {
|
|
42
|
+
.container {
|
|
43
|
+
@apply flex flex-col items-center gap-8;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.logos-1-cards {
|
|
47
|
+
@apply flex flex-wrap justify-center gap-12;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.image {
|
|
51
|
+
@apply max-w-36;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
</style>
|
|
@@ -9,10 +9,10 @@ import Heading from 'fulldev-ui/components/Heading.astro'
|
|
|
9
9
|
import Image from 'fulldev-ui/components/Image.astro'
|
|
10
10
|
import Price from 'fulldev-ui/components/Price.astro'
|
|
11
11
|
import Section from 'fulldev-ui/components/Section.astro'
|
|
12
|
-
import type {
|
|
12
|
+
import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
|
|
13
13
|
import { getHref } from 'fulldev-ui/utils/getHref'
|
|
14
14
|
|
|
15
|
-
interface Props extends ComponentProps<typeof Section>,
|
|
15
|
+
interface Props extends ComponentProps<typeof Section>, BlockSchema {}
|
|
16
16
|
|
|
17
17
|
const { heading, button, products, ...rest } = Astro.props
|
|
18
18
|
|
|
@@ -37,8 +37,8 @@ const entries = products && (await getEntries(products))
|
|
|
37
37
|
</Element>
|
|
38
38
|
<Element class:list="products-1-cards">
|
|
39
39
|
{
|
|
40
|
-
entries?.map(({
|
|
41
|
-
<Card href={getHref(
|
|
40
|
+
entries?.map(({ slug, data: { images, title, price } }) => (
|
|
41
|
+
<Card href={getHref(slug)}>
|
|
42
42
|
<Image {...images?.[0]} />
|
|
43
43
|
<Element class:list="products-1-card-content">
|
|
44
44
|
<Heading
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps } from 'astro/types'
|
|
3
|
+
import Card from 'fulldev-ui/components/Card.astro'
|
|
4
|
+
import Container from 'fulldev-ui/components/Container.astro'
|
|
5
|
+
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
6
|
+
import Masonry from 'fulldev-ui/components/Masonry.astro'
|
|
7
|
+
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
8
|
+
import Rating from 'fulldev-ui/components/Rating.astro'
|
|
9
|
+
import Section from 'fulldev-ui/components/Section.astro'
|
|
10
|
+
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
11
|
+
import Writeup from 'fulldev-ui/components/Writeup.astro'
|
|
12
|
+
import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
|
|
13
|
+
|
|
14
|
+
interface Props extends ComponentProps<typeof Section>, BlockSchema {}
|
|
15
|
+
|
|
16
|
+
const { tagline, heading, paragraph, cards, ...rest } = Astro.props
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<Section
|
|
20
|
+
class:list="reviews-1"
|
|
21
|
+
{...rest}
|
|
22
|
+
>
|
|
23
|
+
<Container>
|
|
24
|
+
<Writeup align="center">
|
|
25
|
+
<Tagline
|
|
26
|
+
size="sm"
|
|
27
|
+
text={tagline}
|
|
28
|
+
/>
|
|
29
|
+
<Heading
|
|
30
|
+
size="3xl"
|
|
31
|
+
text={heading}
|
|
32
|
+
/>
|
|
33
|
+
<Paragraph text={paragraph} />
|
|
34
|
+
</Writeup>
|
|
35
|
+
<Masonry>
|
|
36
|
+
{
|
|
37
|
+
cards?.map(({ rating, heading, paragraph }) => (
|
|
38
|
+
<Card class="reviews-1-card">
|
|
39
|
+
<Rating
|
|
40
|
+
size="sm"
|
|
41
|
+
score={rating}
|
|
42
|
+
/>
|
|
43
|
+
<Heading
|
|
44
|
+
as="h3"
|
|
45
|
+
size="md"
|
|
46
|
+
text={heading}
|
|
47
|
+
/>
|
|
48
|
+
<Paragraph
|
|
49
|
+
size="sm"
|
|
50
|
+
text={paragraph}
|
|
51
|
+
/>
|
|
52
|
+
</Card>
|
|
53
|
+
))
|
|
54
|
+
}
|
|
55
|
+
</Masonry>
|
|
56
|
+
</Container>
|
|
57
|
+
</Section>
|
|
58
|
+
|
|
59
|
+
<style is:global>
|
|
60
|
+
@layer fulldev {
|
|
61
|
+
.reviews-1 {
|
|
62
|
+
.container {
|
|
63
|
+
@apply flex flex-col items-center gap-16;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.reviews-1-cards {
|
|
67
|
+
@apply grid grid-cols-1 gap-6 lg:grid-cols-3;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.reviews-1-card {
|
|
71
|
+
@apply flex flex-col gap-3;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.icon {
|
|
75
|
+
@apply text-primary;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
</style>
|
|
@@ -1,43 +1,20 @@
|
|
|
1
1
|
---
|
|
2
|
-
import type { ComponentProps
|
|
3
|
-
import Element from 'fulldev-ui/components/Element.astro'
|
|
2
|
+
import type { ComponentProps } from 'astro/types'
|
|
4
3
|
import Badge from './Badge.astro'
|
|
5
4
|
|
|
6
|
-
interface Props extends
|
|
7
|
-
variant?: ComponentProps<typeof Badge>['variant']
|
|
8
|
-
size?: ComponentProps<typeof Badge>['size']
|
|
9
|
-
badges?: ComponentProps<typeof Badge>[] | undefined
|
|
5
|
+
interface Props extends ComponentProps<typeof Badge> {
|
|
10
6
|
badge?: ComponentProps<typeof Badge> | undefined
|
|
7
|
+
badges?: ComponentProps<typeof Badge>[] | undefined
|
|
11
8
|
}
|
|
12
9
|
|
|
13
|
-
const {
|
|
14
|
-
variant = 'outline',
|
|
15
|
-
size = 'md',
|
|
16
|
-
badges = [],
|
|
17
|
-
badge,
|
|
18
|
-
...rest
|
|
19
|
-
} = Astro.props
|
|
10
|
+
const { badge, badges, ...rest } = Astro.props
|
|
20
11
|
---
|
|
21
12
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
{size}
|
|
31
|
-
{...badge}
|
|
32
|
-
/>
|
|
33
|
-
))
|
|
34
|
-
}
|
|
35
|
-
</Element>
|
|
36
|
-
|
|
37
|
-
<style is:global>
|
|
38
|
-
@layer fulldev {
|
|
39
|
-
.badges {
|
|
40
|
-
@apply inline-flex w-auto flex-wrap justify-stretch gap-1.5;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
</style>
|
|
13
|
+
{
|
|
14
|
+
[badge, ...(badges || [])].filter(Boolean).map((badge) => (
|
|
15
|
+
<Badge
|
|
16
|
+
{...badge}
|
|
17
|
+
{...rest}
|
|
18
|
+
/>
|
|
19
|
+
))
|
|
20
|
+
}
|
|
@@ -1,30 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
import { getEntries } from 'astro:content'
|
|
3
|
-
import type {
|
|
4
|
-
import type { CategoriesSchema } from 'fulldev-ui/schemas/blocks/categories'
|
|
5
|
-
import type { CtaSchema } from 'fulldev-ui/schemas/blocks/cta'
|
|
6
|
-
import type { FeatureSchema } from 'fulldev-ui/schemas/blocks/feature'
|
|
7
|
-
import type { HeroSchema } from 'fulldev-ui/schemas/blocks/hero'
|
|
8
|
-
import type { ProductsSchema } from 'fulldev-ui/schemas/blocks/products'
|
|
9
|
-
import type { FooterSchema } from 'fulldev-ui/schemas/components/footer'
|
|
10
|
-
import type { HeaderSchema } from 'fulldev-ui/schemas/components/header'
|
|
3
|
+
import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
|
|
11
4
|
|
|
12
|
-
interface Props
|
|
13
|
-
extends HeroSchema,
|
|
14
|
-
CtaSchema,
|
|
15
|
-
FeatureSchema,
|
|
16
|
-
CategoriesSchema,
|
|
17
|
-
ProductsSchema,
|
|
18
|
-
HeaderSchema,
|
|
19
|
-
FooterSchema,
|
|
20
|
-
BannerSchema {
|
|
21
|
-
_block: string
|
|
22
|
-
}
|
|
5
|
+
interface Props extends BlockSchema {}
|
|
23
6
|
|
|
24
|
-
let { _block,
|
|
7
|
+
let { _block, pages, ...rest } = Astro.props
|
|
25
8
|
|
|
26
|
-
|
|
27
|
-
categories = categories && (await getEntries(categories))
|
|
9
|
+
pages = pages && (await getEntries(pages))
|
|
28
10
|
|
|
29
11
|
const blocks = {
|
|
30
12
|
...import.meta.glob('/src/blocks/**/*.astro'),
|
|
@@ -41,8 +23,7 @@ const BlockComponent = path && (await (blocks[path] as any)()).default
|
|
|
41
23
|
{
|
|
42
24
|
BlockComponent && (
|
|
43
25
|
<BlockComponent
|
|
44
|
-
{
|
|
45
|
-
{categories}
|
|
26
|
+
{pages}
|
|
46
27
|
{...rest}
|
|
47
28
|
/>
|
|
48
29
|
)
|
|
@@ -11,7 +11,6 @@ interface Props
|
|
|
11
11
|
as?: HTMLTag
|
|
12
12
|
type?: HTMLAttributes<'button'>['type'] & HTMLAttributes<'a'>['type']
|
|
13
13
|
for?: HTMLAttributes<'label'>['for']
|
|
14
|
-
reverse?: boolean | undefined
|
|
15
14
|
}
|
|
16
15
|
|
|
17
16
|
const {
|
|
@@ -33,11 +32,11 @@ const {
|
|
|
33
32
|
{size}
|
|
34
33
|
{...rest}
|
|
35
34
|
>
|
|
36
|
-
<Icon name={icon} />
|
|
37
35
|
<Element as="span">
|
|
38
36
|
<Fragment set:html={text} />
|
|
39
37
|
<slot />
|
|
40
38
|
</Element>
|
|
39
|
+
<Icon name={icon} />
|
|
41
40
|
</Element>
|
|
42
41
|
|
|
43
42
|
<style is:global>
|
|
@@ -1,59 +1,28 @@
|
|
|
1
1
|
---
|
|
2
|
-
import type { ComponentProps
|
|
2
|
+
import type { ComponentProps } from 'astro/types'
|
|
3
3
|
import Button from 'fulldev-ui/components/Button.astro'
|
|
4
|
-
import Element from 'fulldev-ui/components/Element.astro'
|
|
5
|
-
import type { GlobalProps } from 'fulldev-ui/types/global-props'
|
|
6
4
|
|
|
7
|
-
interface Props extends
|
|
8
|
-
variant?: ComponentProps<typeof Button>['variant']
|
|
5
|
+
interface Props extends ComponentProps<typeof Button> {
|
|
9
6
|
button?: ComponentProps<typeof Button> | undefined
|
|
10
7
|
buttons?: ComponentProps<typeof Button>[] | undefined
|
|
11
|
-
direction?: 'row' | 'column' | undefined
|
|
12
8
|
}
|
|
13
9
|
|
|
14
|
-
const {
|
|
15
|
-
direction = 'row',
|
|
16
|
-
variant = 'primary',
|
|
17
|
-
buttons = [],
|
|
18
|
-
button,
|
|
19
|
-
size,
|
|
20
|
-
...rest
|
|
21
|
-
} = Astro.props
|
|
10
|
+
const { variant = 'primary', button, buttons, ...rest } = Astro.props
|
|
22
11
|
|
|
23
12
|
const buttonVariant = (i: number) => {
|
|
24
13
|
if (variant === 'primary' && i === 0) return 'primary'
|
|
25
14
|
else if (variant === 'primary' && i === 1) return 'secondary'
|
|
26
|
-
else if (variant === 'primary' && i > 1) return 'ghost'
|
|
27
15
|
else if (variant === 'secondary' && i === 0) return 'secondary'
|
|
28
16
|
else return 'ghost'
|
|
29
17
|
}
|
|
30
18
|
---
|
|
31
19
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
{size}
|
|
42
|
-
{...button}
|
|
43
|
-
/>
|
|
44
|
-
))
|
|
45
|
-
}
|
|
46
|
-
<slot />
|
|
47
|
-
</Element>
|
|
48
|
-
|
|
49
|
-
<style is:global>
|
|
50
|
-
@layer fulldev {
|
|
51
|
-
.buttons {
|
|
52
|
-
@apply inline-flex flex-wrap justify-stretch gap-2;
|
|
53
|
-
|
|
54
|
-
&.direction-column {
|
|
55
|
-
@apply flex-col items-start;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
</style>
|
|
20
|
+
{
|
|
21
|
+
[button, ...(buttons || [])].filter(Boolean).map((button, i) => (
|
|
22
|
+
<Button
|
|
23
|
+
variant={buttonVariant(i)}
|
|
24
|
+
{...rest}
|
|
25
|
+
{...button}
|
|
26
|
+
/>
|
|
27
|
+
))
|
|
28
|
+
}
|
|
@@ -8,15 +8,9 @@ import Icon from './Icon.astro'
|
|
|
8
8
|
import Input from './Input.astro'
|
|
9
9
|
import Select from './Select.astro'
|
|
10
10
|
|
|
11
|
-
interface Props extends ComponentProps<typeof Drawer> {}
|
|
11
|
+
interface Props extends Omit<ComponentProps<typeof Drawer>, 'id' | 'icon'> {}
|
|
12
12
|
|
|
13
|
-
const {
|
|
14
|
-
icon = 'shopping-cart',
|
|
15
|
-
color = 'brand',
|
|
16
|
-
id = 'cart',
|
|
17
|
-
if: ifProp,
|
|
18
|
-
...rest
|
|
19
|
-
} = Astro.props
|
|
13
|
+
const { variant = 'ghost', size = 'md', ...rest } = Astro.props
|
|
20
14
|
---
|
|
21
15
|
|
|
22
16
|
<Select if={false} />
|
|
@@ -25,12 +19,12 @@ const {
|
|
|
25
19
|
<Icon if={false} />
|
|
26
20
|
|
|
27
21
|
<Drawer
|
|
28
|
-
if={ifProp}
|
|
29
22
|
class:list="cart"
|
|
30
|
-
|
|
23
|
+
id="cart"
|
|
24
|
+
icon="shopping-cart"
|
|
25
|
+
{variant}
|
|
26
|
+
{size}
|
|
31
27
|
{icon}
|
|
32
|
-
{color}
|
|
33
|
-
{id}
|
|
34
28
|
{...rest}
|
|
35
29
|
>
|
|
36
30
|
<CartList client:load />
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
import type { HTMLAttributes } from 'astro/types'
|
|
2
|
+
import type { ComponentProps, HTMLAttributes } from 'astro/types'
|
|
3
3
|
import Element from 'fulldev-ui/components/Element.astro'
|
|
4
|
-
import type { ComponentProps } from 'svelte'
|
|
5
4
|
import Button from './Button.astro'
|
|
6
5
|
|
|
7
6
|
interface Props
|
|
@@ -3,8 +3,8 @@ import type { ComponentProps, 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 Input from 'fulldev-ui/components/Input.astro'
|
|
6
|
-
import Paragrapharea from 'fulldev-ui/components/Paragrapharea.astro'
|
|
7
6
|
import Select from 'fulldev-ui/components/Select.astro'
|
|
7
|
+
import Textarea from 'fulldev-ui/components/Textarea.astro'
|
|
8
8
|
import type { GlobalProps } from 'fulldev-ui/types/global-props'
|
|
9
9
|
|
|
10
10
|
interface Props extends GlobalProps, HTMLAttributes<'form'> {
|
|
@@ -13,7 +13,7 @@ interface Props extends GlobalProps, HTMLAttributes<'form'> {
|
|
|
13
13
|
| (
|
|
14
14
|
| ComponentProps<typeof Input>
|
|
15
15
|
| ComponentProps<typeof Select>
|
|
16
|
-
| (ComponentProps<typeof
|
|
16
|
+
| (ComponentProps<typeof Textarea> & {
|
|
17
17
|
type?: 'textarea' | undefined
|
|
18
18
|
})
|
|
19
19
|
)[]
|
|
@@ -32,7 +32,7 @@ const { fields, submit, ...rest } = Astro.props
|
|
|
32
32
|
fields?.map((field) => {
|
|
33
33
|
if ('options' in field) return <Select {...field} />
|
|
34
34
|
if ('type' in field && field.type === 'textarea')
|
|
35
|
-
return <
|
|
35
|
+
return <Textarea {...field} />
|
|
36
36
|
return <Input {...(field as any)} />
|
|
37
37
|
})
|
|
38
38
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { HTMLAttributes, HTMLTag } from 'astro/types'
|
|
3
|
+
import Element from 'fulldev-ui/components/Element.astro'
|
|
4
|
+
|
|
5
|
+
interface Props extends HTMLAttributes<'div'> {
|
|
6
|
+
as?: HTMLTag
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { ...rest } = Astro.props
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<Element
|
|
13
|
+
class:list="grid"
|
|
14
|
+
{...rest}
|
|
15
|
+
>
|
|
16
|
+
<slot />
|
|
17
|
+
</Element>
|
|
18
|
+
|
|
19
|
+
<style is:global>
|
|
20
|
+
@layer fulldev {
|
|
21
|
+
.grid {
|
|
22
|
+
@apply relative w-full grid-cols-[repeat(auto-fill,minmax(var(--column-width),1fr))] gap-5;
|
|
23
|
+
display: grid;
|
|
24
|
+
--column-width: 20rem;
|
|
25
|
+
|
|
26
|
+
/* &.size-sm {
|
|
27
|
+
--column-width: 16rem;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&.size-md {
|
|
31
|
+
--column-width: 20rem;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&.size-lg {
|
|
35
|
+
--column-width: 26rem;
|
|
36
|
+
} */
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
</style>
|
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
import type { HTMLAttributes, HTMLTag } from 'astro/types'
|
|
3
3
|
import Element from 'fulldev-ui/components/Element.astro'
|
|
4
4
|
|
|
5
|
-
interface Props extends HTMLAttributes<'
|
|
5
|
+
interface Props extends HTMLAttributes<'div'> {
|
|
6
6
|
as?: HTMLTag
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
const {
|
|
9
|
+
const { ...rest } = Astro.props
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
<Element
|
|
13
|
-
class:list="
|
|
14
|
-
{as}
|
|
13
|
+
class:list="group"
|
|
15
14
|
{...rest}
|
|
16
15
|
>
|
|
17
16
|
<slot />
|
|
@@ -19,8 +18,8 @@ const { as = 'header', ...rest } = Astro.props
|
|
|
19
18
|
|
|
20
19
|
<style is:global>
|
|
21
20
|
@layer fulldev {
|
|
22
|
-
.
|
|
23
|
-
@apply
|
|
21
|
+
.group {
|
|
22
|
+
@apply flex flex-wrap justify-stretch gap-2;
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
</style>
|
|
@@ -4,7 +4,7 @@ import Element from 'fulldev-ui/components/Element.astro'
|
|
|
4
4
|
import type { GlobalProps } from 'fulldev-ui/types/global-props'
|
|
5
5
|
import { slugify } from 'fulldev-ui/utils/slugify'
|
|
6
6
|
|
|
7
|
-
interface Props extends GlobalProps, HTMLAttributes<'h2'> {
|
|
7
|
+
interface Props extends GlobalProps, HTMLAttributes<'h2'>, HTMLAttributes<'a'> {
|
|
8
8
|
as?: HTMLTag
|
|
9
9
|
text?: string | undefined
|
|
10
10
|
muted?: boolean | undefined
|
|
@@ -70,6 +70,10 @@ const {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
&.size-5xl {
|
|
73
|
+
@apply text-4xl lg:text-5xl;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
&.size-6xl {
|
|
73
77
|
@apply text-5xl lg:text-6xl;
|
|
74
78
|
}
|
|
75
79
|
}
|