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
@@ -2,30 +2,17 @@
2
2
  import type { HTMLAttributes } from 'astro/types'
3
3
  import Element from 'fulldev-ui/components/Element.astro'
4
4
  import Icon from 'fulldev-ui/components/Icon.astro'
5
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
6
- import Avatars from './Avatars.astro'
7
5
 
8
- interface Props extends GlobalProps, HTMLAttributes<'div'> {
9
- align?: 'start' | 'center' | 'end' | undefined
10
- value?: number | undefined
11
- text?: string | undefined
12
- avatars?: any
13
- avatar?: any
6
+ interface Props extends HTMLAttributes<'div'> {
7
+ size?: 'sm' | 'md' | 'lg' | undefined
8
+ score?: number | undefined
14
9
  }
15
10
 
16
- const {
17
- size = 'md',
18
- value,
19
- text,
20
- avatars,
21
- avatar,
22
- align,
23
- ...rest
24
- } = Astro.props
11
+ const { size = 'md', score, ...rest } = Astro.props
25
12
 
26
13
  const getIcon = (count: number) => {
27
- if (!value) return
28
- const difference = value - count
14
+ if (!score) return
15
+ const difference = score - count
29
16
  if (difference >= -0.25) return 'star-filled'
30
17
  if (difference >= -0.75) return 'star-half-filled'
31
18
  return 'star'
@@ -34,71 +21,35 @@ const getIcon = (count: number) => {
34
21
 
35
22
  <Element
36
23
  class:list="rating"
37
- {size}
38
24
  {...rest}
39
25
  >
40
- <Avatars
41
- {size}
42
- {avatars}
43
- {avatar}
44
- />
45
- <Element class:list="rating-content">
46
- <Element
47
- class:list="rating-stars"
48
- {...rest}
49
- >
50
- {
51
- value &&
52
- [1, 2, 3, 4, 5].map((_, i) => (
53
- <Icon
54
- {size}
55
- name={getIcon(i + 1)}
56
- class:list={'rating-icon-solid'}
57
- />
58
- ))
59
- }
60
- </Element>
61
- <Fragment set:html={text} />
62
- <slot />
63
- </Element>
26
+ {
27
+ score &&
28
+ [1, 2, 3, 4, 5].map((count) => (
29
+ <Icon
30
+ name={getIcon(count)}
31
+ {size}
32
+ />
33
+ ))
34
+ }
64
35
  </Element>
65
36
 
66
37
  <style is:global>
67
38
  @layer fulldev {
68
39
  .rating {
69
- @apply flex items-center gap-3;
70
-
71
- .rating-content {
72
- @apply flex flex-col gap-1 text-muted-foreground;
73
- }
74
-
75
- .rating-stars {
76
- @apply flex gap-1 text-primary;
77
- }
78
-
79
- &.size-sm {
80
- @apply gap-2;
81
-
82
- .rating-content {
83
- @apply text-xs leading-none;
84
- }
85
- }
86
-
87
- &.size-md {
88
- @apply gap-2.5;
40
+ @apply flex gap-1 text-primary;
41
+ }
89
42
 
90
- .rating-content {
91
- @apply text-sm leading-none;
92
- }
93
- }
43
+ &.size-sm {
44
+ @apply text-xs;
45
+ }
94
46
 
95
- &.size-lg {
96
- @apply gap-3;
47
+ &.size-md {
48
+ @apply text-sm;
49
+ }
97
50
 
98
- .rating-content {
99
- @apply text-base leading-none;
100
- }
101
- }
51
+ &.size-lg {
52
+ @apply text-base;
102
53
  }
103
54
  }
104
55
  </style>
@@ -1,59 +1,118 @@
1
1
  ---
2
- import Dialog from 'fulldev-ui/components/Dialog.astro'
2
+ import { getCollection } from 'astro:content'
3
+ import { getHref } from 'fulldev-ui/utils/getHref'
4
+ import Button from './Button.astro'
5
+ import Element from './Element.astro'
6
+ import Heading from './Heading.astro'
7
+ import Input from './Input.astro'
8
+ import Paragraph from './Paragraph.astro'
3
9
 
4
- const { variant = 'secondary', ...rest } = Astro.props
10
+ const pages = await getCollection('pages')
5
11
  ---
6
12
 
7
- <Dialog
8
- class:list="search"
9
- id="search"
13
+ <script>
14
+ document.addEventListener('astro:page-load', () => {
15
+ const input = document.querySelector('.search-input')
16
+ const items = document.querySelectorAll('.search-item')
17
+
18
+ input?.addEventListener('input', (e) => {
19
+ if (!(e.target instanceof HTMLInputElement)) return
20
+ const value = e.target.value.toLowerCase()
21
+ items.forEach((item) => {
22
+ if (!(item instanceof HTMLElement)) return
23
+
24
+ const title =
25
+ item.querySelector('.heading')?.textContent?.toLowerCase() || ''
26
+ const description =
27
+ item.querySelector('.paragraph')?.textContent?.toLowerCase() || ''
28
+
29
+ const isVisible = title.includes(value) || description.includes(value)
30
+ item.classList.toggle('hide', !isVisible)
31
+ })
32
+ })
33
+ })
34
+ </script>
35
+
36
+ <Button
37
+ class:list="search-button"
38
+ variant={Astro.props.variant}
39
+ size="sm"
10
40
  icon="search"
11
- {variant}
12
- {...rest}
41
+ onclick={`document.getElementById('search').showModal()`}
13
42
  />
14
43
 
15
- <style is:global >
16
- :root {
17
- --pagefind-ui-primary: var(--brand-11);
18
- --pagefind-ui-text: var(--base-12);
19
- --pagefind-ui-background: var(--base-2);
20
- --pagefind-ui-border: var(--base-6);
21
- --pagefind-ui-tag: var(--base-6);
22
- }
44
+ <dialog
45
+ class="search"
46
+ id="search"
47
+ onclick={`event.target === this && this.close()`}
48
+ >
49
+ <Element class:list="search-container">
50
+ <Element class:list="search-content">
51
+ <Input
52
+ class:list="search-input"
53
+ placeholder="Search"
54
+ icon="search"
55
+ />
56
+ <Element class:list="search-list">
57
+ {
58
+ pages.map(({ slug, data }) => (
59
+ <Element
60
+ as="a"
61
+ href={getHref(slug)}
62
+ class="search-item hide"
63
+ >
64
+ <Heading
65
+ text={data.title}
66
+ as="h6"
67
+ size="md"
68
+ />
69
+ <Paragraph
70
+ set:text={'description' in data ? data.description : undefined}
71
+ />
72
+ </Element>
73
+ ))
74
+ }
75
+ </Element>
76
+ </Element>
77
+ </Element>
78
+ </dialog>
23
79
 
24
- @media (max-width: 1023.999px) {
25
- .search,
26
- #search,
27
- #search-button {
28
- display: none !important;
29
- }
30
- }
80
+ <style is:global>
81
+ @layer fulldev {
82
+ .search {
83
+ @apply container h-full w-full max-w-screen-md rounded-lg !border-none bg-transparent py-24 outline-none backdrop:bg-black/50;
31
84
 
32
- .dialog div {
33
- width: 100%;
34
- }
85
+ &:is(.dark &) {
86
+ color-scheme: dark;
87
+ }
35
88
 
36
- .pagefind-ui__search-input {
37
- outline: none !important;
38
- border: 1px solid var(--base-7);
39
- color: var(--base-11);
89
+ .search-container {
90
+ @apply w-full overflow-hidden rounded-lg border bg-background shadow-md;
91
+ }
40
92
 
41
- &::placeholder {
42
- color: var(--base-11);
43
- }
93
+ .search-content {
94
+ @apply max-h-[400px] w-full overflow-y-auto;
95
+ }
44
96
 
45
- &:hover {
46
- outline: none;
47
- }
97
+ .input {
98
+ @apply m-5;
99
+ }
48
100
 
49
- &:focus {
50
- outline: none;
51
- box-shadow: inset 0 0 0 2px var(--base-8);
52
- border-color: var(--base-8);
53
- }
54
- }
101
+ .search-list {
102
+ @apply flex h-full w-full shrink grow-0 flex-col;
103
+ }
104
+
105
+ .search-item {
106
+ @apply border-t p-5 transition-colors hover:bg-accent;
55
107
 
56
- .pagefind-ui__search-clear {
57
- background: transparent !important;
108
+ &.hide {
109
+ @apply hidden;
110
+ }
111
+ }
112
+
113
+ .paragraph {
114
+ @apply mt-2 truncate text-sm text-muted-foreground;
115
+ }
116
+ }
58
117
  }
59
118
  </style>
@@ -3,9 +3,9 @@ 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<'select'> {
7
+ interface Props extends HTMLAttributes<'select'> {
8
+ show?: any
9
9
  label?: string | undefined
10
10
  placeholder?: string | undefined
11
11
  options?: string[] | undefined
@@ -26,6 +26,7 @@ const {
26
26
 
27
27
  <Element
28
28
  class:list="select"
29
+ show={options}
29
30
  as="label"
30
31
  for={id}
31
32
  {size}
@@ -38,7 +39,6 @@ const {
38
39
  <Element
39
40
  class:list="select-select"
40
41
  as="select"
41
- if={id}
42
42
  {id}
43
43
  {name}
44
44
  {...rest}
@@ -1,94 +1,43 @@
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 Logo from 'fulldev-ui/components/Logo.astro'
5
- import Menu from 'fulldev-ui/components/Menu.astro'
6
- import Themer from 'fulldev-ui/components/Themer.astro'
7
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
8
- import Heading from './Heading.astro'
9
- import Toc from './Toc.astro'
4
+ import Menus from 'fulldev-ui/components/Menus.astro'
5
+ import type { BlockSchema } from 'fulldev-ui/schemas/block'
10
6
 
11
- interface Props extends GlobalProps, HTMLAttributes<'aside'> {
12
- menu?: ComponentProps<typeof Menu>['groups']
13
- heading?: ComponentProps<typeof Heading>['text']
14
- render?: ComponentProps<typeof Toc>['render']
15
- logo?: ComponentProps<typeof Logo>
16
- toc?: ComponentProps<typeof Toc>['heading']
17
- company?: ComponentProps<typeof Logo>['company']
18
- themer?: boolean | undefined
19
- size?: 'sm' | 'md' | 'lg' | undefined
20
- }
7
+ interface Props extends HTMLAttributes<'aside'>, BlockSchema {}
21
8
 
22
- const {
23
- size = 'sm',
24
- logo,
25
- company,
26
- render,
27
- menu,
28
- toc,
29
- heading,
30
- themer,
31
- ...rest
32
- } = Astro.props
9
+ const { menus, ...rest } = Astro.props
33
10
  ---
34
11
 
35
12
  <Element
36
13
  class:list="sidebar"
37
14
  as="aside"
38
- {size}
39
15
  {...rest}
40
16
  >
41
- <Element
42
- class:list="sidebar-header"
43
- as="header"
44
- >
45
- <Logo
46
- {company}
47
- {size}
48
- {...logo}
49
- />
50
- <Heading
51
- level={4}
52
- text={heading}
53
- />
54
- <slot name="header" />
55
- </Element>
56
- <Element class:list="sidebar-content">
57
- <Menu
58
- groups={menu}
59
- {size}
60
- />
61
- <Themer
62
- if={themer}
63
- {size}
64
- />
65
- <slot />
66
- </Element>
17
+ <Menus
18
+ size="sm"
19
+ menu={rest}
20
+ {menus}
21
+ />
67
22
  </Element>
68
23
 
69
- <style is:global>
24
+ <!-- <style is:global>
70
25
  @layer fulldev {
71
26
  .sidebar {
72
- @apply sticky bottom-0 z-10 hidden h-full flex-col items-start justify-start bg-background lg:flex;
27
+ @apply sticky bottom-0 left-0 hidden h-full w-56 max-w-56 shrink-0 grow flex-col items-start gap-8 overflow-y-auto border-r bg-background py-8 pr-8 lg:flex;
28
+ @apply scrollbar scrollbar-track-transparent scrollbar-thumb-accent scrollbar-thumb-rounded-full scrollbar-w-2 hover:scrollbar-thumb-accent-hover;
73
29
 
74
- --height: calc(var(--header-height, 0px) + var(--subheader-height, 0px));
75
- top: var(--height);
30
+ --headers: calc(var(--header-height, 0px) + var(--subheader-height, 0px));
31
+ top: var(--headers);
76
32
  width: var(--sidebar-width);
77
- max-height: calc(100vh - var(--height));
33
+ height: calc(100vh - var(--headers));
78
34
 
79
35
  &,
80
36
  & ~ * {
81
- --sidebar-width: 13rem;
82
- }
83
-
84
- .sidebar-header {
85
- @apply sticky flex h-14 w-full items-center px-gutter py-6;
86
- }
87
-
88
- .sidebar-content {
89
- @apply flex w-full flex-1 flex-col items-start gap-7 overflow-y-auto px-gutter pb-14 pt-6 first:pt-14;
90
- @apply scrollbar scrollbar-track-transparent scrollbar-thumb-accent scrollbar-thumb-rounded-full scrollbar-w-2 hover:scrollbar-thumb-accent-hover;
37
+ @media (min-width: 1024px) {
38
+ --sidebar-width: 14rem;
39
+ }
91
40
  }
92
41
  }
93
42
  }
94
- </style>
43
+ </style> -->
@@ -4,7 +4,14 @@ import Button from 'fulldev-ui/components/Button.astro'
4
4
 
5
5
  interface Props extends ComponentProps<typeof Button> {}
6
6
 
7
- const { variant = 'secondary', icon, href, ...rest } = Astro.props
7
+ const {
8
+ variant = 'ghost',
9
+ target = '_blank',
10
+ size = 'sm',
11
+ icon,
12
+ href,
13
+ ...rest
14
+ } = Astro.props
8
15
 
9
16
  const platform = () => {
10
17
  if (typeof href !== 'string') return
@@ -22,9 +29,11 @@ const platform = () => {
22
29
  ---
23
30
 
24
31
  <Button
25
- class:list={'social'}
32
+ class:list="social"
26
33
  icon={icon ?? platform()}
27
34
  {variant}
28
35
  {href}
36
+ {target}
37
+ {size}
29
38
  {...rest}
30
39
  />
@@ -1,41 +1,25 @@
1
1
  ---
2
- import type { ComponentProps, HTMLAttributes } from 'astro/types'
3
- import Element from 'fulldev-ui/components/Element.astro'
2
+ import type { ComponentProps } from 'astro/types'
4
3
  import Social from 'fulldev-ui/components/Social.astro'
5
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
6
4
 
7
- interface Props extends GlobalProps, HTMLAttributes<'div'> {
8
- variant?: ComponentProps<typeof Social>['variant']
9
- socials?: ComponentProps<typeof Social>['href'][] | undefined
5
+ interface Props extends ComponentProps<typeof Social> {
6
+ social?:
7
+ | ComponentProps<typeof Social>
8
+ | ComponentProps<typeof Social>['href']
9
+ | undefined
10
+ socials?:
11
+ | (ComponentProps<typeof Social> | ComponentProps<typeof Social>['href'])[]
12
+ | undefined
10
13
  }
11
14
 
12
- const { variant = 'ghost', socials, size, ...rest } = Astro.props
15
+ const { social, socials, ...rest } = Astro.props
13
16
  ---
14
17
 
15
- <Element
16
- class:list="socials"
17
- {variant}
18
- {...rest}
19
- >
20
- {
21
- socials?.map((social) => (
22
- <Social
23
- {variant}
24
- {size}
25
- href={social}
26
- />
27
- ))
28
- }
29
- </Element>
30
-
31
- <style is:global>
32
- @layer fulldev {
33
- .socials {
34
- @apply flex gap-2;
35
-
36
- &.variant-ghost {
37
- @apply gap-0;
38
- }
39
- }
40
- }
41
- </style>
18
+ {
19
+ [social, ...(socials || [])].filter(Boolean).map((social) => (
20
+ <Social
21
+ {...rest}
22
+ {...(typeof social === 'string' ? { href: social } : social)}
23
+ />
24
+ ))
25
+ }
@@ -2,10 +2,10 @@
2
2
  import type { ComponentProps, HTMLAttributes } from 'astro/types'
3
3
  import Element from 'fulldev-ui/components/Element.astro'
4
4
  import Label from 'fulldev-ui/components/Label.astro'
5
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
6
5
 
7
- interface Props extends GlobalProps, Omit<HTMLAttributes<'input'>, 'type'> {
6
+ interface Props extends Omit<HTMLAttributes<'input'>, 'type'> {
8
7
  label?: ComponentProps<typeof Label>['text']
8
+ size?: 'sm' | 'md' | 'lg'
9
9
  }
10
10
 
11
11
  const { label, name = label, id = name, size = 'md', ...rest } = Astro.props
@@ -21,7 +21,7 @@ const { label, name = label, id = name, size = 'md', ...rest } = Astro.props
21
21
  class:list="switch-input"
22
22
  as="input"
23
23
  type="checkbox"
24
- if={id}
24
+ show={id}
25
25
  {id}
26
26
  {name}
27
27
  {...rest}
@@ -29,7 +29,7 @@ const { label, name = label, id = name, size = 'md', ...rest } = Astro.props
29
29
  <Element
30
30
  as="label"
31
31
  for={id}
32
- if={id}
32
+ show={id}
33
33
  class="switch-mark"
34
34
  />
35
35
  <Label
@@ -84,68 +84,3 @@ const { label, name = label, id = name, size = 'md', ...rest } = Astro.props
84
84
  }
85
85
  }
86
86
  </style>
87
-
88
- <!-- <style is:global>
89
- @layer fulldev {
90
- .switch {
91
- display: flex;
92
- position: relative;
93
- align-items: center;
94
- gap: var(--space-1);
95
- width: 100%;
96
-
97
- .switch-element {
98
- display: block;
99
- position: relative;
100
- transition: all;
101
- cursor: pointer;
102
- box-sizing: border-box;
103
- border: 1px solid var(--border);
104
- border-radius: 999px;
105
- background-color: var(--base-2);
106
- padding: var(--space-1);
107
- width: fit-content;
108
- min-width: calc(
109
- (var(--text-2) + 2 * var(--space-2) * 2) + 2 * var(--space-1)
110
- );
111
- height: calc(var(--text-2) + 2 * var(--space-2));
112
-
113
- .checkbox {
114
- position: absolute;
115
- opacity: 0;
116
- width: 0;
117
- height: 0;
118
- }
119
-
120
- .checkmark {
121
- transform: 0%;
122
- transition: all;
123
- border-radius: 999px;
124
- background-color: var(--base-1);
125
- width: 50%;
126
- height: 100%;
127
- }
128
-
129
- .checkbox:checked ~ .checkmark {
130
- transform: translateX(100%);
131
- background-color: var(--color-12);
132
- }
133
-
134
- &:hover {
135
- background-color: var(--base-3);
136
- }
137
-
138
- &:focus-visible {
139
- outline: 2px solid var(--focus) !important;
140
- outline-offset: 2px;
141
- }
142
-
143
- &:disabled {
144
- opacity: 0.5;
145
- cursor: not-allowed;
146
- pointer-events: none;
147
- }
148
- }
149
- }
150
- }
151
- </style> -->
@@ -1,9 +1,8 @@
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 extends GlobalProps, HTMLAttributes<'table'> {
5
+ interface Props extends HTMLAttributes<'table'> {
7
6
  header?: string[] | undefined
8
7
  body?: string[][] | undefined
9
8
  footer?: string[] | undefined
@@ -41,7 +40,7 @@ const { header, body, footer, ...rest } = Astro.props
41
40
  </Element>
42
41
  </Element>
43
42
 
44
- <style is:global >
43
+ <style is:global>
45
44
  @layer fulldev {
46
45
  .table {
47
46
  box-shadow: 0 0 0 1px var(--color-6);