fulldev-ui 0.4.33 → 0.5.0-beta-16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/.env.example +3 -0
  2. package/CONTRIBUTING.md +10 -4
  3. package/astro.config.ts +11 -11
  4. package/package.json +31 -17
  5. package/pnpm-lock.yaml +1353 -438
  6. package/public/favicon/android-chrome-192x192.png +0 -0
  7. package/public/favicon/android-chrome-512x512.png +0 -0
  8. package/public/favicon/apple-touch-icon.png +0 -0
  9. package/public/favicon/browserconfig.xml +7 -7
  10. package/public/favicon/favicon-16x16-dark.png +0 -0
  11. package/public/favicon/favicon-16x16.png +0 -0
  12. package/public/favicon/favicon-32x32-dark.png +0 -0
  13. package/public/favicon/favicon-32x32.png +0 -0
  14. package/public/favicon/favicon-48x48-dark.png +0 -0
  15. package/public/favicon/favicon-48x48.png +0 -0
  16. package/public/favicon/favicon-dark.ico +0 -0
  17. package/public/favicon/favicon.ico +0 -0
  18. package/public/favicon/favicon.svg +16 -0
  19. package/public/favicon/manifest.webmanifest +26 -0
  20. package/public/favicon/mstile-150x150.png +0 -0
  21. package/public/favicon/safari-pinned-tab.svg +14 -15
  22. package/public/favicon/yandex-browser-50x50.png +0 -0
  23. package/public/favicon/yandex-browser-manifest.json +9 -0
  24. package/src/blocks/Article.astro +40 -0
  25. package/src/blocks/Banner.astro +48 -0
  26. package/src/blocks/Colleagues.astro +2 -1
  27. package/src/blocks/Contact.astro +61 -99
  28. package/src/blocks/Cta.astro +2 -1
  29. package/src/blocks/Excerpt.astro +14 -0
  30. package/src/blocks/Hero.astro +1 -2
  31. package/src/blocks/Intro.astro +4 -1
  32. package/src/blocks/Jobs.astro +1 -1
  33. package/src/blocks/Prices.astro +1 -1
  34. package/src/blocks/Product.astro +75 -27
  35. package/src/blocks/Reviews.astro +1 -1
  36. package/src/components/Avatar.astro +3 -20
  37. package/src/components/Badge.astro +17 -54
  38. package/src/components/Badges.astro +40 -0
  39. package/src/components/Button.astro +65 -46
  40. package/src/components/Buttons.astro +49 -0
  41. package/src/components/Card.astro +100 -178
  42. package/src/components/Cards.astro +135 -0
  43. package/src/components/Cart.astro +38 -0
  44. package/src/components/CartForm.astro +122 -0
  45. package/src/components/CartList.astro +134 -0
  46. package/src/components/CartSummary.astro +148 -0
  47. package/src/components/Channel.astro +70 -0
  48. package/src/components/Channels.astro +37 -0
  49. package/src/components/Checkbox.astro +12 -16
  50. package/src/components/Dialog.astro +10 -12
  51. package/src/components/Drawer.astro +131 -63
  52. package/src/components/Element.astro +58 -0
  53. package/src/components/Footer.astro +142 -93
  54. package/src/components/Form.astro +49 -0
  55. package/src/components/Head.astro +11 -45
  56. package/src/components/Header.astro +91 -163
  57. package/src/components/Heading.astro +18 -26
  58. package/src/components/Icon.astro +9 -9
  59. package/src/components/Image.astro +42 -152
  60. package/src/components/Input.astro +16 -28
  61. package/src/components/Label.astro +14 -17
  62. package/src/components/Link.astro +22 -44
  63. package/src/components/List.astro +12 -10
  64. package/src/components/LocaleSwitcher.astro +25 -0
  65. package/src/components/Menu.astro +57 -0
  66. package/src/components/Price.astro +34 -0
  67. package/src/components/Rating.astro +29 -25
  68. package/src/components/Search.astro +4 -7
  69. package/src/components/Section.astro +196 -234
  70. package/src/components/Select.astro +16 -34
  71. package/src/components/Sidebar.astro +85 -58
  72. package/src/components/Social.astro +36 -0
  73. package/src/components/Socials.astro +37 -0
  74. package/src/components/Switch.astro +14 -22
  75. package/src/components/Table.astro +23 -36
  76. package/src/components/Tagline.astro +11 -16
  77. package/src/components/Text.astro +17 -19
  78. package/src/components/Textarea.astro +8 -22
  79. package/src/components/ThemeSelect.astro +41 -0
  80. package/src/components/Toc.astro +59 -56
  81. package/src/components/Writeup.astro +90 -0
  82. package/src/components/docs/PropsTable.astro +229 -56
  83. package/src/components/experimental/Form.astro +36 -17
  84. package/src/components/experimental/Gallery.astro +50 -126
  85. package/src/components/experimental/Logo.astro +26 -9
  86. package/src/components/experimental/Prose.astro +41 -5
  87. package/src/components/experimental/Video.astro +1 -1
  88. package/src/components/experimental/Window.astro +3 -4
  89. package/src/components/sections.astro +28 -0
  90. package/src/content/config.ts +10 -7
  91. package/src/content/pages/base/_dialog.mdx +1 -2
  92. package/src/content/pages/base/_drawer.mdx +1 -2
  93. package/src/content/pages/base/_localeswitcher.mdx +17 -0
  94. package/src/content/pages/base/_switch.mdx +1 -2
  95. package/src/content/pages/base/badge.mdx +1 -12
  96. package/src/content/pages/base/button.mdx +1 -12
  97. package/src/content/pages/base/card.mdx +2 -29
  98. package/src/content/pages/base/checkbox.mdx +1 -2
  99. package/src/content/pages/base/icon.mdx +1 -2
  100. package/src/content/pages/base/image.mdx +42 -0
  101. package/src/content/pages/base/input.mdx +1 -12
  102. package/src/content/pages/base/rating.mdx +3 -14
  103. package/src/content/pages/base/section.mdx +2 -3
  104. package/src/content/pages/base/select.mdx +1 -20
  105. package/src/content/pages/base/table.mdx +1 -28
  106. package/src/content/pages/base/textarea.mdx +1 -16
  107. package/src/content/pages/base/theme-select.mdx +15 -0
  108. package/src/content/pages/blocks/_categories.mdx +3 -5
  109. package/src/content/pages/blocks/{footer.mdx → _footer.mdx} +2 -4
  110. package/src/content/pages/blocks/{header.mdx → _header.mdx} +2 -7
  111. package/src/content/pages/blocks/_jobs.mdx +1 -2
  112. package/src/content/pages/blocks/{prices.mdx → _prices.mdx} +5 -7
  113. package/src/content/pages/blocks/_product.mdx +74 -4
  114. package/src/content/pages/blocks/_products.mdx +1 -2
  115. package/src/content/pages/blocks/_stats.mdx +1 -1
  116. package/src/content/pages/blocks/{_banner.mdx → banner.mdx} +2 -2
  117. package/src/content/pages/blocks/colleagues.mdx +6 -8
  118. package/src/content/pages/blocks/contact.mdx +69 -0
  119. package/src/content/pages/blocks/content.mdx +1 -19
  120. package/src/content/pages/blocks/cta.mdx +2 -25
  121. package/src/content/pages/blocks/features.mdx +2 -3
  122. package/src/content/pages/blocks/hero.mdx +5 -3
  123. package/src/content/pages/blocks/intro.mdx +2 -5
  124. package/src/content/pages/blocks/posts.mdx +9 -2
  125. package/src/content/pages/blocks/reviews.mdx +23 -18
  126. package/src/content/pages/index.mdx +16 -20
  127. package/src/content/pages/layouts/_layout.mdx +14 -0
  128. package/src/content/pages/layouts/docslayout.mdx +14 -0
  129. package/src/content/pages/overview/components.mdx +75 -0
  130. package/src/content/pages/overview/content-collections.mdx +139 -0
  131. package/src/content/pages/overview/frameworks.mdx +4 -4
  132. package/src/content/pages/overview/installation.mdx +36 -3
  133. package/src/content/pages/overview/introduction.mdx +19 -9
  134. package/src/content/pages/overview/theming.mdx +53 -67
  135. package/src/content/pages/schemas/page.mdx +17 -0
  136. package/src/content/pages/schemas/preset.mdx +9 -0
  137. package/src/content/pages/showcase/anti-slip-profiles.md +5 -0
  138. package/src/content/pages/showcase/fulldev-ui.md +5 -0
  139. package/src/content/pages/showcase/lavis-detailing.md +5 -0
  140. package/src/content/pages/showcase/leren-trainingsacteren.md +5 -0
  141. package/src/content/pages/showcase/miele-witgoedcenter-amsterdam.md +5 -0
  142. package/src/content/{records/record.yml → pages/showcase/record.md} +2 -0
  143. package/src/content/pages/showcase/sloepverhuur-bolsward.md +5 -0
  144. package/src/content/pages/showcase/stark-vulcanising-products.md +5 -0
  145. package/src/content/pages/showcase/the-gym-haren.md +5 -0
  146. package/src/content/pages/showcase/van-dillen-antieke-bouwmaterialen.md +5 -0
  147. package/src/content/pages/showcase.mdx +11 -41
  148. package/src/content/pages/typography/_tagline.mdx +1 -2
  149. package/src/content/pages/typography/heading.mdx +1 -2
  150. package/src/content/pages/typography/label.mdx +1 -2
  151. package/src/content/pages/typography/link.mdx +1 -13
  152. package/src/content/pages/typography/list.mdx +1 -2
  153. package/src/content/pages/typography/text.mdx +1 -2
  154. package/src/content/{settings → presets}/base.yml +62 -45
  155. package/src/content/presets/blocks.yml +1 -0
  156. package/src/content/presets/docs.yml +6 -0
  157. package/src/css/color.css +0 -82
  158. package/src/css/custom.css +9 -56
  159. package/src/css/size.css +10 -0
  160. package/src/css/space.css +0 -8
  161. package/src/css/styles.css +0 -15
  162. package/src/env.d.ts +1 -1
  163. package/src/images/avatar-1.yml +1 -0
  164. package/src/images/favicon.svg +16 -0
  165. package/src/integration/generate-colors.ts +2 -0
  166. package/src/integration/index.ts +95 -7
  167. package/src/layouts/BlockLayout.astro +10 -15
  168. package/src/layouts/ContactLayout.astro +21 -0
  169. package/src/layouts/DocsLayout.astro +73 -0
  170. package/src/layouts/Layout.astro +114 -133
  171. package/src/layouts/OverviewLayout.astro +28 -31
  172. package/src/layouts/PostLayout.astro +12 -23
  173. package/src/layouts/ProductLayout.astro +10 -20
  174. package/src/loaders/imageLoader.ts +26 -0
  175. package/src/pages/[...page].astro +25 -21
  176. package/src/schemas/components/avatar.ts +3 -0
  177. package/src/schemas/components/avatars.ts +4 -0
  178. package/src/schemas/components/badge.ts +13 -0
  179. package/src/schemas/components/button.ts +16 -0
  180. package/src/schemas/components/buttons.ts +4 -0
  181. package/src/schemas/components/card.ts +25 -0
  182. package/src/schemas/components/cards.ts +4 -0
  183. package/src/schemas/components/channel.ts +13 -0
  184. package/src/schemas/components/channels.ts +4 -0
  185. package/src/schemas/components/footer.ts +25 -0
  186. package/src/schemas/components/header.ts +11 -0
  187. package/src/schemas/components/heading.ts +3 -0
  188. package/src/schemas/components/icon.ts +3 -0
  189. package/src/schemas/components/image.ts +25 -0
  190. package/src/schemas/components/images.ts +4 -0
  191. package/src/schemas/components/list.ts +3 -0
  192. package/src/schemas/components/logo.ts +3 -0
  193. package/src/schemas/components/menu.ts +13 -0
  194. package/src/schemas/components/price.ts +3 -0
  195. package/src/schemas/components/rating.ts +15 -0
  196. package/src/schemas/components/section.ts +15 -0
  197. package/src/schemas/components/sections.ts +3 -0
  198. package/src/schemas/components/sidebar.ts +15 -0
  199. package/src/schemas/components/social.ts +3 -0
  200. package/src/schemas/components/socials.ts +4 -0
  201. package/src/schemas/components/tagline.ts +3 -0
  202. package/src/schemas/components/text.ts +3 -0
  203. package/src/schemas/components/toc.ts +3 -0
  204. package/src/schemas/components/writeup.ts +20 -0
  205. package/src/schemas/imageSchema.ts +12 -0
  206. package/src/schemas/pageSchema.ts +91 -0
  207. package/src/schemas/presetSchema.ts +3 -0
  208. package/src/schemas/utils/component.ts +17 -0
  209. package/src/schemas/utils/navigation.ts +8 -0
  210. package/src/schemas/utils/parents.ts +3 -0
  211. package/src/schemas/{utils.ts → utils/pathSchema.ts} +2 -11
  212. package/src/stores/cart.ts +23 -0
  213. package/src/types/global-props.ts +16 -0
  214. package/src/types/virtual-modules.d.ts +5 -0
  215. package/src/utils/_archive/Childmorphic.ts +1 -1
  216. package/src/utils/_archive/mergeEntries.ts +28 -0
  217. package/src/utils/cart.ts +32 -0
  218. package/src/utils/getDeepReferenceChildren.ts +14 -0
  219. package/src/utils/getFolderChildren.ts +18 -0
  220. package/src/utils/getReferenceChildren.ts +14 -0
  221. package/src/utils/getSiblingPages.ts +14 -0
  222. package/tsconfig.json +2 -5
  223. package/public/favicon/site.webmanifest +0 -19
  224. package/public/images/avatars/1.jpeg +0 -0
  225. package/public/images/avatars/2.jpeg +0 -0
  226. package/public/images/avatars/3.jpeg +0 -0
  227. package/public/images/avatars/300/1.jpeg +0 -0
  228. package/public/images/avatars/300/2.jpeg +0 -0
  229. package/public/images/avatars/300/3.jpeg +0 -0
  230. package/public/images/avatars/300/4.jpeg +0 -0
  231. package/public/images/avatars/4.jpeg +0 -0
  232. package/public/images/avatars/5.jpeg +0 -0
  233. package/public/images/avatars/6.jpeg +0 -0
  234. package/public/images/avatars/7.jpeg +0 -0
  235. package/public/images/avatars/8.jpeg +0 -0
  236. package/public/images/blocks/colleagues.png +0 -0
  237. package/public/images/blocks/content.png +0 -0
  238. package/public/images/blocks/cta.png +0 -0
  239. package/public/images/blocks/features.png +0 -0
  240. package/public/images/blocks/footer.png +0 -0
  241. package/public/images/blocks/header.png +0 -0
  242. package/public/images/blocks/hero.png +0 -0
  243. package/public/images/blocks/intro.png +0 -0
  244. package/public/images/blocks/posts.png +0 -0
  245. package/public/images/blocks/prices.png +0 -0
  246. package/public/images/blocks/reviews.png +0 -0
  247. package/public/images/logo-placeholder.svg +0 -1
  248. package/src/components/Bento.astro +0 -43
  249. package/src/components/Block.astro +0 -157
  250. package/src/components/Blocks.astro +0 -5
  251. package/src/components/Box.astro +0 -63
  252. package/src/components/Carousel.astro +0 -54
  253. package/src/components/Column.astro +0 -73
  254. package/src/components/Grid.astro +0 -32
  255. package/src/components/Masonry.astro +0 -42
  256. package/src/components/Root.astro +0 -94
  257. package/src/components/Row.astro +0 -49
  258. package/src/components/Split.astro +0 -59
  259. package/src/components/Spread.astro +0 -46
  260. package/src/components/Stack.astro +0 -36
  261. package/src/components/Toggle.astro +0 -46
  262. package/src/components/Wrap.astro +0 -42
  263. package/src/components/docs/NavigationButtons.astro +0 -59
  264. package/src/components/experimental/Channel.astro +0 -74
  265. package/src/components/experimental/GalleryVertical.astro +0 -161
  266. package/src/components/experimental/Price.astro +0 -40
  267. package/src/content/pages/_changelog.mdx +0 -10
  268. package/src/content/pages/_segment/footer.mdx +0 -244
  269. package/src/content/pages/_segment/header.mdx +0 -210
  270. package/src/content/pages/base/_image.mdx +0 -14
  271. package/src/content/pages/base/toggle.mdx +0 -32
  272. package/src/content/pages/blocks.mdx +0 -10
  273. package/src/content/pages/overview/integration.mdx +0 -37
  274. package/src/content/pages/structure/_row.mdx +0 -23
  275. package/src/content/pages/structure/_wrap.mdx +0 -25
  276. package/src/content/pages/structure/carousel.mdx +0 -31
  277. package/src/content/pages/structure/column.mdx +0 -21
  278. package/src/content/pages/structure/grid.mdx +0 -26
  279. package/src/content/pages/structure/masonry.mdx +0 -32
  280. package/src/content/pages/structure/split.mdx +0 -21
  281. package/src/content/pages/structure/spread.mdx +0 -21
  282. package/src/content/pages/structure/stack.mdx +0 -22
  283. package/src/content/settings/components.yml +0 -29
  284. package/src/layouts/BlockOverviewLayout.astro +0 -39
  285. package/src/layouts/ComponentLayout.astro +0 -23
  286. package/src/layouts/JobsLayout.astro +0 -40
  287. package/src/layouts/PageLayout.astro +0 -32
  288. package/src/schemas/base.ts +0 -90
  289. package/src/schemas/block.ts +0 -15
  290. package/src/schemas/card.ts +0 -3
  291. package/src/schemas/page.ts +0 -43
  292. package/src/utils/mergeEntries.ts +0 -28
  293. /package/{public/showcase → src/images}/anti-slip-profiles.webp +0 -0
  294. /package/{public/images/avatars/500/1.jpeg → src/images/avatar-1.jpeg} +0 -0
  295. /package/{public/images/avatars/500/2.jpeg → src/images/avatar-2.jpeg} +0 -0
  296. /package/{public/images/avatars/500/3.jpeg → src/images/avatar-3.jpeg} +0 -0
  297. /package/{public/images/avatars/500/4.jpeg → src/images/avatar-4.jpeg} +0 -0
  298. /package/{public → src}/images/avatar-placeholder.jpg +0 -0
  299. /package/{public → src}/images/block-code.png +0 -0
  300. /package/{public → src}/images/component-code.png +0 -0
  301. /package/{public/showcase → src/images}/fulldev-ui.webp +0 -0
  302. /package/{public/showcase → src/images}/lavis-detailing.webp +0 -0
  303. /package/{public/showcase → src/images}/leren-trainingsacteren.webp +0 -0
  304. /package/{public/showcase → src/images}/miele-witgoedcenter-amsterdam.webp +0 -0
  305. /package/{public → src}/images/og-image.png +0 -0
  306. /package/{public → src}/images/placeholder-center.webp +0 -0
  307. /package/{public → src}/images/placeholder-landscape-dark.png +0 -0
  308. /package/{public → src}/images/placeholder-landscape.webp +0 -0
  309. /package/{public → src}/images/placeholder-portrait.webp +0 -0
  310. /package/{public → src}/images/placeholder-right.webp +0 -0
  311. /package/{public → src}/images/placeholder.webp +0 -0
  312. /package/{public/showcase → src/images}/sloepverhuur-bolsward.webp +0 -0
  313. /package/{public/showcase → src/images}/stark-vulcanising-products.webp +0 -0
  314. /package/{public/showcase → src/images}/the-gym-haren.webp +0 -0
  315. /package/{public/showcase → src/images}/van-dillen-antieke-bouwmaterialen.webp +0 -0
Binary file
@@ -1,9 +1,9 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <browserconfig>
3
- <msapplication>
4
- <tile>
5
- <square150x150logo src="/favicon/mstile-150x150.png"/>
6
- <TileColor>#da532c</TileColor>
7
- </tile>
8
- </msapplication>
9
- </browserconfig>
3
+ <msapplication>
4
+ <tile>
5
+ <square150x150logo src="/favicon/mstile-150x150.png"/>
6
+ <TileColor>#fff</TileColor>
7
+ </tile>
8
+ </msapplication>
9
+ </browserconfig>
Binary file
Binary file
Binary file
Binary file
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,26 @@
1
+ {
2
+ "name": "Fulldev UI",
3
+ "short_name": "Fulldev UI",
4
+ "description": "A Multi-platform Favicon generator for Astro Project.",
5
+ "dir": "auto",
6
+ "lang": "en-US",
7
+ "display": "standalone",
8
+ "orientation": "any",
9
+ "start_url": "/?homescreen=1",
10
+ "background_color": "#fff",
11
+ "theme_color": "#fff",
12
+ "icons": [
13
+ {
14
+ "src": "/favicon/android-chrome-192x192.png",
15
+ "sizes": "192x192",
16
+ "type": "image/png",
17
+ "purpose": "any"
18
+ },
19
+ {
20
+ "src": "/favicon/android-chrome-512x512.png",
21
+ "sizes": "512x512",
22
+ "type": "image/png",
23
+ "purpose": "any"
24
+ }
25
+ ]
26
+ }
Binary file
@@ -1,17 +1,16 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
- <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
- width="525.000000pt" height="525.000000pt" viewBox="0 0 525.000000 525.000000"
6
- preserveAspectRatio="xMidYMid meet">
7
- <metadata>
8
- Created by potrace 1.14, written by Peter Selinger 2001-2017
9
- </metadata>
10
- <g transform="translate(0.000000,525.000000) scale(0.100000,-0.100000)"
11
- fill="#000000" stroke="none">
12
- <path d="M81 5237 c-19 -7 -44 -25 -55 -40 l-21 -28 0 -2543 c0 -2445 1 -2543
13
- 18 -2570 40 -60 -141 -56 2599 -55 1920 0 2521 3 2547 12 19 7 44 25 55 40
14
- l21 28 0 2543 c0 2445 -1 2543 -18 2570 -40 60 141 56 -2599 55 -1920 0 -2521
15
- -3 -2547 -12z"/>
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"/>
16
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>
17
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
+ }
@@ -0,0 +1,40 @@
1
+ ---
2
+ import Prose from 'fulldev-ui/components/experimental/Prose.astro'
3
+ import Section from 'fulldev-ui/components/Section.astro'
4
+ import Toc from 'fulldev-ui/components/Toc.astro'
5
+
6
+ const { toc = 'Op deze pagina', render } = Astro.props
7
+ const { Content } = (render && (await render())) || {}
8
+ ---
9
+
10
+ <Section class:list="article">
11
+ <Prose>
12
+ {Content && <Content />}
13
+ <slot />
14
+ </Prose>
15
+ <Toc
16
+ {render}
17
+ heading={toc}
18
+ />
19
+ </Section>
20
+
21
+ <style is:global lang="scss">
22
+ .article {
23
+ display: flex;
24
+ position: relative;
25
+ flex-grow: 1;
26
+ flex-direction: row;
27
+ align-items: start;
28
+ height: 100%;
29
+
30
+ &:first-child {
31
+ padding-top: var(--space-6);
32
+ }
33
+
34
+ .prose {
35
+ margin-right: auto;
36
+ margin-left: auto;
37
+ max-width: 768px;
38
+ }
39
+ }
40
+ </style>
@@ -0,0 +1,48 @@
1
+ ---
2
+ import Element from 'fulldev-ui/components/Element.astro'
3
+ import Text from 'fulldev-ui/components/Text.astro'
4
+
5
+ type Props = {
6
+ color?: 'base' | 'brand' | undefined
7
+ size?: 'sm' | 'md' | 'lg' | undefined
8
+ text?: string | undefined
9
+ }
10
+
11
+ const { color = 'brand', size = 'sm', text, ...rest } = Astro.props
12
+ ---
13
+
14
+ <Element
15
+ class:list={'banner'}
16
+ as="header"
17
+ {size}
18
+ {color}
19
+ {...rest}
20
+ >
21
+ <Text text={text} />
22
+ </Element>
23
+
24
+ <style lang="scss" is:global>
25
+ @layer fulldev {
26
+ .banner {
27
+ display: flex;
28
+ position: relative;
29
+ justify-content: center;
30
+ align-items: center;
31
+ background-color: var(--color-9);
32
+ padding: 0 var(--gutter);
33
+ width: 100%;
34
+ min-height: var(--banner-height);
35
+ overflow: hidden;
36
+ text-align: center;
37
+
38
+ .text {
39
+ color: var(--color-contrast);
40
+ }
41
+
42
+ &,
43
+ & ~ * {
44
+ --banner-height: 32px;
45
+ }
46
+ }
47
+ }
48
+ </style>
@@ -5,8 +5,9 @@ const { ...rest } = Astro.props
5
5
  ---
6
6
 
7
7
  <Section
8
- class:list="employees"
8
+ class:list="colleagues"
9
9
  structure="grid"
10
10
  align="center"
11
+ position="inset"
11
12
  {...rest}
12
13
  />
@@ -1,154 +1,116 @@
1
1
  ---
2
2
  import Button from 'fulldev-ui/components/Button.astro'
3
- import Column from 'fulldev-ui/components/Column.astro'
4
- import Channel from 'fulldev-ui/components/experimental/Channel.astro'
3
+ import Buttons from 'fulldev-ui/components/Buttons.astro'
4
+ import Channels from 'fulldev-ui/components/Channels.astro'
5
+ import Element from 'fulldev-ui/components/Element.astro'
5
6
  import Form from 'fulldev-ui/components/experimental/Form.astro'
6
7
  import Heading from 'fulldev-ui/components/Heading.astro'
7
8
  import Image from 'fulldev-ui/components/Image.astro'
8
9
  import Input from 'fulldev-ui/components/Input.astro'
9
- import Row from 'fulldev-ui/components/Row.astro'
10
10
  import Section from 'fulldev-ui/components/Section.astro'
11
+ import Socials from 'fulldev-ui/components/Socials.astro'
11
12
  import Tagline from 'fulldev-ui/components/Tagline.astro'
12
13
  import Text from 'fulldev-ui/components/Text.astro'
13
14
  import Textarea from 'fulldev-ui/components/Textarea.astro'
14
15
 
15
16
  const {
16
17
  heading,
18
+ form,
17
19
  text,
18
20
  tagline,
19
21
  googleMaps,
20
22
  buttons,
21
- channels,
22
23
  socials,
23
24
  position,
24
25
  image,
26
+ channels,
27
+ level = 1,
25
28
  ...rest
26
29
  } = Astro.props
27
30
  ---
28
31
 
29
32
  <Section
30
- class:list={'contact'}
33
+ class:list="contact"
31
34
  structure="split"
32
35
  {...rest}
33
36
  >
34
- <Column>
35
- <Tagline text={tagline} />
37
+ <Element class:list="column">
38
+ <Tagline
39
+ color="brand"
40
+ text={tagline}
41
+ />
36
42
  <Heading
37
- level={1}
43
+ size={'sm'}
44
+ level={level}
38
45
  text={heading}
39
46
  />
40
47
  <Text text={text} />
41
- <Row>
42
- {buttons?.map((button: any) => <Button {...button} />)}
43
- </Row>
44
- <Column>
45
- <Channel
46
- if={channels?.phone}
47
- icon="phone"
48
- heading="Telefoon"
49
- text={channels?.phone}
50
- href={`tel:${channels?.phone}`}
51
- />
52
- <Channel
53
- if={channels?.email}
54
- icon="mail"
55
- heading="Email"
56
- text={channels?.email}
57
- href={`mailto:${channels?.email}`}
58
- />
59
- {
60
- channels?.address && (
61
- <Channel
62
- if={channels?.address}
63
- icon="pin"
64
- heading="Adres"
65
- text={channels?.address}
66
- />
67
- )
68
- }
69
- </Column>
70
- {
71
- socials && (
72
- <Row size="sm">
73
- {socials?.facebook && (
74
- <Button
75
- href={socials?.facebook}
76
- variant="secondary"
77
- icon="brand-facebook"
78
- />
79
- )}
80
- {socials?.instagram && (
81
- <Button
82
- href={socials?.instagram}
83
- variant="secondary"
84
- href={socials?.instagram}
85
- icon="brand-instagram"
86
- />
87
- )}
88
- </Row>
89
- )
90
- }
91
-
48
+ <Buttons {buttons} />
49
+ <Channels {channels} />
50
+ <Socials {socials} />
92
51
  <Form
93
- action="/bedankt"
52
+ action="/thank-you"
94
53
  method="POST"
95
54
  >
96
- <Input
97
- label="Naam"
98
- id="Naam"
99
- name="Naam"
100
- type="text"
101
- required
102
- />
103
- <Input
104
- label="Email"
105
- id="Email"
106
- name="Email"
107
- type="email"
108
- required
109
- />
110
- <Input
111
- label="Telefoon"
112
- id="Telefoon"
113
- name="Telefoon"
114
- type="tel"
115
- required
116
- />
117
- <Textarea
118
- label="Bericht"
119
- id="Bericht"
120
- name="Bericht"
121
- />
55
+ {
56
+ form.fields.map((field: any) => {
57
+ if (field.type === 'textarea') {
58
+ return (
59
+ <Textarea
60
+ label={field.label}
61
+ id={field.name}
62
+ name={field.name}
63
+ required={field.required}
64
+ />
65
+ )
66
+ }
67
+ return (
68
+ <Input
69
+ label={field.label}
70
+ id={field.name}
71
+ name={field.name}
72
+ type={field.type}
73
+ required={field.required}
74
+ />
75
+ )
76
+ })
77
+ }
122
78
  <Button
123
- as="button"
124
79
  type="submit"
125
80
  color="brand"
126
- text="Verstuur bericht"
81
+ variant="primary"
82
+ text={form.button}
127
83
  />
128
84
  </Form>
129
- </Column>
85
+ </Element>
130
86
 
131
- <!-- <iframe
132
- src={googleMaps}
133
- width="100%"
134
- height="450"
135
- style="border:0; margin-top: var(--space-6);"
136
- allowfullscreen="false"
137
- loading="lazy"
138
- referrerpolicy="no-referrer-when-downgrade"
139
- ></iframe> -->
140
87
  <Image
141
88
  {position}
142
- src={image}
89
+ {...image}
143
90
  />
144
91
  </Section>
145
92
 
146
93
  <style is:global lang="scss">
147
94
  @layer fulldev {
148
95
  .contact {
96
+ .column {
97
+ display: flex;
98
+ flex-direction: column;
99
+ align-items: flex-start;
100
+ }
101
+
102
+ > .column {
103
+ gap: var(--space-5);
104
+ }
105
+
149
106
  .channel + .channel {
150
107
  margin-top: var(--space-3) !important;
151
108
  }
109
+
110
+ .socials {
111
+ display: flex;
112
+ gap: var(--space-2);
113
+ }
152
114
  }
153
115
  }
154
116
  </style>
@@ -8,7 +8,8 @@ const { ...rest } = Astro.props
8
8
  class:list="cta"
9
9
  variant="primary"
10
10
  align="center"
11
- frame="panel"
12
11
  size="lg"
12
+ color="brand"
13
+ panel
13
14
  {...rest}
14
15
  />
@@ -0,0 +1,14 @@
1
+ ---
2
+ import Section from 'fulldev-ui/components/Section.astro'
3
+
4
+ const { ...rest } = Astro.props
5
+ ---
6
+
7
+ <Section
8
+ level={1}
9
+ size="lg"
10
+ align="center"
11
+ variant="primary"
12
+ color="brand"
13
+ {...rest}
14
+ />
@@ -6,9 +6,8 @@ const { ...rest } = Astro.props
6
6
 
7
7
  <Section
8
8
  class:list="hero"
9
- structure="column"
10
- size="lg"
11
9
  level={1}
10
+ size="lg"
12
11
  align="center"
13
12
  variant="primary"
14
13
  color="brand"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  import Section from 'fulldev-ui/components/Section.astro'
3
3
 
4
- const { image, ...rest } = Astro.props
4
+ const { ...rest } = Astro.props
5
5
  ---
6
6
 
7
7
  <Section
@@ -9,6 +9,7 @@ const { image, ...rest } = Astro.props
9
9
  structure="column"
10
10
  size="sm"
11
11
  level={1}
12
+ position="background"
12
13
  {...rest}
13
14
  />
14
15
 
@@ -16,6 +17,8 @@ const { image, ...rest } = Astro.props
16
17
  @layer fulldev {
17
18
  .intro {
18
19
  border-bottom: 1px solid var(--base-6);
20
+ padding-top: var(--space-7);
21
+ padding-bottom: var(--space-7);
19
22
  }
20
23
  }
21
24
  </style>
@@ -7,6 +7,6 @@ const { ...rest } = Astro.props
7
7
  <Section
8
8
  class:list="jobs"
9
9
  structure="grid"
10
- frame="panel"
10
+ panel
11
11
  {...rest}
12
12
  />
@@ -7,7 +7,7 @@ const { ...rest } = Astro.props
7
7
  <Section
8
8
  class:list="prices"
9
9
  structure="stack"
10
- frame="panel"
10
+ panel
11
11
  {...rest}
12
12
  />
13
13
 
@@ -1,13 +1,13 @@
1
1
  ---
2
- import Button from 'fulldev-ui/components/Button.astro'
3
- import Column from 'fulldev-ui/components/Column.astro'
2
+ import { getImage } from 'astro:assets'
3
+ import CartForm from 'fulldev-ui/components/CartForm.astro'
4
+ import Element from 'fulldev-ui/components/Element.astro'
5
+ import Gallery from 'fulldev-ui/components/experimental/Gallery.astro'
4
6
  import Heading from 'fulldev-ui/components/Heading.astro'
5
7
  import Image from 'fulldev-ui/components/Image.astro'
6
- import Input from 'fulldev-ui/components/Input.astro'
7
- import Row from 'fulldev-ui/components/Row.astro'
8
+ import List from 'fulldev-ui/components/List.astro'
8
9
  import Section from 'fulldev-ui/components/Section.astro'
9
10
  import Text from 'fulldev-ui/components/Text.astro'
10
- import Price from 'fulldev-ui/components/experimental/Price.astro'
11
11
 
12
12
  const {
13
13
  heading,
@@ -20,45 +20,93 @@ const {
20
20
  buttons,
21
21
  text,
22
22
  subheading,
23
+ variants,
23
24
  button,
24
25
  description,
25
26
  form,
27
+ gallery = 'horizontal',
26
28
  ...rest
27
29
  } = Astro.props
30
+
31
+ const slug = Astro.url.pathname.replace(/^\/|\/$/g, '') || 'index'
32
+ const imageId = images?.[0]?.id
33
+ const src = `/src/images/${imageId}`
34
+ const allImages = import.meta.glob<{ default: ImageMetadata }>('/src/images/*')
35
+ const foundImage = allImages[src]
36
+ const gotImage =
37
+ imageId && (await getImage({ src: foundImage ? foundImage() : src }))
28
38
  ---
29
39
 
30
40
  <Section
31
- class:list={'product'}
41
+ class:list="product"
32
42
  structure="split"
33
43
  {...rest}
34
44
  >
35
- <Image src={image || images?.[0]} />
36
- <Column>
45
+ {
46
+ images && images.length > 1 ? (
47
+ <Gallery
48
+ {images}
49
+ direction={gallery}
50
+ />
51
+ ) : (
52
+ <Image {...(image || images?.[0])} />
53
+ )
54
+ }
55
+ <Element class:list="column">
37
56
  <Heading
38
- level={1}
57
+ level={2}
39
58
  text={heading || title}
40
59
  />
41
60
  <Text
42
61
  style={{ maxWidth: '420px' }}
43
62
  text={text || description}
44
63
  />
45
- <Price value={price} />
46
- <Row>
47
- <Input
48
- value={1}
49
- name={'quantity'}
50
- style={{ width: 'var(--space-6)' }}
51
- type="number"
52
- />
53
- <Button
54
- color="brand"
55
- text={form?.submit}
56
- />
57
- </Row>
58
- <Button
59
- style={{ marginTop: 'var(--space-3)', width: '100%', maxWidth: '400px' }}
60
- variant="soft"
61
- {...button}
64
+ <List
65
+ items={list}
66
+ style={{ marginTop: 'var(--space-5)' }}
67
+ />
68
+ <CartForm
69
+ image={gotImage?.src}
70
+ {title}
71
+ {price}
72
+ {slug}
73
+ {variants}
62
74
  />
63
- </Column>
75
+ </Element>
64
76
  </Section>
77
+
78
+ <style is:global lang="scss">
79
+ .product {
80
+ padding-top: 0px;
81
+
82
+ @media (min-width: 1024px) {
83
+ padding-top: var(--space-6);
84
+ }
85
+
86
+ .column {
87
+ display: flex;
88
+ flex-direction: column;
89
+ align-items: flex-start;
90
+ gap: var(--space-5);
91
+ }
92
+
93
+ .row {
94
+ display: flex;
95
+ align-items: center;
96
+ gap: var(--space-5);
97
+ }
98
+
99
+ @media (max-width: 1023.99px) {
100
+ .gallery {
101
+ margin-right: calc(-1 * var(--gutter));
102
+ margin-left: calc(-1 * var(--gutter));
103
+ width: calc(100% + (var(--gutter) * 2));
104
+
105
+ .small-carousel {
106
+ padding-right: var(--gutter);
107
+ padding-left: var(--gutter);
108
+ }
109
+ }
110
+ }
111
+ }
112
+ </style>