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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/astro.config.ts +1 -7
  2. package/cloudcannon.config.yml +269 -0
  3. package/package.json +1 -1
  4. package/src/blocks/Banner.astro +13 -15
  5. package/src/blocks/Colleagues1.astro +73 -0
  6. package/src/blocks/Contact1.astro +100 -0
  7. package/src/blocks/Content1.astro +79 -0
  8. package/src/blocks/Content2.astro +94 -0
  9. package/src/blocks/Content3.astro +70 -0
  10. package/src/blocks/Content4.astro +75 -0
  11. package/src/blocks/Cta1.astro +73 -0
  12. package/src/blocks/Feature1.astro +61 -0
  13. package/src/blocks/Features1.astro +66 -0
  14. package/src/blocks/Footer.astro +36 -68
  15. package/src/blocks/Header.astro +150 -3
  16. package/src/blocks/Hero1.astro +74 -0
  17. package/src/blocks/Intro1.astro +70 -0
  18. package/src/blocks/Jobs1.astro +73 -0
  19. package/src/blocks/Logos1.astro +55 -0
  20. package/src/blocks/Products1.astro +90 -0
  21. package/src/blocks/Reviews1.astro +79 -0
  22. package/src/blocks/{Hero.astro → _Hero.astro} +7 -6
  23. package/src/components/Badge.astro +10 -18
  24. package/src/components/Badges.astro +12 -35
  25. package/src/components/Block.astro +30 -0
  26. package/src/components/Blocks.astro +26 -0
  27. package/src/components/Button.astro +11 -25
  28. package/src/components/Buttons.astro +12 -43
  29. package/src/components/Card.astro +8 -150
  30. package/src/components/Cart.astro +6 -11
  31. package/src/components/CartSummary.astro +3 -3
  32. package/src/components/Channel.astro +5 -14
  33. package/src/components/Container.astro +25 -0
  34. package/src/components/Drawer.astro +55 -117
  35. package/src/components/DrawerOld.astro +143 -0
  36. package/src/components/Element.astro +2 -0
  37. package/src/components/Form.astro +3 -1
  38. package/src/components/Grid.astro +39 -0
  39. package/src/components/Group.astro +25 -0
  40. package/src/components/Head.astro +18 -32
  41. package/src/components/Header.astro +8 -105
  42. package/src/components/Heading.astro +34 -71
  43. package/src/components/Icon.astro +5 -4
  44. package/src/components/Image.astro +15 -50
  45. package/src/components/Layout.astro +35 -0
  46. package/src/components/Link.astro +12 -18
  47. package/src/components/Links.astro +14 -35
  48. package/src/components/Logo.astro +26 -15
  49. package/src/components/Masonry.astro +42 -0
  50. package/src/components/Menu.astro +17 -38
  51. package/src/components/Menus.astro +20 -0
  52. package/src/components/Navigation.astro +39 -0
  53. package/src/components/Panel.astro +25 -0
  54. package/src/components/Paragraph.astro +24 -7
  55. package/src/components/Price.astro +4 -4
  56. package/src/components/Prose.astro +47 -130
  57. package/src/components/Rating.astro +24 -75
  58. package/src/components/Search.astro +5 -4
  59. package/src/components/Section.astro +20 -29
  60. package/src/components/Sidebar.astro +18 -69
  61. package/src/components/Social.astro +9 -2
  62. package/src/components/Stack.astro +25 -0
  63. package/src/components/Tagline.astro +21 -31
  64. package/src/components/Toc.astro +22 -21
  65. package/src/components/Writeup.astro +33 -82
  66. package/src/components/_Author.astro +90 -0
  67. package/src/components/_Header.astro +129 -0
  68. package/src/components/_Image.astro +79 -0
  69. package/src/components/_Prose copy.astro +172 -0
  70. package/src/components/_Sidebar copy.astro +87 -0
  71. package/src/content/config.ts +2 -29
  72. package/src/content/layouts/base.yml +42 -80
  73. package/src/content/pages/categories/category.md +7 -0
  74. package/src/content/{docs → pages/docs}/_internationalization.mdx +1 -0
  75. package/src/content/{docs → pages/docs}/_using-blocks.mdx +1 -0
  76. package/src/content/{docs → pages/docs}/_using-presets.mdx +1 -0
  77. package/src/content/{docs → pages/docs}/blocks.mdx +1 -0
  78. package/src/content/{docs → pages/docs}/collections/images.mdx +1 -0
  79. package/src/content/{docs → pages/docs}/collections/pages.mdx +1 -0
  80. package/src/content/{docs → pages/docs}/collections/presets.mdx +1 -0
  81. package/src/content/{docs → pages/docs}/collections.mdx +1 -0
  82. package/src/content/{docs → pages/docs}/components/_card.mdx +1 -0
  83. package/src/content/{docs → pages/docs}/components/_dialog.mdx +1 -0
  84. package/src/content/{docs → pages/docs}/components/_drawer.mdx +1 -0
  85. package/src/content/{docs → pages/docs}/components/_localeswitcher.mdx +1 -0
  86. package/src/content/{docs → pages/docs}/components/_switch.mdx +1 -0
  87. package/src/content/{docs → pages/docs}/components/_tagline.mdx +1 -0
  88. package/src/content/{docs → pages/docs}/components/_toggle.mdx +1 -0
  89. package/src/content/{docs → pages/docs}/components/avatar.mdx +1 -0
  90. package/src/content/{docs → pages/docs}/components/badge.mdx +1 -0
  91. package/src/content/{docs → pages/docs}/components/badges.mdx +1 -0
  92. package/src/content/{docs → pages/docs}/components/button.mdx +1 -0
  93. package/src/content/{docs → pages/docs}/components/buttons.mdx +1 -0
  94. package/src/content/{docs → pages/docs}/components/channel.mdx +1 -0
  95. package/src/content/{docs → pages/docs}/components/channels.mdx +1 -0
  96. package/src/content/{docs → pages/docs}/components/checkbox.mdx +1 -0
  97. package/src/content/{docs → pages/docs}/components/code.mdx +1 -0
  98. package/src/content/{docs → pages/docs}/components/heading.mdx +1 -0
  99. package/src/content/{docs → pages/docs}/components/icon.mdx +1 -0
  100. package/src/content/{docs → pages/docs}/components/image.mdx +1 -0
  101. package/src/content/{docs → pages/docs}/components/input.mdx +1 -0
  102. package/src/content/{docs → pages/docs}/components/label.mdx +1 -0
  103. package/src/content/{docs → pages/docs}/components/link.mdx +1 -0
  104. package/src/content/{docs → pages/docs}/components/links.mdx +1 -0
  105. package/src/content/{docs → pages/docs}/components/list.mdx +1 -0
  106. package/src/content/{docs → pages/docs}/components/logo.mdx +1 -0
  107. package/src/content/{docs → pages/docs}/components/menu.mdx +1 -0
  108. package/src/content/{docs → pages/docs}/components/prose.mdx +1 -0
  109. package/src/content/{docs → pages/docs}/components/rating.mdx +1 -0
  110. package/src/content/{docs → pages/docs}/components/section.mdx +1 -0
  111. package/src/content/{docs → pages/docs}/components/select.mdx +1 -0
  112. package/src/content/{docs → pages/docs}/components/social.mdx +1 -0
  113. package/src/content/{docs → pages/docs}/components/socials.mdx +1 -0
  114. package/src/content/{docs → pages/docs}/components/switch.mdx +1 -0
  115. package/src/content/{docs → pages/docs}/components/table.mdx +1 -0
  116. package/src/content/{docs → pages/docs}/components/tagline.mdx +1 -0
  117. package/src/content/pages/docs/components/text.mdx +48 -0
  118. package/src/content/{docs → pages/docs}/components/textarea.mdx +1 -0
  119. package/src/content/{docs → pages/docs}/components/themer.mdx +1 -0
  120. package/src/content/{docs → pages/docs}/components.mdx +2 -4
  121. package/src/content/{docs → pages/docs}/customization.mdx +1 -0
  122. package/src/content/{docs → pages/docs}/frameworks.mdx +1 -0
  123. package/src/content/{docs → pages/docs}/generating-pages.mdx +1 -0
  124. package/src/content/{docs → pages/docs}/index.mdx +2 -4
  125. package/src/content/{docs → pages/docs}/installation.mdx +1 -0
  126. package/src/content/{docs → pages/docs}/layouts.mdx +1 -0
  127. package/src/content/pages/index.mdx +20 -28
  128. package/src/content/{categories/mugs.md → pages/posts/post.md} +1 -1
  129. package/src/content/{products → pages/products}/product.md +4 -4
  130. package/src/css/theme.css +2 -0
  131. package/src/images/favicon/android-chrome-192x192.png +0 -0
  132. package/src/images/favicon/android-chrome-512x512.png +0 -0
  133. package/src/images/favicon/apple-touch-icon.png +0 -0
  134. package/src/images/favicon/browserconfig.xml +9 -0
  135. package/src/images/favicon/favicon-16x16.png +0 -0
  136. package/src/images/favicon/favicon-32x32.png +0 -0
  137. package/src/images/favicon/favicon-48x48.png +0 -0
  138. package/src/images/favicon/favicon.ico +0 -0
  139. package/src/images/favicon/favicon.svg +16 -0
  140. package/src/images/favicon/manifest.webmanifest +30 -0
  141. package/src/images/favicon/mstile-150x150.png +0 -0
  142. package/src/images/favicon/safari-pinned-tab.svg +16 -0
  143. package/src/images/favicon/yandex-browser-50x50.png +0 -0
  144. package/src/images/favicon/yandex-browser-manifest.json +9 -0
  145. package/src/integration/index.ts +48 -17
  146. package/src/layouts/{CategoryLayout.astro → Category.astro} +21 -15
  147. package/src/layouts/Doc.astro +70 -0
  148. package/src/layouts/Job.astro +62 -0
  149. package/src/layouts/Jobs.astro +72 -0
  150. package/src/layouts/Page.astro +29 -0
  151. package/src/layouts/Post.astro +52 -0
  152. package/src/layouts/{ProductLayout.astro → Product.astro} +25 -11
  153. package/src/pages/[...page].astro +36 -4
  154. package/src/pages/test.astro +32 -2
  155. package/src/schemas/components/avatar.ts +4 -1
  156. package/src/schemas/components/badge.ts +16 -11
  157. package/src/schemas/components/block.ts +61 -0
  158. package/src/schemas/components/button.ts +14 -19
  159. package/src/schemas/components/channel.ts +15 -9
  160. package/src/schemas/components/footer.ts +15 -14
  161. package/src/schemas/components/head.ts +17 -0
  162. package/src/schemas/components/header.ts +19 -16
  163. package/src/schemas/components/heading.ts +7 -1
  164. package/src/schemas/components/icon.ts +7 -1
  165. package/src/schemas/components/image.ts +38 -21
  166. package/src/schemas/components/link.ts +10 -16
  167. package/src/schemas/components/logo.ts +12 -2
  168. package/src/schemas/components/menu.ts +12 -13
  169. package/src/schemas/components/navigation.ts +10 -0
  170. package/src/schemas/components/paragraph.ts +9 -0
  171. package/src/schemas/components/price.ts +9 -0
  172. package/src/schemas/components/rating.ts +8 -13
  173. package/src/schemas/components/sidebar.ts +14 -12
  174. package/src/schemas/components/social.ts +16 -1
  175. package/src/schemas/components/tagline.ts +7 -1
  176. package/src/schemas/imageSchema.ts +33 -4
  177. package/src/schemas/page.ts +40 -0
  178. package/src/types/global-props.ts +0 -9
  179. package/src/types/{virtual-modules.d.ts → virtual.d.ts} +1 -1
  180. package/src/utils/getHref.ts +4 -20
  181. package/tailwind.config.ts +4 -0
  182. package/tsconfig.json +1 -3
  183. package/example.svelte +0 -0
  184. package/parent.svelte +0 -0
  185. package/src/App.svelte +0 -0
  186. package/src/blocks/Categories.astro +0 -12
  187. package/src/blocks/Colleagues.astro +0 -12
  188. package/src/blocks/Contact.astro +0 -117
  189. package/src/blocks/Content.astro +0 -130
  190. package/src/blocks/Cta.astro +0 -13
  191. package/src/blocks/Excerpt.astro +0 -12
  192. package/src/blocks/Features.astro +0 -11
  193. package/src/blocks/Intro.astro +0 -101
  194. package/src/blocks/Jobs.astro +0 -12
  195. package/src/blocks/Posts.astro +0 -11
  196. package/src/blocks/Prices.astro +0 -24
  197. package/src/blocks/Product.astro +0 -89
  198. package/src/blocks/Products.astro +0 -101
  199. package/src/blocks/Reviews.astro +0 -12
  200. package/src/blocks/_Contact.astro +0 -112
  201. package/src/components/CartForm.astro +0 -120
  202. package/src/components/CartList.astro +0 -122
  203. package/src/components/Lead.astro +0 -46
  204. package/src/components/ProductCard.astro +0 -52
  205. package/src/components/Text.astro +0 -43
  206. package/src/components/_CartList backup.astro +0 -125
  207. package/src/components/_CartList copy.astro +0 -213
  208. package/src/components/_CartListSimple.astro +0 -148
  209. package/src/components/sections.astro +0 -28
  210. package/src/content/docs/components/lead.mdx +0 -49
  211. package/src/content/docs/components/paragraph.mdx +0 -49
  212. package/src/content/layouts/docs.yml +0 -70
  213. package/src/layouts/DocLayout.astro +0 -17
  214. package/src/layouts/Layout.astro +0 -79
  215. package/src/layouts/PageLayout.astro +0 -20
  216. package/src/layouts/PostLayout.astro +0 -20
  217. package/src/loaders/imageLoader.ts +0 -26
  218. package/src/pages/[...category].astro +0 -17
  219. package/src/pages/[...doc].astro +0 -17
  220. package/src/pages/[...post].astro +0 -17
  221. package/src/pages/[...product].astro +0 -17
  222. package/src/schemas/archive/_pageSchema.ts +0 -94
  223. package/src/schemas/categorySchema.ts +0 -16
  224. package/src/schemas/components/avatars.ts +0 -4
  225. package/src/schemas/components/banner.ts +0 -3
  226. package/src/schemas/components/buttons.ts +0 -4
  227. package/src/schemas/components/card.ts +0 -43
  228. package/src/schemas/components/cards.ts +0 -4
  229. package/src/schemas/components/channels.ts +0 -4
  230. package/src/schemas/components/global.ts +0 -16
  231. package/src/schemas/components/links.ts +0 -4
  232. package/src/schemas/components/list.ts +0 -3
  233. package/src/schemas/components/section.ts +0 -17
  234. package/src/schemas/components/sections.ts +0 -3
  235. package/src/schemas/components/socials.ts +0 -4
  236. package/src/schemas/components/subheader.ts +0 -10
  237. package/src/schemas/components/text.ts +0 -3
  238. package/src/schemas/components/themer.ts +0 -3
  239. package/src/schemas/components/toc.ts +0 -3
  240. package/src/schemas/components/writeup.ts +0 -20
  241. package/src/schemas/docSchema.ts +0 -10
  242. package/src/schemas/fields/categories.ts +0 -3
  243. package/src/schemas/fields/description.ts +0 -3
  244. package/src/schemas/fields/href.ts +0 -3
  245. package/src/schemas/fields/image.ts +0 -24
  246. package/src/schemas/fields/images.ts +0 -4
  247. package/src/schemas/fields/order.ts +0 -3
  248. package/src/schemas/fields/price.ts +0 -3
  249. package/src/schemas/fields/products.ts +0 -5
  250. package/src/schemas/fields/seo.ts +0 -12
  251. package/src/schemas/fields/soldout.ts +0 -3
  252. package/src/schemas/fields/title.ts +0 -3
  253. package/src/schemas/fields/variants.ts +0 -3
  254. package/src/schemas/layoutSchema.ts +0 -28
  255. package/src/schemas/pageSchema.ts +0 -20
  256. package/src/schemas/postSchema.ts +0 -16
  257. package/src/schemas/productSchema.ts +0 -22
@@ -0,0 +1,70 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Badges from 'fulldev-ui/components/Badges.astro'
4
+ import Buttons from 'fulldev-ui/components/Buttons.astro'
5
+ import Container from 'fulldev-ui/components/Container.astro'
6
+ import Group from 'fulldev-ui/components/Group.astro'
7
+ import Heading from 'fulldev-ui/components/Heading.astro'
8
+ import List from 'fulldev-ui/components/List.astro'
9
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
10
+ import Prose from 'fulldev-ui/components/Prose.astro'
11
+ import Section from 'fulldev-ui/components/Section.astro'
12
+ import Writeup from 'fulldev-ui/components/Writeup.astro'
13
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
14
+
15
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
16
+
17
+ const { badge, badges, heading, paragraph, list, button, buttons, ...rest } =
18
+ Astro.props
19
+ ---
20
+
21
+ <Section
22
+ class:list="content-3"
23
+ {...rest}
24
+ >
25
+ <Container>
26
+ <Writeup>
27
+ <Group>
28
+ <Badges
29
+ size="sm"
30
+ {badge}
31
+ {badges}
32
+ />
33
+ </Group>
34
+ <Heading
35
+ as="h1"
36
+ size="4xl"
37
+ text={heading}
38
+ />
39
+ <Paragraph
40
+ size="lg"
41
+ muted
42
+ text={paragraph}
43
+ />
44
+ <List items={list} />
45
+ <Group>
46
+ <Buttons
47
+ {button}
48
+ {buttons}
49
+ />
50
+ </Group>
51
+ </Writeup>
52
+ <Prose>
53
+ <slot />
54
+ </Prose>
55
+ </Container>
56
+ </Section>
57
+
58
+ <style is:global>
59
+ @layer fulldev {
60
+ .content-3 {
61
+ .container {
62
+ @apply flex flex-col items-start gap-x-gutter lg:grid lg:grid-cols-2;
63
+ }
64
+
65
+ .writeup {
66
+ @apply lg:sticky lg:top-sticky-16 lg:max-w-xl;
67
+ }
68
+ }
69
+ }
70
+ </style>
@@ -0,0 +1,75 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Button from 'fulldev-ui/components/Button.astro'
4
+ import Container from 'fulldev-ui/components/Container.astro'
5
+ import Group from 'fulldev-ui/components/Group.astro'
6
+ import Heading from 'fulldev-ui/components/Heading.astro'
7
+ import List from 'fulldev-ui/components/List.astro'
8
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
9
+ import Prose from 'fulldev-ui/components/Prose.astro'
10
+ import Section from 'fulldev-ui/components/Section.astro'
11
+ import Tagline from 'fulldev-ui/components/Tagline.astro'
12
+ import Writeup from 'fulldev-ui/components/Writeup.astro'
13
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
14
+
15
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
16
+
17
+ const {
18
+ tagline,
19
+ heading,
20
+ paragraph,
21
+ list,
22
+ content,
23
+ button,
24
+ buttons,
25
+ image,
26
+ ...rest
27
+ } = Astro.props
28
+ ---
29
+
30
+ <Section
31
+ class:list="content-4"
32
+ {...rest}
33
+ >
34
+ <Container>
35
+ <Writeup>
36
+ <Tagline
37
+ size="sm"
38
+ text={tagline}
39
+ />
40
+ <Heading
41
+ as="h1"
42
+ size="4xl"
43
+ text={heading}
44
+ />
45
+ <Paragraph
46
+ size="lg"
47
+ muted
48
+ text={paragraph}
49
+ />
50
+ <List items={list} />
51
+ </Writeup>
52
+ <Prose>
53
+ <Fragment set:html={content} />
54
+ <slot />
55
+ </Prose>
56
+ <Group>
57
+ <Button {...button} />
58
+ {buttons?.map((button) => <Button {...button} />)}
59
+ </Group>
60
+ </Container>
61
+ </Section>
62
+
63
+ <style is:global>
64
+ @layer fulldev {
65
+ .content-4 {
66
+ .container {
67
+ @apply flex flex-col items-start gap-8;
68
+ }
69
+
70
+ .prose {
71
+ @apply max-w-none break-inside-avoid gap-x-gutter lg:columns-2;
72
+ }
73
+ }
74
+ }
75
+ </style>
@@ -0,0 +1,73 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Buttons from 'fulldev-ui/components/Buttons.astro'
4
+ import Container from 'fulldev-ui/components/Container.astro'
5
+ import Group from 'fulldev-ui/components/Group.astro'
6
+ import Heading from 'fulldev-ui/components/Heading.astro'
7
+ import Image from 'fulldev-ui/components/Image.astro'
8
+ import Panel from 'fulldev-ui/components/Panel.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 Writeup from 'fulldev-ui/components/Writeup.astro'
13
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
14
+
15
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
16
+
17
+ const {
18
+ tagline,
19
+ heading,
20
+ paragraph,
21
+ content,
22
+ button,
23
+ buttons,
24
+ image,
25
+ ...rest
26
+ } = Astro.props
27
+ ---
28
+
29
+ <Section
30
+ class:list="cta-1"
31
+ {...rest}
32
+ >
33
+ <Container>
34
+ <Panel>
35
+ <Writeup align="center">
36
+ <Tagline text={tagline} />
37
+ <Heading
38
+ size="4xl"
39
+ as="h2"
40
+ text={heading}
41
+ />
42
+ <Paragraph
43
+ size="lg"
44
+ text={paragraph}
45
+ />
46
+ <Fragment set:html={content} />
47
+ <Group>
48
+ <Buttons
49
+ variant="primary"
50
+ size="lg"
51
+ {button}
52
+ {buttons}
53
+ />
54
+ </Group>
55
+ </Writeup>
56
+ <Image {...image} />
57
+ </Panel>
58
+ </Container>
59
+ </Section>
60
+
61
+ <style is:global>
62
+ @layer fulldev {
63
+ .cta-1 {
64
+ .text {
65
+ @apply text-pretty;
66
+ }
67
+
68
+ .image {
69
+ @apply rounded-lg;
70
+ }
71
+ }
72
+ }
73
+ </style>
@@ -0,0 +1,61 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Buttons from 'fulldev-ui/components/Buttons.astro'
4
+ import Container from 'fulldev-ui/components/Container.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 Tagline from 'fulldev-ui/components/Tagline.astro'
10
+ import Writeup from 'fulldev-ui/components/Writeup.astro'
11
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
12
+
13
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
14
+
15
+ const { tagline, heading, paragraph, buttons, image, ...rest } = Astro.props
16
+ ---
17
+
18
+ <Section
19
+ class:list="feature-1"
20
+ {...rest}
21
+ >
22
+ <Container>
23
+ <Writeup>
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
+ <Buttons
37
+ variant="secondary"
38
+ {buttons}
39
+ />
40
+ </Writeup>
41
+ <Image {...image} />
42
+ </Container>
43
+ </Section>
44
+
45
+ <style is:global>
46
+ @layer fulldev {
47
+ .feature-1 {
48
+ .container {
49
+ @apply gap-x-gutter gap-y-12 lg:grid lg:grid-cols-2 lg:items-center;
50
+ }
51
+
52
+ .writeup {
53
+ @apply lg:max-w-xl;
54
+ }
55
+
56
+ .image {
57
+ @apply rounded-lg;
58
+ }
59
+ }
60
+ }
61
+ </style>
@@ -0,0 +1,66 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Container from 'fulldev-ui/components/Container.astro'
4
+ import Heading from 'fulldev-ui/components/Heading.astro'
5
+ import Icon from 'fulldev-ui/components/Icon.astro'
6
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
7
+ import Section from 'fulldev-ui/components/Section.astro'
8
+ import Stack from 'fulldev-ui/components/Stack.astro'
9
+ import Tagline from 'fulldev-ui/components/Tagline.astro'
10
+ import Writeup from 'fulldev-ui/components/Writeup.astro'
11
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
12
+
13
+ interface Props extends ComponentProps<typeof Section>, BlockSchema {}
14
+
15
+ const { tagline, heading, paragraph, cards, ...rest } = Astro.props
16
+ ---
17
+
18
+ <Section
19
+ class:list="features-1"
20
+ {...rest}
21
+ >
22
+ <Container>
23
+ <Writeup>
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
+ </Writeup>
37
+ <Stack>
38
+ {
39
+ cards?.map(({ icon, heading, paragraph }) => (
40
+ <Writeup>
41
+ <Icon
42
+ size="lg"
43
+ name={icon}
44
+ />
45
+ <Heading
46
+ as="h3"
47
+ size="xl"
48
+ text={heading}
49
+ />
50
+ <Paragraph text={paragraph} />
51
+ </Writeup>
52
+ ))
53
+ }
54
+ </Stack>
55
+ </Container>
56
+ </Section>
57
+
58
+ <style is:global>
59
+ @layer fulldev {
60
+ .features-1 {
61
+ .icon {
62
+ @apply text-primary;
63
+ }
64
+ }
65
+ }
66
+ </style>
@@ -1,41 +1,30 @@
1
1
  ---
2
- import type { ComponentProps, HTMLAttributes, HTMLTag } from 'astro/types'
2
+ import type { HTMLAttributes, HTMLTag } from 'astro/types'
3
3
  import Channels from 'fulldev-ui/components/Channels.astro'
4
+ import Container from 'fulldev-ui/components/Container.astro'
4
5
  import Element from 'fulldev-ui/components/Element.astro'
5
- import Heading from 'fulldev-ui/components/Heading.astro'
6
+ import Group from 'fulldev-ui/components/Group.astro'
6
7
  import Logo from 'fulldev-ui/components/Logo.astro'
7
- import Menu from 'fulldev-ui/components/Menu.astro'
8
- import Paragraph from 'fulldev-ui/components/Paragraph.astro'
8
+ import Menus from 'fulldev-ui/components/Menus.astro'
9
+ import { default as Paragraph } from 'fulldev-ui/components/Paragraph.astro'
9
10
  import Socials from 'fulldev-ui/components/Socials.astro'
10
- import Text from 'fulldev-ui/components/Text.astro'
11
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
11
+ import Writeup from 'fulldev-ui/components/Writeup.astro'
12
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
12
13
 
13
- interface Props extends GlobalProps, HTMLAttributes<'footer'> {
14
+ interface Props extends HTMLAttributes<'footer'>, BlockSchema {
14
15
  as?: HTMLTag
15
- variant?: 1 | undefined
16
- size?: 'sm' | 'md' | 'lg' | undefined
17
- logo?: ComponentProps<typeof Logo>['src']
18
- company?: ComponentProps<typeof Logo>['company']
19
- paragraph?: ComponentProps<typeof Paragraph>['text']
20
- socials?: ComponentProps<typeof Socials>['socials']
21
- channels?: ComponentProps<typeof Channels>['channels']
22
- hours?: any
23
- menu?: ComponentProps<typeof Menu>['groups']
24
- html?: any
25
16
  }
26
17
 
27
18
  const {
28
19
  as = 'footer',
29
- size = 'sm',
30
- variant = 1,
31
20
  logo,
32
- company,
21
+ heading,
33
22
  paragraph,
34
23
  socials,
35
24
  channels,
36
- hours,
37
- menu,
38
- html,
25
+ menus,
26
+ // hours,
27
+ // html,
39
28
  ...rest
40
29
  } = Astro.props
41
30
  ---
@@ -43,68 +32,47 @@ const {
43
32
  <Element
44
33
  class:list="footer"
45
34
  {as}
46
- {size}
47
- {variant}
48
35
  {...rest}
49
36
  >
50
- <Element class:list="footer-container">
51
- <Element class:list="footer-content">
37
+ <Container class:list="footer-container">
38
+ <Writeup>
52
39
  <Logo
53
- {size}
54
- {company}
55
- {...typeof logo === 'string' ? { src: logo } : logo}
40
+ size="sm"
41
+ {...logo}
56
42
  />
57
43
  <Paragraph
58
- {size}
44
+ size="sm"
59
45
  text={paragraph}
60
46
  />
61
- <Socials
62
- {size}
63
- {socials}
64
- />
47
+ <Group>
48
+ <Socials
49
+ variant="secondary"
50
+ size="sm"
51
+ />
52
+ </Group>
53
+ </Writeup>
54
+ <Element class:list="footer-channels">
55
+ <Channels {channels} />
65
56
  </Element>
66
- <Channels {channels} />
67
- <Fragment set:html={html} />
68
- <!-- <Hours {hours} /> -->
69
- <Menu
70
- direction="row"
71
- groups={menu}
72
- {size}
57
+ <Menus
58
+ size="sm"
59
+ {menus}
73
60
  />
74
- <Element class:list="hours column">
75
- <Heading
76
- text={hours?.heading}
77
- level={5}
78
- />
79
- <Element>
80
- {
81
- Object.entries(hours?.days ?? {})?.map(([key, value]: any) => (
82
- <Element class:list="spread">
83
- <Text text={key} />
84
- <Text text={value} />
85
- </Element>
86
- ))
87
- }
88
- </Element>
89
- </Element>
90
- </Element>
61
+ </Container>
91
62
  </Element>
92
63
 
93
64
  <style is:global>
94
65
  @layer fulldev {
95
66
  .footer {
96
- @apply relative mt-auto w-full;
97
-
98
- &.dark {
99
- @apply bg-background;
100
- }
67
+ @apply relative mt-auto w-full border-t bg-background;
101
68
 
102
- .footer-container {
103
- @apply container flex flex-wrap justify-between gap-12 py-12;
69
+ .container {
70
+ @apply grid grid-cols-[repeat(auto-fit,minmax(14rem,1fr))] gap-12 py-12;
104
71
  }
105
72
 
106
- .footer-content {
107
- @apply flex max-w-60 flex-col gap-4;
73
+ .writeup,
74
+ .footer-channels {
75
+ @apply max-w-xs;
108
76
  }
109
77
  }
110
78
  }
@@ -1,7 +1,154 @@
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 Buttons from 'fulldev-ui/components/Buttons.astro'
5
+ // import Cart from 'fulldev-ui/components/Cart.astro'
6
+ import Container from 'fulldev-ui/components/Container.astro'
7
+ import Drawer from 'fulldev-ui/components/Drawer.astro'
8
+ import Element from 'fulldev-ui/components/Element.astro'
9
+ import Links from 'fulldev-ui/components/Links.astro'
10
+ import Logo from 'fulldev-ui/components/Logo.astro'
11
+ import Menus from 'fulldev-ui/components/Menus.astro'
12
+ import Search from 'fulldev-ui/components/Search.astro'
13
+ import Socials from 'fulldev-ui/components/Socials.astro'
14
+ import Themer from 'fulldev-ui/components/Themer.astro'
15
+ import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
3
16
 
4
- const { ...rest } = Astro.props
17
+ interface Props extends HTMLAttributes<'header'>, BlockSchema {}
18
+
19
+ const {
20
+ logo,
21
+ heading,
22
+ links,
23
+ socials,
24
+ menus,
25
+ search,
26
+ themer,
27
+ buttons,
28
+ cart,
29
+ ...rest
30
+ } = Astro.props
5
31
  ---
6
32
 
7
- <HeaderComponent {...rest} />
33
+ <Element
34
+ class:list="header"
35
+ {...rest}
36
+ >
37
+ <Container>
38
+ <Element class:list="header-start">
39
+ <Logo {...logo} />
40
+ <Links
41
+ size="sm"
42
+ variant="muted"
43
+ {links}
44
+ />
45
+ </Element>
46
+ <Element class:list="header-end">
47
+ {
48
+ search && (
49
+ <Search
50
+ if={search}
51
+ variant="ghost"
52
+ size="sm"
53
+ />
54
+ )
55
+ }
56
+ <Buttons
57
+ size="sm"
58
+ {buttons}
59
+ />
60
+
61
+ <!-- {
62
+ cart && (
63
+ <Cart
64
+ variant="ghost"
65
+ size="sm"
66
+ />
67
+ )
68
+ } -->
69
+ <Themer
70
+ if={themer}
71
+ variant="ghost"
72
+ size="sm"
73
+ />
74
+ <Socials
75
+ size="sm"
76
+ variant="ghost"
77
+ {socials}
78
+ />
79
+
80
+ <!-- <Button
81
+ class:list="menu-button"
82
+ as="label"
83
+ for="sidebar-toggle"
84
+ icon="menu-2"
85
+ variant="ghost"
86
+ size="sm"
87
+ /> -->
88
+ <Drawer
89
+ id="header-drawer"
90
+ icon="menu-2"
91
+ size="sm"
92
+ >
93
+ <Container>
94
+ <Menus
95
+ menu={{ links }}
96
+ {menus}
97
+ />
98
+ </Container>
99
+ </Drawer>
100
+ </Element>
101
+ </Container>
102
+ </Element>
103
+
104
+ <style is:global>
105
+ @layer fulldev {
106
+ .header {
107
+ @apply sticky left-0 top-0 z-20 flex h-14 w-full items-center overflow-hidden border-b bg-background;
108
+ height: var(--header-height);
109
+
110
+ &,
111
+ & ~ * {
112
+ --header-height: 3.5rem;
113
+ }
114
+
115
+ .container {
116
+ @apply flex items-center gap-6;
117
+ }
118
+
119
+ .header-start {
120
+ @apply flex items-center gap-6;
121
+
122
+ .link {
123
+ @apply max-lg:hidden;
124
+ }
125
+ }
126
+
127
+ .header-home {
128
+ @apply flex items-center gap-2;
129
+ }
130
+
131
+ .header-end {
132
+ @apply ml-auto flex items-center gap-1;
133
+
134
+ .social,
135
+ .themer {
136
+ @apply max-lg:hidden;
137
+ }
138
+
139
+ .menu-button {
140
+ @apply lg:hidden;
141
+ }
142
+ }
143
+
144
+ .drawer {
145
+ @apply lg:hidden;
146
+
147
+ .container {
148
+ @apply flex w-full flex-col items-start gap-6 overflow-y-auto px-gutter pb-14 pt-8;
149
+ @apply scrollbar scrollbar-track-transparent scrollbar-thumb-accent scrollbar-thumb-rounded-full scrollbar-w-2 hover:scrollbar-thumb-accent-hover;
150
+ }
151
+ }
152
+ }
153
+ }
154
+ </style>