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

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