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,81 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import type { CollectionEntry } from 'astro:content'
4
+ import Footer from 'fulldev-ui/blocks/Footer.astro'
5
+ import Header from 'fulldev-ui/blocks/Header.astro'
6
+ import Heading from 'fulldev-ui/components/Heading.astro'
7
+ import Menus from 'fulldev-ui/components/Menus.astro'
8
+ import Paragraph from 'fulldev-ui/components/Paragraph.astro'
9
+ import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
10
+ import Container from 'fulldev-ui/structures/Container.astro'
11
+ import Layout from 'fulldev-ui/structures/Layout.astro'
12
+ import Prose from 'fulldev-ui/structures/Prose.astro'
13
+ import Sidebar from 'fulldev-ui/structures/Sidebar.astro'
14
+
15
+ type Props = ComponentProps<typeof Layout> &
16
+ PageSchema & {
17
+ render: CollectionEntry<'pages'>['render']
18
+ }
19
+
20
+ const { header, sidebar, render, title, description, footer } = Astro.props
21
+
22
+ const { Content } = await render()
23
+ ---
24
+
25
+ <Layout
26
+ class:list="block"
27
+ {...Astro.props}
28
+ >
29
+ <Header
30
+ {...sidebar}
31
+ {...header}
32
+ />
33
+ <Container
34
+ class:list="block-main"
35
+ as="main"
36
+ >
37
+ <Sidebar>
38
+ <Menus
39
+ size="sm"
40
+ menus={sidebar?.menus}
41
+ />
42
+ </Sidebar>
43
+ <Container class:list="block-container">
44
+ <Prose class:list="block-prose">
45
+ <Heading
46
+ size="4xl"
47
+ as="h1"
48
+ text={title}
49
+ />
50
+ <Paragraph
51
+ muted
52
+ text={description}
53
+ />
54
+ <Content />
55
+ </Prose>
56
+ </Container>
57
+ </Container>
58
+ <Footer {...footer} />
59
+ </Layout>
60
+
61
+ <style is:global>
62
+ @layer fulldev {
63
+ .block {
64
+ .block-main {
65
+ @apply flex w-full items-start justify-between !px-0;
66
+ }
67
+
68
+ .block-container {
69
+ max-width: calc(100% - var(--sidebar-width)) !important;
70
+ }
71
+
72
+ .sidebar {
73
+ @apply hidden lg:flex;
74
+ }
75
+
76
+ .block-prose {
77
+ @apply mx-auto max-w-none py-8;
78
+ }
79
+ }
80
+ }
81
+ </style>
@@ -1,14 +1,14 @@
1
- ---
1
+ <!-- ---
2
2
  import type { ComponentProps } from 'astro/types'
3
3
  import type { CollectionEntry } from 'astro:content'
4
4
  import { getCollection } from 'astro:content'
5
5
  import Products1 from 'fulldev-ui/blocks/Products1.astro'
6
6
  import Carousel from 'fulldev-ui/components/Carousel.astro'
7
7
  import Element from 'fulldev-ui/components/Element.astro'
8
- import Layout from 'fulldev-ui/components/Layout.astro'
9
- import Prose from 'fulldev-ui/components/Prose.astro'
10
8
  import Select from 'fulldev-ui/components/Select.astro'
11
9
  import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
10
+ import Layout from 'fulldev-ui/structures/Layout.astro'
11
+ import Prose from 'fulldev-ui/structures/Prose.astro'
12
12
  import { getHref } from 'fulldev-ui/utils/getHref.ts'
13
13
 
14
14
  interface Props extends ComponentProps<typeof Layout>, PageSchema {
@@ -77,10 +77,10 @@ const sorts = [
77
77
  class:list="category"
78
78
  {...Astro.props}
79
79
  >
80
- <!-- <Intro1
80
+ <Intro1
81
81
  heading={title}
82
82
  text={description}
83
- /> -->
83
+ />
84
84
  <Carousel>
85
85
  {
86
86
  categories.map((category) => (
@@ -133,4 +133,4 @@ const sorts = [
133
133
  @apply text-sm text-muted-foreground;
134
134
  }
135
135
  }
136
- </style>
136
+ </style> -->
@@ -3,23 +3,34 @@ import type { ComponentProps } from 'astro/types'
3
3
  import type { CollectionEntry } from 'astro:content'
4
4
  import Footer from 'fulldev-ui/blocks/Footer.astro'
5
5
  import Header from 'fulldev-ui/blocks/Header.astro'
6
- import Container from 'fulldev-ui/components/Container.astro'
7
- import Element from 'fulldev-ui/components/Element.astro'
8
6
  import Heading from 'fulldev-ui/components/Heading.astro'
9
- import Layout from 'fulldev-ui/components/Layout.astro'
7
+ import Menu from 'fulldev-ui/components/Menu.astro'
8
+ import Menus from 'fulldev-ui/components/Menus.astro'
10
9
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
11
- import Prose from 'fulldev-ui/components/Prose.astro'
12
- import Sidebar from 'fulldev-ui/components/Sidebar.astro'
13
- import Toc from 'fulldev-ui/components/Toc.astro'
14
10
  import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
11
+ import Container from 'fulldev-ui/structures/Container.astro'
12
+ import Layout from 'fulldev-ui/structures/Layout.astro'
13
+ import Prose from 'fulldev-ui/structures/Prose.astro'
14
+ import Sidebar from 'fulldev-ui/structures/Sidebar.astro'
15
15
 
16
- interface Props extends ComponentProps<typeof Layout>, PageSchema {
17
- render: CollectionEntry<'pages'>['render']
18
- }
16
+ type Props = ComponentProps<typeof Layout> &
17
+ PageSchema & {
18
+ render: CollectionEntry<'pages'>['render']
19
+ }
19
20
 
20
21
  const { header, sidebar, render, title, description, footer } = Astro.props
21
22
 
22
- const { Content } = await render()
23
+ const { Content, headings } = await render()
24
+
25
+ const filteredHeadings = headings?.filter(
26
+ (heading: any) => heading.depth >= 2 && heading.depth <= 4
27
+ )
28
+
29
+ const links = filteredHeadings?.map((button: any) => ({
30
+ text: button.text,
31
+ href: `#${button.slug}`,
32
+ class: `depth-${button.depth}`,
33
+ }))
23
34
  ---
24
35
 
25
36
  <Layout
@@ -30,27 +41,34 @@ const { Content } = await render()
30
41
  {...sidebar}
31
42
  {...header}
32
43
  />
33
- <Container class:list="doc-container">
34
- <Sidebar {...sidebar} />
35
- <Element
36
- class:list="doc-main"
37
- as="main"
38
- >
44
+ <Container as="main">
45
+ <Sidebar>
46
+ <Menus
47
+ size="sm"
48
+ menus={sidebar?.menus}
49
+ />
50
+ </Sidebar>
51
+ <Container>
39
52
  <Prose>
40
53
  <Heading
41
- as="h1"
42
54
  size="4xl"
55
+ as="h1"
43
56
  text={title}
44
57
  />
45
58
  <Paragraph
46
59
  muted
47
- size="lg"
48
60
  text={description}
49
61
  />
50
62
  <Content />
51
63
  </Prose>
52
- <Toc {render} />
53
- </Element>
64
+ </Container>
65
+ <Sidebar class:list="doc-toc">
66
+ <Menu
67
+ size="sm"
68
+ heading={title}
69
+ {links}
70
+ />
71
+ </Sidebar>
54
72
  </Container>
55
73
  <Footer {...footer} />
56
74
  </Layout>
@@ -58,12 +76,20 @@ const { Content } = await render()
58
76
  <style is:global>
59
77
  @layer fulldev {
60
78
  .doc {
61
- .doc-container {
62
- @apply flex gap-x-gutter;
79
+ main {
80
+ @apply flex w-full items-start justify-between !px-0;
81
+ }
82
+
83
+ .sidebar {
84
+ @apply hidden lg:flex;
85
+ }
86
+
87
+ .doc-toc {
88
+ @apply hidden xl:flex;
63
89
  }
64
90
 
65
- .doc-main {
66
- @apply flex grow justify-evenly gap-x-gutter;
91
+ .prose {
92
+ @apply mx-auto py-8;
67
93
  }
68
94
  }
69
95
  }
@@ -6,13 +6,14 @@ import Content3 from 'fulldev-ui/blocks/Content3.astro'
6
6
  import Footer from 'fulldev-ui/blocks/Footer.astro'
7
7
  import Header from 'fulldev-ui/blocks/Header.astro'
8
8
  import Element from 'fulldev-ui/components/Element.astro'
9
- import Layout from 'fulldev-ui/components/Layout.astro'
10
9
  import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
10
+ import Layout from 'fulldev-ui/structures/Layout.astro'
11
11
  import { getHref } from 'fulldev-ui/utils/getHref.ts'
12
12
 
13
- interface Props extends ComponentProps<typeof Layout>, PageSchema {
14
- render: CollectionEntry<'pages'>['render']
15
- }
13
+ type Props = ComponentProps<typeof Layout> &
14
+ PageSchema & {
15
+ render: CollectionEntry<'pages'>['render']
16
+ }
16
17
 
17
18
  const {
18
19
  title,
@@ -24,7 +25,6 @@ const {
24
25
  sidebar,
25
26
  render,
26
27
  parents,
27
- blocks,
28
28
  footer,
29
29
  } = Astro.props
30
30
 
@@ -1,33 +1,33 @@
1
1
  ---
2
2
  import type { ComponentProps } from 'astro/types'
3
3
  import type { CollectionEntry } from 'astro:content'
4
- import { getCollection } from 'astro:content'
5
4
  import Footer from 'fulldev-ui/blocks/Footer.astro'
6
5
  import Header from 'fulldev-ui/blocks/Header.astro'
7
6
  import Intro1 from 'fulldev-ui/blocks/Intro1.astro'
8
7
  import Jobs1 from 'fulldev-ui/blocks/Jobs1.astro'
9
- import Container from 'fulldev-ui/components/Container.astro'
10
8
  import Element from 'fulldev-ui/components/Element.astro'
11
- import Layout from 'fulldev-ui/components/Layout.astro'
12
- import Prose from 'fulldev-ui/components/Prose.astro'
13
9
  import Sidebar from 'fulldev-ui/components/Sidebar.astro'
14
10
  import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
11
+ import Container from 'fulldev-ui/structures/Container.astro'
12
+ import Layout from 'fulldev-ui/structures/Layout.astro'
13
+ import Prose from 'fulldev-ui/structures/Prose.astro'
15
14
 
16
- interface Props extends ComponentProps<typeof Layout>, PageSchema {
17
- slug: CollectionEntry<'pages'>['slug']
18
- render: CollectionEntry<'pages'>['render']
19
- }
15
+ type Props = ComponentProps<typeof Layout> &
16
+ PageSchema & {
17
+ slug: CollectionEntry<'pages'>['slug']
18
+ render: CollectionEntry<'pages'>['render']
19
+ }
20
20
 
21
21
  const { slug, header, sidebar, render, title, description, footer } =
22
22
  Astro.props
23
23
 
24
24
  const { Content } = await render()
25
25
 
26
- const children = (
27
- await getCollection('pages', ({ data }) =>
28
- data.parents?.some((p) => p.slug.includes(slug))
29
- )
30
- )?.map(({ collection, slug }) => ({ collection, slug }))
26
+ // const children = (
27
+ // await getCollection('pages', ({ data }) =>
28
+ // data.parents?.some((p) => p.slug.includes(slug))
29
+ // )
30
+ // )?.map(({ collection, slug }) => ({ collection, slug }))
31
31
  ---
32
32
 
33
33
  <Layout
@@ -48,7 +48,7 @@ const children = (
48
48
  heading={title}
49
49
  paragraph={description}
50
50
  />
51
- <Jobs1 pages={children} />
51
+ <!-- <Jobs1 pages={children} /> -->
52
52
  <Prose>
53
53
  <Content />
54
54
  </Prose>
@@ -5,12 +5,12 @@ import Footer from 'fulldev-ui/blocks/Footer.astro'
5
5
  import Header from 'fulldev-ui/blocks/Header.astro'
6
6
  import Block from 'fulldev-ui/components/Block.astro'
7
7
  import Element from 'fulldev-ui/components/Element.astro'
8
- import Layout from 'fulldev-ui/components/Layout.astro'
9
8
  import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
9
+ import Layout from 'fulldev-ui/structures/Layout.astro'
10
10
 
11
- interface Props extends ComponentProps<typeof Layout>, PageSchema {}
11
+ type Props = ComponentProps<typeof Layout> & PageSchema
12
12
 
13
- const { banner, sidebar, header, blocks, footer } = Astro.props
13
+ const { banner, sidebar, header, sections, footer } = Astro.props
14
14
  ---
15
15
 
16
16
  <Layout
@@ -23,7 +23,7 @@ const { banner, sidebar, header, blocks, footer } = Astro.props
23
23
  {...header}
24
24
  />
25
25
  <Element as="main">
26
- {blocks?.map((block) => <Block {...block} />)}
26
+ {sections?.map((section) => <Block {...section} />)}
27
27
  </Element>
28
28
  <Footer {...footer} />
29
29
  </Layout>
@@ -6,12 +6,13 @@ import Footer from 'fulldev-ui/blocks/Footer.astro'
6
6
  import Header from 'fulldev-ui/blocks/Header.astro'
7
7
  import Block from 'fulldev-ui/components/Block.astro'
8
8
  import Element from 'fulldev-ui/components/Element.astro'
9
- import Layout from 'fulldev-ui/components/Layout.astro'
10
9
  import type { PageSchema } from 'fulldev-ui/schemas/page'
10
+ import Layout from 'fulldev-ui/structures/Layout.astro'
11
11
 
12
- interface Props extends ComponentProps<typeof Layout>, PageSchema {
13
- render: CollectionEntry<'pages'>['render']
14
- }
12
+ type Props = ComponentProps<typeof Layout> &
13
+ PageSchema & {
14
+ render: CollectionEntry<'pages'>['render']
15
+ }
15
16
 
16
17
  const {
17
18
  title,
@@ -20,7 +21,7 @@ const {
20
21
  button,
21
22
  header,
22
23
  sidebar,
23
- blocks,
24
+ sections,
24
25
  footer,
25
26
  render,
26
27
  } = Astro.props
@@ -46,7 +47,7 @@ const { Content, headings } = await render()
46
47
  >
47
48
  <Content />
48
49
  </Content1>
49
- {blocks?.map((block) => <Block {...block} />)}
50
+ {sections?.map((section) => <Block {...section} />)}
50
51
  </Element>
51
52
  <Footer {...footer} />
52
53
  </Layout>
@@ -1,4 +1,5 @@
1
1
  ---
2
+ // @ts-nocheck
2
3
  import type { ComponentProps } from 'astro/types'
3
4
  import { getImage } from 'astro:assets'
4
5
  import type { CollectionEntry } from 'astro:content'
@@ -8,11 +9,11 @@ import CartForm from 'fulldev-ui/components/CartForm.svelte'
8
9
  import Element from 'fulldev-ui/components/Element.astro'
9
10
  import Gallery from 'fulldev-ui/components/Gallery.astro'
10
11
  import Heading from 'fulldev-ui/components/Heading.astro'
11
- import Layout from 'fulldev-ui/components/Layout.astro'
12
12
  import List from 'fulldev-ui/components/List.astro'
13
13
  import Paragraph from 'fulldev-ui/components/Paragraph.astro'
14
- import Prose from 'fulldev-ui/components/Prose.astro'
15
14
  import type { PageSchema } from 'fulldev-ui/schemas/page'
15
+ import Layout from 'fulldev-ui/structures/Layout.astro'
16
+ import Prose from 'fulldev-ui/structures/Prose.astro'
16
17
 
17
18
  interface Props extends ComponentProps<typeof Layout>, PageSchema {
18
19
  render: CollectionEntry<'pages'>['render']
@@ -0,0 +1,14 @@
1
+ import type { ComponentProps } from 'astro/types'
2
+ import { z } from 'astro:content'
3
+ import type Badge from 'fulldev-ui/components/Badge.astro'
4
+
5
+ export const badgeSchema = z
6
+ .object({
7
+ icon: z.string().optional(),
8
+ text: z.string().optional(),
9
+ href: z.string().optional(),
10
+ target: z.literal('_blank').optional(),
11
+ size: z.enum(['sm', 'md', 'lg']).optional(),
12
+ variant: z.enum(['primary', 'secondary', 'outline']).optional(),
13
+ })
14
+ .strict() satisfies z.ZodType<ComponentProps<typeof Badge>>
@@ -0,0 +1,58 @@
1
+ import { z } from 'astro:content'
2
+ import { badgeSchema } from 'fulldev-ui/schemas/badge.ts'
3
+ import { buttonSchema } from 'fulldev-ui/schemas/button.ts'
4
+ import { channelSchema } from 'fulldev-ui/schemas/channel.ts'
5
+ import { imageSchema } from 'fulldev-ui/schemas/image.ts'
6
+ import { linkSchema } from 'fulldev-ui/schemas/link.ts'
7
+ import { logoSchema } from 'fulldev-ui/schemas/logo.ts'
8
+ import { menuSchema } from 'fulldev-ui/schemas/menu.ts'
9
+ import { pathSchema } from 'fulldev-ui/schemas/path.ts'
10
+
11
+ export const blockSchema = z
12
+ .object({
13
+ _block: z.string().optional(),
14
+ dark: z.boolean().optional(),
15
+ themer: z.boolean().optional(),
16
+ search: z.boolean().optional(),
17
+ cart: z.boolean().optional(),
18
+ text: z.string().optional(),
19
+ content: z.string().optional(),
20
+ tagline: z.string().optional(),
21
+ heading: z.string().optional(),
22
+ paragraph: z.string().optional(),
23
+ list: z.string().array().optional(),
24
+ socials: z.string().array().optional(),
25
+ logo: logoSchema.optional(),
26
+ link: linkSchema.optional(),
27
+ links: linkSchema.array().optional(),
28
+ menus: menuSchema.array().optional(),
29
+ badge: badgeSchema.optional(),
30
+ badges: badgeSchema.array().optional(),
31
+ button: buttonSchema.optional(),
32
+ buttons: buttonSchema.array().optional(),
33
+ image: imageSchema.optional(),
34
+ images: imageSchema.array().optional(),
35
+ channels: channelSchema.array().optional(),
36
+ pages: pathSchema('pages').array().optional(),
37
+ products: pathSchema('pages').array().optional(),
38
+ cards: z
39
+ .object({
40
+ icon: z.string().optional(),
41
+ rating: z.number().optional(),
42
+ tagline: z.string().optional(),
43
+ heading: z.string().optional(),
44
+ paragraph: z.string().optional(),
45
+ list: z.string().array().optional(),
46
+ badge: badgeSchema.optional(),
47
+ badges: badgeSchema.array().optional(),
48
+ button: buttonSchema.optional(),
49
+ buttons: buttonSchema.array().optional(),
50
+ image: imageSchema.optional(),
51
+ })
52
+ .strict()
53
+ .array()
54
+ .optional(),
55
+ })
56
+ .strict()
57
+
58
+ export type BlockSchema = z.infer<typeof blockSchema>
@@ -1,18 +1,14 @@
1
1
  import { z } from 'astro:content'
2
- import { iconSchema } from './icon'
3
2
 
4
3
  export const buttonSchema = z
5
4
  .object({
6
- icon: iconSchema.shape.name,
5
+ icon: z.string().optional(),
7
6
  text: z.string().optional(),
8
7
  href: z.string().optional(),
9
8
  target: z.literal('_blank').optional(),
10
- size: z.enum(['sm', 'md', 'lg']).default('md').optional(),
9
+ size: z.enum(['sm', 'md', 'lg']).optional(),
11
10
  reverse: z.boolean().optional(),
12
- variant: z
13
- .enum(['primary', 'secondary', 'outline', 'ghost'])
14
- .default('primary')
15
- .optional(),
11
+ variant: z.enum(['primary', 'secondary', 'outline', 'ghost']).optional(),
16
12
  })
17
13
  .strict()
18
14
 
@@ -0,0 +1,14 @@
1
+ import type { ComponentProps } from 'astro/types'
2
+ import { z } from 'astro:content'
3
+ import Channel from 'fulldev-ui/components/Channel.astro'
4
+
5
+ export const channelSchema = z
6
+ .object({
7
+ icon: z.string().optional(),
8
+ heading: z.string().optional(),
9
+ text: z.string().optional(),
10
+ href: z.string().optional(),
11
+ size: z.enum(['sm', 'md', 'lg']).optional(),
12
+ variant: z.enum(['secondary', 'outline']).optional(),
13
+ })
14
+ .strict() satisfies z.ZodType<ComponentProps<typeof Channel>>
@@ -0,0 +1,13 @@
1
+ import type { ComponentProps } from 'astro/types'
2
+ import { z } from 'astro:content'
3
+ import type Checkbox from 'fulldev-ui/components/Checkbox.astro'
4
+
5
+ export const checkboxSchema = z
6
+ .object({
7
+ name: z.string().optional(),
8
+ label: z.string().optional(),
9
+ id: z.string().optional(),
10
+ value: z.string().optional(),
11
+ size: z.enum(['sm', 'md', 'lg']).optional(),
12
+ })
13
+ .strict() satisfies z.ZodType<ComponentProps<typeof Checkbox>>
@@ -0,0 +1,17 @@
1
+ import { z } from 'astro:content'
2
+ import { channelSchema } from 'fulldev-ui/schemas/channel.ts'
3
+ import { logoSchema } from 'fulldev-ui/schemas/logo.ts'
4
+ import { menuSchema } from 'fulldev-ui/schemas/menu.ts'
5
+
6
+ export const footerSchema = z
7
+ .object({
8
+ logo: logoSchema.optional(),
9
+ heading: z.string().optional(),
10
+ paragraph: z.string().optional(),
11
+ socials: z.string().url().array().optional(),
12
+ channels: channelSchema.array().optional(),
13
+ menus: menuSchema.array().optional(),
14
+ })
15
+ .strict()
16
+
17
+ export type FooterSchema = z.infer<typeof footerSchema>
@@ -1,17 +1,17 @@
1
+ import type { ComponentProps } from 'astro/types'
1
2
  import { z } from 'astro:content'
2
- import { imageSchema } from 'fulldev-ui/schemas/components/image.ts'
3
+ import type Head from 'fulldev-ui/components/Head.astro'
4
+ import { imageSchema } from 'fulldev-ui/schemas/image.ts'
3
5
 
4
6
  export const headSchema = z
5
7
  .object({
6
8
  title: z.string().optional(),
7
9
  description: z.string().optional(),
8
10
  image: imageSchema.optional(),
9
- theme: z.enum(['light', 'dark', 'system']).default('light').optional(),
11
+ theme: z.enum(['light', 'dark', 'system']).optional(),
10
12
  favicon: z.string().optional(),
11
13
  company: z.string().optional(),
12
14
  scripts: z.string().array().optional(),
13
15
  code: z.string().optional(),
14
16
  })
15
- .strict()
16
-
17
- export type HeadSchema = z.infer<typeof headSchema>
17
+ .strict() satisfies z.ZodType<ComponentProps<typeof Head>>
@@ -0,0 +1,21 @@
1
+ import { z } from 'astro:content'
2
+ import { buttonSchema } from 'fulldev-ui/schemas/button.ts'
3
+ import { linkSchema } from 'fulldev-ui/schemas/link.ts'
4
+ import { logoSchema } from 'fulldev-ui/schemas/logo.ts'
5
+ import { menuSchema } from 'fulldev-ui/schemas/menu.ts'
6
+
7
+ export const headerSchema = z
8
+ .object({
9
+ logo: logoSchema.optional(),
10
+ heading: z.string().optional(),
11
+ links: linkSchema.array().optional(),
12
+ socials: z.string().array().optional(),
13
+ buttons: buttonSchema.array().optional(),
14
+ menus: menuSchema.array().optional(),
15
+ themer: z.boolean().optional(),
16
+ cart: z.boolean().optional(),
17
+ search: z.boolean().optional(),
18
+ })
19
+ .strict()
20
+
21
+ export type HeaderSchema = z.infer<typeof headerSchema>
@@ -1,4 +1,6 @@
1
+ import type { ComponentProps } from 'astro/types'
1
2
  import { z } from 'astro:content'
3
+ import type Image from 'fulldev-ui/components/Image.astro'
2
4
 
3
5
  // const imagePath = z.preprocess((data: unknown) => {
4
6
  // if (typeof data === 'string') {
@@ -25,16 +27,27 @@ import { z } from 'astro:content'
25
27
  // )
26
28
  // .optional()
27
29
 
30
+ // export const imageSchema = z
31
+ // .object({
32
+ // src: z.string().optional(),
33
+ // alt: z.string().optional(),
34
+ // width: z.number().optional(),
35
+ // height: z.number().optional(),
36
+ // })
37
+ // .strict() satisfies z.ZodType<ComponentProps<typeof Image>>
38
+
39
+ const image = z
40
+ .object({
41
+ src: z.string().optional(),
42
+ alt: z.string().optional(),
43
+ width: z.number().optional(),
44
+ height: z.number().optional(),
45
+ })
46
+ .strict() satisfies z.ZodType<ComponentProps<typeof Image>>
47
+
28
48
  export const imageSchema = z
29
49
  .preprocess(
30
50
  (data: unknown) => (typeof data === 'string' ? { src: data } : data),
31
- z
32
- .object({
33
- src: z.string().optional(),
34
- alt: z.string().optional(),
35
- width: z.number().optional(),
36
- height: z.number().optional(),
37
- })
38
- .strict()
51
+ image
39
52
  )
40
- .optional()
53
+ .optional() as z.ZodType<ComponentProps<typeof Image>>
@@ -0,0 +1,13 @@
1
+ import type { ComponentProps } from 'astro/types'
2
+ import { z } from 'astro:content'
3
+ import Input from 'fulldev-ui/components/Input.astro'
4
+
5
+ export const inputSchema = z
6
+ .object({
7
+ icon: z.string().optional(),
8
+ label: z.string().optional(),
9
+ placeholder: z.string().optional(),
10
+ value: z.string().optional(),
11
+ size: z.enum(['sm', 'md', 'lg']).optional(),
12
+ })
13
+ .strict() satisfies z.ZodType<ComponentProps<typeof Input>>
@@ -0,0 +1,14 @@
1
+ import type { ComponentProps } from 'astro/types'
2
+ import { z } from 'astro:content'
3
+ import Link from 'fulldev-ui/components/Link.astro'
4
+
5
+ export const linkSchema = z
6
+ .object({
7
+ text: z.string().optional(),
8
+ href: z.string().optional(),
9
+ icon: z.string().optional(),
10
+ target: z.literal('_blank').optional(),
11
+ size: z.enum(['sm', 'md', 'lg']).optional(),
12
+ variant: z.enum(['primary', 'underline', 'muted']).optional(),
13
+ })
14
+ .strict() satisfies z.ZodType<ComponentProps<typeof Link>>