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
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Select
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Social
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Socials
4
4
  description: A utility component for displaying multiple socials.
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Switch
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Tagline
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Textarea
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Using components
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Customization
4
4
  description: Customize styles and components.
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Integrating frameworks
4
4
  description: Compatible with all JS and CSS frameworks.
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Introduction
4
4
  description: Everything you need to rapidly build content-driven websites. Components, blocks, layouts and complete page generation.
5
5
  ---
@@ -1,25 +1,10 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Installation
4
- description: How to install dependencies and setup the integration.
5
4
  ---
6
5
 
7
6
  import Link from 'fulldev-ui/components/Link.astro'
8
7
 
9
- ## Add to existing project
10
-
11
- If you don't have an existing project, you can create a new one using the [starter template](https://github.com/fulldotdev/starter).
12
-
13
- ### Automatic setup
14
-
15
- Run the following command to automatically install the dependencies and add the integration.
16
-
17
- ```bash
18
- npx astro add fulldev-ui
19
- ```
20
-
21
- ### Manual setup
22
-
23
8
  Run any of the following commands to add fulldev-ui to your dependencies.
24
9
 
25
10
  ```bash
@@ -43,11 +28,3 @@ export default defineConfig({
43
28
  integrations: [fulldev()],
44
29
  })
45
30
  ```
46
-
47
- ## Create a new project
48
-
49
- Run the following command to setup a new project from the [starter template](https://github.com/fulldotdev/starter).
50
-
51
- ```bash
52
- npx astro create --template fulldev-ui
53
- ```
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Doc
4
4
  description: For documentation pages, just like this one.
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Page
4
4
  description: For marketing pages, just like the home page.
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Generating Pages
4
4
  description: Go a step further than just using components.
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Card
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Dialog
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Drawer
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Card
4
4
  description: A box with a border, padding and rounded corners
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Code
4
4
  description: Enhanced code component with live preview.
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Container
4
4
  description: Sets a max-width, padding and centers the content
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Drawer
4
4
  description: A panel that slides out from the side of the screen
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Group
4
4
  description: Group buttons and similar components
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Container
4
4
  description: Sets a head, body and some base styles
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Masonry
4
4
  description: Places items like cards in a masonry layout
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Matrix
4
4
  description: Places items like cards in a grid
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Panel
4
4
  description: A box with a border, padding and rounded corners used for sections
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Prose
4
4
  description: Applies styling to child components
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Section
4
4
  description: Sets vertical padding and some base styles
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Stack
4
4
  description: Places items like cards in a horizontal or vertical stack
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Writeup
4
4
  description: Applies styling to child components, similar to Prose
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- _layout: doc
2
+ _block: Content7
3
3
  title: Using Structures
4
4
  description: Build consistent blocks and layouts with structures.
5
5
  ---
@@ -1,39 +1,33 @@
1
1
  ---
2
- head:
3
- title: Fulldev UI - Astro component and block library, open-source
4
- description: Make websites rapidly with pre-built components and blocks.
5
- image:
6
- src: /images/og-image.png
2
+ _schema: page
3
+ _block: Hero1
7
4
 
8
- title: Home
5
+ title: Fulldev UI - Astro component and block library, open-source
6
+ description: Make websites rapidly with pre-built components and blocks.
7
+ heading: The Astro UI library for building content sites
8
+ paragraph: Components and blocks to build content-driven websites.
9
+ buttons:
10
+ - text: Get Started
11
+ href: /docs/
12
+ - text: GitHub
13
+ href: https://github.com/fulldotdev/ui
14
+ icon: brand-github
15
+ target: _blank
9
16
 
10
17
  sections:
11
- - _block: Hero1
12
- badge:
13
- text: 'Introducing v0.6: layouts & pagebuilding'
14
- href: /overview/installation/
15
- heading: Build complete websites with this Astro UI library
16
- paragraph: 'Everything you need to rapidly build content-driven websites. Components, blocks, layouts and complete page generation.'
17
- buttons:
18
- - text: Get Started
19
- href: /docs/
20
- - text: GitHub
21
- href: https://github.com/fulldotdev/ui
22
- icon: brand-github
23
- target: _blank
24
-
25
- - _block: Feature1
18
+ - _block: Content2
26
19
  tagline: Blocks
27
20
  heading: Use pre-built blocks with just props
28
21
  paragraph: We created a great gallery of blocks to build content sites with a modern look and feel, all of our blocks are build with components from the library to achieve a consistent look.
29
22
  image:
30
23
  src: /images/block-code.png
31
24
  buttons:
32
- - href: /blocks/
25
+ - href: /docs/blocks/
33
26
  icon: layout
34
27
  text: View blocks
28
+ variant: secondary
35
29
 
36
- - _block: Feature1
30
+ - _block: Content2
37
31
  tagline: Components
38
32
  heading: Or build your own, with easy to use components
39
33
  paragraph: Our rich set of components make it easy to build your own blocks with great customizability through props and global theming.
@@ -41,15 +35,16 @@ sections:
41
35
  src: /images/component-code.png
42
36
  buttons:
43
37
  - text: View components
44
- href: /components/badge/
38
+ href: /docs/components/
45
39
  icon: code
40
+ variant: secondary
46
41
 
47
42
  - _block: Cta1
48
43
  heading: Build content websites in a fraction of time
49
44
  paragraph: A library of components and blocks to build content sites, fast.
50
45
  buttons:
51
46
  - text: Get Started
52
- href: /overview/installation/
47
+ href: /docs/
53
48
  - text: Github
54
49
  href: https://github.com/fulldotdev/ui
55
50
  icon: brand-github
@@ -1,5 +1,9 @@
1
1
  @import url(https://fonts.bunny.net/css?family=inter:100,200,300,400,500,600,700,800,900);
2
2
 
3
+ * {
4
+ font-family: 'Inter', sans-serif;
5
+ }
6
+
3
7
  mark {
4
8
  background-color: var(--brand-12) !important;
5
9
  color: var(--brand-1) !important;
@@ -50,6 +50,7 @@ export default function fulldevIntegration(
50
50
  URL: envField.string({
51
51
  context: 'client',
52
52
  access: 'public',
53
+ optional: true,
53
54
  }),
54
55
  STRIPE_RESTRICTED_KEY: envField.string({
55
56
  context: 'client',
@@ -1,29 +1,64 @@
1
1
  ---
2
2
  import type { ComponentProps } from 'astro/types'
3
- import Banner from 'fulldev-ui/blocks/Banner.astro'
4
- import Footer from 'fulldev-ui/blocks/Footer.astro'
5
- import Header from 'fulldev-ui/blocks/Header.astro'
3
+ import type { CollectionEntry } from 'astro:content'
6
4
  import Block from 'fulldev-ui/components/Block.astro'
7
5
  import Element from 'fulldev-ui/components/Element.astro'
8
6
  import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
9
7
  import Layout from 'fulldev-ui/structures/Layout.astro'
10
8
 
11
- type Props = ComponentProps<typeof Layout> & PageSchema
9
+ type Props = ComponentProps<typeof Layout> &
10
+ PageSchema & {
11
+ render: CollectionEntry<'pages'>['render']
12
+ }
12
13
 
13
- const { banner, sidebar, header, sections, footer } = Astro.props
14
+ const {
15
+ _block,
16
+ title,
17
+ heading,
18
+ description,
19
+ paragraph,
20
+ banner,
21
+ sidebar,
22
+ header,
23
+ sections,
24
+ footer,
25
+ render,
26
+ navigation,
27
+ ...rest
28
+ } = Astro.props
29
+
30
+ const { Content, headings } = await render()
14
31
  ---
15
32
 
16
33
  <Layout
17
34
  class:list="page"
18
- {...Astro.props}
35
+ {...rest}
19
36
  >
20
- <Banner {...banner} />
21
- <Header
22
- {...sidebar}
37
+ <Block
38
+ _block="Banner"
39
+ {...banner}
40
+ />
41
+ <Block
42
+ _block="Header"
43
+ {...rest}
23
44
  {...header}
24
45
  />
25
46
  <Element as="main">
47
+ <Block
48
+ _block={_block || 'Hero1'}
49
+ depth={1}
50
+ heading={heading || title}
51
+ paragraph={paragraph || description}
52
+ {headings}
53
+ {...rest}
54
+ >
55
+ <Content />
56
+ </Block>
26
57
  {sections?.map((section) => <Block {...section} />)}
27
58
  </Element>
28
- <Footer {...footer} />
59
+ <Block
60
+ _block="Footer"
61
+ {...rest}
62
+ {...footer}
63
+ />
29
64
  </Layout>
@@ -1,9 +1,9 @@
1
- ---
1
+ <!-- ---
2
2
  // @ts-nocheck
3
3
  import type { ComponentProps } from 'astro/types'
4
4
  import { getImage } from 'astro:assets'
5
5
  import type { CollectionEntry } from 'astro:content'
6
- import { getCollection, getEntry } from 'astro:content'
6
+ import { getCollection,getEntry } from 'astro:content'
7
7
  import Products1 from 'fulldev-ui/blocks/Products1.astro'
8
8
  import CartForm from 'fulldev-ui/components/CartForm.svelte'
9
9
  import Element from 'fulldev-ui/components/Element.astro'
@@ -58,7 +58,7 @@ const baseLayout = await getEntry('layouts', 'base')
58
58
  <Element class:list="product-container">
59
59
  <Element class:list="product-main">
60
60
  <Gallery {images} />
61
- <!-- <Prose {render} /> -->
61
+ <Prose {render} />
62
62
  </Element>
63
63
  <Element class:list="product-segment">
64
64
  <Element class:list="product-content">
@@ -69,10 +69,10 @@ const baseLayout = await getEntry('layouts', 'base')
69
69
  />
70
70
  <Paragraph text={description} />
71
71
  </Element>
72
- <!-- <CartForm
72
+ <CartForm
73
73
  product={Astro.props}
74
74
  client:load
75
- /> -->
75
+ />
76
76
  <List
77
77
  size="sm"
78
78
  items={baseLayout.data.banner?.split('|')}
@@ -112,4 +112,4 @@ const baseLayout = await getEntry('layouts', 'base')
112
112
  @apply bg-background;
113
113
  }
114
114
  }
115
- </style>
115
+ </style> -->
@@ -0,0 +1,16 @@
1
+ <form
2
+ method="post"
3
+ action="https://app.loops.so/api/newsletter-form/cljwl3ixr003pmi0pw4q1bvoy"
4
+ >
5
+ <input
6
+ type="text"
7
+ name="firstName"
8
+ required
9
+ />
10
+ <input
11
+ type="email"
12
+ name="email"
13
+ required
14
+ />
15
+ <button type="submit">Sign up</button>
16
+ </form>
@@ -1,56 +1,37 @@
1
1
  import { z } from 'astro:content'
2
- import { badgeSchema } from 'fulldev-ui/schemas/badge.ts'
3
- import { buttonSchema } from 'fulldev-ui/schemas/button.ts'
4
- import { channelSchema } from 'fulldev-ui/schemas/channel.ts'
5
- import { imageSchema } from 'fulldev-ui/schemas/image.ts'
6
- import { linkSchema } from 'fulldev-ui/schemas/link.ts'
7
- import { logoSchema } from 'fulldev-ui/schemas/logo.ts'
2
+ import { cardSchema } from 'fulldev-ui/schemas/card.ts'
8
3
  import { menuSchema } from 'fulldev-ui/schemas/menu.ts'
9
4
  import { pathSchema } from 'fulldev-ui/schemas/path.ts'
10
5
 
11
- export const blockSchema = z
12
- .object({
6
+ export const blockSchema = cardSchema
7
+ .extend({
13
8
  _block: z.string().optional(),
14
- dark: z.boolean().optional(),
9
+ depth: z.union([z.literal(1), z.literal(2), z.literal(3)]).optional(),
15
10
  themer: z.boolean().optional(),
16
11
  search: z.boolean().optional(),
17
12
  cart: z.boolean().optional(),
18
- text: z.string().optional(),
19
- content: z.string().optional(),
20
- tagline: z.string().optional(),
21
- heading: z.string().optional(),
22
- paragraph: z.string().optional(),
23
- list: z.string().array().optional(),
24
- socials: z.string().array().optional(),
25
- logo: logoSchema.optional(),
26
- link: linkSchema.optional(),
27
- links: linkSchema.array().optional(),
28
- menus: menuSchema.array().optional(),
29
- badge: badgeSchema.optional(),
30
- badges: badgeSchema.array().optional(),
31
- button: buttonSchema.optional(),
32
- buttons: buttonSchema.array().optional(),
33
- image: imageSchema.optional(),
34
- images: imageSchema.array().optional(),
35
- channels: channelSchema.array().optional(),
13
+ cards: cardSchema.array().optional(),
36
14
  pages: pathSchema('pages').array().optional(),
37
- products: pathSchema('pages').array().optional(),
38
- cards: z
15
+ records: pathSchema('records').array().optional(),
16
+ soldout: z.boolean().optional(),
17
+ variants: z.record(z.string(), z.string().array()).optional(),
18
+ categories: pathSchema('pages').array().optional(),
19
+ menus: menuSchema.array().optional(),
20
+ form: z
39
21
  .object({
40
- icon: z.string().optional(),
41
- rating: z.number().optional(),
42
- tagline: z.string().optional(),
43
- heading: z.string().optional(),
44
- paragraph: z.string().optional(),
45
- list: z.string().array().optional(),
46
- badge: badgeSchema.optional(),
47
- badges: badgeSchema.array().optional(),
48
- button: buttonSchema.optional(),
49
- buttons: buttonSchema.array().optional(),
50
- image: imageSchema.optional(),
22
+ fields: z.array(z.any()).optional(),
23
+ submit: z.string().optional(),
51
24
  })
52
25
  .strict()
53
- .array()
26
+ .optional(),
27
+ headings: z
28
+ .array(
29
+ z.object({
30
+ depth: z.number(),
31
+ slug: z.string(),
32
+ text: z.string(),
33
+ })
34
+ )
54
35
  .optional(),
55
36
  })
56
37
  .strict()
@@ -1,8 +1,10 @@
1
1
  import { z } from 'astro:content'
2
+ import { imageSchema } from 'fulldev-ui/schemas/image.ts'
2
3
 
3
4
  export const buttonSchema = z
4
5
  .object({
5
6
  icon: z.string().optional(),
7
+ image: imageSchema.optional(),
6
8
  text: z.string().optional(),
7
9
  href: z.string().optional(),
8
10
  target: z.literal('_blank').optional(),
@@ -0,0 +1,43 @@
1
+ import { z } from 'astro:content'
2
+ import { buttonSchema } from 'fulldev-ui/schemas/button.ts'
3
+ import { channelSchema } from 'fulldev-ui/schemas/channel.ts'
4
+ import { chipSchema } from 'fulldev-ui/schemas/chip.ts'
5
+ import { imageSchema } from 'fulldev-ui/schemas/image.ts'
6
+ import { linkSchema } from 'fulldev-ui/schemas/link.ts'
7
+ import { logoSchema } from 'fulldev-ui/schemas/logo.ts'
8
+ import { menuSchema } from 'fulldev-ui/schemas/menu.ts'
9
+ import { proofSchema } from 'fulldev-ui/schemas/proof.ts'
10
+
11
+ export const cardSchema = z
12
+ .object({
13
+ target: z.string().optional(),
14
+ href: z.string().optional(),
15
+ order: z.number().optional(),
16
+ dark: z.boolean().optional(),
17
+ text: z.string().optional(),
18
+ content: z.string().optional(),
19
+ tagline: z.string().optional(),
20
+ heading: z.string().optional(),
21
+ paragraph: z.string().optional(),
22
+ list: z.string().array().optional(),
23
+ socials: z.string().array().optional(),
24
+ logo: logoSchema.optional(),
25
+ link: linkSchema.optional(),
26
+ links: linkSchema.array().optional(),
27
+ menus: menuSchema.array().optional(),
28
+ chip: chipSchema.optional(),
29
+ badges: z.string().array().optional(),
30
+ button: buttonSchema.optional(),
31
+ buttons: buttonSchema.array().optional(),
32
+ image: imageSchema.optional(),
33
+ images: imageSchema.array().optional(),
34
+ channels: channelSchema.array().optional(),
35
+ proof: proofSchema.optional(),
36
+ price: z.number().optional(),
37
+ icon: z.string().optional(),
38
+ rating: z.number().optional(),
39
+ avatar: imageSchema.optional(),
40
+ avatars: imageSchema.array().optional(),
41
+ soldout: z.boolean().optional(),
42
+ })
43
+ .strict()
@@ -10,5 +10,6 @@ export const channelSchema = z
10
10
  href: z.string().optional(),
11
11
  size: z.enum(['sm', 'md', 'lg']).optional(),
12
12
  variant: z.enum(['secondary', 'outline']).optional(),
13
+ target: z.enum(['_blank', '_self', '_parent', '_top']).optional(),
13
14
  })
14
15
  .strict() satisfies z.ZodType<ComponentProps<typeof Channel>>