fulldev-ui 0.5.0-beta.9 → 0.6.0-beta-4

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 (347) hide show
  1. package/.env.example +3 -0
  2. package/.prettierrc.yaml +1 -0
  3. package/astro.config.ts +10 -34
  4. package/cloudcannon.config.yml +217 -0
  5. package/package.json +25 -29
  6. package/pnpm-lock.yaml +943 -2157
  7. package/public/favicon/android-chrome-192x192.png +0 -0
  8. package/public/favicon/android-chrome-512x512.png +0 -0
  9. package/public/favicon/apple-touch-icon.png +0 -0
  10. package/public/favicon/manifest.webmanifest +7 -3
  11. package/public/favicon/mstile-150x150.png +0 -0
  12. package/src/blocks/Banner.astro +14 -29
  13. package/src/blocks/Contact1.astro +92 -0
  14. package/src/blocks/Cta1.astro +72 -0
  15. package/src/blocks/Feature1.astro +67 -0
  16. package/src/blocks/Features1.astro +75 -0
  17. package/src/blocks/Footer.astro +100 -3
  18. package/src/blocks/Header.astro +192 -3
  19. package/src/blocks/Hero1.astro +74 -0
  20. package/src/blocks/Job1.astro +97 -0
  21. package/src/blocks/Products1.astro +90 -0
  22. package/src/blocks/Reviews1.astro +75 -0
  23. package/src/blocks/_Hero.astro +245 -0
  24. package/src/components/Avatar.astro +28 -9
  25. package/src/components/Avatars.astro +36 -0
  26. package/src/components/Badge.astro +63 -24
  27. package/src/components/Badges.astro +16 -23
  28. package/src/components/Banner.astro +26 -0
  29. package/src/components/Block.astro +49 -0
  30. package/src/components/Blocks.astro +26 -0
  31. package/src/components/Breadcrumb.astro +58 -0
  32. package/src/components/Button.astro +49 -119
  33. package/src/components/Buttons.astro +23 -13
  34. package/src/components/Card.astro +9 -137
  35. package/src/components/Cards.astro +33 -35
  36. package/src/components/Carousel.astro +106 -0
  37. package/src/components/Cart.astro +18 -14
  38. package/src/components/CartAdd.svelte +76 -0
  39. package/src/components/CartCheckout.svelte +58 -0
  40. package/src/components/CartForm.svelte +130 -0
  41. package/src/components/CartList.svelte +88 -0
  42. package/src/components/CartQuantity.svelte +81 -0
  43. package/src/components/CartSummary.astro +16 -105
  44. package/src/components/CartTotal.svelte +15 -0
  45. package/src/components/Channel.astro +44 -35
  46. package/src/components/Channels.astro +20 -6
  47. package/src/components/Checkbox.astro +52 -27
  48. package/src/components/Code.astro +52 -0
  49. package/src/components/Container.astro +25 -0
  50. package/src/components/Dialog.astro +3 -2
  51. package/src/components/Drawer.astro +55 -146
  52. package/src/components/DrawerOld.astro +143 -0
  53. package/src/components/Element.astro +18 -8
  54. package/src/components/Form.astro +16 -13
  55. package/src/components/Gallery.astro +174 -0
  56. package/src/components/Head.astro +62 -25
  57. package/src/components/Header.astro +10 -115
  58. package/src/components/Heading.astro +51 -44
  59. package/src/components/Icon.astro +29 -33
  60. package/src/components/Image.astro +18 -68
  61. package/src/components/Input.astro +65 -51
  62. package/src/components/Label.astro +20 -15
  63. package/src/components/Layout.astro +35 -0
  64. package/src/components/Link.astro +51 -32
  65. package/src/components/Links.astro +42 -0
  66. package/src/components/List.astro +41 -16
  67. package/src/components/LocaleSwitcher.astro +2 -2
  68. package/src/components/Logo.astro +56 -0
  69. package/src/components/Menu.astro +21 -17
  70. package/src/components/Navigation.astro +39 -0
  71. package/src/components/Panel.astro +25 -0
  72. package/src/components/Paragraph.astro +55 -0
  73. package/src/components/Price.astro +4 -4
  74. package/src/components/Prose.astro +78 -0
  75. package/src/components/Rating.astro +23 -62
  76. package/src/components/Search.astro +107 -43
  77. package/src/components/Section.astro +13 -242
  78. package/src/components/Select.astro +45 -55
  79. package/src/components/Sidebar.astro +53 -76
  80. package/src/components/Social.astro +11 -9
  81. package/src/components/Socials.astro +9 -5
  82. package/src/components/Subheader.astro +59 -0
  83. package/src/components/Switch.astro +72 -29
  84. package/src/components/Table.astro +1 -1
  85. package/src/components/Tagline.astro +32 -14
  86. package/src/components/Textarea.astro +40 -50
  87. package/src/components/Themer.astro +76 -0
  88. package/src/components/Toc.astro +32 -31
  89. package/src/components/_Author.astro +90 -0
  90. package/src/components/_Header.astro +129 -0
  91. package/src/components/_Image.astro +79 -0
  92. package/src/components/_Prose copy.astro +172 -0
  93. package/src/components/_Sidebar copy.astro +87 -0
  94. package/src/components/docs/PropsTable.astro +38 -264
  95. package/src/components/experimental/Window.astro +5 -57
  96. package/src/content/config.ts +4 -10
  97. package/src/content/{presets → layouts}/base.yml +52 -73
  98. package/src/content/pages/blocks/_categories.mdx +0 -2
  99. package/src/content/pages/blocks/_footer.mdx +0 -2
  100. package/src/content/pages/blocks/_header.mdx +0 -4
  101. package/src/content/pages/blocks/_jobs.mdx +0 -2
  102. package/src/content/pages/blocks/_prices.mdx +0 -2
  103. package/src/content/pages/blocks/_product.mdx +0 -2
  104. package/src/content/pages/blocks/_products.mdx +0 -2
  105. package/src/content/pages/blocks/_stats.mdx +0 -2
  106. package/src/content/pages/blocks/banner.mdx +0 -2
  107. package/src/content/pages/blocks/colleagues.mdx +0 -3
  108. package/src/content/pages/blocks/contact.mdx +0 -2
  109. package/src/content/pages/blocks/content.mdx +0 -6
  110. package/src/content/pages/blocks/cta.mdx +0 -10
  111. package/src/content/pages/blocks/features.mdx +0 -5
  112. package/src/content/pages/blocks/hero.mdx +0 -5
  113. package/src/content/pages/blocks/intro.mdx +0 -5
  114. package/src/content/pages/blocks/posts.mdx +0 -2
  115. package/src/content/pages/blocks/reviews.mdx +0 -3
  116. package/src/content/pages/categories/category.md +7 -0
  117. package/src/content/pages/docs/_internationalization.mdx +55 -0
  118. package/src/content/pages/docs/_using-blocks.mdx +33 -0
  119. package/src/content/pages/docs/_using-presets.mdx +49 -0
  120. package/src/content/pages/docs/blocks.mdx +33 -0
  121. package/src/content/pages/docs/collections/images.mdx +102 -0
  122. package/src/content/pages/docs/collections/pages.mdx +119 -0
  123. package/src/content/pages/docs/collections/presets.mdx +60 -0
  124. package/src/content/pages/docs/collections.mdx +42 -0
  125. package/src/content/pages/{base/card.mdx → docs/components/_card.mdx} +2 -5
  126. package/src/content/pages/{base → docs/components}/_dialog.mdx +1 -2
  127. package/src/content/pages/{base → docs/components}/_drawer.mdx +1 -2
  128. package/src/content/pages/{base → docs/components}/_localeswitcher.mdx +1 -2
  129. package/src/content/pages/{base → docs/components}/_switch.mdx +3 -4
  130. package/src/content/pages/{typography → docs/components}/_tagline.mdx +3 -4
  131. package/src/content/pages/docs/components/_toggle.mdx +30 -0
  132. package/src/content/pages/docs/components/avatar.mdx +34 -0
  133. package/src/content/pages/{base → docs/components}/badge.mdx +28 -10
  134. package/src/content/pages/docs/components/badges.mdx +46 -0
  135. package/src/content/pages/docs/components/button.mdx +78 -0
  136. package/src/content/pages/docs/components/buttons.mdx +51 -0
  137. package/src/content/pages/docs/components/channel.mdx +91 -0
  138. package/src/content/pages/docs/components/channels.mdx +89 -0
  139. package/src/content/pages/docs/components/checkbox.mdx +34 -0
  140. package/src/content/pages/docs/components/code.mdx +45 -0
  141. package/src/content/pages/docs/components/heading.mdx +59 -0
  142. package/src/content/pages/docs/components/icon.mdx +48 -0
  143. package/src/content/pages/docs/components/image.mdx +25 -0
  144. package/src/content/pages/docs/components/input.mdx +40 -0
  145. package/src/content/pages/{typography → docs/components}/label.mdx +9 -6
  146. package/src/content/pages/{typography → docs/components}/link.mdx +24 -10
  147. package/src/content/pages/docs/components/links.mdx +99 -0
  148. package/src/content/pages/docs/components/list.mdx +44 -0
  149. package/src/content/pages/docs/components/logo.mdx +36 -0
  150. package/src/content/pages/docs/components/menu.mdx +89 -0
  151. package/src/content/pages/docs/components/prose.mdx +36 -0
  152. package/src/content/pages/docs/components/rating.mdx +76 -0
  153. package/src/content/pages/{base → docs/components}/section.mdx +2 -3
  154. package/src/content/pages/{base → docs/components}/select.mdx +1 -11
  155. package/src/content/pages/docs/components/social.mdx +94 -0
  156. package/src/content/pages/docs/components/socials.mdx +102 -0
  157. package/src/content/pages/docs/components/switch.mdx +34 -0
  158. package/src/content/pages/{base → docs/components}/table.mdx +1 -4
  159. package/src/content/pages/docs/components/tagline.mdx +46 -0
  160. package/src/content/pages/docs/components/text.mdx +48 -0
  161. package/src/content/pages/docs/components/textarea.mdx +34 -0
  162. package/src/content/pages/docs/components/themer.mdx +49 -0
  163. package/src/content/pages/docs/components.mdx +37 -0
  164. package/src/content/pages/docs/customization.mdx +151 -0
  165. package/src/content/pages/docs/frameworks.mdx +29 -0
  166. package/src/content/pages/docs/generating-pages.mdx +129 -0
  167. package/src/content/pages/docs/index.mdx +20 -0
  168. package/src/content/pages/docs/installation.mdx +50 -0
  169. package/src/content/pages/docs/layouts.mdx +33 -0
  170. package/src/content/pages/index.mdx +25 -33
  171. package/src/content/pages/posts/post.md +7 -0
  172. package/src/content/pages/products/product.md +20 -0
  173. package/src/content/pages/showcase/anti-slip-profiles.md +2 -2
  174. package/src/content/pages/showcase/fulldev-ui.md +1 -1
  175. package/src/content/pages/showcase/lavis-detailing.md +1 -1
  176. package/src/content/pages/showcase/leren-trainingsacteren.md +1 -1
  177. package/src/content/pages/showcase/miele-witgoedcenter-amsterdam.md +1 -1
  178. package/src/content/pages/showcase/sloepverhuur-bolsward.md +1 -1
  179. package/src/content/pages/showcase/stark-vulcanising-products.md +1 -1
  180. package/src/content/pages/showcase/the-gym-haren.md +1 -1
  181. package/src/content/pages/showcase/van-dillen-antieke-bouwmaterialen.md +1 -1
  182. package/src/content/pages/showcase.mdx +4 -3
  183. package/src/css/color.css +0 -10
  184. package/src/css/custom.css +10 -12
  185. package/src/css/size.css +2 -11
  186. package/src/css/theme.css +95 -0
  187. package/src/env.d.ts +1 -0
  188. package/src/images/favicon/android-chrome-192x192.png +0 -0
  189. package/src/images/favicon/android-chrome-512x512.png +0 -0
  190. package/src/images/favicon/apple-touch-icon.png +0 -0
  191. package/src/images/favicon/browserconfig.xml +9 -0
  192. package/src/images/favicon/favicon-16x16.png +0 -0
  193. package/src/images/favicon/favicon-32x32.png +0 -0
  194. package/src/images/favicon/favicon-48x48.png +0 -0
  195. package/src/images/favicon/favicon.ico +0 -0
  196. package/src/images/favicon/favicon.svg +16 -0
  197. package/src/images/favicon/manifest.webmanifest +30 -0
  198. package/src/images/favicon/mstile-150x150.png +0 -0
  199. package/src/images/favicon/safari-pinned-tab.svg +16 -0
  200. package/src/images/favicon/yandex-browser-50x50.png +0 -0
  201. package/src/images/favicon/yandex-browser-manifest.json +9 -0
  202. package/src/images/logo-1.svg +11 -0
  203. package/src/images/logo-2.svg +13 -0
  204. package/src/images/logo-basic.svg +10 -0
  205. package/src/images/logo-simple.svg +13 -0
  206. package/src/images/logo-thin.svg +15 -0
  207. package/src/images/logo.svg +14 -0
  208. package/src/images/logofat.svg +11 -0
  209. package/src/integration/index.ts +110 -140
  210. package/src/layouts/Category.astro +131 -0
  211. package/src/layouts/Doc.astro +72 -0
  212. package/src/layouts/Job.astro +64 -0
  213. package/src/layouts/Page.astro +30 -0
  214. package/src/layouts/Post.astro +20 -0
  215. package/src/layouts/Product.astro +110 -0
  216. package/src/pages/[...page].astro +29 -24
  217. package/src/pages/test.astro +37 -0
  218. package/src/schemas/blocks/banner.ts +10 -0
  219. package/src/schemas/blocks/categories.ts +14 -0
  220. package/src/schemas/blocks/contact.ts +18 -0
  221. package/src/schemas/blocks/cta.ts +19 -0
  222. package/src/schemas/blocks/feature.ts +18 -0
  223. package/src/schemas/blocks/features.ts +24 -0
  224. package/src/schemas/blocks/hero.ts +20 -0
  225. package/src/schemas/blocks/intro.ts +16 -0
  226. package/src/schemas/blocks/products.ts +14 -0
  227. package/src/schemas/blocks/reviews.ts +24 -0
  228. package/src/schemas/components/avatar.ts +4 -1
  229. package/src/schemas/components/badge.ts +16 -11
  230. package/src/schemas/components/block.ts +22 -0
  231. package/src/schemas/components/button.ts +17 -14
  232. package/src/schemas/components/channel.ts +15 -9
  233. package/src/schemas/components/footer.ts +15 -21
  234. package/src/schemas/components/head.ts +17 -0
  235. package/src/schemas/components/header.ts +19 -7
  236. package/src/schemas/components/heading.ts +7 -1
  237. package/src/schemas/components/icon.ts +7 -1
  238. package/src/schemas/components/image.ts +38 -16
  239. package/src/schemas/components/link.ts +17 -0
  240. package/src/schemas/components/logo.ts +12 -2
  241. package/src/schemas/components/menu.ts +11 -11
  242. package/src/schemas/components/navigation.ts +10 -0
  243. package/src/schemas/components/paragraph.ts +9 -0
  244. package/src/schemas/components/price.ts +7 -1
  245. package/src/schemas/components/rating.ts +8 -13
  246. package/src/schemas/components/sidebar.ts +14 -11
  247. package/src/schemas/components/social.ts +16 -1
  248. package/src/schemas/components/tagline.ts +7 -1
  249. package/src/schemas/imageSchema.ts +30 -1
  250. package/src/schemas/layoutSchema.ts +22 -0
  251. package/src/schemas/pageSchema.ts +26 -96
  252. package/src/stores/cart.svelte.ts +79 -0
  253. package/src/stores/cart.ts +59 -6
  254. package/src/types/global-props.ts +0 -9
  255. package/src/types/{virtual-modules.d.ts → virtual.d.ts} +1 -1
  256. package/src/utils/cart.ts +1 -10
  257. package/src/utils/formatEntries.ts +8 -0
  258. package/src/utils/formatEntry.ts +29 -0
  259. package/src/utils/getDeepReferenceChildren.ts +14 -0
  260. package/src/utils/getHref.ts +6 -0
  261. package/src/utils/getReferenceChildren.ts +1 -1
  262. package/src/utils/setTheme.ts +18 -0
  263. package/src/utils/slugify.ts +6 -0
  264. package/svelte.config.js +5 -0
  265. package/tailwind.config.ts +67 -0
  266. package/tsconfig.json +1 -3
  267. package/src/blocks/Article.astro +0 -40
  268. package/src/blocks/Categories.astro +0 -12
  269. package/src/blocks/Colleagues.astro +0 -13
  270. package/src/blocks/Contact.astro +0 -116
  271. package/src/blocks/Content.astro +0 -12
  272. package/src/blocks/Cta.astro +0 -15
  273. package/src/blocks/Excerpt.astro +0 -14
  274. package/src/blocks/Features.astro +0 -11
  275. package/src/blocks/Hero.astro +0 -15
  276. package/src/blocks/Intro.astro +0 -23
  277. package/src/blocks/Jobs.astro +0 -12
  278. package/src/blocks/Posts.astro +0 -11
  279. package/src/blocks/Prices.astro +0 -24
  280. package/src/blocks/Product.astro +0 -110
  281. package/src/blocks/Products.astro +0 -11
  282. package/src/blocks/Reviews.astro +0 -13
  283. package/src/components/CartForm.astro +0 -121
  284. package/src/components/CartList.astro +0 -134
  285. package/src/components/Footer.astro +0 -193
  286. package/src/components/Text.astro +0 -43
  287. package/src/components/ThemeSelect.astro +0 -41
  288. package/src/components/Writeup.astro +0 -90
  289. package/src/components/experimental/Form.astro +0 -53
  290. package/src/components/experimental/Gallery.astro +0 -104
  291. package/src/components/experimental/Logo.astro +0 -38
  292. package/src/components/experimental/Prose.astro +0 -192
  293. package/src/components/sections.astro +0 -28
  294. package/src/content/pages/base/button.mdx +0 -60
  295. package/src/content/pages/base/checkbox.mdx +0 -42
  296. package/src/content/pages/base/icon.mdx +0 -55
  297. package/src/content/pages/base/image.mdx +0 -42
  298. package/src/content/pages/base/input.mdx +0 -56
  299. package/src/content/pages/base/rating.mdx +0 -55
  300. package/src/content/pages/base/textarea.mdx +0 -58
  301. package/src/content/pages/base/theme-select.mdx +0 -15
  302. package/src/content/pages/layouts/_layout.mdx +0 -14
  303. package/src/content/pages/layouts/docslayout.mdx +0 -14
  304. package/src/content/pages/overview/components.mdx +0 -75
  305. package/src/content/pages/overview/content-collections.mdx +0 -139
  306. package/src/content/pages/overview/frameworks.mdx +0 -198
  307. package/src/content/pages/overview/installation.mdx +0 -53
  308. package/src/content/pages/overview/introduction.mdx +0 -30
  309. package/src/content/pages/overview/theming.mdx +0 -69
  310. package/src/content/pages/schemas/page.mdx +0 -17
  311. package/src/content/pages/schemas/preset.mdx +0 -9
  312. package/src/content/pages/showcase/record.md +0 -3
  313. package/src/content/pages/typography/heading.mdx +0 -73
  314. package/src/content/pages/typography/list.mdx +0 -51
  315. package/src/content/pages/typography/text.mdx +0 -61
  316. package/src/content/presets/blocks.yml +0 -1
  317. package/src/content/presets/docs.yml +0 -6
  318. package/src/css/space.css +0 -77
  319. package/src/css/styles.css +0 -0
  320. package/src/images/avatar-1.yml +0 -1
  321. package/src/integration/generate-colors.ts +0 -639
  322. package/src/integration/tailwind-plugin.ts +0 -80
  323. package/src/integration/unocss-preset.ts +0 -84
  324. package/src/layouts/BlockLayout.astro +0 -19
  325. package/src/layouts/ContactLayout.astro +0 -21
  326. package/src/layouts/DocsLayout.astro +0 -73
  327. package/src/layouts/Layout.astro +0 -163
  328. package/src/layouts/OverviewLayout.astro +0 -42
  329. package/src/layouts/PostLayout.astro +0 -21
  330. package/src/layouts/ProductLayout.astro +0 -21
  331. package/src/loaders/imageLoader.ts +0 -26
  332. package/src/schemas/components/avatars.ts +0 -4
  333. package/src/schemas/components/buttons.ts +0 -4
  334. package/src/schemas/components/card.ts +0 -25
  335. package/src/schemas/components/cards.ts +0 -4
  336. package/src/schemas/components/channels.ts +0 -4
  337. package/src/schemas/components/images.ts +0 -4
  338. package/src/schemas/components/list.ts +0 -3
  339. package/src/schemas/components/section.ts +0 -15
  340. package/src/schemas/components/sections.ts +0 -3
  341. package/src/schemas/components/socials.ts +0 -4
  342. package/src/schemas/components/text.ts +0 -3
  343. package/src/schemas/components/toc.ts +0 -3
  344. package/src/schemas/components/writeup.ts +0 -20
  345. package/src/schemas/presetSchema.ts +0 -3
  346. package/src/schemas/utils/navigation.ts +0 -8
  347. package/src/schemas/utils/parents.ts +0 -3
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs, blocks]
3
-
4
2
  title: Content
5
3
  ---
6
4
 
@@ -10,7 +8,6 @@ import Content from 'fulldev-ui/blocks/Content.astro'
10
8
  ---
11
9
 
12
10
  <Content
13
- color="brand"
14
11
  label="Lorem ipsum"
15
12
  heading="Lorem ipsum dolor sit"
16
13
  text="Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptatibus quia, nulla! Maiores et perferendis eaque, exercitationem praesentium nihil. Lorem ipsum dolor sit amet consectetur adipisicing elit. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Donec rutrum congue leo eget malesuada."
@@ -25,7 +22,6 @@ import Content from 'fulldev-ui/blocks/Content.astro'
25
22
  ---
26
23
 
27
24
  <Content
28
- color="brand"
29
25
  size="lg"
30
26
  label="Lorem ipsum"
31
27
  heading="Lorem ipsum dolor sit"
@@ -41,7 +37,6 @@ import Content from 'fulldev-ui/blocks/Content.astro'
41
37
  ---
42
38
 
43
39
  <Content
44
- color="brand"
45
40
  size="sm"
46
41
  label="Lorem ipsum"
47
42
  heading="Lorem ipsum dolor sit"
@@ -77,7 +72,6 @@ import Content from 'fulldev-ui/blocks/Content.astro'
77
72
  text="Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptatibus quia, nulla! Maiores et perferendis eaque, exercitationem praesentium nihil. Lorem ipsum dolor sit amet consectetur adipisicing elit. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Donec rutrum congue leo eget malesuada."
78
73
  buttons={[{ text: 'Lorem ipsum', href: '' }]}
79
74
  image="/images/placeholder-landscape.webp"
80
- align="start"
81
75
  structure="column"
82
76
  />
83
77
  ```
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs, blocks]
3
-
4
2
  title: CTA
5
3
  ---
6
4
 
@@ -47,7 +45,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
47
45
  { text: 'Lorem ipsum', href: '' },
48
46
  { text: 'Lorem ipsum', href: '' },
49
47
  ]}
50
- color="brand"
51
48
  />
52
49
  ```
53
50
 
@@ -64,7 +61,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
64
61
  { text: 'Lorem ipsum', href: '', contrast: true },
65
62
  { text: 'Lorem ipsum', href: '', contrast: true },
66
63
  ]}
67
- theme="light"
68
64
  />
69
65
  ```
70
66
 
@@ -81,7 +77,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
81
77
  { text: 'Lorem ipsum', href: '', color: 'brand' },
82
78
  { text: 'Lorem ipsum', href: '', color: 'brand' },
83
79
  ]}
84
- theme="light"
85
80
  />
86
81
  ```
87
82
 
@@ -98,8 +93,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
98
93
  { text: 'Lorem ipsum', href: '' },
99
94
  { text: 'Lorem ipsum', href: '' },
100
95
  ]}
101
- theme="light"
102
- color="brand"
103
96
  />
104
97
  ```
105
98
 
@@ -145,7 +138,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
145
138
  { text: 'Lorem ipsum', href: '' },
146
139
  ]}
147
140
  structure="spread"
148
- color="brand"
149
141
  />
150
142
  ```
151
143
 
@@ -162,8 +154,6 @@ import Cta from 'fulldev-ui/blocks/Cta.astro'
162
154
  { text: 'Lorem ipsum', href: '' },
163
155
  ]}
164
156
  position="background"
165
- theme="dark"
166
- align="center"
167
157
  image="/images/placeholder-landscape-dark.png"
168
158
  />
169
159
  ```
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs, blocks]
3
-
4
2
  title: Features
5
3
  ---
6
4
 
@@ -10,7 +8,6 @@ import Features from 'fulldev-ui/blocks/Features.astro'
10
8
  ---
11
9
 
12
10
  <Features
13
- color="brand"
14
11
  heading="Lorem ipsum dolor sit"
15
12
  text="Lorem ipsum dolor sit amet consectetur adipisicing elit."
16
13
  cards={[
@@ -42,7 +39,6 @@ import Features from 'fulldev-ui/blocks/Features.astro'
42
39
  ---
43
40
 
44
41
  <Features
45
- color="brand"
46
42
  heading="Lorem ipsum dolor sit"
47
43
  text="Lorem ipsum dolor sit amet consectetur adipisicing elit."
48
44
  cards={[
@@ -71,7 +67,6 @@ import Features from 'fulldev-ui/blocks/Features.astro'
71
67
  ---
72
68
 
73
69
  <Features
74
- color="brand"
75
70
  variant="primary"
76
71
  heading="Lorem ipsum dolor sit"
77
72
  text="Lorem ipsum dolor sit amet consectetur adipisicing elit."
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs, blocks]
3
-
4
2
  title: Hero
5
3
  ---
6
4
 
@@ -91,9 +89,6 @@ import Hero from 'fulldev-ui/blocks/Hero.astro'
91
89
  ]}
92
90
  image="/images/placeholder-landscape-dark.png"
93
91
  position="background"
94
- align="center"
95
- theme="dark"
96
- justify="center"
97
92
  style={{ minHeight: '100vh', justifyContent: 'center' }}
98
93
  />
99
94
  ```
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs, blocks]
3
-
4
2
  title: Intro
5
3
  ---
6
4
 
@@ -26,7 +24,6 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
26
24
 
27
25
  <Intro
28
26
  heading="Lorem ipsum dolor sit amet"
29
- align="center"
30
27
  text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
31
28
  />
32
29
  ```
@@ -52,7 +49,6 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
52
49
  ---
53
50
 
54
51
  <Intro
55
- color="brand"
56
52
  heading="Lorem ipsum dolor sit amet"
57
53
  text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
58
54
  buttons={[
@@ -69,7 +65,6 @@ import Intro from 'fulldev-ui/blocks/Intro.astro'
69
65
 
70
66
  <Intro
71
67
  variant="primary"
72
- color="brand"
73
68
  heading="Lorem ipsum dolor sit amet"
74
69
  text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla facilisi. Nulla facilisi. Nulla facilisi. Sed do eiusmod tempor."
75
70
  buttons={[
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs, blocks]
3
-
4
2
  title: Posts
5
3
  ---
6
4
 
@@ -1,6 +1,4 @@
1
1
  ---
2
- presets: [docs, blocks]
3
-
4
2
  title: Reviews
5
3
  ---
6
4
 
@@ -161,7 +159,6 @@ import Reviews from 'fulldev-ui/blocks/Reviews.astro'
161
159
 
162
160
  <Reviews
163
161
  size="sm"
164
- align="start"
165
162
  structure="carousel"
166
163
  heading="What Our Customers Say"
167
164
  text="Discover what our satisfied customers are saying about us."
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: Category
3
+ description: Lorem ipsum dolor sit
4
+ ---
5
+
6
+
7
+
@@ -0,0 +1,55 @@
1
+ ---
2
+ _layout: doc
3
+ title: Internationalization
4
+ ---
5
+
6
+ # Internationalization (i18n)
7
+
8
+ 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.
9
+
10
+ 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.
11
+
12
+ 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:
13
+
14
+ ## Example
15
+
16
+ content/pages/index.md:
17
+
18
+ ```md
19
+ ---
20
+ sections:
21
+ - component: Hero
22
+ image: /image.webp
23
+ heading: Page Title
24
+ text: This is my page description
25
+ ---
26
+ ```
27
+
28
+ content/pages/nl/index.md:
29
+
30
+ ```md
31
+ ---
32
+ i18n: index
33
+
34
+ sections:
35
+ - component: Hero
36
+ heading: Page Title
37
+ text: This is my page description
38
+ ---
39
+ ```
40
+
41
+ These return the same results
42
+
43
+ ## Project structure
44
+
45
+ ```bash
46
+ .
47
+ ├── src/
48
+ │ ├── content/
49
+ │ │ ├── pages/
50
+ │ │ │ ├── index.md
51
+ │ │ │ ├── nl/
52
+ │ │ │ │ └── index.md
53
+ │ │ │ └── de/
54
+ │ │ │ │ └── index.md
55
+ ```
@@ -0,0 +1,33 @@
1
+ ---
2
+ _layout: doc
3
+ title: Using Blocks
4
+ ---
5
+
6
+ import Link from 'fulldev-ui/components/Link.astro'
7
+
8
+ # Using Blocks
9
+
10
+ Blocks are astro components that can be used to create reusable content blocks. They are located in the **src/blocks** directory and you can use them by adding the `component` property to the frontmatter of a section in a page.
11
+
12
+ There are plenty of prestyled blocks included in the library, see the <Link href="/blocks/banner/">blocks examples</Link> for more information.
13
+
14
+ ```yml
15
+ ---
16
+ # Other options...
17
+
18
+ sections:
19
+ - component: Hero # The block you want to use
20
+ heading: Page Title
21
+ text: This is my page description
22
+ buttons:
23
+ - text: Button
24
+ color: brand
25
+ href: /
26
+ - text: Button
27
+ href: /
28
+ ---
29
+ ```
30
+
31
+ ## Creating a block
32
+
33
+ Beside the blocks that are included in the library you can also create your own by adding a new astro component to the **src/content/layouts** directory. You can also override the existing blocks, see the <Link href="/guides/overriding-components/">overriding components</Link> guide for more information.
@@ -0,0 +1,49 @@
1
+ ---
2
+ _layout: doc
3
+ title: Using Presets
4
+ ---
5
+
6
+ # Using Presets
7
+
8
+ 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.
9
+
10
+ Presets can be applied to pages in the frontmatter or as a base preset.
11
+
12
+ ## Creating a preset
13
+
14
+ Beside the presets that are included in the library you can also create your own by adding a new yaml file to the **src/content/presets** directory. See the [presets collection](/content-collections/presets/) for more information on what properties are available.
15
+
16
+ Currently there are 5 presets included in the library:
17
+
18
+ - `base`
19
+ - `docs`
20
+ - `blocks`
21
+
22
+ ## Setting a preset
23
+
24
+ To apply a preset to a page, you can add the `preset` property to the frontmatter of a page.
25
+
26
+ ```yml
27
+ ---
28
+ presets: [base, docs]
29
+ ---
30
+ ```
31
+
32
+ ## Setting a base preset
33
+
34
+ To apply a preset to every page, you can set a `basePreset` in the integration setup in the `astro.config.ts` file therefore the base preset will not have to be added to the frontmatter anymore.
35
+
36
+ ```ts
37
+ import { defineConfig } from 'astro/config'
38
+ import fulldev from 'fulldev-ui/integration'
39
+
40
+ // https://astro.build/config
41
+ export default defineConfig({
42
+ integrations: [
43
+ fulldev({
44
+ // other options
45
+ basePreset: 'base',
46
+ }),
47
+ ],
48
+ })
49
+ ```
@@ -0,0 +1,33 @@
1
+ ---
2
+ _layout: doc
3
+ title: Blocks
4
+ ---
5
+
6
+ import Link from 'fulldev-ui/components/Link.astro'
7
+
8
+ # Blocks
9
+
10
+ Layouts are astro components that can be used to set the default styles for a page. They are located in the **src/content/layouts** directory.
11
+
12
+ ## Creating a layout
13
+
14
+ Beside the layouts that are included in the library you can also create your own by adding a new astro component to the **src/content/layouts** directory. You can also override the existing layouts, see the <Link href="/guides/overriding-components/">overriding components</Link> guide for more information.
15
+
16
+ Currently there are 6 layouts included in the library:
17
+
18
+ - `Layout`
19
+ - `DocsLayout`
20
+ - `PostLayout`
21
+ - `ProductLayout`
22
+ - `BlockLayout`
23
+ - `ContactLayout`
24
+
25
+ ## Applying a layout
26
+
27
+ To apply a preset to a page, you can add the `component` property to the frontmatter of a page.
28
+
29
+ ```md
30
+ ---
31
+ component: DocsLayout
32
+ ---
33
+ ```
@@ -0,0 +1,102 @@
1
+ ---
2
+ _layout: doc
3
+ title: images
4
+ ---
5
+
6
+ # images
7
+
8
+ Adds type-safety and optimization for local images
9
+
10
+ ## Features
11
+
12
+ - Type-safe image references
13
+ - Integrates with Astro's `<Image />` component
14
+ - Integrates even better with fulldev-ui's `<Image />` component
15
+ - Get images using the `getEntry()` helper function
16
+ - Define alt texts globally, so you don't have to repeat yourself
17
+
18
+ ## Adding images
19
+
20
+ Image files added to the `src/images` directory will automatically be added to the images collection.
21
+
22
+ ## Global alt texts
23
+
24
+ Alt texts can be defined globally in the same folder as where the images live. You create a `[IMAGE NAME].yml` in the same folder as the images.
25
+
26
+ This way you can define alt texts once and they will be used everyhwere you use the image. An example of such a `yaml` file would be:
27
+
28
+ ```yaml
29
+ alt: 'A placeholder landscape image'
30
+ ```
31
+
32
+ ## Using images
33
+
34
+ ### Automatic (recommended)
35
+
36
+ Use fulldev-ui's included `<Image />` component to get the following benefits out of the box:
37
+
38
+ - You only have to pass the image id
39
+ - Automatic type-safety and warnings
40
+ - Automatically uses global alt text
41
+ - Automatically optimizes image file
42
+
43
+ This is also the easiest way to use images:
44
+
45
+ ```astro
46
+ ---
47
+ import Image from 'fulldev-ui/components/Image.astro'
48
+ ---
49
+
50
+ <Image id="my-image.png" />
51
+ ```
52
+
53
+ ### Manual
54
+
55
+ If you want more control over the image, you can use the `getEntry()` helper function to get an image.
56
+
57
+ ```astro
58
+ ---
59
+ import { getEntry } from 'fulldev-ui/utils'
60
+
61
+ const image = getEntry('my-image.png')
62
+ ---
63
+ ```
64
+
65
+ It will return an image in the following format:
66
+
67
+ ```ts
68
+ {
69
+ id: 'my-image.png',
70
+ src: '/src/images/my-image.png',
71
+ alt: 'Alt text provided via steps above',
72
+ width: 1930,
73
+ height: 1080,
74
+ format: 'png'
75
+ }
76
+ ```
77
+
78
+ You can pass these values directly into Astro's `<Image />` component to render the image.
79
+
80
+ ```astro
81
+ ---
82
+ import { getEntry } from 'fulldev-ui/utils'
83
+
84
+ const image = getEntry('my-image.png')
85
+ ---
86
+
87
+ <Image {...image} />
88
+ ```
89
+
90
+ But to get an optimized version, you should use an imported image instead:
91
+
92
+ ```astro
93
+ ---
94
+ import { getEntry } from 'fulldev-ui/utils'
95
+
96
+ const image = getEntry('my-image.png')
97
+ const images = import.meta.glob<{ default: ImageMetadata }>('/src/images/*')
98
+ const image = images[image.src]
99
+ ---
100
+
101
+ <Image src={image()} alt={image.alt} />
102
+ ```
@@ -0,0 +1,119 @@
1
+ ---
2
+ _layout: doc
3
+ title: pages
4
+ ---
5
+
6
+ # pages
7
+
8
+ Used for generating pages and/or cards.
9
+
10
+ ## Features
11
+
12
+ - Pages are automatically generated from `.md` and `.mdx` files in `src/content/pages`
13
+ - References to other pages, and other collections
14
+ - Setting a preset, which automatically gets merged with the current page
15
+ - Type-safe frontmatter validation with helpful error messages
16
+
17
+ ## Frontmatter reference
18
+
19
+ import PropsTable from 'fulldev-ui/components/docs/PropsTable.astro'
20
+
21
+ <PropsTable schema="pageSchema" />
22
+
23
+ ### `presets`
24
+
25
+ Type: Filepath of an entry in `src/content/presets`
26
+
27
+ ### `component`
28
+
29
+ Type: Filename of a component in `src/layouts`
30
+
31
+ ### `theme`
32
+
33
+ Type: `'light' | 'dark' | 'system' | undefined`
34
+
35
+ ### `lang`
36
+
37
+ Type: `string` | undefined
38
+
39
+ ### `title`
40
+
41
+ Type: `string` | undefined
42
+
43
+ ### `description`
44
+
45
+ Type: `string` | undefined
46
+
47
+ ### `image`
48
+
49
+ ### `images`
50
+
51
+ ### `seo`
52
+
53
+ ## Example
54
+
55
+ ```md
56
+ ---
57
+ presets: [post]
58
+ component: PostLayout
59
+
60
+ seo:
61
+ title: About us - Fulldev
62
+ description: Learn more about Fulldev
63
+
64
+ title: About us
65
+
66
+ sections:
67
+ - component: Hero
68
+ tagline: We are a team of passionate developers
69
+ heading: About us
70
+ description: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
71
+ buttons:
72
+ - text: Get in touch
73
+ href: /contact
74
+ ---
75
+
76
+ # Write your markdown here!
77
+
78
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
79
+ ```
80
+
81
+ ## Disabling page generation
82
+
83
+ ### If no content is passed
84
+
85
+ No page will be generated if no content is passed, meaning the page does not have body content or any of the following frontmatter keys:
86
+
87
+ - `component`
88
+ - `section`
89
+ - `sections`
90
+
91
+ ### On a global level
92
+
93
+ You can disable all automatic page generation by setting the `injectRoutes` option in your `astro.config.ts` file.
94
+
95
+ ```ts
96
+ // astro.config.ts
97
+ import { defineConfig } from 'astro/config'
98
+ import fulldev from 'fulldev-ui/integration'
99
+
100
+ export default defineConfig({
101
+ integrations: [
102
+ fulldev({
103
+ injectRoutes: false,
104
+ }),
105
+ ],
106
+ })
107
+ ```
108
+
109
+ ### On a per-page level
110
+
111
+ You can disable page generation per page by setting the `inject` key to `false`.
112
+
113
+ This makes sense for content you might only want to show as a card on another page, like reviews or the showcases on this website.
114
+
115
+ ```md
116
+ ---
117
+ inject: false
118
+ ---
119
+ ```
@@ -0,0 +1,60 @@
1
+ ---
2
+ _layout: doc
3
+ title: presets
4
+ ---
5
+
6
+ # presets
7
+
8
+ Default values that can be referenced by pages
9
+
10
+ ## Features
11
+
12
+ - Uses same schema as pages
13
+ - Can be referenced by pages, to automatically merge values
14
+ - Global preset can be set which will be automatically merged with all pages
15
+
16
+ ## Frontmatter reference
17
+
18
+ Presets accept the exact same properties as the [pages collection](/docs/collections/pages/), except for the `presets` key, since this could potentially create a circular reference.
19
+
20
+ ## Configuring a base preset
21
+
22
+ To configure a base preset, you can set the `basePreset` option in your `astro.config.ts` file. It accepts the filepath of a preset in `src/content/presets`.
23
+
24
+ ```ts
25
+ // astro.config.ts
26
+ import { defineConfig } from 'astro/config'
27
+ import fulldev from 'fulldev-ui/integration'
28
+
29
+ export default defineConfig({
30
+ integrations: [
31
+ fulldev({
32
+ basePreset: 'base',
33
+ }),
34
+ ],
35
+ })
36
+ ```
37
+
38
+ ## Example
39
+
40
+ ```yml
41
+ seo:
42
+ title: Default site title
43
+ description: Default site description
44
+ image: default-og-image.png
45
+
46
+ header:
47
+ logo: logo.svg
48
+ links:
49
+ - docs
50
+ - about
51
+ - showcase
52
+ - text: Custom link text
53
+ href: /custom-link-href
54
+
55
+ footer:
56
+ logo: logo.svg
57
+ socials:
58
+ - https://github.com/fulldotdev/ui
59
+ - https://discord.gg/vXZqMbadm8
60
+ ```
@@ -0,0 +1,42 @@
1
+ ---
2
+ _layout: doc
3
+ title: Collections
4
+ ---
5
+
6
+ # Collections
7
+
8
+ A general overview of how Astro's [content collections](https://docs.astro.build/en/guides/content-collections/) are used.
9
+
10
+ ## Types of content collections
11
+
12
+ 1. `pages`: Used for generating pages and/or cards.
13
+ 2. `presets`: Default values that can be referenced by pages
14
+ 3. `images`: Adds type-safety and optimization for local images
15
+
16
+ ## Setup collections
17
+
18
+ Create a content collections config file at `src/content/config.ts`, and add the following content:
19
+
20
+ ```ts
21
+ // src/content/config.ts
22
+ import { defineCollection } from 'astro:content'
23
+ import imageLoader from 'fulldev-ui/loaders/imageLoader.ts'
24
+ import imageSchema from 'fulldev-ui/schemas/imageSchema.ts'
25
+ import pageSchema from 'fulldev-ui/schemas/pageSchema.ts'
26
+ import presetSchema from 'fulldev-ui/schemas/presetSchema.ts'
27
+
28
+ export const collections = {
29
+ pages: defineCollection({
30
+ type: 'content',
31
+ schema: pageSchema,
32
+ }),
33
+ presets: defineCollection({
34
+ type: 'data',
35
+ schema: presetSchema,
36
+ }),
37
+ images: defineCollection({
38
+ loader: imageLoader,
39
+ schema: imageSchema,
40
+ }),
41
+ }
42
+ ```