fulldev-ui 0.6.0-beta.9 → 0.6.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 (162) hide show
  1. package/astro.config.ts +6 -8
  2. package/cloudcannon.config.yml +57 -86
  3. package/package.json +2 -1
  4. package/public/images/block-code.png +0 -0
  5. package/public/images/component-code.png +0 -0
  6. package/src/blocks/Banner.astro +3 -5
  7. package/src/blocks/Colleagues1.astro +4 -3
  8. package/src/blocks/Contact1.astro +42 -42
  9. package/src/blocks/Contact2.astro +98 -0
  10. package/src/blocks/Content1.astro +6 -27
  11. package/src/blocks/Content2.astro +26 -49
  12. package/src/blocks/Content3.astro +26 -54
  13. package/src/blocks/Content4.astro +34 -50
  14. package/src/blocks/Content5.astro +7 -36
  15. package/src/blocks/Content6.astro +57 -0
  16. package/src/blocks/Content7.astro +65 -0
  17. package/src/blocks/Content8.astro +48 -0
  18. package/src/blocks/Cta1.astro +9 -12
  19. package/src/blocks/Cta2.astro +52 -0
  20. package/src/blocks/Features1.astro +8 -6
  21. package/src/blocks/Features2.astro +71 -0
  22. package/src/blocks/Footer.astro +2 -6
  23. package/src/blocks/Header.astro +9 -25
  24. package/src/blocks/Hero1.astro +19 -27
  25. package/src/blocks/Intro1.astro +6 -7
  26. package/src/blocks/{Industries1.astro → JobCategories1.astro} +13 -38
  27. package/src/blocks/JobCategory1.astro +92 -0
  28. package/src/blocks/Jobs1.astro +7 -10
  29. package/src/blocks/Logos1.astro +4 -4
  30. package/src/blocks/Pages1.astro +85 -0
  31. package/src/blocks/Pricings1.astro +61 -0
  32. package/src/blocks/Products1.astro +7 -10
  33. package/src/blocks/Projects1.astro +59 -83
  34. package/src/blocks/Reviews1.astro +10 -10
  35. package/src/blocks/Subheader.astro +4 -9
  36. package/src/components/Avatar.astro +40 -0
  37. package/src/components/Avatars.astro +20 -0
  38. package/src/components/Badge.astro +6 -35
  39. package/src/components/Block.astro +20 -4
  40. package/src/components/Channel.astro +4 -0
  41. package/src/components/Chip.astro +73 -0
  42. package/src/components/Element.astro +1 -0
  43. package/src/components/Field.astro +33 -0
  44. package/src/components/Fields.astro +20 -0
  45. package/src/components/Heading.astro +12 -5
  46. package/src/components/Image.astro +1 -1
  47. package/src/components/Link.astro +1 -1
  48. package/src/components/Menu.astro +9 -5
  49. package/src/components/Proof.astro +52 -0
  50. package/src/components/Select.astro +1 -1
  51. package/src/components/Tagline.astro +6 -6
  52. package/src/components/Toc.astro +33 -31
  53. package/src/content/config.ts +5 -0
  54. package/src/content/layouts/base.yml +135 -142
  55. package/src/content/pages/{base → _base}/toggle.mdx +1 -1
  56. package/src/content/pages/_showcase/stark-vulcanising-products.md +0 -1
  57. package/src/content/pages/docs/blocks/_categories.mdx +1 -17
  58. package/src/content/pages/docs/blocks/banner.mdx +1 -1
  59. package/src/content/pages/docs/blocks/colleagues.mdx +1 -1
  60. package/src/content/pages/docs/blocks/content.mdx +162 -1
  61. package/src/content/pages/docs/blocks/cta.mdx +1 -1
  62. package/src/content/pages/docs/blocks/features.mdx +66 -1
  63. package/src/content/pages/docs/blocks/footer.mdx +1 -1
  64. package/src/content/pages/docs/blocks/header.mdx +1 -1
  65. package/src/content/pages/docs/blocks/hero.mdx +1 -1
  66. package/src/content/pages/docs/blocks/intro.mdx +1 -1
  67. package/src/content/pages/docs/blocks/logos.mdx +1 -1
  68. package/src/content/pages/docs/blocks/projects.mdx +1 -1
  69. package/src/content/pages/docs/blocks/reviews.mdx +1 -1
  70. package/src/content/pages/docs/blocks.mdx +1 -7
  71. package/src/content/pages/docs/collections/images.mdx +1 -1
  72. package/src/content/pages/docs/collections/pages.mdx +1 -1
  73. package/src/content/pages/docs/collections/presets.mdx +1 -1
  74. package/src/content/pages/docs/components/_localeswitcher.mdx +1 -1
  75. package/src/content/pages/docs/components/_table.mdx +1 -1
  76. package/src/content/pages/docs/components/_tagline.mdx +1 -1
  77. package/src/content/pages/docs/components/_themer.mdx +1 -1
  78. package/src/content/pages/docs/components/_toggle.mdx +1 -1
  79. package/src/content/pages/docs/components/avatar.mdx +32 -0
  80. package/src/content/pages/docs/components/badge.mdx +1 -34
  81. package/src/content/pages/docs/components/badges.mdx +1 -13
  82. package/src/content/pages/docs/components/button.mdx +1 -1
  83. package/src/content/pages/docs/components/buttons.mdx +1 -1
  84. package/src/content/pages/docs/components/channel.mdx +1 -1
  85. package/src/content/pages/docs/components/channels.mdx +1 -1
  86. package/src/content/pages/docs/components/checkbox.mdx +1 -1
  87. package/src/content/pages/docs/components/chip.mdx +75 -0
  88. package/src/content/pages/docs/components/heading.mdx +1 -1
  89. package/src/content/pages/docs/components/icon.mdx +1 -1
  90. package/src/content/pages/docs/components/image.mdx +2 -1
  91. package/src/content/pages/docs/components/input.mdx +1 -1
  92. package/src/content/pages/docs/components/label.mdx +1 -1
  93. package/src/content/pages/docs/components/link.mdx +1 -1
  94. package/src/content/pages/docs/components/links.mdx +11 -52
  95. package/src/content/pages/docs/components/list.mdx +1 -1
  96. package/src/content/pages/docs/components/logo.mdx +1 -1
  97. package/src/content/pages/docs/components/menu.mdx +5 -18
  98. package/src/content/pages/docs/components/paragraph.mdx +1 -1
  99. package/src/content/pages/docs/components/rating.mdx +1 -1
  100. package/src/content/pages/docs/components/select.mdx +1 -1
  101. package/src/content/pages/docs/components/social.mdx +1 -1
  102. package/src/content/pages/docs/components/socials.mdx +1 -1
  103. package/src/content/pages/docs/components/switch.mdx +1 -1
  104. package/src/content/pages/docs/components/tagline.mdx +1 -1
  105. package/src/content/pages/docs/components/textarea.mdx +1 -1
  106. package/src/content/pages/docs/components.mdx +1 -1
  107. package/src/content/pages/docs/customization.mdx +1 -1
  108. package/src/content/pages/docs/frameworks.mdx +1 -1
  109. package/src/content/pages/docs/index.mdx +1 -1
  110. package/src/content/pages/docs/installation.mdx +1 -24
  111. package/src/content/pages/docs/layouts/doc.mdx +1 -1
  112. package/src/content/pages/docs/layouts/page.mdx +1 -1
  113. package/src/content/pages/docs/pages.mdx +1 -1
  114. package/src/content/pages/docs/structures/_card.mdx +1 -1
  115. package/src/content/pages/docs/structures/_dialog.mdx +1 -1
  116. package/src/content/pages/docs/structures/_drawer.mdx +1 -1
  117. package/src/content/pages/docs/structures/card.mdx +1 -1
  118. package/src/content/pages/docs/structures/code.mdx +1 -1
  119. package/src/content/pages/docs/structures/container.mdx +1 -1
  120. package/src/content/pages/docs/structures/drawer.mdx +1 -1
  121. package/src/content/pages/docs/structures/group.mdx +1 -1
  122. package/src/content/pages/docs/structures/layout.mdx +1 -1
  123. package/src/content/pages/docs/structures/masonry.mdx +1 -1
  124. package/src/content/pages/docs/structures/matrix.mdx +1 -1
  125. package/src/content/pages/docs/structures/panel.mdx +1 -1
  126. package/src/content/pages/docs/structures/prose.mdx +1 -1
  127. package/src/content/pages/docs/structures/section.mdx +1 -1
  128. package/src/content/pages/docs/structures/stack.mdx +1 -1
  129. package/src/content/pages/docs/structures/writeup.mdx +1 -1
  130. package/src/content/pages/docs/structures.mdx +1 -1
  131. package/src/content/pages/index.mdx +20 -25
  132. package/src/css/custom.css +4 -0
  133. package/src/integration/index.ts +1 -0
  134. package/src/layouts/Page.astro +45 -10
  135. package/src/layouts/{Product.astro → _Product.astro} +6 -6
  136. package/src/pages/test.astro +16 -0
  137. package/src/schemas/block.ts +22 -41
  138. package/src/schemas/button.ts +2 -0
  139. package/src/schemas/card.ts +43 -0
  140. package/src/schemas/channel.ts +1 -0
  141. package/src/schemas/{badge.ts → chip.ts} +3 -3
  142. package/src/schemas/page.ts +4 -18
  143. package/src/schemas/proof.ts +12 -0
  144. package/src/structures/Drawer.astro +2 -3
  145. package/src/structures/Prose.astro +40 -41
  146. package/src/structures/Section.astro +1 -1
  147. package/src/structures/Sidebar.astro +3 -4
  148. package/src/structures/Split.astro +38 -0
  149. package/tailwind.config.ts +4 -1
  150. package/pnpm-lock.yaml +0 -5186
  151. package/src/blocks/_Hero.astro +0 -245
  152. package/src/components/Blocks.astro +0 -26
  153. package/src/components/Sidebar.astro +0 -43
  154. package/src/content/pages/docs/blocks/feature.mdx +0 -17
  155. package/src/content/pages/docs/layouts.mdx +0 -80
  156. package/src/layouts/Block.astro +0 -81
  157. package/src/layouts/Category.astro +0 -136
  158. package/src/layouts/Doc.astro +0 -96
  159. package/src/layouts/Job.astro +0 -60
  160. package/src/layouts/Jobs.astro +0 -72
  161. package/src/layouts/Post.astro +0 -53
  162. /package/src/content/pages/{posts → _posts}/post.md +0 -0
@@ -0,0 +1,73 @@
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
+
6
+ interface Props extends HTMLAttributes<'a'>, HTMLAttributes<'div'> {
7
+ variant?: 'primary' | 'secondary' | 'outline' | undefined
8
+ size?: 'sm' | 'md' | 'lg' | undefined
9
+ text?: string | undefined
10
+ icon?: string | undefined
11
+ }
12
+
13
+ const { variant = 'outline', size = 'md', text, icon, ...rest } = Astro.props
14
+ ---
15
+
16
+ <Element
17
+ class:list="chip"
18
+ as={rest.href ? 'a' : 'div'}
19
+ {variant}
20
+ {size}
21
+ {...rest}
22
+ >
23
+ <Icon
24
+ size="sm"
25
+ name={icon}
26
+ />
27
+ <Element as="span">
28
+ <Fragment set:html={text} />
29
+ <slot />
30
+ </Element>
31
+ </Element>
32
+
33
+ <style is:global>
34
+ @layer fulldev {
35
+ .chip {
36
+ @apply inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-full text-sm font-medium leading-none ring-offset-background transition-colors;
37
+ @apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2;
38
+ @apply disabled:pointer-events-none disabled:opacity-50;
39
+
40
+ &.size-sm {
41
+ @apply h-6 min-w-6 px-2;
42
+ }
43
+
44
+ &.size-md {
45
+ @apply h-7 min-w-7 px-3;
46
+ }
47
+
48
+ &.size-lg {
49
+ @apply h-8 min-w-8 px-3.5;
50
+ }
51
+
52
+ &.variant-primary {
53
+ @apply bg-primary text-primary-foreground hover:bg-primary-hover;
54
+ }
55
+
56
+ &.variant-secondary {
57
+ @apply bg-secondary text-secondary-foreground hover:bg-secondary-hover;
58
+ }
59
+
60
+ &.variant-outline {
61
+ @apply border border-input text-accent-foreground hover:bg-accent;
62
+ }
63
+
64
+ .icon {
65
+ @apply first:last:absolute;
66
+ }
67
+
68
+ span {
69
+ @apply text-inherit;
70
+ }
71
+ }
72
+ }
73
+ </style>
@@ -66,4 +66,5 @@ const render = show === 'content' ? slot?.trim().length > 0 : show
66
66
  @import 'tailwindcss/base' layer(fulldev);
67
67
  @import 'fulldev-ui/css/theme' layer(fulldev);
68
68
  @import 'tailwindcss/components';
69
+ @import 'tailwindcss/utilities';
69
70
  </style>
@@ -0,0 +1,33 @@
1
+ ---
2
+ import Input from 'fulldev-ui/components/Input.astro'
3
+ import Select from 'fulldev-ui/components/Select.astro'
4
+ import Textarea from 'fulldev-ui/components/Textarea.astro'
5
+
6
+ interface Props {
7
+ label?: string | undefined
8
+ placeholder?: string | undefined
9
+ value?: string | undefined
10
+ required?: boolean | undefined
11
+ disabled?: boolean | undefined
12
+ type?: keyof typeof components | undefined
13
+ }
14
+
15
+ const { type = 'text', ...rest } = Astro.props
16
+
17
+ const components = {
18
+ select: Select,
19
+ textarea: Textarea,
20
+ text: Input,
21
+ number: Input,
22
+ tel: Input,
23
+ email: Input,
24
+ password: Input,
25
+ }
26
+
27
+ const Component = components[type]
28
+ ---
29
+
30
+ <Component
31
+ class:list="field"
32
+ {...rest}
33
+ />
@@ -0,0 +1,20 @@
1
+ ---
2
+ import type { ComponentProps } from 'astro/types'
3
+ import Field from 'fulldev-ui/components/Field.astro'
4
+
5
+ interface Props extends ComponentProps<typeof Field> {
6
+ field?: ComponentProps<typeof Field> | undefined
7
+ fields?: ComponentProps<typeof Field>[] | undefined
8
+ }
9
+
10
+ const { field, fields, ...rest } = Astro.props
11
+ ---
12
+
13
+ {
14
+ [field, ...(fields || [])].filter(Boolean).map((field) => (
15
+ <Field
16
+ {...rest}
17
+ {...field}
18
+ />
19
+ ))
20
+ }
@@ -5,8 +5,8 @@ import Element from 'fulldev-ui/components/Element.astro'
5
5
  interface Props
6
6
  extends HTMLAttributes<'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'> {
7
7
  as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | undefined
8
+ depth?: 1 | 2 | 3 | 4 | 5 | 6 | number | undefined
8
9
  text?: string | undefined
9
- muted?: boolean | undefined
10
10
  size?:
11
11
  | 'xs'
12
12
  | 'sm'
@@ -21,7 +21,7 @@ interface Props
21
21
  | undefined
22
22
  }
23
23
 
24
- const { as = 'h2', text, ...rest } = Astro.props
24
+ const { depth = 2, as = `h${depth}`, text, ...rest } = Astro.props
25
25
  ---
26
26
 
27
27
  <Element
@@ -34,11 +34,12 @@ const { as = 'h2', text, ...rest } = Astro.props
34
34
  </Element>
35
35
 
36
36
  <style is:global>
37
- .heading {
37
+ .heading,
38
+ .prose > :is(h1, h2, h3, h4, h5, h6) {
38
39
  @apply scroll-mt-20 font-bold tracking-tight text-foreground;
39
40
 
40
- &.muted {
41
- @apply text-muted-foreground;
41
+ code {
42
+ @apply rounded-sm bg-muted px-1 py-0.5 font-mono;
42
43
  }
43
44
 
44
45
  &.size-xs {
@@ -49,22 +50,27 @@ const { as = 'h2', text, ...rest } = Astro.props
49
50
  @apply text-sm;
50
51
  }
51
52
 
53
+ &:where(.prose > h6),
52
54
  &.size-md {
53
55
  @apply text-base;
54
56
  }
55
57
 
58
+ &:where(.prose > h5),
56
59
  &.size-lg {
57
60
  @apply text-lg;
58
61
  }
59
62
 
63
+ &:where(.prose > h4),
60
64
  &.size-xl {
61
65
  @apply text-xl;
62
66
  }
63
67
 
68
+ &:where(.prose > h3),
64
69
  &.size-2xl {
65
70
  @apply text-2xl;
66
71
  }
67
72
 
73
+ &:where(.prose > h2),
68
74
  &.size-3xl {
69
75
  @apply text-3xl;
70
76
  }
@@ -73,6 +79,7 @@ const { as = 'h2', text, ...rest } = Astro.props
73
79
  @apply text-4xl;
74
80
  }
75
81
 
82
+ &:where(.prose > h1),
76
83
  &.size-5xl {
77
84
  @apply text-4xl lg:text-5xl;
78
85
  }
@@ -42,7 +42,7 @@ const {
42
42
  <style is:global>
43
43
  @layer fulldev {
44
44
  .image {
45
- @apply block;
45
+ @apply block rounded-md;
46
46
  }
47
47
  }
48
48
  </style>
@@ -30,7 +30,7 @@ const { variant = 'muted', size = 'md', text, icon, ...rest } = Astro.props
30
30
  @layer fulldev {
31
31
  .link,
32
32
  .prose-content > *:not(.prose-footer) > a {
33
- @apply ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2;
33
+ @apply cursor-pointer ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2;
34
34
 
35
35
  &.variant-primary,
36
36
  &:is(.prose-content > *:not(.prose-footer) > a) {
@@ -19,11 +19,15 @@ const { size = 'md', heading, links, ...rest } = Astro.props
19
19
  class:list="menu"
20
20
  {...rest}
21
21
  >
22
- <Heading
23
- text={heading}
24
- as="h6"
25
- {size}
26
- />
22
+ {
23
+ links && links.length > 0 && (
24
+ <Heading
25
+ text={heading}
26
+ as="h6"
27
+ {size}
28
+ />
29
+ )
30
+ }
27
31
  <Links
28
32
  {size}
29
33
  {links}
@@ -0,0 +1,52 @@
1
+ ---
2
+ import type { ComponentProps, HTMLAttributes } from 'astro/types'
3
+ import Avatars from 'fulldev-ui/components/Avatars.astro'
4
+ import Element from 'fulldev-ui/components/Element.astro'
5
+ import Label from 'fulldev-ui/components/Label.astro'
6
+ import Rating from 'fulldev-ui/components/Rating.astro'
7
+
8
+ interface Props extends HTMLAttributes<'div'> {
9
+ avatar?: ComponentProps<typeof Avatars>['avatar']
10
+ avatars?: ComponentProps<typeof Avatars>['avatars']
11
+ rating?: number | undefined
12
+ text?: string | undefined
13
+ }
14
+
15
+ const { avatar, avatars, rating, text, ...rest } = Astro.props
16
+ ---
17
+
18
+ <Element
19
+ class:list="proof"
20
+ {...rest}
21
+ >
22
+ <Avatars
23
+ {avatar}
24
+ {avatars}
25
+ />
26
+ <Element class="proof-segment">
27
+ <Rating
28
+ score={rating}
29
+ size="sm"
30
+ />
31
+ <Label
32
+ size="md"
33
+ text={text}
34
+ />
35
+ </Element>
36
+ </Element>
37
+
38
+ <style is:global>
39
+ @layer fulldev {
40
+ .proof {
41
+ @apply flex items-center;
42
+
43
+ > .avatar {
44
+ @apply -mr-5 last-of-type:mr-2;
45
+ }
46
+
47
+ .proof-segment {
48
+ @apply flex flex-col gap-1;
49
+ }
50
+ }
51
+ }
52
+ </style>
@@ -5,7 +5,7 @@ import Icon from 'fulldev-ui/components/Icon.astro'
5
5
  import Label from 'fulldev-ui/components/Label.astro'
6
6
 
7
7
  interface Props extends HTMLAttributes<'select'> {
8
- show?: any
8
+ size?: 'sm' | 'md' | 'lg' | undefined
9
9
  label?: string | undefined
10
10
  placeholder?: string | undefined
11
11
  options?: string[] | undefined
@@ -23,26 +23,26 @@ const { text, ...rest } = Astro.props
23
23
  <style is:global>
24
24
  @layer fulldev {
25
25
  .tagline {
26
- @apply font-semibold leading-tight text-primary;
26
+ @apply font-medium text-primary;
27
27
 
28
28
  &.size-xs {
29
- @apply text-xs;
29
+ @apply text-xs leading-tight;
30
30
  }
31
31
 
32
32
  &.size-sm {
33
- @apply text-sm;
33
+ @apply text-sm leading-tight;
34
34
  }
35
35
 
36
36
  &.size-md {
37
- @apply text-base;
37
+ @apply text-base leading-tight;
38
38
  }
39
39
 
40
40
  &.size-lg {
41
- @apply text-lg;
41
+ @apply text-lg leading-tight;
42
42
  }
43
43
 
44
44
  &.size-xl {
45
- @apply text-xl;
45
+ @apply text-xl leading-tight;
46
46
  }
47
47
  }
48
48
  }
@@ -3,20 +3,17 @@ import type { MarkdownHeading } from 'astro'
3
3
  import type { HTMLAttributes } from 'astro/types'
4
4
  import Element from 'fulldev-ui/components/Element.astro'
5
5
  import Heading from 'fulldev-ui/components/Heading.astro'
6
- import Link from 'fulldev-ui/components/Link.astro'
6
+ import Links from './Links.astro'
7
7
 
8
8
  interface Props extends HTMLAttributes<'div'> {
9
- headings?: MarkdownHeading[] | undefined
9
+ size?: 'sm' | 'md' | 'lg' | undefined
10
10
  heading?: string | undefined
11
+ headings?: MarkdownHeading[] | undefined
11
12
  }
12
13
 
13
- const { headings, heading, ...rest } = Astro.props
14
-
15
- const filteredHeadings = headings?.filter(
16
- (heading: any) => heading.depth >= 2 && heading.depth <= 4
17
- )
14
+ const { size = 'md', heading, headings, ...rest } = Astro.props
18
15
 
19
- const h1 = headings?.find((heading: any) => heading.depth === 1)
16
+ const filteredHeadings = headings?.filter((heading: any) => heading.depth <= 4)
20
17
 
21
18
  const links = filteredHeadings?.map((button: any) => ({
22
19
  text: button.text,
@@ -27,34 +24,39 @@ const links = filteredHeadings?.map((button: any) => ({
27
24
 
28
25
  <Element
29
26
  class:list="toc"
30
- show={filteredHeadings?.length}
31
27
  {...rest}
32
28
  >
33
- <Heading text={h1?.text || heading} />
34
29
  {
35
- links?.map((link) => (
36
- <Link
37
- variant="muted"
30
+ (links?.length || 0) > 0 && (
31
+ <Heading
32
+ as="h6"
33
+ text={heading}
38
34
  size="sm"
39
- {...link}
40
35
  />
41
- ))
36
+ )
42
37
  }
43
- </Element>
44
-
45
- <style is:global>
46
- @layer fulldev {
47
- .toc {
48
- @apply sticky bottom-0 top-sticky-16 z-10 hidden w-48 shrink-0 flex-col items-start justify-start gap-3 overflow-y-auto md:flex;
49
- @apply scrollbar scrollbar-track-transparent scrollbar-thumb-accent scrollbar-thumb-rounded-full scrollbar-w-2 hover:scrollbar-thumb-accent-hover;
50
-
51
- .depth-3 {
52
- @apply pl-3;
53
- }
54
-
55
- .depth-4 {
56
- @apply relative pl-6;
38
+ <Links
39
+ {size}
40
+ {links}
41
+ />
42
+
43
+ <style is:global>
44
+ @layer fulldev {
45
+ .toc {
46
+ @apply flex flex-col gap-2;
47
+
48
+ .link:first-child {
49
+ @apply font-bold text-foreground;
50
+ }
51
+
52
+ .link.depth-3 {
53
+ @apply pl-3;
54
+ }
55
+
56
+ .link.depth-4 {
57
+ @apply pl-6;
58
+ }
57
59
  }
58
60
  }
59
- }
60
- </style>
61
+ </style>
62
+ </Element>
@@ -1,4 +1,5 @@
1
1
  import { defineCollection } from 'astro:content'
2
+ import { cardSchema } from 'fulldev-ui/schemas/card.ts'
2
3
  import { pageSchema } from 'fulldev-ui/schemas/page.ts'
3
4
 
4
5
  export const collections = {
@@ -10,4 +11,8 @@ export const collections = {
10
11
  type: 'data',
11
12
  schema: pageSchema,
12
13
  }),
14
+ records: defineCollection({
15
+ type: 'data',
16
+ schema: cardSchema,
17
+ }),
13
18
  }