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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/.vscode/settings.json +2 -0
  2. package/astro.config.ts +1 -3
  3. package/cloudcannon.config.yml +0 -2
  4. package/package.json +1 -1
  5. package/src/blocks/Banner.astro +3 -3
  6. package/src/blocks/Colleagues1.astro +16 -16
  7. package/src/blocks/Contact1.astro +5 -10
  8. package/src/blocks/Content1.astro +22 -39
  9. package/src/blocks/Content2.astro +21 -45
  10. package/src/blocks/Content3.astro +36 -31
  11. package/src/blocks/Content4.astro +28 -35
  12. package/src/blocks/Content5.astro +72 -0
  13. package/src/blocks/Cta1.astro +6 -6
  14. package/src/blocks/Features1.astro +9 -5
  15. package/src/blocks/Footer.astro +13 -5
  16. package/src/blocks/Header.astro +19 -15
  17. package/src/blocks/Hero1.astro +8 -5
  18. package/src/blocks/Industries1.astro +86 -0
  19. package/src/blocks/Intro1.astro +7 -9
  20. package/src/blocks/Jobs1.astro +28 -24
  21. package/src/blocks/Logos1.astro +4 -4
  22. package/src/blocks/Products1.astro +4 -4
  23. package/src/blocks/Projects1.astro +103 -0
  24. package/src/blocks/Reviews1.astro +9 -7
  25. package/src/{components → blocks}/Subheader.astro +1 -2
  26. package/src/components/Badge.astro +8 -20
  27. package/src/components/Badges.astro +3 -3
  28. package/src/components/Block.astro +1 -1
  29. package/src/components/Button.astro +9 -18
  30. package/src/components/Cart.astro +6 -6
  31. package/src/components/CartSummary.astro +1 -0
  32. package/src/components/Channel.astro +9 -3
  33. package/src/components/Channels.astro +11 -42
  34. package/src/components/Checkbox.astro +8 -14
  35. package/src/components/Element.astro +2 -1
  36. package/src/components/Form.astro +1 -2
  37. package/src/components/Gallery.astro +6 -5
  38. package/src/components/Head.astro +14 -4
  39. package/src/components/Heading.astro +21 -17
  40. package/src/components/Icon.astro +2 -3
  41. package/src/components/Image.astro +6 -2
  42. package/src/components/Input.astro +11 -14
  43. package/src/components/Label.astro +6 -6
  44. package/src/components/Link.astro +13 -16
  45. package/src/components/Links.astro +1 -2
  46. package/src/components/List.astro +3 -5
  47. package/src/components/Logo.astro +9 -16
  48. package/src/components/Menu.astro +7 -3
  49. package/src/components/Paragraph.astro +6 -7
  50. package/src/components/Price.astro +1 -4
  51. package/src/components/Rating.astro +4 -2
  52. package/src/components/Search.astro +1 -6
  53. package/src/components/Select.astro +3 -4
  54. package/src/components/Sidebar.astro +6 -6
  55. package/src/components/Social.astro +3 -1
  56. package/src/components/Socials.astro +18 -34
  57. package/src/components/Switch.astro +4 -69
  58. package/src/components/Table.astro +2 -3
  59. package/src/components/Tagline.astro +6 -7
  60. package/src/components/Textarea.astro +5 -5
  61. package/src/components/Themer.astro +3 -3
  62. package/src/components/Toc.astro +7 -11
  63. package/src/components/Toggle.astro +45 -0
  64. package/src/components/{Breadcrumb.astro → _Breadcrumb.astro} +3 -3
  65. package/src/components/_Image.astro +2 -2
  66. package/src/components/docs/Props.astro +21 -0
  67. package/src/content/layouts/base.yml +131 -19
  68. package/src/content/pages/base/toggle.mdx +28 -0
  69. package/src/content/pages/{blocks → docs/blocks}/banner.mdx +1 -0
  70. package/src/content/pages/docs/blocks/colleagues.mdx +49 -0
  71. package/src/content/pages/docs/blocks/content.mdx +155 -0
  72. package/src/content/pages/docs/blocks/cta.mdx +16 -0
  73. package/src/content/pages/docs/blocks/feature.mdx +17 -0
  74. package/src/content/pages/docs/blocks/features.mdx +35 -0
  75. package/src/content/pages/docs/blocks/footer.mdx +46 -0
  76. package/src/content/pages/docs/blocks/header.mdx +60 -0
  77. package/src/content/pages/docs/blocks/hero.mdx +18 -0
  78. package/src/content/pages/docs/blocks/intro.mdx +16 -0
  79. package/src/content/pages/docs/blocks/logos.mdx +37 -0
  80. package/src/content/pages/docs/blocks/projects.mdx +36 -0
  81. package/src/content/pages/docs/blocks/reviews.mdx +65 -0
  82. package/src/content/pages/docs/blocks.mdx +45 -20
  83. package/src/content/pages/docs/collections/pages.mdx +2 -2
  84. package/src/content/pages/docs/components/{table.mdx → _table.mdx} +2 -4
  85. package/src/content/pages/docs/components/{themer.mdx → _themer.mdx} +2 -4
  86. package/src/content/pages/docs/components/_toggle.mdx +2 -2
  87. package/src/content/pages/docs/components/badge.mdx +2 -4
  88. package/src/content/pages/docs/components/badges.mdx +3 -4
  89. package/src/content/pages/docs/components/button.mdx +2 -4
  90. package/src/content/pages/docs/components/buttons.mdx +3 -4
  91. package/src/content/pages/docs/components/channel.mdx +2 -4
  92. package/src/content/pages/docs/components/channels.mdx +3 -2
  93. package/src/content/pages/docs/components/checkbox.mdx +2 -4
  94. package/src/content/pages/docs/components/heading.mdx +11 -21
  95. package/src/content/pages/docs/components/icon.mdx +2 -4
  96. package/src/content/pages/docs/components/image.mdx +3 -9
  97. package/src/content/pages/docs/components/input.mdx +2 -4
  98. package/src/content/pages/docs/components/label.mdx +2 -4
  99. package/src/content/pages/docs/components/link.mdx +2 -4
  100. package/src/content/pages/docs/components/links.mdx +3 -4
  101. package/src/content/pages/docs/components/list.mdx +2 -4
  102. package/src/content/pages/docs/components/logo.mdx +9 -21
  103. package/src/content/pages/docs/components/menu.mdx +20 -48
  104. package/src/content/pages/docs/components/paragraph.mdx +44 -0
  105. package/src/content/pages/docs/components/rating.mdx +9 -42
  106. package/src/content/pages/docs/components/select.mdx +2 -4
  107. package/src/content/pages/docs/components/social.mdx +2 -4
  108. package/src/content/pages/docs/components/socials.mdx +3 -2
  109. package/src/content/pages/docs/components/switch.mdx +2 -4
  110. package/src/content/pages/docs/components/tagline.mdx +2 -6
  111. package/src/content/pages/docs/components/textarea.mdx +2 -4
  112. package/src/content/pages/docs/components.mdx +3 -4
  113. package/src/content/pages/docs/customization.mdx +52 -20
  114. package/src/content/pages/docs/frameworks.mdx +12 -11
  115. package/src/content/pages/docs/index.mdx +3 -2
  116. package/src/content/pages/docs/installation.mdx +9 -6
  117. package/src/content/pages/docs/layouts/doc.mdx +15 -0
  118. package/src/content/pages/docs/layouts/page.mdx +15 -0
  119. package/src/content/pages/docs/layouts.mdx +66 -19
  120. package/src/content/pages/docs/{generating-pages.mdx → pages.mdx} +1 -0
  121. package/src/content/pages/docs/{components → structures}/_card.mdx +6 -6
  122. package/src/content/pages/docs/{components → structures}/_drawer.mdx +1 -1
  123. package/src/content/pages/docs/structures/card.mdx +15 -0
  124. package/src/content/pages/docs/{components → structures}/code.mdx +4 -7
  125. package/src/content/pages/docs/structures/container.mdx +15 -0
  126. package/src/content/pages/docs/structures/drawer.mdx +15 -0
  127. package/src/content/pages/docs/structures/group.mdx +15 -0
  128. package/src/content/pages/docs/structures/layout.mdx +15 -0
  129. package/src/content/pages/docs/structures/masonry.mdx +15 -0
  130. package/src/content/pages/docs/structures/matrix.mdx +15 -0
  131. package/src/content/pages/docs/structures/panel.mdx +15 -0
  132. package/src/content/pages/docs/{components → structures}/prose.mdx +3 -6
  133. package/src/content/pages/docs/structures/section.mdx +15 -0
  134. package/src/content/pages/docs/structures/stack.mdx +15 -0
  135. package/src/content/pages/docs/structures/writeup.mdx +15 -0
  136. package/src/content/pages/docs/structures.mdx +7 -0
  137. package/src/content/pages/index.mdx +7 -4
  138. package/src/content/pages/showcase.mdx +1 -4
  139. package/src/css/theme.css +9 -42
  140. package/src/integration/index.ts +1 -1
  141. package/src/layouts/Block.astro +81 -0
  142. package/src/layouts/Category.astro +6 -6
  143. package/src/layouts/Doc.astro +50 -24
  144. package/src/layouts/Job.astro +5 -5
  145. package/src/layouts/Jobs.astro +14 -14
  146. package/src/layouts/Page.astro +4 -4
  147. package/src/layouts/Post.astro +7 -6
  148. package/src/layouts/Product.astro +3 -2
  149. package/src/schemas/badge.ts +14 -0
  150. package/src/schemas/block.ts +58 -0
  151. package/src/schemas/{components/button.ts → button.ts} +3 -7
  152. package/src/schemas/channel.ts +14 -0
  153. package/src/schemas/checkbox.ts +13 -0
  154. package/src/schemas/footer.ts +17 -0
  155. package/src/schemas/{components/head.ts → head.ts} +5 -5
  156. package/src/schemas/header.ts +21 -0
  157. package/src/schemas/{components/image.ts → image.ts} +22 -9
  158. package/src/schemas/input.ts +13 -0
  159. package/src/schemas/link.ts +14 -0
  160. package/src/schemas/logo.ts +13 -0
  161. package/src/schemas/menu.ts +11 -0
  162. package/src/schemas/page.ts +11 -14
  163. package/src/schemas/{utils/pathSchema.ts → path.ts} +1 -1
  164. package/src/schemas/textarea.ts +11 -0
  165. package/src/{components → structures}/Card.astro +5 -1
  166. package/src/{components → structures}/Code.astro +7 -6
  167. package/src/{components → structures}/Container.astro +1 -1
  168. package/src/{components → structures}/Drawer.astro +4 -4
  169. package/src/{components → structures}/Layout.astro +2 -3
  170. package/src/structures/Matrix.astro +39 -0
  171. package/src/{components → structures}/Prose.astro +17 -6
  172. package/src/structures/Sidebar.astro +37 -0
  173. package/src/{components → structures}/Stack.astro +1 -1
  174. package/src/{components → structures}/Writeup.astro +9 -1
  175. package/src/structures/_Bento.astro +34 -0
  176. package/src/utils/cart.ts +1 -1
  177. package/tailwind.config.ts +5 -7
  178. package/tsconfig.json +3 -1
  179. package/public/favicon/favicon-16x16-dark.png +0 -0
  180. package/public/favicon/favicon-32x32-dark.png +0 -0
  181. package/public/favicon/favicon-48x48-dark.png +0 -0
  182. package/public/favicon/favicon-dark.ico +0 -0
  183. package/src/blocks/Feature1.astro +0 -61
  184. package/src/components/Avatar.astro +0 -45
  185. package/src/components/Avatars.astro +0 -36
  186. package/src/components/Cards.astro +0 -133
  187. package/src/components/Dialog.astro +0 -67
  188. package/src/components/DrawerOld.astro +0 -143
  189. package/src/components/Grid.astro +0 -39
  190. package/src/components/Header.astro +0 -32
  191. package/src/components/Navigation.astro +0 -39
  192. package/src/components/_Author.astro +0 -90
  193. package/src/components/_Header.astro +0 -129
  194. package/src/components/_Prose copy.astro +0 -172
  195. package/src/components/_Sidebar copy.astro +0 -87
  196. package/src/components/docs/DecorativeBox.astro +0 -15
  197. package/src/components/docs/PropsTable.astro +0 -49
  198. package/src/components/experimental/Video.astro +0 -32
  199. package/src/components/experimental/Window.astro +0 -122
  200. package/src/content/pages/blocks/_footer.mdx +0 -75
  201. package/src/content/pages/blocks/_header.mdx +0 -183
  202. package/src/content/pages/blocks/_prices.mdx +0 -122
  203. package/src/content/pages/blocks/_product.mdx +0 -97
  204. package/src/content/pages/blocks/_products.mdx +0 -52
  205. package/src/content/pages/blocks/colleagues.mdx +0 -37
  206. package/src/content/pages/blocks/content.mdx +0 -77
  207. package/src/content/pages/blocks/cta.mdx +0 -159
  208. package/src/content/pages/blocks/features.mdx +0 -128
  209. package/src/content/pages/blocks/hero.mdx +0 -94
  210. package/src/content/pages/blocks/intro.mdx +0 -124
  211. package/src/content/pages/blocks/reviews.mdx +0 -251
  212. package/src/content/pages/categories/category.md +0 -7
  213. package/src/content/pages/docs/_internationalization.mdx +0 -55
  214. package/src/content/pages/docs/_using-blocks.mdx +0 -33
  215. package/src/content/pages/docs/_using-presets.mdx +0 -49
  216. package/src/content/pages/docs/collections.mdx +0 -42
  217. package/src/content/pages/docs/components/_switch.mdx +0 -31
  218. package/src/content/pages/docs/components/avatar.mdx +0 -34
  219. package/src/content/pages/docs/components/section.mdx +0 -35
  220. package/src/content/pages/docs/components/text.mdx +0 -48
  221. package/src/content/pages/products/product.md +0 -20
  222. package/src/css/color.css +0 -76
  223. package/src/css/size.css +0 -131
  224. package/src/images/favicon/android-chrome-192x192.png +0 -0
  225. package/src/images/favicon/android-chrome-512x512.png +0 -0
  226. package/src/images/favicon/apple-touch-icon.png +0 -0
  227. package/src/images/favicon/browserconfig.xml +0 -9
  228. package/src/images/favicon/favicon-16x16.png +0 -0
  229. package/src/images/favicon/favicon-32x32.png +0 -0
  230. package/src/images/favicon/favicon-48x48.png +0 -0
  231. package/src/images/favicon/favicon.ico +0 -0
  232. package/src/images/favicon/favicon.svg +0 -16
  233. package/src/images/favicon/manifest.webmanifest +0 -30
  234. package/src/images/favicon/mstile-150x150.png +0 -0
  235. package/src/images/favicon/safari-pinned-tab.svg +0 -16
  236. package/src/images/favicon/yandex-browser-50x50.png +0 -0
  237. package/src/images/favicon/yandex-browser-manifest.json +0 -9
  238. package/src/pages/test.astro +0 -35
  239. package/src/schemas/components/avatar.ts +0 -6
  240. package/src/schemas/components/badge.ts +0 -18
  241. package/src/schemas/components/block.ts +0 -61
  242. package/src/schemas/components/channel.ts +0 -19
  243. package/src/schemas/components/footer.ts +0 -19
  244. package/src/schemas/components/header.ts +0 -23
  245. package/src/schemas/components/heading.ts +0 -9
  246. package/src/schemas/components/icon.ts +0 -9
  247. package/src/schemas/components/link.ts +0 -17
  248. package/src/schemas/components/logo.ts +0 -13
  249. package/src/schemas/components/menu.ts +0 -14
  250. package/src/schemas/components/navigation.ts +0 -10
  251. package/src/schemas/components/paragraph.ts +0 -9
  252. package/src/schemas/components/price.ts +0 -9
  253. package/src/schemas/components/rating.ts +0 -10
  254. package/src/schemas/components/sidebar.ts +0 -18
  255. package/src/schemas/components/social.ts +0 -18
  256. package/src/schemas/components/tagline.ts +0 -9
  257. package/src/schemas/imageSchema.ts +0 -41
  258. package/src/schemas/utils/component.ts +0 -17
  259. package/src/types/global-props.ts +0 -7
  260. package/src/utils/_archive/Childmorphic.ts +0 -8
  261. package/src/utils/_archive/getAllCollections.ts +0 -10
  262. package/src/utils/_archive/getCollectionCascade.ts +0 -33
  263. package/src/utils/_archive/getPathname.ts +0 -18
  264. package/src/utils/_archive/mergeEntries.ts +0 -28
  265. package/src/utils/_archive/staticPageSchema.ts +0 -124
  266. package/src/utils/_archive/transform/transform.ts +0 -25
  267. package/src/utils/_archive/transform/transformCasing.ts +0 -24
  268. package/src/utils/_archive/transform/transformReferences.ts +0 -54
  269. package/src/utils/_archive/transform/transformSelfs.ts +0 -20
  270. package/src/utils/_archive/transform/transformUnderscores.ts +0 -19
  271. package/src/utils/formatEntries.ts +0 -8
  272. package/src/utils/formatEntry.ts +0 -29
  273. package/src/utils/getDeepReferenceChildren.ts +0 -14
  274. package/src/utils/getFolderChildren.ts +0 -18
  275. package/src/utils/getReferenceChildren.ts +0 -14
  276. package/src/utils/getSiblingPages.ts +0 -14
  277. package/src/utils/setTheme.ts +0 -18
  278. /package/{src → public}/images/anti-slip-profiles.webp +0 -0
  279. /package/{src → public}/images/avatar-1.jpeg +0 -0
  280. /package/{src → public}/images/avatar-2.jpeg +0 -0
  281. /package/{src → public}/images/avatar-3.jpeg +0 -0
  282. /package/{src → public}/images/avatar-4.jpeg +0 -0
  283. /package/{src → public}/images/avatar-placeholder.jpg +0 -0
  284. /package/{src → public}/images/block-code.png +0 -0
  285. /package/{src → public}/images/component-code.png +0 -0
  286. /package/{src → public}/images/favicon.svg +0 -0
  287. /package/{src → public}/images/fulldev-ui.webp +0 -0
  288. /package/{src → public}/images/lavis-detailing.webp +0 -0
  289. /package/{src → public}/images/leren-trainingsacteren.webp +0 -0
  290. /package/{src → public}/images/logo-1.svg +0 -0
  291. /package/{src → public}/images/logo-2.svg +0 -0
  292. /package/{src → public}/images/logo-basic.svg +0 -0
  293. /package/{src → public}/images/logo-simple.svg +0 -0
  294. /package/{src → public}/images/logo-thin.svg +0 -0
  295. /package/{src → public}/images/logo.svg +0 -0
  296. /package/{src → public}/images/logofat.svg +0 -0
  297. /package/{src → public}/images/miele-witgoedcenter-amsterdam.webp +0 -0
  298. /package/{src → public}/images/og-image.png +0 -0
  299. /package/{src → public}/images/placeholder-center.webp +0 -0
  300. /package/{src → public}/images/placeholder-landscape-dark.png +0 -0
  301. /package/{src → public}/images/placeholder-landscape.webp +0 -0
  302. /package/{src → public}/images/placeholder-portrait.webp +0 -0
  303. /package/{src → public}/images/placeholder-right.webp +0 -0
  304. /package/{src → public}/images/placeholder.webp +0 -0
  305. /package/{src → public}/images/sloepverhuur-bolsward.webp +0 -0
  306. /package/{src → public}/images/stark-vulcanising-products.webp +0 -0
  307. /package/{src → public}/images/the-gym-haren.webp +0 -0
  308. /package/{src → public}/images/van-dillen-antieke-bouwmaterialen.webp +0 -0
  309. /package/src/components/{LocaleSwitcher.astro → _LocaleSwitcher.astro} +0 -0
  310. /package/src/content/pages/{showcase → _showcase}/anti-slip-profiles.md +0 -0
  311. /package/src/content/pages/{showcase → _showcase}/fulldev-ui.md +0 -0
  312. /package/src/content/pages/{showcase → _showcase}/lavis-detailing.md +0 -0
  313. /package/src/content/pages/{showcase → _showcase}/leren-trainingsacteren.md +0 -0
  314. /package/src/content/pages/{showcase → _showcase}/miele-witgoedcenter-amsterdam.md +0 -0
  315. /package/src/content/pages/{showcase → _showcase}/sloepverhuur-bolsward.md +0 -0
  316. /package/src/content/pages/{showcase → _showcase}/stark-vulcanising-products.md +0 -0
  317. /package/src/content/pages/{showcase → _showcase}/the-gym-haren.md +0 -0
  318. /package/src/content/pages/{showcase → _showcase}/van-dillen-antieke-bouwmaterialen.md +0 -0
  319. /package/src/content/pages/{blocks → docs/blocks}/_categories.mdx +0 -0
  320. /package/src/content/pages/{blocks/contact.mdx → docs/blocks/_contact.mdx} +0 -0
  321. /package/src/content/pages/{blocks → docs/blocks}/_jobs.mdx +0 -0
  322. /package/src/content/pages/{blocks/posts.mdx → docs/blocks/_posts.mdx} +0 -0
  323. /package/src/content/pages/{blocks → docs/blocks}/_stats.mdx +0 -0
  324. /package/src/content/pages/docs/{components → structures}/_dialog.mdx +0 -0
  325. /package/src/{components → structures}/Carousel.astro +0 -0
  326. /package/src/{components → structures}/Group.astro +0 -0
  327. /package/src/{components → structures}/Masonry.astro +0 -0
  328. /package/src/{components → structures}/Panel.astro +0 -0
  329. /package/src/{components → structures}/Section.astro +0 -0
  330. /package/{src/types/virtual.d.ts → virtual.d.ts} +0 -0
@@ -1,67 +0,0 @@
1
- ---
2
- import type { ComponentProps } from 'astro/types'
3
- import Button from 'fulldev-ui/components/Button.astro'
4
- import Card from 'fulldev-ui/components/Card.astro'
5
- import type Icon from './Icon.astro'
6
- import type Label from './Label.astro'
7
-
8
- interface Props extends ComponentProps<typeof Card> {
9
- icon?: ComponentProps<typeof Icon>['name']
10
- label?: ComponentProps<typeof Label>['text']
11
- }
12
-
13
- const {
14
- variant = 'secondary',
15
- label,
16
- icon,
17
- id = 'dialog',
18
- ...rest
19
- } = Astro.props
20
- ---
21
-
22
- <Button
23
- size="sm"
24
- id={`${id}-button`}
25
- variant="secondary"
26
- onclick={`document.getElementById('${id}').showModal()`}
27
- {icon}
28
- />
29
-
30
- <dialog
31
- class="dialog"
32
- id={id as string}
33
- onclick={`event.target === this && this.close()`}
34
- >
35
- <Card
36
- panel
37
- {...rest}
38
- >
39
- <slot />
40
- </Card>
41
- </dialog>
42
-
43
- <style is:global>
44
- @layer fulldev {
45
- .dialog {
46
- margin: auto !important;
47
- outline: 0;
48
- border: 0;
49
- background: none;
50
- padding: var(--space-7) var(--gutter);
51
- max-width: 768px;
52
- max-height: 80vh;
53
- overflow: hidden;
54
-
55
- &::backdrop {
56
- background: rgba(0, 0, 0, 0.5);
57
- }
58
-
59
- .card {
60
- width: 100%;
61
- height: 100%;
62
- max-height: 80vh !important;
63
- overflow: auto !important;
64
- }
65
- }
66
- }
67
- </style>
@@ -1,143 +0,0 @@
1
- ---
2
- import type { ComponentProps, HTMLAttributes } from 'astro/types'
3
- import Button from 'fulldev-ui/components/Button.astro'
4
- import Element from 'fulldev-ui/components/Element.astro'
5
- import Logo from 'fulldev-ui/components/Logo.astro'
6
- import Menu from 'fulldev-ui/components/Menu.astro'
7
- import links from 'fulldev-ui/schemas/components/links'
8
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
9
- import Buttons from './Buttons.astro'
10
- import Heading from './Heading.astro'
11
- import Links from './Links.astro'
12
-
13
- interface Props extends GlobalProps, HTMLAttributes<'aside'> {
14
- variant?: ComponentProps<typeof Button>['variant']
15
- text?: ComponentProps<typeof Button>['text']
16
- icon?: ComponentProps<typeof Button>['icon']
17
- heading?: ComponentProps<typeof Heading>['text']
18
- logo?: ComponentProps<typeof Logo> | undefined
19
- company?: ComponentProps<typeof Logo>['company']
20
- menu?: ComponentProps<typeof Menu>['groups']
21
- buttons?: ComponentProps<typeof Buttons>['buttons']
22
- links?: ComponentProps<typeof Links>['links']
23
- size?: 'sm' | 'md' | 'lg' | undefined
24
- }
25
-
26
- const {
27
- id = 'drawer',
28
- size = 'sm',
29
- icon = 'menu-2',
30
- color,
31
- variant,
32
- text,
33
- buttons,
34
- links,
35
- heading,
36
- logo,
37
- company,
38
- menu,
39
- if: ifProp,
40
- ...rest
41
- } = Astro.props
42
- ---
43
-
44
- <Button
45
- variant="secondary"
46
- class:list={['drawer-button', `${id}-button`]}
47
- onclick={`document.getElementById('${id}').showModal()`}
48
- {variant}
49
- {text}
50
- {icon}
51
- {color}
52
- {size}
53
- />
54
-
55
- <Element
56
- onclick={`event.target === this && this.close()`}
57
- class:list="drawer"
58
- as="dialog"
59
- {id}
60
- {text}
61
- {size}
62
- {icon}
63
- {...rest}
64
- >
65
- <Element class:list="drawer-body">
66
- <button autofocus></button>
67
- <Element
68
- class:list="drawer-header"
69
- as="header"
70
- >
71
- <Logo
72
- {size}
73
- {company}
74
- {...logo}
75
- />
76
- <Heading
77
- level={4}
78
- text={heading}
79
- />
80
- <Button
81
- variant="secondary"
82
- icon="x"
83
- onclick={`document.getElementById('${id}').close()`}
84
- />
85
- <slot name="header" />
86
- </Element>
87
- <Element class:list="drawer-content">
88
- <Links
89
- direction="column"
90
- {links}
91
- />
92
- <Menu groups={menu} />
93
- <slot />
94
- </Element>
95
- <Element
96
- class:list="drawer-footer"
97
- as="footer"
98
- >
99
- <slot name="footer" />
100
- </Element>
101
- </Element>
102
- </Element>
103
-
104
- <style is:global>
105
- @layer fulldev {
106
- body:has(dialog[open]) {
107
- @apply max-md:overflow-hidden;
108
- }
109
-
110
- .drawer {
111
- @apply inset-0 m-0 h-full max-h-full w-full max-w-full p-0 md:max-w-md;
112
-
113
- &::backdrop {
114
- @apply cursor-pointer bg-background/50;
115
- }
116
-
117
- .drawer-body {
118
- @apply flex h-full shrink flex-col overflow-auto bg-background;
119
-
120
- .drawer-content {
121
- @apply flex flex-col gap-6 px-gutter py-12;
122
- }
123
-
124
- .drawer-header,
125
- .drawer-footer {
126
- @apply sticky z-10 flex shrink-0 bg-background;
127
- }
128
-
129
- .drawer-header {
130
- @apply top-0 h-14 items-center px-gutter;
131
-
132
- .button {
133
- @apply ml-auto;
134
- }
135
- }
136
-
137
- .drawer-footer {
138
- @apply bottom-0 mt-auto flex-col px-gutter py-8;
139
- }
140
- }
141
- }
142
- }
143
- </style>
@@ -1,39 +0,0 @@
1
- ---
2
- import type { HTMLAttributes, HTMLTag } from 'astro/types'
3
- import Element from 'fulldev-ui/components/Element.astro'
4
-
5
- interface Props extends HTMLAttributes<'div'> {
6
- as?: HTMLTag
7
- }
8
-
9
- const { ...rest } = Astro.props
10
- ---
11
-
12
- <Element
13
- class:list="grid"
14
- {...rest}
15
- >
16
- <slot />
17
- </Element>
18
-
19
- <style is:global>
20
- @layer fulldev {
21
- .grid {
22
- @apply relative w-full grid-cols-[repeat(auto-fill,minmax(var(--column-width),1fr))] gap-5;
23
- display: grid;
24
- --column-width: 20rem;
25
-
26
- /* &.size-sm {
27
- --column-width: 16rem;
28
- }
29
-
30
- &.size-md {
31
- --column-width: 20rem;
32
- }
33
-
34
- &.size-lg {
35
- --column-width: 26rem;
36
- } */
37
- }
38
- }
39
- </style>
@@ -1,32 +0,0 @@
1
- ---
2
- import type { HTMLAttributes, HTMLTag } from 'astro/types'
3
- import Element from 'fulldev-ui/components/Element.astro'
4
-
5
- interface Props extends HTMLAttributes<'header'> {
6
- as?: HTMLTag
7
- }
8
-
9
- const { as = 'header', ...rest } = Astro.props
10
- ---
11
-
12
- <Element
13
- class:list="header"
14
- {as}
15
- {...rest}
16
- >
17
- <slot />
18
- </Element>
19
-
20
- <style is:global>
21
- @layer fulldev {
22
- .header {
23
- @apply relative flex w-full items-center bg-background;
24
- height: var(--header-height);
25
-
26
- &,
27
- & ~ * {
28
- --header-height: 3.5rem;
29
- }
30
- }
31
- }
32
- </style>
@@ -1,39 +0,0 @@
1
- ---
2
- import type { HTMLAttributes, HTMLTag } from 'astro/types'
3
- import Element from 'fulldev-ui/components/Element.astro'
4
-
5
- interface Props extends HTMLAttributes<'header'> {
6
- as?: HTMLTag
7
- }
8
-
9
- const { as = 'header', ...rest } = Astro.props
10
- ---
11
-
12
- <Element
13
- class:list="navigation"
14
- {as}
15
- {...rest}
16
- >
17
- <header>header</header>
18
- <aside>sidebar</aside>
19
- </Element>
20
-
21
- <style is:global>
22
- @layer fulldev {
23
- .navigation {
24
- @apply flex h-screen flex-col;
25
-
26
- grid-row-start: 1;
27
- grid-row-end: 2;
28
- grid-column-start: 1;
29
-
30
- header {
31
- @apply h-12 w-full border-b;
32
- }
33
-
34
- aside {
35
- @apply h-full w-64 grow border-r p-6;
36
- }
37
- }
38
- }
39
- </style>
@@ -1,90 +0,0 @@
1
- <!-- ---
2
- import type { HTMLAttributes } from 'astro/types'
3
- import Element from 'fulldev-ui/components/Element.astro'
4
- import Icon from 'fulldev-ui/components/Icon.astro'
5
- import type { RatingSchema } from 'fulldev-ui/schemas/components/rating'
6
- import Avatar from './Avatar.astro'
7
-
8
- interface Props extends HTMLAttributes<'div'>, RatingSchema {}
9
-
10
- const { size = 'md', score, text, avatars, avatar, ...rest } = Astro.props
11
-
12
- const getIcon = (count: number) => {
13
- if (!score) return
14
- const difference = score - count
15
- if (difference >= -0.25) return 'star-filled'
16
- if (difference >= -0.75) return 'star-half-filled'
17
- return 'star'
18
- }
19
- ---
20
-
21
- <Element
22
- class:list="author"
23
- {size}
24
- {...rest}
25
- >
26
- <Avatar {...avatar} />
27
- {avatars?.map((avatar) => <Avatar {...avatar} />)}
28
- <Element class:list="rating-content">
29
- <Element
30
- class:list="rating-stars"
31
- {...rest}
32
- >
33
- {
34
- score &&
35
- [1, 2, 3, 4, 5].map((count) => (
36
- <Icon
37
- name={getIcon(count)}
38
- {size}
39
- />
40
- ))
41
- }
42
- </Element>
43
- <Fragment set:html={text} />
44
- <slot />
45
- </Element>
46
- </Element>
47
-
48
- <style is:global>
49
- @layer fulldev {
50
- .rating {
51
- @apply flex items-center gap-3;
52
-
53
- .avatar + .avatar {
54
- @apply -ml-3;
55
- }
56
-
57
- .rating-content {
58
- @apply flex flex-col gap-1 text-muted-foreground;
59
- }
60
-
61
- .rating-stars {
62
- @apply flex gap-1 text-primary;
63
- }
64
-
65
- &.size-sm {
66
- @apply gap-2;
67
-
68
- .rating-content {
69
- @apply text-xs leading-none;
70
- }
71
- }
72
-
73
- &.size-md {
74
- @apply gap-2.5;
75
-
76
- .rating-content {
77
- @apply text-sm leading-none;
78
- }
79
- }
80
-
81
- &.size-lg {
82
- @apply gap-3;
83
-
84
- .rating-content {
85
- @apply text-base leading-none;
86
- }
87
- }
88
- }
89
- }
90
- </style> -->
@@ -1,129 +0,0 @@
1
- <!-- ---
2
- import type { ComponentProps,HTMLAttributes } from 'astro/types'
3
- import Buttons from 'fulldev-ui/components/Buttons.astro'
4
- import Cart from 'fulldev-ui/components/Cart.astro'
5
- import Drawer from 'fulldev-ui/components/Drawer.astro'
6
- import Element from 'fulldev-ui/components/Element.astro'
7
- import Links from 'fulldev-ui/components/Links.astro'
8
- import Logo from 'fulldev-ui/components/Logo.astro'
9
- import Menu from 'fulldev-ui/components/Menu.astro'
10
- import Socials from 'fulldev-ui/components/Socials.astro'
11
- import Themer from 'fulldev-ui/components/Themer.astro'
12
- import type { GlobalProps } from 'fulldev-ui/types/global-props'
13
- import Search from './Search.astro'
14
-
15
- interface Props extends GlobalProps, HTMLAttributes<'header'> {
16
- logo?: ComponentProps<typeof Logo>
17
- company?: ComponentProps<typeof Logo>['company']
18
- buttons?: ComponentProps<typeof Buttons>['buttons']
19
- links?: ComponentProps<typeof Links>['links']
20
- menu?: ComponentProps<typeof Menu>['groups']
21
- panel?: boolean | undefined
22
- search?: boolean | undefined
23
- open?: boolean | undefined
24
- cart?: string | undefined
25
- socials?: ComponentProps<typeof Socials>['socials']
26
- themer?: boolean | undefined
27
- size?: 'sm' | 'md' | 'lg' | undefined
28
- }
29
-
30
- const {
31
- size = 'sm',
32
- open,
33
- logo,
34
- company,
35
- buttons,
36
- links,
37
- search,
38
- panel,
39
- socials,
40
- menu,
41
- cart,
42
- themer,
43
- ...rest
44
- } = Astro.props
45
- ---
46
-
47
- <Element
48
- class:list="header"
49
- as="header"
50
- {size}
51
- {open}
52
- {...rest}
53
- >
54
- <Element class:list="header-container">
55
- <Logo
56
- {company}
57
- {size}
58
- {...typeof logo === 'string' ? { src: logo } : logo}
59
- />
60
- <Links
61
- class:list="header-links"
62
- {size}
63
- {links}
64
- />
65
- <Socials
66
- {size}
67
- variant="ghost"
68
- {socials}
69
- />
70
- <Buttons
71
- class:list="header-buttons"
72
- {size}
73
- {buttons}
74
- >
75
- <Search size="sm" />
76
- <Themer
77
- if={themer}
78
- {size}
79
- />
80
- <Cart
81
- if={cart}
82
- variant="secondary"
83
- heading={cart}
84
- {size}
85
- />
86
- <Drawer
87
- class:list={['header-button']}
88
- icon="menu-2"
89
- id="menu"
90
- variant="secondary"
91
- {logo}
92
- {company}
93
- {buttons}
94
- {links}
95
- {menu}
96
- {size}
97
- />
98
- </Buttons>
99
- </Element>
100
- </Element>
101
-
102
- <style is:global>
103
- @layer fulldev {
104
- .header {
105
- @apply sticky left-0 top-0 z-20 flex h-14 items-center overflow-hidden border-b bg-background;
106
-
107
- .header-container {
108
- @apply container flex w-full items-center justify-between gap-6;
109
- }
110
-
111
- &,
112
- & ~ * {
113
- --header-height: 3.5rem;
114
- }
115
-
116
- .header-links {
117
- @apply mr-auto max-lg:hidden;
118
- }
119
-
120
- .header-socials {
121
- @apply ml-auto max-lg:hidden;
122
- }
123
-
124
- .menu-button {
125
- @apply lg:hidden;
126
- }
127
- }
128
- }
129
- </style> -->
@@ -1,172 +0,0 @@
1
- ---
2
- import type { ComponentProps, HTMLAttributes, HTMLTag } from 'astro/types'
3
- import type { CollectionEntry } from 'astro:content'
4
- import Button from 'fulldev-ui/components/Button.astro'
5
- import Element from 'fulldev-ui/components/Element.astro'
6
- import Heading from 'fulldev-ui/components/Heading.astro'
7
- import Image from 'fulldev-ui/components/Image.astro'
8
- import {
9
- default as Lead,
10
- default as Paragraph,
11
- } from 'fulldev-ui/components/Paragraph.astro'
12
- import Tagline from 'fulldev-ui/components/Tagline.astro'
13
- import Toc from 'fulldev-ui/components/Toc.astro'
14
- import { crush } from 'radash'
15
- import type Sidebar from './Sidebar.astro'
16
-
17
- interface Props extends HTMLAttributes<'div'> {
18
- as?: HTMLTag | undefined
19
- render?: any
20
- sidebar?: ComponentProps<typeof Sidebar> | undefined
21
- slug?: CollectionEntry<'pages'>['slug'] | undefined
22
- toc?: boolean | ComponentProps<typeof Toc>['heading'] | undefined
23
- tagline?: ComponentProps<typeof Tagline>['text'] | undefined
24
- heading?: ComponentProps<typeof Heading>['text'] | undefined
25
- image?: ComponentProps<typeof Image> | undefined
26
- lead?: ComponentProps<typeof Lead>['text'] | undefined
27
- }
28
-
29
- const {
30
- toc = false,
31
- slug,
32
- sidebar,
33
- render,
34
- tagline,
35
- heading,
36
- lead,
37
- image,
38
- ...rest
39
- } = Astro.props
40
-
41
- const Content = render && (await render())?.Content
42
-
43
- const flatMenu = crush(sidebar?.menu ?? {})
44
- const slugs = Object.entries(flatMenu)
45
- .map(([key, value]) => (key.endsWith('.slug') ? value : null))
46
- .filter(Boolean)
47
- const slugIndex = slugs.findIndex((val) => val === slug)
48
-
49
- const prevSlug = slugs[slugIndex - 1]
50
- const nextSlug = slugs[slugIndex + 1]
51
- ---
52
-
53
- <Element
54
- class:list="prose"
55
- {...rest}
56
- >
57
- <Element class:list="prose-container">
58
- <Element class:list="prose-content">
59
- <Tagline text={tagline} />
60
- <Heading
61
- as="h1"
62
- level={2}
63
- text={heading}
64
- />
65
- <Paragraph text={lead} />
66
- <Image {...image} />
67
- {Content && <Content />}
68
- <slot />
69
- <Element class:list="prose-footer">
70
- <Button
71
- class:list="prose-prev"
72
- icon={prevSlug && 'arrow-left'}
73
- slug={prevSlug}
74
- variant="secondary"
75
- />
76
- <Button
77
- class:list="prose-next"
78
- icon={nextSlug && 'arrow-right'}
79
- slug={nextSlug}
80
- variant="secondary"
81
- reverse
82
- />
83
- </Element>
84
- </Element>
85
- <Toc
86
- if={toc}
87
- heading={typeof toc === 'string' ? toc : undefined}
88
- {render}
89
- />
90
- </Element>
91
- </Element>
92
-
93
- <style is:global>
94
- @layer fulldev {
95
- .prose {
96
- @apply relative items-start py-28 first:pt-14;
97
-
98
- .prose-container {
99
- @apply container flex h-full w-full flex-grow items-start justify-evenly gap-14 gap-x-gutter;
100
- }
101
-
102
- .prose-content {
103
- @apply w-full max-w-screen-md;
104
-
105
- > * {
106
- @apply mt-6 first:mt-0;
107
- }
108
-
109
- p {
110
- @apply mt-4 first:mt-0;
111
- }
112
-
113
- code:not(.astro-code code) {
114
- @apply rounded bg-muted px-1.5 py-0.5 font-mono text-sm font-medium;
115
- }
116
-
117
- h1,
118
- h2,
119
- h3,
120
- h4,
121
- h5,
122
- h6 {
123
- @apply mt-8 scroll-m-20 font-semibold first:mt-0;
124
-
125
- code {
126
- font-size: inherit !important;
127
- }
128
- }
129
-
130
- > h1 {
131
- @apply text-4xl font-extrabold;
132
- }
133
-
134
- > h2 {
135
- @apply text-2xl;
136
- }
137
-
138
- > h3 {
139
- @apply text-xl;
140
- }
141
-
142
- > h4 {
143
- @apply text-lg;
144
- }
145
-
146
- > h5 {
147
- @apply text-base;
148
- }
149
-
150
- > h6 {
151
- @apply text-sm;
152
- }
153
-
154
- > aside {
155
- @apply mt-6 rounded-md border border-destructive p-4 text-destructive first:mt-0;
156
- }
157
- }
158
-
159
- .prose-footer {
160
- @apply mt-14 flex items-center;
161
-
162
- .prose-next {
163
- @apply ml-auto;
164
- }
165
- }
166
-
167
- .toc {
168
- @apply order-last;
169
- }
170
- }
171
- }
172
- </style>