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
package/astro.config.ts CHANGED
@@ -1,10 +1,6 @@
1
+ import svelte from '@astrojs/svelte'
1
2
  import { defineConfig } from 'astro/config'
2
3
  import integration from 'fulldev-ui/integration'
3
- import simpleStackQuery from 'simple-stack-query'
4
-
5
- import simpleStackForm from 'simple-stack-form'
6
-
7
- import svelte from '@astrojs/svelte'
8
4
 
9
5
  // https://astro.build/config
10
6
  export default defineConfig({
@@ -19,8 +15,6 @@ export default defineConfig({
19
15
  css: '/src/css/custom.css',
20
16
  injectRoutes: false,
21
17
  }),
22
- simpleStackQuery(),
23
- simpleStackForm(),
24
18
  svelte(),
25
19
  ],
26
20
  redirects: {
@@ -0,0 +1,270 @@
1
+ paths:
2
+ uploads: public/images
3
+ static: public
4
+
5
+ collection_groups:
6
+ - heading: Content
7
+ collections:
8
+ - pages
9
+ - jobs
10
+ - categories
11
+ - heading: Settings
12
+ collections:
13
+ - layouts
14
+
15
+ collections_config:
16
+ pages:
17
+ path: src/content/pages
18
+ output: true
19
+ url: /[full_slug]/
20
+ icon: wysiwyg
21
+ name: Pages
22
+ disable_add_folder: true
23
+ _enabled_editors:
24
+ - visual
25
+ - content
26
+ schemas:
27
+ page:
28
+ name: Page
29
+ icon: wysiwyg
30
+ remove_extra_inputs: false
31
+ remove_empty_inputs: true
32
+ hide_extra_inputs: true
33
+ path: schemas/page.md
34
+ job:
35
+ name: Job
36
+ icon: wysiwyg
37
+ remove_extra_inputs: false
38
+ remove_empty_inputs: true
39
+ hide_extra_inputs: true
40
+ path: schemas/job.md
41
+ jobs:
42
+ name: Job overview
43
+ icon: wysiwyg
44
+ remove_extra_inputs: false
45
+ remove_empty_inputs: true
46
+ hide_extra_inputs: true
47
+ path: schemas/jobs.md
48
+ post:
49
+ name: Content
50
+ icon: wysiwyg
51
+ remove_extra_inputs: false
52
+ remove_empty_inputs: true
53
+ hide_extra_inputs: true
54
+ path: schemas/post.md
55
+ category:
56
+ name: Category
57
+ icon: wysiwyg
58
+ remove_extra_inputs: false
59
+ remove_empty_inputs: true
60
+ hide_extra_inputs: true
61
+ path: schemas/category.md
62
+ product:
63
+ name: Product
64
+ icon: wysiwyg
65
+ remove_extra_inputs: false
66
+ remove_empty_inputs: true
67
+ hide_extra_inputs: true
68
+ path: schemas/product.md
69
+ layouts:
70
+ path: src/content/layouts
71
+ name: Layouts
72
+ icon: web
73
+ disable_url: true
74
+ disable_add: true
75
+ disable_add_folder: true
76
+ disable_file_actions: true
77
+ _enabled_editors:
78
+ - data
79
+
80
+ _inputs:
81
+ head:
82
+ label: SEO / Settings
83
+
84
+ head.title:
85
+ label: SEO title
86
+ comment: 50-60 characters
87
+
88
+ head.description:
89
+ label: SEO description
90
+ comment: 50-120 characters
91
+
92
+ parents:
93
+ type: multiselect
94
+ label: Categorieën
95
+ options:
96
+ values: collections.pages
97
+ children:
98
+ type: multiselect
99
+ label: Subcategorieën
100
+ options:
101
+ values: collections.pages
102
+ siblings:
103
+ type: multiselect
104
+ label: Aanbevolen pagina's
105
+ options:
106
+ values: collections.pages
107
+
108
+ href:
109
+ type: url
110
+ label: Link
111
+
112
+ rating.value:
113
+ label: Rating
114
+ type: range
115
+ options:
116
+ min: 0
117
+ max: 5
118
+ step: 0.1
119
+
120
+ head.image:
121
+ type: image
122
+ label: Image
123
+ comment: Visible when you share a link of the page
124
+ options:
125
+ accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
126
+ mime_type: image/png
127
+ resize_style: contain
128
+ width: 1200
129
+ height: 640
130
+ images:
131
+ type: array
132
+ cascade: true
133
+ images[*]:
134
+ type: image
135
+ options:
136
+ accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
137
+ mime_type: image/webp
138
+ resize_style: contain
139
+ width: 1920
140
+ height: 1920
141
+ image:
142
+ type: image
143
+ label: Afbeelding
144
+ options:
145
+ accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
146
+ mime_type: image/webp
147
+ resize_style: contain
148
+ width: 1920
149
+ height: 1920
150
+
151
+ list:
152
+ type: array
153
+ list[*]:
154
+ type: text
155
+ hidden:
156
+ label: Hide
157
+ type: switch
158
+ soldout:
159
+ label: Sold out
160
+ type: switch
161
+ draft:
162
+ label: Draft
163
+ type: switch
164
+ order:
165
+ label: Volgorde
166
+ type: number
167
+ paragraph:
168
+ type: textarea
169
+ label: Tekst
170
+ text:
171
+ type: textarea
172
+ label: Tekst
173
+ button.text:
174
+ type: text
175
+ options:
176
+ type: array
177
+ label: Opties
178
+ options[*]:
179
+ type: text
180
+ variations:
181
+ type: array
182
+ label: Variations
183
+ sizes:
184
+ type: array
185
+ label: Sizes
186
+ sizes[*]:
187
+ type: text
188
+ logo:
189
+ type: image
190
+ cascade: true
191
+ options:
192
+ accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
193
+ mime_type: image/webp
194
+ resize_style: contain
195
+ width: 260
196
+ height: 32
197
+ rating:
198
+ type: range
199
+ options:
200
+ min: 0
201
+ max: 5
202
+ step: 0.1
203
+ label: Rating
204
+ price:
205
+ type: number
206
+ label: Prijs
207
+ presets:
208
+ hidden: true
209
+ component:
210
+ hidden: true
211
+ dark:
212
+ hidden: true
213
+ name:
214
+ hidden: true
215
+ color:
216
+ hidden: true
217
+ layout:
218
+ hidden: true
219
+ position:
220
+ hidden: true
221
+ scheme:
222
+ hidden: true
223
+ hue:
224
+ hidden: true
225
+ align:
226
+ hidden: true
227
+ frame:
228
+ hidden: true
229
+ variant:
230
+ hidden: true
231
+ scale:
232
+ hidden: true
233
+ render:
234
+ hidden: true
235
+ collection:
236
+ hidden: true
237
+ slug:
238
+ hidden: true
239
+ id:
240
+ hidden: true
241
+ class:
242
+ hidden: true
243
+ direction:
244
+ hidden: true
245
+ size:
246
+ hidden: true
247
+ structure:
248
+ hidden: true
249
+
250
+ _editables:
251
+ content:
252
+ allow_custom_markup: false
253
+ remove_custom_markup: false
254
+ bold: true
255
+ bulletedlist: true
256
+ format: p h1 h2 h3 h4 h5 h6
257
+ image: true
258
+ image_size_attributes: true
259
+ italic: true
260
+ link: true
261
+ numberedlist: true
262
+ redo: true
263
+ table: true
264
+ underline: true
265
+ undo: true
266
+ accepts_mime_types: 'image/jpeg,image/jpg,image/png,image/webp'
267
+ mime_type: image/webp
268
+ resize_style: contain
269
+ width: 1920
270
+ height: 1920
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fulldev-ui",
3
- "version": "0.6.0-beta.3",
3
+ "version": "0.6.0-beta.7",
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",
@@ -0,0 +1,33 @@
1
+ ---
2
+ import type { HTMLAttributes, HTMLTag } from 'astro/types'
3
+ import Container from 'fulldev-ui/components/Container.astro'
4
+ import Element from 'fulldev-ui/components/Element.astro'
5
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
6
+
7
+ interface Props extends HTMLAttributes<'header'>, BlockSchema {
8
+ as?: HTMLTag
9
+ }
10
+
11
+ const { as = 'header', text, ...rest } = Astro.props
12
+ ---
13
+
14
+ <Element
15
+ class:list="banner"
16
+ {...rest}
17
+ >
18
+ <Container>
19
+ <Fragment set:html={text} />
20
+ </Container>
21
+ </Element>
22
+
23
+ <style is:global>
24
+ @layer fulldev {
25
+ .banner {
26
+ @apply relative flex w-full items-center bg-primary py-3 text-primary-foreground;
27
+
28
+ .container {
29
+ @apply flex items-center justify-center overflow-hidden bg-primary text-center text-sm leading-none text-primary-foreground;
30
+ }
31
+ }
32
+ }
33
+ </style>
@@ -0,0 +1,73 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Card from 'fulldev-ui/components/Card.astro'
4
+ import Container from 'fulldev-ui/components/Container.astro'
5
+ import Heading from 'fulldev-ui/components/Heading.astro'
6
+ import Image from 'fulldev-ui/components/Image.astro'
7
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
8
+ import Section from 'fulldev-ui/components/Section.astro'
9
+ import Stack from 'fulldev-ui/components/Stack.astro'
10
+ import Tagline from 'fulldev-ui/components/Tagline.astro'
11
+ import Writeup from 'fulldev-ui/components/Writeup.astro'
12
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
13
+
14
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
15
+
16
+ const { tagline, heading, paragraph, cards, ...rest } = Astro.props
17
+ ---
18
+
19
+ <Section
20
+ class:list="colleagues-1"
21
+ {...rest}
22
+ >
23
+ <Container>
24
+ <Writeup align="center">
25
+ <Tagline
26
+ size="sm"
27
+ text={tagline}
28
+ />
29
+ <Heading
30
+ size="3xl"
31
+ text={heading}
32
+ />
33
+ <Paragraph text={paragraph} />
34
+ </Writeup>
35
+ <Stack>
36
+ {
37
+ cards?.map(({ image, heading, paragraph }) => (
38
+ <Card>
39
+ <Image {...image} />
40
+ <Heading
41
+ as="h3"
42
+ size="xl"
43
+ text={heading}
44
+ />
45
+ <Paragraph text={paragraph} />
46
+ </Card>
47
+ ))
48
+ }
49
+ </Stack>
50
+ </Container>
51
+ </Section>
52
+
53
+ <style is:global>
54
+ @layer fulldev {
55
+ .colleagues-1 {
56
+ .container {
57
+ @apply flex flex-col items-center gap-16;
58
+ }
59
+
60
+ .card {
61
+ @apply mt-20 flex flex-col items-center gap-1 pt-0;
62
+ }
63
+
64
+ .image {
65
+ @apply -mt-20 mb-4 aspect-square max-w-40 rounded-full object-cover;
66
+ }
67
+
68
+ .icon {
69
+ @apply text-primary;
70
+ }
71
+ }
72
+ }
73
+ </style>
@@ -1,4 +1,6 @@
1
1
  ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Badges from 'fulldev-ui/components/Badges.astro'
2
4
  import Channel from 'fulldev-ui/components/Channel.astro'
3
5
  import Element from 'fulldev-ui/components/Element.astro'
4
6
  import Form from 'fulldev-ui/components/Form.astro'
@@ -8,16 +10,17 @@ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
8
10
  import Section from 'fulldev-ui/components/Section.astro'
9
11
  import Social from 'fulldev-ui/components/Social.astro'
10
12
  import Tagline from 'fulldev-ui/components/Tagline.astro'
11
- import type { ContactSchema } from 'fulldev-ui/schemas/blocks/contact'
12
- import type { ComponentProps } from 'svelte'
13
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
13
14
 
14
- interface Props extends ComponentProps<typeof Section>, ContactSchema {}
15
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
15
16
 
16
17
  const {
18
+ badge,
19
+ badges,
20
+ tagline,
17
21
  heading,
18
22
  form,
19
23
  text,
20
- tagline,
21
24
  googleMaps,
22
25
  paragraph,
23
26
  buttons,
@@ -37,6 +40,11 @@ const {
37
40
  <Element>
38
41
  <Element class:list="contact-1-segment">
39
42
  <Element class:list="contact-1-content">
43
+ <Badges
44
+ size="sm"
45
+ {badge}
46
+ {badges}
47
+ />
40
48
  <Tagline
41
49
  size="sm"
42
50
  text={tagline}
@@ -0,0 +1,79 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Badge from 'fulldev-ui/components/Badge.astro'
4
+ import Button from 'fulldev-ui/components/Button.astro'
5
+ import Container from 'fulldev-ui/components/Container.astro'
6
+ import Group from 'fulldev-ui/components/Group.astro'
7
+ import Heading from 'fulldev-ui/components/Heading.astro'
8
+ import Image from 'fulldev-ui/components/Image.astro'
9
+ import List from 'fulldev-ui/components/List.astro'
10
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
11
+ import Prose from 'fulldev-ui/components/Prose.astro'
12
+ import Section from 'fulldev-ui/components/Section.astro'
13
+ import Tagline from 'fulldev-ui/components/Tagline.astro'
14
+ import Toc from 'fulldev-ui/components/Toc.astro'
15
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
16
+
17
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {
18
+ headings?: ComponentProps<typeof Toc>['headings']
19
+ }
20
+
21
+ const {
22
+ tagline,
23
+ badge,
24
+ badges,
25
+ heading,
26
+ paragraph,
27
+ list,
28
+ button,
29
+ buttons,
30
+ image,
31
+ content,
32
+ headings,
33
+ ...rest
34
+ } = Astro.props
35
+ ---
36
+
37
+ <Section
38
+ class:list="content-1"
39
+ {...rest}
40
+ >
41
+ <Container>
42
+ <Prose>
43
+ <Group>
44
+ <Badge {...badge} />
45
+ {badges?.map((badge) => <Badge {...badge} />)}
46
+ </Group>
47
+ <Tagline text={tagline} />
48
+ <Heading
49
+ as="h1"
50
+ size="4xl"
51
+ text={heading}
52
+ />
53
+ <Paragraph
54
+ muted
55
+ size="lg"
56
+ text={paragraph}
57
+ />
58
+ <List items={list} />
59
+ <Group>
60
+ <Button {...button} />
61
+ {buttons?.map((button) => <Button {...button} />)}
62
+ </Group>
63
+ <Image {...image} />
64
+ <Fragment set:html={content} />
65
+ <slot />
66
+ </Prose>
67
+ <Toc {headings} />
68
+ </Container>
69
+ </Section>
70
+
71
+ <style is:global>
72
+ @layer fulldev {
73
+ .content-1 {
74
+ .container {
75
+ @apply flex items-start justify-evenly gap-x-gutter;
76
+ }
77
+ }
78
+ }
79
+ </style>
@@ -0,0 +1,94 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Badge from 'fulldev-ui/components/Badge.astro'
4
+ import Button from 'fulldev-ui/components/Button.astro'
5
+ import Container from 'fulldev-ui/components/Container.astro'
6
+ import Group from 'fulldev-ui/components/Group.astro'
7
+ import Heading from 'fulldev-ui/components/Heading.astro'
8
+ import Image from 'fulldev-ui/components/Image.astro'
9
+ import List from 'fulldev-ui/components/List.astro'
10
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
11
+ import Prose from 'fulldev-ui/components/Prose.astro'
12
+ import Section from 'fulldev-ui/components/Section.astro'
13
+ import Tagline from 'fulldev-ui/components/Tagline.astro'
14
+ import Toc from 'fulldev-ui/components/Toc.astro'
15
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
16
+
17
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {
18
+ headings?: ComponentProps<typeof Toc>['headings']
19
+ }
20
+
21
+ const {
22
+ tagline,
23
+ badge,
24
+ badges,
25
+ heading,
26
+ paragraph,
27
+ list,
28
+ button,
29
+ buttons,
30
+ image,
31
+ headings,
32
+ content,
33
+ ...rest
34
+ } = Astro.props
35
+ ---
36
+
37
+ <Section
38
+ class:list="content-2"
39
+ {...rest}
40
+ >
41
+ <Container>
42
+ <Prose>
43
+ <Group>
44
+ <Badge {...badge} />
45
+ {badges?.map((badge) => <Badge {...badge} />)}
46
+ </Group>
47
+ <Tagline
48
+ size="sm"
49
+ text={tagline}
50
+ />
51
+ <Heading
52
+ as="h1"
53
+ size="4xl"
54
+ text={heading}
55
+ />
56
+ <Paragraph
57
+ muted
58
+ size="lg"
59
+ text={paragraph}
60
+ />
61
+ <List items={list} />
62
+ <Group>
63
+ <Button {...button} />
64
+ {buttons?.map((button) => <Button {...button} />)}
65
+ </Group>
66
+ <Fragment set:html={content} />
67
+ <slot />
68
+ </Prose>
69
+ <Image {...image} />
70
+ </Container>
71
+ </Section>
72
+
73
+ <style is:global>
74
+ @layer fulldev {
75
+ .content-2 {
76
+ .container {
77
+ @apply grid items-start gap-x-gutter gap-y-16 lg:grid-cols-2;
78
+ }
79
+
80
+ .prose,
81
+ .image {
82
+ @apply lg:sticky lg:top-sticky-16;
83
+ }
84
+
85
+ .prose {
86
+ @apply max-w-screen-sm;
87
+ }
88
+
89
+ .image {
90
+ @apply rounded-md;
91
+ }
92
+ }
93
+ }
94
+ </style>
@@ -0,0 +1,70 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Badges from 'fulldev-ui/components/Badges.astro'
4
+ import Buttons from 'fulldev-ui/components/Buttons.astro'
5
+ import Container from 'fulldev-ui/components/Container.astro'
6
+ import Group from 'fulldev-ui/components/Group.astro'
7
+ import Heading from 'fulldev-ui/components/Heading.astro'
8
+ import List from 'fulldev-ui/components/List.astro'
9
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
10
+ import Prose from 'fulldev-ui/components/Prose.astro'
11
+ import Section from 'fulldev-ui/components/Section.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 { badge, badges, heading, paragraph, list, button, buttons, ...rest } =
18
+ Astro.props
19
+ ---
20
+
21
+ <Section
22
+ class:list="content-3"
23
+ {...rest}
24
+ >
25
+ <Container>
26
+ <Writeup>
27
+ <Group>
28
+ <Badges
29
+ size="sm"
30
+ {badge}
31
+ {badges}
32
+ />
33
+ </Group>
34
+ <Heading
35
+ as="h1"
36
+ size="4xl"
37
+ text={heading}
38
+ />
39
+ <Paragraph
40
+ size="lg"
41
+ muted
42
+ text={paragraph}
43
+ />
44
+ <List items={list} />
45
+ <Group>
46
+ <Buttons
47
+ {button}
48
+ {buttons}
49
+ />
50
+ </Group>
51
+ </Writeup>
52
+ <Prose>
53
+ <slot />
54
+ </Prose>
55
+ </Container>
56
+ </Section>
57
+
58
+ <style is:global>
59
+ @layer fulldev {
60
+ .content-3 {
61
+ .container {
62
+ @apply flex flex-col items-start gap-x-gutter lg:grid lg:grid-cols-2;
63
+ }
64
+
65
+ .writeup {
66
+ @apply lg:sticky lg:top-sticky-16 lg:max-w-xl;
67
+ }
68
+ }
69
+ }
70
+ </style>