fulldev-ui 0.6.0-beta.3 → 0.6.0-beta.7

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.
Files changed (153) hide show
  1. package/astro.config.ts +1 -7
  2. package/cloudcannon.config.yml +270 -0
  3. package/package.json +1 -1
  4. package/src/blocks/Banner.astro +33 -0
  5. package/src/blocks/Colleagues1.astro +73 -0
  6. package/src/blocks/Contact1.astro +12 -4
  7. package/src/blocks/Content1.astro +79 -0
  8. package/src/blocks/Content2.astro +94 -0
  9. package/src/blocks/Content3.astro +70 -0
  10. package/src/blocks/Content4.astro +75 -0
  11. package/src/blocks/Cta1.astro +35 -34
  12. package/src/blocks/Feature1.astro +20 -26
  13. package/src/blocks/Features1.astro +66 -0
  14. package/src/blocks/Footer.astro +27 -52
  15. package/src/blocks/Header.astro +154 -0
  16. package/src/blocks/Hero1.astro +41 -41
  17. package/src/blocks/Intro1.astro +32 -18
  18. package/src/blocks/Jobs1.astro +73 -0
  19. package/src/blocks/Logos1.astro +55 -0
  20. package/src/blocks/Products1.astro +4 -4
  21. package/src/blocks/Reviews1.astro +79 -0
  22. package/src/components/Badges.astro +12 -35
  23. package/src/components/Block.astro +5 -24
  24. package/src/components/Button.astro +1 -2
  25. package/src/components/Buttons.astro +12 -43
  26. package/src/components/Cart.astro +6 -12
  27. package/src/components/Drawer.astro +1 -2
  28. package/src/components/Form.astro +3 -3
  29. package/src/components/Grid.astro +39 -0
  30. package/src/components/{Banner.astro → Group.astro} +5 -6
  31. package/src/components/Heading.astro +5 -1
  32. package/src/components/Icon.astro +0 -1
  33. package/src/components/Image.astro +15 -50
  34. package/src/components/Layout.astro +35 -0
  35. package/src/components/Links.astro +14 -35
  36. package/src/components/Logo.astro +5 -7
  37. package/src/components/Masonry.astro +42 -0
  38. package/src/components/Menu.astro +17 -38
  39. package/src/components/Menus.astro +20 -0
  40. package/src/components/Panel.astro +1 -1
  41. package/src/components/Paragraph.astro +8 -8
  42. package/src/components/Prose.astro +15 -7
  43. package/src/components/Search.astro +1 -1
  44. package/src/components/Section.astro +1 -1
  45. package/src/components/Sidebar.astro +11 -42
  46. package/src/components/Stack.astro +25 -0
  47. package/src/components/Tagline.astro +1 -1
  48. package/src/components/Toc.astro +22 -30
  49. package/src/components/Writeup.astro +59 -0
  50. package/src/components/_Image.astro +79 -0
  51. package/src/content/config.ts +2 -28
  52. package/src/content/layouts/base.yml +4 -3
  53. package/src/content/{docs → pages/docs}/_internationalization.mdx +1 -0
  54. package/src/content/{docs → pages/docs}/_using-blocks.mdx +1 -0
  55. package/src/content/{docs → pages/docs}/_using-presets.mdx +1 -0
  56. package/src/content/{docs → pages/docs}/blocks.mdx +1 -0
  57. package/src/content/{docs → pages/docs}/collections/images.mdx +1 -0
  58. package/src/content/{docs → pages/docs}/collections/pages.mdx +1 -0
  59. package/src/content/{docs → pages/docs}/collections/presets.mdx +1 -0
  60. package/src/content/{docs → pages/docs}/collections.mdx +1 -0
  61. package/src/content/{docs → pages/docs}/components/_card.mdx +1 -0
  62. package/src/content/{docs → pages/docs}/components/_dialog.mdx +1 -0
  63. package/src/content/{docs → pages/docs}/components/_drawer.mdx +1 -0
  64. package/src/content/{docs → pages/docs}/components/_localeswitcher.mdx +1 -0
  65. package/src/content/{docs → pages/docs}/components/_switch.mdx +1 -0
  66. package/src/content/{docs → pages/docs}/components/_tagline.mdx +1 -0
  67. package/src/content/{docs → pages/docs}/components/_toggle.mdx +1 -0
  68. package/src/content/{docs → pages/docs}/components/avatar.mdx +1 -0
  69. package/src/content/{docs → pages/docs}/components/badge.mdx +1 -0
  70. package/src/content/{docs → pages/docs}/components/badges.mdx +1 -0
  71. package/src/content/{docs → pages/docs}/components/button.mdx +1 -0
  72. package/src/content/{docs → pages/docs}/components/buttons.mdx +1 -0
  73. package/src/content/{docs → pages/docs}/components/channel.mdx +1 -0
  74. package/src/content/{docs → pages/docs}/components/channels.mdx +1 -0
  75. package/src/content/{docs → pages/docs}/components/checkbox.mdx +1 -0
  76. package/src/content/{docs → pages/docs}/components/code.mdx +1 -0
  77. package/src/content/{docs → pages/docs}/components/heading.mdx +1 -0
  78. package/src/content/{docs → pages/docs}/components/icon.mdx +1 -0
  79. package/src/content/{docs → pages/docs}/components/image.mdx +1 -0
  80. package/src/content/{docs → pages/docs}/components/input.mdx +1 -0
  81. package/src/content/{docs → pages/docs}/components/label.mdx +1 -0
  82. package/src/content/{docs → pages/docs}/components/link.mdx +1 -0
  83. package/src/content/{docs → pages/docs}/components/links.mdx +1 -0
  84. package/src/content/{docs → pages/docs}/components/list.mdx +1 -0
  85. package/src/content/{docs → pages/docs}/components/logo.mdx +1 -0
  86. package/src/content/{docs → pages/docs}/components/menu.mdx +1 -0
  87. package/src/content/{docs → pages/docs}/components/prose.mdx +1 -0
  88. package/src/content/{docs → pages/docs}/components/rating.mdx +1 -0
  89. package/src/content/{docs → pages/docs}/components/section.mdx +1 -0
  90. package/src/content/{docs → pages/docs}/components/select.mdx +1 -0
  91. package/src/content/{docs → pages/docs}/components/social.mdx +1 -0
  92. package/src/content/{docs → pages/docs}/components/socials.mdx +1 -0
  93. package/src/content/{docs → pages/docs}/components/switch.mdx +1 -0
  94. package/src/content/{docs → pages/docs}/components/table.mdx +1 -0
  95. package/src/content/{docs → pages/docs}/components/tagline.mdx +1 -0
  96. package/src/content/{docs → pages/docs}/components/text.mdx +1 -0
  97. package/src/content/{docs → pages/docs}/components/textarea.mdx +1 -0
  98. package/src/content/{docs → pages/docs}/components/themer.mdx +1 -0
  99. package/src/content/{docs → pages/docs}/components.mdx +1 -0
  100. package/src/content/{docs → pages/docs}/customization.mdx +1 -0
  101. package/src/content/{docs → pages/docs}/frameworks.mdx +1 -0
  102. package/src/content/{docs → pages/docs}/generating-pages.mdx +1 -0
  103. package/src/content/{docs → pages/docs}/index.mdx +1 -0
  104. package/src/content/{docs → pages/docs}/installation.mdx +1 -0
  105. package/src/content/{docs → pages/docs}/layouts.mdx +1 -0
  106. package/src/content/pages/index.mdx +3 -3
  107. package/src/content/{products → pages/products}/product.md +2 -2
  108. package/src/integration/index.ts +36 -16
  109. package/src/layouts/{CategoryLayout.astro → Category.astro} +19 -20
  110. package/src/layouts/Doc.astro +70 -0
  111. package/src/layouts/Job.astro +60 -0
  112. package/src/layouts/Jobs.astro +72 -0
  113. package/src/layouts/Page.astro +29 -0
  114. package/src/layouts/Post.astro +52 -0
  115. package/src/layouts/{ProductLayout.astro → Product.astro} +20 -11
  116. package/src/pages/[...page].astro +36 -4
  117. package/src/pages/test.astro +25 -1
  118. package/src/schemas/components/block.ts +58 -15
  119. package/src/schemas/components/button.ts +1 -0
  120. package/src/schemas/components/image.ts +32 -18
  121. package/src/schemas/components/menu.ts +1 -0
  122. package/src/schemas/imageSchema.ts +3 -3
  123. package/src/schemas/page.ts +40 -0
  124. package/src/stores/cart.svelte.ts +0 -1
  125. package/src/utils/getHref.ts +4 -21
  126. package/tailwind.config.ts +4 -0
  127. package/src/blocks/Banner1.astro +0 -35
  128. package/src/blocks/Header1.astro +0 -192
  129. package/src/content/layouts/docs.yml +0 -2
  130. package/src/layouts/DocLayout.astro +0 -59
  131. package/src/layouts/Layout.astro +0 -107
  132. package/src/layouts/PageLayout.astro +0 -27
  133. package/src/layouts/PostLayout.astro +0 -22
  134. package/src/pages/[...category].astro +0 -17
  135. package/src/pages/[...doc].astro +0 -17
  136. package/src/pages/[...post].astro +0 -17
  137. package/src/pages/[...product].astro +0 -17
  138. package/src/schemas/blocks/banner.ts +0 -10
  139. package/src/schemas/blocks/categories.ts +0 -14
  140. package/src/schemas/blocks/contact.ts +0 -18
  141. package/src/schemas/blocks/cta.ts +0 -18
  142. package/src/schemas/blocks/feature.ts +0 -18
  143. package/src/schemas/blocks/hero.ts +0 -20
  144. package/src/schemas/blocks/intro.ts +0 -16
  145. package/src/schemas/blocks/products.ts +0 -14
  146. package/src/schemas/categorySchema.ts +0 -16
  147. package/src/schemas/docSchema.ts +0 -14
  148. package/src/schemas/layoutSchema.ts +0 -22
  149. package/src/schemas/pageSchema.ts +0 -17
  150. package/src/schemas/postSchema.ts +0 -14
  151. package/src/schemas/productSchema.ts +0 -22
  152. /package/src/content/{categories → pages/categories}/category.md +0 -0
  153. /package/src/content/{posts → pages/posts}/post.md +0 -0
@@ -0,0 +1,75 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Button from 'fulldev-ui/components/Button.astro'
4
+ import Container from 'fulldev-ui/components/Container.astro'
5
+ import Group from 'fulldev-ui/components/Group.astro'
6
+ import Heading from 'fulldev-ui/components/Heading.astro'
7
+ import List from 'fulldev-ui/components/List.astro'
8
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
9
+ import Prose from 'fulldev-ui/components/Prose.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
+
15
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
16
+
17
+ const {
18
+ tagline,
19
+ heading,
20
+ paragraph,
21
+ list,
22
+ content,
23
+ button,
24
+ buttons,
25
+ image,
26
+ ...rest
27
+ } = Astro.props
28
+ ---
29
+
30
+ <Section
31
+ class:list="content-4"
32
+ {...rest}
33
+ >
34
+ <Container>
35
+ <Writeup>
36
+ <Tagline
37
+ size="sm"
38
+ text={tagline}
39
+ />
40
+ <Heading
41
+ as="h1"
42
+ size="4xl"
43
+ text={heading}
44
+ />
45
+ <Paragraph
46
+ size="lg"
47
+ muted
48
+ text={paragraph}
49
+ />
50
+ <List items={list} />
51
+ </Writeup>
52
+ <Prose>
53
+ <Fragment set:html={content} />
54
+ <slot />
55
+ </Prose>
56
+ <Group>
57
+ <Button {...button} />
58
+ {buttons?.map((button) => <Button {...button} />)}
59
+ </Group>
60
+ </Container>
61
+ </Section>
62
+
63
+ <style is:global>
64
+ @layer fulldev {
65
+ .content-4 {
66
+ .container {
67
+ @apply flex flex-col items-start gap-8;
68
+ }
69
+
70
+ .prose {
71
+ @apply max-w-none break-inside-avoid gap-x-gutter lg:columns-2;
72
+ }
73
+ }
74
+ }
75
+ </style>
@@ -1,19 +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 Element from 'fulldev-ui/components/Element.astro'
5
+ import Group from 'fulldev-ui/components/Group.astro'
5
6
  import Heading from 'fulldev-ui/components/Heading.astro'
6
7
  import Image from 'fulldev-ui/components/Image.astro'
7
8
  import Panel from 'fulldev-ui/components/Panel.astro'
8
9
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
9
10
  import Section from 'fulldev-ui/components/Section.astro'
10
11
  import Tagline from 'fulldev-ui/components/Tagline.astro'
11
- import type { CtaSchema } from 'fulldev-ui/schemas/blocks/cta.ts'
12
- import type { ComponentProps } from 'svelte'
12
+ import Writeup from 'fulldev-ui/components/Writeup.astro'
13
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
13
14
 
14
- interface Props extends ComponentProps<typeof Section>, CtaSchema {}
15
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
15
16
 
16
- const { tagline, heading, paragraph, buttons, image, ...rest } = Astro.props
17
+ const {
18
+ tagline,
19
+ heading,
20
+ paragraph,
21
+ content,
22
+ button,
23
+ buttons,
24
+ image,
25
+ ...rest
26
+ } = Astro.props
17
27
  ---
18
28
 
19
29
  <Section
@@ -22,24 +32,27 @@ const { tagline, heading, paragraph, buttons, image, ...rest } = Astro.props
22
32
  >
23
33
  <Container>
24
34
  <Panel>
25
- <Element class="cta-1-segment">
26
- <Element class="cta-1-content">
27
- <Tagline text={tagline} />
28
- <Heading
29
- size="4xl"
30
- as="h2"
31
- text={heading}
32
- />
33
- <Paragraph
34
- size="lg"
35
- text={paragraph}
36
- />
37
- </Element>
38
- <Buttons
39
- {buttons}
35
+ <Writeup align="center">
36
+ <Tagline text={tagline} />
37
+ <Heading
38
+ size="4xl"
39
+ as="h2"
40
+ text={heading}
41
+ />
42
+ <Paragraph
40
43
  size="lg"
44
+ text={paragraph}
41
45
  />
42
- </Element>
46
+ <Fragment set:html={content} />
47
+ <Group>
48
+ <Buttons
49
+ variant="primary"
50
+ size="lg"
51
+ {button}
52
+ {buttons}
53
+ />
54
+ </Group>
55
+ </Writeup>
43
56
  <Image {...image} />
44
57
  </Panel>
45
58
  </Container>
@@ -48,20 +61,8 @@ const { tagline, heading, paragraph, buttons, image, ...rest } = Astro.props
48
61
  <style is:global>
49
62
  @layer fulldev {
50
63
  .cta-1 {
51
- .panel {
52
- @apply flex flex-col items-center gap-16;
53
- }
54
-
55
- .cta-1-segment {
56
- @apply z-10 flex flex-col items-center gap-8 text-center;
57
- }
58
-
59
- .cta-1-content {
60
- @apply flex max-w-screen-md flex-col items-center gap-4 text-center;
61
- }
62
-
63
64
  .text {
64
- @apply text-balance;
65
+ @apply text-pretty;
65
66
  }
66
67
 
67
68
  .image {
@@ -1,16 +1,16 @@
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 Element from 'fulldev-ui/components/Element.astro'
5
5
  import Heading from 'fulldev-ui/components/Heading.astro'
6
6
  import Image from 'fulldev-ui/components/Image.astro'
7
7
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
8
8
  import Section from 'fulldev-ui/components/Section.astro'
9
9
  import Tagline from 'fulldev-ui/components/Tagline.astro'
10
- import type { FeatureSchema } from 'fulldev-ui/schemas/blocks/feature'
11
- import type { ComponentProps } from 'svelte'
10
+ import Writeup from 'fulldev-ui/components/Writeup.astro'
11
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
12
12
 
13
- interface Props extends ComponentProps<typeof Section>, FeatureSchema {}
13
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
14
14
 
15
15
  const { tagline, heading, paragraph, buttons, image, ...rest } = Astro.props
16
16
  ---
@@ -20,26 +20,24 @@ const { tagline, heading, paragraph, buttons, image, ...rest } = Astro.props
20
20
  {...rest}
21
21
  >
22
22
  <Container>
23
- <Element class="feature-1-segment">
24
- <Element class="feature-1-content">
25
- <Tagline
26
- size="sm"
27
- text={tagline}
28
- />
29
- <Heading
30
- size="3xl"
31
- text={heading}
32
- />
33
- <Paragraph
34
- size="lg"
35
- text={paragraph}
36
- />
37
- </Element>
23
+ <Writeup>
24
+ <Tagline
25
+ size="sm"
26
+ text={tagline}
27
+ />
28
+ <Heading
29
+ size="3xl"
30
+ text={heading}
31
+ />
32
+ <Paragraph
33
+ size="lg"
34
+ text={paragraph}
35
+ />
38
36
  <Buttons
39
37
  variant="secondary"
40
38
  {buttons}
41
39
  />
42
- </Element>
40
+ </Writeup>
43
41
  <Image {...image} />
44
42
  </Container>
45
43
  </Section>
@@ -51,12 +49,8 @@ const { tagline, heading, paragraph, buttons, image, ...rest } = Astro.props
51
49
  @apply gap-x-gutter gap-y-12 lg:grid lg:grid-cols-2 lg:items-center;
52
50
  }
53
51
 
54
- .feature-1-segment {
55
- @apply flex flex-col items-start gap-6 lg:max-w-xl;
56
- }
57
-
58
- .feature-1-content {
59
- @apply flex max-w-screen-md flex-col items-start gap-3;
52
+ .writeup {
53
+ @apply lg:max-w-xl;
60
54
  }
61
55
 
62
56
  .image {
@@ -0,0 +1,66 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Container from 'fulldev-ui/components/Container.astro'
4
+ import Heading from 'fulldev-ui/components/Heading.astro'
5
+ import Icon from 'fulldev-ui/components/Icon.astro'
6
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
7
+ import Section from 'fulldev-ui/components/Section.astro'
8
+ import Stack from 'fulldev-ui/components/Stack.astro'
9
+ import Tagline from 'fulldev-ui/components/Tagline.astro'
10
+ import Writeup from 'fulldev-ui/components/Writeup.astro'
11
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
12
+
13
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
14
+
15
+ const { tagline, heading, paragraph, cards, ...rest } = Astro.props
16
+ ---
17
+
18
+ <Section
19
+ class:list="features-1"
20
+ {...rest}
21
+ >
22
+ <Container>
23
+ <Writeup>
24
+ <Tagline
25
+ size="sm"
26
+ text={tagline}
27
+ />
28
+ <Heading
29
+ size="3xl"
30
+ text={heading}
31
+ />
32
+ <Paragraph
33
+ size="lg"
34
+ text={paragraph}
35
+ />
36
+ </Writeup>
37
+ <Stack>
38
+ {
39
+ cards?.map(({ icon, heading, paragraph }) => (
40
+ <Writeup>
41
+ <Icon
42
+ size="lg"
43
+ name={icon}
44
+ />
45
+ <Heading
46
+ as="h3"
47
+ size="xl"
48
+ text={heading}
49
+ />
50
+ <Paragraph text={paragraph} />
51
+ </Writeup>
52
+ ))
53
+ }
54
+ </Stack>
55
+ </Container>
56
+ </Section>
57
+
58
+ <style is:global>
59
+ @layer fulldev {
60
+ .features-1 {
61
+ .icon {
62
+ @apply text-primary;
63
+ }
64
+ }
65
+ }
66
+ </style>
@@ -1,15 +1,17 @@
1
1
  ---
2
2
  import type { HTMLAttributes, HTMLTag } from 'astro/types'
3
- import Channel from 'fulldev-ui/components/Channel.astro'
3
+ import Channels from 'fulldev-ui/components/Channels.astro'
4
+ import Container from 'fulldev-ui/components/Container.astro'
4
5
  import Element from 'fulldev-ui/components/Element.astro'
5
- import Heading from 'fulldev-ui/components/Heading.astro'
6
+ import Group from 'fulldev-ui/components/Group.astro'
6
7
  import Logo from 'fulldev-ui/components/Logo.astro'
7
- import Menu from 'fulldev-ui/components/Menu.astro'
8
+ import Menus from 'fulldev-ui/components/Menus.astro'
8
9
  import { default as Paragraph } from 'fulldev-ui/components/Paragraph.astro'
9
- import Social from 'fulldev-ui/components/Social.astro'
10
- import type { FooterSchema } from 'fulldev-ui/schemas/components/footer'
10
+ import Socials from 'fulldev-ui/components/Socials.astro'
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 HTMLAttributes<'footer'>, FooterSchema {
14
+ interface Props extends HTMLAttributes<'footer'>, BlockSchema {
13
15
  as?: HTMLTag
14
16
  }
15
17
 
@@ -32,8 +34,8 @@ const {
32
34
  {as}
33
35
  {...rest}
34
36
  >
35
- <Element class:list="footer-container">
36
- <Element class:list="footer-content">
37
+ <Container class:list="footer-container">
38
+ <Writeup>
37
39
  <Logo
38
40
  size="sm"
39
41
  {...logo}
@@ -42,45 +44,21 @@ const {
42
44
  size="sm"
43
45
  text={paragraph}
44
46
  />
45
- <Element class:list="footer-socials">
46
- {
47
- socials?.map((social) => (
48
- <Social
49
- variant="secondary"
50
- size="sm"
51
- href={social}
52
- />
53
- ))
54
- }
55
- </Element>
56
- </Element>
47
+ <Group>
48
+ <Socials
49
+ variant="secondary"
50
+ size="sm"
51
+ />
52
+ </Group>
53
+ </Writeup>
57
54
  <Element class:list="footer-channels">
58
- {channels?.map((channel) => <Channel {...channel} />)}
55
+ <Channels {channels} />
59
56
  </Element>
60
- </Element>
61
- <!-- <Fragment set:html={html} /> -->
62
- <!-- <Hours {hours} /> -->
63
- <!-- <Menu
64
- direction="row"
65
- groups={menu}
66
- {size}
67
- /> -->
68
- <!-- <Element class:list="hours column">
69
- <Heading
70
- text={hours?.heading}
71
- as="h5"
57
+ <Menus
58
+ size="sm"
59
+ {menus}
72
60
  />
73
- <Element>
74
- {
75
- Object.entries(hours?.days ?? {})?.map(([key, value]: any) => (
76
- <Element class:list="spread">
77
- <Paragraph text={key} />
78
- <Paragraph text={value} />
79
- </Element>
80
- ))
81
- }
82
- </Element>
83
- </Element> -->
61
+ </Container>
84
62
  </Element>
85
63
 
86
64
  <style is:global>
@@ -88,16 +66,13 @@ const {
88
66
  .footer {
89
67
  @apply relative mt-auto w-full border-t bg-background;
90
68
 
91
- &.dark {
92
- @apply bg-background;
93
- }
94
-
95
- .footer-container {
96
- @apply container flex flex-wrap justify-between gap-12 py-12;
69
+ .container {
70
+ @apply grid grid-cols-[repeat(auto-fit,minmax(14rem,1fr))] gap-12 py-12;
97
71
  }
98
72
 
99
- .footer-content {
100
- @apply flex max-w-60 flex-col gap-4;
73
+ .writeup,
74
+ .footer-channels {
75
+ @apply max-w-xs;
101
76
  }
102
77
  }
103
78
  }
@@ -0,0 +1,154 @@
1
+ ---
2
+ import type { HTMLAttributes } from 'astro/types'
3
+ import Button from 'fulldev-ui/components/Button.astro'
4
+ import Buttons from 'fulldev-ui/components/Buttons.astro'
5
+ // import Cart from 'fulldev-ui/components/Cart.astro'
6
+ import Container from 'fulldev-ui/components/Container.astro'
7
+ import Drawer from 'fulldev-ui/components/Drawer.astro'
8
+ import Element from 'fulldev-ui/components/Element.astro'
9
+ import Links from 'fulldev-ui/components/Links.astro'
10
+ import Logo from 'fulldev-ui/components/Logo.astro'
11
+ import Menus from 'fulldev-ui/components/Menus.astro'
12
+ import Search from 'fulldev-ui/components/Search.astro'
13
+ import Socials from 'fulldev-ui/components/Socials.astro'
14
+ import Themer from 'fulldev-ui/components/Themer.astro'
15
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
16
+
17
+ interface Props extends HTMLAttributes<'header'>, BlockSchema {}
18
+
19
+ const {
20
+ logo,
21
+ heading,
22
+ links,
23
+ socials,
24
+ menus,
25
+ search,
26
+ themer,
27
+ buttons,
28
+ cart,
29
+ ...rest
30
+ } = Astro.props
31
+ ---
32
+
33
+ <Element
34
+ class:list="header"
35
+ {...rest}
36
+ >
37
+ <Container>
38
+ <Element class:list="header-start">
39
+ <Logo {...logo} />
40
+ <Links
41
+ size="sm"
42
+ variant="muted"
43
+ {links}
44
+ />
45
+ </Element>
46
+ <Element class:list="header-end">
47
+ {
48
+ search && (
49
+ <Search
50
+ if={search}
51
+ variant="ghost"
52
+ size="sm"
53
+ />
54
+ )
55
+ }
56
+ <Buttons
57
+ size="sm"
58
+ {buttons}
59
+ />
60
+
61
+ <!-- {
62
+ cart && (
63
+ <Cart
64
+ variant="ghost"
65
+ size="sm"
66
+ />
67
+ )
68
+ } -->
69
+ <Themer
70
+ if={themer}
71
+ variant="ghost"
72
+ size="sm"
73
+ />
74
+ <Socials
75
+ size="sm"
76
+ variant="ghost"
77
+ {socials}
78
+ />
79
+
80
+ <!-- <Button
81
+ class:list="menu-button"
82
+ as="label"
83
+ for="sidebar-toggle"
84
+ icon="menu-2"
85
+ variant="ghost"
86
+ size="sm"
87
+ /> -->
88
+ <Drawer
89
+ id="header-drawer"
90
+ icon="menu-2"
91
+ size="sm"
92
+ >
93
+ <Container>
94
+ <Menus
95
+ menu={{ links }}
96
+ {menus}
97
+ />
98
+ </Container>
99
+ </Drawer>
100
+ </Element>
101
+ </Container>
102
+ </Element>
103
+
104
+ <style is:global>
105
+ @layer fulldev {
106
+ .header {
107
+ @apply sticky left-0 top-0 z-20 flex h-14 w-full items-center overflow-hidden border-b bg-background;
108
+ height: var(--header-height);
109
+
110
+ &,
111
+ & ~ * {
112
+ --header-height: 3.5rem;
113
+ }
114
+
115
+ .container {
116
+ @apply flex items-center gap-6;
117
+ }
118
+
119
+ .header-start {
120
+ @apply flex items-center gap-6;
121
+
122
+ .link {
123
+ @apply max-lg:hidden;
124
+ }
125
+ }
126
+
127
+ .header-home {
128
+ @apply flex items-center gap-2;
129
+ }
130
+
131
+ .header-end {
132
+ @apply ml-auto flex items-center gap-1;
133
+
134
+ .social,
135
+ .themer {
136
+ @apply max-lg:hidden;
137
+ }
138
+
139
+ .menu-button {
140
+ @apply lg:hidden;
141
+ }
142
+ }
143
+
144
+ .drawer {
145
+ @apply lg:hidden;
146
+
147
+ .container {
148
+ @apply flex w-full flex-col items-start gap-6 overflow-y-auto px-gutter pb-14 pt-8;
149
+ @apply scrollbar scrollbar-track-transparent scrollbar-thumb-accent scrollbar-thumb-rounded-full scrollbar-w-2 hover:scrollbar-thumb-accent-hover;
150
+ }
151
+ }
152
+ }
153
+ }
154
+ </style>
@@ -1,20 +1,30 @@
1
1
  ---
2
+ import type { ComponentProps } from 'astro/types'
2
3
  import Badge from 'fulldev-ui/components/Badge.astro'
3
4
  import Buttons from 'fulldev-ui/components/Buttons.astro'
4
5
  import Container from 'fulldev-ui/components/Container.astro'
5
- import Element from 'fulldev-ui/components/Element.astro'
6
+ import Group from 'fulldev-ui/components/Group.astro'
6
7
  import Heading from 'fulldev-ui/components/Heading.astro'
7
8
  import Image from 'fulldev-ui/components/Image.astro'
8
9
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
9
10
  import Section from 'fulldev-ui/components/Section.astro'
10
11
  import Tagline from 'fulldev-ui/components/Tagline.astro'
11
- import type { HeroSchema } from 'fulldev-ui/schemas/blocks/hero.ts'
12
- import type { ComponentProps } from 'svelte'
12
+ import Writeup from 'fulldev-ui/components/Writeup.astro'
13
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
13
14
 
14
- interface Props extends ComponentProps<typeof Section>, HeroSchema {}
15
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
15
16
 
16
- const { badge, tagline, heading, paragraph, buttons, image, ...rest } =
17
- Astro.props
17
+ const {
18
+ badge,
19
+ tagline,
20
+ heading,
21
+ paragraph,
22
+ content,
23
+ button,
24
+ buttons,
25
+ image,
26
+ ...rest
27
+ } = Astro.props
18
28
  ---
19
29
 
20
30
  <Section
@@ -22,31 +32,33 @@ const { badge, tagline, heading, paragraph, buttons, image, ...rest } =
22
32
  {...rest}
23
33
  >
24
34
  <Container>
25
- <Element class="hero-1-segment">
26
- <Element class="hero-1-content">
27
- <Badge
28
- size="lg"
29
- {...badge}
30
- />
31
- <Tagline
32
- size="sm"
33
- text={tagline}
34
- />
35
- <Heading
36
- as="h1"
37
- size="5xl"
38
- text={heading}
39
- />
40
- <Paragraph
41
- size="xl"
42
- text={paragraph}
43
- />
44
- </Element>
45
- <Buttons
46
- {buttons}
35
+ <Writeup align="center">
36
+ <Badge
47
37
  size="lg"
38
+ {...badge}
39
+ />
40
+ <Tagline
41
+ size="sm"
42
+ text={tagline}
43
+ />
44
+ <Heading
45
+ as="h1"
46
+ size="6xl"
47
+ text={heading}
48
+ />
49
+ <Paragraph
50
+ size="xl"
51
+ text={paragraph}
48
52
  />
49
- </Element>
53
+ <Fragment set:html={content} />
54
+ <Group>
55
+ <Buttons
56
+ size="lg"
57
+ {button}
58
+ {buttons}
59
+ />
60
+ </Group>
61
+ </Writeup>
50
62
  <Image {...image} />
51
63
  </Container>
52
64
  </Section>
@@ -54,18 +66,6 @@ const { badge, tagline, heading, paragraph, buttons, image, ...rest } =
54
66
  <style is:global>
55
67
  @layer fulldev {
56
68
  .hero-1 {
57
- .hero-1-segment {
58
- @apply flex flex-col items-center gap-8 text-center;
59
- }
60
-
61
- .hero-1-content {
62
- @apply flex max-w-screen-md flex-col items-center gap-4 text-center;
63
- }
64
-
65
- .paragraph {
66
- @apply text-balance;
67
- }
68
-
69
69
  .image {
70
70
  @apply rounded-lg;
71
71
  }