fulldev-ui 0.4.33 → 0.5.0-beta-16

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 (315) hide show
  1. package/.env.example +3 -0
  2. package/CONTRIBUTING.md +10 -4
  3. package/astro.config.ts +11 -11
  4. package/package.json +31 -17
  5. package/pnpm-lock.yaml +1353 -438
  6. package/public/favicon/android-chrome-192x192.png +0 -0
  7. package/public/favicon/android-chrome-512x512.png +0 -0
  8. package/public/favicon/apple-touch-icon.png +0 -0
  9. package/public/favicon/browserconfig.xml +7 -7
  10. package/public/favicon/favicon-16x16-dark.png +0 -0
  11. package/public/favicon/favicon-16x16.png +0 -0
  12. package/public/favicon/favicon-32x32-dark.png +0 -0
  13. package/public/favicon/favicon-32x32.png +0 -0
  14. package/public/favicon/favicon-48x48-dark.png +0 -0
  15. package/public/favicon/favicon-48x48.png +0 -0
  16. package/public/favicon/favicon-dark.ico +0 -0
  17. package/public/favicon/favicon.ico +0 -0
  18. package/public/favicon/favicon.svg +16 -0
  19. package/public/favicon/manifest.webmanifest +26 -0
  20. package/public/favicon/mstile-150x150.png +0 -0
  21. package/public/favicon/safari-pinned-tab.svg +14 -15
  22. package/public/favicon/yandex-browser-50x50.png +0 -0
  23. package/public/favicon/yandex-browser-manifest.json +9 -0
  24. package/src/blocks/Article.astro +40 -0
  25. package/src/blocks/Banner.astro +48 -0
  26. package/src/blocks/Colleagues.astro +2 -1
  27. package/src/blocks/Contact.astro +61 -99
  28. package/src/blocks/Cta.astro +2 -1
  29. package/src/blocks/Excerpt.astro +14 -0
  30. package/src/blocks/Hero.astro +1 -2
  31. package/src/blocks/Intro.astro +4 -1
  32. package/src/blocks/Jobs.astro +1 -1
  33. package/src/blocks/Prices.astro +1 -1
  34. package/src/blocks/Product.astro +75 -27
  35. package/src/blocks/Reviews.astro +1 -1
  36. package/src/components/Avatar.astro +3 -20
  37. package/src/components/Badge.astro +17 -54
  38. package/src/components/Badges.astro +40 -0
  39. package/src/components/Button.astro +65 -46
  40. package/src/components/Buttons.astro +49 -0
  41. package/src/components/Card.astro +100 -178
  42. package/src/components/Cards.astro +135 -0
  43. package/src/components/Cart.astro +38 -0
  44. package/src/components/CartForm.astro +122 -0
  45. package/src/components/CartList.astro +134 -0
  46. package/src/components/CartSummary.astro +148 -0
  47. package/src/components/Channel.astro +70 -0
  48. package/src/components/Channels.astro +37 -0
  49. package/src/components/Checkbox.astro +12 -16
  50. package/src/components/Dialog.astro +10 -12
  51. package/src/components/Drawer.astro +131 -63
  52. package/src/components/Element.astro +58 -0
  53. package/src/components/Footer.astro +142 -93
  54. package/src/components/Form.astro +49 -0
  55. package/src/components/Head.astro +11 -45
  56. package/src/components/Header.astro +91 -163
  57. package/src/components/Heading.astro +18 -26
  58. package/src/components/Icon.astro +9 -9
  59. package/src/components/Image.astro +42 -152
  60. package/src/components/Input.astro +16 -28
  61. package/src/components/Label.astro +14 -17
  62. package/src/components/Link.astro +22 -44
  63. package/src/components/List.astro +12 -10
  64. package/src/components/LocaleSwitcher.astro +25 -0
  65. package/src/components/Menu.astro +57 -0
  66. package/src/components/Price.astro +34 -0
  67. package/src/components/Rating.astro +29 -25
  68. package/src/components/Search.astro +4 -7
  69. package/src/components/Section.astro +196 -234
  70. package/src/components/Select.astro +16 -34
  71. package/src/components/Sidebar.astro +85 -58
  72. package/src/components/Social.astro +36 -0
  73. package/src/components/Socials.astro +37 -0
  74. package/src/components/Switch.astro +14 -22
  75. package/src/components/Table.astro +23 -36
  76. package/src/components/Tagline.astro +11 -16
  77. package/src/components/Text.astro +17 -19
  78. package/src/components/Textarea.astro +8 -22
  79. package/src/components/ThemeSelect.astro +41 -0
  80. package/src/components/Toc.astro +59 -56
  81. package/src/components/Writeup.astro +90 -0
  82. package/src/components/docs/PropsTable.astro +229 -56
  83. package/src/components/experimental/Form.astro +36 -17
  84. package/src/components/experimental/Gallery.astro +50 -126
  85. package/src/components/experimental/Logo.astro +26 -9
  86. package/src/components/experimental/Prose.astro +41 -5
  87. package/src/components/experimental/Video.astro +1 -1
  88. package/src/components/experimental/Window.astro +3 -4
  89. package/src/components/sections.astro +28 -0
  90. package/src/content/config.ts +10 -7
  91. package/src/content/pages/base/_dialog.mdx +1 -2
  92. package/src/content/pages/base/_drawer.mdx +1 -2
  93. package/src/content/pages/base/_localeswitcher.mdx +17 -0
  94. package/src/content/pages/base/_switch.mdx +1 -2
  95. package/src/content/pages/base/badge.mdx +1 -12
  96. package/src/content/pages/base/button.mdx +1 -12
  97. package/src/content/pages/base/card.mdx +2 -29
  98. package/src/content/pages/base/checkbox.mdx +1 -2
  99. package/src/content/pages/base/icon.mdx +1 -2
  100. package/src/content/pages/base/image.mdx +42 -0
  101. package/src/content/pages/base/input.mdx +1 -12
  102. package/src/content/pages/base/rating.mdx +3 -14
  103. package/src/content/pages/base/section.mdx +2 -3
  104. package/src/content/pages/base/select.mdx +1 -20
  105. package/src/content/pages/base/table.mdx +1 -28
  106. package/src/content/pages/base/textarea.mdx +1 -16
  107. package/src/content/pages/base/theme-select.mdx +15 -0
  108. package/src/content/pages/blocks/_categories.mdx +3 -5
  109. package/src/content/pages/blocks/{footer.mdx → _footer.mdx} +2 -4
  110. package/src/content/pages/blocks/{header.mdx → _header.mdx} +2 -7
  111. package/src/content/pages/blocks/_jobs.mdx +1 -2
  112. package/src/content/pages/blocks/{prices.mdx → _prices.mdx} +5 -7
  113. package/src/content/pages/blocks/_product.mdx +74 -4
  114. package/src/content/pages/blocks/_products.mdx +1 -2
  115. package/src/content/pages/blocks/_stats.mdx +1 -1
  116. package/src/content/pages/blocks/{_banner.mdx → banner.mdx} +2 -2
  117. package/src/content/pages/blocks/colleagues.mdx +6 -8
  118. package/src/content/pages/blocks/contact.mdx +69 -0
  119. package/src/content/pages/blocks/content.mdx +1 -19
  120. package/src/content/pages/blocks/cta.mdx +2 -25
  121. package/src/content/pages/blocks/features.mdx +2 -3
  122. package/src/content/pages/blocks/hero.mdx +5 -3
  123. package/src/content/pages/blocks/intro.mdx +2 -5
  124. package/src/content/pages/blocks/posts.mdx +9 -2
  125. package/src/content/pages/blocks/reviews.mdx +23 -18
  126. package/src/content/pages/index.mdx +16 -20
  127. package/src/content/pages/layouts/_layout.mdx +14 -0
  128. package/src/content/pages/layouts/docslayout.mdx +14 -0
  129. package/src/content/pages/overview/components.mdx +75 -0
  130. package/src/content/pages/overview/content-collections.mdx +139 -0
  131. package/src/content/pages/overview/frameworks.mdx +4 -4
  132. package/src/content/pages/overview/installation.mdx +36 -3
  133. package/src/content/pages/overview/introduction.mdx +19 -9
  134. package/src/content/pages/overview/theming.mdx +53 -67
  135. package/src/content/pages/schemas/page.mdx +17 -0
  136. package/src/content/pages/schemas/preset.mdx +9 -0
  137. package/src/content/pages/showcase/anti-slip-profiles.md +5 -0
  138. package/src/content/pages/showcase/fulldev-ui.md +5 -0
  139. package/src/content/pages/showcase/lavis-detailing.md +5 -0
  140. package/src/content/pages/showcase/leren-trainingsacteren.md +5 -0
  141. package/src/content/pages/showcase/miele-witgoedcenter-amsterdam.md +5 -0
  142. package/src/content/{records/record.yml → pages/showcase/record.md} +2 -0
  143. package/src/content/pages/showcase/sloepverhuur-bolsward.md +5 -0
  144. package/src/content/pages/showcase/stark-vulcanising-products.md +5 -0
  145. package/src/content/pages/showcase/the-gym-haren.md +5 -0
  146. package/src/content/pages/showcase/van-dillen-antieke-bouwmaterialen.md +5 -0
  147. package/src/content/pages/showcase.mdx +11 -41
  148. package/src/content/pages/typography/_tagline.mdx +1 -2
  149. package/src/content/pages/typography/heading.mdx +1 -2
  150. package/src/content/pages/typography/label.mdx +1 -2
  151. package/src/content/pages/typography/link.mdx +1 -13
  152. package/src/content/pages/typography/list.mdx +1 -2
  153. package/src/content/pages/typography/text.mdx +1 -2
  154. package/src/content/{settings → presets}/base.yml +62 -45
  155. package/src/content/presets/blocks.yml +1 -0
  156. package/src/content/presets/docs.yml +6 -0
  157. package/src/css/color.css +0 -82
  158. package/src/css/custom.css +9 -56
  159. package/src/css/size.css +10 -0
  160. package/src/css/space.css +0 -8
  161. package/src/css/styles.css +0 -15
  162. package/src/env.d.ts +1 -1
  163. package/src/images/avatar-1.yml +1 -0
  164. package/src/images/favicon.svg +16 -0
  165. package/src/integration/generate-colors.ts +2 -0
  166. package/src/integration/index.ts +95 -7
  167. package/src/layouts/BlockLayout.astro +10 -15
  168. package/src/layouts/ContactLayout.astro +21 -0
  169. package/src/layouts/DocsLayout.astro +73 -0
  170. package/src/layouts/Layout.astro +114 -133
  171. package/src/layouts/OverviewLayout.astro +28 -31
  172. package/src/layouts/PostLayout.astro +12 -23
  173. package/src/layouts/ProductLayout.astro +10 -20
  174. package/src/loaders/imageLoader.ts +26 -0
  175. package/src/pages/[...page].astro +25 -21
  176. package/src/schemas/components/avatar.ts +3 -0
  177. package/src/schemas/components/avatars.ts +4 -0
  178. package/src/schemas/components/badge.ts +13 -0
  179. package/src/schemas/components/button.ts +16 -0
  180. package/src/schemas/components/buttons.ts +4 -0
  181. package/src/schemas/components/card.ts +25 -0
  182. package/src/schemas/components/cards.ts +4 -0
  183. package/src/schemas/components/channel.ts +13 -0
  184. package/src/schemas/components/channels.ts +4 -0
  185. package/src/schemas/components/footer.ts +25 -0
  186. package/src/schemas/components/header.ts +11 -0
  187. package/src/schemas/components/heading.ts +3 -0
  188. package/src/schemas/components/icon.ts +3 -0
  189. package/src/schemas/components/image.ts +25 -0
  190. package/src/schemas/components/images.ts +4 -0
  191. package/src/schemas/components/list.ts +3 -0
  192. package/src/schemas/components/logo.ts +3 -0
  193. package/src/schemas/components/menu.ts +13 -0
  194. package/src/schemas/components/price.ts +3 -0
  195. package/src/schemas/components/rating.ts +15 -0
  196. package/src/schemas/components/section.ts +15 -0
  197. package/src/schemas/components/sections.ts +3 -0
  198. package/src/schemas/components/sidebar.ts +15 -0
  199. package/src/schemas/components/social.ts +3 -0
  200. package/src/schemas/components/socials.ts +4 -0
  201. package/src/schemas/components/tagline.ts +3 -0
  202. package/src/schemas/components/text.ts +3 -0
  203. package/src/schemas/components/toc.ts +3 -0
  204. package/src/schemas/components/writeup.ts +20 -0
  205. package/src/schemas/imageSchema.ts +12 -0
  206. package/src/schemas/pageSchema.ts +91 -0
  207. package/src/schemas/presetSchema.ts +3 -0
  208. package/src/schemas/utils/component.ts +17 -0
  209. package/src/schemas/utils/navigation.ts +8 -0
  210. package/src/schemas/utils/parents.ts +3 -0
  211. package/src/schemas/{utils.ts → utils/pathSchema.ts} +2 -11
  212. package/src/stores/cart.ts +23 -0
  213. package/src/types/global-props.ts +16 -0
  214. package/src/types/virtual-modules.d.ts +5 -0
  215. package/src/utils/_archive/Childmorphic.ts +1 -1
  216. package/src/utils/_archive/mergeEntries.ts +28 -0
  217. package/src/utils/cart.ts +32 -0
  218. package/src/utils/getDeepReferenceChildren.ts +14 -0
  219. package/src/utils/getFolderChildren.ts +18 -0
  220. package/src/utils/getReferenceChildren.ts +14 -0
  221. package/src/utils/getSiblingPages.ts +14 -0
  222. package/tsconfig.json +2 -5
  223. package/public/favicon/site.webmanifest +0 -19
  224. package/public/images/avatars/1.jpeg +0 -0
  225. package/public/images/avatars/2.jpeg +0 -0
  226. package/public/images/avatars/3.jpeg +0 -0
  227. package/public/images/avatars/300/1.jpeg +0 -0
  228. package/public/images/avatars/300/2.jpeg +0 -0
  229. package/public/images/avatars/300/3.jpeg +0 -0
  230. package/public/images/avatars/300/4.jpeg +0 -0
  231. package/public/images/avatars/4.jpeg +0 -0
  232. package/public/images/avatars/5.jpeg +0 -0
  233. package/public/images/avatars/6.jpeg +0 -0
  234. package/public/images/avatars/7.jpeg +0 -0
  235. package/public/images/avatars/8.jpeg +0 -0
  236. package/public/images/blocks/colleagues.png +0 -0
  237. package/public/images/blocks/content.png +0 -0
  238. package/public/images/blocks/cta.png +0 -0
  239. package/public/images/blocks/features.png +0 -0
  240. package/public/images/blocks/footer.png +0 -0
  241. package/public/images/blocks/header.png +0 -0
  242. package/public/images/blocks/hero.png +0 -0
  243. package/public/images/blocks/intro.png +0 -0
  244. package/public/images/blocks/posts.png +0 -0
  245. package/public/images/blocks/prices.png +0 -0
  246. package/public/images/blocks/reviews.png +0 -0
  247. package/public/images/logo-placeholder.svg +0 -1
  248. package/src/components/Bento.astro +0 -43
  249. package/src/components/Block.astro +0 -157
  250. package/src/components/Blocks.astro +0 -5
  251. package/src/components/Box.astro +0 -63
  252. package/src/components/Carousel.astro +0 -54
  253. package/src/components/Column.astro +0 -73
  254. package/src/components/Grid.astro +0 -32
  255. package/src/components/Masonry.astro +0 -42
  256. package/src/components/Root.astro +0 -94
  257. package/src/components/Row.astro +0 -49
  258. package/src/components/Split.astro +0 -59
  259. package/src/components/Spread.astro +0 -46
  260. package/src/components/Stack.astro +0 -36
  261. package/src/components/Toggle.astro +0 -46
  262. package/src/components/Wrap.astro +0 -42
  263. package/src/components/docs/NavigationButtons.astro +0 -59
  264. package/src/components/experimental/Channel.astro +0 -74
  265. package/src/components/experimental/GalleryVertical.astro +0 -161
  266. package/src/components/experimental/Price.astro +0 -40
  267. package/src/content/pages/_changelog.mdx +0 -10
  268. package/src/content/pages/_segment/footer.mdx +0 -244
  269. package/src/content/pages/_segment/header.mdx +0 -210
  270. package/src/content/pages/base/_image.mdx +0 -14
  271. package/src/content/pages/base/toggle.mdx +0 -32
  272. package/src/content/pages/blocks.mdx +0 -10
  273. package/src/content/pages/overview/integration.mdx +0 -37
  274. package/src/content/pages/structure/_row.mdx +0 -23
  275. package/src/content/pages/structure/_wrap.mdx +0 -25
  276. package/src/content/pages/structure/carousel.mdx +0 -31
  277. package/src/content/pages/structure/column.mdx +0 -21
  278. package/src/content/pages/structure/grid.mdx +0 -26
  279. package/src/content/pages/structure/masonry.mdx +0 -32
  280. package/src/content/pages/structure/split.mdx +0 -21
  281. package/src/content/pages/structure/spread.mdx +0 -21
  282. package/src/content/pages/structure/stack.mdx +0 -22
  283. package/src/content/settings/components.yml +0 -29
  284. package/src/layouts/BlockOverviewLayout.astro +0 -39
  285. package/src/layouts/ComponentLayout.astro +0 -23
  286. package/src/layouts/JobsLayout.astro +0 -40
  287. package/src/layouts/PageLayout.astro +0 -32
  288. package/src/schemas/base.ts +0 -90
  289. package/src/schemas/block.ts +0 -15
  290. package/src/schemas/card.ts +0 -3
  291. package/src/schemas/page.ts +0 -43
  292. package/src/utils/mergeEntries.ts +0 -28
  293. /package/{public/showcase → src/images}/anti-slip-profiles.webp +0 -0
  294. /package/{public/images/avatars/500/1.jpeg → src/images/avatar-1.jpeg} +0 -0
  295. /package/{public/images/avatars/500/2.jpeg → src/images/avatar-2.jpeg} +0 -0
  296. /package/{public/images/avatars/500/3.jpeg → src/images/avatar-3.jpeg} +0 -0
  297. /package/{public/images/avatars/500/4.jpeg → src/images/avatar-4.jpeg} +0 -0
  298. /package/{public → src}/images/avatar-placeholder.jpg +0 -0
  299. /package/{public → src}/images/block-code.png +0 -0
  300. /package/{public → src}/images/component-code.png +0 -0
  301. /package/{public/showcase → src/images}/fulldev-ui.webp +0 -0
  302. /package/{public/showcase → src/images}/lavis-detailing.webp +0 -0
  303. /package/{public/showcase → src/images}/leren-trainingsacteren.webp +0 -0
  304. /package/{public/showcase → src/images}/miele-witgoedcenter-amsterdam.webp +0 -0
  305. /package/{public → src}/images/og-image.png +0 -0
  306. /package/{public → src}/images/placeholder-center.webp +0 -0
  307. /package/{public → src}/images/placeholder-landscape-dark.png +0 -0
  308. /package/{public → src}/images/placeholder-landscape.webp +0 -0
  309. /package/{public → src}/images/placeholder-portrait.webp +0 -0
  310. /package/{public → src}/images/placeholder-right.webp +0 -0
  311. /package/{public → src}/images/placeholder.webp +0 -0
  312. /package/{public/showcase → src/images}/sloepverhuur-bolsward.webp +0 -0
  313. /package/{public/showcase → src/images}/stark-vulcanising-products.webp +0 -0
  314. /package/{public/showcase → src/images}/the-gym-haren.webp +0 -0
  315. /package/{public/showcase → src/images}/van-dillen-antieke-bouwmaterialen.webp +0 -0
@@ -1,8 +1,7 @@
1
1
  ---
2
- _layout: BlockLayout
2
+ presets: [docs, blocks]
3
3
 
4
4
  title: Features
5
- image: /images/blocks/features.png
6
5
  ---
7
6
 
8
7
  ```astro live
@@ -108,7 +107,7 @@ import Features from 'fulldev-ui/blocks/Features.astro'
108
107
  <Features
109
108
  heading="Lorem ipsum dolor sit"
110
109
  text="Lorem ipsum dolor sit amet consectetur adipisicing elit."
111
- frame="panel"
110
+ panel
112
111
  position="inset"
113
112
  cards={[
114
113
  {
@@ -1,8 +1,7 @@
1
1
  ---
2
- _layout: BlockLayout
2
+ presets: [docs, blocks]
3
3
 
4
4
  title: Hero
5
- image: /images/blocks/hero.png
6
5
  ---
7
6
 
8
7
  ```astro live
@@ -18,6 +17,7 @@ import Hero from 'fulldev-ui/blocks/Hero.astro'
18
17
  { text: 'Lorem ipsum', href: '' },
19
18
  { text: 'Lorem ipsum', href: '' },
20
19
  ]}
20
+ position="inset"
21
21
  image="/images/placeholder-landscape.webp"
22
22
  />
23
23
  ```
@@ -35,6 +35,7 @@ import Hero from 'fulldev-ui/blocks/Hero.astro'
35
35
  { text: 'Lorem ipsum', href: '' },
36
36
  ]}
37
37
  structure="spread"
38
+ position="inset"
38
39
  image="/images/placeholder-landscape.webp"
39
40
  />
40
41
  ```
@@ -91,7 +92,8 @@ import Hero from 'fulldev-ui/blocks/Hero.astro'
91
92
  image="/images/placeholder-landscape-dark.png"
92
93
  position="background"
93
94
  align="center"
94
- frame="viewport"
95
+ theme="dark"
95
96
  justify="center"
97
+ style={{ minHeight: '100vh', justifyContent: 'center' }}
96
98
  />
97
99
  ```
@@ -1,8 +1,7 @@
1
1
  ---
2
- _layout: BlockLayout
2
+ presets: [docs, blocks]
3
3
 
4
4
  title: Intro
5
- image: /images/blocks/intro.png
6
5
  ---
7
6
 
8
7
  ```astro live
@@ -86,7 +85,6 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
86
85
  ---
87
86
 
88
87
  <Intro
89
- frame="fill"
90
88
  variant="primary"
91
89
  heading="Lorem ipsum dolor sit amet"
92
90
  text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
@@ -103,7 +101,6 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
103
101
  ---
104
102
 
105
103
  <Intro
106
- frame="fill"
107
104
  variant="primary"
108
105
  heading="Lorem ipsum dolor sit amet"
109
106
  text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
@@ -120,7 +117,7 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
120
117
  ---
121
118
 
122
119
  <Intro
123
- frame="panel"
120
+ panel
124
121
  variant="primary"
125
122
  heading="Lorem ipsum dolor sit amet"
126
123
  text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
@@ -1,8 +1,7 @@
1
1
  ---
2
- _layout: BlockLayout
2
+ presets: [docs, blocks]
3
3
 
4
4
  title: Posts
5
- image: /images/blocks/posts.png
6
5
  ---
7
6
 
8
7
  ```astro live
@@ -13,6 +12,7 @@ import Posts from 'fulldev-ui/blocks/Posts.astro'
13
12
  <Posts
14
13
  heading="Latest posts"
15
14
  text="Read the latest articles from our blog."
15
+ panel={false}
16
16
  cards={[
17
17
  {
18
18
  tagline: '2024-03-15',
@@ -35,6 +35,13 @@ import Posts from 'fulldev-ui/blocks/Posts.astro'
35
35
  image: '/images/placeholder-landscape.webp',
36
36
  href: '',
37
37
  },
38
+ {
39
+ tagline: '2024-03-05',
40
+ heading: 'Lorem ipsum dolor sit amet consectetur',
41
+ text: 'Discover our flexible Content block with split layout and panel options. Ideal for presenting detailed information about your products or services.',
42
+ image: '/images/placeholder-landscape.webp',
43
+ href: '',
44
+ },
38
45
  ]}
39
46
  />
40
47
  ```
@@ -1,8 +1,7 @@
1
1
  ---
2
- _layout: BlockLayout
2
+ presets: [docs, blocks]
3
3
 
4
4
  title: Reviews
5
- image: /images/blocks/reviews.png
6
5
  ---
7
6
 
8
7
  ```astro live
@@ -19,7 +18,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
19
18
  {
20
19
  rating: {
21
20
  value: 5,
22
- avatar: '/images/avatars/1.jpeg',
21
+ avatar: 'avatar-1.jpeg',
23
22
  label: 'John Doe',
24
23
  },
25
24
  heading: 'Exceptional Service',
@@ -28,7 +27,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
28
27
  {
29
28
  rating: {
30
29
  value: 5,
31
- avatar: '/images/avatars/2.jpeg',
30
+ avatar: 'avatar-2.jpeg',
32
31
  label: 'Jane Smith',
33
32
  },
34
33
  heading: 'Great Product',
@@ -37,7 +36,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
37
36
  {
38
37
  rating: {
39
38
  value: 5,
40
- avatar: '/images/avatars/3.jpeg',
39
+ avatar: 'avatar-3.jpeg',
41
40
  label: 'Mike Johnson',
42
41
  },
43
42
  heading: 'Reliable and Efficient',
@@ -46,7 +45,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
46
45
  {
47
46
  rating: {
48
47
  value: 5,
49
- avatar: '/images/avatars/4.jpeg',
48
+ avatar: 'avatar-4.jpeg',
50
49
  label: 'Emily Brown',
51
50
  },
52
51
  heading: 'Fantastic Experience',
@@ -55,7 +54,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
55
54
  {
56
55
  rating: {
57
56
  value: 5,
58
- avatar: '/images/avatars/5.jpeg',
57
+ avatar: 'avatar-1.jpeg',
59
58
  label: 'David Wilson',
60
59
  },
61
60
  heading: 'Best in Class',
@@ -64,7 +63,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
64
63
  {
65
64
  rating: {
66
65
  value: 5,
67
- avatar: '/images/avatars/6.jpeg',
66
+ avatar: 'avatar-2.jpeg',
68
67
  label: 'Sarah Davis',
69
68
  },
70
69
  heading: 'Innovative Design',
@@ -73,7 +72,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
73
72
  {
74
73
  rating: {
75
74
  value: 5,
76
- avatar: '/images/avatars/7.jpeg',
75
+ avatar: 'avatar-3.jpeg',
77
76
  label: 'Alex Taylor',
78
77
  },
79
78
  heading: 'Time-Saver',
@@ -82,7 +81,7 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
82
81
  {
83
82
  rating: {
84
83
  value: 5,
85
- avatar: '/images/avatars/8.jpeg',
84
+ avatar: 'avatar-4.jpeg',
86
85
  label: 'Olivia Martinez',
87
86
  },
88
87
  heading: 'Reliable and Durable',
@@ -102,10 +101,10 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
102
101
  value: 5,
103
102
  label: 'Rated 5,0 out of 86 reviews',
104
103
  avatars: [
105
- '/images/avatars/1.jpeg',
106
- '/images/avatars/2.jpeg',
107
- '/images/avatars/3.jpeg',
108
- '/images/avatars/4.jpeg',
104
+ 'avatar-1.jpeg',
105
+ 'avatar-2.jpeg',
106
+ 'avatar-3.jpeg',
107
+ 'avatar-4.jpeg',
109
108
  ],
110
109
  }}
111
110
  heading="What Our Customers Say"
@@ -220,28 +219,34 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
220
219
  heading="Customer Testimonials"
221
220
  text="See what our valued customers have to say about their experiences."
222
221
  structure="grid"
223
- frame="panel"
224
222
  variant="primary"
225
223
  cards={[
226
224
  {
227
225
  rating: 5,
228
226
  heading: 'Life-Changing Product',
229
227
  text: "This product has revolutionized my daily routine. I can't imagine life without it now!",
230
- avatar: '/images/avatars/1.jpeg',
228
+ avatar: 'avatar-1.jpeg',
231
229
  label: 'John Doe',
232
230
  },
233
231
  {
234
232
  rating: 4,
235
233
  heading: 'Great Value for Money',
236
234
  text: 'Excellent quality at a reasonable price. Definitely worth every penny.',
237
- avatar: '/images/avatars/2.jpeg',
235
+ avatar: 'avatar-2.jpeg',
238
236
  label: 'Jane Smith',
239
237
  },
240
238
  {
241
239
  rating: 5,
242
240
  heading: 'Superb Customer Service',
243
241
  text: 'The support team went above and beyond to help me. Truly impressive!',
244
- avatar: '/images/avatars/3.jpeg',
242
+ avatar: 'avatar-3.jpeg',
243
+ label: 'Mike Johnson',
244
+ },
245
+ {
246
+ rating: 5,
247
+ heading: 'Superb Customer Service',
248
+ text: 'The support team went above and beyond to help me. Truly impressive!',
249
+ avatar: 'avatar-3.jpeg',
245
250
  label: 'Mike Johnson',
246
251
  },
247
252
  ]}
@@ -1,55 +1,51 @@
1
1
  ---
2
+ presets: [base]
3
+
2
4
  seo:
3
5
  title: Fulldev UI - Astro component and block library, open-source
4
6
  description: Make websites rapidly with pre-built components and blocks.
5
- image: /images/og-image.png
7
+ image: og-image.png
8
+
9
+ title: Home
6
10
 
7
11
  sections:
8
- hero:
9
- _bookshop_name: Hero
10
- color: brand
12
+ - component: Hero
11
13
  badge:
12
- as: a
13
- text: We just released our biggest update yet 🎉
14
- href: https://discord.gg/vXZqMbadm8
14
+ text: We added layouts, now you can build entire sites
15
+ href: /overview/installation/
15
16
  heading: The Astro UI library to build content sites
16
- text: Make websites with prebuilt components and blocks
17
+ text: Make websites with prebuilt components, blocks and layouts
17
18
  buttons:
18
19
  - text: Get Started
19
- href: /overview/installation
20
+ href: /overview/installation/
20
21
  - text: GitHub
21
22
  href: https://github.com/fulldotdev/ui
22
- target: _blank
23
23
  icon: brand-github
24
-
25
- blocks:
26
- _bookshop_name: Content
24
+ - component: Article
25
+ - component: Content
27
26
  color: brand
28
27
  label: Blocks
29
28
  heading: Use pre-built blocks with just props
30
29
  text: we created a great gallery of blocks to build content sites with a modern look and feel, all of our blocks are build with components from the library to achieve a consistent look.
31
- image: /images/block-code.png
32
- reverse: odd
30
+ image: block-code.png
33
31
  buttons:
34
32
  - href: /blocks
35
33
  icon: layout
36
34
  text: View blocks
37
35
 
38
- components:
39
- _bookshop_name: Content
36
+ - component: Content
40
37
  color: brand
41
38
  label: Components
42
39
  heading: Or build your own, with easy to use components
43
40
  text: our rich set of components make it easy to build your own blocks with great customizability through props and global theming.
44
- image: /images/component-code.png
41
+ image: component-code.png
45
42
  reverse: odd
46
43
  buttons:
47
44
  - href: /base/badge
48
45
  icon: code
49
46
  text: View components
50
47
 
51
- cta:
52
- _bookshop_name: Cta
48
+ - component: Cta
53
49
  size: lg
54
50
  variant: primary
55
51
  heading: Build content websites in a fraction of time
@@ -0,0 +1,14 @@
1
+ ---
2
+ presets: [docs]
3
+
4
+ title: Layout
5
+ ---
6
+
7
+ import Layout from 'fulldev-ui/layouts/Layout.astro?raw'
8
+ import { Code } from 'astro:components'
9
+
10
+ # Layout
11
+
12
+ The Layout component is used to wrap the content of a page. It provides a structured template for your website.
13
+
14
+ <Code code={Layout} lang="astro" />
@@ -0,0 +1,14 @@
1
+ ---
2
+ presets: [docs]
3
+
4
+ title: DocsLayout
5
+ ---
6
+
7
+ import Layout from 'fulldev-ui/layouts/DocsLayout.astro?raw'
8
+ import { Code } from 'astro:components'
9
+
10
+ # DocsLayout
11
+
12
+ The DocsLayout component is used to wrap the content of a page in a sidebar and a main content area and table of contents.
13
+
14
+ <Code code={Layout} lang="astro" />
@@ -0,0 +1,75 @@
1
+ ---
2
+ presets: [docs]
3
+ title: Components
4
+ ---
5
+
6
+ # Components
7
+
8
+ Fulldev UI offers a collection of components that are styled with regular CSS, have cascading styles, and are easy to customize.
9
+
10
+ ## Usage
11
+
12
+ To use a component, you need to import it from the `fulldev-ui` package.
13
+
14
+ ```astro
15
+ ---
16
+ import Button from 'fulldev-ui/components/Button.astro'
17
+ ---
18
+
19
+ <Button text="Click me" />
20
+ ```
21
+
22
+ ```astro
23
+ ---
24
+ import Hero from 'fulldev-ui/blocks/Hero.astro'
25
+ ---
26
+
27
+ <Hero text="Props here" />
28
+ ```
29
+
30
+ ```astro
31
+ ---
32
+ import Hero from 'fulldev-ui/blocks/Hero.astro'
33
+ import Layout from 'fulldev-ui/layouts/Layout.astro'
34
+ ---
35
+
36
+ <Layout>
37
+ <Hero />
38
+ </Layout>
39
+ ```
40
+
41
+ ## Slots
42
+
43
+ Even though we recommend using props to pass content into components, you can also use slots to inject content into a component.
44
+
45
+ ```astro live
46
+ ---
47
+ import Button from 'fulldev-ui/components/Button.astro'
48
+ ---
49
+
50
+ {/* Slots example */}
51
+ <Button>Click me</Button>
52
+
53
+ {/* Props example */}
54
+ <Button text="Click me" />
55
+ ```
56
+
57
+ ## Rendering
58
+
59
+ If no content passed to a component, it will NOT render anything. unless you pass an `if` prop.
60
+
61
+ ```astro live
62
+ ---
63
+ import Button from 'fulldev-ui/components/Button.astro'
64
+ ---
65
+
66
+ {/* This will not render anything */}
67
+ <Button />
68
+
69
+ {/* This will render a button */}
70
+ <Button if={true} />
71
+ ```
72
+
73
+ ## Overriding Components
74
+
75
+ You can override components by creating a new component with the same name as one from the library in the **src/components** directory and adding your custom code. This also works for blocks and layouts.
@@ -0,0 +1,139 @@
1
+ ---
2
+ presets: [docs]
3
+ title: Content Collections
4
+ ---
5
+
6
+ import Link from 'fulldev-ui/components/Link.astro'
7
+
8
+ # Content Collections
9
+
10
+ We utilize <Link href="https://docs.astro.build/docs/guides/content-collections/">Astro's Content Layer</Link> to create entire websites using just content files and our components.
11
+
12
+ ## Starter Template
13
+
14
+ This is the recommended way to get started with our content layer integration. We've created a <Link href="https://github.com/fulldotdev/starter/tree/main">starter template</Link> with examples of everything you need to get started.
15
+
16
+ ```bash
17
+ pnpm create astro@latest -- --template fulldotdev/starter
18
+ ```
19
+
20
+ ## Manual Setup
21
+
22
+ To get started with the manual setup, you need to install the <Link href="/overview/installation/">integration</Link> and add `injectRoutes: true` to your `astro.config.ts` file, see <Link href="#type-safe-frontmatter">frontmatter</Link> below for more information on how this generates a site using content files.
23
+
24
+ ```ts
25
+ import { defineConfig } from 'astro/config'
26
+ import fulldev from 'fulldev-ui/integration'
27
+
28
+ // https://astro.build/config
29
+ export default defineConfig({
30
+ integrations: [
31
+ fulldev({
32
+ // other options
33
+ injectRoutes: true,
34
+ }),
35
+ ],
36
+ })
37
+ ```
38
+
39
+ ## Type-safe frontmatter
40
+
41
+ Each file has a few frontmatter objects that are important to know about. Seo has priority over title and description, however title and description is used in multiple places like a card.
42
+
43
+ ```yml
44
+ ---
45
+ preset: [docs] # Applies the configuration from src/content/presets/docs.yml
46
+ component: DocsLayout
47
+
48
+ seo:
49
+ title: Page Title
50
+ description: This is my page description
51
+ image: /image.jpg # Open Graph Image
52
+
53
+ # Information on the page, this is used in places like card, sidebar, etc.
54
+ title: Page Title
55
+ description: This is my page description
56
+
57
+ sections: # Here you generate the page by adding a component and passing props
58
+ - component: Hero
59
+ heading: Page Title
60
+ text: This is my page description
61
+ buttons:
62
+ - text: Button
63
+ color: brand
64
+ href: /
65
+ - text: Button
66
+ href: /
67
+ ---
68
+ # This is the prose, you can use markdown here
69
+ ```
70
+
71
+ For all objects avaliable in the Content Layer, see the <Link href="https://ui.full.dev/schemas/page/">schemas</Link>.
72
+
73
+ ### Presets
74
+
75
+ Presets are configuration files that can be used to set the default values for a page. They are located in the **src/content/presets** directory and you can use them by adding the `preset` property to the frontmatter of a page or add a `basePreset` to the integration setup in the `astro.config.ts` file.
76
+
77
+ ```ts
78
+ import { defineConfig } from 'astro/config'
79
+ import fulldev from 'fulldev-ui/integration'
80
+
81
+ // https://astro.build/config
82
+ export default defineConfig({
83
+ integrations: [
84
+ fulldev({
85
+ // other options
86
+ basePreset: 'base', // Applies the configuration from src/content/presets/base.yml to every page
87
+ }),
88
+ ],
89
+ })
90
+ ```
91
+
92
+ ## i18n
93
+
94
+ Getting started with i18n is easy, you can easily add additional languages by creating a new folder named after a language code in the **content/pages** directory and adding your content files in the new language.
95
+
96
+ These pages are just as static as the others however you can merge them with the default language by adding the `i18n` key to the frontmatter.
97
+
98
+ By merging pages you only need to specify the content that is different for the new language. Things like images do not need to be repeated in these new files. See example:
99
+
100
+ content/pages/index.md:
101
+
102
+ ```md
103
+ ---
104
+ sections:
105
+ - component: Hero
106
+ image: /image.webp
107
+ heading: Page Title
108
+ text: This is my page description
109
+ ---
110
+ ```
111
+
112
+ content/pages/nl/index.md:
113
+
114
+ ```md
115
+ ---
116
+ i18n: index
117
+
118
+ sections:
119
+ - component: Hero
120
+ heading: Page Title
121
+ text: This is my page description
122
+ ---
123
+ ```
124
+
125
+ These return the same results
126
+
127
+ ### Example structure
128
+
129
+ ```bash
130
+ .
131
+ ├── src/
132
+ │ ├── content/
133
+ │ │ ├── pages/
134
+ │ │ │ ├── index.md
135
+ │ │ │ ├── nl/
136
+ │ │ │ │ └── index.md
137
+ │ │ │ └── de/
138
+ │ │ │ │ └── index.md
139
+ ```
@@ -1,6 +1,6 @@
1
1
  ---
2
- _layout: PostLayout
3
- settings: components
2
+ presets: [docs]
3
+ title: Frameworks
4
4
  ---
5
5
 
6
6
  # Frameworks
@@ -22,8 +22,8 @@ This means you can apply Fulldev UI styles to any framework component as follows
22
22
  import Button from 'fulldev-ui/components/Button.astro'
23
23
  ---
24
24
 
25
- <a class="button variant-primary contrast radius-auto"> Button </a>
26
- <Button contrast> Button </Button>
25
+ <a class="button variant-primary contrast">Button</a>
26
+ <Button contrast>Button</Button>
27
27
  ```
28
28
 
29
29
  ## CSS frameworks
@@ -1,13 +1,27 @@
1
1
  ---
2
- _layout: PostLayout
3
- settings: components
2
+ presets: [docs]
3
+ title: Installation
4
4
  ---
5
5
 
6
6
  import Link from 'fulldev-ui/components/Link.astro'
7
7
 
8
8
  # Installation
9
9
 
10
- Install fulldev-ui with your favorite package manager and you are ready to go. To get started with the integration see the <Link href="/overview/integration">integration page.</Link>
10
+ You can add fulldev-ui to your project, or use the starter template.
11
+
12
+ ## Add to existing project
13
+
14
+ ### Automatic setup
15
+
16
+ Use the astro add command to automatically install the dependencies and add the integration.
17
+
18
+ ```bash
19
+ npx astro add fulldev-ui
20
+ ```
21
+
22
+ ## Manual installation
23
+
24
+ Install fulldev-ui with your favorite package manager.
11
25
 
12
26
  ```bash
13
27
  pnpm i fulldev-ui
@@ -18,3 +32,22 @@ yarn add fulldev-ui
18
32
  # or
19
33
  npm i fulldev-ui
20
34
  ```
35
+
36
+ Then setup the integration in your `astro.config.ts` file.
37
+
38
+ ```ts
39
+ import { defineConfig } from 'astro/config'
40
+ import fulldev from 'fulldev-ui/integration'
41
+
42
+ export default defineConfig({
43
+ integrations: [fulldev()],
44
+ })
45
+ ```
46
+
47
+ ## Using the starter template
48
+
49
+ The easiest way to get started is to use the [starter template](https://github.com/fulldotdev/starter).
50
+
51
+ ```bash
52
+ pnpm create astro@latest -- --template fulldotdev/starter
53
+ ```