fulldev-ui 0.6.0-beta.9 → 0.6.0

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 +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/Content1.astro +6 -28
  9. package/src/blocks/Content2.astro +25 -49
  10. package/src/blocks/Content3.astro +25 -54
  11. package/src/blocks/Content4.astro +27 -50
  12. package/src/blocks/Content5.astro +7 -37
  13. package/src/blocks/Content6.astro +56 -0
  14. package/src/blocks/Content7.astro +64 -0
  15. package/src/blocks/Content8.astro +47 -0
  16. package/src/blocks/Cta1.astro +6 -9
  17. package/src/blocks/Cta2.astro +52 -0
  18. package/src/blocks/Features1.astro +5 -4
  19. package/src/blocks/Features2.astro +70 -0
  20. package/src/blocks/Footer.astro +2 -6
  21. package/src/blocks/Header.astro +8 -25
  22. package/src/blocks/Hero1.astro +19 -27
  23. package/src/blocks/Intro1.astro +3 -4
  24. package/src/blocks/{Industries1.astro → JobCategories1.astro} +13 -38
  25. package/src/blocks/JobCategory1.astro +90 -0
  26. package/src/blocks/Jobs1.astro +7 -10
  27. package/src/blocks/Logos1.astro +4 -4
  28. package/src/blocks/Pages1.astro +85 -0
  29. package/src/blocks/Pricings1.astro +61 -0
  30. package/src/blocks/Products1.astro +7 -10
  31. package/src/blocks/Projects1.astro +59 -83
  32. package/src/blocks/Reviews1.astro +10 -10
  33. package/src/blocks/Subheader.astro +4 -9
  34. package/src/blocks/{Contact1.astro → _Contact1.astro} +1 -3
  35. package/src/components/Avatar.astro +40 -0
  36. package/src/components/Avatars.astro +20 -0
  37. package/src/components/Badge.astro +6 -35
  38. package/src/components/Block.astro +19 -4
  39. package/src/components/Chip.astro +73 -0
  40. package/src/components/Element.astro +1 -0
  41. package/src/components/Heading.astro +13 -5
  42. package/src/components/Image.astro +1 -1
  43. package/src/components/Link.astro +1 -1
  44. package/src/components/Menu.astro +9 -5
  45. package/src/components/Proof.astro +52 -0
  46. package/src/components/Toc.astro +33 -35
  47. package/src/content/config.ts +5 -0
  48. package/src/content/layouts/base.yml +133 -143
  49. package/src/content/pages/{base → _base}/toggle.mdx +1 -1
  50. package/src/content/pages/_showcase/stark-vulcanising-products.md +0 -1
  51. package/src/content/pages/docs/blocks/_categories.mdx +1 -17
  52. package/src/content/pages/docs/blocks/banner.mdx +1 -1
  53. package/src/content/pages/docs/blocks/colleagues.mdx +1 -1
  54. package/src/content/pages/docs/blocks/content.mdx +162 -1
  55. package/src/content/pages/docs/blocks/cta.mdx +1 -1
  56. package/src/content/pages/docs/blocks/features.mdx +66 -1
  57. package/src/content/pages/docs/blocks/footer.mdx +1 -1
  58. package/src/content/pages/docs/blocks/header.mdx +1 -1
  59. package/src/content/pages/docs/blocks/hero.mdx +1 -1
  60. package/src/content/pages/docs/blocks/intro.mdx +1 -1
  61. package/src/content/pages/docs/blocks/logos.mdx +1 -1
  62. package/src/content/pages/docs/blocks/projects.mdx +1 -1
  63. package/src/content/pages/docs/blocks/reviews.mdx +1 -1
  64. package/src/content/pages/docs/blocks.mdx +1 -7
  65. package/src/content/pages/docs/collections/images.mdx +1 -1
  66. package/src/content/pages/docs/collections/pages.mdx +1 -1
  67. package/src/content/pages/docs/collections/presets.mdx +1 -1
  68. package/src/content/pages/docs/components/_localeswitcher.mdx +1 -1
  69. package/src/content/pages/docs/components/_table.mdx +1 -1
  70. package/src/content/pages/docs/components/_tagline.mdx +1 -1
  71. package/src/content/pages/docs/components/_themer.mdx +1 -1
  72. package/src/content/pages/docs/components/_toggle.mdx +1 -1
  73. package/src/content/pages/docs/components/avatar.mdx +32 -0
  74. package/src/content/pages/docs/components/badge.mdx +1 -34
  75. package/src/content/pages/docs/components/badges.mdx +1 -13
  76. package/src/content/pages/docs/components/button.mdx +1 -1
  77. package/src/content/pages/docs/components/buttons.mdx +1 -1
  78. package/src/content/pages/docs/components/channel.mdx +1 -1
  79. package/src/content/pages/docs/components/channels.mdx +1 -1
  80. package/src/content/pages/docs/components/checkbox.mdx +1 -1
  81. package/src/content/pages/docs/components/chip.mdx +75 -0
  82. package/src/content/pages/docs/components/heading.mdx +1 -1
  83. package/src/content/pages/docs/components/icon.mdx +1 -1
  84. package/src/content/pages/docs/components/image.mdx +2 -1
  85. package/src/content/pages/docs/components/input.mdx +1 -1
  86. package/src/content/pages/docs/components/label.mdx +1 -1
  87. package/src/content/pages/docs/components/link.mdx +1 -1
  88. package/src/content/pages/docs/components/links.mdx +11 -52
  89. package/src/content/pages/docs/components/list.mdx +1 -1
  90. package/src/content/pages/docs/components/logo.mdx +1 -1
  91. package/src/content/pages/docs/components/menu.mdx +5 -18
  92. package/src/content/pages/docs/components/paragraph.mdx +1 -1
  93. package/src/content/pages/docs/components/rating.mdx +1 -1
  94. package/src/content/pages/docs/components/select.mdx +1 -1
  95. package/src/content/pages/docs/components/social.mdx +1 -1
  96. package/src/content/pages/docs/components/socials.mdx +1 -1
  97. package/src/content/pages/docs/components/switch.mdx +1 -1
  98. package/src/content/pages/docs/components/tagline.mdx +1 -1
  99. package/src/content/pages/docs/components/textarea.mdx +1 -1
  100. package/src/content/pages/docs/components.mdx +1 -1
  101. package/src/content/pages/docs/customization.mdx +1 -1
  102. package/src/content/pages/docs/frameworks.mdx +1 -1
  103. package/src/content/pages/docs/index.mdx +1 -1
  104. package/src/content/pages/docs/installation.mdx +1 -24
  105. package/src/content/pages/docs/layouts/doc.mdx +1 -1
  106. package/src/content/pages/docs/layouts/page.mdx +1 -1
  107. package/src/content/pages/docs/pages.mdx +1 -1
  108. package/src/content/pages/docs/structures/_card.mdx +1 -1
  109. package/src/content/pages/docs/structures/_dialog.mdx +1 -1
  110. package/src/content/pages/docs/structures/_drawer.mdx +1 -1
  111. package/src/content/pages/docs/structures/card.mdx +1 -1
  112. package/src/content/pages/docs/structures/code.mdx +1 -1
  113. package/src/content/pages/docs/structures/container.mdx +1 -1
  114. package/src/content/pages/docs/structures/drawer.mdx +1 -1
  115. package/src/content/pages/docs/structures/group.mdx +1 -1
  116. package/src/content/pages/docs/structures/layout.mdx +1 -1
  117. package/src/content/pages/docs/structures/masonry.mdx +1 -1
  118. package/src/content/pages/docs/structures/matrix.mdx +1 -1
  119. package/src/content/pages/docs/structures/panel.mdx +1 -1
  120. package/src/content/pages/docs/structures/prose.mdx +1 -1
  121. package/src/content/pages/docs/structures/section.mdx +1 -1
  122. package/src/content/pages/docs/structures/stack.mdx +1 -1
  123. package/src/content/pages/docs/structures/writeup.mdx +1 -1
  124. package/src/content/pages/docs/structures.mdx +1 -1
  125. package/src/content/pages/index.mdx +20 -25
  126. package/src/layouts/Page.astro +44 -10
  127. package/src/layouts/{Product.astro → _Product.astro} +6 -6
  128. package/src/pages/test.astro +16 -0
  129. package/src/schemas/block.ts +18 -44
  130. package/src/schemas/button.ts +2 -0
  131. package/src/schemas/card.ts +43 -0
  132. package/src/schemas/{badge.ts → chip.ts} +3 -3
  133. package/src/schemas/page.ts +4 -18
  134. package/src/schemas/proof.ts +12 -0
  135. package/src/structures/Drawer.astro +2 -3
  136. package/src/structures/Prose.astro +31 -40
  137. package/src/structures/Section.astro +1 -1
  138. package/src/structures/Sidebar.astro +3 -4
  139. package/src/structures/Split.astro +38 -0
  140. package/tailwind.config.ts +4 -1
  141. package/pnpm-lock.yaml +0 -5186
  142. package/src/blocks/_Hero.astro +0 -245
  143. package/src/components/Blocks.astro +0 -26
  144. package/src/components/Sidebar.astro +0 -43
  145. package/src/content/pages/docs/blocks/feature.mdx +0 -17
  146. package/src/content/pages/docs/layouts.mdx +0 -80
  147. package/src/layouts/Block.astro +0 -81
  148. package/src/layouts/Category.astro +0 -136
  149. package/src/layouts/Doc.astro +0 -96
  150. package/src/layouts/Job.astro +0 -60
  151. package/src/layouts/Jobs.astro +0 -72
  152. package/src/layouts/Post.astro +0 -53
  153. /package/src/content/pages/{posts → _posts}/post.md +0 -0
package/astro.config.ts CHANGED
@@ -16,12 +16,10 @@ export default defineConfig({
16
16
  }),
17
17
  svelte(),
18
18
  ],
19
- redirects: {
20
- // '/structure/[...slug]': '/docs/components/[...slug]',
21
- // '/segment/[...slug]': '/docs/components/[...slug]',
22
- // '/typography/[...slug]': '/docs/components/[...slug]',
23
- // '/base/[...slug]': '/docs/components/[...slug]',
24
- // '/overview/theming/': '/docs/customization/',
25
- // '/overview/[...slug]': '/docs/[...slug]',
26
- },
19
+ // redirects: {
20
+ // '/overview/[...slug]': '/docs/[...slug]',
21
+ // '/typography/[...slug]': '/docs/components/[...slug]',
22
+ // '/structure/[...slug]': '/docs/structures/[...slug]',
23
+ // '/blocks': '/docs/blocks/banner/',
24
+ // },
27
25
  })
@@ -1,80 +1,97 @@
1
1
  paths:
2
- uploads: public/images
3
2
  static: public
3
+ uploads: public/images
4
4
 
5
5
  collection_groups:
6
6
  - heading: Content
7
7
  collections:
8
8
  - pages
9
+ - records
9
10
  - heading: Settings
10
11
  collections:
11
12
  - layouts
12
13
 
13
14
  collections_config:
14
- layouts:
15
- path: src/content/layouts
16
- name: Layouts
17
- icon: web
18
- disable_url: true
19
- disable_add: true
20
- disable_add_folder: true
21
- disable_file_actions: true
22
- _enabled_editors:
23
- - data
24
15
  pages:
25
16
  path: src/content/pages
26
- output: true
27
17
  url: /[full_slug]/
28
18
  disable_add_folder: true
29
19
  _enabled_editors:
30
20
  - visual
21
+ - content
31
22
  schemas:
32
23
  page:
33
24
  remove_extra_inputs: false
34
25
  remove_empty_inputs: true
35
26
  hide_extra_inputs: true
36
27
  path: schemas/page.md
37
-
28
+ job:
29
+ remove_extra_inputs: false
30
+ remove_empty_inputs: true
31
+ hide_extra_inputs: true
32
+ path: schemas/job.md
33
+ jobs:
34
+ remove_extra_inputs: false
35
+ remove_empty_inputs: true
36
+ hide_extra_inputs: true
37
+ path: schemas/jobs.md
38
+ post:
39
+ remove_extra_inputs: false
40
+ remove_empty_inputs: true
41
+ hide_extra_inputs: true
42
+ path: schemas/post.md
43
+ records:
44
+ path: src/content/records
45
+ name: Records
46
+ disable_url: true
47
+ disable_add_folder: true
48
+ _enabled_editors:
49
+ - data
50
+ layouts:
51
+ path: src/content/layouts
52
+ name: Layouts
53
+ icon: web
54
+ disable_url: true
55
+ disable_add: true
56
+ disable_add_folder: true
57
+ disable_file_actions: true
58
+ _enabled_editors:
59
+ - data
38
60
  _inputs:
39
- head:
40
- label: SEO / Settings
41
- head.title:
42
- label: SEO title
43
- comment: 50-60 characters
44
- head.description:
45
- label: SEO description
46
- comment: 50-120 characters
47
- parents:
61
+ pages:
48
62
  type: multiselect
49
63
  label: Categorieën
50
64
  options:
51
65
  values: collections.pages
52
- children:
53
- type: multiselect
54
- label: Subcategorieën
55
- options:
56
- values: collections.pages
57
- siblings:
66
+ categories:
58
67
  type: multiselect
59
- label: Aanbevolen pagina's
68
+ label: Categorieën
60
69
  options:
61
70
  values: collections.pages
62
71
  href:
63
72
  type: url
64
73
  label: Link
65
- rating.value:
74
+ rating:
66
75
  label: Rating
67
76
  type: range
68
77
  options:
69
78
  min: 0
70
79
  max: 5
71
80
  step: 0.1
81
+ head:
82
+ label: SEO / Settings
83
+ head.title:
84
+ label: SEO title
85
+ comment: 50-60 characters
86
+ head.description:
87
+ label: SEO description
88
+ comment: 50-120 characters
72
89
  head.image:
73
90
  type: image
74
91
  label: Image
75
92
  comment: Visible when you share a link of the page
76
93
  options:
77
- accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
94
+ accepts_mime_types: image/jpeg,image/jpg,image/png,image/webp
78
95
  mime_type: image/png
79
96
  resize_style: contain
80
97
  width: 1200
@@ -85,7 +102,7 @@ _inputs:
85
102
  images[*]:
86
103
  type: image
87
104
  options:
88
- accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
105
+ accepts_mime_types: image/jpeg,image/jpg,image/png,image/webp
89
106
  mime_type: image/webp
90
107
  resize_style: contain
91
108
  width: 1920
@@ -94,7 +111,7 @@ _inputs:
94
111
  type: image
95
112
  label: Afbeelding
96
113
  options:
97
- accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
114
+ accepts_mime_types: image/jpeg,image/jpg,image/png,image/webp
98
115
  mime_type: image/webp
99
116
  resize_style: contain
100
117
  width: 1920
@@ -140,63 +157,19 @@ _inputs:
140
157
  type: image
141
158
  cascade: true
142
159
  options:
143
- accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
160
+ accepts_mime_types: image/jpeg,image/jpg,image/png,image/webp
144
161
  mime_type: image/webp
145
162
  resize_style: contain
146
163
  width: 260
147
164
  height: 32
148
- rating:
149
- type: range
150
- options:
151
- min: 0
152
- max: 5
153
- step: 0.1
154
- label: Rating
155
165
  price:
156
166
  type: number
157
- label: Prijs
158
- presets:
159
- hidden: true
160
- component:
161
- hidden: true
162
- dark:
163
- hidden: true
167
+ content:
168
+ type: html
164
169
  name:
165
170
  hidden: true
166
- color:
167
- hidden: true
168
- layout:
169
- hidden: true
170
- position:
171
- hidden: true
172
- scheme:
173
- hidden: true
174
- hue:
175
- hidden: true
176
- align:
177
- hidden: true
178
- frame:
179
- hidden: true
180
- variant:
181
- hidden: true
182
- scale:
183
- hidden: true
184
- render:
185
- hidden: true
186
- collection:
187
- hidden: true
188
- slug:
189
- hidden: true
190
171
  id:
191
172
  hidden: true
192
- class:
193
- hidden: true
194
- direction:
195
- hidden: true
196
- size:
197
- hidden: true
198
- structure:
199
- hidden: true
200
173
 
201
174
  _structures:
202
175
  head:
@@ -205,11 +178,10 @@ _structures:
205
178
  values:
206
179
  - label: SEO / Settings
207
180
  value:
208
- title:
209
- description:
210
- image:
211
- code:
212
-
181
+ title: null
182
+ description: null
183
+ image: null
184
+ code: null
213
185
  _editables:
214
186
  content:
215
187
  allow_custom_markup: false
@@ -226,7 +198,6 @@ _editables:
226
198
  table: true
227
199
  underline: true
228
200
  undo: true
229
- accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
230
201
  mime_type: image/webp
231
202
  resize_style: contain
232
203
  width: 1920
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fulldev-ui",
3
- "version": "0.6.0-beta.9",
3
+ "version": "0.6.0",
4
4
  "description": "A component library built for Astro",
5
5
  "homepage": "https://ui.full.dev",
6
6
  "bugs": "https://github.com/fulldotdev/ui/issues",
@@ -38,6 +38,7 @@
38
38
  "@astrojs/mdx": "^3.1.9",
39
39
  "@astrojs/sitemap": "^3.2.1",
40
40
  "@astrojs/svelte": "^6.0.2",
41
+ "@astrojs/tailwind": "^5.1.3",
41
42
  "@astrolib/seo": "1.0.0-beta.8",
42
43
  "@iconify-json/tabler": "^1.2.7",
43
44
  "@nanostores/persistent": "^0.10.2",
Binary file
Binary file
@@ -1,18 +1,16 @@
1
1
  ---
2
- import type { HTMLAttributes, HTMLTag } from 'astro/types'
3
2
  import Element from 'fulldev-ui/components/Element.astro'
4
3
  import type { BlockSchema } from 'fulldev-ui/schemas/block'
5
4
  import Container from 'fulldev-ui/structures/Container.astro'
6
5
 
7
- interface Props extends HTMLAttributes<'header'>, BlockSchema {
8
- as?: HTMLTag
9
- }
6
+ interface Props extends BlockSchema {}
10
7
 
11
- const { as = 'header', text, ...rest } = Astro.props
8
+ const { text, ...rest } = Astro.props
12
9
  ---
13
10
 
14
11
  <Element
15
12
  class:list="banner"
13
+ as="header"
16
14
  {...rest}
17
15
  >
18
16
  <Container>
@@ -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'
@@ -11,9 +10,9 @@ import Matrix from 'fulldev-ui/structures/Matrix.astro'
11
10
  import Section from 'fulldev-ui/structures/Section.astro'
12
11
  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
- const { tagline, heading, paragraph, cards, ...rest } = Astro.props
15
+ const { depth = 2, tagline, heading, paragraph, cards, ...rest } = Astro.props
17
16
  ---
18
17
 
19
18
  <Section
@@ -29,6 +28,7 @@ const { tagline, heading, paragraph, cards, ...rest } = Astro.props
29
28
  <Heading
30
29
  size="3xl"
31
30
  text={heading}
31
+ {depth}
32
32
  />
33
33
  <Paragraph text={paragraph} />
34
34
  </Writeup>
@@ -38,6 +38,7 @@ const { tagline, heading, paragraph, cards, ...rest } = Astro.props
38
38
  <Element class:list="colleagues-card">
39
39
  <Image {...image} />
40
40
  <Heading
41
+ depth={(depth + 1) as 3}
41
42
  as="h3"
42
43
  size="xl"
43
44
  text={heading}
@@ -1,40 +1,28 @@
1
1
  ---
2
- // Centered
3
- import type { ComponentProps } from 'astro/types'
4
2
  import Buttons from 'fulldev-ui/components/Buttons.astro'
5
3
  import Heading from 'fulldev-ui/components/Heading.astro'
6
4
  import Image from 'fulldev-ui/components/Image.astro'
7
5
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
8
6
  import Tagline from 'fulldev-ui/components/Tagline.astro'
7
+ import type { BlockSchema } from 'fulldev-ui/schemas/block.ts'
9
8
  import Container from 'fulldev-ui/structures/Container.astro'
10
9
  import Group from 'fulldev-ui/structures/Group.astro'
11
10
  import Prose from 'fulldev-ui/structures/Prose.astro'
12
11
  import Section from 'fulldev-ui/structures/Section.astro'
13
12
 
14
- interface Props extends ComponentProps<typeof Section> {
15
- tagline?: string | undefined
16
- heading?: string | undefined
17
- paragraph?: string | undefined
18
- content?: string | undefined
19
- image?: ComponentProps<typeof Image> | undefined
20
- buttons?: ComponentProps<typeof Buttons>['buttons']
21
- }
13
+ interface Props extends BlockSchema {}
22
14
 
23
- const { tagline, heading, paragraph, buttons, image, content, ...rest } =
15
+ const { depth, tagline, heading, paragraph, buttons, image, content } =
24
16
  Astro.props
25
17
  ---
26
18
 
27
- <Section
28
- class:list="content-1"
29
- {...rest}
30
- >
19
+ <Section class="content-1">
31
20
  <Container>
32
- <Prose>
21
+ <Prose align="middle">
33
22
  <Tagline text={tagline} />
34
23
  <Heading
35
- as="h2"
36
- size="5xl"
37
24
  text={heading}
25
+ {depth}
38
26
  />
39
27
  <Paragraph
40
28
  muted
@@ -50,13 +38,3 @@ const { tagline, heading, paragraph, buttons, image, content, ...rest } =
50
38
  </Prose>
51
39
  </Container>
52
40
  </Section>
53
-
54
- <style is:global>
55
- @layer fulldev {
56
- .content-1 {
57
- .prose {
58
- @apply mx-auto;
59
- }
60
- }
61
- }
62
- </style>
@@ -1,70 +1,46 @@
1
1
  ---
2
- // Content left, image right, centered
3
- import type { ComponentProps } from 'astro/types'
4
2
  import Buttons from 'fulldev-ui/components/Buttons.astro'
5
3
  import Heading from 'fulldev-ui/components/Heading.astro'
6
4
  import Image from 'fulldev-ui/components/Image.astro'
7
5
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
8
6
  import Tagline from 'fulldev-ui/components/Tagline.astro'
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'
11
10
  import Prose from 'fulldev-ui/structures/Prose.astro'
12
11
  import Section from 'fulldev-ui/structures/Section.astro'
12
+ import Split from 'fulldev-ui/structures/Split.astro'
13
13
 
14
- interface Props extends ComponentProps<typeof Section> {
15
- tagline?: string | undefined
16
- heading?: string | undefined
17
- paragraph?: string | undefined
18
- content?: string | undefined
19
- image?: ComponentProps<typeof Image> | undefined
20
- buttons?: ComponentProps<typeof Buttons>['buttons']
21
- }
14
+ interface Props extends BlockSchema {}
22
15
 
23
- const { tagline, heading, paragraph, buttons, image, content, ...rest } =
16
+ const { depth, tagline, heading, paragraph, buttons, image, content, ...rest } =
24
17
  Astro.props
25
18
  ---
26
19
 
27
20
  <Section
28
- class:list="content-2"
21
+ class="content-2"
29
22
  {...rest}
30
23
  >
31
24
  <Container>
32
- <Prose>
33
- <Tagline text={tagline} />
34
- <Heading
35
- as="h2"
36
- size="4xl"
37
- text={heading}
38
- />
39
- <Paragraph
40
- muted
41
- size="lg"
42
- text={paragraph}
43
- />
44
- <Fragment set:html={content} />
45
- <slot />
46
- <Group>
47
- <Buttons {buttons} />
48
- </Group>
49
- </Prose>
50
- <Image {...image} />
25
+ <Split align="center">
26
+ <Prose>
27
+ <Tagline text={tagline} />
28
+ <Heading
29
+ text={heading}
30
+ {depth}
31
+ />
32
+ <Paragraph
33
+ muted
34
+ size="lg"
35
+ text={paragraph}
36
+ />
37
+ <Fragment set:html={content} />
38
+ <slot />
39
+ <Group>
40
+ <Buttons {buttons} />
41
+ </Group>
42
+ </Prose>
43
+ <Image {...image} />
44
+ </Split>
51
45
  </Container>
52
46
  </Section>
53
-
54
- <style is:global>
55
- @layer fulldev {
56
- .content-2 {
57
- .container {
58
- @apply grid items-center gap-x-gutter gap-y-16 lg:grid-cols-2;
59
- }
60
-
61
- .prose {
62
- @apply max-w-screen-sm;
63
- }
64
-
65
- .image {
66
- @apply rounded-md;
67
- }
68
- }
69
- }
70
- </style>
@@ -1,75 +1,46 @@
1
1
  ---
2
- // Content left, image right, sticky
3
- import type { ComponentProps } from 'astro/types'
4
2
  import Buttons from 'fulldev-ui/components/Buttons.astro'
5
3
  import Heading from 'fulldev-ui/components/Heading.astro'
6
4
  import Image from 'fulldev-ui/components/Image.astro'
7
5
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
8
6
  import Tagline from 'fulldev-ui/components/Tagline.astro'
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'
11
10
  import Prose from 'fulldev-ui/structures/Prose.astro'
12
11
  import Section from 'fulldev-ui/structures/Section.astro'
12
+ import Split from 'fulldev-ui/structures/Split.astro'
13
13
 
14
- interface Props extends ComponentProps<typeof Section> {
15
- tagline?: string | undefined
16
- heading?: string | undefined
17
- paragraph?: string | undefined
18
- content?: string | undefined
19
- image?: ComponentProps<typeof Image> | undefined
20
- buttons?: ComponentProps<typeof Buttons>['buttons']
21
- }
14
+ interface Props extends BlockSchema {}
22
15
 
23
- const { tagline, heading, paragraph, buttons, image, content, ...rest } =
16
+ const { depth, tagline, heading, paragraph, buttons, image, content, ...rest } =
24
17
  Astro.props
25
18
  ---
26
19
 
27
20
  <Section
28
- class:list="content-3"
21
+ class="content-3"
29
22
  {...rest}
30
23
  >
31
24
  <Container>
32
- <Prose>
33
- <Tagline text={tagline} />
34
- <Heading
35
- as="h2"
36
- size="4xl"
37
- text={heading}
38
- />
39
- <Paragraph
40
- muted
41
- size="lg"
42
- text={paragraph}
43
- />
44
- <Fragment set:html={content} />
45
- <slot />
46
- <Group>
47
- <Buttons {buttons} />
48
- </Group>
49
- </Prose>
50
- <Image {...image} />
25
+ <Split align="sticky">
26
+ <Prose>
27
+ <Tagline text={tagline} />
28
+ <Heading
29
+ text={heading}
30
+ {depth}
31
+ />
32
+ <Paragraph
33
+ muted
34
+ size="lg"
35
+ text={paragraph}
36
+ />
37
+ <Fragment set:html={content} />
38
+ <slot />
39
+ <Group>
40
+ <Buttons {buttons} />
41
+ </Group>
42
+ </Prose>
43
+ <Image {...image} />
44
+ </Split>
51
45
  </Container>
52
46
  </Section>
53
-
54
- <style is:global>
55
- @layer fulldev {
56
- .content-3 {
57
- .container {
58
- @apply grid items-start gap-x-gutter gap-y-16 lg:grid-cols-2;
59
- }
60
-
61
- .prose,
62
- .image {
63
- @apply lg:sticky lg:top-sticky-16;
64
- }
65
-
66
- .prose {
67
- @apply max-w-screen-sm;
68
- }
69
-
70
- .image {
71
- @apply rounded-md;
72
- }
73
- }
74
- }
75
- </style>
@@ -1,68 +1,45 @@
1
1
  ---
2
- // Heading etc left, image and content right, sticky
3
- import type { ComponentProps } from 'astro/types'
4
2
  import Buttons from 'fulldev-ui/components/Buttons.astro'
5
3
  import Heading from 'fulldev-ui/components/Heading.astro'
6
4
  import Image from 'fulldev-ui/components/Image.astro'
7
5
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
8
6
  import Tagline from 'fulldev-ui/components/Tagline.astro'
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'
11
10
  import Prose from 'fulldev-ui/structures/Prose.astro'
12
11
  import Section from 'fulldev-ui/structures/Section.astro'
12
+ import Split from 'fulldev-ui/structures/Split.astro'
13
13
 
14
- interface Props extends ComponentProps<typeof Section> {
15
- tagline?: string | undefined
16
- heading?: string | undefined
17
- paragraph?: string | undefined
18
- content?: string | undefined
19
- image?: ComponentProps<typeof Image> | undefined
20
- buttons?: ComponentProps<typeof Buttons>['buttons']
21
- }
14
+ interface Props extends BlockSchema {}
22
15
 
23
- const { tagline, heading, paragraph, buttons, image, content, ...rest } =
16
+ const { depth, tagline, heading, paragraph, buttons, image, content } =
24
17
  Astro.props
25
18
  ---
26
19
 
27
- <Section
28
- class:list="content-4"
29
- {...rest}
30
- >
20
+ <Section class="content-4">
31
21
  <Container>
32
- <Prose>
33
- <Tagline text={tagline} />
34
- <Heading
35
- as="h2"
36
- size="4xl"
37
- text={heading}
38
- />
39
- <Paragraph
40
- muted
41
- size="lg"
42
- text={paragraph}
43
- />
44
- <Group>
45
- <Buttons {buttons} />
46
- </Group>
47
- </Prose>
48
- <Prose>
49
- <Image {...image} />
50
- <Fragment set:html={content} />
51
- <slot />
52
- </Prose>
22
+ <Split align="sticky">
23
+ <Prose>
24
+ <Tagline text={tagline} />
25
+ <Heading
26
+ text={heading}
27
+ {depth}
28
+ />
29
+ <Paragraph
30
+ muted
31
+ size="lg"
32
+ text={paragraph}
33
+ />
34
+ <Group>
35
+ <Buttons {buttons} />
36
+ </Group>
37
+ </Prose>
38
+ <Prose>
39
+ <Image {...image} />
40
+ <Fragment set:html={content} />
41
+ <slot />
42
+ </Prose>
43
+ </Split>
53
44
  </Container>
54
45
  </Section>
55
-
56
- <style is:global>
57
- @layer fulldev {
58
- .content-4 {
59
- .container {
60
- @apply flex flex-col items-start gap-x-gutter lg:grid lg:grid-cols-2;
61
- }
62
-
63
- .prose {
64
- @apply lg:sticky lg:top-sticky-16 lg:max-w-xl;
65
- }
66
- }
67
- }
68
- </style>