fulldev-ui 0.6.0-beta.0 → 0.6.0-beta.2

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 (175) hide show
  1. package/astro.config.ts +10 -2
  2. package/example.svelte +0 -0
  3. package/package.json +12 -7
  4. package/parent.svelte +0 -0
  5. package/pnpm-lock.yaml +301 -35
  6. package/src/App.svelte +0 -0
  7. package/src/blocks/Products.astro +53 -72
  8. package/src/components/Card.astro +2 -2
  9. package/src/components/Cart.astro +12 -3
  10. package/src/components/CartAdd.svelte +76 -0
  11. package/src/components/CartCheckout.svelte +58 -0
  12. package/src/components/CartForm.astro +87 -88
  13. package/src/components/CartForm.svelte +130 -0
  14. package/src/components/CartList.astro +84 -79
  15. package/src/components/CartList.svelte +88 -0
  16. package/src/components/CartQuantity.svelte +81 -0
  17. package/src/components/CartSummary.astro +8 -94
  18. package/src/components/CartTotal.svelte +15 -0
  19. package/src/components/Dialog.astro +1 -0
  20. package/src/components/Drawer.astro +1 -0
  21. package/src/components/Gallery.astro +3 -1
  22. package/src/components/Header.astro +2 -0
  23. package/src/components/Image.astro +2 -2
  24. package/src/components/Input.astro +17 -9
  25. package/src/components/ProductCard.astro +52 -0
  26. package/src/components/Prose.astro +1 -1
  27. package/src/components/Search.astro +106 -43
  28. package/src/components/Section.astro +11 -269
  29. package/src/components/Select.astro +1 -0
  30. package/src/components/_CartList backup.astro +125 -0
  31. package/src/components/_CartList copy.astro +213 -0
  32. package/src/components/_CartListSimple.astro +148 -0
  33. package/src/content/categories/mugs.md +7 -0
  34. package/src/content/config.ts +24 -4
  35. package/src/content/{pages/docs → docs}/_internationalization.mdx +0 -1
  36. package/src/content/{pages/docs → docs}/_using-blocks.mdx +0 -1
  37. package/src/content/{pages/docs → docs}/_using-presets.mdx +0 -1
  38. package/src/content/{pages/docs → docs}/blocks.mdx +0 -1
  39. package/src/content/{pages/docs → docs}/collections/images.mdx +3 -2
  40. package/src/content/{pages/docs → docs}/collections/pages.mdx +0 -1
  41. package/src/content/{pages/docs → docs}/collections/presets.mdx +0 -1
  42. package/src/content/{pages/docs → docs}/collections.mdx +0 -1
  43. package/src/content/{pages/docs → docs}/components/_card.mdx +0 -2
  44. package/src/content/{pages/docs → docs}/components/_dialog.mdx +0 -2
  45. package/src/content/{pages/docs → docs}/components/_drawer.mdx +0 -2
  46. package/src/content/{pages/docs → docs}/components/_localeswitcher.mdx +0 -2
  47. package/src/content/{pages/docs → docs}/components/_switch.mdx +0 -2
  48. package/src/content/{pages/docs → docs}/components/_tagline.mdx +0 -2
  49. package/src/content/{pages/docs → docs}/components/_toggle.mdx +0 -2
  50. package/src/content/{pages/docs → docs}/components/avatar.mdx +0 -2
  51. package/src/content/{pages/docs → docs}/components/badge.mdx +0 -2
  52. package/src/content/{pages/docs → docs}/components/badges.mdx +0 -2
  53. package/src/content/{pages/docs → docs}/components/button.mdx +0 -2
  54. package/src/content/{pages/docs → docs}/components/buttons.mdx +0 -2
  55. package/src/content/{pages/docs → docs}/components/channel.mdx +0 -2
  56. package/src/content/{pages/docs → docs}/components/channels.mdx +0 -2
  57. package/src/content/{pages/docs → docs}/components/checkbox.mdx +0 -2
  58. package/src/content/{pages/docs → docs}/components/code.mdx +0 -2
  59. package/src/content/{pages/docs → docs}/components/heading.mdx +0 -2
  60. package/src/content/{pages/docs → docs}/components/icon.mdx +0 -2
  61. package/src/content/{pages/docs → docs}/components/image.mdx +0 -2
  62. package/src/content/{pages/docs → docs}/components/input.mdx +0 -2
  63. package/src/content/{pages/docs → docs}/components/label.mdx +0 -2
  64. package/src/content/{pages/docs → docs}/components/lead.mdx +0 -2
  65. package/src/content/{pages/docs → docs}/components/link.mdx +0 -2
  66. package/src/content/{pages/docs → docs}/components/links.mdx +0 -2
  67. package/src/content/{pages/docs → docs}/components/list.mdx +0 -2
  68. package/src/content/{pages/docs → docs}/components/logo.mdx +0 -2
  69. package/src/content/{pages/docs → docs}/components/menu.mdx +0 -2
  70. package/src/content/{pages/docs → docs}/components/paragraph.mdx +0 -2
  71. package/src/content/{pages/docs → docs}/components/prose.mdx +0 -2
  72. package/src/content/{pages/docs → docs}/components/rating.mdx +0 -2
  73. package/src/content/{pages/docs → docs}/components/section.mdx +0 -2
  74. package/src/content/{pages/docs → docs}/components/select.mdx +0 -2
  75. package/src/content/{pages/docs → docs}/components/social.mdx +0 -2
  76. package/src/content/{pages/docs → docs}/components/socials.mdx +0 -2
  77. package/src/content/{pages/docs → docs}/components/switch.mdx +0 -2
  78. package/src/content/{pages/docs → docs}/components/table.mdx +0 -2
  79. package/src/content/{pages/docs → docs}/components/tagline.mdx +0 -2
  80. package/src/content/{pages/docs → docs}/components/textarea.mdx +0 -2
  81. package/src/content/{pages/docs → docs}/components/themer.mdx +0 -2
  82. package/src/content/{pages/docs → docs}/components.mdx +0 -1
  83. package/src/content/{pages/docs → docs}/customization.mdx +0 -1
  84. package/src/content/{pages/docs → docs}/frameworks.mdx +0 -1
  85. package/src/content/{pages/docs → docs}/generating-pages.mdx +0 -1
  86. package/src/content/{pages/docs → docs}/index.mdx +0 -1
  87. package/src/content/{pages/docs → docs}/installation.mdx +0 -1
  88. package/src/content/{pages/docs → docs}/layouts.mdx +0 -1
  89. package/src/content/layouts/base.yml +101 -0
  90. package/src/content/layouts/docs.yml +70 -0
  91. package/src/content/pages/blocks/_categories.mdx +0 -2
  92. package/src/content/pages/blocks/_footer.mdx +0 -2
  93. package/src/content/pages/blocks/_header.mdx +0 -2
  94. package/src/content/pages/blocks/_jobs.mdx +0 -2
  95. package/src/content/pages/blocks/_prices.mdx +0 -2
  96. package/src/content/pages/blocks/_product.mdx +0 -2
  97. package/src/content/pages/blocks/_products.mdx +0 -2
  98. package/src/content/pages/blocks/_stats.mdx +0 -2
  99. package/src/content/pages/blocks/banner.mdx +0 -2
  100. package/src/content/pages/blocks/colleagues.mdx +0 -2
  101. package/src/content/pages/blocks/contact.mdx +0 -2
  102. package/src/content/pages/blocks/content.mdx +0 -2
  103. package/src/content/pages/blocks/cta.mdx +0 -2
  104. package/src/content/pages/blocks/features.mdx +0 -2
  105. package/src/content/pages/blocks/hero.mdx +0 -2
  106. package/src/content/pages/blocks/intro.mdx +0 -2
  107. package/src/content/pages/blocks/posts.mdx +0 -2
  108. package/src/content/pages/blocks/reviews.mdx +0 -2
  109. package/src/content/pages/index.mdx +0 -2
  110. package/src/content/pages/showcase/anti-slip-profiles.md +2 -2
  111. package/src/content/pages/showcase/fulldev-ui.md +1 -1
  112. package/src/content/pages/showcase/lavis-detailing.md +1 -1
  113. package/src/content/pages/showcase/leren-trainingsacteren.md +1 -1
  114. package/src/content/pages/showcase/miele-witgoedcenter-amsterdam.md +1 -1
  115. package/src/content/pages/showcase/sloepverhuur-bolsward.md +1 -1
  116. package/src/content/pages/showcase/stark-vulcanising-products.md +1 -1
  117. package/src/content/pages/showcase/the-gym-haren.md +1 -1
  118. package/src/content/pages/showcase/van-dillen-antieke-bouwmaterialen.md +1 -1
  119. package/src/content/pages/showcase.mdx +0 -1
  120. package/src/content/products/product.md +20 -0
  121. package/src/env.d.ts +1 -0
  122. package/src/integration/index.ts +20 -8
  123. package/src/layouts/CategoryLayout.astro +12 -17
  124. package/src/layouts/DocLayout.astro +17 -0
  125. package/src/layouts/Layout.astro +11 -40
  126. package/src/layouts/PageLayout.astro +6 -12
  127. package/src/layouts/PostLayout.astro +6 -12
  128. package/src/layouts/ProductLayout.astro +28 -33
  129. package/src/pages/[...category].astro +17 -0
  130. package/src/pages/[...doc].astro +17 -0
  131. package/src/pages/[...page].astro +6 -25
  132. package/src/pages/[...post].astro +17 -0
  133. package/src/pages/[...product].astro +17 -0
  134. package/src/pages/test.astro +1 -16
  135. package/src/schemas/archive/_pageSchema.ts +94 -0
  136. package/src/schemas/categorySchema.ts +16 -0
  137. package/src/schemas/components/banner.ts +3 -0
  138. package/src/schemas/components/card.ts +1 -1
  139. package/src/schemas/components/footer.ts +1 -0
  140. package/src/schemas/components/header.ts +1 -0
  141. package/src/schemas/components/link.ts +21 -14
  142. package/src/schemas/components/section.ts +2 -0
  143. package/src/schemas/components/sections.ts +1 -1
  144. package/src/schemas/components/sidebar.ts +1 -0
  145. package/src/schemas/components/subheader.ts +1 -0
  146. package/src/schemas/components/writeup.ts +1 -1
  147. package/src/schemas/docSchema.ts +10 -0
  148. package/src/schemas/fields/categories.ts +3 -0
  149. package/src/schemas/fields/description.ts +3 -0
  150. package/src/schemas/fields/href.ts +3 -0
  151. package/src/schemas/fields/image.ts +24 -0
  152. package/src/schemas/fields/images.ts +4 -0
  153. package/src/schemas/fields/order.ts +3 -0
  154. package/src/schemas/fields/price.ts +3 -0
  155. package/src/schemas/fields/products.ts +5 -0
  156. package/src/schemas/fields/seo.ts +12 -0
  157. package/src/schemas/fields/soldout.ts +3 -0
  158. package/src/schemas/{components/price.ts → fields/title.ts} +1 -1
  159. package/src/schemas/fields/variants.ts +3 -0
  160. package/src/schemas/layoutSchema.ts +28 -0
  161. package/src/schemas/pageSchema.ts +12 -86
  162. package/src/schemas/postSchema.ts +16 -0
  163. package/src/schemas/productSchema.ts +22 -0
  164. package/src/stores/cart.svelte.ts +79 -0
  165. package/src/stores/cart.ts +59 -6
  166. package/src/utils/formatEntries.ts +8 -0
  167. package/src/utils/formatEntry.ts +29 -0
  168. package/src/utils/getHref.ts +22 -0
  169. package/svelte.config.js +5 -0
  170. package/src/content/presets/base.yml +0 -100
  171. package/src/content/presets/docs.yml +0 -6
  172. package/src/schemas/components/images.ts +0 -4
  173. package/src/schemas/presetSchema.ts +0 -3
  174. package/src/schemas/utils/categories.ts +0 -3
  175. package/src/schemas/utils/navigation.ts +0 -8
@@ -0,0 +1,213 @@
1
+ <!-- ---
2
+ import Element from 'fulldev-ui/components/Element.astro'
3
+ import Image from 'fulldev-ui/components/Image.astro'
4
+ import { $cart } from 'fulldev-ui/stores/cart.ts'
5
+ import { formatPrice } from 'fulldev-ui/utils/cart'
6
+ import Button from './Button.astro'
7
+ import Card from './Card.astro'
8
+ import Heading from './Heading.astro'
9
+ import Input from './Input.astro'
10
+ import Price from './Price.astro'
11
+ import Text from './Text.astro'
12
+
13
+ const { ...rest } = Astro.props
14
+ ---
15
+
16
+ <Element
17
+ class:list="cart-list"
18
+ {...rest}
19
+ >
20
+ <template id="cart-card-template">
21
+ <Element class="cart-card">
22
+ <Image src="/placeholder-portrait.webp" />
23
+ <Element class="cart-card-segment">
24
+ <Element class="cart-card-content">
25
+ <Heading
26
+ level={6}
27
+ text="Product title"
28
+ />
29
+ <Price value={999} />
30
+ </Element>
31
+ <Element class="cart-card-actions">
32
+ <Input
33
+ type="number"
34
+ name="quantity"
35
+ value={1}
36
+ min={0}
37
+ />
38
+ <Button
39
+ variant="outline"
40
+ icon="trash"
41
+ type="button"
42
+ />
43
+ </Element>
44
+ </Element>
45
+ </Element>
46
+ </template>
47
+ </Element>
48
+ <Element
49
+ if
50
+ class:list="cart-list"
51
+ {...rest}
52
+ />
53
+
54
+ <template>
55
+ <Card class="cart-list-card">
56
+ <img class="cart-list-image image" />
57
+ <Element class="column">
58
+ <Heading
59
+ if
60
+ level={4}
61
+ class="heading"
62
+ />
63
+ <Element class="row">
64
+ <Text
65
+ if
66
+ class="cart-list-price"
67
+ />
68
+ <Button
69
+ class:list="cart-list-remove"
70
+ variant="ghost"
71
+ icon="trash"
72
+ type="button"
73
+ />
74
+ </Element>
75
+ </Element>
76
+ </Card>
77
+ </template>
78
+
79
+ <script>
80
+ import { $cart } from 'fulldev-ui/stores/cart.ts'
81
+ import { formatPrice } from 'fulldev-ui/utils/cart'
82
+
83
+ function setCards(items: any) {
84
+ const template = document.querySelector('template')
85
+ const container = document.querySelector('.cart-list')
86
+
87
+ if (!container || !template) return
88
+
89
+ container.innerHTML = ''
90
+
91
+ items.forEach((item: any, index: number) => {
92
+ const clone = template?.content.cloneNode(true)
93
+ if (!(clone instanceof DocumentFragment)) return
94
+ const card = clone.querySelector('.cart-card')
95
+ if (!card) return
96
+
97
+ const img = card.querySelector('img')
98
+ if (img) img.src = item.image
99
+
100
+ const h4 = card.querySelector('h4')
101
+ if (h4) h4.textContent = item.name
102
+
103
+ const p = card.querySelector('p')
104
+ if (p) p.textContent = formatPrice(item.price)
105
+
106
+ const button = card.querySelector('button')
107
+ if (button) {
108
+ button.addEventListener('click', () => {
109
+ const currentCart = $cart.get()
110
+ const newCart = [...currentCart]
111
+ newCart.splice(index, 1)
112
+ $cart.set(newCart)
113
+ })
114
+ }
115
+
116
+ container.appendChild(clone)
117
+ })
118
+ }
119
+
120
+ document.addEventListener('astro:page-load', () => {
121
+ setCards($cart.get())
122
+
123
+ $cart.subscribe((items: any) => {
124
+ setCards(items)
125
+ })
126
+ })
127
+ </script>
128
+
129
+ <script>
130
+ function setCards(items: any) {
131
+ const template = document.querySelector('template')
132
+ const container = document.querySelector('.cart-list')
133
+ if (!(container instanceof HTMLElement)) return
134
+ if (!(template instanceof HTMLTemplateElement)) return
135
+
136
+ container.innerHTML = ''
137
+
138
+ items.forEach((item: any, index: number) => {
139
+ const clone = template?.content.cloneNode(true)
140
+ if (!(clone instanceof DocumentFragment)) return
141
+ const card = clone.querySelector('.cart-list-card')
142
+ if (!card) return
143
+
144
+ const image = card.querySelector('img')
145
+ const heading = card.querySelector('.heading')
146
+ const price = card.querySelector('.price')
147
+ // const input = card.querySelector('.input-input')
148
+ const remove = card.querySelector('.button')
149
+
150
+ if (image) image.src = item.image
151
+ if (heading) heading.textContent = item.name
152
+ if (price) price.textContent = formatPrice(item.price)
153
+
154
+ remove?.addEventListener('click', () => {
155
+ const currentCart = $cart.get()
156
+ const newCart = [...currentCart]
157
+ newCart.splice(index, 1)
158
+ $cart.set(newCart)
159
+ })
160
+
161
+ container.appendChild(clone)
162
+ })
163
+ }
164
+
165
+ document.addEventListener('astro:page-load', () => {
166
+ setCards($cart.get())
167
+
168
+ $cart.subscribe((items: any) => {
169
+ setCards(items)
170
+ })
171
+ })
172
+ </script>
173
+
174
+ <style is:global>
175
+ @layer fulldev {
176
+ .cart-list {
177
+ @apply flex flex-col text-foreground;
178
+
179
+ .cart-card {
180
+ @apply flex w-full gap-5;
181
+
182
+ &:not(:first-child) {
183
+ @apply mt-5 border-t pt-5;
184
+ }
185
+
186
+ .image {
187
+ @apply block h-auto w-24;
188
+ }
189
+
190
+ .column {
191
+ @apply flex h-full w-full flex-col justify-between gap-3;
192
+ }
193
+
194
+ .row {
195
+ @apply flex w-full flex-row justify-between;
196
+ }
197
+ }
198
+
199
+ .cart-card-segment {
200
+ @apply flex h-full w-full flex-col justify-between gap-4;
201
+ }
202
+
203
+ .cart-card-content,
204
+ .cart-card-actions {
205
+ @apply flex justify-between gap-2;
206
+ }
207
+
208
+ .input {
209
+ @apply w-16;
210
+ }
211
+ }
212
+ }
213
+ </style> -->-->
@@ -0,0 +1,148 @@
1
+ ---
2
+ // import { getCollection } from 'astro:content'
3
+ // import Element from 'fulldev-ui/components/Element.astro'
4
+ // import Image from 'fulldev-ui/components/Image.astro'
5
+ // import Button from './Button.astro'
6
+ // import Heading from './Heading.astro'
7
+ // import Input from './Input.astro'
8
+ // import Price from './Price.astro'
9
+
10
+ // const products = await getCollection('products')
11
+ ---
12
+
13
+ <!-- <RootElement>
14
+ <Element
15
+ data-target="container"
16
+ if={true}
17
+ class:list="cart-list"
18
+ />
19
+
20
+ {
21
+ products.map((product) => (
22
+ <template data-target={product.slug}>
23
+ <Element
24
+ data-target="card"
25
+ class="cart-list-card"
26
+ >
27
+ <Image
28
+ data-target="image"
29
+ src="/placeholder-portrait.webp"
30
+ />
31
+ <Element class="cart-list-card-segment">
32
+ <Element class="cart-list-card-content">
33
+ <Heading
34
+ data-target="heading"
35
+ level={6}
36
+ text="Product title"
37
+ />
38
+ <Price
39
+ data-target="price"
40
+ value={999}
41
+ />
42
+ </Element>
43
+ <Element class="cart-list-card-actions">
44
+ <Input
45
+ data-target="input"
46
+ type="number"
47
+ name="quantity"
48
+ value={1}
49
+ min={0}
50
+ />
51
+ <Button
52
+ data-target="button"
53
+ variant="outline"
54
+ icon="trash"
55
+ type="button"
56
+ />
57
+ </Element>
58
+ </Element>
59
+ </Element>
60
+ </template>
61
+ ))
62
+ }
63
+ </RootElement> --><!-- <RootElement>
64
+ <Element
65
+ data-target="container"
66
+ if={true}
67
+ class:list="cart-list"
68
+ >
69
+ {
70
+ products.map((product) => (
71
+ <Element
72
+ data-target={product.slug}
73
+ class="cart-list-card"
74
+ >
75
+ <Image
76
+ data-target="image"
77
+ src="/placeholder-portrait.webp"
78
+ />
79
+ <Element class="cart-list-card-segment">
80
+ <Element class="cart-list-card-content">
81
+ <Heading
82
+ data-target="heading"
83
+ level={6}
84
+ text="Product title"
85
+ />
86
+ <Price
87
+ data-target="price"
88
+ value={999}
89
+ />
90
+ </Element>
91
+ <Element class="cart-list-card-actions">
92
+ <Input
93
+ data-target="input"
94
+ type="number"
95
+ name="quantity"
96
+ value={1}
97
+ min={0}
98
+ />
99
+ <Button
100
+ data-target="button"
101
+ variant="outline"
102
+ icon="trash"
103
+ type="button"
104
+ />
105
+ </Element>
106
+ </Element>
107
+ </Element>
108
+ ))
109
+ }
110
+ </Element>
111
+ </RootElement> --><!-- <script>
112
+ RootElement.ready(($) => {
113
+ const card = $('151-booster-box')
114
+ console.log(card)
115
+ })
116
+ </script> -->
117
+ <style is:global>
118
+ @layer fulldev {
119
+ .cart-list {
120
+ @apply flex flex-col text-foreground;
121
+
122
+ .cart-list-card {
123
+ @apply flex w-full gap-5;
124
+
125
+ &:not(:first-child) {
126
+ @apply mt-5 border-t pt-5;
127
+ }
128
+ }
129
+
130
+ .image {
131
+ @apply block h-auto w-24;
132
+ }
133
+
134
+ .cart-list-card-segment {
135
+ @apply flex h-full w-full flex-col justify-between gap-4;
136
+ }
137
+
138
+ .cart-list-card-content,
139
+ .cart-list-card-actions {
140
+ @apply flex justify-between gap-2;
141
+ }
142
+
143
+ .input {
144
+ @apply w-16;
145
+ }
146
+ }
147
+ }
148
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: Mug
3
+ description: Lorem ipsum dolor sit
4
+ ---
5
+
6
+
7
+
@@ -1,17 +1,37 @@
1
1
  import { defineCollection } from 'astro:content'
2
2
  import imageLoader from 'fulldev-ui/loaders/imageLoader.ts'
3
+ import { categorySchema } from 'fulldev-ui/schemas/categorySchema'
4
+ import { docSchema } from 'fulldev-ui/schemas/docSchema'
3
5
  import imageSchema from 'fulldev-ui/schemas/imageSchema.ts'
4
- import pageSchema from 'fulldev-ui/schemas/pageSchema.ts'
5
- import presetSchema from 'fulldev-ui/schemas/presetSchema.ts'
6
+ import { layoutSchema } from 'fulldev-ui/schemas/layoutSchema'
7
+ import { pageSchema } from 'fulldev-ui/schemas/pageSchema'
8
+ import { postSchema } from 'fulldev-ui/schemas/postSchema'
9
+ import { productSchema } from 'fulldev-ui/schemas/productSchema'
6
10
 
7
11
  export const collections = {
8
12
  pages: defineCollection({
9
13
  type: 'content',
10
14
  schema: pageSchema,
11
15
  }),
12
- presets: defineCollection({
16
+ posts: defineCollection({
17
+ type: 'content',
18
+ schema: postSchema,
19
+ }),
20
+ docs: defineCollection({
21
+ type: 'content',
22
+ schema: docSchema,
23
+ }),
24
+ categories: defineCollection({
25
+ type: 'content',
26
+ schema: categorySchema,
27
+ }),
28
+ products: defineCollection({
29
+ type: 'content',
30
+ schema: productSchema,
31
+ }),
32
+ layouts: defineCollection({
13
33
  type: 'data',
14
- schema: presetSchema,
34
+ schema: layoutSchema,
15
35
  }),
16
36
  images: defineCollection({
17
37
  loader: imageLoader,
@@ -1,5 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
2
  title: Internationalization
4
3
  ---
5
4
 
@@ -1,5 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
2
  title: Using Blocks
4
3
  ---
5
4
 
@@ -1,5 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
2
  title: Using Presets
4
3
  ---
5
4
 
@@ -1,5 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
2
  title: Blocks
4
3
  ---
5
4
 
@@ -1,5 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
2
  title: images
4
3
  ---
5
4
 
@@ -32,6 +31,7 @@ alt: 'A placeholder landscape image'
32
31
  ## Using images
33
32
 
34
33
  ### Automatic (recommended)
34
+
35
35
  Use fulldev-ui's included `<Image />` component to get the following benefits out of the box:
36
36
 
37
37
  - You only have to pass the image id
@@ -40,6 +40,7 @@ Use fulldev-ui's included `<Image />` component to get the following benefits ou
40
40
  - Automatically optimizes image file
41
41
 
42
42
  This is also the easiest way to use images:
43
+
43
44
  ```astro
44
45
  ---
45
46
  import Image from 'fulldev-ui/components/Image.astro'
@@ -97,4 +98,4 @@ const image = images[image.src]
97
98
  ---
98
99
 
99
100
  <Image src={image()} alt={image.alt} />
100
- ```
101
+ ```
@@ -1,5 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
2
  title: pages
4
3
  ---
5
4
 
@@ -1,5 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
2
  title: presets
4
3
  ---
5
4
 
@@ -1,5 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
2
  title: Collections
4
3
  ---
5
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Card
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Dialog
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Drawer
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: LocaleSwitcher
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Switch
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Tagline
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Toggle
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Avatar
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Badge
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Badges
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Button
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Buttons
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Channel
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Channels
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Checkbox
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Code
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Heading
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Icon
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Image
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Input
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Label
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Lead
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Link
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: Links
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs]
3
-
4
2
  title: List
5
3
  ---
6
4