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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/.env.example +3 -0
  2. package/.prettierrc.yaml +1 -0
  3. package/astro.config.ts +10 -34
  4. package/cloudcannon.config.yml +217 -0
  5. package/package.json +25 -29
  6. package/pnpm-lock.yaml +943 -2157
  7. package/public/favicon/android-chrome-192x192.png +0 -0
  8. package/public/favicon/android-chrome-512x512.png +0 -0
  9. package/public/favicon/apple-touch-icon.png +0 -0
  10. package/public/favicon/manifest.webmanifest +7 -3
  11. package/public/favicon/mstile-150x150.png +0 -0
  12. package/src/blocks/Banner.astro +14 -29
  13. package/src/blocks/Contact1.astro +92 -0
  14. package/src/blocks/Cta1.astro +72 -0
  15. package/src/blocks/Feature1.astro +67 -0
  16. package/src/blocks/Features1.astro +75 -0
  17. package/src/blocks/Footer.astro +100 -3
  18. package/src/blocks/Header.astro +192 -3
  19. package/src/blocks/Hero1.astro +74 -0
  20. package/src/blocks/Job1.astro +97 -0
  21. package/src/blocks/Products1.astro +90 -0
  22. package/src/blocks/Reviews1.astro +75 -0
  23. package/src/blocks/_Hero.astro +245 -0
  24. package/src/components/Avatar.astro +28 -9
  25. package/src/components/Avatars.astro +36 -0
  26. package/src/components/Badge.astro +63 -24
  27. package/src/components/Badges.astro +16 -23
  28. package/src/components/Banner.astro +26 -0
  29. package/src/components/Block.astro +49 -0
  30. package/src/components/Blocks.astro +26 -0
  31. package/src/components/Breadcrumb.astro +58 -0
  32. package/src/components/Button.astro +49 -119
  33. package/src/components/Buttons.astro +23 -13
  34. package/src/components/Card.astro +9 -137
  35. package/src/components/Cards.astro +33 -35
  36. package/src/components/Carousel.astro +106 -0
  37. package/src/components/Cart.astro +18 -14
  38. package/src/components/CartAdd.svelte +76 -0
  39. package/src/components/CartCheckout.svelte +58 -0
  40. package/src/components/CartForm.svelte +130 -0
  41. package/src/components/CartList.svelte +88 -0
  42. package/src/components/CartQuantity.svelte +81 -0
  43. package/src/components/CartSummary.astro +16 -104
  44. package/src/components/CartTotal.svelte +15 -0
  45. package/src/components/Channel.astro +44 -35
  46. package/src/components/Channels.astro +20 -6
  47. package/src/components/Checkbox.astro +52 -27
  48. package/src/components/Code.astro +52 -0
  49. package/src/components/Container.astro +25 -0
  50. package/src/components/Dialog.astro +3 -2
  51. package/src/components/Drawer.astro +55 -146
  52. package/src/components/DrawerOld.astro +143 -0
  53. package/src/components/Element.astro +18 -8
  54. package/src/components/Form.astro +16 -13
  55. package/src/components/Gallery.astro +174 -0
  56. package/src/components/Head.astro +62 -25
  57. package/src/components/Header.astro +10 -115
  58. package/src/components/Heading.astro +51 -44
  59. package/src/components/Icon.astro +29 -33
  60. package/src/components/Image.astro +18 -68
  61. package/src/components/Input.astro +65 -51
  62. package/src/components/Label.astro +20 -15
  63. package/src/components/Layout.astro +35 -0
  64. package/src/components/Link.astro +51 -32
  65. package/src/components/Links.astro +42 -0
  66. package/src/components/List.astro +41 -16
  67. package/src/components/LocaleSwitcher.astro +2 -2
  68. package/src/components/Logo.astro +56 -0
  69. package/src/components/Menu.astro +21 -17
  70. package/src/components/Navigation.astro +39 -0
  71. package/src/components/Panel.astro +25 -0
  72. package/src/components/Paragraph.astro +55 -0
  73. package/src/components/Price.astro +4 -4
  74. package/src/components/Prose.astro +78 -0
  75. package/src/components/Rating.astro +23 -62
  76. package/src/components/Search.astro +107 -43
  77. package/src/components/Section.astro +13 -242
  78. package/src/components/Select.astro +45 -55
  79. package/src/components/Sidebar.astro +53 -76
  80. package/src/components/Social.astro +11 -9
  81. package/src/components/Socials.astro +9 -5
  82. package/src/components/Subheader.astro +59 -0
  83. package/src/components/Switch.astro +72 -29
  84. package/src/components/Table.astro +1 -1
  85. package/src/components/Tagline.astro +32 -14
  86. package/src/components/Textarea.astro +40 -50
  87. package/src/components/Themer.astro +76 -0
  88. package/src/components/Toc.astro +32 -31
  89. package/src/components/_Author.astro +90 -0
  90. package/src/components/_Header.astro +129 -0
  91. package/src/components/_Image.astro +79 -0
  92. package/src/components/_Prose copy.astro +172 -0
  93. package/src/components/_Sidebar copy.astro +87 -0
  94. package/src/components/docs/PropsTable.astro +38 -264
  95. package/src/components/experimental/Window.astro +5 -57
  96. package/src/content/config.ts +4 -10
  97. package/src/content/{presets → layouts}/base.yml +52 -73
  98. package/src/content/pages/blocks/_categories.mdx +0 -2
  99. package/src/content/pages/blocks/_footer.mdx +0 -2
  100. package/src/content/pages/blocks/_header.mdx +0 -4
  101. package/src/content/pages/blocks/_jobs.mdx +0 -2
  102. package/src/content/pages/blocks/_prices.mdx +0 -2
  103. package/src/content/pages/blocks/_product.mdx +0 -2
  104. package/src/content/pages/blocks/_products.mdx +0 -2
  105. package/src/content/pages/blocks/_stats.mdx +0 -2
  106. package/src/content/pages/blocks/banner.mdx +0 -2
  107. package/src/content/pages/blocks/colleagues.mdx +0 -3
  108. package/src/content/pages/blocks/contact.mdx +0 -2
  109. package/src/content/pages/blocks/content.mdx +0 -6
  110. package/src/content/pages/blocks/cta.mdx +0 -10
  111. package/src/content/pages/blocks/features.mdx +0 -5
  112. package/src/content/pages/blocks/hero.mdx +0 -5
  113. package/src/content/pages/blocks/intro.mdx +0 -5
  114. package/src/content/pages/blocks/posts.mdx +0 -2
  115. package/src/content/pages/blocks/reviews.mdx +0 -3
  116. package/src/content/pages/categories/category.md +7 -0
  117. package/src/content/pages/docs/_internationalization.mdx +55 -0
  118. package/src/content/pages/docs/_using-blocks.mdx +33 -0
  119. package/src/content/pages/docs/_using-presets.mdx +49 -0
  120. package/src/content/pages/docs/blocks.mdx +33 -0
  121. package/src/content/pages/docs/collections/images.mdx +102 -0
  122. package/src/content/pages/docs/collections/pages.mdx +119 -0
  123. package/src/content/pages/docs/collections/presets.mdx +60 -0
  124. package/src/content/pages/docs/collections.mdx +42 -0
  125. package/src/content/pages/{base/card.mdx → docs/components/_card.mdx} +2 -5
  126. package/src/content/pages/{base → docs/components}/_dialog.mdx +1 -2
  127. package/src/content/pages/{base → docs/components}/_drawer.mdx +1 -2
  128. package/src/content/pages/{base → docs/components}/_localeswitcher.mdx +1 -2
  129. package/src/content/pages/{base → docs/components}/_switch.mdx +3 -4
  130. package/src/content/pages/{typography → docs/components}/_tagline.mdx +3 -4
  131. package/src/content/pages/docs/components/_toggle.mdx +30 -0
  132. package/src/content/pages/docs/components/avatar.mdx +34 -0
  133. package/src/content/pages/{base → docs/components}/badge.mdx +28 -10
  134. package/src/content/pages/docs/components/badges.mdx +46 -0
  135. package/src/content/pages/docs/components/button.mdx +78 -0
  136. package/src/content/pages/docs/components/buttons.mdx +51 -0
  137. package/src/content/pages/docs/components/channel.mdx +91 -0
  138. package/src/content/pages/docs/components/channels.mdx +89 -0
  139. package/src/content/pages/docs/components/checkbox.mdx +34 -0
  140. package/src/content/pages/docs/components/code.mdx +45 -0
  141. package/src/content/pages/docs/components/heading.mdx +59 -0
  142. package/src/content/pages/docs/components/icon.mdx +48 -0
  143. package/src/content/pages/docs/components/image.mdx +25 -0
  144. package/src/content/pages/docs/components/input.mdx +40 -0
  145. package/src/content/pages/{typography → docs/components}/label.mdx +9 -6
  146. package/src/content/pages/{typography → docs/components}/link.mdx +24 -10
  147. package/src/content/pages/docs/components/links.mdx +99 -0
  148. package/src/content/pages/docs/components/list.mdx +44 -0
  149. package/src/content/pages/docs/components/logo.mdx +36 -0
  150. package/src/content/pages/docs/components/menu.mdx +89 -0
  151. package/src/content/pages/docs/components/prose.mdx +36 -0
  152. package/src/content/pages/docs/components/rating.mdx +76 -0
  153. package/src/content/pages/{base → docs/components}/section.mdx +2 -3
  154. package/src/content/pages/{base → docs/components}/select.mdx +1 -11
  155. package/src/content/pages/docs/components/social.mdx +94 -0
  156. package/src/content/pages/docs/components/socials.mdx +102 -0
  157. package/src/content/pages/docs/components/switch.mdx +34 -0
  158. package/src/content/pages/{base → docs/components}/table.mdx +1 -4
  159. package/src/content/pages/docs/components/tagline.mdx +46 -0
  160. package/src/content/pages/docs/components/text.mdx +48 -0
  161. package/src/content/pages/docs/components/textarea.mdx +34 -0
  162. package/src/content/pages/docs/components/themer.mdx +49 -0
  163. package/src/content/pages/docs/components.mdx +37 -0
  164. package/src/content/pages/docs/customization.mdx +151 -0
  165. package/src/content/pages/docs/frameworks.mdx +29 -0
  166. package/src/content/pages/docs/generating-pages.mdx +129 -0
  167. package/src/content/pages/docs/index.mdx +20 -0
  168. package/src/content/pages/docs/installation.mdx +50 -0
  169. package/src/content/pages/docs/layouts.mdx +33 -0
  170. package/src/content/pages/index.mdx +25 -33
  171. package/src/content/pages/posts/post.md +7 -0
  172. package/src/content/pages/products/product.md +20 -0
  173. package/src/content/pages/showcase/anti-slip-profiles.md +2 -2
  174. package/src/content/pages/showcase/fulldev-ui.md +1 -1
  175. package/src/content/pages/showcase/lavis-detailing.md +1 -1
  176. package/src/content/pages/showcase/leren-trainingsacteren.md +1 -1
  177. package/src/content/pages/showcase/miele-witgoedcenter-amsterdam.md +1 -1
  178. package/src/content/pages/showcase/sloepverhuur-bolsward.md +1 -1
  179. package/src/content/pages/showcase/stark-vulcanising-products.md +1 -1
  180. package/src/content/pages/showcase/the-gym-haren.md +1 -1
  181. package/src/content/pages/showcase/van-dillen-antieke-bouwmaterialen.md +1 -1
  182. package/src/content/pages/showcase.mdx +4 -3
  183. package/src/css/color.css +0 -10
  184. package/src/css/custom.css +10 -12
  185. package/src/css/size.css +2 -11
  186. package/src/css/theme.css +95 -0
  187. package/src/env.d.ts +1 -0
  188. package/src/images/favicon/android-chrome-192x192.png +0 -0
  189. package/src/images/favicon/android-chrome-512x512.png +0 -0
  190. package/src/images/favicon/apple-touch-icon.png +0 -0
  191. package/src/images/favicon/browserconfig.xml +9 -0
  192. package/src/images/favicon/favicon-16x16.png +0 -0
  193. package/src/images/favicon/favicon-32x32.png +0 -0
  194. package/src/images/favicon/favicon-48x48.png +0 -0
  195. package/src/images/favicon/favicon.ico +0 -0
  196. package/src/images/favicon/favicon.svg +16 -0
  197. package/src/images/favicon/manifest.webmanifest +30 -0
  198. package/src/images/favicon/mstile-150x150.png +0 -0
  199. package/src/images/favicon/safari-pinned-tab.svg +16 -0
  200. package/src/images/favicon/yandex-browser-50x50.png +0 -0
  201. package/src/images/favicon/yandex-browser-manifest.json +9 -0
  202. package/src/images/logo-1.svg +11 -0
  203. package/src/images/logo-2.svg +13 -0
  204. package/src/images/logo-basic.svg +10 -0
  205. package/src/images/logo-simple.svg +13 -0
  206. package/src/images/logo-thin.svg +15 -0
  207. package/src/images/logo.svg +14 -0
  208. package/src/images/logofat.svg +11 -0
  209. package/src/integration/index.ts +110 -140
  210. package/src/layouts/Category.astro +131 -0
  211. package/src/layouts/Doc.astro +72 -0
  212. package/src/layouts/Job.astro +64 -0
  213. package/src/layouts/Page.astro +30 -0
  214. package/src/layouts/Post.astro +20 -0
  215. package/src/layouts/Product.astro +110 -0
  216. package/src/pages/[...page].astro +29 -24
  217. package/src/pages/test.astro +37 -0
  218. package/src/schemas/blocks/banner.ts +10 -0
  219. package/src/schemas/blocks/categories.ts +14 -0
  220. package/src/schemas/blocks/contact.ts +18 -0
  221. package/src/schemas/blocks/cta.ts +19 -0
  222. package/src/schemas/blocks/feature.ts +18 -0
  223. package/src/schemas/blocks/features.ts +24 -0
  224. package/src/schemas/blocks/hero.ts +20 -0
  225. package/src/schemas/blocks/intro.ts +16 -0
  226. package/src/schemas/blocks/products.ts +14 -0
  227. package/src/schemas/blocks/reviews.ts +24 -0
  228. package/src/schemas/components/avatar.ts +4 -1
  229. package/src/schemas/components/badge.ts +16 -11
  230. package/src/schemas/components/block.ts +22 -0
  231. package/src/schemas/components/button.ts +17 -14
  232. package/src/schemas/components/channel.ts +15 -9
  233. package/src/schemas/components/footer.ts +15 -21
  234. package/src/schemas/components/head.ts +17 -0
  235. package/src/schemas/components/header.ts +19 -7
  236. package/src/schemas/components/heading.ts +7 -1
  237. package/src/schemas/components/icon.ts +7 -1
  238. package/src/schemas/components/image.ts +38 -16
  239. package/src/schemas/components/link.ts +17 -0
  240. package/src/schemas/components/logo.ts +12 -2
  241. package/src/schemas/components/menu.ts +11 -11
  242. package/src/schemas/components/navigation.ts +10 -0
  243. package/src/schemas/components/paragraph.ts +9 -0
  244. package/src/schemas/components/price.ts +7 -1
  245. package/src/schemas/components/rating.ts +8 -13
  246. package/src/schemas/components/sidebar.ts +14 -11
  247. package/src/schemas/components/social.ts +16 -1
  248. package/src/schemas/components/tagline.ts +7 -1
  249. package/src/schemas/imageSchema.ts +30 -1
  250. package/src/schemas/layoutSchema.ts +22 -0
  251. package/src/schemas/pageSchema.ts +26 -96
  252. package/src/stores/cart.svelte.ts +79 -0
  253. package/src/stores/cart.ts +59 -6
  254. package/src/types/global-props.ts +0 -9
  255. package/src/types/{virtual-modules.d.ts → virtual.d.ts} +1 -1
  256. package/src/utils/cart.ts +1 -10
  257. package/src/utils/formatEntries.ts +8 -0
  258. package/src/utils/formatEntry.ts +29 -0
  259. package/src/utils/getDeepReferenceChildren.ts +14 -0
  260. package/src/utils/getHref.ts +6 -0
  261. package/src/utils/getReferenceChildren.ts +1 -1
  262. package/src/utils/setTheme.ts +18 -0
  263. package/src/utils/slugify.ts +6 -0
  264. package/svelte.config.js +5 -0
  265. package/tailwind.config.ts +67 -0
  266. package/tsconfig.json +1 -3
  267. package/src/blocks/Article.astro +0 -40
  268. package/src/blocks/Categories.astro +0 -12
  269. package/src/blocks/Colleagues.astro +0 -13
  270. package/src/blocks/Contact.astro +0 -116
  271. package/src/blocks/Content.astro +0 -12
  272. package/src/blocks/Cta.astro +0 -15
  273. package/src/blocks/Excerpt.astro +0 -14
  274. package/src/blocks/Features.astro +0 -11
  275. package/src/blocks/Hero.astro +0 -15
  276. package/src/blocks/Intro.astro +0 -23
  277. package/src/blocks/Jobs.astro +0 -12
  278. package/src/blocks/Posts.astro +0 -11
  279. package/src/blocks/Prices.astro +0 -24
  280. package/src/blocks/Product.astro +0 -106
  281. package/src/blocks/Products.astro +0 -11
  282. package/src/blocks/Reviews.astro +0 -13
  283. package/src/components/CartForm.astro +0 -121
  284. package/src/components/CartList.astro +0 -134
  285. package/src/components/Footer.astro +0 -193
  286. package/src/components/Text.astro +0 -43
  287. package/src/components/ThemeSelect.astro +0 -41
  288. package/src/components/Writeup.astro +0 -90
  289. package/src/components/experimental/Form.astro +0 -53
  290. package/src/components/experimental/Gallery.astro +0 -104
  291. package/src/components/experimental/Logo.astro +0 -38
  292. package/src/components/experimental/Prose.astro +0 -192
  293. package/src/components/sections.astro +0 -28
  294. package/src/content/pages/base/button.mdx +0 -60
  295. package/src/content/pages/base/checkbox.mdx +0 -42
  296. package/src/content/pages/base/icon.mdx +0 -55
  297. package/src/content/pages/base/image.mdx +0 -42
  298. package/src/content/pages/base/input.mdx +0 -56
  299. package/src/content/pages/base/rating.mdx +0 -55
  300. package/src/content/pages/base/textarea.mdx +0 -58
  301. package/src/content/pages/base/theme-select.mdx +0 -15
  302. package/src/content/pages/layouts/_layout.mdx +0 -14
  303. package/src/content/pages/layouts/docslayout.mdx +0 -14
  304. package/src/content/pages/overview/components.mdx +0 -75
  305. package/src/content/pages/overview/content-collections.mdx +0 -139
  306. package/src/content/pages/overview/frameworks.mdx +0 -198
  307. package/src/content/pages/overview/installation.mdx +0 -53
  308. package/src/content/pages/overview/introduction.mdx +0 -30
  309. package/src/content/pages/overview/theming.mdx +0 -69
  310. package/src/content/pages/schemas/page.mdx +0 -17
  311. package/src/content/pages/schemas/preset.mdx +0 -9
  312. package/src/content/pages/showcase/record.md +0 -3
  313. package/src/content/pages/typography/heading.mdx +0 -73
  314. package/src/content/pages/typography/list.mdx +0 -51
  315. package/src/content/pages/typography/text.mdx +0 -61
  316. package/src/content/presets/blocks.yml +0 -1
  317. package/src/content/presets/docs.yml +0 -6
  318. package/src/css/space.css +0 -77
  319. package/src/css/styles.css +0 -0
  320. package/src/images/avatar-1.yml +0 -1
  321. package/src/integration/generate-colors.ts +0 -639
  322. package/src/integration/tailwind-plugin.ts +0 -80
  323. package/src/integration/unocss-preset.ts +0 -84
  324. package/src/layouts/BlockLayout.astro +0 -19
  325. package/src/layouts/ContactLayout.astro +0 -21
  326. package/src/layouts/DocsLayout.astro +0 -73
  327. package/src/layouts/Layout.astro +0 -163
  328. package/src/layouts/OverviewLayout.astro +0 -42
  329. package/src/layouts/PostLayout.astro +0 -21
  330. package/src/layouts/ProductLayout.astro +0 -21
  331. package/src/loaders/imageLoader.ts +0 -26
  332. package/src/schemas/components/avatars.ts +0 -4
  333. package/src/schemas/components/buttons.ts +0 -4
  334. package/src/schemas/components/card.ts +0 -25
  335. package/src/schemas/components/cards.ts +0 -4
  336. package/src/schemas/components/channels.ts +0 -4
  337. package/src/schemas/components/images.ts +0 -4
  338. package/src/schemas/components/list.ts +0 -3
  339. package/src/schemas/components/section.ts +0 -15
  340. package/src/schemas/components/sections.ts +0 -3
  341. package/src/schemas/components/socials.ts +0 -4
  342. package/src/schemas/components/text.ts +0 -3
  343. package/src/schemas/components/toc.ts +0 -3
  344. package/src/schemas/components/writeup.ts +0 -20
  345. package/src/schemas/presetSchema.ts +0 -3
  346. package/src/schemas/utils/navigation.ts +0 -8
  347. package/src/schemas/utils/parents.ts +0 -3
@@ -1,7 +1,196 @@
1
1
  ---
2
- import HeaderComponent from 'fulldev-ui/components/Header.astro'
2
+ import type { HTMLAttributes } from 'astro/types'
3
+ import Button from 'fulldev-ui/components/Button.astro'
4
+ // import Cart from 'fulldev-ui/components/Cart.astro'
5
+ import Container from 'fulldev-ui/components/Container.astro'
6
+ import Drawer from 'fulldev-ui/components/Drawer.astro'
7
+ import Element from 'fulldev-ui/components/Element.astro'
8
+ import Heading from 'fulldev-ui/components/Heading.astro'
9
+ import Link from 'fulldev-ui/components/Link.astro'
10
+ import Logo from 'fulldev-ui/components/Logo.astro'
11
+ import Search from 'fulldev-ui/components/Search.astro'
12
+ import Social from 'fulldev-ui/components/Social.astro'
13
+ import Themer from 'fulldev-ui/components/Themer.astro'
14
+ import type { HeaderSchema } from 'fulldev-ui/schemas/components/header'
3
15
 
4
- const { ...rest } = Astro.props
16
+ interface Props extends HTMLAttributes<'header'>, HeaderSchema {}
17
+
18
+ const {
19
+ logo,
20
+ heading,
21
+ links,
22
+ socials,
23
+ menus,
24
+ search,
25
+ themer,
26
+ buttons,
27
+ cart,
28
+ ...rest
29
+ } = Astro.props
5
30
  ---
6
31
 
7
- <HeaderComponent {...rest} />
32
+ <Element
33
+ class:list="header"
34
+ {...rest}
35
+ >
36
+ <Container>
37
+ <Element class:list="header-start">
38
+ <Logo {...logo} />
39
+ {
40
+ links?.map((link) => (
41
+ <Link
42
+ size="sm"
43
+ variant="muted"
44
+ {...link}
45
+ />
46
+ ))
47
+ }
48
+ </Element>
49
+ <Element class:list="header-end">
50
+ {
51
+ search && (
52
+ <Search
53
+ if={search}
54
+ variant="ghost"
55
+ size="sm"
56
+ />
57
+ )
58
+ }
59
+ {
60
+ buttons?.map((button) => (
61
+ <Button
62
+ size="sm"
63
+ {...button}
64
+ />
65
+ ))
66
+ }
67
+ <!-- {
68
+ cart && (
69
+ <Cart
70
+ variant="ghost"
71
+ size="sm"
72
+ />
73
+ )
74
+ } -->
75
+ <Themer
76
+ if={themer}
77
+ variant="ghost"
78
+ size="sm"
79
+ />
80
+ {
81
+ socials?.map((social) => (
82
+ <Social
83
+ variant="ghost"
84
+ size="sm"
85
+ href={social}
86
+ />
87
+ ))
88
+ }
89
+ <!-- <Button
90
+ class:list="menu-button"
91
+ as="label"
92
+ for="sidebar-toggle"
93
+ icon="menu-2"
94
+ variant="ghost"
95
+ size="sm"
96
+ /> -->
97
+ <Drawer
98
+ id="header-drawer"
99
+ icon="menu-2"
100
+ size="sm"
101
+ >
102
+ <Container>
103
+ <Element class:list="header-links">
104
+ {
105
+ links?.map((link) => (
106
+ <Link
107
+ variant="muted"
108
+ {...link}
109
+ />
110
+ ))
111
+ }
112
+ </Element>
113
+ {
114
+ menus?.map(({ heading, links }) => (
115
+ <Element class:list="header-menu">
116
+ <Heading
117
+ text={heading}
118
+ size="md"
119
+ as="h6"
120
+ />
121
+ <Element class:list="header-links">
122
+ {links?.map((link) => (
123
+ <Link
124
+ variant="muted"
125
+ {...link}
126
+ />
127
+ ))}
128
+ </Element>
129
+ </Element>
130
+ ))
131
+ }
132
+ </Container>
133
+ </Drawer>
134
+ </Element>
135
+ </Container>
136
+ </Element>
137
+
138
+ <style is:global>
139
+ @layer fulldev {
140
+ .header {
141
+ @apply sticky left-0 top-0 z-20 flex h-14 w-full items-center overflow-hidden border-b bg-background;
142
+ height: var(--header-height);
143
+
144
+ &,
145
+ & ~ * {
146
+ --header-height: 3.5rem;
147
+ }
148
+
149
+ .container {
150
+ @apply flex items-center gap-6;
151
+ }
152
+
153
+ .header-start {
154
+ @apply flex items-center gap-6;
155
+
156
+ .link {
157
+ @apply max-lg:hidden;
158
+ }
159
+ }
160
+
161
+ .header-home {
162
+ @apply flex items-center gap-2;
163
+ }
164
+
165
+ .header-end {
166
+ @apply ml-auto flex items-center gap-1;
167
+
168
+ .social,
169
+ .themer {
170
+ @apply max-lg:hidden;
171
+ }
172
+
173
+ .menu-button {
174
+ @apply lg:hidden;
175
+ }
176
+ }
177
+
178
+ .drawer {
179
+ @apply lg:hidden;
180
+
181
+ .container {
182
+ @apply flex w-full flex-col items-start gap-6 overflow-y-auto px-gutter pb-14 pt-8;
183
+ @apply scrollbar scrollbar-track-transparent scrollbar-thumb-accent scrollbar-thumb-rounded-full scrollbar-w-2 hover:scrollbar-thumb-accent-hover;
184
+ }
185
+
186
+ .header-menu {
187
+ @apply flex flex-col gap-4;
188
+ }
189
+
190
+ .header-links {
191
+ @apply flex flex-col gap-3;
192
+ }
193
+ }
194
+ }
195
+ }
196
+ </style>
@@ -0,0 +1,74 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Badge from 'fulldev-ui/components/Badge.astro'
4
+ import Buttons from 'fulldev-ui/components/Buttons.astro'
5
+ import Container from 'fulldev-ui/components/Container.astro'
6
+ import Element from 'fulldev-ui/components/Element.astro'
7
+ import Heading from 'fulldev-ui/components/Heading.astro'
8
+ import Image from 'fulldev-ui/components/Image.astro'
9
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
10
+ import Section from 'fulldev-ui/components/Section.astro'
11
+ import Tagline from 'fulldev-ui/components/Tagline.astro'
12
+ import type { HeroSchema } from 'fulldev-ui/schemas/blocks/hero.ts'
13
+
14
+ interface Props extends ComponentProps<typeof Section>, HeroSchema {}
15
+
16
+ const { badge, tagline, heading, paragraph, buttons, image, ...rest } =
17
+ Astro.props
18
+ ---
19
+
20
+ <Section
21
+ class:list="hero-1"
22
+ {...rest}
23
+ >
24
+ <Container>
25
+ <Element class="hero-1-segment">
26
+ <Element class="hero-1-content">
27
+ <Badge
28
+ size="lg"
29
+ {...badge}
30
+ />
31
+ <Tagline
32
+ size="sm"
33
+ text={tagline}
34
+ />
35
+ <Heading
36
+ as="h1"
37
+ size="6xl"
38
+ text={heading}
39
+ />
40
+ <Paragraph
41
+ size="xl"
42
+ text={paragraph}
43
+ />
44
+ </Element>
45
+ <Buttons
46
+ {buttons}
47
+ size="lg"
48
+ />
49
+ </Element>
50
+ <Image {...image} />
51
+ </Container>
52
+ </Section>
53
+
54
+ <style is:global>
55
+ @layer fulldev {
56
+ .hero-1 {
57
+ .hero-1-segment {
58
+ @apply flex flex-col items-center gap-8 text-center;
59
+ }
60
+
61
+ .hero-1-content {
62
+ @apply flex max-w-screen-md flex-col items-center gap-4 text-center;
63
+ }
64
+
65
+ .paragraph {
66
+ @apply text-balance;
67
+ }
68
+
69
+ .image {
70
+ @apply rounded-lg;
71
+ }
72
+ }
73
+ }
74
+ </style>
@@ -0,0 +1,97 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import type { CollectionEntry } from 'astro:content'
4
+ import Badge from 'fulldev-ui/components/Badge.astro'
5
+ import Button from 'fulldev-ui/components/Button.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 List from 'fulldev-ui/components/List.astro'
10
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
11
+ import Prose from 'fulldev-ui/components/Prose.astro'
12
+ import Section from 'fulldev-ui/components/Section.astro'
13
+
14
+ interface Props extends ComponentProps<typeof Section> {
15
+ badges?: ComponentProps<typeof Badge>[] | undefined
16
+ heading?: string | undefined
17
+ paragraph?: string | undefined
18
+ list?: ComponentProps<typeof List>['items'] | undefined
19
+ button?: ComponentProps<typeof Button> | undefined
20
+ render: CollectionEntry<'pages'>['render']
21
+ }
22
+
23
+ const { badges, heading, paragraph, list, button, render, ...rest } =
24
+ Astro.props
25
+
26
+ const { Content } = await render()
27
+ ---
28
+
29
+ <Section
30
+ class:list="job-1"
31
+ {...rest}
32
+ >
33
+ <Container class:list="job-1-container">
34
+ <Element class:list="job-1-segment">
35
+ <Element class:list="job-1-content">
36
+ <Element class:list="job-1-badges">
37
+ {
38
+ badges?.map((badge) => (
39
+ <Badge
40
+ size="sm"
41
+ {...badge}
42
+ />
43
+ ))
44
+ }
45
+ </Element>
46
+ <Heading
47
+ as="h1"
48
+ size="4xl"
49
+ text={heading}
50
+ />
51
+ <Paragraph
52
+ size="lg"
53
+ muted
54
+ text={paragraph}
55
+ />
56
+ <List items={list} />
57
+ </Element>
58
+ <Button
59
+ size="lg"
60
+ {...button}
61
+ />
62
+ </Element>
63
+ <Prose>
64
+ <Content />
65
+ </Prose>
66
+ </Container>
67
+ </Section>
68
+
69
+ <style is:global>
70
+ @layer fulldev {
71
+ .job-1 {
72
+ .container {
73
+ @apply flex flex-col items-start gap-x-gutter lg:grid lg:grid-cols-2;
74
+ }
75
+
76
+ .job-1-segment {
77
+ @apply sticky top-0 flex max-w-xl flex-col items-start gap-8 py-16;
78
+
79
+ top: var(--header-height, 0px);
80
+ width: var(--sidebar-width);
81
+ height: calc(100vh - var(--headers));
82
+ }
83
+
84
+ .job-1-content {
85
+ @apply flex flex-col items-start gap-4;
86
+ }
87
+
88
+ .job-1-badges {
89
+ @apply flex flex-wrap gap-2;
90
+ }
91
+
92
+ .prose {
93
+ @apply py-16;
94
+ }
95
+ }
96
+ }
97
+ </style>
@@ -0,0 +1,90 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import { getEntries } from 'astro:content'
4
+ import Button from 'fulldev-ui/components/Button.astro'
5
+ import Card from 'fulldev-ui/components/Card.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 Image from 'fulldev-ui/components/Image.astro'
10
+ import Price from 'fulldev-ui/components/Price.astro'
11
+ import Section from 'fulldev-ui/components/Section.astro'
12
+ import type { ProductsSchema } from 'fulldev-ui/schemas/blocks/products'
13
+ import { getHref } from 'fulldev-ui/utils/getHref'
14
+
15
+ interface Props extends ComponentProps<typeof Section>, ProductsSchema {}
16
+
17
+ const { heading, button, products, ...rest } = Astro.props
18
+
19
+ const entries = products && (await getEntries(products))
20
+ ---
21
+
22
+ <Section
23
+ class:list="products-1"
24
+ {...rest}
25
+ >
26
+ <Container>
27
+ <Element class:list="products-1-segment">
28
+ <Heading
29
+ size="2xl"
30
+ text={heading}
31
+ />
32
+ <Button
33
+ variant="ghost"
34
+ size="sm"
35
+ {...button}
36
+ />
37
+ </Element>
38
+ <Element class:list="products-1-cards">
39
+ {
40
+ entries?.map(({ slug, data: { images, title, price } }) => (
41
+ <Card href={getHref(slug)}>
42
+ <Image {...images?.[0]} />
43
+ <Element class:list="products-1-card-content">
44
+ <Heading
45
+ as="h3"
46
+ size="md"
47
+ text={title}
48
+ />
49
+ <Price amount={price} />
50
+ </Element>
51
+ </Card>
52
+ ))
53
+ }
54
+ </Element>
55
+ </Container>
56
+ </Section>
57
+
58
+ <style is:global>
59
+ @layer fulldev {
60
+ .products-1 {
61
+ .container {
62
+ @apply flex flex-col gap-8;
63
+ }
64
+
65
+ .products-1-segment {
66
+ @apply flex items-center justify-between gap-8;
67
+ }
68
+
69
+ .products-1-cards {
70
+ @apply grid grid-cols-2 items-start gap-4 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6;
71
+ }
72
+
73
+ .card {
74
+ @apply relative flex flex-col gap-3;
75
+
76
+ &:hover > .image {
77
+ @apply opacity-75 transition-opacity;
78
+ }
79
+
80
+ .image {
81
+ @apply rounded-md border;
82
+ }
83
+ }
84
+
85
+ .products-1-card-content {
86
+ @apply flex h-full flex-col gap-2;
87
+ }
88
+ }
89
+ }
90
+ </style>
@@ -0,0 +1,75 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Container from 'fulldev-ui/components/Container.astro'
4
+ import Element from 'fulldev-ui/components/Element.astro'
5
+ import Heading from 'fulldev-ui/components/Heading.astro'
6
+ import Icon from 'fulldev-ui/components/Icon.astro'
7
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
8
+ import Section from 'fulldev-ui/components/Section.astro'
9
+ import Tagline from 'fulldev-ui/components/Tagline.astro'
10
+ import type { FeaturesSchema } from 'fulldev-ui/schemas/blocks/features'
11
+
12
+ interface Props extends ComponentProps<typeof Section>, FeaturesSchema {}
13
+
14
+ const { tagline, heading, paragraph, cards, ...rest } = Astro.props
15
+ ---
16
+
17
+ <Section
18
+ class:list="features-1"
19
+ {...rest}
20
+ >
21
+ <Container>
22
+ <Element class="features-1-segment">
23
+ <Element class="features-1-content">
24
+ <Tagline
25
+ size="sm"
26
+ text={tagline}
27
+ />
28
+ <Heading
29
+ size="3xl"
30
+ text={heading}
31
+ />
32
+ <Paragraph
33
+ size="lg"
34
+ text={paragraph}
35
+ />
36
+ </Element>
37
+ </Element>
38
+ <Element class:list="features-1-cards">
39
+ {
40
+ cards?.map(({ icon, heading, paragraph }) => (
41
+ <Element class="features-1-card">
42
+ <Icon
43
+ size="lg"
44
+ name={icon}
45
+ />
46
+ <Heading
47
+ as="h3"
48
+ size="lg"
49
+ text={heading}
50
+ />
51
+ <Paragraph text={paragraph} />
52
+ </Element>
53
+ ))
54
+ }
55
+ </Element>
56
+ </Container>
57
+ </Section>
58
+
59
+ <style is:global>
60
+ @layer fulldev {
61
+ .features-1 {
62
+ .features-1-cards {
63
+ @apply grid grid-cols-1 gap-6 lg:grid-cols-3;
64
+ }
65
+
66
+ .features-1-card {
67
+ @apply flex flex-col gap-3;
68
+ }
69
+
70
+ .icon {
71
+ @apply text-primary;
72
+ }
73
+ }
74
+ }
75
+ </style>