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

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 (257) hide show
  1. package/astro.config.ts +1 -7
  2. package/cloudcannon.config.yml +269 -0
  3. package/package.json +1 -1
  4. package/src/blocks/Banner.astro +13 -15
  5. package/src/blocks/Colleagues1.astro +73 -0
  6. package/src/blocks/Contact1.astro +100 -0
  7. package/src/blocks/Content1.astro +79 -0
  8. package/src/blocks/Content2.astro +94 -0
  9. package/src/blocks/Content3.astro +70 -0
  10. package/src/blocks/Content4.astro +75 -0
  11. package/src/blocks/Cta1.astro +73 -0
  12. package/src/blocks/Feature1.astro +61 -0
  13. package/src/blocks/Features1.astro +66 -0
  14. package/src/blocks/Footer.astro +36 -68
  15. package/src/blocks/Header.astro +150 -3
  16. package/src/blocks/Hero1.astro +74 -0
  17. package/src/blocks/Intro1.astro +70 -0
  18. package/src/blocks/Jobs1.astro +73 -0
  19. package/src/blocks/Logos1.astro +55 -0
  20. package/src/blocks/Products1.astro +90 -0
  21. package/src/blocks/Reviews1.astro +79 -0
  22. package/src/blocks/{Hero.astro → _Hero.astro} +7 -6
  23. package/src/components/Badge.astro +10 -18
  24. package/src/components/Badges.astro +12 -35
  25. package/src/components/Block.astro +30 -0
  26. package/src/components/Blocks.astro +26 -0
  27. package/src/components/Button.astro +11 -25
  28. package/src/components/Buttons.astro +12 -43
  29. package/src/components/Card.astro +8 -150
  30. package/src/components/Cart.astro +6 -11
  31. package/src/components/CartSummary.astro +3 -3
  32. package/src/components/Channel.astro +5 -14
  33. package/src/components/Container.astro +25 -0
  34. package/src/components/Drawer.astro +55 -117
  35. package/src/components/DrawerOld.astro +143 -0
  36. package/src/components/Element.astro +2 -0
  37. package/src/components/Form.astro +3 -1
  38. package/src/components/Grid.astro +39 -0
  39. package/src/components/Group.astro +25 -0
  40. package/src/components/Head.astro +18 -32
  41. package/src/components/Header.astro +8 -105
  42. package/src/components/Heading.astro +34 -71
  43. package/src/components/Icon.astro +5 -4
  44. package/src/components/Image.astro +15 -50
  45. package/src/components/Layout.astro +35 -0
  46. package/src/components/Link.astro +12 -18
  47. package/src/components/Links.astro +14 -35
  48. package/src/components/Logo.astro +26 -15
  49. package/src/components/Masonry.astro +42 -0
  50. package/src/components/Menu.astro +17 -38
  51. package/src/components/Menus.astro +20 -0
  52. package/src/components/Navigation.astro +39 -0
  53. package/src/components/Panel.astro +25 -0
  54. package/src/components/Paragraph.astro +24 -7
  55. package/src/components/Price.astro +4 -4
  56. package/src/components/Prose.astro +47 -130
  57. package/src/components/Rating.astro +24 -75
  58. package/src/components/Search.astro +5 -4
  59. package/src/components/Section.astro +20 -29
  60. package/src/components/Sidebar.astro +18 -69
  61. package/src/components/Social.astro +9 -2
  62. package/src/components/Stack.astro +25 -0
  63. package/src/components/Tagline.astro +21 -31
  64. package/src/components/Toc.astro +22 -21
  65. package/src/components/Writeup.astro +33 -82
  66. package/src/components/_Author.astro +90 -0
  67. package/src/components/_Header.astro +129 -0
  68. package/src/components/_Image.astro +79 -0
  69. package/src/components/_Prose copy.astro +172 -0
  70. package/src/components/_Sidebar copy.astro +87 -0
  71. package/src/content/config.ts +2 -29
  72. package/src/content/layouts/base.yml +42 -80
  73. package/src/content/pages/categories/category.md +7 -0
  74. package/src/content/{docs → pages/docs}/_internationalization.mdx +1 -0
  75. package/src/content/{docs → pages/docs}/_using-blocks.mdx +1 -0
  76. package/src/content/{docs → pages/docs}/_using-presets.mdx +1 -0
  77. package/src/content/{docs → pages/docs}/blocks.mdx +1 -0
  78. package/src/content/{docs → pages/docs}/collections/images.mdx +1 -0
  79. package/src/content/{docs → pages/docs}/collections/pages.mdx +1 -0
  80. package/src/content/{docs → pages/docs}/collections/presets.mdx +1 -0
  81. package/src/content/{docs → pages/docs}/collections.mdx +1 -0
  82. package/src/content/{docs → pages/docs}/components/_card.mdx +1 -0
  83. package/src/content/{docs → pages/docs}/components/_dialog.mdx +1 -0
  84. package/src/content/{docs → pages/docs}/components/_drawer.mdx +1 -0
  85. package/src/content/{docs → pages/docs}/components/_localeswitcher.mdx +1 -0
  86. package/src/content/{docs → pages/docs}/components/_switch.mdx +1 -0
  87. package/src/content/{docs → pages/docs}/components/_tagline.mdx +1 -0
  88. package/src/content/{docs → pages/docs}/components/_toggle.mdx +1 -0
  89. package/src/content/{docs → pages/docs}/components/avatar.mdx +1 -0
  90. package/src/content/{docs → pages/docs}/components/badge.mdx +1 -0
  91. package/src/content/{docs → pages/docs}/components/badges.mdx +1 -0
  92. package/src/content/{docs → pages/docs}/components/button.mdx +1 -0
  93. package/src/content/{docs → pages/docs}/components/buttons.mdx +1 -0
  94. package/src/content/{docs → pages/docs}/components/channel.mdx +1 -0
  95. package/src/content/{docs → pages/docs}/components/channels.mdx +1 -0
  96. package/src/content/{docs → pages/docs}/components/checkbox.mdx +1 -0
  97. package/src/content/{docs → pages/docs}/components/code.mdx +1 -0
  98. package/src/content/{docs → pages/docs}/components/heading.mdx +1 -0
  99. package/src/content/{docs → pages/docs}/components/icon.mdx +1 -0
  100. package/src/content/{docs → pages/docs}/components/image.mdx +1 -0
  101. package/src/content/{docs → pages/docs}/components/input.mdx +1 -0
  102. package/src/content/{docs → pages/docs}/components/label.mdx +1 -0
  103. package/src/content/{docs → pages/docs}/components/link.mdx +1 -0
  104. package/src/content/{docs → pages/docs}/components/links.mdx +1 -0
  105. package/src/content/{docs → pages/docs}/components/list.mdx +1 -0
  106. package/src/content/{docs → pages/docs}/components/logo.mdx +1 -0
  107. package/src/content/{docs → pages/docs}/components/menu.mdx +1 -0
  108. package/src/content/{docs → pages/docs}/components/prose.mdx +1 -0
  109. package/src/content/{docs → pages/docs}/components/rating.mdx +1 -0
  110. package/src/content/{docs → pages/docs}/components/section.mdx +1 -0
  111. package/src/content/{docs → pages/docs}/components/select.mdx +1 -0
  112. package/src/content/{docs → pages/docs}/components/social.mdx +1 -0
  113. package/src/content/{docs → pages/docs}/components/socials.mdx +1 -0
  114. package/src/content/{docs → pages/docs}/components/switch.mdx +1 -0
  115. package/src/content/{docs → pages/docs}/components/table.mdx +1 -0
  116. package/src/content/{docs → pages/docs}/components/tagline.mdx +1 -0
  117. package/src/content/pages/docs/components/text.mdx +48 -0
  118. package/src/content/{docs → pages/docs}/components/textarea.mdx +1 -0
  119. package/src/content/{docs → pages/docs}/components/themer.mdx +1 -0
  120. package/src/content/{docs → pages/docs}/components.mdx +2 -4
  121. package/src/content/{docs → pages/docs}/customization.mdx +1 -0
  122. package/src/content/{docs → pages/docs}/frameworks.mdx +1 -0
  123. package/src/content/{docs → pages/docs}/generating-pages.mdx +1 -0
  124. package/src/content/{docs → pages/docs}/index.mdx +2 -4
  125. package/src/content/{docs → pages/docs}/installation.mdx +1 -0
  126. package/src/content/{docs → pages/docs}/layouts.mdx +1 -0
  127. package/src/content/pages/index.mdx +20 -28
  128. package/src/content/{categories/mugs.md → pages/posts/post.md} +1 -1
  129. package/src/content/{products → pages/products}/product.md +4 -4
  130. package/src/css/theme.css +2 -0
  131. package/src/images/favicon/android-chrome-192x192.png +0 -0
  132. package/src/images/favicon/android-chrome-512x512.png +0 -0
  133. package/src/images/favicon/apple-touch-icon.png +0 -0
  134. package/src/images/favicon/browserconfig.xml +9 -0
  135. package/src/images/favicon/favicon-16x16.png +0 -0
  136. package/src/images/favicon/favicon-32x32.png +0 -0
  137. package/src/images/favicon/favicon-48x48.png +0 -0
  138. package/src/images/favicon/favicon.ico +0 -0
  139. package/src/images/favicon/favicon.svg +16 -0
  140. package/src/images/favicon/manifest.webmanifest +30 -0
  141. package/src/images/favicon/mstile-150x150.png +0 -0
  142. package/src/images/favicon/safari-pinned-tab.svg +16 -0
  143. package/src/images/favicon/yandex-browser-50x50.png +0 -0
  144. package/src/images/favicon/yandex-browser-manifest.json +9 -0
  145. package/src/integration/index.ts +48 -17
  146. package/src/layouts/{CategoryLayout.astro → Category.astro} +21 -15
  147. package/src/layouts/Doc.astro +70 -0
  148. package/src/layouts/Job.astro +62 -0
  149. package/src/layouts/Jobs.astro +72 -0
  150. package/src/layouts/Page.astro +29 -0
  151. package/src/layouts/Post.astro +52 -0
  152. package/src/layouts/{ProductLayout.astro → Product.astro} +25 -11
  153. package/src/pages/[...page].astro +36 -4
  154. package/src/pages/test.astro +32 -2
  155. package/src/schemas/components/avatar.ts +4 -1
  156. package/src/schemas/components/badge.ts +16 -11
  157. package/src/schemas/components/block.ts +61 -0
  158. package/src/schemas/components/button.ts +14 -19
  159. package/src/schemas/components/channel.ts +15 -9
  160. package/src/schemas/components/footer.ts +15 -14
  161. package/src/schemas/components/head.ts +17 -0
  162. package/src/schemas/components/header.ts +19 -16
  163. package/src/schemas/components/heading.ts +7 -1
  164. package/src/schemas/components/icon.ts +7 -1
  165. package/src/schemas/components/image.ts +38 -21
  166. package/src/schemas/components/link.ts +10 -16
  167. package/src/schemas/components/logo.ts +12 -2
  168. package/src/schemas/components/menu.ts +12 -13
  169. package/src/schemas/components/navigation.ts +10 -0
  170. package/src/schemas/components/paragraph.ts +9 -0
  171. package/src/schemas/components/price.ts +9 -0
  172. package/src/schemas/components/rating.ts +8 -13
  173. package/src/schemas/components/sidebar.ts +14 -12
  174. package/src/schemas/components/social.ts +16 -1
  175. package/src/schemas/components/tagline.ts +7 -1
  176. package/src/schemas/imageSchema.ts +33 -4
  177. package/src/schemas/page.ts +40 -0
  178. package/src/types/global-props.ts +0 -9
  179. package/src/types/{virtual-modules.d.ts → virtual.d.ts} +1 -1
  180. package/src/utils/getHref.ts +4 -20
  181. package/tailwind.config.ts +4 -0
  182. package/tsconfig.json +1 -3
  183. package/example.svelte +0 -0
  184. package/parent.svelte +0 -0
  185. package/src/App.svelte +0 -0
  186. package/src/blocks/Categories.astro +0 -12
  187. package/src/blocks/Colleagues.astro +0 -12
  188. package/src/blocks/Contact.astro +0 -117
  189. package/src/blocks/Content.astro +0 -130
  190. package/src/blocks/Cta.astro +0 -13
  191. package/src/blocks/Excerpt.astro +0 -12
  192. package/src/blocks/Features.astro +0 -11
  193. package/src/blocks/Intro.astro +0 -101
  194. package/src/blocks/Jobs.astro +0 -12
  195. package/src/blocks/Posts.astro +0 -11
  196. package/src/blocks/Prices.astro +0 -24
  197. package/src/blocks/Product.astro +0 -89
  198. package/src/blocks/Products.astro +0 -101
  199. package/src/blocks/Reviews.astro +0 -12
  200. package/src/blocks/_Contact.astro +0 -112
  201. package/src/components/CartForm.astro +0 -120
  202. package/src/components/CartList.astro +0 -122
  203. package/src/components/Lead.astro +0 -46
  204. package/src/components/ProductCard.astro +0 -52
  205. package/src/components/Text.astro +0 -43
  206. package/src/components/_CartList backup.astro +0 -125
  207. package/src/components/_CartList copy.astro +0 -213
  208. package/src/components/_CartListSimple.astro +0 -148
  209. package/src/components/sections.astro +0 -28
  210. package/src/content/docs/components/lead.mdx +0 -49
  211. package/src/content/docs/components/paragraph.mdx +0 -49
  212. package/src/content/layouts/docs.yml +0 -70
  213. package/src/layouts/DocLayout.astro +0 -17
  214. package/src/layouts/Layout.astro +0 -79
  215. package/src/layouts/PageLayout.astro +0 -20
  216. package/src/layouts/PostLayout.astro +0 -20
  217. package/src/loaders/imageLoader.ts +0 -26
  218. package/src/pages/[...category].astro +0 -17
  219. package/src/pages/[...doc].astro +0 -17
  220. package/src/pages/[...post].astro +0 -17
  221. package/src/pages/[...product].astro +0 -17
  222. package/src/schemas/archive/_pageSchema.ts +0 -94
  223. package/src/schemas/categorySchema.ts +0 -16
  224. package/src/schemas/components/avatars.ts +0 -4
  225. package/src/schemas/components/banner.ts +0 -3
  226. package/src/schemas/components/buttons.ts +0 -4
  227. package/src/schemas/components/card.ts +0 -43
  228. package/src/schemas/components/cards.ts +0 -4
  229. package/src/schemas/components/channels.ts +0 -4
  230. package/src/schemas/components/global.ts +0 -16
  231. package/src/schemas/components/links.ts +0 -4
  232. package/src/schemas/components/list.ts +0 -3
  233. package/src/schemas/components/section.ts +0 -17
  234. package/src/schemas/components/sections.ts +0 -3
  235. package/src/schemas/components/socials.ts +0 -4
  236. package/src/schemas/components/subheader.ts +0 -10
  237. package/src/schemas/components/text.ts +0 -3
  238. package/src/schemas/components/themer.ts +0 -3
  239. package/src/schemas/components/toc.ts +0 -3
  240. package/src/schemas/components/writeup.ts +0 -20
  241. package/src/schemas/docSchema.ts +0 -10
  242. package/src/schemas/fields/categories.ts +0 -3
  243. package/src/schemas/fields/description.ts +0 -3
  244. package/src/schemas/fields/href.ts +0 -3
  245. package/src/schemas/fields/image.ts +0 -24
  246. package/src/schemas/fields/images.ts +0 -4
  247. package/src/schemas/fields/order.ts +0 -3
  248. package/src/schemas/fields/price.ts +0 -3
  249. package/src/schemas/fields/products.ts +0 -5
  250. package/src/schemas/fields/seo.ts +0 -12
  251. package/src/schemas/fields/soldout.ts +0 -3
  252. package/src/schemas/fields/title.ts +0 -3
  253. package/src/schemas/fields/variants.ts +0 -3
  254. package/src/schemas/layoutSchema.ts +0 -28
  255. package/src/schemas/pageSchema.ts +0 -20
  256. package/src/schemas/postSchema.ts +0 -16
  257. package/src/schemas/productSchema.ts +0 -22
@@ -1,11 +1,9 @@
1
1
  ---
2
+ _layout: doc
2
3
  title: Components
4
+ description: Features shared across components.
3
5
  ---
4
6
 
5
- # Components
6
-
7
- Features shared across components.
8
-
9
7
  ## Slots versus props
10
8
 
11
9
  You can use either slots or props. Props are recommended as they are type safe and work better in combination with content collections.
@@ -1,4 +1,5 @@
1
1
  ---
2
+ _layout: doc
2
3
  title: Customization
3
4
  ---
4
5
 
@@ -1,4 +1,5 @@
1
1
  ---
2
+ _layout: doc
2
3
  title: Frameworks
3
4
  ---
4
5
 
@@ -1,4 +1,5 @@
1
1
  ---
2
+ _layout: doc
2
3
  title: Generating Pages
3
4
  ---
4
5
 
@@ -1,11 +1,9 @@
1
1
  ---
2
+ _layout: doc
2
3
  title: Introduction
4
+ description: Everything you need to rapidly build content-driven websites. Components, blocks, layouts and complete page generation.
3
5
  ---
4
6
 
5
- # Introduction
6
-
7
- Everything you need to rapidly build content-driven websites. Components, blocks, layouts and complete page generation.
8
-
9
7
  ## Why we built it
10
8
 
11
9
  After repeatedly encountering the same challenges in [our company's](https://full.dev) client projects, we decided to build this library. After successfully using it in production websites, we decided to open-source it to help others facing similar problems.
@@ -1,4 +1,5 @@
1
1
  ---
2
+ _layout: doc
2
3
  title: Installation
3
4
  ---
4
5
 
@@ -1,4 +1,5 @@
1
1
  ---
2
+ _layout: doc
2
3
  title: Layouts
3
4
  ---
4
5
 
@@ -1,62 +1,54 @@
1
1
  ---
2
- seo:
2
+ head:
3
3
  title: Fulldev UI - Astro component and block library, open-source
4
4
  description: Make websites rapidly with pre-built components and blocks.
5
- image: og-image.png
5
+ image: /og-image.png
6
6
 
7
7
  title: Home
8
8
 
9
- sections:
10
- - component: Hero
9
+ blocks:
10
+ - _block: Hero1
11
11
  badge:
12
- text: 'Introducing v0.5: page building & generation'
12
+ text: 'Introducing v0.6: layouts & pagebuilding'
13
13
  href: /overview/installation/
14
14
  heading: Build complete websites with this Astro UI library
15
- # heading: The Astro UI library to build complete websites
16
- lead: 'Everything you need to rapidly build content-driven websites. Components, blocks, layouts and complete page generation.'
15
+ paragraph: 'Everything you need to rapidly build content-driven websites. Components, blocks, layouts and complete page generation.'
17
16
  buttons:
18
17
  - text: Get Started
19
18
  href: /docs/
20
19
  - text: GitHub
21
20
  href: https://github.com/fulldotdev/ui
22
21
  icon: brand-github
23
- image: block-code.png
22
+ target: _blank
24
23
 
25
- - component: Content
26
- color: brand
27
- label: Blocks
24
+ - _block: Feature1
25
+ tagline: Blocks
28
26
  heading: Use pre-built blocks with just props
29
27
  paragraph: 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.
30
- image: block-code.png
28
+ image: /block-code.png
31
29
  buttons:
32
- - href: /blocks
30
+ - href: /blocks/
33
31
  icon: layout
34
32
  text: View blocks
35
33
 
36
- - component: Content
37
- color: brand
38
- label: Components
34
+ - _block: Feature1
35
+ tagline: Components
39
36
  heading: Or build your own, with easy to use components
40
37
  paragraph: Our rich set of components make it easy to build your own blocks with great customizability through props and global theming.
41
- image: component-code.png
42
- reverse: odd
38
+ image: /component-code.png
43
39
  buttons:
44
- - href: /components/badge
40
+ - text: View components
41
+ href: /components/badge/
45
42
  icon: code
46
- text: View components
47
43
 
48
- - component: Cta
49
- size: lg
50
- variant: primary
44
+ - _block: Cta1
51
45
  heading: Build content websites in a fraction of time
52
- lead: A library of components and blocks to build content sites, fast.
46
+ paragraph: A library of components and blocks to build content sites, fast.
53
47
  buttons:
54
48
  - text: Get Started
55
- href: /overview/installation
56
- color: brand
49
+ href: /overview/installation/
57
50
  - text: Github
58
51
  href: https://github.com/fulldotdev/ui
59
- target: _blank
60
52
  icon: brand-github
61
- color: brand
53
+ target: _blank
62
54
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: Mug
2
+ title: Post
3
3
  description: Lorem ipsum dolor sit
4
4
  ---
5
5
 
@@ -1,8 +1,8 @@
1
1
  ---
2
- title: My Product Title
3
- categories:
4
- - mugs
5
- description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec auctor, libero at lacinia ferment
2
+ title: Product
3
+ parents:
4
+ - categories/category
5
+ description: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
6
6
  price: 90
7
7
  images:
8
8
  - placeholder.webp
package/src/css/theme.css CHANGED
@@ -89,5 +89,7 @@
89
89
  --chart-3: 30 80% 55%;
90
90
  --chart-4: 280 65% 60%;
91
91
  --chart-5: 340 75% 55%;
92
+
93
+ color-scheme: dark;
92
94
  }
93
95
  }
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <browserconfig>
3
+ <msapplication>
4
+ <tile>
5
+ <square150x150logo src="/favicon/mstile-150x150.png"/>
6
+ <TileColor>#fff</TileColor>
7
+ </tile>
8
+ </msapplication>
9
+ </browserconfig>
Binary file
@@ -0,0 +1,16 @@
1
+ <svg width="758" height="758" viewBox="0 0 758 758" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_45_5)">
3
+ <rect width="758" height="758" fill="#FF5500"/>
4
+ <rect x="-133" y="-133" width="1024" height="1024" fill="url(#paint0_radial_45_5)"/>
5
+ <path d="M269.363 565C264.945 565 261.363 561.419 261.363 557V200.637C261.363 196.218 264.945 192.637 269.363 192.637H499.909C504.327 192.637 507.909 196.218 507.909 200.637V249.546C507.909 253.964 504.327 257.546 499.909 257.546H348.091C343.672 257.546 340.091 261.128 340.091 265.546V338.273C340.091 342.691 343.672 346.273 348.091 346.273H483.545C487.963 346.273 491.545 349.855 491.545 354.273V403.182C491.545 407.6 487.963 411.182 483.545 411.182H348.091C343.672 411.182 340.091 414.764 340.091 419.182V557C340.091 561.419 336.509 565 332.091 565H269.363Z" fill="#EEEEEC"/>
6
+ </g>
7
+ <defs>
8
+ <radialGradient id="paint0_radial_45_5" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(379 379) rotate(45) scale(724.077)">
9
+ <stop stop-color="#111110" stop-opacity="0.2"/>
10
+ <stop offset="0.9" stop-color="#111110" stop-opacity="0"/>
11
+ </radialGradient>
12
+ <clipPath id="clip0_45_5">
13
+ <rect width="758" height="758" fill="white"/>
14
+ </clipPath>
15
+ </defs>
16
+ </svg>
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "Fulldev UI",
3
+ "short_name": "Fulldev UI",
4
+ "description": "Fulldev UI",
5
+ "dir": "auto",
6
+ "lang": "en-GB",
7
+ "display": "standalone",
8
+ "display_override": [
9
+ "window-controls-overlay",
10
+ "standalone"
11
+ ],
12
+ "orientation": "any",
13
+ "start_url": "/?homescreen=1",
14
+ "background_color": "#fff",
15
+ "theme_color": "#fff",
16
+ "icons": [
17
+ {
18
+ "src": "/favicon/android-chrome-192x192.png",
19
+ "sizes": "192x192",
20
+ "type": "image/png",
21
+ "purpose": "any"
22
+ },
23
+ {
24
+ "src": "/favicon/android-chrome-512x512.png",
25
+ "sizes": "512x512",
26
+ "type": "image/png",
27
+ "purpose": "maskable"
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,16 @@
1
+ <svg width="758" height="758" viewBox="0 0 758 758" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_45_5)">
3
+ <rect width="758" height="758" fill="#FF5500"/>
4
+ <rect x="-133" y="-133" width="1024" height="1024" fill="url(#paint0_radial_45_5)"/>
5
+ <path d="M269.363 565C264.945 565 261.363 561.419 261.363 557V200.637C261.363 196.218 264.945 192.637 269.363 192.637H499.909C504.327 192.637 507.909 196.218 507.909 200.637V249.546C507.909 253.964 504.327 257.546 499.909 257.546H348.091C343.672 257.546 340.091 261.128 340.091 265.546V338.273C340.091 342.691 343.672 346.273 348.091 346.273H483.545C487.963 346.273 491.545 349.855 491.545 354.273V403.182C491.545 407.6 487.963 411.182 483.545 411.182H348.091C343.672 411.182 340.091 414.764 340.091 419.182V557C340.091 561.419 336.509 565 332.091 565H269.363Z" fill="#EEEEEC"/>
6
+ </g>
7
+ <defs>
8
+ <radialGradient id="paint0_radial_45_5" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(379 379) rotate(45) scale(724.077)">
9
+ <stop stop-color="#111110" stop-opacity="0.2"/>
10
+ <stop offset="0.9" stop-color="#111110" stop-opacity="0"/>
11
+ </radialGradient>
12
+ <clipPath id="clip0_45_5">
13
+ <rect width="758" height="758" fill="white"/>
14
+ </clipPath>
15
+ </defs>
16
+ </svg>
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "1.0",
3
+ "api_version": 1,
4
+ "layout": {
5
+ "logo": "/favicon/yandex-browser-50x50.png",
6
+ "color": "#fff",
7
+ "show_title": true
8
+ }
9
+ }
@@ -5,9 +5,14 @@ import favicons from 'astro-favicons'
5
5
  import liveCode from 'astro-live-code'
6
6
  import robotsTxt from 'astro-robots-txt'
7
7
  import { envField } from 'astro/config'
8
+ import fs from 'fs'
9
+ import yaml from 'js-yaml'
10
+ import path from 'path'
11
+ import { assign } from 'radash'
8
12
  import tailwindcss from 'tailwindcss'
9
13
  import tailwindcssNesting from 'tailwindcss/nesting'
10
14
  import { loadEnv } from 'vite'
15
+ import virtual from 'vite-plugin-virtual'
11
16
  import tailwindConfig from '../../tailwind.config.ts'
12
17
 
13
18
  interface Config {
@@ -15,10 +20,15 @@ interface Config {
15
20
  company?: string
16
21
  css?: string
17
22
  injectRoutes?: boolean
23
+ cloudcannon?: boolean
24
+ cart?: boolean
25
+ overrides?: {
26
+ [k: string]: string
27
+ }
18
28
  }
19
29
 
20
30
  export default function fulldevIntegration(
21
- config?: Partial<Config> | undefined
31
+ config: Partial<Config> | undefined
22
32
  ): AstroIntegration {
23
33
  return {
24
34
  name: '/integration',
@@ -64,6 +74,16 @@ export default function fulldevIntegration(
64
74
  }),
65
75
  ],
66
76
  vite: {
77
+ resolve: {
78
+ alias: {
79
+ ...config?.overrides,
80
+ },
81
+ },
82
+ plugins: [
83
+ virtual({
84
+ 'virtual:fulldev-ui/config': config ?? {},
85
+ }),
86
+ ],
67
87
  css: {
68
88
  postcss: {
69
89
  plugins: [tailwindcss(tailwindConfig), tailwindcssNesting],
@@ -88,6 +108,7 @@ export default function fulldevIntegration(
88
108
  }),
89
109
  ],
90
110
  })
111
+
91
112
  // ----------------------
92
113
  // Inject routes
93
114
  // ----------------------
@@ -96,22 +117,6 @@ export default function fulldevIntegration(
96
117
  pattern: '/[...page]',
97
118
  entrypoint: 'fulldev-ui/pages/[...page].astro',
98
119
  })
99
- injectRoute({
100
- pattern: '/[...doc]',
101
- entrypoint: 'fulldev-ui/pages/[...doc].astro',
102
- })
103
- injectRoute({
104
- pattern: '/[...category]',
105
- entrypoint: 'fulldev-ui/pages/[...category].astro',
106
- })
107
- injectRoute({
108
- pattern: '/[...post]',
109
- entrypoint: 'fulldev-ui/pages/[...post].astro',
110
- })
111
- injectRoute({
112
- pattern: '/[...product]',
113
- entrypoint: 'fulldev-ui/pages/[...product].astro',
114
- })
115
120
  }
116
121
 
117
122
  // ----------------------
@@ -119,6 +124,10 @@ export default function fulldevIntegration(
119
124
  // ----------------------
120
125
  config?.css && injectScript('page-ssr', `import "${config?.css}";`)
121
126
 
127
+ // ----------------------
128
+ // merge Cloudcannon configs
129
+ // ----------------------
130
+
122
131
  // ----------------------
123
132
  // Generate image YAML files
124
133
  // ----------------------
@@ -150,6 +159,28 @@ export default function fulldevIntegration(
150
159
  // }
151
160
  // }
152
161
  },
162
+ 'astro:build:done': async () => {
163
+ if (config?.cloudcannon) {
164
+ const __dirname = path.dirname(new URL(import.meta.url).pathname)
165
+ const libDir = path.join(__dirname, '../../cloudcannon.config.yml')
166
+ const userDir = path.join(process.cwd(), 'cloudcannon.config.yml')
167
+
168
+ console.log({ libDir, userDir })
169
+
170
+ const libConfig = yaml.load(
171
+ fs.readFileSync(path.resolve(libDir), 'utf8')
172
+ )
173
+
174
+ const userConfig = yaml.load(
175
+ fs.readFileSync(path.resolve(userDir), 'utf8')
176
+ )
177
+
178
+ const mergedConfig = assign(libConfig || {}, userConfig || {})
179
+ const yamlContent = yaml.dump(mergedConfig)
180
+
181
+ await fs.promises.writeFile(userDir, yamlContent, 'utf8')
182
+ }
183
+ },
153
184
  },
154
185
  }
155
186
  }
@@ -1,25 +1,28 @@
1
1
  ---
2
+ import type { ComponentProps } from 'astro/types'
2
3
  import type { CollectionEntry } from 'astro:content'
3
4
  import { getCollection } from 'astro:content'
4
- import Intro from 'fulldev-ui/blocks/Intro.astro'
5
- import Products from 'fulldev-ui/blocks/Products.astro'
5
+ import Products1 from 'fulldev-ui/blocks/Products1.astro'
6
6
  import Carousel from 'fulldev-ui/components/Carousel.astro'
7
7
  import Element from 'fulldev-ui/components/Element.astro'
8
+ import Layout from 'fulldev-ui/components/Layout.astro'
8
9
  import Prose from 'fulldev-ui/components/Prose.astro'
9
10
  import Select from 'fulldev-ui/components/Select.astro'
10
- import Layout from 'fulldev-ui/layouts/Layout.astro'
11
- import { getHref } from 'fulldev-ui/utils/getHref'
11
+ import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
12
+ import { getHref } from 'fulldev-ui/utils/getHref.ts'
12
13
 
13
- type Props = CollectionEntry<'categories'>
14
+ interface Props extends ComponentProps<typeof Layout>, PageSchema {
15
+ render: CollectionEntry<'pages'>['render']
16
+ slug: CollectionEntry<'pages'>['slug']
17
+ }
14
18
 
15
- const { render, slug } = Astro.props
16
- const { title, description } = Astro.props.data
19
+ const { render, slug, title, description } = Astro.props
17
20
 
18
- const categories = await getCollection('categories', ({ data }) =>
21
+ const categories = await getCollection('pages', ({ data }) =>
19
22
  data.categories?.some((c) => c.slug.includes(slug))
20
23
  )
21
24
 
22
- const products = await getCollection('products', ({ data }) =>
25
+ const products = await getCollection('pages', ({ data }) =>
23
26
  data.categories?.some((c) => c.slug.includes(slug))
24
27
  )
25
28
 
@@ -70,18 +73,21 @@ const sorts = [
70
73
  })
71
74
  </script>
72
75
 
73
- <Layout {...Astro.props}>
74
- <Intro
76
+ <Layout
77
+ class:list="category"
78
+ {...Astro.props}
79
+ >
80
+ <!-- <Intro1
75
81
  heading={title}
76
- paragraph={description}
77
- />
82
+ text={description}
83
+ /> -->
78
84
  <Carousel>
79
85
  {
80
86
  categories.map((category) => (
81
87
  <Element
82
88
  as="a"
83
89
  class:list="item"
84
- href={getHref('categories', category.slug)}
90
+ href={getHref(category.slug)}
85
91
  >
86
92
  {category.data.title}
87
93
  </Element>
@@ -99,7 +105,7 @@ const sorts = [
99
105
  </Element>
100
106
  {
101
107
  sorts.map((sort: any) => (
102
- <Products
108
+ <Products1
103
109
  class:list={sort.option !== 'Aanbevolen' ? 'hide' : ''}
104
110
  products={sort.products}
105
111
  />
@@ -0,0 +1,70 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import type { CollectionEntry } from 'astro:content'
4
+ import Footer from 'fulldev-ui/blocks/Footer.astro'
5
+ import Header from 'fulldev-ui/blocks/Header.astro'
6
+ import Container from 'fulldev-ui/components/Container.astro'
7
+ import Element from 'fulldev-ui/components/Element.astro'
8
+ import Heading from 'fulldev-ui/components/Heading.astro'
9
+ import Layout from 'fulldev-ui/components/Layout.astro'
10
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
11
+ import Prose from 'fulldev-ui/components/Prose.astro'
12
+ import Sidebar from 'fulldev-ui/components/Sidebar.astro'
13
+ import Toc from 'fulldev-ui/components/Toc.astro'
14
+ import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
15
+
16
+ interface Props extends ComponentProps<typeof Layout>, PageSchema {
17
+ render: CollectionEntry<'pages'>['render']
18
+ }
19
+
20
+ const { header, sidebar, render, title, description, footer } = Astro.props
21
+
22
+ const { Content } = await render()
23
+ ---
24
+
25
+ <Layout
26
+ class:list="doc"
27
+ {...Astro.props}
28
+ >
29
+ <Header
30
+ {...sidebar}
31
+ {...header}
32
+ />
33
+ <Container class:list="doc-container">
34
+ <Sidebar {...sidebar} />
35
+ <Element
36
+ class:list="doc-main"
37
+ as="main"
38
+ >
39
+ <Prose>
40
+ <Heading
41
+ as="h1"
42
+ size="4xl"
43
+ text={title}
44
+ />
45
+ <Paragraph
46
+ muted
47
+ size="lg"
48
+ text={description}
49
+ />
50
+ <Content />
51
+ </Prose>
52
+ <Toc {render} />
53
+ </Element>
54
+ </Container>
55
+ <Footer {...footer} />
56
+ </Layout>
57
+
58
+ <style is:global>
59
+ @layer fulldev {
60
+ .doc {
61
+ .doc-container {
62
+ @apply flex gap-x-gutter;
63
+ }
64
+
65
+ .doc-main {
66
+ @apply flex grow justify-evenly gap-x-gutter;
67
+ }
68
+ }
69
+ }
70
+ </style>
@@ -0,0 +1,62 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import type { CollectionEntry } from 'astro:content'
4
+ import { getEntries } from 'astro:content'
5
+ import Content3 from 'fulldev-ui/blocks/Content3.astro'
6
+ import Footer from 'fulldev-ui/blocks/Footer.astro'
7
+ import Header from 'fulldev-ui/blocks/Header.astro'
8
+ import Block from 'fulldev-ui/components/Block.astro'
9
+ import Element from 'fulldev-ui/components/Element.astro'
10
+ import Layout from 'fulldev-ui/components/Layout.astro'
11
+ import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
12
+ import { getHref } from 'fulldev-ui/utils/getHref.ts'
13
+
14
+ interface Props extends ComponentProps<typeof Layout>, PageSchema {
15
+ render: CollectionEntry<'pages'>['render']
16
+ }
17
+
18
+ const {
19
+ title,
20
+ description,
21
+ list,
22
+ button,
23
+ buttons,
24
+ header,
25
+ sidebar,
26
+ render,
27
+ parents,
28
+ blocks,
29
+ footer,
30
+ } = Astro.props
31
+
32
+ const parentEntries = parents && (await getEntries(parents))
33
+
34
+ const { Content } = await render()
35
+ ---
36
+
37
+ <Layout
38
+ class:list="job"
39
+ {...Astro.props}
40
+ >
41
+ <Header
42
+ {...sidebar}
43
+ {...header}
44
+ />
45
+ <Element as="main">
46
+ <Content3
47
+ badges={parentEntries?.map((parent) => ({
48
+ text: parent.data.title,
49
+ href: getHref(parent.slug),
50
+ }))}
51
+ heading={title}
52
+ paragraph={description}
53
+ {list}
54
+ {button}
55
+ {buttons}
56
+ >
57
+ <Content />
58
+ </Content3>
59
+ {blocks?.map((block) => <Block {...block} />)}
60
+ </Element>
61
+ <Footer {...footer} />
62
+ </Layout>