fulldev-ui 0.3.36 → 0.4.0-beta.1

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 (287) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +57 -0
  2. package/.github/ISSUE_TEMPLATE/config.yml +5 -0
  3. package/.github/ISSUE_TEMPLATE/feature_request.yml +39 -0
  4. package/.github/pull_request_template.md +23 -0
  5. package/.github/workflows/github-releases-to-discord.yml +21 -0
  6. package/.prettierignore +15 -0
  7. package/.prettierrc.yaml +34 -0
  8. package/.vscode/extensions.json +4 -0
  9. package/.vscode/launch.json +11 -0
  10. package/.vscode/settings.json +23 -0
  11. package/CHANGELOG.md +100 -0
  12. package/CONTRIBUTING.md +102 -0
  13. package/LICENCE +21 -0
  14. package/README.md +9 -7
  15. package/astro.config.ts +44 -0
  16. package/package.json +42 -27
  17. package/pnpm-lock.yaml +5515 -0
  18. package/public/favicon/android-chrome-192x192.png +0 -0
  19. package/public/favicon/android-chrome-512x512.png +0 -0
  20. package/public/favicon/apple-touch-icon.png +0 -0
  21. package/public/favicon/browserconfig.xml +9 -0
  22. package/public/favicon/favicon-16x16.png +0 -0
  23. package/public/favicon/favicon-32x32.png +0 -0
  24. package/public/favicon/favicon.ico +0 -0
  25. package/public/favicon/mstile-150x150.png +0 -0
  26. package/public/favicon/safari-pinned-tab.svg +17 -0
  27. package/public/favicon/site.webmanifest +19 -0
  28. package/public/images/avatar-placeholder.jpg +0 -0
  29. package/public/images/avatars/1.jpeg +0 -0
  30. package/public/images/avatars/2.jpeg +0 -0
  31. package/public/images/avatars/3.jpeg +0 -0
  32. package/public/images/avatars/300/1.jpeg +0 -0
  33. package/public/images/avatars/300/2.jpeg +0 -0
  34. package/public/images/avatars/300/3.jpeg +0 -0
  35. package/public/images/avatars/300/4.jpeg +0 -0
  36. package/public/images/avatars/4.jpeg +0 -0
  37. package/public/images/avatars/5.jpeg +0 -0
  38. package/public/images/avatars/500/1.jpeg +0 -0
  39. package/public/images/avatars/500/2.jpeg +0 -0
  40. package/public/images/avatars/500/3.jpeg +0 -0
  41. package/public/images/avatars/500/4.jpeg +0 -0
  42. package/public/images/avatars/6.jpeg +0 -0
  43. package/public/images/avatars/7.jpeg +0 -0
  44. package/public/images/avatars/8.jpeg +0 -0
  45. package/public/images/block-code.png +0 -0
  46. package/public/images/blocks/colleagues.png +0 -0
  47. package/public/images/blocks/content.png +0 -0
  48. package/public/images/blocks/cta.png +0 -0
  49. package/public/images/blocks/features.png +0 -0
  50. package/public/images/blocks/footer.png +0 -0
  51. package/public/images/blocks/header.png +0 -0
  52. package/public/images/blocks/hero.png +0 -0
  53. package/public/images/blocks/intro.png +0 -0
  54. package/public/images/blocks/posts.png +0 -0
  55. package/public/images/blocks/prices.png +0 -0
  56. package/public/images/blocks/reviews.png +0 -0
  57. package/public/images/component-code.png +0 -0
  58. package/public/images/logo-placeholder.svg +1 -0
  59. package/public/images/placeholder-center.webp +0 -0
  60. package/public/images/placeholder-landscape-dark.png +0 -0
  61. package/public/images/placeholder-landscape.webp +0 -0
  62. package/public/images/placeholder-portrait.webp +0 -0
  63. package/public/images/placeholder-right.webp +0 -0
  64. package/public/images/placeholder.webp +0 -0
  65. package/siteicon.png +0 -0
  66. package/src/blocks/Categories.astro +12 -0
  67. package/src/blocks/Colleagues.astro +12 -0
  68. package/src/blocks/Contact.astro +152 -0
  69. package/src/blocks/Content.astro +12 -0
  70. package/src/blocks/Cta.astro +14 -0
  71. package/src/blocks/Features.astro +11 -0
  72. package/src/blocks/Footer.astro +7 -0
  73. package/src/blocks/Header.astro +7 -0
  74. package/src/blocks/Hero.astro +16 -0
  75. package/src/blocks/Intro.astro +19 -0
  76. package/src/blocks/Jobs.astro +12 -0
  77. package/src/blocks/Posts.astro +11 -0
  78. package/src/blocks/Prices.astro +22 -0
  79. package/src/blocks/Product.astro +64 -0
  80. package/src/blocks/Products.astro +11 -0
  81. package/src/blocks/Reviews.astro +13 -0
  82. package/src/components/{base/Avatar.astro → Avatar.astro} +7 -11
  83. package/src/components/{base/Badge.astro → Badge.astro} +36 -22
  84. package/src/components/{structure/Bento.astro → Bento.astro} +6 -9
  85. package/src/components/Block.astro +157 -0
  86. package/src/components/Blocks.astro +5 -0
  87. package/src/components/Box.astro +60 -0
  88. package/src/components/Button.astro +140 -0
  89. package/src/components/Card.astro +212 -0
  90. package/src/components/{structure/Carousel.astro → Carousel.astro} +13 -16
  91. package/src/components/Checkbox.astro +63 -0
  92. package/src/components/{structure/Column.astro → Column.astro} +14 -9
  93. package/src/components/Dialog.astro +65 -0
  94. package/src/components/Drawer.astro +99 -0
  95. package/src/components/Footer.astro +144 -0
  96. package/src/components/{structure/Grid.astro → Grid.astro} +7 -10
  97. package/src/components/Head.astro +85 -0
  98. package/src/components/Header.astro +204 -0
  99. package/src/components/Heading.astro +79 -0
  100. package/src/components/{base/Icon.astro → Icon.astro} +7 -9
  101. package/src/components/{base/Image.astro → Image.astro} +32 -30
  102. package/src/components/Input.astro +119 -0
  103. package/src/components/{typography/Label.astro → Label.astro} +12 -12
  104. package/src/components/{typography/Link.astro → Link.astro} +15 -13
  105. package/src/components/List.astro +41 -0
  106. package/src/components/{structure/Masonry.astro → Masonry.astro} +9 -11
  107. package/src/components/Rating.astro +82 -0
  108. package/src/components/{_Component.astro → Root.astro} +7 -11
  109. package/src/components/{structure/Row.astro → Row.astro} +6 -9
  110. package/src/components/Search.astro +62 -0
  111. package/src/components/Section.astro +274 -0
  112. package/src/components/Select.astro +144 -0
  113. package/src/components/Sidebar.astro +71 -0
  114. package/src/components/{structure/Split.astro → Split.astro} +6 -9
  115. package/src/components/{structure/Spread.astro → Spread.astro} +6 -9
  116. package/src/components/Switch.astro +114 -0
  117. package/src/components/Table.astro +121 -0
  118. package/src/components/Tagline.astro +35 -0
  119. package/src/components/Text.astro +43 -0
  120. package/src/components/Textarea.astro +105 -0
  121. package/src/components/Toc.astro +52 -0
  122. package/src/components/{structure/Wrap.astro → Wrap.astro} +5 -10
  123. package/src/components/docs/DecorativeBox.astro +15 -0
  124. package/src/components/docs/PropsTable.astro +95 -0
  125. package/src/components/experimental/Channel.astro +15 -10
  126. package/src/components/experimental/Form.astro +34 -0
  127. package/src/components/experimental/Gallery.astro +180 -0
  128. package/src/components/experimental/GalleryVertical.astro +161 -0
  129. package/src/components/{base → experimental}/Logo.astro +3 -5
  130. package/src/components/experimental/Price.astro +17 -17
  131. package/src/components/experimental/Prose.astro +154 -0
  132. package/src/components/{base → experimental}/Video.astro +1 -1
  133. package/src/components/experimental/Window.astro +173 -0
  134. package/src/content/config.ts +16 -13
  135. package/src/content/pages/_changelog.mdx +10 -0
  136. package/src/content/pages/_segment/footer.mdx +244 -0
  137. package/src/content/pages/_segment/header.mdx +210 -0
  138. package/src/content/pages/base/_dialog.mdx +17 -0
  139. package/src/content/pages/base/_drawer.mdx +17 -0
  140. package/src/content/pages/base/_image.mdx +14 -0
  141. package/src/content/pages/base/_switch.mdx +33 -0
  142. package/src/content/pages/base/badge.mdx +70 -0
  143. package/src/content/pages/base/button.mdx +71 -0
  144. package/src/content/pages/base/card.mdx +114 -0
  145. package/src/content/pages/base/checkbox.mdx +43 -0
  146. package/src/content/pages/base/icon.mdx +54 -0
  147. package/src/content/pages/base/input.mdx +67 -0
  148. package/src/content/pages/base/rating.mdx +66 -0
  149. package/src/content/pages/base/section.mdx +79 -0
  150. package/src/content/pages/base/select.mdx +77 -0
  151. package/src/content/pages/base/table.mdx +133 -0
  152. package/src/content/pages/base/textarea.mdx +73 -0
  153. package/src/content/pages/blocks/_banner.mdx +13 -0
  154. package/src/content/pages/blocks/_categories.mdx +149 -0
  155. package/src/content/pages/blocks/_jobs.mdx +37 -0
  156. package/src/content/pages/blocks/_product.mdx +29 -0
  157. package/src/content/pages/blocks/_products.mdx +55 -0
  158. package/src/content/pages/blocks/_stats.mdx +34 -0
  159. package/src/content/pages/blocks/colleagues.mdx +42 -0
  160. package/src/content/pages/blocks/content.mdx +101 -0
  161. package/src/content/pages/blocks/cta.mdx +192 -0
  162. package/src/content/pages/blocks/features.mdx +134 -0
  163. package/src/content/pages/blocks/footer.mdx +71 -0
  164. package/src/content/pages/blocks/header.mdx +192 -0
  165. package/src/content/pages/blocks/hero.mdx +97 -0
  166. package/src/content/pages/blocks/intro.mdx +132 -0
  167. package/src/content/pages/blocks/posts.mdx +40 -0
  168. package/src/content/pages/blocks/prices.mdx +126 -0
  169. package/src/content/pages/blocks/reviews.mdx +249 -0
  170. package/src/content/pages/blocks.mdx +10 -0
  171. package/src/content/pages/index.mdx +65 -0
  172. package/src/content/pages/overview/frameworks.mdx +180 -0
  173. package/src/content/pages/overview/installation.mdx +20 -0
  174. package/src/content/pages/overview/integration.mdx +37 -0
  175. package/src/content/pages/overview/introduction.mdx +20 -0
  176. package/src/content/pages/overview/theming.mdx +83 -0
  177. package/src/content/pages/structure/_row.mdx +23 -0
  178. package/src/content/pages/structure/_wrap.mdx +25 -0
  179. package/src/content/pages/structure/carousel.mdx +31 -0
  180. package/src/content/pages/structure/column.mdx +21 -0
  181. package/src/content/pages/structure/grid.mdx +26 -0
  182. package/src/content/pages/structure/masonry.mdx +32 -0
  183. package/src/content/pages/structure/split.mdx +21 -0
  184. package/src/content/pages/structure/spread.mdx +21 -0
  185. package/src/content/pages/typography/_tagline.mdx +36 -0
  186. package/src/content/pages/typography/heading.mdx +74 -0
  187. package/src/content/pages/typography/label.mdx +42 -0
  188. package/src/content/pages/typography/link.mdx +63 -0
  189. package/src/content/pages/typography/list.mdx +52 -0
  190. package/src/content/pages/typography/text.mdx +62 -0
  191. package/src/content/records/record.yml +1 -0
  192. package/src/content/settings/base.yml +48 -0
  193. package/src/content/settings/components.yml +27 -0
  194. package/src/css/color.css +6 -67
  195. package/src/css/custom.css +59 -0
  196. package/src/css/size.css +130 -0
  197. package/src/css/space.css +47 -26
  198. package/src/css/styles.css +4 -2
  199. package/src/env.d.ts +1 -1
  200. package/src/integration/generate-colors.ts +637 -0
  201. package/src/integration/index.ts +158 -0
  202. package/src/integration/tailwind-plugin.ts +80 -0
  203. package/src/integration/unocss-preset.ts +84 -0
  204. package/src/layouts/BlockLayout.astro +24 -0
  205. package/src/layouts/BlockOverviewLayout.astro +39 -0
  206. package/src/layouts/ComponentLayout.astro +23 -0
  207. package/src/layouts/JobsLayout.astro +40 -0
  208. package/src/layouts/Layout.astro +168 -0
  209. package/src/layouts/OverviewLayout.astro +45 -0
  210. package/src/layouts/PageLayout.astro +32 -0
  211. package/src/layouts/PostLayout.astro +32 -0
  212. package/src/layouts/ProductLayout.astro +31 -0
  213. package/src/pages/[...page].astro +41 -0
  214. package/src/schemas/base.ts +81 -0
  215. package/src/schemas/block.ts +15 -0
  216. package/src/schemas/card.ts +3 -0
  217. package/src/schemas/page.ts +43 -0
  218. package/src/schemas/utils.ts +22 -0
  219. package/src/utils/mergeEntries.ts +28 -0
  220. package/tsconfig.json +10 -1
  221. package/.astro/settings.json +0 -5
  222. package/.astro/types.d.ts +0 -147
  223. package/.env +0 -1
  224. package/astro.config.mjs +0 -6
  225. package/src/components/_Block.astro +0 -20
  226. package/src/components/_Blocks.astro +0 -11
  227. package/src/components/_Children.astro +0 -31
  228. package/src/components/_archive/Body.astro +0 -37
  229. package/src/components/_archive/Main.astro +0 -28
  230. package/src/components/_archive/Nav.astro +0 -50
  231. package/src/components/_todo/Form.astro +0 -36
  232. package/src/components/_todo/Prose.astro +0 -139
  233. package/src/components/_todo/Writeup.astro +0 -24
  234. package/src/components/base/Button.astro +0 -123
  235. package/src/components/base/Rating.astro +0 -47
  236. package/src/components/base/checkbox/Checkbox.astro +0 -52
  237. package/src/components/base/checkbox/CheckboxElement.astro +0 -31
  238. package/src/components/base/input/Input.astro +0 -79
  239. package/src/components/base/input/InputElement.astro +0 -69
  240. package/src/components/base/radio/Radio.astro +0 -66
  241. package/src/components/base/radio/RadioElement.astro +0 -34
  242. package/src/components/base/select/Select.astro +0 -90
  243. package/src/components/base/select/SelectElement.astro +0 -56
  244. package/src/components/base/select/SelectOption.astro +0 -32
  245. package/src/components/base/switch/Switch.astro +0 -55
  246. package/src/components/base/switch/SwitchElement.astro +0 -84
  247. package/src/components/base/table/Table.astro +0 -57
  248. package/src/components/base/table/TableBody.astro +0 -38
  249. package/src/components/base/table/TableCell.astro +0 -30
  250. package/src/components/base/table/TableFooter.astro +0 -48
  251. package/src/components/base/table/TableHead.astro +0 -31
  252. package/src/components/base/table/TableHeader.astro +0 -44
  253. package/src/components/base/table/TableRow.astro +0 -46
  254. package/src/components/base/textarea/Textarea.astro +0 -79
  255. package/src/components/base/textarea/TextareaElement.astro +0 -68
  256. package/src/components/segment/Box.astro +0 -46
  257. package/src/components/segment/Card.astro +0 -114
  258. package/src/components/segment/Footer.astro +0 -94
  259. package/src/components/segment/Header.astro +0 -100
  260. package/src/components/segment/Section.astro +0 -103
  261. package/src/components/segment/_regels.md +0 -32
  262. package/src/components/typography/Heading.astro +0 -66
  263. package/src/components/typography/List.astro +0 -47
  264. package/src/components/typography/ListItem.astro +0 -36
  265. package/src/components/typography/Paragraph.astro +0 -36
  266. package/src/components/typography/Tagline.astro +0 -36
  267. package/src/components/typography/Text.astro +0 -37
  268. package/src/components/utility/Head.astro +0 -83
  269. package/src/components/utility/Layout.astro +0 -46
  270. package/src/content/pages/index.md +0 -2
  271. package/src/css/color.scss +0 -289
  272. package/src/css/size.scss +0 -296
  273. package/src/css/utils.scss +0 -16
  274. package/src/index.ts +0 -71
  275. package/src/integration/integration.ts +0 -88
  276. package/src/integration/tailwind.ts +0 -34
  277. package/src/integration/unocss.ts +0 -38
  278. /package/src/{_archive → utils/_archive}/Childmorphic.ts +0 -0
  279. /package/src/{_archive → utils/_archive}/getAllCollections.ts +0 -0
  280. /package/src/{_archive → utils/_archive}/getCollectionCascade.ts +0 -0
  281. /package/src/{_archive → utils/_archive}/getPathname.ts +0 -0
  282. /package/src/{_archive → utils/_archive}/staticPageSchema.ts +0 -0
  283. /package/src/{_archive → utils/_archive}/transform/transform.ts +0 -0
  284. /package/src/{_archive → utils/_archive}/transform/transformCasing.ts +0 -0
  285. /package/src/{_archive → utils/_archive}/transform/transformReferences.ts +0 -0
  286. /package/src/{_archive → utils/_archive}/transform/transformSelfs.ts +0 -0
  287. /package/src/{_archive → utils/_archive}/transform/transformUnderscores.ts +0 -0
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  import type { HTMLTag, Polymorphic } from 'astro/types'
3
- import Component from '../_Component.astro'
3
+ import Root from 'fulldev-ui/components/Root.astro'
4
4
 
5
5
  type Props<As extends HTMLTag = 'p'> = Polymorphic<{ as: As }> & {
6
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'
6
+ size?: 'sm' | 'md' | 'lg'
7
7
  color?: 'base' | 'brand'
8
8
  contrast?: boolean
9
9
  value?: number
@@ -12,24 +12,24 @@ type Props<As extends HTMLTag = 'p'> = Polymorphic<{ as: As }> & {
12
12
  const { as = 'p', value, ...rest } = Astro.props
13
13
  ---
14
14
 
15
- {value && (
16
- <Component
17
- if={value}
18
- class:list={['price']}
19
- {as}
20
- {...rest}
21
- >
22
- €{value?.toFixed(2).replace('.', ',')}
23
- </Component>
24
- )}
15
+ {
16
+ value && (
17
+ <Root
18
+ if={value}
19
+ class:list='price']}
20
+ {as}
21
+ {...rest}
22
+ >
23
+ €{value?.toFixed(2).replace('.', ',')}
24
+ </Root>
25
+ )
26
+ }
25
27
 
26
28
  <style is:global lang="scss">
27
- @import '../../css/utils.scss';
28
-
29
- @include component('price') {
29
+ .price {
30
30
  margin: 0;
31
- max-width: calc(var(--space-4) * 36);
32
- color: var(--text, var(--color-11));
31
+ max-width: calc(var(--space-4) * 44);
32
+ color: var(--color-12);
33
33
  font-weight: var(--font-weight);
34
34
  font-size: var(--text-5);
35
35
  line-height: 1.25;
@@ -0,0 +1,154 @@
1
+ ---
2
+ import type { HTMLTag, Polymorphic } from 'astro/types'
3
+ import Root from 'fulldev-ui/components/Root.astro'
4
+
5
+ type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }>
6
+
7
+ const { as = 'div', ...rest } = Astro.props
8
+ ---
9
+
10
+ <Root
11
+ class:list="prose"
12
+ {as}
13
+ {...rest}
14
+ >
15
+ <slot />
16
+ </Root>
17
+
18
+ <style is:global lang="scss">
19
+ .prose {
20
+ width: 100%;
21
+ max-width: 768px;
22
+ scroll-margin-top: var(--space-6);
23
+ color: var(--color-11);
24
+ font-weight: var(--font-weight);
25
+ font-size: var(--text-3);
26
+ line-height: 1.7;
27
+ font-family: var(--font-family);
28
+
29
+ > {
30
+ .astro-code,
31
+ .window {
32
+ margin-top: var(--space-5);
33
+ }
34
+
35
+ * {
36
+ margin: 0;
37
+ }
38
+
39
+ p {
40
+ margin-top: var(--space-4);
41
+ }
42
+
43
+ h1,
44
+ h2,
45
+ h3,
46
+ h4,
47
+ h5,
48
+ h6 {
49
+ color: var(--color-12);
50
+ font-weight: 700;
51
+ line-height: 1.2;
52
+ }
53
+
54
+ h1 {
55
+ margin-top: var(--space-6);
56
+ scroll-margin-top: var(--space-6);
57
+ font-size: var(--text-8);
58
+ }
59
+
60
+ h2 {
61
+ margin-top: var(--space-6);
62
+ scroll-margin-top: var(--space-6);
63
+ font-size: var(--text-7);
64
+ }
65
+
66
+ h3 {
67
+ margin-top: var(--space-6);
68
+ scroll-margin-top: var(--space-6);
69
+ font-size: var(--text-6);
70
+ }
71
+
72
+ h4 {
73
+ margin-top: var(--space-5);
74
+ scroll-margin-top: var(--space-5);
75
+ font-size: var(--text-5);
76
+ }
77
+
78
+ h5 {
79
+ margin-top: var(--space-5);
80
+ scroll-margin-top: var(--space-5);
81
+ font-size: var(--text-4);
82
+ }
83
+
84
+ h6 {
85
+ margin-top: var(--space-5);
86
+ scroll-margin-top: var(--space-5);
87
+ font-size: var(--text-3);
88
+ }
89
+
90
+ *:first-child {
91
+ margin-top: 0;
92
+ }
93
+ }
94
+
95
+ .display {
96
+ display: grid;
97
+ width: 100%;
98
+ max-width: none;
99
+
100
+ table {
101
+ h1,
102
+ h2,
103
+ h3,
104
+ h4,
105
+ h5,
106
+ h6 {
107
+ margin: var(--space-2) 0;
108
+
109
+ font: 600 var(--text-3) 'Saira';
110
+
111
+ & + p {
112
+ color: var(--hue11);
113
+ }
114
+ }
115
+ }
116
+ }
117
+
118
+ table {
119
+ margin: var(--space-5) 0;
120
+ border: 1px solid var(--border);
121
+ border-radius: var(--radius-1) !important;
122
+ border-collapse: collapse;
123
+ width: 100%;
124
+ }
125
+
126
+ th {
127
+ border-bottom: 1px solid var(--border);
128
+ background: var(--raised-background) !important;
129
+ color: var(--muted-foreground) !important;
130
+ font-weight: 500 !important;
131
+ font-size: var(--text-3) !important;
132
+ }
133
+
134
+ td {
135
+ color: var(--muted-foreground) !important;
136
+ }
137
+
138
+ th,
139
+ td {
140
+ padding: var(--space-2);
141
+ }
142
+
143
+ table a {
144
+ color: var(--solid) !important;
145
+ font-size: var(--text-3) !important;
146
+ line-height: 1 !important;
147
+ white-space: nowrap;
148
+ }
149
+
150
+ table a:hover {
151
+ text-decoration: underline;
152
+ }
153
+ }
154
+ </style>
@@ -14,7 +14,7 @@ const youtubeId =
14
14
  {
15
15
  youtubeId && !thumbnail && (
16
16
  <iframe
17
- class:list={['image video']}
17
+ class:list='image video']}
18
18
  src={`https://www.youtube.com/embed/${youtubeId}?controls=0&showinfo=0&rel=0&modestbranding=1&loop=1`}
19
19
  title="YouTube video player"
20
20
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
@@ -0,0 +1,173 @@
1
+ ---
2
+ import Button from 'fulldev-ui/components/Button.astro'
3
+
4
+ const { componentProps } = Astro.props
5
+
6
+ const randomId = Math.random().toString(36).substring(2, 15)
7
+ const id = componentProps.title?.toLowerCase().replace(/ /g, '-') ?? randomId
8
+
9
+ const isComponent =
10
+ Astro.url.pathname.includes('components/') ||
11
+ Astro.url.pathname.includes('frameworks') ||
12
+ Astro.url.pathname.includes('base/') ||
13
+ Astro.url.pathname.includes('typography/') ||
14
+ Astro.url.pathname.includes('segment/')
15
+ ---
16
+
17
+ {
18
+ isComponent ? (
19
+ <div class="component window">
20
+ <div class="example-container">
21
+ <slot name="example" />
22
+ </div>
23
+ <div class="code-container">
24
+ <slot name="code" />
25
+ </div>
26
+ </div>
27
+ ) : (
28
+ <div class="block window">
29
+ <div class="button-header">
30
+ <Button
31
+ as="label"
32
+ for={id}
33
+ variant="secondary"
34
+ >
35
+ Preview / Code
36
+ </Button>
37
+ </div>
38
+ <input
39
+ type="checkbox"
40
+ id={id}
41
+ name={id}
42
+ class="window-toggle"
43
+ />
44
+ <div class="example-container">
45
+ <slot name="example" />
46
+ </div>
47
+ <div class="code-container">
48
+ <slot name="code" />
49
+ </div>
50
+ </div>
51
+ )
52
+ }
53
+
54
+ <style lang="scss" is:global>
55
+ .window {
56
+ display: flex;
57
+ flex-direction: column;
58
+ align-items: flex-start;
59
+ width: 100%;
60
+
61
+ .code-container {
62
+ width: 100%;
63
+
64
+ .astro-code {
65
+ margin: 0;
66
+ background-color: var(--base-2) !important;
67
+ padding: var(--space-5);
68
+ }
69
+ }
70
+
71
+ &.component {
72
+ border: 1px solid var(--base-6);
73
+ border-radius: var(--radius-2);
74
+ overflow: hidden;
75
+
76
+ .example-container {
77
+ display: flex;
78
+ flex-direction: column;
79
+ align-items: start;
80
+ gap: var(--space-4);
81
+ padding: var(--space-5);
82
+ }
83
+
84
+ .code-container {
85
+ border: none;
86
+ border-top: 1px solid var(--base-6);
87
+ border-radius: 0px;
88
+
89
+ .astro-code {
90
+ border: none;
91
+ border-radius: 0px;
92
+ }
93
+ }
94
+ }
95
+
96
+ &.block {
97
+ gap: var(--space-2);
98
+ padding-top: var(--space-7);
99
+ padding-bottom: var(--space-7);
100
+
101
+ .button-header {
102
+ padding: 0 var(--gutter);
103
+ }
104
+
105
+ .code-container {
106
+ display: none;
107
+ padding: 0 var(--gutter);
108
+ max-width: calc(100% - (2 * var(--gutter)));
109
+ }
110
+
111
+ .window-toggle {
112
+ display: none;
113
+ visibility: hidden;
114
+ opacity: 0;
115
+ }
116
+
117
+ .window-toggle:checked {
118
+ & ~ .example-container {
119
+ display: none;
120
+ }
121
+ & ~ .code-container {
122
+ display: block;
123
+ }
124
+ }
125
+
126
+ .example-container {
127
+ border-top: 1px solid var(--base-6);
128
+ width: 100%;
129
+ }
130
+ }
131
+ }
132
+
133
+ // .window {
134
+ // width: 100%;
135
+
136
+ // &.component {
137
+ // border: 1px solid var(--base-6);
138
+ // border-radius: var(--radius-2);
139
+ // overflow: hidden;
140
+
141
+ // .example-container {
142
+ // display: flex;
143
+ // flex-direction: column;
144
+ // align-items: start;
145
+ // gap: var(--space-4);
146
+ // padding: var(--space-5);
147
+ // }
148
+
149
+ // .astro-code {
150
+ // border: none;
151
+ // border-top: 1px solid var(--base-6);
152
+ // border-radius: 0px;
153
+ // }
154
+ // }
155
+
156
+ // &:not(.component) {
157
+ // padding-top: var(--space-7);
158
+ // padding-bottom: var(--space-7);
159
+
160
+ // .live-code-layout {
161
+ // display: flex;
162
+ // flex-direction: column;
163
+ // margin-top: var(--space-4);
164
+ // width: 100%;
165
+ // overflow: hidden;
166
+
167
+ // .example-container {
168
+ // border-top: 1px solid var(--base-6);
169
+ // }
170
+ // }
171
+ // }
172
+ // }
173
+ </style>
@@ -1,14 +1,17 @@
1
- // import { defineCollection, reference } from 'astro:content'
2
- // import { pageSchema } from '../schemas/schemas'
1
+ import { defineCollection } from 'astro:content'
2
+ import { page } from 'fulldev-ui/schemas/page'
3
3
 
4
- // const collection = defineCollection({
5
- // type: 'content',
6
- // schema: pageSchema({
7
- // page: reference('pages'),
8
- // pages: reference('pages').array(),
9
- // }),
10
- // })
11
-
12
- // export const collections = {
13
- // pages: collection,
14
- // }
4
+ export const collections = {
5
+ pages: defineCollection({
6
+ type: 'content',
7
+ schema: page,
8
+ }),
9
+ records: defineCollection({
10
+ type: 'data',
11
+ schema: page,
12
+ }),
13
+ settings: defineCollection({
14
+ type: 'data',
15
+ schema: page,
16
+ }),
17
+ }
@@ -0,0 +1,10 @@
1
+ ---
2
+ _layout: PostLayout
3
+ settings: components
4
+ title: Changelog
5
+ description: What's new in Fulldev UI
6
+ ---
7
+
8
+ import ChangeLog from '../../../CHANGELOG.md'
9
+
10
+ <ChangeLog />
@@ -0,0 +1,244 @@
1
+ ---
2
+ _layout: ComponentLayout
3
+ settings: components
4
+
5
+ title: Footer
6
+ ---
7
+
8
+ # Footer
9
+
10
+ import PropsTable from 'fulldev-ui/components/docs/PropsTable.astro'
11
+
12
+ ```astro live
13
+ ---
14
+ import Footer from 'fulldev-ui/components/Footer.astro'
15
+ ---
16
+
17
+ <Footer
18
+ heading="Fulldev UI"
19
+ set:html="Rapidly build content-driven websites."
20
+ align="start"
21
+ size="sm"
22
+ columns={[
23
+ {
24
+ heading: 'Pages',
25
+ links: [
26
+ { href: '/overview/introduction', text: 'Docs' },
27
+ { href: '/typography/heading', text: 'Components' },
28
+ { href: '/blocks', text: 'Blocks' },
29
+ ],
30
+ },
31
+ ]}
32
+ />
33
+ ```
34
+
35
+ ## Props
36
+
37
+ <PropsTable />
38
+
39
+ ## Examples
40
+
41
+ ```astro live
42
+ ---
43
+ import Footer from 'fulldev-ui/components/Footer.astro'
44
+ ---
45
+
46
+ <Footer
47
+ heading="Fulldev UI"
48
+ set:html="Rapidly build content-driven websites."
49
+ align="start"
50
+ size="sm"
51
+ columns={[
52
+ {
53
+ heading: 'Pages',
54
+ links: [
55
+ { href: '/overview/introduction', text: 'Docs' },
56
+ { href: '/typography/heading', text: 'Components' },
57
+ { href: '/blocks', text: 'Blocks' },
58
+ ],
59
+ },
60
+ {
61
+ heading: 'Socials',
62
+ links: [
63
+ { href: '/x', text: 'X' },
64
+ { href: '/github', text: 'GitHub' },
65
+ { href: '/discord', text: 'Discord' },
66
+ ],
67
+ },
68
+ ]}
69
+ />
70
+
71
+ <Footer
72
+ heading="Fulldev UI"
73
+ set:html="Rapidly build content-driven websites."
74
+ align="start"
75
+ size="sm"
76
+ structure="spread"
77
+ columns={[
78
+ {
79
+ heading: 'Links',
80
+ links: [
81
+ { href: '/overview/introduction', text: 'Docs' },
82
+ { href: '/components', text: 'Components' },
83
+ { href: '/discord', text: 'Discord' },
84
+ ],
85
+ },
86
+ ]}
87
+ />
88
+
89
+ <Footer
90
+ heading="Fulldev UI"
91
+ set:html="Rapidly build content-driven websites."
92
+ align="start"
93
+ size="md"
94
+ structure="spread"
95
+ columns={[
96
+ {
97
+ heading: 'Links',
98
+ links: [
99
+ { href: '/overview/introduction', text: 'Docs' },
100
+ { href: '/components', text: 'Components' },
101
+ { href: '/discord', text: 'Discord' },
102
+ ],
103
+ },
104
+ ]}
105
+ />
106
+
107
+ <Footer
108
+ heading="Fulldev UI"
109
+ set:html="Rapidly build content-driven websites."
110
+ align="start"
111
+ size="lg"
112
+ structure="spread"
113
+ columns={[
114
+ {
115
+ heading: 'Links',
116
+ links: [
117
+ { href: '/overview/introduction', text: 'Docs' },
118
+ { href: '/components', text: 'Components' },
119
+ { href: '/discord', text: 'Discord' },
120
+ ],
121
+ },
122
+ ]}
123
+ />
124
+ ```
125
+
126
+ ```astro live
127
+ ---
128
+ import Footer from 'fulldev-ui/components/Footer.astro'
129
+ ---
130
+
131
+ <Footer
132
+ variant="ghost"
133
+ structure="spread"
134
+ align="start"
135
+ heading="Fulldev UI"
136
+ set:html="Rapidly build content-driven websites."
137
+ columns={[
138
+ {
139
+ heading: 'Links',
140
+ links: [
141
+ { href: '/overview/introduction', text: 'Docs' },
142
+ { href: '/components', text: 'Components' },
143
+ { href: '/discord', text: 'Discord' },
144
+ ],
145
+ },
146
+ ]}
147
+ />
148
+
149
+ <Footer
150
+ variant="subtle"
151
+ structure="spread"
152
+ align="start"
153
+ heading="Fulldev UI"
154
+ set:html="Rapidly build content-driven websites."
155
+ columns={[
156
+ {
157
+ heading: 'Links',
158
+ links: [
159
+ { href: '/overview/introduction', text: 'Docs' },
160
+ { href: '/components', text: 'Components' },
161
+ { href: '/discord', text: 'Discord' },
162
+ ],
163
+ },
164
+ ]}
165
+ />
166
+
167
+ <Footer
168
+ variant="soft"
169
+ structure="spread"
170
+ align="start"
171
+ heading="Fulldev UI"
172
+ set:html="Rapidly build content-driven websites."
173
+ columns={[
174
+ {
175
+ heading: 'Links',
176
+ links: [
177
+ { href: '/overview/introduction', text: 'Docs' },
178
+ { href: '/components', text: 'Components' },
179
+ { href: '/discord', text: 'Discord' },
180
+ ],
181
+ },
182
+ ]}
183
+ />
184
+
185
+ <Footer
186
+ variant="surface"
187
+ structure="spread"
188
+ align="start"
189
+ heading="Fulldev UI"
190
+ set:html="Rapidly build content-driven websites."
191
+ columns={[
192
+ {
193
+ heading: 'Links',
194
+ links: [
195
+ { href: '/overview/introduction', text: 'Docs' },
196
+ { href: '/components', text: 'Components' },
197
+ { href: '/discord', text: 'Discord' },
198
+ ],
199
+ },
200
+ ]}
201
+ />
202
+ ```
203
+
204
+ ```astro live
205
+ ---
206
+ import Footer from 'fulldev-ui/components/Footer.astro'
207
+ ---
208
+
209
+ <Footer
210
+ frame="fill"
211
+ structure="spread"
212
+ align="start"
213
+ heading="Fulldev UI"
214
+ set:html="Rapidly build content-driven websites."
215
+ columns={[
216
+ {
217
+ heading: 'Links',
218
+ links: [
219
+ { href: '/overview/introduction', text: 'Docs' },
220
+ { href: '/components', text: 'Components' },
221
+ { href: '/discord', text: 'Discord' },
222
+ ],
223
+ },
224
+ ]}
225
+ />
226
+
227
+ <Footer
228
+ frame="panel"
229
+ structure="spread"
230
+ align="start"
231
+ heading="Fulldev UI"
232
+ set:html="Rapidly build content-driven websites."
233
+ columns={[
234
+ {
235
+ heading: 'Links',
236
+ links: [
237
+ { href: '/overview/introduction', text: 'Docs' },
238
+ { href: '/components', text: 'Components' },
239
+ { href: '/discord', text: 'Discord' },
240
+ ],
241
+ },
242
+ ]}
243
+ />
244
+ ```