fulldev-ui 0.6.0-beta.0 → 0.6.0-beta.10

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 (385) hide show
  1. package/.vscode/settings.json +2 -0
  2. package/astro.config.ts +4 -4
  3. package/cloudcannon.config.yml +233 -0
  4. package/package.json +13 -7
  5. package/pnpm-lock.yaml +370 -35
  6. package/src/blocks/Banner.astro +13 -15
  7. package/src/blocks/Colleagues1.astro +73 -0
  8. package/src/blocks/Contact1.astro +95 -0
  9. package/src/blocks/Content1.astro +56 -0
  10. package/src/blocks/Content2.astro +63 -0
  11. package/src/blocks/Content3.astro +66 -0
  12. package/src/blocks/Content4.astro +61 -0
  13. package/src/blocks/Content5.astro +58 -0
  14. package/src/blocks/Content6.astro +66 -0
  15. package/src/blocks/Content7.astro +75 -0
  16. package/src/blocks/Content8.astro +67 -0
  17. package/src/blocks/Cta1.astro +73 -0
  18. package/src/blocks/Features1.astro +70 -0
  19. package/src/blocks/Features2.astro +70 -0
  20. package/src/blocks/Footer.astro +42 -66
  21. package/src/blocks/Header.astro +153 -3
  22. package/src/blocks/Hero1.astro +77 -0
  23. package/src/blocks/Industries1.astro +86 -0
  24. package/src/blocks/Intro1.astro +68 -0
  25. package/src/blocks/Jobs1.astro +77 -0
  26. package/src/blocks/Logos1.astro +55 -0
  27. package/src/blocks/Products1.astro +90 -0
  28. package/src/blocks/Projects1.astro +80 -0
  29. package/src/blocks/Reviews1.astro +81 -0
  30. package/src/{components → blocks}/Subheader.astro +1 -2
  31. package/src/blocks/{Hero.astro → _Hero.astro} +7 -6
  32. package/src/components/Badge.astro +7 -27
  33. package/src/components/Badges.astro +13 -36
  34. package/src/components/Block.astro +38 -0
  35. package/src/components/Blocks.astro +26 -0
  36. package/src/components/Button.astro +10 -33
  37. package/src/components/Buttons.astro +12 -43
  38. package/src/components/Cart.astro +20 -16
  39. package/src/components/CartAdd.svelte +76 -0
  40. package/src/components/CartCheckout.svelte +58 -0
  41. package/src/components/CartForm.svelte +130 -0
  42. package/src/components/CartList.svelte +88 -0
  43. package/src/components/CartQuantity.svelte +81 -0
  44. package/src/components/CartSummary.astro +12 -97
  45. package/src/components/CartTotal.svelte +15 -0
  46. package/src/components/Channel.astro +10 -13
  47. package/src/components/Channels.astro +11 -42
  48. package/src/components/Checkbox.astro +8 -14
  49. package/src/components/Element.astro +5 -1
  50. package/src/components/Form.astro +4 -3
  51. package/src/components/Gallery.astro +9 -6
  52. package/src/components/Head.astro +29 -33
  53. package/src/components/Heading.astro +48 -80
  54. package/src/components/Icon.astro +4 -4
  55. package/src/components/Image.astro +18 -49
  56. package/src/components/Input.astro +21 -16
  57. package/src/components/Label.astro +6 -6
  58. package/src/components/Link.astro +18 -27
  59. package/src/components/Links.astro +13 -35
  60. package/src/components/List.astro +3 -5
  61. package/src/components/Logo.astro +18 -14
  62. package/src/components/Menu.astro +22 -35
  63. package/src/components/Menus.astro +20 -0
  64. package/src/components/Paragraph.astro +26 -10
  65. package/src/components/Price.astro +5 -8
  66. package/src/components/Rating.astro +25 -74
  67. package/src/components/Search.astro +102 -43
  68. package/src/components/Select.astro +3 -3
  69. package/src/components/Sidebar.astro +20 -71
  70. package/src/components/Social.astro +11 -2
  71. package/src/components/Socials.astro +18 -34
  72. package/src/components/Switch.astro +4 -69
  73. package/src/components/Table.astro +2 -3
  74. package/src/components/Tagline.astro +22 -33
  75. package/src/components/Textarea.astro +5 -5
  76. package/src/components/Themer.astro +3 -3
  77. package/src/components/Toc.astro +22 -25
  78. package/src/components/Toggle.astro +45 -0
  79. package/src/components/{Breadcrumb.astro → _Breadcrumb.astro} +3 -3
  80. package/src/components/_Image.astro +79 -0
  81. package/src/components/docs/Props.astro +21 -0
  82. package/src/content/config.ts +3 -10
  83. package/src/content/layouts/base.yml +159 -0
  84. package/src/content/pages/_showcase/anti-slip-profiles.md +5 -0
  85. package/src/content/pages/{showcase → _showcase}/fulldev-ui.md +1 -1
  86. package/src/content/pages/{showcase → _showcase}/lavis-detailing.md +1 -1
  87. package/src/content/pages/{showcase → _showcase}/leren-trainingsacteren.md +1 -1
  88. package/src/content/pages/{showcase → _showcase}/miele-witgoedcenter-amsterdam.md +1 -1
  89. package/src/content/pages/{showcase → _showcase}/sloepverhuur-bolsward.md +1 -1
  90. package/src/content/pages/_showcase/stark-vulcanising-products.md +4 -0
  91. package/src/content/pages/{showcase → _showcase}/the-gym-haren.md +1 -1
  92. package/src/content/pages/{showcase → _showcase}/van-dillen-antieke-bouwmaterialen.md +1 -1
  93. package/src/content/pages/base/toggle.mdx +28 -0
  94. package/src/content/pages/{blocks → docs/blocks}/_categories.mdx +1 -19
  95. package/src/content/pages/{blocks/contact.mdx → docs/blocks/_contact.mdx} +0 -2
  96. package/src/content/pages/{blocks → docs/blocks}/_jobs.mdx +0 -2
  97. package/src/content/pages/{blocks/posts.mdx → docs/blocks/_posts.mdx} +0 -2
  98. package/src/content/pages/{blocks → docs/blocks}/_stats.mdx +0 -2
  99. package/src/content/pages/{blocks → docs/blocks}/banner.mdx +1 -2
  100. package/src/content/pages/docs/blocks/colleagues.mdx +49 -0
  101. package/src/content/pages/docs/blocks/content.mdx +290 -0
  102. package/src/content/pages/docs/blocks/cta.mdx +16 -0
  103. package/src/content/pages/docs/blocks/feature.mdx +17 -0
  104. package/src/content/pages/docs/blocks/features.mdx +35 -0
  105. package/src/content/pages/docs/blocks/footer.mdx +46 -0
  106. package/src/content/pages/docs/blocks/header.mdx +60 -0
  107. package/src/content/pages/docs/blocks/hero.mdx +18 -0
  108. package/src/content/pages/docs/blocks/intro.mdx +16 -0
  109. package/src/content/pages/docs/blocks/logos.mdx +37 -0
  110. package/src/content/pages/docs/blocks/projects.mdx +36 -0
  111. package/src/content/pages/docs/blocks/reviews.mdx +65 -0
  112. package/src/content/pages/docs/blocks.mdx +42 -21
  113. package/src/content/pages/docs/collections/images.mdx +4 -2
  114. package/src/content/pages/docs/collections/pages.mdx +3 -3
  115. package/src/content/pages/docs/collections/presets.mdx +1 -1
  116. package/src/content/pages/docs/components/_localeswitcher.mdx +1 -2
  117. package/src/content/pages/docs/components/{table.mdx → _table.mdx} +3 -6
  118. package/src/content/pages/docs/components/_tagline.mdx +1 -2
  119. package/src/content/pages/docs/components/{themer.mdx → _themer.mdx} +3 -6
  120. package/src/content/pages/docs/components/_toggle.mdx +3 -4
  121. package/src/content/pages/docs/components/badge.mdx +3 -6
  122. package/src/content/pages/docs/components/badges.mdx +4 -6
  123. package/src/content/pages/docs/components/button.mdx +3 -6
  124. package/src/content/pages/docs/components/buttons.mdx +4 -6
  125. package/src/content/pages/docs/components/channel.mdx +3 -6
  126. package/src/content/pages/docs/components/channels.mdx +4 -4
  127. package/src/content/pages/docs/components/checkbox.mdx +3 -6
  128. package/src/content/pages/docs/components/heading.mdx +12 -23
  129. package/src/content/pages/docs/components/icon.mdx +3 -6
  130. package/src/content/pages/docs/components/image.mdx +4 -11
  131. package/src/content/pages/docs/components/input.mdx +3 -6
  132. package/src/content/pages/docs/components/label.mdx +3 -6
  133. package/src/content/pages/docs/components/link.mdx +3 -6
  134. package/src/content/pages/docs/components/links.mdx +14 -57
  135. package/src/content/pages/docs/components/list.mdx +3 -6
  136. package/src/content/pages/docs/components/logo.mdx +10 -23
  137. package/src/content/pages/docs/components/menu.mdx +12 -54
  138. package/src/content/pages/docs/components/paragraph.mdx +10 -17
  139. package/src/content/pages/docs/components/rating.mdx +10 -44
  140. package/src/content/pages/docs/components/select.mdx +3 -6
  141. package/src/content/pages/docs/components/social.mdx +3 -6
  142. package/src/content/pages/docs/components/socials.mdx +4 -4
  143. package/src/content/pages/docs/components/switch.mdx +3 -6
  144. package/src/content/pages/docs/components/tagline.mdx +3 -8
  145. package/src/content/pages/docs/components/textarea.mdx +3 -6
  146. package/src/content/pages/docs/components.mdx +4 -8
  147. package/src/content/pages/docs/customization.mdx +53 -21
  148. package/src/content/pages/docs/frameworks.mdx +13 -12
  149. package/src/content/pages/docs/index.mdx +5 -7
  150. package/src/content/pages/docs/installation.mdx +10 -7
  151. package/src/content/pages/docs/layouts/doc.mdx +15 -0
  152. package/src/content/pages/docs/layouts/page.mdx +15 -0
  153. package/src/content/pages/docs/{generating-pages.mdx → pages.mdx} +2 -1
  154. package/src/content/pages/docs/{components → structures}/_card.mdx +7 -8
  155. package/src/content/pages/docs/{components → structures}/_dialog.mdx +1 -2
  156. package/src/content/pages/docs/{components → structures}/_drawer.mdx +2 -3
  157. package/src/content/pages/docs/structures/card.mdx +15 -0
  158. package/src/content/pages/docs/{components → structures}/code.mdx +5 -9
  159. package/src/content/pages/docs/structures/container.mdx +15 -0
  160. package/src/content/pages/docs/structures/drawer.mdx +15 -0
  161. package/src/content/pages/docs/structures/group.mdx +15 -0
  162. package/src/content/pages/docs/structures/layout.mdx +15 -0
  163. package/src/content/pages/docs/structures/masonry.mdx +15 -0
  164. package/src/content/pages/docs/structures/matrix.mdx +15 -0
  165. package/src/content/pages/docs/structures/panel.mdx +15 -0
  166. package/src/content/pages/docs/{components → structures}/prose.mdx +4 -8
  167. package/src/content/pages/docs/structures/section.mdx +15 -0
  168. package/src/content/pages/docs/structures/stack.mdx +15 -0
  169. package/src/content/pages/docs/structures/writeup.mdx +15 -0
  170. package/src/content/pages/docs/structures.mdx +7 -0
  171. package/src/content/pages/index.mdx +22 -29
  172. package/src/content/pages/posts/post.md +7 -0
  173. package/src/content/pages/showcase.mdx +1 -5
  174. package/src/css/theme.css +11 -42
  175. package/src/env.d.ts +1 -0
  176. package/src/integration/index.ts +51 -10
  177. package/src/layouts/Block.astro +81 -0
  178. package/src/layouts/{CategoryLayout.astro → Category.astro} +27 -26
  179. package/src/layouts/Doc.astro +96 -0
  180. package/src/layouts/Job.astro +60 -0
  181. package/src/layouts/Jobs.astro +72 -0
  182. package/src/layouts/Page.astro +84 -0
  183. package/src/layouts/Post.astro +53 -0
  184. package/src/layouts/{ProductLayout.astro → Product.astro} +42 -32
  185. package/src/pages/[...page].astro +33 -20
  186. package/src/schemas/badge.ts +14 -0
  187. package/src/schemas/block.ts +59 -0
  188. package/src/schemas/button.ts +15 -0
  189. package/src/schemas/channel.ts +14 -0
  190. package/src/schemas/checkbox.ts +13 -0
  191. package/src/schemas/footer.ts +17 -0
  192. package/src/schemas/head.ts +17 -0
  193. package/src/schemas/header.ts +21 -0
  194. package/src/schemas/image.ts +53 -0
  195. package/src/schemas/input.ts +13 -0
  196. package/src/schemas/link.ts +14 -0
  197. package/src/schemas/logo.ts +13 -0
  198. package/src/schemas/menu.ts +11 -0
  199. package/src/schemas/page.ts +39 -0
  200. package/src/schemas/{utils/pathSchema.ts → path.ts} +1 -1
  201. package/src/schemas/textarea.ts +11 -0
  202. package/src/stores/cart.svelte.ts +78 -0
  203. package/src/stores/cart.ts +59 -6
  204. package/src/structures/Card.astro +35 -0
  205. package/src/{components → structures}/Code.astro +7 -6
  206. package/src/structures/Container.astro +25 -0
  207. package/src/structures/Drawer.astro +81 -0
  208. package/src/structures/Group.astro +25 -0
  209. package/src/structures/Layout.astro +34 -0
  210. package/src/structures/Masonry.astro +42 -0
  211. package/src/structures/Matrix.astro +39 -0
  212. package/src/structures/Panel.astro +25 -0
  213. package/src/structures/Prose.astro +97 -0
  214. package/src/structures/Section.astro +26 -0
  215. package/src/structures/Sidebar.astro +36 -0
  216. package/src/structures/Split.astro +25 -0
  217. package/src/structures/Stack.astro +25 -0
  218. package/src/structures/Writeup.astro +67 -0
  219. package/src/structures/_Bento.astro +34 -0
  220. package/src/utils/cart.ts +1 -1
  221. package/src/utils/getHref.ts +6 -0
  222. package/svelte.config.js +5 -0
  223. package/tailwind.config.ts +9 -4
  224. package/tsconfig.json +4 -4
  225. package/{src/types/virtual-modules.d.ts → virtual.d.ts} +1 -1
  226. package/public/favicon/favicon-16x16-dark.png +0 -0
  227. package/public/favicon/favicon-32x32-dark.png +0 -0
  228. package/public/favicon/favicon-48x48-dark.png +0 -0
  229. package/public/favicon/favicon-dark.ico +0 -0
  230. package/src/blocks/Categories.astro +0 -12
  231. package/src/blocks/Colleagues.astro +0 -12
  232. package/src/blocks/Contact.astro +0 -117
  233. package/src/blocks/Content.astro +0 -130
  234. package/src/blocks/Cta.astro +0 -13
  235. package/src/blocks/Excerpt.astro +0 -12
  236. package/src/blocks/Features.astro +0 -11
  237. package/src/blocks/Intro.astro +0 -101
  238. package/src/blocks/Jobs.astro +0 -12
  239. package/src/blocks/Posts.astro +0 -11
  240. package/src/blocks/Prices.astro +0 -24
  241. package/src/blocks/Product.astro +0 -89
  242. package/src/blocks/Products.astro +0 -120
  243. package/src/blocks/Reviews.astro +0 -12
  244. package/src/blocks/_Contact.astro +0 -112
  245. package/src/components/Avatar.astro +0 -45
  246. package/src/components/Avatars.astro +0 -36
  247. package/src/components/Card.astro +0 -173
  248. package/src/components/Cards.astro +0 -133
  249. package/src/components/CartForm.astro +0 -121
  250. package/src/components/CartList.astro +0 -117
  251. package/src/components/Dialog.astro +0 -66
  252. package/src/components/Drawer.astro +0 -142
  253. package/src/components/Header.astro +0 -127
  254. package/src/components/Lead.astro +0 -46
  255. package/src/components/Prose.astro +0 -169
  256. package/src/components/Section.astro +0 -293
  257. package/src/components/Text.astro +0 -43
  258. package/src/components/Writeup.astro +0 -108
  259. package/src/components/docs/DecorativeBox.astro +0 -15
  260. package/src/components/docs/PropsTable.astro +0 -49
  261. package/src/components/experimental/Video.astro +0 -32
  262. package/src/components/experimental/Window.astro +0 -122
  263. package/src/components/sections.astro +0 -28
  264. package/src/content/pages/blocks/_footer.mdx +0 -77
  265. package/src/content/pages/blocks/_header.mdx +0 -185
  266. package/src/content/pages/blocks/_prices.mdx +0 -124
  267. package/src/content/pages/blocks/_product.mdx +0 -99
  268. package/src/content/pages/blocks/_products.mdx +0 -54
  269. package/src/content/pages/blocks/colleagues.mdx +0 -39
  270. package/src/content/pages/blocks/content.mdx +0 -79
  271. package/src/content/pages/blocks/cta.mdx +0 -161
  272. package/src/content/pages/blocks/features.mdx +0 -130
  273. package/src/content/pages/blocks/hero.mdx +0 -96
  274. package/src/content/pages/blocks/intro.mdx +0 -126
  275. package/src/content/pages/blocks/reviews.mdx +0 -253
  276. package/src/content/pages/docs/_internationalization.mdx +0 -55
  277. package/src/content/pages/docs/_using-blocks.mdx +0 -33
  278. package/src/content/pages/docs/_using-presets.mdx +0 -49
  279. package/src/content/pages/docs/collections.mdx +0 -42
  280. package/src/content/pages/docs/components/_switch.mdx +0 -32
  281. package/src/content/pages/docs/components/avatar.mdx +0 -35
  282. package/src/content/pages/docs/components/lead.mdx +0 -51
  283. package/src/content/pages/docs/components/section.mdx +0 -36
  284. package/src/content/pages/docs/layouts.mdx +0 -33
  285. package/src/content/pages/showcase/anti-slip-profiles.md +0 -5
  286. package/src/content/pages/showcase/stark-vulcanising-products.md +0 -5
  287. package/src/content/presets/base.yml +0 -100
  288. package/src/content/presets/docs.yml +0 -6
  289. package/src/css/color.css +0 -76
  290. package/src/css/size.css +0 -131
  291. package/src/layouts/Layout.astro +0 -108
  292. package/src/layouts/PageLayout.astro +0 -26
  293. package/src/layouts/PostLayout.astro +0 -26
  294. package/src/loaders/imageLoader.ts +0 -26
  295. package/src/pages/test.astro +0 -20
  296. package/src/schemas/components/avatar.ts +0 -3
  297. package/src/schemas/components/avatars.ts +0 -4
  298. package/src/schemas/components/badge.ts +0 -13
  299. package/src/schemas/components/button.ts +0 -24
  300. package/src/schemas/components/buttons.ts +0 -4
  301. package/src/schemas/components/card.ts +0 -43
  302. package/src/schemas/components/cards.ts +0 -4
  303. package/src/schemas/components/channel.ts +0 -13
  304. package/src/schemas/components/channels.ts +0 -4
  305. package/src/schemas/components/footer.ts +0 -17
  306. package/src/schemas/components/global.ts +0 -16
  307. package/src/schemas/components/header.ts +0 -19
  308. package/src/schemas/components/heading.ts +0 -3
  309. package/src/schemas/components/icon.ts +0 -3
  310. package/src/schemas/components/image.ts +0 -23
  311. package/src/schemas/components/images.ts +0 -4
  312. package/src/schemas/components/link.ts +0 -16
  313. package/src/schemas/components/links.ts +0 -4
  314. package/src/schemas/components/list.ts +0 -3
  315. package/src/schemas/components/logo.ts +0 -3
  316. package/src/schemas/components/menu.ts +0 -15
  317. package/src/schemas/components/price.ts +0 -3
  318. package/src/schemas/components/rating.ts +0 -15
  319. package/src/schemas/components/section.ts +0 -15
  320. package/src/schemas/components/sections.ts +0 -3
  321. package/src/schemas/components/sidebar.ts +0 -15
  322. package/src/schemas/components/social.ts +0 -3
  323. package/src/schemas/components/socials.ts +0 -4
  324. package/src/schemas/components/subheader.ts +0 -9
  325. package/src/schemas/components/tagline.ts +0 -3
  326. package/src/schemas/components/text.ts +0 -3
  327. package/src/schemas/components/themer.ts +0 -3
  328. package/src/schemas/components/toc.ts +0 -3
  329. package/src/schemas/components/writeup.ts +0 -20
  330. package/src/schemas/imageSchema.ts +0 -12
  331. package/src/schemas/pageSchema.ts +0 -94
  332. package/src/schemas/presetSchema.ts +0 -3
  333. package/src/schemas/utils/categories.ts +0 -3
  334. package/src/schemas/utils/component.ts +0 -17
  335. package/src/schemas/utils/navigation.ts +0 -8
  336. package/src/types/global-props.ts +0 -16
  337. package/src/utils/_archive/Childmorphic.ts +0 -8
  338. package/src/utils/_archive/getAllCollections.ts +0 -10
  339. package/src/utils/_archive/getCollectionCascade.ts +0 -33
  340. package/src/utils/_archive/getPathname.ts +0 -18
  341. package/src/utils/_archive/mergeEntries.ts +0 -28
  342. package/src/utils/_archive/staticPageSchema.ts +0 -124
  343. package/src/utils/_archive/transform/transform.ts +0 -25
  344. package/src/utils/_archive/transform/transformCasing.ts +0 -24
  345. package/src/utils/_archive/transform/transformReferences.ts +0 -54
  346. package/src/utils/_archive/transform/transformSelfs.ts +0 -20
  347. package/src/utils/_archive/transform/transformUnderscores.ts +0 -19
  348. package/src/utils/getDeepReferenceChildren.ts +0 -14
  349. package/src/utils/getFolderChildren.ts +0 -18
  350. package/src/utils/getReferenceChildren.ts +0 -14
  351. package/src/utils/getSiblingPages.ts +0 -14
  352. package/src/utils/setTheme.ts +0 -18
  353. /package/{src → public}/images/anti-slip-profiles.webp +0 -0
  354. /package/{src → public}/images/avatar-1.jpeg +0 -0
  355. /package/{src → public}/images/avatar-2.jpeg +0 -0
  356. /package/{src → public}/images/avatar-3.jpeg +0 -0
  357. /package/{src → public}/images/avatar-4.jpeg +0 -0
  358. /package/{src → public}/images/avatar-placeholder.jpg +0 -0
  359. /package/{src → public}/images/block-code.png +0 -0
  360. /package/{src → public}/images/component-code.png +0 -0
  361. /package/{src → public}/images/favicon.svg +0 -0
  362. /package/{src → public}/images/fulldev-ui.webp +0 -0
  363. /package/{src → public}/images/lavis-detailing.webp +0 -0
  364. /package/{src → public}/images/leren-trainingsacteren.webp +0 -0
  365. /package/{src → public}/images/logo-1.svg +0 -0
  366. /package/{src → public}/images/logo-2.svg +0 -0
  367. /package/{src → public}/images/logo-basic.svg +0 -0
  368. /package/{src → public}/images/logo-simple.svg +0 -0
  369. /package/{src → public}/images/logo-thin.svg +0 -0
  370. /package/{src → public}/images/logo.svg +0 -0
  371. /package/{src → public}/images/logofat.svg +0 -0
  372. /package/{src → public}/images/miele-witgoedcenter-amsterdam.webp +0 -0
  373. /package/{src → public}/images/og-image.png +0 -0
  374. /package/{src → public}/images/placeholder-center.webp +0 -0
  375. /package/{src → public}/images/placeholder-landscape-dark.png +0 -0
  376. /package/{src → public}/images/placeholder-landscape.webp +0 -0
  377. /package/{src → public}/images/placeholder-portrait.webp +0 -0
  378. /package/{src → public}/images/placeholder-right.webp +0 -0
  379. /package/{src → public}/images/placeholder.webp +0 -0
  380. /package/{src → public}/images/sloepverhuur-bolsward.webp +0 -0
  381. /package/{src → public}/images/stark-vulcanising-products.webp +0 -0
  382. /package/{src → public}/images/the-gym-haren.webp +0 -0
  383. /package/{src → public}/images/van-dillen-antieke-bouwmaterialen.webp +0 -0
  384. /package/src/components/{LocaleSwitcher.astro → _LocaleSwitcher.astro} +0 -0
  385. /package/src/{components → structures}/Carousel.astro +0 -0
@@ -1,8 +1,10 @@
1
1
  ---
2
- import Button from './Button.astro'
2
+ // @ts-nocheck
3
+ import { STRIPE_RESTRICTED_KEY, URL } from 'astro:env/client'
4
+ import CartCheckout from './CartCheckout.svelte'
5
+ import CartTotal from './CartTotal.svelte'
3
6
  import Element from './Element.astro'
4
- import Price from './Price.astro'
5
- import Text from './Text.astro'
7
+ import Paragraph from './Paragraph.astro'
6
8
 
7
9
  interface Props {}
8
10
 
@@ -17,21 +19,21 @@ const { ...rest } = Astro.props
17
19
  class="row"
18
20
  {...rest}
19
21
  >
20
- <Text
22
+ <Paragraph
21
23
  class:list="total"
22
24
  text="Totaal"
23
25
  contrast
24
26
  />
25
- <Price value={10} />
27
+ <CartTotal client:load />
26
28
  </div>
27
- <Text
29
+ <Paragraph
28
30
  class:list="shipping"
29
31
  text="Verzendkosten worden berekend bij het afrekenen."
30
32
  />
31
- <Button
32
- class:list="checkout-button"
33
- variant="primary"
34
- text="Afrekenen"
33
+ <CartCheckout
34
+ {STRIPE_RESTRICTED_KEY}
35
+ {URL}
36
+ client:load
35
37
  />
36
38
  </Element>
37
39
 
@@ -55,90 +57,3 @@ const { ...rest } = Astro.props
55
57
  }
56
58
  }
57
59
  </style>
58
-
59
- <script>
60
- import { STRIPE_RESTRICTED_KEY, URL } from 'astro:env/client'
61
- import { $cart } from 'fulldev-ui/stores/cart.ts'
62
- import { formatPrice } from 'fulldev-ui/utils/cart'
63
- import Stripe from 'stripe'
64
-
65
- function setPrice(items: any) {
66
- const price = document.querySelector('.cart-summary .price')
67
- console.log('settings price', price)
68
- if (price)
69
- price.textContent = formatPrice(
70
- items.reduce(
71
- (acc: number, item: { price: number }) => acc + item.price,
72
- 0
73
- )
74
- )
75
- }
76
-
77
- document.addEventListener('astro:page-load', () => {
78
- if (!STRIPE_RESTRICTED_KEY) return
79
- const stripe = new Stripe(STRIPE_RESTRICTED_KEY)
80
- setPrice($cart.get())
81
-
82
- $cart.subscribe((items: any) => {
83
- setPrice(items)
84
- })
85
-
86
- const button = document.querySelector('.cart-summary .checkout-button')
87
-
88
- button?.addEventListener('click', async () => {
89
- const items = $cart.get()
90
-
91
- const checkoutConfig = {
92
- success_url: `${URL}/checkout`,
93
- mode: 'payment',
94
- customer_creation: 'always',
95
- shipping_address_collection: {
96
- allowed_countries: ['NL'],
97
- },
98
- phone_number_collection: {
99
- enabled: true,
100
- },
101
- }
102
-
103
- try {
104
- const lineItems = items.map((item: any) => ({
105
- price_data: {
106
- currency: 'eur',
107
- product: item.id,
108
- },
109
- quantity: 1,
110
- }))
111
-
112
- // @ts-ignore
113
- const checkoutSession = await stripe.checkout.sessions.create({
114
- line_items: lineItems,
115
- ...checkoutConfig,
116
- })
117
-
118
- checkoutSession.url && window.location.replace(checkoutSession.url)
119
- } catch (error) {
120
- console.error(error)
121
-
122
- const lineItems = items.map((item: any) => ({
123
- quantity: 1,
124
- price_data: {
125
- currency: 'eur',
126
- product_data: {
127
- name: item.name,
128
- images: [URL + item.image],
129
- },
130
- unit_amount: Math.round(item.price * 100),
131
- },
132
- }))
133
-
134
- // @ts-ignore
135
- const checkoutSession = await stripe.checkout.sessions.create({
136
- line_items: lineItems,
137
- ...checkoutConfig,
138
- })
139
-
140
- checkoutSession.url && window.location.replace(checkoutSession.url)
141
- }
142
- })
143
- })
144
- </script>
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { cart } from 'fulldev-ui/stores/cart.svelte.ts'
3
+ import { formatPrice } from 'fulldev-ui/utils/cart'
4
+
5
+ let total = $derived(
6
+ $cart.reduce(
7
+ (acc, item) => acc + (item.price || 0) * (item.quantity || 0),
8
+ 0
9
+ )
10
+ )
11
+ </script>
12
+
13
+ <div>
14
+ {formatPrice(total)}
15
+ </div>
@@ -1,19 +1,16 @@
1
1
  ---
2
- import type { ComponentProps } from 'astro/types'
2
+ 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 Text from 'fulldev-ui/components/Text.astro'
7
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
8
6
 
9
- interface Props extends GlobalProps, ComponentProps<typeof Button> {
10
- variant?: ComponentProps<typeof Button>['variant']
11
- icon?: ComponentProps<typeof Button>['icon']
12
- href?: ComponentProps<typeof Button>['href']
13
- heading?: ComponentProps<typeof Heading>['text']
14
- text?: ComponentProps<typeof Text>['text']
15
- structure?: 'row' | 'column' | undefined
16
- align?: 'start' | 'center' | undefined
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
17
14
  }
18
15
 
19
16
  const {
@@ -40,9 +37,9 @@ const {
40
37
  />
41
38
  <Element class:list="channel-content">
42
39
  <Heading
43
- level={6}
44
- text={heading}
40
+ as="h6"
45
41
  {size}
42
+ text={heading}
46
43
  />
47
44
  <Fragment set:html={text} />
48
45
  <slot />
@@ -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,
@@ -20,12 +21,13 @@ const {
20
21
  center,
21
22
  frame,
22
23
  dark,
24
+ muted,
23
25
  inset,
24
26
  ...rest
25
27
  } = Astro.props
26
28
 
27
29
  const slot = await Astro.slots.render('default')
28
- const render = 'if' in rest ? rest.if : slot?.trim().length > 0
30
+ const render = show === 'content' ? slot?.trim().length > 0 : show
29
31
  ---
30
32
 
31
33
  {
@@ -41,6 +43,7 @@ const render = 'if' in rest ? rest.if : slot?.trim().length > 0
41
43
  center,
42
44
  inset,
43
45
  dark,
46
+ muted,
44
47
  [`size-${size}`]: size,
45
48
  [`color-${color}`]: color,
46
49
  [`level-${level}`]: level,
@@ -63,4 +66,5 @@ const render = 'if' in rest ? rest.if : slot?.trim().length > 0
63
66
  @import 'tailwindcss/base' layer(fulldev);
64
67
  @import 'fulldev-ui/css/theme' layer(fulldev);
65
68
  @import 'tailwindcss/components';
69
+ @import 'tailwindcss/utilities';
66
70
  </style>
@@ -5,15 +5,16 @@ 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
  | (
14
13
  | ComponentProps<typeof Input>
15
14
  | ComponentProps<typeof Select>
16
- | (ComponentProps<typeof Textarea> & { type?: 'textarea' | undefined })
15
+ | (ComponentProps<typeof Textarea> & {
16
+ type?: 'textarea' | undefined
17
+ })
17
18
  )[]
18
19
  | undefined
19
20
  }
@@ -1,11 +1,14 @@
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'
5
6
  import Image from 'fulldev-ui/components/Image.astro'
6
7
 
7
8
  interface Props {
8
- images: (ComponentProps<typeof Image> | ComponentProps<typeof Image>['src'])[]
9
+ images?:
10
+ | (ComponentProps<typeof Image> | ComponentProps<typeof Image>['src'])[]
11
+ | undefined
9
12
  }
10
13
 
11
14
  const { images } = Astro.props
@@ -62,7 +65,7 @@ const hasMany = images?.length > 5
62
65
  <Element class:list="gallery">
63
66
  <Element class:list="gallery-large">
64
67
  <Button
65
- if={hasMultiple}
68
+ show={hasMultiple}
66
69
  class="gallery-left"
67
70
  icon="chevron-left"
68
71
  variant="secondary"
@@ -78,7 +81,7 @@ const hasMany = images?.length > 5
78
81
  }
79
82
  </Element>
80
83
  <Button
81
- if={hasMultiple}
84
+ show={hasMultiple}
82
85
  class="gallery-right"
83
86
  icon="chevron-right"
84
87
  variant="secondary"
@@ -86,11 +89,11 @@ const hasMany = images?.length > 5
86
89
  />
87
90
  </Element>
88
91
  <Element
89
- if={hasMultiple}
92
+ show={hasMultiple}
90
93
  class:list="gallery-small"
91
94
  >
92
95
  <Button
93
- if={hasMany}
96
+ show={hasMany}
94
97
  class="gallery-left"
95
98
  icon="chevron-left"
96
99
  variant="secondary"
@@ -109,7 +112,7 @@ const hasMany = images?.length > 5
109
112
  }
110
113
  </Element>
111
114
  <Button
112
- if={hasMany}
115
+ show={hasMany}
113
116
  class="gallery-right"
114
117
  icon="chevron-right"
115
118
  variant="ghost"
@@ -1,21 +1,26 @@
1
1
  ---
2
2
  import { AstroSeo } from '@astrolib/seo'
3
- import type { ComponentProps } from 'astro/types'
4
- import { ViewTransitions } from 'astro:transitions'
5
- import type Layout from 'fulldev-ui/layouts/Layout.astro'
3
+ import type { HTMLAttributes } from 'astro/types'
4
+ import type Image from 'fulldev-ui/components/Image.astro'
5
+ import type { ComponentProps } from 'svelte'
6
6
 
7
- type Props = ComponentProps<typeof Layout>
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
+ }
8
17
 
9
- const { theme, title, description, image, seo, code, render } = Astro.props
18
+ const { theme, title, description, image, code, ...rest } = Astro.props
10
19
 
11
- const renderTitle = render && (await render()).headings[0]?.text
12
- const mergedTitle = seo?.title || title || renderTitle
13
- const mergedDescription = seo?.description || description
14
- const mergedImage =
15
- seo?.image || image ? Astro.url.origin + (seo?.image || image) : undefined
20
+ const src = image?.src && Astro.url.origin + image.src
16
21
  ---
17
22
 
18
- <head>
23
+ <head {...rest}>
19
24
  <meta charset="utf-8" />
20
25
  <meta
21
26
  content="width=device-width, initial-scale=1, viewport-fit=cover"
@@ -29,24 +34,22 @@ const mergedImage =
29
34
  rel="canonical"
30
35
  href={Astro.url.href.endsWith('/') ? Astro.url.href : Astro.url.href + '/'}
31
36
  />
32
- <ViewTransitions />
33
37
  <AstroSeo
34
- title={mergedTitle ?? ''}
35
- description={mergedDescription ?? ''}
38
+ title={title ?? ''}
39
+ description={description ?? ''}
36
40
  openGraph={{
37
- title: mergedTitle,
38
- description: mergedDescription,
39
- images: mergedImage
40
- ? [
41
- {
42
- url: mergedImage,
43
- alt: mergedTitle,
44
- },
45
- ]
46
- : undefined,
47
- } as any}
41
+ title: title ?? '',
42
+ description: description ?? '',
43
+ images: [
44
+ {
45
+ url: src ?? '',
46
+ alt: title ?? '',
47
+ },
48
+ ],
49
+ }}
48
50
  />
49
- <Fragment set:html={code?.head} />
51
+
52
+ <Fragment set:html={code} />
50
53
 
51
54
  <script is:inline define:vars={{ theme }}>
52
55
  function setTheme(document) {
@@ -87,11 +90,4 @@ const mergedImage =
87
90
  setOption(document)
88
91
  })
89
92
  </script>
90
-
91
- <!-- TrustBox script -->
92
- <script
93
- type="text/javascript"
94
- src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js"
95
- async
96
- ></script>
97
93
  </head>
@@ -1,31 +1,33 @@
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'> {
8
- as?: HTMLTag
9
- level?: 1 | 2 | 3 | 4 | 5 | 6 | undefined
5
+ interface Props
6
+ extends HTMLAttributes<'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'> {
7
+ as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | undefined
8
+ depth?: 1 | 2 | 3 | 4 | 5 | 6 | undefined
10
9
  text?: string | undefined
10
+ muted?: boolean | undefined
11
+ size?:
12
+ | 'xs'
13
+ | 'sm'
14
+ | 'md'
15
+ | 'lg'
16
+ | 'xl'
17
+ | '2xl'
18
+ | '3xl'
19
+ | '4xl'
20
+ | '5xl'
21
+ | '6xl'
22
+ | undefined
11
23
  }
12
24
 
13
- const {
14
- text,
15
- id = text ? slugify(text) : undefined,
16
- size = 'md',
17
- level = 2,
18
- as = `h${level}`,
19
- ...rest
20
- } = Astro.props
25
+ const { depth = 2, as = `h${depth}`, text, ...rest } = Astro.props
21
26
  ---
22
27
 
23
28
  <Element
24
29
  class:list="heading"
25
- {id}
26
30
  {as}
27
- {level}
28
- {size}
29
31
  {...rest}
30
32
  >
31
33
  <Fragment set:html={text} />
@@ -36,82 +38,48 @@ const {
36
38
  .heading {
37
39
  @apply scroll-mt-20 font-bold tracking-tight text-foreground;
38
40
 
39
- &.size-sm {
40
- &.level-1 {
41
- @apply text-3xl;
42
- }
43
-
44
- &.level-2 {
45
- @apply text-2xl;
46
- }
47
-
48
- &.level-3 {
49
- @apply text-xl;
50
- }
51
-
52
- &.level-4 {
53
- @apply text-lg;
54
- }
41
+ &.muted {
42
+ @apply text-muted-foreground;
43
+ }
55
44
 
56
- &.level-5 {
57
- @apply text-base;
58
- }
45
+ &.size-xs {
46
+ @apply text-xs;
47
+ }
59
48
 
60
- &.level-6 {
61
- @apply text-sm;
62
- }
49
+ &.size-sm {
50
+ @apply text-sm;
63
51
  }
64
52
 
65
53
  &.size-md {
66
- &.level-1 {
67
- @apply text-4xl;
68
- }
69
-
70
- &.level-2 {
71
- @apply text-3xl;
72
- }
73
-
74
- &.level-3 {
75
- @apply text-2xl;
76
- }
77
-
78
- &.level-4 {
79
- @apply text-xl;
80
- }
81
-
82
- &.level-5 {
83
- @apply text-lg;
84
- }
85
-
86
- &.level-6 {
87
- @apply text-base;
88
- }
54
+ @apply text-base;
89
55
  }
90
56
 
91
57
  &.size-lg {
92
- &.level-1 {
93
- @apply text-5xl lg:text-6xl;
94
- }
58
+ @apply text-lg;
59
+ }
95
60
 
96
- &.level-2 {
97
- @apply text-4xl;
98
- }
61
+ &.size-xl {
62
+ @apply text-xl;
63
+ }
99
64
 
100
- &.level-3 {
101
- @apply text-3xl;
102
- }
65
+ &.size-2xl {
66
+ @apply text-2xl;
67
+ }
103
68
 
104
- &.level-4 {
105
- @apply text-2xl;
106
- }
69
+ &.size-3xl {
70
+ @apply text-3xl;
71
+ }
72
+
73
+ &.size-4xl {
74
+ @apply text-4xl;
75
+ }
107
76
 
108
- &.level-5 {
109
- @apply text-xl;
110
- }
77
+ &.size-5xl {
78
+ @apply text-4xl lg:text-5xl;
79
+ }
111
80
 
112
- &.level-6 {
113
- @apply text-lg;
114
- }
81
+ &.size-6xl {
82
+ @apply text-5xl lg:text-6xl;
115
83
  }
116
84
  }
117
85
  </style>
@@ -2,15 +2,15 @@
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 { GlobalProps } from 'fulldev-ui/types/global-props'
6
5
 
7
- interface Props extends GlobalProps, HTMLAttributes<'i'> {
8
- name?: keyof typeof tablerIcons.icons | undefined
6
+ interface Props extends HTMLAttributes<'svg'> {
7
+ size?: 'sm' | 'md' | 'lg' | undefined
8
+ name?: string | undefined
9
9
  }
10
10
 
11
11
  const { size = 'md', name, ...rest } = Astro.props
12
12
 
13
- const trimmedName = name?.trim() as string | undefined
13
+ const trimmedName = name?.trim()
14
14
  const icon = trimmedName
15
15
  ? (tablerIcons as any)?.icons[trimmedName]?.body
16
16
  : undefined