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,30 +1,12 @@
1
1
  ---
2
- // @ts-nocheck
3
- import type { ImageMetadata } from 'astro'
4
2
  import type { HTMLAttributes } from 'astro/types'
5
3
  import { Image as AstroImage } from 'astro:assets'
6
- import { getEntry } from 'astro:content'
7
4
 
8
5
  interface Props extends HTMLAttributes<'img'> {
9
- size?: 'sm' | 'md' | 'lg' | undefined
10
- id?: any
11
- position?: 'background' | 'cover' | 'inset' | undefined
12
- }
13
-
14
- const { id } = Astro.props
15
- const entry = id ? (await getEntry('images', id))?.data : {}
16
-
17
- const {
18
- width = 1920,
19
- height = 1920,
20
- position,
21
- src,
22
- alt,
23
- size,
24
- ...rest
25
- } = {
26
- ...entry,
27
- ...Astro.props,
6
+ src?: string | undefined
7
+ alt?: string | undefined
8
+ height?: number | undefined
9
+ width?: number | undefined
28
10
  }
29
11
 
30
12
  function getAltBySrc() {
@@ -35,24 +17,23 @@ function getAltBySrc() {
35
17
  return unslugged || ''
36
18
  }
37
19
 
38
- const images = import.meta.glob<{ default: ImageMetadata }>('/src/images/*')
39
- const image = images[src as keyof typeof images]
20
+ const {
21
+ src,
22
+ alt = getAltBySrc(),
23
+ height = 1920,
24
+ width = 1920,
25
+ ...rest
26
+ } = Astro.props
40
27
  ---
41
28
 
42
29
  {
43
- (image || src) && (
30
+ src && (
44
31
  <AstroImage
45
- class:list={[
46
- 'image',
47
- {
48
- [`size-${size}`]: size,
49
- [`position-${position}`]: position,
50
- },
51
- ]}
52
- alt={alt || getAltBySrc()}
53
- src={image ? image() : src}
54
- width={width ? Number(width) : undefined}
55
- height={height ? Number(height) : undefined}
32
+ class:list="image"
33
+ {alt}
34
+ {src}
35
+ {width}
36
+ {height}
56
37
  {...rest}
57
38
  />
58
39
  )
@@ -61,19 +42,7 @@ const image = images[src as keyof typeof images]
61
42
  <style is:global>
62
43
  @layer fulldev {
63
44
  .image {
64
- @apply block;
65
-
66
- &.position-contain {
67
- @apply h-auto w-full object-contain;
68
- }
69
-
70
- &.position-cover {
71
- @apply h-full w-full object-cover;
72
- }
73
-
74
- &.position-background {
75
- @apply absolute inset-0 h-full max-h-none w-full max-w-none object-cover opacity-30;
76
- }
45
+ @apply block rounded-md;
77
46
  }
78
47
  }
79
48
  </style>
@@ -1,13 +1,13 @@
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
4
  import Icon from 'fulldev-ui/components/Icon.astro'
5
5
  import Label from 'fulldev-ui/components/Label.astro'
6
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
7
6
 
8
- interface Props extends GlobalProps, HTMLAttributes<'input'> {
9
- label?: ComponentProps<typeof Label>['text']
10
- icon?: ComponentProps<typeof Icon>['name']
7
+ interface Props extends HTMLAttributes<'input'> {
8
+ size?: 'sm' | 'md' | 'lg' | undefined
9
+ label?: string | undefined
10
+ icon?: string | undefined
11
11
  }
12
12
 
13
13
  const {
@@ -17,6 +17,7 @@ const {
17
17
  id = name,
18
18
  type = 'text',
19
19
  size = 'md',
20
+ value,
20
21
  icon,
21
22
  ...rest
22
23
  } = Astro.props
@@ -27,27 +28,39 @@ const {
27
28
  as="label"
28
29
  for={id}
29
30
  {size}
31
+ {...rest}
30
32
  >
31
33
  <Label
32
34
  for={name}
33
35
  text={label}
34
36
  {size}
35
37
  />
36
- <Icon name={icon} />
38
+ <Icon
39
+ name={icon}
40
+ {size}
41
+ />
37
42
  <Element
38
43
  class:list="input-input"
39
44
  as="input"
40
- if={name}
45
+ show={name}
41
46
  id={name}
42
47
  {name}
43
48
  {placeholder}
44
49
  {type}
45
- {...rest}
50
+ {value}
46
51
  />
47
52
  </Element>
48
53
 
49
54
  <style is:global>
50
55
  @layer fulldev {
56
+ .input-input {
57
+ @apply flex w-full rounded-md border border-input bg-background text-sm text-foreground ring-offset-background;
58
+ @apply file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground;
59
+ @apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2;
60
+ @apply disabled:pointer-events-none disabled:opacity-50;
61
+ @apply [&[readonly]]:pointer-events-none;
62
+ }
63
+
51
64
  .input {
52
65
  @apply relative flex flex-col gap-1.5;
53
66
 
@@ -55,14 +68,6 @@ const {
55
68
  @apply pointer-events-none absolute;
56
69
  }
57
70
 
58
- .input-input {
59
- @apply flex w-full rounded-md border border-input bg-background text-sm ring-offset-background;
60
- @apply file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground;
61
- @apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2;
62
- @apply disabled:pointer-events-none disabled:opacity-50;
63
- @apply [&[readonly]]:pointer-events-none;
64
- }
65
-
66
71
  &.size-sm {
67
72
  @apply gap-1;
68
73
 
@@ -1,19 +1,19 @@
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
4
 
6
- interface Props extends GlobalProps, HTMLAttributes<'label'> {
7
- as?: HTMLTag
5
+ interface Props extends HTMLAttributes<'label'> {
6
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | undefined
7
+ muted?: boolean | undefined
8
8
  text?: string | undefined
9
9
  }
10
10
 
11
- const { as = 'label', size = 'md', text, ...rest } = Astro.props
11
+ const { size = 'md', text, ...rest } = Astro.props
12
12
  ---
13
13
 
14
14
  <Element
15
15
  class:list="label"
16
- {as}
16
+ as="label"
17
17
  {size}
18
18
  {...rest}
19
19
  >
@@ -1,41 +1,24 @@
1
1
  ---
2
- import type { ComponentProps, HTMLAttributes, HTMLTag } from 'astro/types'
3
- import type { CollectionEntry } from 'astro:content'
4
- import { getEntry } from 'astro:content'
2
+ import type { HTMLAttributes } from 'astro/types'
5
3
  import Element from 'fulldev-ui/components/Element.astro'
6
4
  import Icon from 'fulldev-ui/components/Icon.astro'
7
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
8
5
 
9
- interface Props extends GlobalProps, HTMLAttributes<'a'> {
10
- as?: HTMLTag
11
- href?: string | null | undefined
12
- slug?: CollectionEntry<'pages'>['slug'] | undefined
13
- icon?: ComponentProps<typeof Icon>['name']
14
- variant?: 'primary' | 'muted' | undefined
6
+ interface Props extends HTMLAttributes<'a'> {
7
+ variant?: 'primary' | 'underline' | 'muted' | undefined
8
+ size?: 'sm' | 'md' | 'lg' | undefined
15
9
  text?: string | undefined
16
- current?: boolean | undefined
10
+ icon?: string | undefined
17
11
  }
18
12
 
19
- const {
20
- slug,
21
- href = slug === 'index' ? '/' : slug ? `/${slug}/` : undefined,
22
- text = slug ? (await getEntry('pages', slug)).data.title : undefined,
23
- target = href?.startsWith('http') ? '_blank' : undefined,
24
- current = Astro.url.pathname === href,
25
- as = 'a',
26
- variant = 'primary',
27
- icon,
28
- ...rest
29
- } = Astro.props
13
+ const { variant = 'muted', size = 'md', text, icon, ...rest } = Astro.props
30
14
  ---
31
15
 
32
16
  <Element
33
17
  class:list="link"
34
- {href}
35
- {as}
36
- {target}
18
+ as="a"
19
+ current={`/${Astro.params.page}/` === rest.href}
37
20
  {variant}
38
- {current}
21
+ {size}
39
22
  {...rest}
40
23
  >
41
24
  <Fragment set:html={text} />
@@ -47,13 +30,17 @@ const {
47
30
  @layer fulldev {
48
31
  .link,
49
32
  .prose-content > *:not(.prose-footer) > a {
50
- @apply ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2;
33
+ @apply cursor-pointer ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2;
51
34
 
52
35
  &.variant-primary,
53
36
  &:is(.prose-content > *:not(.prose-footer) > a) {
54
37
  @apply text-primary underline underline-offset-4;
55
38
  }
56
39
 
40
+ &.variant-underline {
41
+ @apply underline underline-offset-4;
42
+ }
43
+
57
44
  &.variant-muted {
58
45
  @apply text-muted-foreground hover:text-foreground;
59
46
 
@@ -66,6 +53,10 @@ const {
66
53
  @apply text-sm;
67
54
  }
68
55
 
56
+ &.size-md {
57
+ @apply text-base;
58
+ }
59
+
69
60
  &.size-lg {
70
61
  @apply text-lg;
71
62
  }
@@ -1,42 +1,20 @@
1
1
  ---
2
- import type { ComponentProps, HTMLAttributes } from 'astro/types'
3
- import Element from 'fulldev-ui/components/Element.astro'
4
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
5
- import Link from './Link.astro'
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Link from 'fulldev-ui/components/Link.astro'
6
4
 
7
- interface Props extends GlobalProps, HTMLAttributes<'div'> {
8
- variant?: ComponentProps<typeof Link>['variant']
5
+ interface Props extends ComponentProps<typeof Link> {
6
+ link?: ComponentProps<typeof Link> | undefined
9
7
  links?: ComponentProps<typeof Link>[] | undefined
10
- direction?: 'row' | 'column' | undefined
11
8
  }
12
9
 
13
- const { variant = 'muted', links, size, ...rest } = Astro.props
10
+ const { link, links, ...rest } = Astro.props
14
11
  ---
15
12
 
16
- <Element
17
- class:list="links"
18
- {...rest}
19
- >
20
- {
21
- links?.map((link) => (
22
- <Link
23
- {variant}
24
- {size}
25
- {...link}
26
- />
27
- ))
28
- }
29
- <slot />
30
- </Element>
31
-
32
- <style is:global>
33
- @layer fulldev {
34
- .links {
35
- @apply flex items-center justify-stretch gap-x-6 gap-y-2;
36
-
37
- &.direction-column {
38
- @apply flex-col items-start;
39
- }
40
- }
41
- }
42
- </style>
13
+ {
14
+ [link, ...(links || [])].filter(Boolean).map((link) => (
15
+ <Link
16
+ {...rest}
17
+ {...link}
18
+ />
19
+ ))
20
+ }
@@ -1,14 +1,12 @@
1
1
  ---
2
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
4
 
6
- interface Props
7
- extends GlobalProps,
8
- HTMLAttributes<'ul'>,
9
- HTMLAttributes<'ol'> {
5
+ interface Props extends HTMLAttributes<'ul' | 'ol'> {
10
6
  as?: 'ul' | 'ol' | undefined
7
+ size?: 'sm' | 'md' | 'lg' | undefined
11
8
  items?: string[] | undefined
9
+ muted?: boolean | undefined
12
10
  }
13
11
 
14
12
  const { as = 'ul', items, ...rest } = Astro.props
@@ -1,44 +1,48 @@
1
1
  ---
2
- import type { ComponentProps } from 'astro/types'
3
- import Element from 'fulldev-ui/components/Element.astro'
2
+ import type { HTMLAttributes } from 'astro/types'
4
3
  import Image from 'fulldev-ui/components/Image.astro'
4
+ import type { ComponentProps } from 'svelte'
5
+ import Element from './Element.astro'
5
6
 
6
- interface Props extends ComponentProps<typeof Image> {
7
- company?: string | undefined
7
+ interface Props extends HTMLAttributes<'a'>, HTMLAttributes<'div'> {
8
+ image?: ComponentProps<typeof Image> | undefined
9
+ size?: 'sm' | 'md' | 'lg' | undefined
10
+ text?: string | undefined
8
11
  }
9
12
 
10
- const { size = 'md', company, ...rest } = Astro.props as Props
13
+ const { href = '/', size = 'md', image, text, ...rest } = Astro.props as Props
11
14
  ---
12
15
 
13
16
  <Element
14
17
  class:list="logo"
15
- as="a"
16
- href="/"
18
+ as={href ? 'a' : 'div'}
19
+ {href}
17
20
  {size}
21
+ {...rest}
18
22
  >
19
- <Image {...rest} />
20
- <Fragment set:html={company} />
23
+ <Image {...image} />
24
+ <Fragment set:html={text} />
21
25
  </Element>
22
26
 
23
27
  <style is:global>
24
28
  @layer fulldev {
25
29
  .logo {
26
- @apply inline-flex grow-0 items-center justify-start font-semibold;
30
+ @apply flex w-auto items-center gap-2 whitespace-nowrap object-contain text-base font-bold leading-none text-foreground;
27
31
 
28
32
  .image {
29
- @apply block h-full w-auto object-contain;
33
+ @apply h-full w-auto object-contain;
30
34
  }
31
35
 
32
36
  &.size-sm {
33
- @apply h-6 gap-2 text-base;
37
+ @apply h-6;
34
38
  }
35
39
 
36
40
  &.size-md {
37
- @apply h-7 gap-2.5 text-lg;
41
+ @apply h-7;
38
42
  }
39
43
 
40
44
  &.size-lg {
41
- @apply h-8 gap-3 text-xl;
45
+ @apply h-8;
42
46
  }
43
47
  }
44
48
  }
@@ -1,59 +1,46 @@
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
4
  import Heading from 'fulldev-ui/components/Heading.astro'
5
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
6
- import type Link from './Link.astro'
5
+ import type Link from 'fulldev-ui/components/Link.astro'
6
+ import type { ComponentProps } from 'svelte'
7
7
  import Links from './Links.astro'
8
8
 
9
- interface Props extends GlobalProps, HTMLAttributes<'div'> {
10
- direction?: 'row' | 'column'
11
- groups?:
12
- | {
13
- heading?: ComponentProps<typeof Heading>['text']
14
- links?: ComponentProps<typeof Link>[]
15
- }[]
16
- | undefined
9
+ interface Props extends HTMLAttributes<'div'> {
10
+ size?: 'sm' | 'md' | 'lg' | undefined
11
+ heading?: string | undefined
12
+ links?: ComponentProps<typeof Link>[] | undefined
17
13
  }
18
14
 
19
- const { direction = 'column', groups, size = 'md', ...rest } = Astro.props
15
+ const { size = 'md', heading, links, ...rest } = Astro.props
20
16
  ---
21
17
 
22
18
  <Element
23
19
  class:list="menu"
24
- {direction}
25
- {size}
26
20
  {...rest}
27
21
  >
28
22
  {
29
- groups?.map(({ heading, links }) => (
30
- <Element class:list="menu-group">
31
- <Heading
32
- level={6}
33
- text={heading}
34
- {size}
35
- />
36
- <Links
37
- direction="column"
38
- {links}
39
- {size}
40
- />
41
- </Element>
42
- ))
23
+ links && links.length > 0 && (
24
+ <Heading
25
+ text={heading}
26
+ as="h6"
27
+ {size}
28
+ />
29
+ )
43
30
  }
31
+ <Links
32
+ {size}
33
+ {links}
34
+ />
44
35
  </Element>
45
36
 
46
37
  <style is:global>
47
38
  @layer fulldev {
48
39
  .menu {
49
- @apply flex flex-col gap-6;
40
+ @apply flex flex-col gap-2;
50
41
 
51
- .menu-group {
52
- @apply flex flex-col gap-3;
53
- }
54
-
55
- &.direction-row {
56
- @apply flex-row flex-wrap gap-12;
42
+ .heading {
43
+ @apply mb-1;
57
44
  }
58
45
  }
59
46
  }
@@ -0,0 +1,20 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Menu from 'fulldev-ui/components/Menu.astro'
4
+
5
+ interface Props extends ComponentProps<typeof Menu> {
6
+ menu?: ComponentProps<typeof Menu> | undefined
7
+ menus?: ComponentProps<typeof Menu>[] | undefined
8
+ }
9
+
10
+ const { menu, menus, ...rest } = Astro.props
11
+ ---
12
+
13
+ {
14
+ [menu, ...(menus || [])].filter(Boolean).map((menu) => (
15
+ <Menu
16
+ {...rest}
17
+ {...menu}
18
+ />
19
+ ))
20
+ }
@@ -1,37 +1,53 @@
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
4
 
6
- interface Props extends GlobalProps, HTMLAttributes<'p'> {
7
- as?: HTMLTag
5
+ interface Props extends HTMLAttributes<'p'> {
6
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | undefined
7
+ muted?: boolean | undefined
8
8
  text?: string | undefined
9
9
  }
10
10
 
11
- const { as = 'p', text, ...rest } = Astro.props
11
+ const { text, ...rest } = Astro.props
12
12
  ---
13
13
 
14
14
  <Element
15
15
  class:list="paragraph"
16
- {as}
16
+ as="p"
17
17
  {...rest}
18
18
  >
19
- <slot />
20
19
  <Fragment set:html={text} />
20
+ <slot />
21
21
  </Element>
22
22
 
23
23
  <style is:global>
24
24
  @layer fulldev {
25
25
  .paragraph,
26
26
  .prose-content p {
27
- @apply leading-7 text-foreground;
27
+ @apply text-foreground;
28
+
29
+ &.muted {
30
+ @apply text-muted-foreground;
31
+ }
32
+
33
+ &.size-xs {
34
+ @apply text-xs leading-relaxed;
35
+ }
28
36
 
29
37
  &.size-sm {
30
- @apply text-sm;
38
+ @apply text-sm leading-relaxed;
39
+ }
40
+
41
+ &.size-md {
42
+ @apply text-base leading-relaxed;
31
43
  }
32
44
 
33
45
  &.size-lg {
34
- @apply text-lg;
46
+ @apply text-lg leading-relaxed;
47
+ }
48
+
49
+ &.size-xl {
50
+ @apply text-xl leading-relaxed;
35
51
  }
36
52
  }
37
53
  }
@@ -1,27 +1,24 @@
1
1
  ---
2
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
4
  import { formatPrice } from 'fulldev-ui/utils/cart'
6
5
 
7
- interface Props extends GlobalProps, HTMLAttributes<'div'> {
6
+ interface Props extends HTMLAttributes<'div'> {
8
7
  size?: 'sm' | 'md' | 'lg' | undefined
9
- color?: 'base' | 'brand' | undefined
10
- contrast?: boolean | undefined
11
- value?: number | undefined
8
+ amount?: number | undefined
12
9
  }
13
10
 
14
- const { value, ...rest } = Astro.props
11
+ const { amount, ...rest } = Astro.props
15
12
  ---
16
13
 
17
14
  <Element
18
15
  class:list="price"
19
16
  {...rest}
20
17
  >
21
- {value && <Fragment set:html={formatPrice(value)} />}
18
+ {amount && <Fragment set:html={formatPrice(amount)} />}
22
19
  </Element>
23
20
 
24
- <style is:global >
21
+ <style is:global>
25
22
  @layer fulldev {
26
23
  .price {
27
24
  margin: 0;