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.
Files changed (162) hide show
  1. package/astro.config.ts +6 -8
  2. package/cloudcannon.config.yml +57 -86
  3. package/package.json +2 -1
  4. package/public/images/block-code.png +0 -0
  5. package/public/images/component-code.png +0 -0
  6. package/src/blocks/Banner.astro +3 -5
  7. package/src/blocks/Colleagues1.astro +4 -3
  8. package/src/blocks/Contact1.astro +42 -42
  9. package/src/blocks/Contact2.astro +98 -0
  10. package/src/blocks/Content1.astro +6 -27
  11. package/src/blocks/Content2.astro +26 -49
  12. package/src/blocks/Content3.astro +26 -54
  13. package/src/blocks/Content4.astro +34 -50
  14. package/src/blocks/Content5.astro +7 -36
  15. package/src/blocks/Content6.astro +57 -0
  16. package/src/blocks/Content7.astro +65 -0
  17. package/src/blocks/Content8.astro +48 -0
  18. package/src/blocks/Cta1.astro +9 -12
  19. package/src/blocks/Cta2.astro +52 -0
  20. package/src/blocks/Features1.astro +8 -6
  21. package/src/blocks/Features2.astro +71 -0
  22. package/src/blocks/Footer.astro +2 -6
  23. package/src/blocks/Header.astro +9 -25
  24. package/src/blocks/Hero1.astro +19 -27
  25. package/src/blocks/Intro1.astro +6 -7
  26. package/src/blocks/{Industries1.astro → JobCategories1.astro} +13 -38
  27. package/src/blocks/JobCategory1.astro +92 -0
  28. package/src/blocks/Jobs1.astro +7 -10
  29. package/src/blocks/Logos1.astro +4 -4
  30. package/src/blocks/Pages1.astro +85 -0
  31. package/src/blocks/Pricings1.astro +61 -0
  32. package/src/blocks/Products1.astro +7 -10
  33. package/src/blocks/Projects1.astro +59 -83
  34. package/src/blocks/Reviews1.astro +10 -10
  35. package/src/blocks/Subheader.astro +4 -9
  36. package/src/components/Avatar.astro +40 -0
  37. package/src/components/Avatars.astro +20 -0
  38. package/src/components/Badge.astro +6 -35
  39. package/src/components/Block.astro +20 -4
  40. package/src/components/Channel.astro +4 -0
  41. package/src/components/Chip.astro +73 -0
  42. package/src/components/Element.astro +1 -0
  43. package/src/components/Field.astro +33 -0
  44. package/src/components/Fields.astro +20 -0
  45. package/src/components/Heading.astro +12 -5
  46. package/src/components/Image.astro +1 -1
  47. package/src/components/Link.astro +1 -1
  48. package/src/components/Menu.astro +9 -5
  49. package/src/components/Proof.astro +52 -0
  50. package/src/components/Select.astro +1 -1
  51. package/src/components/Tagline.astro +6 -6
  52. package/src/components/Toc.astro +33 -31
  53. package/src/content/config.ts +5 -0
  54. package/src/content/layouts/base.yml +135 -142
  55. package/src/content/pages/{base → _base}/toggle.mdx +1 -1
  56. package/src/content/pages/_showcase/stark-vulcanising-products.md +0 -1
  57. package/src/content/pages/docs/blocks/_categories.mdx +1 -17
  58. package/src/content/pages/docs/blocks/banner.mdx +1 -1
  59. package/src/content/pages/docs/blocks/colleagues.mdx +1 -1
  60. package/src/content/pages/docs/blocks/content.mdx +162 -1
  61. package/src/content/pages/docs/blocks/cta.mdx +1 -1
  62. package/src/content/pages/docs/blocks/features.mdx +66 -1
  63. package/src/content/pages/docs/blocks/footer.mdx +1 -1
  64. package/src/content/pages/docs/blocks/header.mdx +1 -1
  65. package/src/content/pages/docs/blocks/hero.mdx +1 -1
  66. package/src/content/pages/docs/blocks/intro.mdx +1 -1
  67. package/src/content/pages/docs/blocks/logos.mdx +1 -1
  68. package/src/content/pages/docs/blocks/projects.mdx +1 -1
  69. package/src/content/pages/docs/blocks/reviews.mdx +1 -1
  70. package/src/content/pages/docs/blocks.mdx +1 -7
  71. package/src/content/pages/docs/collections/images.mdx +1 -1
  72. package/src/content/pages/docs/collections/pages.mdx +1 -1
  73. package/src/content/pages/docs/collections/presets.mdx +1 -1
  74. package/src/content/pages/docs/components/_localeswitcher.mdx +1 -1
  75. package/src/content/pages/docs/components/_table.mdx +1 -1
  76. package/src/content/pages/docs/components/_tagline.mdx +1 -1
  77. package/src/content/pages/docs/components/_themer.mdx +1 -1
  78. package/src/content/pages/docs/components/_toggle.mdx +1 -1
  79. package/src/content/pages/docs/components/avatar.mdx +32 -0
  80. package/src/content/pages/docs/components/badge.mdx +1 -34
  81. package/src/content/pages/docs/components/badges.mdx +1 -13
  82. package/src/content/pages/docs/components/button.mdx +1 -1
  83. package/src/content/pages/docs/components/buttons.mdx +1 -1
  84. package/src/content/pages/docs/components/channel.mdx +1 -1
  85. package/src/content/pages/docs/components/channels.mdx +1 -1
  86. package/src/content/pages/docs/components/checkbox.mdx +1 -1
  87. package/src/content/pages/docs/components/chip.mdx +75 -0
  88. package/src/content/pages/docs/components/heading.mdx +1 -1
  89. package/src/content/pages/docs/components/icon.mdx +1 -1
  90. package/src/content/pages/docs/components/image.mdx +2 -1
  91. package/src/content/pages/docs/components/input.mdx +1 -1
  92. package/src/content/pages/docs/components/label.mdx +1 -1
  93. package/src/content/pages/docs/components/link.mdx +1 -1
  94. package/src/content/pages/docs/components/links.mdx +11 -52
  95. package/src/content/pages/docs/components/list.mdx +1 -1
  96. package/src/content/pages/docs/components/logo.mdx +1 -1
  97. package/src/content/pages/docs/components/menu.mdx +5 -18
  98. package/src/content/pages/docs/components/paragraph.mdx +1 -1
  99. package/src/content/pages/docs/components/rating.mdx +1 -1
  100. package/src/content/pages/docs/components/select.mdx +1 -1
  101. package/src/content/pages/docs/components/social.mdx +1 -1
  102. package/src/content/pages/docs/components/socials.mdx +1 -1
  103. package/src/content/pages/docs/components/switch.mdx +1 -1
  104. package/src/content/pages/docs/components/tagline.mdx +1 -1
  105. package/src/content/pages/docs/components/textarea.mdx +1 -1
  106. package/src/content/pages/docs/components.mdx +1 -1
  107. package/src/content/pages/docs/customization.mdx +1 -1
  108. package/src/content/pages/docs/frameworks.mdx +1 -1
  109. package/src/content/pages/docs/index.mdx +1 -1
  110. package/src/content/pages/docs/installation.mdx +1 -24
  111. package/src/content/pages/docs/layouts/doc.mdx +1 -1
  112. package/src/content/pages/docs/layouts/page.mdx +1 -1
  113. package/src/content/pages/docs/pages.mdx +1 -1
  114. package/src/content/pages/docs/structures/_card.mdx +1 -1
  115. package/src/content/pages/docs/structures/_dialog.mdx +1 -1
  116. package/src/content/pages/docs/structures/_drawer.mdx +1 -1
  117. package/src/content/pages/docs/structures/card.mdx +1 -1
  118. package/src/content/pages/docs/structures/code.mdx +1 -1
  119. package/src/content/pages/docs/structures/container.mdx +1 -1
  120. package/src/content/pages/docs/structures/drawer.mdx +1 -1
  121. package/src/content/pages/docs/structures/group.mdx +1 -1
  122. package/src/content/pages/docs/structures/layout.mdx +1 -1
  123. package/src/content/pages/docs/structures/masonry.mdx +1 -1
  124. package/src/content/pages/docs/structures/matrix.mdx +1 -1
  125. package/src/content/pages/docs/structures/panel.mdx +1 -1
  126. package/src/content/pages/docs/structures/prose.mdx +1 -1
  127. package/src/content/pages/docs/structures/section.mdx +1 -1
  128. package/src/content/pages/docs/structures/stack.mdx +1 -1
  129. package/src/content/pages/docs/structures/writeup.mdx +1 -1
  130. package/src/content/pages/docs/structures.mdx +1 -1
  131. package/src/content/pages/index.mdx +20 -25
  132. package/src/css/custom.css +4 -0
  133. package/src/integration/index.ts +1 -0
  134. package/src/layouts/Page.astro +45 -10
  135. package/src/layouts/{Product.astro → _Product.astro} +6 -6
  136. package/src/pages/test.astro +16 -0
  137. package/src/schemas/block.ts +22 -41
  138. package/src/schemas/button.ts +2 -0
  139. package/src/schemas/card.ts +43 -0
  140. package/src/schemas/channel.ts +1 -0
  141. package/src/schemas/{badge.ts → chip.ts} +3 -3
  142. package/src/schemas/page.ts +4 -18
  143. package/src/schemas/proof.ts +12 -0
  144. package/src/structures/Drawer.astro +2 -3
  145. package/src/structures/Prose.astro +40 -41
  146. package/src/structures/Section.astro +1 -1
  147. package/src/structures/Sidebar.astro +3 -4
  148. package/src/structures/Split.astro +38 -0
  149. package/tailwind.config.ts +4 -1
  150. package/pnpm-lock.yaml +0 -5186
  151. package/src/blocks/_Hero.astro +0 -245
  152. package/src/components/Blocks.astro +0 -26
  153. package/src/components/Sidebar.astro +0 -43
  154. package/src/content/pages/docs/blocks/feature.mdx +0 -17
  155. package/src/content/pages/docs/layouts.mdx +0 -80
  156. package/src/layouts/Block.astro +0 -81
  157. package/src/layouts/Category.astro +0 -136
  158. package/src/layouts/Doc.astro +0 -96
  159. package/src/layouts/Job.astro +0 -60
  160. package/src/layouts/Jobs.astro +0 -72
  161. package/src/layouts/Post.astro +0 -53
  162. /package/src/content/pages/{posts → _posts}/post.md +0 -0
@@ -1,18 +1,18 @@
1
1
  ---
2
- import type { ComponentProps } from 'astro/types'
3
2
  import Heading from 'fulldev-ui/components/Heading.astro'
4
3
  import Icon from 'fulldev-ui/components/Icon.astro'
5
4
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
6
5
  import Tagline from 'fulldev-ui/components/Tagline.astro'
7
6
  import type { BlockSchema } from 'fulldev-ui/schemas/block'
8
7
  import Container from 'fulldev-ui/structures/Container.astro'
8
+ import Prose from 'fulldev-ui/structures/Prose.astro'
9
9
  import Section from 'fulldev-ui/structures/Section.astro'
10
10
  import Stack from 'fulldev-ui/structures/Stack.astro'
11
11
  import Writeup from 'fulldev-ui/structures/Writeup.astro'
12
12
 
13
- interface Props extends ComponentProps<typeof Section>, BlockSchema {}
13
+ interface Props extends BlockSchema {}
14
14
 
15
- const { tagline, heading, paragraph, cards, ...rest } = Astro.props
15
+ const { depth = 2, tagline, heading, paragraph, cards, ...rest } = Astro.props
16
16
  ---
17
17
 
18
18
  <Section
@@ -20,20 +20,21 @@ const { tagline, heading, paragraph, cards, ...rest } = Astro.props
20
20
  {...rest}
21
21
  >
22
22
  <Container>
23
- <Writeup>
23
+ <Prose>
24
24
  <Tagline
25
25
  size="sm"
26
26
  text={tagline}
27
27
  />
28
28
  <Heading
29
- size="3xl"
29
+ size="4xl"
30
30
  text={heading}
31
+ {depth}
31
32
  />
32
33
  <Paragraph
33
34
  size="lg"
34
35
  text={paragraph}
35
36
  />
36
- </Writeup>
37
+ </Prose>
37
38
  <Stack>
38
39
  {
39
40
  cards?.map(({ icon, heading, paragraph }) => (
@@ -43,6 +44,7 @@ const { tagline, heading, paragraph, cards, ...rest } = Astro.props
43
44
  name={icon}
44
45
  />
45
46
  <Heading
47
+ depth={(depth + 1) as 3}
46
48
  as="h3"
47
49
  size="xl"
48
50
  text={heading}
@@ -0,0 +1,71 @@
1
+ ---
2
+ import Heading from 'fulldev-ui/components/Heading.astro'
3
+ import Icon from 'fulldev-ui/components/Icon.astro'
4
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
5
+ import Tagline from 'fulldev-ui/components/Tagline.astro'
6
+ import type { BlockSchema } from 'fulldev-ui/schemas/block'
7
+ import Container from 'fulldev-ui/structures/Container.astro'
8
+ import Matrix from 'fulldev-ui/structures/Matrix.astro'
9
+ import Prose from 'fulldev-ui/structures/Prose.astro'
10
+ import Section from 'fulldev-ui/structures/Section.astro'
11
+ import Writeup from 'fulldev-ui/structures/Writeup.astro'
12
+
13
+ interface Props extends BlockSchema {}
14
+
15
+ const { depth = 2, tagline, heading, paragraph, cards, ...rest } = Astro.props
16
+ ---
17
+
18
+ <Section
19
+ class:list="features-2"
20
+ {...rest}
21
+ >
22
+ <Container>
23
+ <Prose>
24
+ <Tagline
25
+ size="sm"
26
+ text={tagline}
27
+ />
28
+ <Heading
29
+ size="4xl"
30
+ text={heading}
31
+ {depth}
32
+ />
33
+ <Paragraph
34
+ size="lg"
35
+ text={paragraph}
36
+ />
37
+ </Prose>
38
+ <Matrix size="sm">
39
+ {
40
+ cards?.map(({ icon, heading, paragraph }) => (
41
+ <Writeup>
42
+ <Icon
43
+ size="md"
44
+ name={icon}
45
+ />
46
+ <Heading
47
+ depth={(depth + 1) as 3}
48
+ as="h3"
49
+ text={heading}
50
+ />
51
+ <Paragraph text={paragraph} />
52
+ </Writeup>
53
+ ))
54
+ }
55
+ </Matrix>
56
+ </Container>
57
+ </Section>
58
+
59
+ <style is:global>
60
+ @layer fulldev {
61
+ .features-2 {
62
+ .container {
63
+ @apply flex flex-col gap-12;
64
+ }
65
+
66
+ .icon {
67
+ @apply text-primary;
68
+ }
69
+ }
70
+ }
71
+ </style>
@@ -1,5 +1,4 @@
1
1
  ---
2
- import type { HTMLAttributes, HTMLTag } from 'astro/types'
3
2
  import Channels from 'fulldev-ui/components/Channels.astro'
4
3
  import Element from 'fulldev-ui/components/Element.astro'
5
4
  import Logo from 'fulldev-ui/components/Logo.astro'
@@ -11,12 +10,9 @@ import Container from 'fulldev-ui/structures/Container.astro'
11
10
  import Group from 'fulldev-ui/structures/Group.astro'
12
11
  import Writeup from 'fulldev-ui/structures/Writeup.astro'
13
12
 
14
- interface Props extends HTMLAttributes<'footer'>, BlockSchema {
15
- as?: HTMLTag
16
- }
13
+ interface Props extends BlockSchema {}
17
14
 
18
15
  const {
19
- as = 'footer',
20
16
  logo,
21
17
  heading,
22
18
  paragraph,
@@ -31,7 +27,7 @@ const {
31
27
 
32
28
  <Element
33
29
  class:list="footer"
34
- {as}
30
+ as="footer"
35
31
  {...rest}
36
32
  >
37
33
  <Container class:list="footer-container">
@@ -1,7 +1,6 @@
1
1
  ---
2
- import type { HTMLAttributes } from 'astro/types'
3
2
  // import Button from 'fulldev-ui/components/Button.astro'
4
- import Buttons from 'fulldev-ui/components/Buttons.astro'
3
+ import Button from 'fulldev-ui/components/Button.astro'
5
4
  // import Cart from 'fulldev-ui/components/Cart.astro'
6
5
  import Element from 'fulldev-ui/components/Element.astro'
7
6
  import Links from 'fulldev-ui/components/Links.astro'
@@ -14,25 +13,14 @@ import type { BlockSchema } from 'fulldev-ui/schemas/block'
14
13
  import Container from 'fulldev-ui/structures/Container.astro'
15
14
  import Drawer from 'fulldev-ui/structures/Drawer.astro'
16
15
 
17
- interface Props extends HTMLAttributes<'header'>, BlockSchema {}
16
+ interface Props extends BlockSchema {}
18
17
 
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
18
+ const { logo, links, menus, socials, search, themer, button } = Astro.props
31
19
  ---
32
20
 
33
21
  <Element
34
22
  class:list="header"
35
- {...rest}
23
+ as="header"
36
24
  >
37
25
  <Container>
38
26
  <Element class:list="header-start">
@@ -53,7 +41,6 @@ const {
53
41
  />
54
42
  )
55
43
  }
56
-
57
44
  <!-- {
58
45
  cart && (
59
46
  <Cart
@@ -76,11 +63,11 @@ const {
76
63
  {socials}
77
64
  />
78
65
 
79
- <Buttons
66
+ <Button
80
67
  size="sm"
81
- {buttons}
68
+ variant="outline"
69
+ {...button}
82
70
  />
83
-
84
71
  <!-- <Button
85
72
  class:list="menu-button"
86
73
  as="label"
@@ -95,10 +82,7 @@ const {
95
82
  size="sm"
96
83
  >
97
84
  <Container>
98
- <Menus
99
- menu={{ links }}
100
- {menus}
101
- />
85
+ <Menus {menus} />
102
86
  </Container>
103
87
  </Drawer>
104
88
  </Element>
@@ -108,7 +92,7 @@ const {
108
92
  <style is:global>
109
93
  @layer fulldev {
110
94
  .header {
111
- @apply sticky left-0 top-0 z-20 flex h-14 w-full items-center overflow-hidden border-b bg-background;
95
+ @apply sticky left-0 top-0 z-20 flex h-14 w-full items-center border-b bg-background;
112
96
  height: var(--header-height);
113
97
 
114
98
  &,
@@ -1,28 +1,29 @@
1
1
  ---
2
- import type { ComponentProps } from 'astro/types'
3
- import Badge from 'fulldev-ui/components/Badge.astro'
4
2
  import Buttons from 'fulldev-ui/components/Buttons.astro'
3
+ import Chip from 'fulldev-ui/components/Chip.astro'
5
4
  import Heading from 'fulldev-ui/components/Heading.astro'
6
5
  import Image from 'fulldev-ui/components/Image.astro'
7
6
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
7
+ import Proof from 'fulldev-ui/components/Proof.astro'
8
8
  import Tagline from 'fulldev-ui/components/Tagline.astro'
9
9
  import type { BlockSchema } from 'fulldev-ui/schemas/block'
10
10
  import Container from 'fulldev-ui/structures/Container.astro'
11
11
  import Group from 'fulldev-ui/structures/Group.astro'
12
+ import Prose from 'fulldev-ui/structures/Prose.astro'
12
13
  import Section from 'fulldev-ui/structures/Section.astro'
13
- import Writeup from 'fulldev-ui/structures/Writeup.astro'
14
14
 
15
- interface Props extends ComponentProps<typeof Section>, BlockSchema {}
15
+ interface Props extends BlockSchema {}
16
16
 
17
17
  const {
18
- badge,
18
+ depth = 2,
19
+ chip,
19
20
  tagline,
20
21
  heading,
21
22
  paragraph,
22
23
  content,
23
- button,
24
24
  buttons,
25
25
  image,
26
+ proof,
26
27
  ...rest
27
28
  } = Astro.props
28
29
  ---
@@ -31,22 +32,24 @@ const {
31
32
  class:list="hero-1"
32
33
  {...rest}
33
34
  >
34
- <Container>
35
- <Writeup align="center">
36
- <Badge
35
+ <Container class="flex flex-col items-center gap-16">
36
+ <Prose align="center">
37
+ <Proof {...proof} />
38
+ <Chip
37
39
  size="lg"
38
- {...badge}
40
+ {...chip}
39
41
  />
40
42
  <Tagline
41
43
  size="sm"
42
44
  text={tagline}
43
45
  />
44
46
  <Heading
45
- as="h1"
46
47
  size="6xl"
47
48
  text={heading}
49
+ {depth}
48
50
  />
49
51
  <Paragraph
52
+ class="text-balance"
50
53
  size="xl"
51
54
  text={paragraph}
52
55
  />
@@ -54,24 +57,13 @@ const {
54
57
  <Group>
55
58
  <Buttons
56
59
  size="lg"
57
- {button}
58
60
  {buttons}
59
61
  />
60
62
  </Group>
61
- </Writeup>
62
- <Image {...image} />
63
+ </Prose>
64
+ <Image
65
+ class="mx-auto max-h-[700px] w-auto rounded-lg"
66
+ {...image}
67
+ />
63
68
  </Container>
64
69
  </Section>
65
-
66
- <style is:global>
67
- @layer fulldev {
68
- .hero-1 {
69
- .container {
70
- @apply flex flex-col items-center gap-16;
71
- }
72
- .image {
73
- @apply rounded-lg;
74
- }
75
- }
76
- }
77
- </style>
@@ -1,5 +1,4 @@
1
1
  ---
2
- import type { ComponentProps } from 'astro/types'
3
2
  import Buttons from 'fulldev-ui/components/Buttons.astro'
4
3
  import Heading from 'fulldev-ui/components/Heading.astro'
5
4
  import Image from 'fulldev-ui/components/Image.astro'
@@ -8,13 +7,13 @@ import Tagline from 'fulldev-ui/components/Tagline.astro'
8
7
  import type { BlockSchema } from 'fulldev-ui/schemas/block'
9
8
  import Container from 'fulldev-ui/structures/Container.astro'
10
9
  import Group from 'fulldev-ui/structures/Group.astro'
10
+ import Prose from 'fulldev-ui/structures/Prose.astro'
11
11
  import Section from 'fulldev-ui/structures/Section.astro'
12
- import Writeup from 'fulldev-ui/structures/Writeup.astro'
13
12
 
14
- interface Props extends ComponentProps<typeof Section>, BlockSchema {}
13
+ interface Props extends BlockSchema {}
15
14
 
16
15
  const {
17
- badge,
16
+ depth = 2,
18
17
  tagline,
19
18
  heading,
20
19
  paragraph,
@@ -31,15 +30,15 @@ const {
31
30
  {...rest}
32
31
  >
33
32
  <Container>
34
- <Writeup>
33
+ <Prose>
35
34
  <Tagline
36
35
  size="sm"
37
36
  text={tagline}
38
37
  />
39
38
  <Heading
40
- as="h1"
41
39
  size="3xl"
42
40
  text={heading}
41
+ {depth}
43
42
  />
44
43
  <Paragraph text={paragraph} />
45
44
  <Fragment set:html={content} />
@@ -50,7 +49,7 @@ const {
50
49
  {buttons}
51
50
  />
52
51
  </Group>
53
- </Writeup>
52
+ </Prose>
54
53
  <Image {...image} />
55
54
  </Container>
56
55
  </Section>
@@ -1,6 +1,4 @@
1
1
  ---
2
- import type { ComponentProps } from 'astro/types'
3
- import type { CollectionEntry } 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'
@@ -12,24 +10,22 @@ import Container from 'fulldev-ui/structures/Container.astro'
12
10
  import Matrix from 'fulldev-ui/structures/Matrix.astro'
13
11
  import Section from 'fulldev-ui/structures/Section.astro'
14
12
  import Writeup from 'fulldev-ui/structures/Writeup.astro'
15
- import { getHref } from 'fulldev-ui/utils/getHref'
16
13
 
17
- interface Props extends ComponentProps<typeof Section>, BlockSchema {
18
- pages: CollectionEntry<'pages'>[]
19
- }
14
+ interface Props extends BlockSchema {}
20
15
 
21
- const { heading, button, pages, ...rest } = Astro.props
16
+ const { depth = 2, heading, button, cards, ...rest } = Astro.props
22
17
  ---
23
18
 
24
19
  <Section
25
- class:list="industries-1"
20
+ class="job-categories-1"
26
21
  {...rest}
27
22
  >
28
- <Container>
29
- <Element class:list="industries-1-segment">
23
+ <Container class="flex flex-col gap-12">
24
+ <Element class="flex items-center justify-between gap-8">
30
25
  <Heading
31
26
  size="3xl"
32
27
  text={heading}
28
+ {depth}
33
29
  />
34
30
  <Button
35
31
  size="sm"
@@ -37,19 +33,20 @@ const { heading, button, pages, ...rest } = Astro.props
37
33
  {...button}
38
34
  />
39
35
  </Element>
40
- <Matrix size="lg">
36
+ <Matrix>
41
37
  {
42
- pages?.map(({ slug, data: { title, list, image } }) => (
38
+ cards?.map(({ href, heading, list, image }) => (
43
39
  <Card
44
- class="industries-1-card"
45
- href={getHref(slug)}
40
+ class="p-0"
41
+ {href}
46
42
  >
47
43
  <Image {...image} />
48
- <Writeup>
44
+ <Writeup class="p-4">
49
45
  <Heading
46
+ depth={(depth + 1) as 3}
50
47
  as="h2"
51
48
  size="lg"
52
- text={title}
49
+ text={heading}
53
50
  />
54
51
  <List
55
52
  size="sm"
@@ -62,25 +59,3 @@ const { heading, button, pages, ...rest } = Astro.props
62
59
  </Matrix>
63
60
  </Container>
64
61
  </Section>
65
-
66
- <style is:global>
67
- @layer fulldev {
68
- .industries-1 {
69
- .container {
70
- @apply flex flex-col gap-12;
71
- }
72
-
73
- .industries-1-segment {
74
- @apply flex items-center justify-between gap-8;
75
- }
76
-
77
- .card {
78
- @apply overflow-hidden p-0;
79
-
80
- .writeup {
81
- @apply p-4;
82
- }
83
- }
84
- }
85
- }
86
- </style>
@@ -0,0 +1,92 @@
1
+ ---
2
+ import type { CollectionEntry } from 'astro:content'
3
+ import { getCollection, getEntries } from 'astro:content'
4
+ import Heading from 'fulldev-ui/components/Heading.astro'
5
+ import Image from 'fulldev-ui/components/Image.astro'
6
+ import List from 'fulldev-ui/components/List.astro'
7
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
8
+ import Card from 'fulldev-ui/structures/Card.astro'
9
+ import Container from 'fulldev-ui/structures/Container.astro'
10
+ import Matrix from 'fulldev-ui/structures/Matrix.astro'
11
+ import Prose from 'fulldev-ui/structures/Prose.astro'
12
+ import Section from 'fulldev-ui/structures/Section.astro'
13
+ import { getHref } from 'fulldev-ui/utils/getHref'
14
+
15
+ interface Props {
16
+ slug?: CollectionEntry<'pages'>['slug']
17
+ heading?: string | undefined
18
+ paragraph?: string | undefined
19
+ pages?: CollectionEntry<'pages'>[]
20
+ }
21
+
22
+ const { slug, heading, paragraph, pages, ...rest } = Astro.props
23
+
24
+ // Jobs that reference the current category, or any of `pages` select categories
25
+ const jobs = await getCollection('pages', (page) =>
26
+ page.data.categories?.some(
27
+ (category) =>
28
+ category.slug == slug || pages?.some((p) => p.slug == category.slug)
29
+ )
30
+ )
31
+
32
+ const pageEntries = pages && (await getEntries(pages))
33
+ ---
34
+
35
+ <Section
36
+ class:list="job-category-1 flex flex-col gap-12 pt-0"
37
+ {...rest}
38
+ >
39
+ <Container class="border-b py-12">
40
+ <Prose>
41
+ <Heading
42
+ as="h1"
43
+ size="3xl"
44
+ text={heading}
45
+ />
46
+ <Paragraph text={paragraph} />
47
+ </Prose>
48
+ </Container>
49
+ <Container class="flex flex-col gap-12">
50
+ <Matrix class="gap-2">
51
+ {
52
+ pageEntries?.map(({ slug, data: { title, image } }) => (
53
+ <Card
54
+ class="grid grid-cols-3 items-center bg-transparent p-0"
55
+ href={getHref(slug)}
56
+ >
57
+ <Image
58
+ class="h-auto w-full rounded-sm object-cover"
59
+ {...image}
60
+ />
61
+ <Heading
62
+ class="col-span-2 p-4"
63
+ as="h3"
64
+ size="md"
65
+ text={title}
66
+ />
67
+ </Card>
68
+ ))
69
+ }
70
+ </Matrix>
71
+ <Matrix>
72
+ {
73
+ jobs?.map(({ slug, data: { title, list } }) => (
74
+ <Card
75
+ class="jobs-1-card flex flex-col gap-3"
76
+ href={getHref(slug)}
77
+ >
78
+ <Heading
79
+ as="h2"
80
+ size="lg"
81
+ text={title}
82
+ />
83
+ <List
84
+ size="sm"
85
+ items={list}
86
+ />
87
+ </Card>
88
+ ))
89
+ }
90
+ </Matrix>
91
+ </Container>
92
+ </Section>
@@ -1,6 +1,4 @@
1
1
  ---
2
- import type { ComponentProps } from 'astro/types'
3
- import type { CollectionEntry } 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 Card from 'fulldev-ui/structures/Card.astro'
10
8
  import Container from 'fulldev-ui/structures/Container.astro'
11
9
  import Matrix from 'fulldev-ui/structures/Matrix.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 ComponentProps<typeof Section>, BlockSchema {
16
- pages: CollectionEntry<'pages'>[]
17
- }
12
+ interface Props extends BlockSchema {}
18
13
 
19
- const { heading, button, pages, ...rest } = Astro.props
14
+ const { depth = 2, heading, button, cards, ...rest } = Astro.props
20
15
  ---
21
16
 
22
17
  <Section
@@ -28,6 +23,7 @@ const { heading, button, pages, ...rest } = Astro.props
28
23
  <Heading
29
24
  size="3xl"
30
25
  text={heading}
26
+ {depth}
31
27
  />
32
28
  <Button
33
29
  size="sm"
@@ -37,15 +33,16 @@ const { heading, button, pages, ...rest } = Astro.props
37
33
  </Element>
38
34
  <Matrix>
39
35
  {
40
- pages?.map(({ slug, data: { title, list } }) => (
36
+ cards?.map(({ href, heading, list }) => (
41
37
  <Card
42
38
  class="jobs-1-card"
43
- href={getHref(slug)}
39
+ {href}
44
40
  >
45
41
  <Heading
42
+ depth={(depth + 1) as 3}
46
43
  as="h2"
47
44
  size="lg"
48
- text={title}
45
+ text={heading}
49
46
  />
50
47
  <List
51
48
  size="sm"
@@ -1,5 +1,4 @@
1
1
  ---
2
- import type { ComponentProps } from 'astro/types'
3
2
  import Element from 'fulldev-ui/components/Element.astro'
4
3
  import Heading from 'fulldev-ui/components/Heading.astro'
5
4
  import Image from 'fulldev-ui/components/Image.astro'
@@ -9,9 +8,9 @@ import Container from 'fulldev-ui/structures/Container.astro'
9
8
  import Section from 'fulldev-ui/structures/Section.astro'
10
9
  import Writeup from 'fulldev-ui/structures/Writeup.astro'
11
10
 
12
- interface Props extends ComponentProps<typeof Section>, BlockSchema {}
11
+ interface Props extends BlockSchema {}
13
12
 
14
- const { tagline, heading, paragraph, images, ...rest } = Astro.props
13
+ const { depth = 2, tagline, heading, paragraph, images, ...rest } = Astro.props
15
14
  ---
16
15
 
17
16
  <Section
@@ -23,6 +22,7 @@ const { tagline, heading, paragraph, images, ...rest } = Astro.props
23
22
  <Heading
24
23
  size="xl"
25
24
  text={heading}
25
+ {depth}
26
26
  />
27
27
  <Paragraph
28
28
  size="sm"
@@ -44,7 +44,7 @@ const { tagline, heading, paragraph, images, ...rest } = Astro.props
44
44
  }
45
45
 
46
46
  .logos-1-cards {
47
- @apply flex flex-wrap justify-center gap-12;
47
+ @apply flex flex-wrap justify-center gap-8;
48
48
  }
49
49
 
50
50
  .image {