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

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 (342) 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 +235 -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/Content1.astro +77 -0
  15. package/src/blocks/Content2.astro +91 -0
  16. package/src/blocks/Content3.astro +70 -0
  17. package/src/blocks/Content4.astro +72 -0
  18. package/src/blocks/Cta1.astro +58 -0
  19. package/src/blocks/Feature1.astro +61 -0
  20. package/src/blocks/Features1.astro +66 -0
  21. package/src/blocks/Footer.astro +100 -3
  22. package/src/blocks/Header.astro +192 -3
  23. package/src/blocks/Hero1.astro +60 -0
  24. package/src/blocks/Logos1.astro +55 -0
  25. package/src/blocks/Products1.astro +90 -0
  26. package/src/blocks/Reviews1.astro +75 -0
  27. package/src/blocks/_Hero.astro +245 -0
  28. package/src/components/Avatar.astro +28 -9
  29. package/src/components/Avatars.astro +36 -0
  30. package/src/components/Badge.astro +63 -24
  31. package/src/components/Badges.astro +16 -23
  32. package/src/components/Block.astro +30 -0
  33. package/src/components/Blocks.astro +26 -0
  34. package/src/components/Breadcrumb.astro +58 -0
  35. package/src/components/Button.astro +49 -119
  36. package/src/components/Buttons.astro +23 -13
  37. package/src/components/Card.astro +9 -137
  38. package/src/components/Cards.astro +33 -35
  39. package/src/components/Carousel.astro +106 -0
  40. package/src/components/Cart.astro +18 -14
  41. package/src/components/CartAdd.svelte +76 -0
  42. package/src/components/CartCheckout.svelte +58 -0
  43. package/src/components/CartForm.svelte +130 -0
  44. package/src/components/CartList.svelte +88 -0
  45. package/src/components/CartQuantity.svelte +81 -0
  46. package/src/components/CartSummary.astro +16 -105
  47. package/src/components/CartTotal.svelte +15 -0
  48. package/src/components/Channel.astro +44 -35
  49. package/src/components/Channels.astro +20 -6
  50. package/src/components/Checkbox.astro +52 -27
  51. package/src/components/Code.astro +52 -0
  52. package/src/components/Container.astro +25 -0
  53. package/src/components/Dialog.astro +3 -2
  54. package/src/components/Drawer.astro +55 -146
  55. package/src/components/DrawerOld.astro +143 -0
  56. package/src/components/Element.astro +18 -8
  57. package/src/components/Form.astro +16 -13
  58. package/src/components/Gallery.astro +174 -0
  59. package/src/components/Group.astro +25 -0
  60. package/src/components/Head.astro +62 -25
  61. package/src/components/Header.astro +10 -115
  62. package/src/components/Heading.astro +51 -44
  63. package/src/components/Icon.astro +29 -33
  64. package/src/components/Image.astro +18 -68
  65. package/src/components/Input.astro +65 -51
  66. package/src/components/Label.astro +20 -15
  67. package/src/components/Layout.astro +35 -0
  68. package/src/components/Link.astro +51 -32
  69. package/src/components/Links.astro +42 -0
  70. package/src/components/List.astro +41 -16
  71. package/src/components/LocaleSwitcher.astro +2 -2
  72. package/src/components/Logo.astro +56 -0
  73. package/src/components/Menu.astro +21 -17
  74. package/src/components/Navigation.astro +39 -0
  75. package/src/components/Panel.astro +25 -0
  76. package/src/components/Paragraph.astro +55 -0
  77. package/src/components/Price.astro +4 -4
  78. package/src/components/Prose.astro +86 -0
  79. package/src/components/Rating.astro +23 -62
  80. package/src/components/Search.astro +107 -43
  81. package/src/components/Section.astro +13 -242
  82. package/src/components/Select.astro +45 -55
  83. package/src/components/Sidebar.astro +53 -76
  84. package/src/components/Social.astro +11 -9
  85. package/src/components/Socials.astro +9 -5
  86. package/src/components/Stack.astro +25 -0
  87. package/src/components/Subheader.astro +59 -0
  88. package/src/components/Switch.astro +72 -29
  89. package/src/components/Table.astro +1 -1
  90. package/src/components/Tagline.astro +31 -13
  91. package/src/components/Textarea.astro +40 -50
  92. package/src/components/Themer.astro +76 -0
  93. package/src/components/Toc.astro +30 -37
  94. package/src/components/Writeup.astro +34 -65
  95. package/src/components/_Author.astro +90 -0
  96. package/src/components/_Header.astro +129 -0
  97. package/src/components/_Image.astro +79 -0
  98. package/src/components/_Prose copy.astro +172 -0
  99. package/src/components/_Sidebar copy.astro +87 -0
  100. package/src/components/docs/PropsTable.astro +38 -264
  101. package/src/components/experimental/Window.astro +5 -57
  102. package/src/content/config.ts +3 -10
  103. package/src/content/{presets → layouts}/base.yml +52 -73
  104. package/src/content/pages/blocks/_categories.mdx +0 -2
  105. package/src/content/pages/blocks/_footer.mdx +0 -2
  106. package/src/content/pages/blocks/_header.mdx +0 -4
  107. package/src/content/pages/blocks/_jobs.mdx +0 -2
  108. package/src/content/pages/blocks/_prices.mdx +0 -2
  109. package/src/content/pages/blocks/_product.mdx +0 -2
  110. package/src/content/pages/blocks/_products.mdx +0 -2
  111. package/src/content/pages/blocks/_stats.mdx +0 -2
  112. package/src/content/pages/blocks/banner.mdx +0 -2
  113. package/src/content/pages/blocks/colleagues.mdx +0 -3
  114. package/src/content/pages/blocks/contact.mdx +0 -2
  115. package/src/content/pages/blocks/content.mdx +0 -6
  116. package/src/content/pages/blocks/cta.mdx +0 -10
  117. package/src/content/pages/blocks/features.mdx +0 -5
  118. package/src/content/pages/blocks/hero.mdx +0 -5
  119. package/src/content/pages/blocks/intro.mdx +0 -5
  120. package/src/content/pages/blocks/posts.mdx +0 -2
  121. package/src/content/pages/blocks/reviews.mdx +0 -3
  122. package/src/content/pages/categories/category.md +7 -0
  123. package/src/content/pages/docs/_internationalization.mdx +55 -0
  124. package/src/content/pages/docs/_using-blocks.mdx +33 -0
  125. package/src/content/pages/docs/_using-presets.mdx +49 -0
  126. package/src/content/pages/docs/blocks.mdx +33 -0
  127. package/src/content/pages/docs/collections/images.mdx +102 -0
  128. package/src/content/pages/docs/collections/pages.mdx +119 -0
  129. package/src/content/pages/docs/collections/presets.mdx +60 -0
  130. package/src/content/pages/docs/collections.mdx +42 -0
  131. package/src/content/pages/{base/card.mdx → docs/components/_card.mdx} +2 -5
  132. package/src/content/pages/{base → docs/components}/_dialog.mdx +1 -2
  133. package/src/content/pages/{base → docs/components}/_drawer.mdx +1 -2
  134. package/src/content/pages/{base → docs/components}/_localeswitcher.mdx +1 -2
  135. package/src/content/pages/{base → docs/components}/_switch.mdx +3 -4
  136. package/src/content/pages/{typography → docs/components}/_tagline.mdx +3 -4
  137. package/src/content/pages/docs/components/_toggle.mdx +30 -0
  138. package/src/content/pages/docs/components/avatar.mdx +34 -0
  139. package/src/content/pages/{base → docs/components}/badge.mdx +28 -10
  140. package/src/content/pages/docs/components/badges.mdx +46 -0
  141. package/src/content/pages/docs/components/button.mdx +78 -0
  142. package/src/content/pages/docs/components/buttons.mdx +51 -0
  143. package/src/content/pages/docs/components/channel.mdx +91 -0
  144. package/src/content/pages/docs/components/channels.mdx +89 -0
  145. package/src/content/pages/docs/components/checkbox.mdx +34 -0
  146. package/src/content/pages/docs/components/code.mdx +45 -0
  147. package/src/content/pages/docs/components/heading.mdx +59 -0
  148. package/src/content/pages/docs/components/icon.mdx +48 -0
  149. package/src/content/pages/docs/components/image.mdx +25 -0
  150. package/src/content/pages/docs/components/input.mdx +40 -0
  151. package/src/content/pages/{typography → docs/components}/label.mdx +9 -6
  152. package/src/content/pages/{typography → docs/components}/link.mdx +24 -10
  153. package/src/content/pages/docs/components/links.mdx +99 -0
  154. package/src/content/pages/docs/components/list.mdx +44 -0
  155. package/src/content/pages/docs/components/logo.mdx +36 -0
  156. package/src/content/pages/docs/components/menu.mdx +89 -0
  157. package/src/content/pages/docs/components/prose.mdx +36 -0
  158. package/src/content/pages/docs/components/rating.mdx +76 -0
  159. package/src/content/pages/{base → docs/components}/section.mdx +2 -3
  160. package/src/content/pages/{base → docs/components}/select.mdx +1 -11
  161. package/src/content/pages/docs/components/social.mdx +94 -0
  162. package/src/content/pages/docs/components/socials.mdx +102 -0
  163. package/src/content/pages/docs/components/switch.mdx +34 -0
  164. package/src/content/pages/{base → docs/components}/table.mdx +1 -4
  165. package/src/content/pages/docs/components/tagline.mdx +46 -0
  166. package/src/content/pages/docs/components/text.mdx +48 -0
  167. package/src/content/pages/docs/components/textarea.mdx +34 -0
  168. package/src/content/pages/docs/components/themer.mdx +49 -0
  169. package/src/content/pages/docs/components.mdx +37 -0
  170. package/src/content/pages/docs/customization.mdx +151 -0
  171. package/src/content/pages/docs/frameworks.mdx +29 -0
  172. package/src/content/pages/docs/generating-pages.mdx +129 -0
  173. package/src/content/pages/docs/index.mdx +20 -0
  174. package/src/content/pages/docs/installation.mdx +50 -0
  175. package/src/content/pages/docs/layouts.mdx +33 -0
  176. package/src/content/pages/index.mdx +25 -33
  177. package/src/content/pages/posts/post.md +7 -0
  178. package/src/content/pages/products/product.md +20 -0
  179. package/src/content/pages/showcase/anti-slip-profiles.md +2 -2
  180. package/src/content/pages/showcase/fulldev-ui.md +1 -1
  181. package/src/content/pages/showcase/lavis-detailing.md +1 -1
  182. package/src/content/pages/showcase/leren-trainingsacteren.md +1 -1
  183. package/src/content/pages/showcase/miele-witgoedcenter-amsterdam.md +1 -1
  184. package/src/content/pages/showcase/sloepverhuur-bolsward.md +1 -1
  185. package/src/content/pages/showcase/stark-vulcanising-products.md +1 -1
  186. package/src/content/pages/showcase/the-gym-haren.md +1 -1
  187. package/src/content/pages/showcase/van-dillen-antieke-bouwmaterialen.md +1 -1
  188. package/src/content/pages/showcase.mdx +4 -3
  189. package/src/css/color.css +0 -10
  190. package/src/css/custom.css +10 -12
  191. package/src/css/size.css +2 -11
  192. package/src/css/theme.css +95 -0
  193. package/src/env.d.ts +1 -0
  194. package/src/images/favicon/android-chrome-192x192.png +0 -0
  195. package/src/images/favicon/android-chrome-512x512.png +0 -0
  196. package/src/images/favicon/apple-touch-icon.png +0 -0
  197. package/src/images/favicon/browserconfig.xml +9 -0
  198. package/src/images/favicon/favicon-16x16.png +0 -0
  199. package/src/images/favicon/favicon-32x32.png +0 -0
  200. package/src/images/favicon/favicon-48x48.png +0 -0
  201. package/src/images/favicon/favicon.ico +0 -0
  202. package/src/images/favicon/favicon.svg +16 -0
  203. package/src/images/favicon/manifest.webmanifest +30 -0
  204. package/src/images/favicon/mstile-150x150.png +0 -0
  205. package/src/images/favicon/safari-pinned-tab.svg +16 -0
  206. package/src/images/favicon/yandex-browser-50x50.png +0 -0
  207. package/src/images/favicon/yandex-browser-manifest.json +9 -0
  208. package/src/images/logo-1.svg +11 -0
  209. package/src/images/logo-2.svg +13 -0
  210. package/src/images/logo-basic.svg +10 -0
  211. package/src/images/logo-simple.svg +13 -0
  212. package/src/images/logo-thin.svg +15 -0
  213. package/src/images/logo.svg +14 -0
  214. package/src/images/logofat.svg +11 -0
  215. package/src/integration/index.ts +110 -140
  216. package/src/layouts/Category.astro +136 -0
  217. package/src/layouts/Doc.astro +56 -0
  218. package/src/layouts/Job.astro +60 -0
  219. package/src/layouts/Page.astro +29 -0
  220. package/src/layouts/Post.astro +52 -0
  221. package/src/layouts/Product.astro +114 -0
  222. package/src/pages/[...page].astro +29 -24
  223. package/src/pages/test.astro +37 -0
  224. package/src/schemas/components/avatar.ts +4 -1
  225. package/src/schemas/components/badge.ts +16 -11
  226. package/src/schemas/components/block.ts +60 -0
  227. package/src/schemas/components/button.ts +17 -14
  228. package/src/schemas/components/channel.ts +15 -9
  229. package/src/schemas/components/footer.ts +15 -21
  230. package/src/schemas/components/head.ts +17 -0
  231. package/src/schemas/components/header.ts +19 -7
  232. package/src/schemas/components/heading.ts +7 -1
  233. package/src/schemas/components/icon.ts +7 -1
  234. package/src/schemas/components/image.ts +38 -16
  235. package/src/schemas/components/link.ts +17 -0
  236. package/src/schemas/components/logo.ts +12 -2
  237. package/src/schemas/components/menu.ts +11 -11
  238. package/src/schemas/components/navigation.ts +10 -0
  239. package/src/schemas/components/paragraph.ts +9 -0
  240. package/src/schemas/components/price.ts +7 -1
  241. package/src/schemas/components/rating.ts +8 -13
  242. package/src/schemas/components/sidebar.ts +14 -11
  243. package/src/schemas/components/social.ts +16 -1
  244. package/src/schemas/components/tagline.ts +7 -1
  245. package/src/schemas/imageSchema.ts +33 -4
  246. package/src/schemas/page.ts +39 -0
  247. package/src/stores/cart.svelte.ts +79 -0
  248. package/src/stores/cart.ts +59 -6
  249. package/src/types/global-props.ts +0 -9
  250. package/src/types/{virtual-modules.d.ts → virtual.d.ts} +1 -1
  251. package/src/utils/cart.ts +1 -10
  252. package/src/utils/formatEntries.ts +8 -0
  253. package/src/utils/formatEntry.ts +29 -0
  254. package/src/utils/getDeepReferenceChildren.ts +14 -0
  255. package/src/utils/getHref.ts +6 -0
  256. package/src/utils/getReferenceChildren.ts +1 -1
  257. package/src/utils/setTheme.ts +18 -0
  258. package/src/utils/slugify.ts +6 -0
  259. package/svelte.config.js +5 -0
  260. package/tailwind.config.ts +71 -0
  261. package/tsconfig.json +1 -3
  262. package/src/blocks/Article.astro +0 -40
  263. package/src/blocks/Categories.astro +0 -12
  264. package/src/blocks/Colleagues.astro +0 -13
  265. package/src/blocks/Contact.astro +0 -116
  266. package/src/blocks/Content.astro +0 -12
  267. package/src/blocks/Cta.astro +0 -15
  268. package/src/blocks/Excerpt.astro +0 -14
  269. package/src/blocks/Features.astro +0 -11
  270. package/src/blocks/Hero.astro +0 -15
  271. package/src/blocks/Intro.astro +0 -23
  272. package/src/blocks/Jobs.astro +0 -12
  273. package/src/blocks/Posts.astro +0 -11
  274. package/src/blocks/Prices.astro +0 -24
  275. package/src/blocks/Product.astro +0 -110
  276. package/src/blocks/Products.astro +0 -11
  277. package/src/blocks/Reviews.astro +0 -13
  278. package/src/components/CartForm.astro +0 -121
  279. package/src/components/CartList.astro +0 -134
  280. package/src/components/Footer.astro +0 -193
  281. package/src/components/Text.astro +0 -43
  282. package/src/components/ThemeSelect.astro +0 -41
  283. package/src/components/experimental/Form.astro +0 -53
  284. package/src/components/experimental/Gallery.astro +0 -104
  285. package/src/components/experimental/Logo.astro +0 -38
  286. package/src/components/experimental/Prose.astro +0 -192
  287. package/src/components/sections.astro +0 -28
  288. package/src/content/pages/base/button.mdx +0 -60
  289. package/src/content/pages/base/checkbox.mdx +0 -42
  290. package/src/content/pages/base/icon.mdx +0 -55
  291. package/src/content/pages/base/image.mdx +0 -42
  292. package/src/content/pages/base/input.mdx +0 -56
  293. package/src/content/pages/base/rating.mdx +0 -55
  294. package/src/content/pages/base/textarea.mdx +0 -58
  295. package/src/content/pages/base/theme-select.mdx +0 -15
  296. package/src/content/pages/layouts/_layout.mdx +0 -14
  297. package/src/content/pages/layouts/docslayout.mdx +0 -14
  298. package/src/content/pages/overview/components.mdx +0 -75
  299. package/src/content/pages/overview/content-collections.mdx +0 -139
  300. package/src/content/pages/overview/frameworks.mdx +0 -198
  301. package/src/content/pages/overview/installation.mdx +0 -53
  302. package/src/content/pages/overview/introduction.mdx +0 -30
  303. package/src/content/pages/overview/theming.mdx +0 -69
  304. package/src/content/pages/schemas/page.mdx +0 -17
  305. package/src/content/pages/schemas/preset.mdx +0 -9
  306. package/src/content/pages/showcase/record.md +0 -3
  307. package/src/content/pages/typography/heading.mdx +0 -73
  308. package/src/content/pages/typography/list.mdx +0 -51
  309. package/src/content/pages/typography/text.mdx +0 -61
  310. package/src/content/presets/blocks.yml +0 -1
  311. package/src/content/presets/docs.yml +0 -6
  312. package/src/css/space.css +0 -77
  313. package/src/css/styles.css +0 -0
  314. package/src/images/avatar-1.yml +0 -1
  315. package/src/integration/generate-colors.ts +0 -639
  316. package/src/integration/tailwind-plugin.ts +0 -80
  317. package/src/integration/unocss-preset.ts +0 -84
  318. package/src/layouts/BlockLayout.astro +0 -19
  319. package/src/layouts/ContactLayout.astro +0 -21
  320. package/src/layouts/DocsLayout.astro +0 -73
  321. package/src/layouts/Layout.astro +0 -163
  322. package/src/layouts/OverviewLayout.astro +0 -42
  323. package/src/layouts/PostLayout.astro +0 -21
  324. package/src/layouts/ProductLayout.astro +0 -21
  325. package/src/loaders/imageLoader.ts +0 -26
  326. package/src/schemas/components/avatars.ts +0 -4
  327. package/src/schemas/components/buttons.ts +0 -4
  328. package/src/schemas/components/card.ts +0 -25
  329. package/src/schemas/components/cards.ts +0 -4
  330. package/src/schemas/components/channels.ts +0 -4
  331. package/src/schemas/components/images.ts +0 -4
  332. package/src/schemas/components/list.ts +0 -3
  333. package/src/schemas/components/section.ts +0 -15
  334. package/src/schemas/components/sections.ts +0 -3
  335. package/src/schemas/components/socials.ts +0 -4
  336. package/src/schemas/components/text.ts +0 -3
  337. package/src/schemas/components/toc.ts +0 -3
  338. package/src/schemas/components/writeup.ts +0 -20
  339. package/src/schemas/pageSchema.ts +0 -101
  340. package/src/schemas/presetSchema.ts +0 -3
  341. package/src/schemas/utils/navigation.ts +0 -8
  342. package/src/schemas/utils/parents.ts +0 -3
@@ -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
+ ```
@@ -1,6 +1,5 @@
1
1
  ---
2
- presets: [docs]
3
-
2
+ _layout: doc
4
3
  title: Card
5
4
  ---
6
5
 
@@ -15,7 +14,7 @@ import Card from 'fulldev-ui/components/Card.astro'
15
14
 
16
15
  <Card
17
16
  heading="Lorem ipsum dolor"
18
- text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
17
+ paragraph="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
19
18
  />
20
19
  ```
21
20
 
@@ -74,13 +73,11 @@ import Card from 'fulldev-ui/components/Card.astro'
74
73
  ---
75
74
 
76
75
  <Card
77
- color="base"
78
76
  heading="Lorem ipsum dolor"
79
77
  text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
80
78
  />
81
79
 
82
80
  <Card
83
- color="brand"
84
81
  heading="Lorem ipsum dolor"
85
82
  text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
86
83
  />
@@ -1,6 +1,5 @@
1
1
  ---
2
- presets: [docs]
3
-
2
+ _layout: doc
4
3
  title: Dialog
5
4
  ---
6
5
 
@@ -1,6 +1,5 @@
1
1
  ---
2
- presets: [docs]
3
-
2
+ _layout: doc
4
3
  title: Drawer
5
4
  ---
6
5
 
@@ -1,6 +1,5 @@
1
1
  ---
2
- presets: [docs]
3
-
2
+ _layout: doc
4
3
  title: LocaleSwitcher
5
4
  ---
6
5
 
@@ -1,6 +1,5 @@
1
1
  ---
2
- presets: [docs]
3
-
2
+ _layout: doc
4
3
  title: Switch
5
4
  ---
6
5
 
@@ -27,6 +26,6 @@ import Switch from 'fulldev-ui/components/Switch.astro'
27
26
  import Switch from 'fulldev-ui/components/Switch.astro'
28
27
  ---
29
28
 
30
- <Switch color="base" trueLabel="On" falseLabel="Off" />
31
- <Switch color="brand" trueLabel="On" falseLabel="Off" />
29
+ <Switch trueLabel="On" falseLabel="Off" />
30
+ <Switch trueLabel="On" falseLabel="Off" />
32
31
  ```
@@ -1,6 +1,5 @@
1
1
  ---
2
- presets: [docs]
3
-
2
+ _layout: doc
4
3
  title: Tagline
5
4
  ---
6
5
 
@@ -19,8 +18,8 @@ import Tagline from 'fulldev-ui/components/Tagline.astro'
19
18
  import Tagline from 'fulldev-ui/components/Tagline.astro'
20
19
  ---
21
20
 
22
- <Tagline color="base">The quick brown fox jumps</Tagline>
23
- <Tagline color="brand">The quick brown fox jumps</Tagline>
21
+ <Tagline>The quick brown fox jumps</Tagline>
22
+ <Tagline>The quick brown fox jumps</Tagline>
24
23
  ```
25
24
 
26
25
  Set to `true` by default on Headings, which you can override by setting it to `false`.
@@ -0,0 +1,30 @@
1
+ ---
2
+ _layout: doc
3
+ title: Toggle
4
+ ---
5
+
6
+ # Toggle
7
+
8
+ import PropsTable from 'fulldev-ui/components/docs/PropsTable.astro'
9
+
10
+ ```astro live
11
+ ---
12
+ import Toggle from 'fulldev-ui/components/Toggle.astro'
13
+ ---
14
+
15
+ <Toggle text="Click me" icon="click" />
16
+ ```
17
+
18
+ ## Props
19
+
20
+ <PropsTable />
21
+
22
+ ## Examples
23
+
24
+ ```astro live
25
+ ---
26
+ import Toggle from 'fulldev-ui/components/Toggle.astro'
27
+ ---
28
+
29
+ <Toggle icon={'code'} text="Auto save" toggled={true} />
30
+ ```
@@ -0,0 +1,34 @@
1
+ ---
2
+ _layout: doc
3
+ title: Avatar
4
+ ---
5
+
6
+ # Avatar
7
+
8
+ import PropsTable from 'fulldev-ui/components/docs/PropsTable.astro'
9
+
10
+ ```astro live
11
+ ---
12
+ import Avatar from 'fulldev-ui/components/Avatar.astro'
13
+ ---
14
+
15
+ <Avatar id="avatar-1.jpeg" />
16
+ ```
17
+
18
+ ## Props
19
+
20
+ <PropsTable />
21
+
22
+ ## Examples
23
+
24
+ ### `size`
25
+
26
+ ```astro live
27
+ ---
28
+ import Avatar from 'fulldev-ui/components/Avatar.astro'
29
+ ---
30
+
31
+ <Avatar id="avatar-1.jpeg" size="sm" />
32
+ <Avatar id="avatar-1.jpeg" size="md" />
33
+ <Avatar id="avatar-1.jpeg" size="lg" />
34
+ ```
@@ -1,6 +1,5 @@
1
1
  ---
2
- presets: [docs]
3
-
2
+ _layout: doc
4
3
  title: Badge
5
4
  ---
6
5
 
@@ -22,38 +21,57 @@ import Badge from 'fulldev-ui/components/Badge.astro'
22
21
 
23
22
  ## Examples
24
23
 
24
+ ### `variant`
25
+
25
26
  ```astro live
26
27
  ---
27
28
  import Badge from 'fulldev-ui/components/Badge.astro'
28
29
  ---
29
30
 
30
- <Badge size="sm">Badge</Badge>
31
- <Badge size="md">Badge</Badge>
32
- <Badge size="lg">Badge</Badge>
31
+ <Badge variant="primary">Primary</Badge>
32
+ <Badge variant="secondary">Secondary</Badge>
33
+ <Badge variant="outline">Outline</Badge>
33
34
  ```
34
35
 
36
+ ### `size`
37
+
35
38
  ```astro live
36
39
  ---
37
40
  import Badge from 'fulldev-ui/components/Badge.astro'
38
41
  ---
39
42
 
40
- <Badge color="base">Badge</Badge>
41
- <Badge color="brand">Badge</Badge>
43
+ <Badge size="sm">Small</Badge>
44
+ <Badge size="md">Medium</Badge>
45
+ <Badge size="lg">Large</Badge>
42
46
  ```
43
47
 
48
+ ### `icon`
49
+
44
50
  ```astro live
45
51
  ---
46
52
  import Badge from 'fulldev-ui/components/Badge.astro'
47
53
  ---
48
54
 
49
- <Badge>Badge</Badge>
50
- <Badge contrast>Badge</Badge>
55
+ <Badge icon="circle" text="Badge" />
56
+ <Badge icon="circle" />
51
57
  ```
52
58
 
59
+ ### `href`
60
+
53
61
  ```astro live
54
62
  ---
55
63
  import Badge from 'fulldev-ui/components/Badge.astro'
56
64
  ---
57
65
 
58
- <Badge icon="circle" text="Badge" />
66
+ <Badge href="#">Link</Badge>
67
+ ```
68
+
69
+ ### `text`
70
+
71
+ ```astro live
72
+ ---
73
+ import Badge from 'fulldev-ui/components/Badge.astro'
74
+ ---
75
+
76
+ <Badge text="Badge" />
59
77
  ```
@@ -0,0 +1,46 @@
1
+ ---
2
+ _layout: doc
3
+ title: Badges
4
+ ---
5
+
6
+ # Badges
7
+
8
+ import PropsTable from 'fulldev-ui/components/docs/PropsTable.astro'
9
+
10
+ ```astro live
11
+ ---
12
+ import Badges from 'fulldev-ui/components/Badges.astro'
13
+ ---
14
+
15
+ <Badges badges={[{ text: 'First' }, { text: 'Second' }]} />
16
+ ```
17
+
18
+ ## Props
19
+
20
+ <PropsTable />
21
+
22
+ ## Examples
23
+
24
+ ### `variant`
25
+
26
+ ```astro live
27
+ ---
28
+ import Badges from 'fulldev-ui/components/Badges.astro'
29
+ ---
30
+
31
+ <Badges variant="primary" badges={[{ text: 'First' }, { text: 'Second' }]} />
32
+ <Badges variant="secondary" badges={[{ text: 'First' }, { text: 'Second' }]} />
33
+ <Badges variant="outline" badges={[{ text: 'First' }, { text: 'Second' }]} />
34
+ ```
35
+
36
+ ### `size`
37
+
38
+ ```astro live
39
+ ---
40
+ import Badges from 'fulldev-ui/components/Badges.astro'
41
+ ---
42
+
43
+ <Badges size="sm" badges={[{ text: 'First' }, { text: 'Second' }]} />
44
+ <Badges size="md" badges={[{ text: 'First' }, { text: 'Second' }]} />
45
+ <Badges size="lg" badges={[{ text: 'First' }, { text: 'Second' }]} />
46
+ ```
@@ -0,0 +1,78 @@
1
+ ---
2
+ _layout: doc
3
+ title: Button
4
+ ---
5
+
6
+ # Button
7
+
8
+ import PropsTable from 'fulldev-ui/components/docs/PropsTable.astro'
9
+
10
+ ```astro live
11
+ ---
12
+ import Button from 'fulldev-ui/components/Button.astro'
13
+ ---
14
+
15
+ <Button>Button</Button>
16
+ ```
17
+
18
+ ## Props
19
+
20
+ <PropsTable />
21
+
22
+ ## Examples
23
+
24
+ ### `variant`
25
+
26
+ ```astro live
27
+ ---
28
+ import Button from 'fulldev-ui/components/Button.astro'
29
+ ---
30
+
31
+ <Button variant="primary">Primary</Button>
32
+ <Button variant="secondary">Secondary</Button>
33
+ <Button variant="outline">Outline</Button>
34
+ <Button variant="ghost">Ghost</Button>
35
+ ```
36
+
37
+ ### `size`
38
+
39
+ ```astro live
40
+ ---
41
+ import Button from 'fulldev-ui/components/Button.astro'
42
+ ---
43
+
44
+ <Button size="sm">Small</Button>
45
+ <Button size="md">Medium</Button>
46
+ <Button size="lg">Large</Button>
47
+ ```
48
+
49
+ ### `icon`
50
+
51
+ ```astro live
52
+ ---
53
+ import Button from 'fulldev-ui/components/Button.astro'
54
+ ---
55
+
56
+ <Button icon="confetti" text="Button" />
57
+ <Button icon="confetti" />
58
+ ```
59
+
60
+ ### `href`
61
+
62
+ ```astro live
63
+ ---
64
+ import Button from 'fulldev-ui/components/Button.astro'
65
+ ---
66
+
67
+ <Button href="#">Link</Button>
68
+ ```
69
+
70
+ ### `text`
71
+
72
+ ```astro live
73
+ ---
74
+ import Button from 'fulldev-ui/components/Button.astro'
75
+ ---
76
+
77
+ <Button text="Button" />
78
+ ```