fulldev-ui 0.6.0-beta.8 → 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 +38 -102
  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,11 +1,12 @@
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
@@ -13,57 +14,39 @@ collection_groups:
13
14
  collections_config:
14
15
  pages:
15
16
  path: src/content/pages
16
- output: true
17
17
  url: /[full_slug]/
18
- icon: wysiwyg
19
- name: Pages
20
18
  disable_add_folder: true
21
19
  _enabled_editors:
22
20
  - visual
23
21
  - content
24
22
  schemas:
25
23
  page:
26
- name: Page
27
- icon: wysiwyg
28
24
  remove_extra_inputs: false
29
25
  remove_empty_inputs: true
30
26
  hide_extra_inputs: true
31
27
  path: schemas/page.md
32
28
  job:
33
- name: Job
34
- icon: wysiwyg
35
29
  remove_extra_inputs: false
36
30
  remove_empty_inputs: true
37
31
  hide_extra_inputs: true
38
32
  path: schemas/job.md
39
33
  jobs:
40
- name: Job overview
41
- icon: wysiwyg
42
34
  remove_extra_inputs: false
43
35
  remove_empty_inputs: true
44
36
  hide_extra_inputs: true
45
37
  path: schemas/jobs.md
46
38
  post:
47
- name: Content
48
- icon: wysiwyg
49
39
  remove_extra_inputs: false
50
40
  remove_empty_inputs: true
51
41
  hide_extra_inputs: true
52
42
  path: schemas/post.md
53
- category:
54
- name: Category
55
- icon: wysiwyg
56
- remove_extra_inputs: false
57
- remove_empty_inputs: true
58
- hide_extra_inputs: true
59
- path: schemas/category.md
60
- product:
61
- name: Product
62
- icon: wysiwyg
63
- remove_extra_inputs: false
64
- remove_empty_inputs: true
65
- hide_extra_inputs: true
66
- path: schemas/product.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
67
50
  layouts:
68
51
  path: src/content/layouts
69
52
  name: Layouts
@@ -74,53 +57,41 @@ collections_config:
74
57
  disable_file_actions: true
75
58
  _enabled_editors:
76
59
  - data
77
-
78
60
  _inputs:
79
- head:
80
- label: SEO / Settings
81
-
82
- head.title:
83
- label: SEO title
84
- comment: 50-60 characters
85
-
86
- head.description:
87
- label: SEO description
88
- comment: 50-120 characters
89
-
90
- parents:
61
+ pages:
91
62
  type: multiselect
92
63
  label: Categorieën
93
64
  options:
94
65
  values: collections.pages
95
- children:
66
+ categories:
96
67
  type: multiselect
97
- label: Subcategorieën
98
- options:
99
- values: collections.pages
100
- siblings:
101
- type: multiselect
102
- label: Aanbevolen pagina's
68
+ label: Categorieën
103
69
  options:
104
70
  values: collections.pages
105
-
106
71
  href:
107
72
  type: url
108
73
  label: Link
109
-
110
- rating.value:
74
+ rating:
111
75
  label: Rating
112
76
  type: range
113
77
  options:
114
78
  min: 0
115
79
  max: 5
116
80
  step: 0.1
117
-
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
118
89
  head.image:
119
90
  type: image
120
91
  label: Image
121
92
  comment: Visible when you share a link of the page
122
93
  options:
123
- accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
94
+ accepts_mime_types: image/jpeg,image/jpg,image/png,image/webp
124
95
  mime_type: image/png
125
96
  resize_style: contain
126
97
  width: 1200
@@ -131,7 +102,7 @@ _inputs:
131
102
  images[*]:
132
103
  type: image
133
104
  options:
134
- accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
105
+ accepts_mime_types: image/jpeg,image/jpg,image/png,image/webp
135
106
  mime_type: image/webp
136
107
  resize_style: contain
137
108
  width: 1920
@@ -140,12 +111,11 @@ _inputs:
140
111
  type: image
141
112
  label: Afbeelding
142
113
  options:
143
- accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
114
+ accepts_mime_types: image/jpeg,image/jpg,image/png,image/webp
144
115
  mime_type: image/webp
145
116
  resize_style: contain
146
117
  width: 1920
147
118
  height: 1920
148
-
149
119
  list:
150
120
  type: array
151
121
  list[*]:
@@ -187,64 +157,31 @@ _inputs:
187
157
  type: image
188
158
  cascade: true
189
159
  options:
190
- accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
160
+ accepts_mime_types: image/jpeg,image/jpg,image/png,image/webp
191
161
  mime_type: image/webp
192
162
  resize_style: contain
193
163
  width: 260
194
164
  height: 32
195
- rating:
196
- type: range
197
- options:
198
- min: 0
199
- max: 5
200
- step: 0.1
201
- label: Rating
202
165
  price:
203
166
  type: number
204
- label: Prijs
205
- presets:
206
- hidden: true
207
- component:
208
- hidden: true
209
- dark:
210
- hidden: true
167
+ content:
168
+ type: html
211
169
  name:
212
170
  hidden: true
213
- color:
214
- hidden: true
215
- layout:
216
- hidden: true
217
- position:
218
- hidden: true
219
- scheme:
220
- hidden: true
221
- hue:
222
- hidden: true
223
- align:
224
- hidden: true
225
- frame:
226
- hidden: true
227
- variant:
228
- hidden: true
229
- scale:
230
- hidden: true
231
- render:
232
- hidden: true
233
- collection:
234
- hidden: true
235
- slug:
236
- hidden: true
237
171
  id:
238
172
  hidden: true
239
- class:
240
- hidden: true
241
- direction:
242
- hidden: true
243
- size:
244
- hidden: true
245
- structure:
246
- hidden: true
247
173
 
174
+ _structures:
175
+ head:
176
+ remove_empty_inputs: true
177
+ id_key: title
178
+ values:
179
+ - label: SEO / Settings
180
+ value:
181
+ title: null
182
+ description: null
183
+ image: null
184
+ code: null
248
185
  _editables:
249
186
  content:
250
187
  allow_custom_markup: false
@@ -261,7 +198,6 @@ _editables:
261
198
  table: true
262
199
  underline: true
263
200
  undo: true
264
- accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
265
201
  mime_type: image/webp
266
202
  resize_style: contain
267
203
  width: 1920
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fulldev-ui",
3
- "version": "0.6.0-beta.8",
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>