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

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