fulldev-ui 0.6.0-beta.7 → 0.6.0-beta.9

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 (330) hide show
  1. package/.vscode/settings.json +2 -0
  2. package/astro.config.ts +1 -3
  3. package/cloudcannon.config.yml +22 -59
  4. package/package.json +1 -1
  5. package/src/blocks/Banner.astro +3 -3
  6. package/src/blocks/Colleagues1.astro +16 -16
  7. package/src/blocks/Contact1.astro +5 -10
  8. package/src/blocks/Content1.astro +22 -39
  9. package/src/blocks/Content2.astro +21 -45
  10. package/src/blocks/Content3.astro +36 -31
  11. package/src/blocks/Content4.astro +28 -35
  12. package/src/blocks/Content5.astro +72 -0
  13. package/src/blocks/Cta1.astro +6 -6
  14. package/src/blocks/Features1.astro +9 -5
  15. package/src/blocks/Footer.astro +13 -5
  16. package/src/blocks/Header.astro +19 -15
  17. package/src/blocks/Hero1.astro +8 -5
  18. package/src/blocks/Industries1.astro +86 -0
  19. package/src/blocks/Intro1.astro +7 -9
  20. package/src/blocks/Jobs1.astro +28 -24
  21. package/src/blocks/Logos1.astro +4 -4
  22. package/src/blocks/Products1.astro +4 -4
  23. package/src/blocks/Projects1.astro +103 -0
  24. package/src/blocks/Reviews1.astro +9 -7
  25. package/src/{components → blocks}/Subheader.astro +1 -2
  26. package/src/components/Badge.astro +8 -20
  27. package/src/components/Badges.astro +3 -3
  28. package/src/components/Block.astro +1 -1
  29. package/src/components/Button.astro +9 -18
  30. package/src/components/Cart.astro +6 -6
  31. package/src/components/CartSummary.astro +1 -0
  32. package/src/components/Channel.astro +9 -3
  33. package/src/components/Channels.astro +11 -42
  34. package/src/components/Checkbox.astro +8 -14
  35. package/src/components/Element.astro +2 -1
  36. package/src/components/Form.astro +1 -2
  37. package/src/components/Gallery.astro +6 -5
  38. package/src/components/Head.astro +14 -4
  39. package/src/components/Heading.astro +21 -17
  40. package/src/components/Icon.astro +2 -3
  41. package/src/components/Image.astro +6 -2
  42. package/src/components/Input.astro +11 -14
  43. package/src/components/Label.astro +6 -6
  44. package/src/components/Link.astro +13 -16
  45. package/src/components/Links.astro +1 -2
  46. package/src/components/List.astro +3 -5
  47. package/src/components/Logo.astro +9 -16
  48. package/src/components/Menu.astro +7 -3
  49. package/src/components/Paragraph.astro +6 -7
  50. package/src/components/Price.astro +1 -4
  51. package/src/components/Rating.astro +4 -2
  52. package/src/components/Search.astro +1 -6
  53. package/src/components/Select.astro +3 -4
  54. package/src/components/Sidebar.astro +6 -6
  55. package/src/components/Social.astro +3 -1
  56. package/src/components/Socials.astro +18 -34
  57. package/src/components/Switch.astro +4 -69
  58. package/src/components/Table.astro +2 -3
  59. package/src/components/Tagline.astro +6 -7
  60. package/src/components/Textarea.astro +5 -5
  61. package/src/components/Themer.astro +3 -3
  62. package/src/components/Toc.astro +7 -11
  63. package/src/components/Toggle.astro +45 -0
  64. package/src/components/{Breadcrumb.astro → _Breadcrumb.astro} +3 -3
  65. package/src/components/_Image.astro +2 -2
  66. package/src/components/docs/Props.astro +21 -0
  67. package/src/content/layouts/base.yml +131 -19
  68. package/src/content/pages/base/toggle.mdx +28 -0
  69. package/src/content/pages/{blocks → docs/blocks}/banner.mdx +1 -0
  70. package/src/content/pages/docs/blocks/colleagues.mdx +49 -0
  71. package/src/content/pages/docs/blocks/content.mdx +155 -0
  72. package/src/content/pages/docs/blocks/cta.mdx +16 -0
  73. package/src/content/pages/docs/blocks/feature.mdx +17 -0
  74. package/src/content/pages/docs/blocks/features.mdx +35 -0
  75. package/src/content/pages/docs/blocks/footer.mdx +46 -0
  76. package/src/content/pages/docs/blocks/header.mdx +60 -0
  77. package/src/content/pages/docs/blocks/hero.mdx +18 -0
  78. package/src/content/pages/docs/blocks/intro.mdx +16 -0
  79. package/src/content/pages/docs/blocks/logos.mdx +37 -0
  80. package/src/content/pages/docs/blocks/projects.mdx +36 -0
  81. package/src/content/pages/docs/blocks/reviews.mdx +65 -0
  82. package/src/content/pages/docs/blocks.mdx +45 -20
  83. package/src/content/pages/docs/collections/pages.mdx +2 -2
  84. package/src/content/pages/docs/components/{table.mdx → _table.mdx} +2 -4
  85. package/src/content/pages/docs/components/{themer.mdx → _themer.mdx} +2 -4
  86. package/src/content/pages/docs/components/_toggle.mdx +2 -2
  87. package/src/content/pages/docs/components/badge.mdx +2 -4
  88. package/src/content/pages/docs/components/badges.mdx +3 -4
  89. package/src/content/pages/docs/components/button.mdx +2 -4
  90. package/src/content/pages/docs/components/buttons.mdx +3 -4
  91. package/src/content/pages/docs/components/channel.mdx +2 -4
  92. package/src/content/pages/docs/components/channels.mdx +3 -2
  93. package/src/content/pages/docs/components/checkbox.mdx +2 -4
  94. package/src/content/pages/docs/components/heading.mdx +11 -21
  95. package/src/content/pages/docs/components/icon.mdx +2 -4
  96. package/src/content/pages/docs/components/image.mdx +3 -9
  97. package/src/content/pages/docs/components/input.mdx +2 -4
  98. package/src/content/pages/docs/components/label.mdx +2 -4
  99. package/src/content/pages/docs/components/link.mdx +2 -4
  100. package/src/content/pages/docs/components/links.mdx +3 -4
  101. package/src/content/pages/docs/components/list.mdx +2 -4
  102. package/src/content/pages/docs/components/logo.mdx +9 -21
  103. package/src/content/pages/docs/components/menu.mdx +20 -48
  104. package/src/content/pages/docs/components/paragraph.mdx +44 -0
  105. package/src/content/pages/docs/components/rating.mdx +9 -42
  106. package/src/content/pages/docs/components/select.mdx +2 -4
  107. package/src/content/pages/docs/components/social.mdx +2 -4
  108. package/src/content/pages/docs/components/socials.mdx +3 -2
  109. package/src/content/pages/docs/components/switch.mdx +2 -4
  110. package/src/content/pages/docs/components/tagline.mdx +2 -6
  111. package/src/content/pages/docs/components/textarea.mdx +2 -4
  112. package/src/content/pages/docs/components.mdx +3 -4
  113. package/src/content/pages/docs/customization.mdx +52 -20
  114. package/src/content/pages/docs/frameworks.mdx +12 -11
  115. package/src/content/pages/docs/index.mdx +3 -2
  116. package/src/content/pages/docs/installation.mdx +9 -6
  117. package/src/content/pages/docs/layouts/doc.mdx +15 -0
  118. package/src/content/pages/docs/layouts/page.mdx +15 -0
  119. package/src/content/pages/docs/layouts.mdx +66 -19
  120. package/src/content/pages/docs/{generating-pages.mdx → pages.mdx} +1 -0
  121. package/src/content/pages/docs/{components → structures}/_card.mdx +6 -6
  122. package/src/content/pages/docs/{components → structures}/_drawer.mdx +1 -1
  123. package/src/content/pages/docs/structures/card.mdx +15 -0
  124. package/src/content/pages/docs/{components → structures}/code.mdx +4 -7
  125. package/src/content/pages/docs/structures/container.mdx +15 -0
  126. package/src/content/pages/docs/structures/drawer.mdx +15 -0
  127. package/src/content/pages/docs/structures/group.mdx +15 -0
  128. package/src/content/pages/docs/structures/layout.mdx +15 -0
  129. package/src/content/pages/docs/structures/masonry.mdx +15 -0
  130. package/src/content/pages/docs/structures/matrix.mdx +15 -0
  131. package/src/content/pages/docs/structures/panel.mdx +15 -0
  132. package/src/content/pages/docs/{components → structures}/prose.mdx +3 -6
  133. package/src/content/pages/docs/structures/section.mdx +15 -0
  134. package/src/content/pages/docs/structures/stack.mdx +15 -0
  135. package/src/content/pages/docs/structures/writeup.mdx +15 -0
  136. package/src/content/pages/docs/structures.mdx +7 -0
  137. package/src/content/pages/index.mdx +7 -4
  138. package/src/content/pages/showcase.mdx +1 -4
  139. package/src/css/theme.css +9 -42
  140. package/src/integration/index.ts +1 -1
  141. package/src/layouts/Block.astro +81 -0
  142. package/src/layouts/Category.astro +6 -6
  143. package/src/layouts/Doc.astro +50 -24
  144. package/src/layouts/Job.astro +5 -5
  145. package/src/layouts/Jobs.astro +14 -14
  146. package/src/layouts/Page.astro +4 -4
  147. package/src/layouts/Post.astro +7 -6
  148. package/src/layouts/Product.astro +3 -2
  149. package/src/schemas/badge.ts +14 -0
  150. package/src/schemas/block.ts +58 -0
  151. package/src/schemas/{components/button.ts → button.ts} +3 -7
  152. package/src/schemas/channel.ts +14 -0
  153. package/src/schemas/checkbox.ts +13 -0
  154. package/src/schemas/footer.ts +17 -0
  155. package/src/schemas/{components/head.ts → head.ts} +5 -5
  156. package/src/schemas/header.ts +21 -0
  157. package/src/schemas/{components/image.ts → image.ts} +22 -9
  158. package/src/schemas/input.ts +13 -0
  159. package/src/schemas/link.ts +14 -0
  160. package/src/schemas/logo.ts +13 -0
  161. package/src/schemas/menu.ts +11 -0
  162. package/src/schemas/page.ts +11 -14
  163. package/src/schemas/{utils/pathSchema.ts → path.ts} +1 -1
  164. package/src/schemas/textarea.ts +11 -0
  165. package/src/{components → structures}/Card.astro +5 -1
  166. package/src/{components → structures}/Code.astro +7 -6
  167. package/src/{components → structures}/Container.astro +1 -1
  168. package/src/{components → structures}/Drawer.astro +4 -4
  169. package/src/{components → structures}/Layout.astro +2 -3
  170. package/src/structures/Matrix.astro +39 -0
  171. package/src/{components → structures}/Prose.astro +17 -6
  172. package/src/structures/Sidebar.astro +37 -0
  173. package/src/{components → structures}/Stack.astro +1 -1
  174. package/src/{components → structures}/Writeup.astro +9 -1
  175. package/src/structures/_Bento.astro +34 -0
  176. package/src/utils/cart.ts +1 -1
  177. package/tailwind.config.ts +5 -7
  178. package/tsconfig.json +3 -1
  179. package/public/favicon/favicon-16x16-dark.png +0 -0
  180. package/public/favicon/favicon-32x32-dark.png +0 -0
  181. package/public/favicon/favicon-48x48-dark.png +0 -0
  182. package/public/favicon/favicon-dark.ico +0 -0
  183. package/src/blocks/Feature1.astro +0 -61
  184. package/src/components/Avatar.astro +0 -45
  185. package/src/components/Avatars.astro +0 -36
  186. package/src/components/Cards.astro +0 -133
  187. package/src/components/Dialog.astro +0 -67
  188. package/src/components/DrawerOld.astro +0 -143
  189. package/src/components/Grid.astro +0 -39
  190. package/src/components/Header.astro +0 -32
  191. package/src/components/Navigation.astro +0 -39
  192. package/src/components/_Author.astro +0 -90
  193. package/src/components/_Header.astro +0 -129
  194. package/src/components/_Prose copy.astro +0 -172
  195. package/src/components/_Sidebar copy.astro +0 -87
  196. package/src/components/docs/DecorativeBox.astro +0 -15
  197. package/src/components/docs/PropsTable.astro +0 -49
  198. package/src/components/experimental/Video.astro +0 -32
  199. package/src/components/experimental/Window.astro +0 -122
  200. package/src/content/pages/blocks/_footer.mdx +0 -75
  201. package/src/content/pages/blocks/_header.mdx +0 -183
  202. package/src/content/pages/blocks/_prices.mdx +0 -122
  203. package/src/content/pages/blocks/_product.mdx +0 -97
  204. package/src/content/pages/blocks/_products.mdx +0 -52
  205. package/src/content/pages/blocks/colleagues.mdx +0 -37
  206. package/src/content/pages/blocks/content.mdx +0 -77
  207. package/src/content/pages/blocks/cta.mdx +0 -159
  208. package/src/content/pages/blocks/features.mdx +0 -128
  209. package/src/content/pages/blocks/hero.mdx +0 -94
  210. package/src/content/pages/blocks/intro.mdx +0 -124
  211. package/src/content/pages/blocks/reviews.mdx +0 -251
  212. package/src/content/pages/categories/category.md +0 -7
  213. package/src/content/pages/docs/_internationalization.mdx +0 -55
  214. package/src/content/pages/docs/_using-blocks.mdx +0 -33
  215. package/src/content/pages/docs/_using-presets.mdx +0 -49
  216. package/src/content/pages/docs/collections.mdx +0 -42
  217. package/src/content/pages/docs/components/_switch.mdx +0 -31
  218. package/src/content/pages/docs/components/avatar.mdx +0 -34
  219. package/src/content/pages/docs/components/section.mdx +0 -35
  220. package/src/content/pages/docs/components/text.mdx +0 -48
  221. package/src/content/pages/products/product.md +0 -20
  222. package/src/css/color.css +0 -76
  223. package/src/css/size.css +0 -131
  224. package/src/images/favicon/android-chrome-192x192.png +0 -0
  225. package/src/images/favicon/android-chrome-512x512.png +0 -0
  226. package/src/images/favicon/apple-touch-icon.png +0 -0
  227. package/src/images/favicon/browserconfig.xml +0 -9
  228. package/src/images/favicon/favicon-16x16.png +0 -0
  229. package/src/images/favicon/favicon-32x32.png +0 -0
  230. package/src/images/favicon/favicon-48x48.png +0 -0
  231. package/src/images/favicon/favicon.ico +0 -0
  232. package/src/images/favicon/favicon.svg +0 -16
  233. package/src/images/favicon/manifest.webmanifest +0 -30
  234. package/src/images/favicon/mstile-150x150.png +0 -0
  235. package/src/images/favicon/safari-pinned-tab.svg +0 -16
  236. package/src/images/favicon/yandex-browser-50x50.png +0 -0
  237. package/src/images/favicon/yandex-browser-manifest.json +0 -9
  238. package/src/pages/test.astro +0 -35
  239. package/src/schemas/components/avatar.ts +0 -6
  240. package/src/schemas/components/badge.ts +0 -18
  241. package/src/schemas/components/block.ts +0 -61
  242. package/src/schemas/components/channel.ts +0 -19
  243. package/src/schemas/components/footer.ts +0 -19
  244. package/src/schemas/components/header.ts +0 -23
  245. package/src/schemas/components/heading.ts +0 -9
  246. package/src/schemas/components/icon.ts +0 -9
  247. package/src/schemas/components/link.ts +0 -17
  248. package/src/schemas/components/logo.ts +0 -13
  249. package/src/schemas/components/menu.ts +0 -14
  250. package/src/schemas/components/navigation.ts +0 -10
  251. package/src/schemas/components/paragraph.ts +0 -9
  252. package/src/schemas/components/price.ts +0 -9
  253. package/src/schemas/components/rating.ts +0 -10
  254. package/src/schemas/components/sidebar.ts +0 -18
  255. package/src/schemas/components/social.ts +0 -18
  256. package/src/schemas/components/tagline.ts +0 -9
  257. package/src/schemas/imageSchema.ts +0 -41
  258. package/src/schemas/utils/component.ts +0 -17
  259. package/src/types/global-props.ts +0 -7
  260. package/src/utils/_archive/Childmorphic.ts +0 -8
  261. package/src/utils/_archive/getAllCollections.ts +0 -10
  262. package/src/utils/_archive/getCollectionCascade.ts +0 -33
  263. package/src/utils/_archive/getPathname.ts +0 -18
  264. package/src/utils/_archive/mergeEntries.ts +0 -28
  265. package/src/utils/_archive/staticPageSchema.ts +0 -124
  266. package/src/utils/_archive/transform/transform.ts +0 -25
  267. package/src/utils/_archive/transform/transformCasing.ts +0 -24
  268. package/src/utils/_archive/transform/transformReferences.ts +0 -54
  269. package/src/utils/_archive/transform/transformSelfs.ts +0 -20
  270. package/src/utils/_archive/transform/transformUnderscores.ts +0 -19
  271. package/src/utils/formatEntries.ts +0 -8
  272. package/src/utils/formatEntry.ts +0 -29
  273. package/src/utils/getDeepReferenceChildren.ts +0 -14
  274. package/src/utils/getFolderChildren.ts +0 -18
  275. package/src/utils/getReferenceChildren.ts +0 -14
  276. package/src/utils/getSiblingPages.ts +0 -14
  277. package/src/utils/setTheme.ts +0 -18
  278. /package/{src → public}/images/anti-slip-profiles.webp +0 -0
  279. /package/{src → public}/images/avatar-1.jpeg +0 -0
  280. /package/{src → public}/images/avatar-2.jpeg +0 -0
  281. /package/{src → public}/images/avatar-3.jpeg +0 -0
  282. /package/{src → public}/images/avatar-4.jpeg +0 -0
  283. /package/{src → public}/images/avatar-placeholder.jpg +0 -0
  284. /package/{src → public}/images/block-code.png +0 -0
  285. /package/{src → public}/images/component-code.png +0 -0
  286. /package/{src → public}/images/favicon.svg +0 -0
  287. /package/{src → public}/images/fulldev-ui.webp +0 -0
  288. /package/{src → public}/images/lavis-detailing.webp +0 -0
  289. /package/{src → public}/images/leren-trainingsacteren.webp +0 -0
  290. /package/{src → public}/images/logo-1.svg +0 -0
  291. /package/{src → public}/images/logo-2.svg +0 -0
  292. /package/{src → public}/images/logo-basic.svg +0 -0
  293. /package/{src → public}/images/logo-simple.svg +0 -0
  294. /package/{src → public}/images/logo-thin.svg +0 -0
  295. /package/{src → public}/images/logo.svg +0 -0
  296. /package/{src → public}/images/logofat.svg +0 -0
  297. /package/{src → public}/images/miele-witgoedcenter-amsterdam.webp +0 -0
  298. /package/{src → public}/images/og-image.png +0 -0
  299. /package/{src → public}/images/placeholder-center.webp +0 -0
  300. /package/{src → public}/images/placeholder-landscape-dark.png +0 -0
  301. /package/{src → public}/images/placeholder-landscape.webp +0 -0
  302. /package/{src → public}/images/placeholder-portrait.webp +0 -0
  303. /package/{src → public}/images/placeholder-right.webp +0 -0
  304. /package/{src → public}/images/placeholder.webp +0 -0
  305. /package/{src → public}/images/sloepverhuur-bolsward.webp +0 -0
  306. /package/{src → public}/images/stark-vulcanising-products.webp +0 -0
  307. /package/{src → public}/images/the-gym-haren.webp +0 -0
  308. /package/{src → public}/images/van-dillen-antieke-bouwmaterialen.webp +0 -0
  309. /package/src/components/{LocaleSwitcher.astro → _LocaleSwitcher.astro} +0 -0
  310. /package/src/content/pages/{showcase → _showcase}/anti-slip-profiles.md +0 -0
  311. /package/src/content/pages/{showcase → _showcase}/fulldev-ui.md +0 -0
  312. /package/src/content/pages/{showcase → _showcase}/lavis-detailing.md +0 -0
  313. /package/src/content/pages/{showcase → _showcase}/leren-trainingsacteren.md +0 -0
  314. /package/src/content/pages/{showcase → _showcase}/miele-witgoedcenter-amsterdam.md +0 -0
  315. /package/src/content/pages/{showcase → _showcase}/sloepverhuur-bolsward.md +0 -0
  316. /package/src/content/pages/{showcase → _showcase}/stark-vulcanising-products.md +0 -0
  317. /package/src/content/pages/{showcase → _showcase}/the-gym-haren.md +0 -0
  318. /package/src/content/pages/{showcase → _showcase}/van-dillen-antieke-bouwmaterialen.md +0 -0
  319. /package/src/content/pages/{blocks → docs/blocks}/_categories.mdx +0 -0
  320. /package/src/content/pages/{blocks/contact.mdx → docs/blocks/_contact.mdx} +0 -0
  321. /package/src/content/pages/{blocks → docs/blocks}/_jobs.mdx +0 -0
  322. /package/src/content/pages/{blocks/posts.mdx → docs/blocks/_posts.mdx} +0 -0
  323. /package/src/content/pages/{blocks → docs/blocks}/_stats.mdx +0 -0
  324. /package/src/content/pages/docs/{components → structures}/_dialog.mdx +0 -0
  325. /package/src/{components → structures}/Carousel.astro +0 -0
  326. /package/src/{components → structures}/Group.astro +0 -0
  327. /package/src/{components → structures}/Masonry.astro +0 -0
  328. /package/src/{components → structures}/Panel.astro +0 -0
  329. /package/src/{components → structures}/Section.astro +0 -0
  330. /package/{src/types/virtual.d.ts → virtual.d.ts} +0 -0
@@ -0,0 +1,103 @@
1
+ ---
2
+ // Heading etc left, image and content right, sticky
3
+ import type { ComponentProps } from 'astro/types'
4
+ import Badges from 'fulldev-ui/components/Badges.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 Paragraph from 'fulldev-ui/components/Paragraph.astro'
10
+ import Tagline from 'fulldev-ui/components/Tagline.astro'
11
+ import Container from 'fulldev-ui/structures/Container.astro'
12
+ import Group from 'fulldev-ui/structures/Group.astro'
13
+ import Prose from 'fulldev-ui/structures/Prose.astro'
14
+ import Section from 'fulldev-ui/structures/Section.astro'
15
+
16
+ interface Props extends ComponentProps<typeof Section> {
17
+ tagline?: string | undefined
18
+ heading?: string | undefined
19
+ paragraph?: string | undefined
20
+ content?: string | undefined
21
+ buttons?: ComponentProps<typeof Buttons>['buttons']
22
+ cards?: {
23
+ image?: ComponentProps<typeof Image> | undefined
24
+ badges?: ComponentProps<typeof Badges>['badges']
25
+ heading?: string | undefined
26
+ paragraph?: string | undefined
27
+ }[]
28
+ }
29
+
30
+ const { tagline, heading, paragraph, buttons, content, cards, ...rest } =
31
+ Astro.props
32
+ ---
33
+
34
+ <Section
35
+ class:list="projects-1"
36
+ {...rest}
37
+ >
38
+ <Container>
39
+ <Prose>
40
+ <Tagline text={tagline} />
41
+ <Heading
42
+ as="h2"
43
+ size="4xl"
44
+ text={heading}
45
+ />
46
+ <Paragraph
47
+ muted
48
+ size="lg"
49
+ text={paragraph}
50
+ />
51
+ <Group>
52
+ <Buttons {buttons} />
53
+ </Group>
54
+ </Prose>
55
+ <Element class:list="projects-1-cards">
56
+ {
57
+ cards?.map(({ image, badges, heading, paragraph }) => (
58
+ <Element class:list="projects-1-card">
59
+ <Image {...image} />
60
+ <Group>
61
+ <Badges
62
+ size="sm"
63
+ {badges}
64
+ />
65
+ </Group>
66
+ <Heading
67
+ as="h3"
68
+ size="xl"
69
+ text={heading}
70
+ />
71
+ <Paragraph text={paragraph} />
72
+ </Element>
73
+ ))
74
+ }
75
+ </Element>
76
+ </Container>
77
+ </Section>
78
+
79
+ <style is:global>
80
+ @layer fulldev {
81
+ .projects-1 {
82
+ .container {
83
+ @apply flex flex-col items-start gap-x-gutter lg:grid lg:grid-cols-2;
84
+ }
85
+
86
+ .prose {
87
+ @apply lg:sticky lg:top-sticky-16 lg:max-w-xl;
88
+ }
89
+
90
+ .projects-1-cards {
91
+ @apply flex flex-col gap-8;
92
+ }
93
+
94
+ .projects-1-card {
95
+ @apply flex flex-col gap-2;
96
+
97
+ .image {
98
+ @apply mb-4 rounded-md;
99
+ }
100
+ }
101
+ }
102
+ }
103
+ </style>
@@ -1,15 +1,16 @@
1
1
  ---
2
2
  import type { ComponentProps } from 'astro/types'
3
- import Card from 'fulldev-ui/components/Card.astro'
4
- import Container from 'fulldev-ui/components/Container.astro'
5
3
  import Heading from 'fulldev-ui/components/Heading.astro'
6
- import Masonry from 'fulldev-ui/components/Masonry.astro'
4
+ import Image from 'fulldev-ui/components/Image.astro'
7
5
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
8
6
  import Rating from 'fulldev-ui/components/Rating.astro'
9
- import Section from 'fulldev-ui/components/Section.astro'
10
7
  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'
8
+ import type { BlockSchema } from 'fulldev-ui/schemas/block'
9
+ import Card from 'fulldev-ui/structures/Card.astro'
10
+ import Container from 'fulldev-ui/structures/Container.astro'
11
+ import Masonry from 'fulldev-ui/structures/Masonry.astro'
12
+ import Section from 'fulldev-ui/structures/Section.astro'
13
+ import Writeup from 'fulldev-ui/structures/Writeup.astro'
13
14
 
14
15
  interface Props extends ComponentProps<typeof Section>, BlockSchema {}
15
16
 
@@ -34,8 +35,9 @@ const { tagline, heading, paragraph, cards, ...rest } = Astro.props
34
35
  </Writeup>
35
36
  <Masonry>
36
37
  {
37
- cards?.map(({ rating, heading, paragraph }) => (
38
+ cards?.map(({ rating, heading, paragraph, image }) => (
38
39
  <Card class="reviews-1-card">
40
+ <Image {...image} />
39
41
  <Rating
40
42
  size="sm"
41
43
  score={rating}
@@ -2,9 +2,8 @@
2
2
  import type { ComponentProps, HTMLAttributes } from 'astro/types'
3
3
  import Element from 'fulldev-ui/components/Element.astro'
4
4
  import Links from 'fulldev-ui/components/Links.astro'
5
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
6
5
 
7
- interface Props extends GlobalProps, HTMLAttributes<'header'> {
6
+ interface Props extends HTMLAttributes<'header'> {
8
7
  dark?: boolean | undefined
9
8
  size?: 'sm' | 'md' | 'lg' | undefined
10
9
  links?: ComponentProps<typeof Links>['links']
@@ -1,33 +1,21 @@
1
1
  ---
2
- import type { HTMLAttributes, HTMLTag } from 'astro/types'
2
+ import type { HTMLAttributes } from 'astro/types'
3
3
  import Element from 'fulldev-ui/components/Element.astro'
4
4
  import Icon from 'fulldev-ui/components/Icon.astro'
5
- import type { BadgeSchema } from 'fulldev-ui/schemas/components/badge'
6
5
 
7
- interface Props
8
- extends HTMLAttributes<'button'>,
9
- Omit<HTMLAttributes<'a'>, 'href' | 'target'>,
10
- BadgeSchema {
11
- as?: HTMLTag
12
- type?: HTMLAttributes<'button'>['type'] & HTMLAttributes<'a'>['type']
13
- reverse?: boolean | undefined
6
+ interface Props extends HTMLAttributes<'a'>, HTMLAttributes<'div'> {
7
+ variant?: 'primary' | 'secondary' | 'outline' | undefined
8
+ size?: 'sm' | 'md' | 'lg' | undefined
9
+ text?: string | undefined
10
+ icon?: string | undefined
14
11
  }
15
12
 
16
- const {
17
- href,
18
- as = href ? 'a' : 'button',
19
- variant = 'outline',
20
- size = 'md',
21
- text,
22
- icon,
23
- ...rest
24
- } = Astro.props
13
+ const { variant = 'outline', size = 'md', text, icon, ...rest } = Astro.props
25
14
  ---
26
15
 
27
16
  <Element
28
17
  class:list="badge"
29
- {as}
30
- {href}
18
+ as={rest.href ? 'a' : 'div'}
31
19
  {variant}
32
20
  {size}
33
21
  {...rest}
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  import type { ComponentProps } from 'astro/types'
3
- import Badge from './Badge.astro'
3
+ import Badge from 'fulldev-ui/components/Badge.astro'
4
4
 
5
5
  interface Props extends ComponentProps<typeof Badge> {
6
6
  badge?: ComponentProps<typeof Badge> | undefined
7
- badges?: ComponentProps<typeof Badge>[] | undefined
7
+ badges?: string[] | undefined
8
8
  }
9
9
 
10
10
  const { badge, badges, ...rest } = Astro.props
@@ -13,8 +13,8 @@ const { badge, badges, ...rest } = Astro.props
13
13
  {
14
14
  [badge, ...(badges || [])].filter(Boolean).map((badge) => (
15
15
  <Badge
16
- {...badge}
17
16
  {...rest}
17
+ {...(typeof badge === 'string' ? { text: badge } : badge)}
18
18
  />
19
19
  ))
20
20
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  import { getEntries } from 'astro:content'
3
- import type { BlockSchema } from 'fulldev-ui/schemas/components/block'
3
+ import type { BlockSchema } from 'fulldev-ui/schemas/block'
4
4
 
5
5
  interface Props extends BlockSchema {}
6
6
 
@@ -1,33 +1,24 @@
1
1
  ---
2
- import type { HTMLAttributes, HTMLTag } from 'astro/types'
2
+ import type { HTMLAttributes } from 'astro/types'
3
3
  import Element from 'fulldev-ui/components/Element.astro'
4
4
  import Icon from 'fulldev-ui/components/Icon.astro'
5
- import type { ButtonSchema } from 'fulldev-ui/schemas/components/button'
6
5
 
7
6
  interface Props
8
7
  extends HTMLAttributes<'button'>,
9
- Omit<HTMLAttributes<'a'>, 'href' | 'target'>,
10
- ButtonSchema {
11
- as?: HTMLTag
12
- type?: HTMLAttributes<'button'>['type'] & HTMLAttributes<'a'>['type']
13
- for?: HTMLAttributes<'label'>['for']
8
+ Omit<HTMLAttributes<'a'>, 'type'>,
9
+ HTMLAttributes<'label'> {
10
+ variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | undefined
11
+ size?: 'sm' | 'md' | 'lg' | undefined
12
+ text?: string | undefined
13
+ icon?: string | undefined
14
14
  }
15
15
 
16
- const {
17
- href,
18
- as = href ? 'a' : 'button',
19
- variant = 'primary',
20
- size = 'md',
21
- text,
22
- icon,
23
- ...rest
24
- } = Astro.props
16
+ const { variant = 'primary', size = 'md', text, icon, ...rest } = Astro.props
25
17
  ---
26
18
 
27
19
  <Element
28
20
  class:list={['button']}
29
- {as}
30
- {href}
21
+ as={rest.href ? 'a' : rest.for ? 'label' : 'button'}
31
22
  {variant}
32
23
  {size}
33
24
  {...rest}
@@ -1,8 +1,9 @@
1
1
  ---
2
+ // @ts-nocheck
2
3
  import type { ComponentProps } from 'astro/types'
3
4
  import CartList from 'fulldev-ui/components/CartList.svelte'
4
5
  import CartSummary from 'fulldev-ui/components/CartSummary.astro'
5
- import Drawer from 'fulldev-ui/components/Drawer.astro'
6
+ import Drawer from 'fulldev-ui/structures/Drawer.astro'
6
7
  import Button from './Button.astro'
7
8
  import Icon from './Icon.astro'
8
9
  import Input from './Input.astro'
@@ -13,10 +14,10 @@ interface Props extends Omit<ComponentProps<typeof Drawer>, 'id' | 'icon'> {}
13
14
  const { variant = 'ghost', size = 'md', ...rest } = Astro.props
14
15
  ---
15
16
 
16
- <Select if={false} />
17
- <Button if={false} />
18
- <Input if={false} />
19
- <Icon if={false} />
17
+ <Select show={false} />
18
+ <Button show={false} />
19
+ <Input show={false} />
20
+ <Icon show={false} />
20
21
 
21
22
  <Drawer
22
23
  class:list="cart"
@@ -24,7 +25,6 @@ const { variant = 'ghost', size = 'md', ...rest } = Astro.props
24
25
  icon="shopping-cart"
25
26
  {variant}
26
27
  {size}
27
- {icon}
28
28
  {...rest}
29
29
  >
30
30
  <CartList client:load />
@@ -1,4 +1,5 @@
1
1
  ---
2
+ // @ts-nocheck
2
3
  import { STRIPE_RESTRICTED_KEY, URL } from 'astro:env/client'
3
4
  import CartCheckout from './CartCheckout.svelte'
4
5
  import CartTotal from './CartTotal.svelte'
@@ -3,9 +3,15 @@ import type { HTMLAttributes } from 'astro/types'
3
3
  import Button from 'fulldev-ui/components/Button.astro'
4
4
  import Element from 'fulldev-ui/components/Element.astro'
5
5
  import Heading from 'fulldev-ui/components/Heading.astro'
6
- import type { ChannelSchema } from 'fulldev-ui/schemas/components/channel'
7
6
 
8
- interface Props extends HTMLAttributes<'div'>, ChannelSchema {}
7
+ interface Props extends HTMLAttributes<'div'> {
8
+ variant?: 'secondary' | 'outline' | undefined
9
+ size?: 'sm' | 'md' | 'lg' | undefined
10
+ heading?: string | undefined
11
+ text?: string | undefined
12
+ href?: string | undefined
13
+ icon?: string | undefined
14
+ }
9
15
 
10
16
  const {
11
17
  variant = 'secondary',
@@ -32,7 +38,7 @@ const {
32
38
  <Element class:list="channel-content">
33
39
  <Heading
34
40
  as="h6"
35
- size="sm"
41
+ {size}
36
42
  text={heading}
37
43
  />
38
44
  <Fragment set:html={text} />
@@ -1,51 +1,20 @@
1
1
  ---
2
- import type { ComponentProps, HTMLAttributes } from 'astro/types'
2
+ import type { ComponentProps } from 'astro/types'
3
3
  import Channel from 'fulldev-ui/components/Channel.astro'
4
- import Element from 'fulldev-ui/components/Element.astro'
5
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
6
4
 
7
- interface Props extends GlobalProps, HTMLAttributes<'div'> {
8
- variant?: ComponentProps<typeof Channel>['variant']
9
- size?: ComponentProps<typeof Channel>['size']
5
+ interface Props extends ComponentProps<typeof Channel> {
10
6
  channel?: ComponentProps<typeof Channel> | undefined
11
7
  channels?: ComponentProps<typeof Channel>[] | undefined
12
8
  }
13
9
 
14
- const { channels = [], channel, variant, size, ...rest } = Astro.props
10
+ const { channel, channels, ...rest } = Astro.props
15
11
  ---
16
12
 
17
- <Element
18
- class:list="channels"
19
- {size}
20
- {...rest}
21
- >
22
- {
23
- [channel, ...channels].filter(Boolean).map((channel) => (
24
- <Channel
25
- {variant}
26
- {size}
27
- {...channel}
28
- />
29
- ))
30
- }
31
- </Element>
32
-
33
- <style is:global>
34
- @layer fulldev {
35
- .channels {
36
- @apply flex flex-col gap-2.5;
37
-
38
- &.size-sm {
39
- @apply gap-2;
40
- }
41
-
42
- &.size-md {
43
- @apply gap-2.5;
44
- }
45
-
46
- &.size-lg {
47
- @apply gap-3;
48
- }
49
- }
50
- }
51
- </style>
13
+ {
14
+ [channel, ...(channels || [])].filter(Boolean).map((channel) => (
15
+ <Channel
16
+ {...rest}
17
+ {...channel}
18
+ />
19
+ ))
20
+ }
@@ -1,22 +1,15 @@
1
1
  ---
2
- import type { ComponentProps, HTMLAttributes } from 'astro/types'
2
+ import type { HTMLAttributes } from 'astro/types'
3
3
  import Element from 'fulldev-ui/components/Element.astro'
4
+ import Icon from 'fulldev-ui/components/Icon.astro'
4
5
  import Label from 'fulldev-ui/components/Label.astro'
5
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
6
- import Icon from './Icon.astro'
7
6
 
8
- interface Props extends GlobalProps, HTMLAttributes<'input'> {
9
- label?: ComponentProps<typeof Label>['text']
7
+ interface Props extends HTMLAttributes<'input'> {
8
+ size?: 'sm' | 'md' | 'lg' | undefined
9
+ label?: string | undefined
10
10
  }
11
11
 
12
- const {
13
- label,
14
- name = label,
15
- id = name,
16
- type = 'text',
17
- size = 'md',
18
- ...rest
19
- } = Astro.props
12
+ const { label, name = label, id = name, size = 'md', ...rest } = Astro.props
20
13
  ---
21
14
 
22
15
  <Element
@@ -29,7 +22,7 @@ const {
29
22
  class:list="checkbox-input"
30
23
  as="input"
31
24
  type="checkbox"
32
- if={id}
25
+ show={id}
33
26
  {id}
34
27
  {name}
35
28
  {...rest}
@@ -37,6 +30,7 @@ const {
37
30
  <Icon
38
31
  class="checkbox-icon"
39
32
  name="check"
33
+ {size}
40
34
  />
41
35
  <Label
42
36
  for={id}
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  const {
3
3
  as: As = 'div',
4
+ show = 'content',
4
5
  theme,
5
6
  variant,
6
7
  size,
@@ -26,7 +27,7 @@ const {
26
27
  } = Astro.props
27
28
 
28
29
  const slot = await Astro.slots.render('default')
29
- const render = 'if' in rest ? rest.if : slot?.trim().length > 0
30
+ const render = show === 'content' ? slot?.trim().length > 0 : show
30
31
  ---
31
32
 
32
33
  {
@@ -5,9 +5,8 @@ import Element from 'fulldev-ui/components/Element.astro'
5
5
  import Input from 'fulldev-ui/components/Input.astro'
6
6
  import Select from 'fulldev-ui/components/Select.astro'
7
7
  import Textarea from 'fulldev-ui/components/Textarea.astro'
8
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
9
8
 
10
- interface Props extends GlobalProps, HTMLAttributes<'form'> {
9
+ interface Props extends HTMLAttributes<'form'> {
11
10
  submit?: ComponentProps<typeof Button>['text']
12
11
  fields?:
13
12
  | (
@@ -1,4 +1,5 @@
1
1
  ---
2
+ // @ts-nocheck
2
3
  import type { ComponentProps } from 'astro/types'
3
4
  import Button from 'fulldev-ui/components/Button.astro'
4
5
  import Element from 'fulldev-ui/components/Element.astro'
@@ -64,7 +65,7 @@ const hasMany = images?.length > 5
64
65
  <Element class:list="gallery">
65
66
  <Element class:list="gallery-large">
66
67
  <Button
67
- if={hasMultiple}
68
+ show={hasMultiple}
68
69
  class="gallery-left"
69
70
  icon="chevron-left"
70
71
  variant="secondary"
@@ -80,7 +81,7 @@ const hasMany = images?.length > 5
80
81
  }
81
82
  </Element>
82
83
  <Button
83
- if={hasMultiple}
84
+ show={hasMultiple}
84
85
  class="gallery-right"
85
86
  icon="chevron-right"
86
87
  variant="secondary"
@@ -88,11 +89,11 @@ const hasMany = images?.length > 5
88
89
  />
89
90
  </Element>
90
91
  <Element
91
- if={hasMultiple}
92
+ show={hasMultiple}
92
93
  class:list="gallery-small"
93
94
  >
94
95
  <Button
95
- if={hasMany}
96
+ show={hasMany}
96
97
  class="gallery-left"
97
98
  icon="chevron-left"
98
99
  variant="secondary"
@@ -111,7 +112,7 @@ const hasMany = images?.length > 5
111
112
  }
112
113
  </Element>
113
114
  <Button
114
- if={hasMany}
115
+ show={hasMany}
115
116
  class="gallery-right"
116
117
  icon="chevron-right"
117
118
  variant="ghost"
@@ -1,16 +1,26 @@
1
1
  ---
2
2
  import { AstroSeo } from '@astrolib/seo'
3
3
  import type { HTMLAttributes } from 'astro/types'
4
- import type { HeadSchema } from 'fulldev-ui/schemas/components/head'
4
+ import type Image from 'fulldev-ui/components/Image.astro'
5
+ import type { ComponentProps } from 'svelte'
5
6
 
6
- type Props = HTMLAttributes<'head'> & HeadSchema & {}
7
+ type Props = HTMLAttributes<'head'> & {
8
+ title?: string | undefined
9
+ description?: string | undefined
10
+ image?: ComponentProps<typeof Image> | undefined
11
+ theme?: 'light' | 'dark' | 'system' | undefined
12
+ favicon?: string | undefined
13
+ company?: string | undefined
14
+ scripts?: string[] | undefined
15
+ code?: string | undefined
16
+ }
7
17
 
8
- const { theme, title, description, image, code } = Astro.props
18
+ const { theme, title, description, image, code, ...rest } = Astro.props
9
19
 
10
20
  const src = image?.src && Astro.url.origin + image.src
11
21
  ---
12
22
 
13
- <head>
23
+ <head {...rest}>
14
24
  <meta charset="utf-8" />
15
25
  <meta
16
26
  content="width=device-width, initial-scale=1, viewport-fit=cover"
@@ -1,27 +1,32 @@
1
1
  ---
2
- import type { HTMLAttributes, HTMLTag } from 'astro/types'
2
+ import type { HTMLAttributes } from 'astro/types'
3
3
  import Element from 'fulldev-ui/components/Element.astro'
4
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
5
- import { slugify } from 'fulldev-ui/utils/slugify'
6
4
 
7
- interface Props extends GlobalProps, HTMLAttributes<'h2'>, HTMLAttributes<'a'> {
8
- as?: HTMLTag
5
+ interface Props
6
+ extends HTMLAttributes<'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'> {
7
+ as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | undefined
9
8
  text?: string | undefined
10
9
  muted?: boolean | undefined
10
+ size?:
11
+ | 'xs'
12
+ | 'sm'
13
+ | 'md'
14
+ | 'lg'
15
+ | 'xl'
16
+ | '2xl'
17
+ | '3xl'
18
+ | '4xl'
19
+ | '5xl'
20
+ | '6xl'
21
+ | undefined
11
22
  }
12
23
 
13
- const {
14
- as = 'h2',
15
- text,
16
- id = text ? slugify(text) : undefined,
17
- ...rest
18
- } = Astro.props
24
+ const { as = 'h2', text, ...rest } = Astro.props
19
25
  ---
20
26
 
21
27
  <Element
22
28
  class:list="heading"
23
29
  {as}
24
- {id}
25
30
  {...rest}
26
31
  >
27
32
  <Fragment set:html={text} />
@@ -36,11 +41,6 @@ const {
36
41
  @apply text-muted-foreground;
37
42
  }
38
43
 
39
- &,
40
- &.size-md {
41
- @apply text-base;
42
- }
43
-
44
44
  &.size-xs {
45
45
  @apply text-xs;
46
46
  }
@@ -49,6 +49,10 @@ const {
49
49
  @apply text-sm;
50
50
  }
51
51
 
52
+ &.size-md {
53
+ @apply text-base;
54
+ }
55
+
52
56
  &.size-lg {
53
57
  @apply text-lg;
54
58
  }
@@ -2,11 +2,10 @@
2
2
  import tablerIcons from '@iconify-json/tabler/icons.json'
3
3
  import type { HTMLAttributes } from 'astro/types'
4
4
  import Element from 'fulldev-ui/components/Element.astro'
5
- import type { IconSchema } from 'fulldev-ui/schemas/components/icon'
6
5
 
7
- interface Props extends Omit<HTMLAttributes<'svg'>, 'name'>, IconSchema {
8
- // name?: keyof typeof tablerIcons.icons | undefined
6
+ interface Props extends HTMLAttributes<'svg'> {
9
7
  size?: 'sm' | 'md' | 'lg' | undefined
8
+ name?: string | undefined
10
9
  }
11
10
 
12
11
  const { size = 'md', name, ...rest } = Astro.props
@@ -1,9 +1,13 @@
1
1
  ---
2
2
  import type { HTMLAttributes } from 'astro/types'
3
3
  import { Image as AstroImage } from 'astro:assets'
4
- import type { ImageSchema } from 'fulldev-ui/schemas/imageSchema'
5
4
 
6
- interface Props extends HTMLAttributes<'img'>, ImageSchema {}
5
+ interface Props extends HTMLAttributes<'img'> {
6
+ src?: string | undefined
7
+ alt?: string | undefined
8
+ height?: number | undefined
9
+ width?: number | undefined
10
+ }
7
11
 
8
12
  function getAltBySrc() {
9
13
  if (!src) return