fulldev-ui 0.4.33 → 0.5.0-beta-16

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 (315) hide show
  1. package/.env.example +3 -0
  2. package/CONTRIBUTING.md +10 -4
  3. package/astro.config.ts +11 -11
  4. package/package.json +31 -17
  5. package/pnpm-lock.yaml +1353 -438
  6. package/public/favicon/android-chrome-192x192.png +0 -0
  7. package/public/favicon/android-chrome-512x512.png +0 -0
  8. package/public/favicon/apple-touch-icon.png +0 -0
  9. package/public/favicon/browserconfig.xml +7 -7
  10. package/public/favicon/favicon-16x16-dark.png +0 -0
  11. package/public/favicon/favicon-16x16.png +0 -0
  12. package/public/favicon/favicon-32x32-dark.png +0 -0
  13. package/public/favicon/favicon-32x32.png +0 -0
  14. package/public/favicon/favicon-48x48-dark.png +0 -0
  15. package/public/favicon/favicon-48x48.png +0 -0
  16. package/public/favicon/favicon-dark.ico +0 -0
  17. package/public/favicon/favicon.ico +0 -0
  18. package/public/favicon/favicon.svg +16 -0
  19. package/public/favicon/manifest.webmanifest +26 -0
  20. package/public/favicon/mstile-150x150.png +0 -0
  21. package/public/favicon/safari-pinned-tab.svg +14 -15
  22. package/public/favicon/yandex-browser-50x50.png +0 -0
  23. package/public/favicon/yandex-browser-manifest.json +9 -0
  24. package/src/blocks/Article.astro +40 -0
  25. package/src/blocks/Banner.astro +48 -0
  26. package/src/blocks/Colleagues.astro +2 -1
  27. package/src/blocks/Contact.astro +61 -99
  28. package/src/blocks/Cta.astro +2 -1
  29. package/src/blocks/Excerpt.astro +14 -0
  30. package/src/blocks/Hero.astro +1 -2
  31. package/src/blocks/Intro.astro +4 -1
  32. package/src/blocks/Jobs.astro +1 -1
  33. package/src/blocks/Prices.astro +1 -1
  34. package/src/blocks/Product.astro +75 -27
  35. package/src/blocks/Reviews.astro +1 -1
  36. package/src/components/Avatar.astro +3 -20
  37. package/src/components/Badge.astro +17 -54
  38. package/src/components/Badges.astro +40 -0
  39. package/src/components/Button.astro +65 -46
  40. package/src/components/Buttons.astro +49 -0
  41. package/src/components/Card.astro +100 -178
  42. package/src/components/Cards.astro +135 -0
  43. package/src/components/Cart.astro +38 -0
  44. package/src/components/CartForm.astro +122 -0
  45. package/src/components/CartList.astro +134 -0
  46. package/src/components/CartSummary.astro +148 -0
  47. package/src/components/Channel.astro +70 -0
  48. package/src/components/Channels.astro +37 -0
  49. package/src/components/Checkbox.astro +12 -16
  50. package/src/components/Dialog.astro +10 -12
  51. package/src/components/Drawer.astro +131 -63
  52. package/src/components/Element.astro +58 -0
  53. package/src/components/Footer.astro +142 -93
  54. package/src/components/Form.astro +49 -0
  55. package/src/components/Head.astro +11 -45
  56. package/src/components/Header.astro +91 -163
  57. package/src/components/Heading.astro +18 -26
  58. package/src/components/Icon.astro +9 -9
  59. package/src/components/Image.astro +42 -152
  60. package/src/components/Input.astro +16 -28
  61. package/src/components/Label.astro +14 -17
  62. package/src/components/Link.astro +22 -44
  63. package/src/components/List.astro +12 -10
  64. package/src/components/LocaleSwitcher.astro +25 -0
  65. package/src/components/Menu.astro +57 -0
  66. package/src/components/Price.astro +34 -0
  67. package/src/components/Rating.astro +29 -25
  68. package/src/components/Search.astro +4 -7
  69. package/src/components/Section.astro +196 -234
  70. package/src/components/Select.astro +16 -34
  71. package/src/components/Sidebar.astro +85 -58
  72. package/src/components/Social.astro +36 -0
  73. package/src/components/Socials.astro +37 -0
  74. package/src/components/Switch.astro +14 -22
  75. package/src/components/Table.astro +23 -36
  76. package/src/components/Tagline.astro +11 -16
  77. package/src/components/Text.astro +17 -19
  78. package/src/components/Textarea.astro +8 -22
  79. package/src/components/ThemeSelect.astro +41 -0
  80. package/src/components/Toc.astro +59 -56
  81. package/src/components/Writeup.astro +90 -0
  82. package/src/components/docs/PropsTable.astro +229 -56
  83. package/src/components/experimental/Form.astro +36 -17
  84. package/src/components/experimental/Gallery.astro +50 -126
  85. package/src/components/experimental/Logo.astro +26 -9
  86. package/src/components/experimental/Prose.astro +41 -5
  87. package/src/components/experimental/Video.astro +1 -1
  88. package/src/components/experimental/Window.astro +3 -4
  89. package/src/components/sections.astro +28 -0
  90. package/src/content/config.ts +10 -7
  91. package/src/content/pages/base/_dialog.mdx +1 -2
  92. package/src/content/pages/base/_drawer.mdx +1 -2
  93. package/src/content/pages/base/_localeswitcher.mdx +17 -0
  94. package/src/content/pages/base/_switch.mdx +1 -2
  95. package/src/content/pages/base/badge.mdx +1 -12
  96. package/src/content/pages/base/button.mdx +1 -12
  97. package/src/content/pages/base/card.mdx +2 -29
  98. package/src/content/pages/base/checkbox.mdx +1 -2
  99. package/src/content/pages/base/icon.mdx +1 -2
  100. package/src/content/pages/base/image.mdx +42 -0
  101. package/src/content/pages/base/input.mdx +1 -12
  102. package/src/content/pages/base/rating.mdx +3 -14
  103. package/src/content/pages/base/section.mdx +2 -3
  104. package/src/content/pages/base/select.mdx +1 -20
  105. package/src/content/pages/base/table.mdx +1 -28
  106. package/src/content/pages/base/textarea.mdx +1 -16
  107. package/src/content/pages/base/theme-select.mdx +15 -0
  108. package/src/content/pages/blocks/_categories.mdx +3 -5
  109. package/src/content/pages/blocks/{footer.mdx → _footer.mdx} +2 -4
  110. package/src/content/pages/blocks/{header.mdx → _header.mdx} +2 -7
  111. package/src/content/pages/blocks/_jobs.mdx +1 -2
  112. package/src/content/pages/blocks/{prices.mdx → _prices.mdx} +5 -7
  113. package/src/content/pages/blocks/_product.mdx +74 -4
  114. package/src/content/pages/blocks/_products.mdx +1 -2
  115. package/src/content/pages/blocks/_stats.mdx +1 -1
  116. package/src/content/pages/blocks/{_banner.mdx → banner.mdx} +2 -2
  117. package/src/content/pages/blocks/colleagues.mdx +6 -8
  118. package/src/content/pages/blocks/contact.mdx +69 -0
  119. package/src/content/pages/blocks/content.mdx +1 -19
  120. package/src/content/pages/blocks/cta.mdx +2 -25
  121. package/src/content/pages/blocks/features.mdx +2 -3
  122. package/src/content/pages/blocks/hero.mdx +5 -3
  123. package/src/content/pages/blocks/intro.mdx +2 -5
  124. package/src/content/pages/blocks/posts.mdx +9 -2
  125. package/src/content/pages/blocks/reviews.mdx +23 -18
  126. package/src/content/pages/index.mdx +16 -20
  127. package/src/content/pages/layouts/_layout.mdx +14 -0
  128. package/src/content/pages/layouts/docslayout.mdx +14 -0
  129. package/src/content/pages/overview/components.mdx +75 -0
  130. package/src/content/pages/overview/content-collections.mdx +139 -0
  131. package/src/content/pages/overview/frameworks.mdx +4 -4
  132. package/src/content/pages/overview/installation.mdx +36 -3
  133. package/src/content/pages/overview/introduction.mdx +19 -9
  134. package/src/content/pages/overview/theming.mdx +53 -67
  135. package/src/content/pages/schemas/page.mdx +17 -0
  136. package/src/content/pages/schemas/preset.mdx +9 -0
  137. package/src/content/pages/showcase/anti-slip-profiles.md +5 -0
  138. package/src/content/pages/showcase/fulldev-ui.md +5 -0
  139. package/src/content/pages/showcase/lavis-detailing.md +5 -0
  140. package/src/content/pages/showcase/leren-trainingsacteren.md +5 -0
  141. package/src/content/pages/showcase/miele-witgoedcenter-amsterdam.md +5 -0
  142. package/src/content/{records/record.yml → pages/showcase/record.md} +2 -0
  143. package/src/content/pages/showcase/sloepverhuur-bolsward.md +5 -0
  144. package/src/content/pages/showcase/stark-vulcanising-products.md +5 -0
  145. package/src/content/pages/showcase/the-gym-haren.md +5 -0
  146. package/src/content/pages/showcase/van-dillen-antieke-bouwmaterialen.md +5 -0
  147. package/src/content/pages/showcase.mdx +11 -41
  148. package/src/content/pages/typography/_tagline.mdx +1 -2
  149. package/src/content/pages/typography/heading.mdx +1 -2
  150. package/src/content/pages/typography/label.mdx +1 -2
  151. package/src/content/pages/typography/link.mdx +1 -13
  152. package/src/content/pages/typography/list.mdx +1 -2
  153. package/src/content/pages/typography/text.mdx +1 -2
  154. package/src/content/{settings → presets}/base.yml +62 -45
  155. package/src/content/presets/blocks.yml +1 -0
  156. package/src/content/presets/docs.yml +6 -0
  157. package/src/css/color.css +0 -82
  158. package/src/css/custom.css +9 -56
  159. package/src/css/size.css +10 -0
  160. package/src/css/space.css +0 -8
  161. package/src/css/styles.css +0 -15
  162. package/src/env.d.ts +1 -1
  163. package/src/images/avatar-1.yml +1 -0
  164. package/src/images/favicon.svg +16 -0
  165. package/src/integration/generate-colors.ts +2 -0
  166. package/src/integration/index.ts +95 -7
  167. package/src/layouts/BlockLayout.astro +10 -15
  168. package/src/layouts/ContactLayout.astro +21 -0
  169. package/src/layouts/DocsLayout.astro +73 -0
  170. package/src/layouts/Layout.astro +114 -133
  171. package/src/layouts/OverviewLayout.astro +28 -31
  172. package/src/layouts/PostLayout.astro +12 -23
  173. package/src/layouts/ProductLayout.astro +10 -20
  174. package/src/loaders/imageLoader.ts +26 -0
  175. package/src/pages/[...page].astro +25 -21
  176. package/src/schemas/components/avatar.ts +3 -0
  177. package/src/schemas/components/avatars.ts +4 -0
  178. package/src/schemas/components/badge.ts +13 -0
  179. package/src/schemas/components/button.ts +16 -0
  180. package/src/schemas/components/buttons.ts +4 -0
  181. package/src/schemas/components/card.ts +25 -0
  182. package/src/schemas/components/cards.ts +4 -0
  183. package/src/schemas/components/channel.ts +13 -0
  184. package/src/schemas/components/channels.ts +4 -0
  185. package/src/schemas/components/footer.ts +25 -0
  186. package/src/schemas/components/header.ts +11 -0
  187. package/src/schemas/components/heading.ts +3 -0
  188. package/src/schemas/components/icon.ts +3 -0
  189. package/src/schemas/components/image.ts +25 -0
  190. package/src/schemas/components/images.ts +4 -0
  191. package/src/schemas/components/list.ts +3 -0
  192. package/src/schemas/components/logo.ts +3 -0
  193. package/src/schemas/components/menu.ts +13 -0
  194. package/src/schemas/components/price.ts +3 -0
  195. package/src/schemas/components/rating.ts +15 -0
  196. package/src/schemas/components/section.ts +15 -0
  197. package/src/schemas/components/sections.ts +3 -0
  198. package/src/schemas/components/sidebar.ts +15 -0
  199. package/src/schemas/components/social.ts +3 -0
  200. package/src/schemas/components/socials.ts +4 -0
  201. package/src/schemas/components/tagline.ts +3 -0
  202. package/src/schemas/components/text.ts +3 -0
  203. package/src/schemas/components/toc.ts +3 -0
  204. package/src/schemas/components/writeup.ts +20 -0
  205. package/src/schemas/imageSchema.ts +12 -0
  206. package/src/schemas/pageSchema.ts +91 -0
  207. package/src/schemas/presetSchema.ts +3 -0
  208. package/src/schemas/utils/component.ts +17 -0
  209. package/src/schemas/utils/navigation.ts +8 -0
  210. package/src/schemas/utils/parents.ts +3 -0
  211. package/src/schemas/{utils.ts → utils/pathSchema.ts} +2 -11
  212. package/src/stores/cart.ts +23 -0
  213. package/src/types/global-props.ts +16 -0
  214. package/src/types/virtual-modules.d.ts +5 -0
  215. package/src/utils/_archive/Childmorphic.ts +1 -1
  216. package/src/utils/_archive/mergeEntries.ts +28 -0
  217. package/src/utils/cart.ts +32 -0
  218. package/src/utils/getDeepReferenceChildren.ts +14 -0
  219. package/src/utils/getFolderChildren.ts +18 -0
  220. package/src/utils/getReferenceChildren.ts +14 -0
  221. package/src/utils/getSiblingPages.ts +14 -0
  222. package/tsconfig.json +2 -5
  223. package/public/favicon/site.webmanifest +0 -19
  224. package/public/images/avatars/1.jpeg +0 -0
  225. package/public/images/avatars/2.jpeg +0 -0
  226. package/public/images/avatars/3.jpeg +0 -0
  227. package/public/images/avatars/300/1.jpeg +0 -0
  228. package/public/images/avatars/300/2.jpeg +0 -0
  229. package/public/images/avatars/300/3.jpeg +0 -0
  230. package/public/images/avatars/300/4.jpeg +0 -0
  231. package/public/images/avatars/4.jpeg +0 -0
  232. package/public/images/avatars/5.jpeg +0 -0
  233. package/public/images/avatars/6.jpeg +0 -0
  234. package/public/images/avatars/7.jpeg +0 -0
  235. package/public/images/avatars/8.jpeg +0 -0
  236. package/public/images/blocks/colleagues.png +0 -0
  237. package/public/images/blocks/content.png +0 -0
  238. package/public/images/blocks/cta.png +0 -0
  239. package/public/images/blocks/features.png +0 -0
  240. package/public/images/blocks/footer.png +0 -0
  241. package/public/images/blocks/header.png +0 -0
  242. package/public/images/blocks/hero.png +0 -0
  243. package/public/images/blocks/intro.png +0 -0
  244. package/public/images/blocks/posts.png +0 -0
  245. package/public/images/blocks/prices.png +0 -0
  246. package/public/images/blocks/reviews.png +0 -0
  247. package/public/images/logo-placeholder.svg +0 -1
  248. package/src/components/Bento.astro +0 -43
  249. package/src/components/Block.astro +0 -157
  250. package/src/components/Blocks.astro +0 -5
  251. package/src/components/Box.astro +0 -63
  252. package/src/components/Carousel.astro +0 -54
  253. package/src/components/Column.astro +0 -73
  254. package/src/components/Grid.astro +0 -32
  255. package/src/components/Masonry.astro +0 -42
  256. package/src/components/Root.astro +0 -94
  257. package/src/components/Row.astro +0 -49
  258. package/src/components/Split.astro +0 -59
  259. package/src/components/Spread.astro +0 -46
  260. package/src/components/Stack.astro +0 -36
  261. package/src/components/Toggle.astro +0 -46
  262. package/src/components/Wrap.astro +0 -42
  263. package/src/components/docs/NavigationButtons.astro +0 -59
  264. package/src/components/experimental/Channel.astro +0 -74
  265. package/src/components/experimental/GalleryVertical.astro +0 -161
  266. package/src/components/experimental/Price.astro +0 -40
  267. package/src/content/pages/_changelog.mdx +0 -10
  268. package/src/content/pages/_segment/footer.mdx +0 -244
  269. package/src/content/pages/_segment/header.mdx +0 -210
  270. package/src/content/pages/base/_image.mdx +0 -14
  271. package/src/content/pages/base/toggle.mdx +0 -32
  272. package/src/content/pages/blocks.mdx +0 -10
  273. package/src/content/pages/overview/integration.mdx +0 -37
  274. package/src/content/pages/structure/_row.mdx +0 -23
  275. package/src/content/pages/structure/_wrap.mdx +0 -25
  276. package/src/content/pages/structure/carousel.mdx +0 -31
  277. package/src/content/pages/structure/column.mdx +0 -21
  278. package/src/content/pages/structure/grid.mdx +0 -26
  279. package/src/content/pages/structure/masonry.mdx +0 -32
  280. package/src/content/pages/structure/split.mdx +0 -21
  281. package/src/content/pages/structure/spread.mdx +0 -21
  282. package/src/content/pages/structure/stack.mdx +0 -22
  283. package/src/content/settings/components.yml +0 -29
  284. package/src/layouts/BlockOverviewLayout.astro +0 -39
  285. package/src/layouts/ComponentLayout.astro +0 -23
  286. package/src/layouts/JobsLayout.astro +0 -40
  287. package/src/layouts/PageLayout.astro +0 -32
  288. package/src/schemas/base.ts +0 -90
  289. package/src/schemas/block.ts +0 -15
  290. package/src/schemas/card.ts +0 -3
  291. package/src/schemas/page.ts +0 -43
  292. package/src/utils/mergeEntries.ts +0 -28
  293. /package/{public/showcase → src/images}/anti-slip-profiles.webp +0 -0
  294. /package/{public/images/avatars/500/1.jpeg → src/images/avatar-1.jpeg} +0 -0
  295. /package/{public/images/avatars/500/2.jpeg → src/images/avatar-2.jpeg} +0 -0
  296. /package/{public/images/avatars/500/3.jpeg → src/images/avatar-3.jpeg} +0 -0
  297. /package/{public/images/avatars/500/4.jpeg → src/images/avatar-4.jpeg} +0 -0
  298. /package/{public → src}/images/avatar-placeholder.jpg +0 -0
  299. /package/{public → src}/images/block-code.png +0 -0
  300. /package/{public → src}/images/component-code.png +0 -0
  301. /package/{public/showcase → src/images}/fulldev-ui.webp +0 -0
  302. /package/{public/showcase → src/images}/lavis-detailing.webp +0 -0
  303. /package/{public/showcase → src/images}/leren-trainingsacteren.webp +0 -0
  304. /package/{public/showcase → src/images}/miele-witgoedcenter-amsterdam.webp +0 -0
  305. /package/{public → src}/images/og-image.png +0 -0
  306. /package/{public → src}/images/placeholder-center.webp +0 -0
  307. /package/{public → src}/images/placeholder-landscape-dark.png +0 -0
  308. /package/{public → src}/images/placeholder-landscape.webp +0 -0
  309. /package/{public → src}/images/placeholder-portrait.webp +0 -0
  310. /package/{public → src}/images/placeholder-right.webp +0 -0
  311. /package/{public → src}/images/placeholder.webp +0 -0
  312. /package/{public/showcase → src/images}/sloepverhuur-bolsward.webp +0 -0
  313. /package/{public/showcase → src/images}/stark-vulcanising-products.webp +0 -0
  314. /package/{public/showcase → src/images}/the-gym-haren.webp +0 -0
  315. /package/{public/showcase → src/images}/van-dillen-antieke-bouwmaterialen.webp +0 -0
@@ -1,59 +1,7 @@
1
- /* TODO: temporary decreased due to z-index issue over header */
2
- .hero:not(.window .hero)::before {
3
- position: absolute;
4
- top: 0;
5
- left: 0;
6
- z-index: -1;
7
- background: radial-gradient(
8
- ellipse closest-side,
9
- rgba(255, 85, 0, 0.1),
10
- #f500 70%
11
- );
12
- width: 100%;
13
- height: 100%;
14
- content: '';
15
- }
16
- /* .hero:not(.window .hero)::before {
17
- position: absolute;
18
- top: -80%;
19
- left: 0;
20
- z-index: -1;
21
- background: radial-gradient(
22
- ellipse closest-side,
23
- rgba(255, 85, 0, 0.1),
24
- #f500 90%
25
- );
26
- width: 100%;
27
- height: 170%;
28
- content: '';
29
- } */
30
-
31
- .header:not(.window .header) {
32
- backdrop-filter: blur(10px);
33
- border-color: var(--base-a6) !important;
34
- background-color: rgba(17, 17, 16, 0.2) !important;
35
- }
1
+ @import url(https://fonts.bunny.net/css?family=inter:100,200,300,400,500,600,700,800,900);
36
2
 
37
- .cta:not(.window .cta) {
38
- backdrop-filter: blur(10px);
39
- border-color: var(--base-a6) !important;
40
- background-color: rgba(17, 17, 16, 0.2) !important;
41
- overflow: visible;
42
-
43
- &::before {
44
- position: absolute;
45
- top: -30%;
46
- left: 0;
47
- z-index: -1;
48
- background: radial-gradient(
49
- ellipse closest-side,
50
- rgba(255, 85, 0, 0.06),
51
- #f500 90%
52
- );
53
- width: 100%;
54
- height: 160%;
55
- content: '';
56
- }
3
+ * {
4
+ font-family: 'Inter', sans-serif;
57
5
  }
58
6
 
59
7
  mark {
@@ -64,6 +12,11 @@ mark {
64
12
  .astro-code {
65
13
  border: 1px solid var(--base-6);
66
14
  border-radius: var(--radius-2);
67
- background-color: var(--base-2) !important;
15
+ background-color: #191919 !important;
68
16
  padding: var(--space-5);
69
17
  }
18
+
19
+ .header,
20
+ .panel {
21
+ background-color: var(--color-background);
22
+ }
package/src/css/size.css CHANGED
@@ -128,3 +128,13 @@
128
128
  --text-7: var(--text-lg-7);
129
129
  --text-8: var(--text-lg-8);
130
130
  }
131
+
132
+ :root {
133
+ --spacer: var(--space-7);
134
+ --screen: 100vw;
135
+ --gutter: max(24px, calc((100% - var(--screen)) / 2));
136
+ }
137
+
138
+ * {
139
+ --gutter: max(24px, calc((100% - var(--screen)) / 2));
140
+ }
package/src/css/space.css CHANGED
@@ -75,11 +75,3 @@
75
75
  .link + .heading {
76
76
  --space-auto: var(--space-5);
77
77
  }
78
-
79
- /* // .button:not(.variant-link) + .button:not(.variant-link) {
80
- // margin-top: var(--space-3);
81
- // }
82
-
83
- // .variant-link + .variant-link{
84
- // margin-top: var(--space-2);
85
- // } */
@@ -1,15 +0,0 @@
1
- @import url(https://fonts.bunny.net/css?family=inter:100,200,300,400,500,600,700,800,900);
2
-
3
- :root,
4
- .root {
5
- --transition: cubic-bezier(0.4, 0, 0.2, 1) 0.15s;
6
-
7
- --font-family: 'Inter', sans-serif;
8
- --font-weight: 400;
9
-
10
- --text-heading-font-family: var(--font-family);
11
- --text-heading-font-weight: 700;
12
-
13
- --button-font-family: var(--font-family);
14
- --button-font-weight: 500;
15
- }
package/src/env.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /// <reference types="astro/client" />
2
- /// <reference path="../.astro/types.d.ts" />
2
+ /// <reference path="../.astro/types.d.ts" />
@@ -0,0 +1 @@
1
+ alt: worlddd
@@ -0,0 +1,16 @@
1
+ <svg width="758" height="758" viewBox="0 0 758 758" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_45_5)">
3
+ <rect width="758" height="758" fill="#FF5500"/>
4
+ <rect x="-133" y="-133" width="1024" height="1024" fill="url(#paint0_radial_45_5)"/>
5
+ <path d="M269.363 565C264.945 565 261.363 561.419 261.363 557V200.637C261.363 196.218 264.945 192.637 269.363 192.637H499.909C504.327 192.637 507.909 196.218 507.909 200.637V249.546C507.909 253.964 504.327 257.546 499.909 257.546H348.091C343.672 257.546 340.091 261.128 340.091 265.546V338.273C340.091 342.691 343.672 346.273 348.091 346.273H483.545C487.963 346.273 491.545 349.855 491.545 354.273V403.182C491.545 407.6 487.963 411.182 483.545 411.182H348.091C343.672 411.182 340.091 414.764 340.091 419.182V557C340.091 561.419 336.509 565 332.091 565H269.363Z" fill="#EEEEEC"/>
6
+ </g>
7
+ <defs>
8
+ <radialGradient id="paint0_radial_45_5" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(379 379) rotate(45) scale(724.077)">
9
+ <stop stop-color="#111110" stop-opacity="0.2"/>
10
+ <stop offset="0.9" stop-color="#111110" stop-opacity="0"/>
11
+ </radialGradient>
12
+ <clipPath id="clip0_45_5">
13
+ <rect width="758" height="758" fill="white"/>
14
+ </clipPath>
15
+ </defs>
16
+ </svg>
@@ -1,3 +1,5 @@
1
+ // Below code is taken from Radix UI, therefore it does not satisfy Astro strictest tsconfig.
2
+ // @ts-nocheck
1
3
  import * as RadixColors from '@radix-ui/colors'
2
4
  import BezierEasing from 'bezier-easing'
3
5
  import Color from 'colorjs.io'
@@ -1,5 +1,13 @@
1
+ import mdx from '@astrojs/mdx'
2
+ import sitemap from '@astrojs/sitemap'
3
+ import viteYaml from '@rollup/plugin-yaml'
1
4
  import type { AstroIntegration } from 'astro'
5
+ import favicons from 'astro-favicons'
6
+ import robotsTxt from 'astro-robots-txt'
7
+ import { envField } from 'astro/config'
8
+ import type { CollectionEntry } from 'astro:content'
2
9
  import merge from 'deepmerge'
10
+ import { loadEnv } from 'vite'
3
11
  import virtual from 'vite-plugin-virtual'
4
12
  import { generateRadixColors } from './generate-colors'
5
13
 
@@ -10,12 +18,16 @@ type Color = {
10
18
  }
11
19
 
12
20
  interface Config {
21
+ favicon?: string
22
+ company?: string
13
23
  css?: string
24
+ basePreset?: CollectionEntry<'presets'>['id']
14
25
  injectRoutes?: boolean
26
+ // generateImageEntries?: boolean
15
27
  colors: {
16
28
  theme: 'light' | 'dark'
17
- light?: Color
18
- dark?: Color
29
+ light?: Color | undefined
30
+ dark?: Color | undefined
19
31
  }
20
32
  }
21
33
 
@@ -29,10 +41,11 @@ const defaultConfig: Config = {
29
41
  },
30
42
  },
31
43
  }
44
+
32
45
  export default function fulldevIntegration(
33
- userConfig?: Partial<Config>
46
+ userConfig?: Partial<Config> | undefined
34
47
  ): AstroIntegration {
35
- const config = merge(defaultConfig ?? {}, userConfig ?? {})
48
+ const config = merge(defaultConfig, userConfig ?? {})
36
49
 
37
50
  return {
38
51
  name: '/integration',
@@ -44,6 +57,47 @@ export default function fulldevIntegration(
44
57
  injectRoute,
45
58
  }) => {
46
59
  // ----------------------
60
+ // Update config
61
+ // ----------------------
62
+ config.favicon &&
63
+ config.company &&
64
+ updateConfig({
65
+ experimental: {
66
+ contentLayer: true,
67
+ env: {
68
+ schema: {
69
+ URL: envField.string({
70
+ context: 'client',
71
+ access: 'public',
72
+ }),
73
+ STRIPE_RESTRICTED_KEY: envField.string({
74
+ context: 'client',
75
+ access: 'public',
76
+ optional: true,
77
+ }),
78
+ STRIPE_SECRET_KEY: envField.string({
79
+ context: 'server',
80
+ access: 'secret',
81
+ optional: true,
82
+ }),
83
+ },
84
+ validateSecrets: true,
85
+ },
86
+ },
87
+ site: loadEnv(process.env.NODE_ENV as any, process.cwd(), '').URL,
88
+ integrations: [
89
+ sitemap(),
90
+ mdx(),
91
+ robotsTxt(),
92
+ favicons({
93
+ path: 'favicon',
94
+ masterPicture: config.favicon,
95
+ appName: config.company,
96
+ appShortName: config.company,
97
+ }),
98
+ ],
99
+ })
100
+ // ----------------------
47
101
  // Inject css
48
102
  // ----------------------
49
103
  config?.css && injectScript('page-ssr', `import "${config?.css}";`)
@@ -64,7 +118,7 @@ export default function fulldevIntegration(
64
118
  const scaleToString = (
65
119
  scale: any,
66
120
  palette: 'base' | 'brand',
67
- alpha?: boolean
121
+ alpha?: boolean | undefined
68
122
  ) =>
69
123
  scale
70
124
  .map(
@@ -123,11 +177,14 @@ export default function fulldevIntegration(
123
177
  updateConfig({
124
178
  vite: {
125
179
  plugins: [
180
+ viteYaml(),
126
181
  virtual({
127
182
  'virtual:astro/config': `export default ${JSON.stringify(astroConfig)}`,
128
- 'virtual:fulldev-ui/config': `export default ${JSON.stringify(config)}`,
183
+ 'virtual:fulldev-ui/config': `export default ${JSON.stringify({
184
+ ...config,
185
+ })}`,
129
186
  'virtual:colors.css': css,
130
- }),
187
+ }) as any,
131
188
  ],
132
189
  css: {
133
190
  preprocessorOptions: {
@@ -141,6 +198,37 @@ export default function fulldevIntegration(
141
198
 
142
199
  injectScript('page-ssr', `import "virtual:colors.css";`)
143
200
 
201
+ // ----------------------
202
+ // Generate image YAML files
203
+ // ----------------------
204
+ // if (config.generateImageEntries) {
205
+ // const srcDir = path.join(process.cwd(), 'src')
206
+ // const filesDir = path.join(srcDir, 'images')
207
+ // const entriesDir = path.join(srcDir, 'content', 'images')
208
+
209
+ // try {
210
+ // await fs.mkdir(filesDir, { recursive: true })
211
+ // await fs.mkdir(entriesDir, { recursive: true })
212
+
213
+ // const files = await fs.readdir(filesDir)
214
+ // files.forEach(async (file) => {
215
+ // const filename = path.parse(file).name
216
+ // const yamlPath = path.join(entriesDir, `${filename}.yml`)
217
+
218
+ // try {
219
+ // await fs.access(yamlPath)
220
+ // } catch {
221
+ // const yamlContent = yaml.dump({
222
+ // alt: '',
223
+ // })
224
+ // await fs.writeFile(yamlPath, yamlContent, 'utf8')
225
+ // }
226
+ // })
227
+ // } catch (error) {
228
+ // console.error('Error generating image YAML files:', error)
229
+ // }
230
+ // }
231
+
144
232
  // ----------------------
145
233
  // Inject routes
146
234
  // ----------------------
@@ -1,24 +1,19 @@
1
1
  ---
2
- import type { CollectionEntry } from 'astro:content'
2
+ import type { ComponentProps } from 'astro/types'
3
3
  import Intro from 'fulldev-ui/blocks/Intro.astro'
4
4
  import Layout from 'fulldev-ui/layouts/Layout.astro'
5
5
 
6
- type Props = CollectionEntry<'pages'>
6
+ type Props = ComponentProps<typeof Layout>
7
7
 
8
- const { data, render } = Astro.props
8
+ const { render, title, sections, ...rest } = Astro.props
9
9
  const { Content } = await render()
10
10
  ---
11
11
 
12
- <Layout {...Astro.props}>
13
- <Intro
14
- variant="ghost"
15
- size="md"
16
- style={{
17
- paddingBottom: '0px',
18
- borderColor: 'transparent',
19
- }}
20
- {...data}
21
- />
22
- <Content />
23
- <slot />
12
+ <Layout
13
+ class:list="block-layout"
14
+ {render}
15
+ {...rest}
16
+ >
17
+ <Intro heading={title} />
18
+ {Content && <Content />}
24
19
  </Layout>
@@ -0,0 +1,21 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Sections from 'fulldev-ui/components/sections.astro'
4
+ import Layout from 'fulldev-ui/layouts/Layout.astro'
5
+ import Contact from '../blocks/Contact.astro'
6
+
7
+ type Props = ComponentProps<typeof Layout> & {
8
+ contactProps: ComponentProps<typeof Contact>
9
+ }
10
+
11
+ const { render, sections, contactProps, ...rest } = Astro.props
12
+ ---
13
+
14
+ <Layout {...Astro.props}>
15
+ <Contact
16
+ level={1}
17
+ {...rest}
18
+ />
19
+ <Sections {sections} />
20
+ <slot />
21
+ </Layout>
@@ -0,0 +1,73 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Button from 'fulldev-ui/components/Button.astro'
4
+ import Element from 'fulldev-ui/components/Element.astro'
5
+ import Layout from 'fulldev-ui/layouts/Layout.astro'
6
+ import { crush } from 'radash'
7
+ import PostLayout from './PostLayout.astro'
8
+
9
+ type Props = ComponentProps<typeof Layout>
10
+
11
+ const { slug, navigation } = Astro.props
12
+
13
+ const flatButtons = crush((navigation as any)?.buttons ?? {})
14
+ const slugs = Object.entries(flatButtons)
15
+ .map(([key, value]) => (key.endsWith('.slug') ? value : null))
16
+ .filter(Boolean)
17
+ const slugIndex = slugs.findIndex((val) => val === slug)
18
+
19
+ const prevSlug = slugs[slugIndex - 1]
20
+ const nextSlug = slugs[slugIndex + 1]
21
+ ---
22
+
23
+ <PostLayout
24
+ class:list="docs-layout"
25
+ {...Astro.props}
26
+ >
27
+ <Element
28
+ class:list={['prev-next', { 'next-only': !prevSlug }]}
29
+ slot="prose"
30
+ >
31
+ <Button
32
+ if={prevSlug}
33
+ slug={prevSlug}
34
+ icon="arrow-left"
35
+ variant="secondary"
36
+ />
37
+ <Button
38
+ if={nextSlug}
39
+ slug={nextSlug}
40
+ icon="arrow-right"
41
+ variant="secondary"
42
+ reverse={true}
43
+ />
44
+ </Element>
45
+ </PostLayout>
46
+
47
+ <style lang="scss" is:global>
48
+ @layer fulldev {
49
+ .docs-layout {
50
+ .prose {
51
+ > a,
52
+ > p > a {
53
+ color: var(--brand-11);
54
+
55
+ &:hover {
56
+ color: var(--brand-12);
57
+ }
58
+ }
59
+
60
+ .prev-next {
61
+ display: flex;
62
+ justify-content: space-between;
63
+ align-items: center;
64
+ margin-top: var(--space-7);
65
+
66
+ &.next-only {
67
+ justify-content: flex-end;
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
73
+ </style>