fulldev-ui 0.6.0-beta.2 → 0.6.0-beta.3
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.
- package/package.json +1 -1
- package/src/blocks/Banner1.astro +35 -0
- package/src/blocks/Contact1.astro +92 -0
- package/src/blocks/Cta1.astro +72 -0
- package/src/blocks/Feature1.astro +67 -0
- package/src/blocks/Footer.astro +47 -54
- package/src/blocks/Header1.astro +192 -0
- package/src/blocks/Hero1.astro +74 -0
- package/src/blocks/Intro1.astro +56 -0
- package/src/blocks/Products1.astro +90 -0
- package/src/blocks/{Hero.astro → _Hero.astro} +7 -6
- package/src/components/Badge.astro +10 -18
- package/src/components/Banner.astro +26 -0
- package/src/components/Block.astro +49 -0
- package/src/components/Blocks.astro +26 -0
- package/src/components/Button.astro +10 -23
- package/src/components/Card.astro +8 -150
- package/src/components/Cart.astro +1 -0
- package/src/components/CartSummary.astro +3 -3
- package/src/components/Channel.astro +5 -14
- package/src/components/Container.astro +25 -0
- package/src/components/Drawer.astro +57 -118
- package/src/components/DrawerOld.astro +143 -0
- package/src/components/Element.astro +2 -0
- package/src/components/Form.astro +5 -3
- package/src/components/Head.astro +18 -32
- package/src/components/Header.astro +8 -105
- package/src/components/Heading.astro +29 -70
- package/src/components/Icon.astro +6 -4
- package/src/components/Link.astro +12 -18
- package/src/components/Logo.astro +31 -18
- package/src/components/Navigation.astro +39 -0
- package/src/components/Panel.astro +25 -0
- package/src/components/Paragraph.astro +24 -7
- package/src/components/Price.astro +4 -4
- package/src/components/Prose.astro +41 -132
- package/src/components/Rating.astro +24 -75
- package/src/components/Search.astro +4 -3
- package/src/components/Section.astro +20 -29
- package/src/components/Sidebar.astro +44 -64
- package/src/components/Social.astro +9 -2
- package/src/components/Tagline.astro +21 -31
- package/src/components/Toc.astro +12 -3
- package/src/components/_Author.astro +90 -0
- package/src/components/_Header.astro +129 -0
- package/src/components/_Prose copy.astro +172 -0
- package/src/components/_Sidebar copy.astro +87 -0
- package/src/content/categories/category.md +7 -0
- package/src/content/config.ts +7 -8
- package/src/content/docs/components/text.mdx +47 -0
- package/src/content/docs/components.mdx +1 -4
- package/src/content/docs/index.mdx +1 -4
- package/src/content/layouts/base.yml +41 -80
- package/src/content/layouts/docs.yml +2 -70
- package/src/content/pages/index.mdx +17 -25
- package/src/content/{categories/mugs.md → posts/post.md} +1 -1
- package/src/content/products/product.md +3 -3
- package/src/css/theme.css +2 -0
- package/src/images/favicon/android-chrome-192x192.png +0 -0
- package/src/images/favicon/android-chrome-512x512.png +0 -0
- package/src/images/favicon/apple-touch-icon.png +0 -0
- package/src/images/favicon/browserconfig.xml +9 -0
- package/src/images/favicon/favicon-16x16.png +0 -0
- package/src/images/favicon/favicon-32x32.png +0 -0
- package/src/images/favicon/favicon-48x48.png +0 -0
- package/src/images/favicon/favicon.ico +0 -0
- package/src/images/favicon/favicon.svg +16 -0
- package/src/images/favicon/manifest.webmanifest +30 -0
- package/src/images/favicon/mstile-150x150.png +0 -0
- package/src/images/favicon/safari-pinned-tab.svg +16 -0
- package/src/images/favicon/yandex-browser-50x50.png +0 -0
- package/src/images/favicon/yandex-browser-manifest.json +9 -0
- package/src/integration/index.ts +10 -1
- package/src/layouts/CategoryLayout.astro +16 -9
- package/src/layouts/DocLayout.astro +49 -7
- package/src/layouts/Layout.astro +55 -27
- package/src/layouts/PageLayout.astro +12 -5
- package/src/layouts/PostLayout.astro +7 -5
- package/src/layouts/ProductLayout.astro +12 -7
- package/src/pages/test.astro +7 -1
- package/src/schemas/blocks/banner.ts +10 -0
- package/src/schemas/blocks/categories.ts +14 -0
- package/src/schemas/blocks/contact.ts +18 -0
- package/src/schemas/blocks/cta.ts +18 -0
- package/src/schemas/blocks/feature.ts +18 -0
- package/src/schemas/blocks/hero.ts +20 -0
- package/src/schemas/blocks/intro.ts +16 -0
- package/src/schemas/blocks/products.ts +14 -0
- package/src/schemas/categorySchema.ts +8 -8
- package/src/schemas/components/avatar.ts +4 -1
- package/src/schemas/components/badge.ts +16 -11
- package/src/schemas/components/block.ts +18 -0
- package/src/schemas/components/button.ts +13 -19
- package/src/schemas/components/channel.ts +15 -9
- package/src/schemas/components/footer.ts +15 -14
- package/src/schemas/components/head.ts +17 -0
- package/src/schemas/components/header.ts +19 -16
- package/src/schemas/components/heading.ts +7 -1
- package/src/schemas/components/icon.ts +7 -1
- package/src/schemas/components/image.ts +17 -14
- package/src/schemas/components/link.ts +10 -16
- package/src/schemas/components/logo.ts +12 -2
- package/src/schemas/components/menu.ts +11 -13
- package/src/schemas/components/navigation.ts +10 -0
- package/src/schemas/components/paragraph.ts +9 -0
- package/src/schemas/components/price.ts +9 -0
- package/src/schemas/components/rating.ts +8 -13
- package/src/schemas/components/sidebar.ts +14 -12
- package/src/schemas/components/social.ts +16 -1
- package/src/schemas/components/tagline.ts +7 -1
- package/src/schemas/docSchema.ts +6 -2
- package/src/schemas/imageSchema.ts +30 -1
- package/src/schemas/layoutSchema.ts +14 -20
- package/src/schemas/pageSchema.ts +9 -12
- package/src/schemas/postSchema.ts +6 -8
- package/src/schemas/productSchema.ts +18 -18
- package/src/types/global-props.ts +0 -9
- package/src/types/{virtual-modules.d.ts → virtual.d.ts} +1 -1
- package/src/utils/getHref.ts +3 -2
- package/tsconfig.json +1 -3
- package/example.svelte +0 -0
- package/parent.svelte +0 -0
- package/src/App.svelte +0 -0
- package/src/blocks/Banner.astro +0 -35
- package/src/blocks/Categories.astro +0 -12
- package/src/blocks/Colleagues.astro +0 -12
- package/src/blocks/Contact.astro +0 -117
- package/src/blocks/Content.astro +0 -130
- package/src/blocks/Cta.astro +0 -13
- package/src/blocks/Excerpt.astro +0 -12
- package/src/blocks/Features.astro +0 -11
- package/src/blocks/Header.astro +0 -7
- package/src/blocks/Intro.astro +0 -101
- package/src/blocks/Jobs.astro +0 -12
- package/src/blocks/Posts.astro +0 -11
- package/src/blocks/Prices.astro +0 -24
- package/src/blocks/Product.astro +0 -89
- package/src/blocks/Products.astro +0 -101
- package/src/blocks/Reviews.astro +0 -12
- package/src/blocks/_Contact.astro +0 -112
- package/src/components/CartForm.astro +0 -120
- package/src/components/CartList.astro +0 -122
- package/src/components/Lead.astro +0 -46
- package/src/components/ProductCard.astro +0 -52
- package/src/components/Text.astro +0 -43
- package/src/components/Writeup.astro +0 -108
- package/src/components/_CartList backup.astro +0 -125
- package/src/components/_CartList copy.astro +0 -213
- package/src/components/_CartListSimple.astro +0 -148
- package/src/components/sections.astro +0 -28
- package/src/content/docs/components/lead.mdx +0 -49
- package/src/content/docs/components/paragraph.mdx +0 -49
- package/src/loaders/imageLoader.ts +0 -26
- package/src/schemas/archive/_pageSchema.ts +0 -94
- package/src/schemas/components/avatars.ts +0 -4
- package/src/schemas/components/banner.ts +0 -3
- package/src/schemas/components/buttons.ts +0 -4
- package/src/schemas/components/card.ts +0 -43
- package/src/schemas/components/cards.ts +0 -4
- package/src/schemas/components/channels.ts +0 -4
- package/src/schemas/components/global.ts +0 -16
- package/src/schemas/components/links.ts +0 -4
- package/src/schemas/components/list.ts +0 -3
- package/src/schemas/components/section.ts +0 -17
- package/src/schemas/components/sections.ts +0 -3
- package/src/schemas/components/socials.ts +0 -4
- package/src/schemas/components/subheader.ts +0 -10
- package/src/schemas/components/text.ts +0 -3
- package/src/schemas/components/themer.ts +0 -3
- package/src/schemas/components/toc.ts +0 -3
- package/src/schemas/components/writeup.ts +0 -20
- package/src/schemas/fields/categories.ts +0 -3
- package/src/schemas/fields/description.ts +0 -3
- package/src/schemas/fields/href.ts +0 -3
- package/src/schemas/fields/image.ts +0 -24
- package/src/schemas/fields/images.ts +0 -4
- package/src/schemas/fields/order.ts +0 -3
- package/src/schemas/fields/price.ts +0 -3
- package/src/schemas/fields/products.ts +0 -5
- package/src/schemas/fields/seo.ts +0 -12
- package/src/schemas/fields/soldout.ts +0 -3
- package/src/schemas/fields/title.ts +0 -3
- package/src/schemas/fields/variants.ts +0 -3
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import { z } from 'astro:content'
|
|
2
|
-
import avatar from './avatar'
|
|
3
|
-
import avatars from './avatars'
|
|
4
|
-
import text from './text'
|
|
5
2
|
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
.partial()
|
|
15
|
-
)
|
|
3
|
+
export const ratingSchema = z
|
|
4
|
+
.object({
|
|
5
|
+
score: z.number().optional(),
|
|
6
|
+
size: z.enum(['sm', 'md', 'lg']).default('md').optional(),
|
|
7
|
+
})
|
|
8
|
+
.strict()
|
|
9
|
+
|
|
10
|
+
export type RatingSchema = z.infer<typeof ratingSchema>
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { z } from 'astro:content'
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
2
|
+
import { logoSchema } from '../components/logo'
|
|
3
|
+
import { headingSchema } from './heading'
|
|
4
|
+
import { linkSchema } from './link'
|
|
5
|
+
import { menuSchema } from './menu'
|
|
6
6
|
|
|
7
|
-
export
|
|
7
|
+
export const sidebarSchema = z
|
|
8
8
|
.object({
|
|
9
|
-
|
|
10
|
-
logo,
|
|
11
|
-
heading,
|
|
12
|
-
|
|
9
|
+
company: z.string().optional(),
|
|
10
|
+
logo: logoSchema.optional(),
|
|
11
|
+
heading: headingSchema.shape.text,
|
|
12
|
+
themer: z.boolean().optional(),
|
|
13
|
+
menus: menuSchema.array().optional(),
|
|
14
|
+
links: linkSchema.array().optional(),
|
|
13
15
|
})
|
|
14
|
-
.
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
.strict()
|
|
17
|
+
|
|
18
|
+
export type SidebarSchema = z.infer<typeof sidebarSchema>
|
|
@@ -1,3 +1,18 @@
|
|
|
1
1
|
import { z } from 'astro:content'
|
|
2
|
+
import { iconSchema } from './icon'
|
|
2
3
|
|
|
3
|
-
export
|
|
4
|
+
export const socialSchema = z
|
|
5
|
+
.object({
|
|
6
|
+
icon: iconSchema.optional(),
|
|
7
|
+
text: z.string().optional(),
|
|
8
|
+
href: z.string().optional(),
|
|
9
|
+
target: z.literal('_blank').default('_blank').optional(),
|
|
10
|
+
size: z.enum(['sm', 'md', 'lg']).default('sm').optional(),
|
|
11
|
+
variant: z
|
|
12
|
+
.enum(['primary', 'secondary', 'outline', 'ghost'])
|
|
13
|
+
.default('secondary')
|
|
14
|
+
.optional(),
|
|
15
|
+
})
|
|
16
|
+
.strict()
|
|
17
|
+
|
|
18
|
+
export type ButtonSchema = z.infer<typeof socialSchema>
|
package/src/schemas/docSchema.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { z } from 'astro:content'
|
|
2
|
-
import
|
|
2
|
+
import { headSchema } from 'fulldev-ui/schemas/components/head.ts'
|
|
3
|
+
import { imageSchema } from './imageSchema'
|
|
3
4
|
|
|
4
5
|
export const docSchema = z
|
|
5
6
|
.object({
|
|
6
|
-
title,
|
|
7
|
+
title: z.string().optional(),
|
|
8
|
+
description: z.string().optional(),
|
|
9
|
+
image: imageSchema.optional(),
|
|
10
|
+
head: headSchema.optional(),
|
|
7
11
|
})
|
|
8
12
|
.strict()
|
|
9
13
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'astro:content'
|
|
2
2
|
|
|
3
|
-
export
|
|
3
|
+
export const imageSchema = z
|
|
4
4
|
.object({
|
|
5
5
|
id: z.string(),
|
|
6
6
|
src: z.string(),
|
|
@@ -10,3 +10,32 @@ export default z
|
|
|
10
10
|
format: z.string(),
|
|
11
11
|
})
|
|
12
12
|
.passthrough()
|
|
13
|
+
|
|
14
|
+
export type ImageSchema = z.infer<typeof imageSchema>
|
|
15
|
+
|
|
16
|
+
export const imageLoader = async () => {
|
|
17
|
+
const files = import.meta.glob('/src/images/**/*.{webp,png,jpg,jpeg,svg}', {
|
|
18
|
+
eager: true,
|
|
19
|
+
})
|
|
20
|
+
const entries = import.meta.glob('/src/images/**/*.{yml,yaml,json}', {
|
|
21
|
+
eager: true,
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
const allImages = Object.entries(files).map(([src, file]) => {
|
|
25
|
+
const id = src.split('/images/').pop()
|
|
26
|
+
const matchPath = Object.keys(entries).find(
|
|
27
|
+
(entry) => entry.split('.').shift() === src
|
|
28
|
+
) as any
|
|
29
|
+
const matchFile = entries[matchPath]
|
|
30
|
+
const matchData = matchFile ? (matchFile as any).default : {}
|
|
31
|
+
const fileData = file ? (file as any).default : {}
|
|
32
|
+
return {
|
|
33
|
+
id,
|
|
34
|
+
...fileData,
|
|
35
|
+
src,
|
|
36
|
+
...matchData,
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
return allImages as any
|
|
41
|
+
}
|
|
@@ -1,28 +1,22 @@
|
|
|
1
1
|
import { z } from 'astro:content'
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
2
|
+
import { footerSchema } from 'fulldev-ui/schemas/components/footer'
|
|
3
|
+
import { headSchema } from 'fulldev-ui/schemas/components/head.ts'
|
|
4
|
+
import { headerSchema } from 'fulldev-ui/schemas/components/header'
|
|
5
|
+
import { linkSchema } from 'fulldev-ui/schemas/components/link.ts'
|
|
6
|
+
import { sidebarSchema } from 'fulldev-ui/schemas/components/sidebar'
|
|
7
|
+
import { bannerSchema } from './blocks/banner'
|
|
8
|
+
import { navigationSchema } from './components/navigation'
|
|
8
9
|
|
|
9
10
|
export const layoutSchema = z
|
|
10
11
|
.object({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
seo,
|
|
19
|
-
banner,
|
|
20
|
-
header,
|
|
21
|
-
subheader,
|
|
22
|
-
footer,
|
|
23
|
-
sidebar,
|
|
12
|
+
head: headSchema.optional(),
|
|
13
|
+
banner: bannerSchema.optional(),
|
|
14
|
+
navigation: navigationSchema.optional(),
|
|
15
|
+
header: headerSchema.optional(),
|
|
16
|
+
subheader: linkSchema.array().optional(),
|
|
17
|
+
sidebar: sidebarSchema.optional(),
|
|
18
|
+
footer: footerSchema.optional(),
|
|
24
19
|
})
|
|
25
20
|
.strict()
|
|
26
|
-
.nullable()
|
|
27
21
|
|
|
28
22
|
export type LayoutSchema = z.infer<typeof layoutSchema>
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { z } from 'astro:content'
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import href from './fields/href'
|
|
6
|
-
import image from './fields/image'
|
|
7
|
-
import seo from './fields/seo'
|
|
2
|
+
import { blockSchema } from 'fulldev-ui/schemas/components/block.ts'
|
|
3
|
+
import { headSchema } from 'fulldev-ui/schemas/components/head.ts'
|
|
4
|
+
import { imageSchema } from 'fulldev-ui/schemas/components/image.ts'
|
|
8
5
|
|
|
9
6
|
export const pageSchema = z
|
|
10
7
|
.object({
|
|
11
|
-
|
|
12
|
-
title,
|
|
13
|
-
description,
|
|
14
|
-
image,
|
|
15
|
-
|
|
16
|
-
|
|
8
|
+
href: z.string().optional(),
|
|
9
|
+
title: z.string().optional(),
|
|
10
|
+
description: z.string().optional(),
|
|
11
|
+
image: imageSchema.optional(),
|
|
12
|
+
head: headSchema.optional(),
|
|
13
|
+
blocks: blockSchema.array().optional(),
|
|
17
14
|
})
|
|
18
15
|
.strict()
|
|
19
16
|
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { z } from 'astro:content'
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import description from 'fulldev-ui/schemas/fields/description'
|
|
5
|
-
import title from 'fulldev-ui/schemas/fields/title'
|
|
2
|
+
import { headSchema } from 'fulldev-ui/schemas/components/head.ts'
|
|
3
|
+
import { imageSchema } from 'fulldev-ui/schemas/components/image.ts'
|
|
6
4
|
|
|
7
5
|
export const postSchema = z
|
|
8
6
|
.object({
|
|
9
|
-
title,
|
|
10
|
-
description,
|
|
11
|
-
image,
|
|
12
|
-
|
|
7
|
+
title: z.string().optional(),
|
|
8
|
+
description: z.string().optional(),
|
|
9
|
+
image: imageSchema.optional(),
|
|
10
|
+
head: headSchema.optional(),
|
|
13
11
|
})
|
|
14
12
|
.strict()
|
|
15
13
|
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { z } from 'astro:content'
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import order from './fields/order'
|
|
7
|
-
import price from './fields/price'
|
|
8
|
-
import soldout from './fields/soldout'
|
|
9
|
-
import variants from './fields/variants'
|
|
2
|
+
import { headSchema } from 'fulldev-ui/schemas/components/head.ts'
|
|
3
|
+
import { imageSchema } from 'fulldev-ui/schemas/components/image.ts'
|
|
4
|
+
import pathSchema from 'fulldev-ui/schemas/utils/pathSchema.ts'
|
|
5
|
+
import { priceSchema } from './components/price'
|
|
10
6
|
|
|
11
|
-
export const productSchema = z
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
export const productSchema = z
|
|
8
|
+
.object({
|
|
9
|
+
title: z.string().optional(),
|
|
10
|
+
description: z.string().optional(),
|
|
11
|
+
image: imageSchema.optional(),
|
|
12
|
+
order: z.number().optional(),
|
|
13
|
+
price: priceSchema.shape.amount,
|
|
14
|
+
categories: pathSchema('categories').array().optional(),
|
|
15
|
+
images: imageSchema.array().optional(),
|
|
16
|
+
head: headSchema.optional(),
|
|
17
|
+
variants: z.record(z.string(), z.string().array()).optional(),
|
|
18
|
+
soldout: z.boolean().optional(),
|
|
19
|
+
})
|
|
20
|
+
.strict()
|
|
21
21
|
|
|
22
22
|
export type ProductSchema = z.infer<typeof productSchema>
|
|
@@ -5,12 +5,3 @@ export type GlobalProps = {
|
|
|
5
5
|
size?: 'sm' | 'md' | 'lg' | string | number | null | undefined
|
|
6
6
|
contrast?: boolean | undefined
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
// declare global {
|
|
10
|
-
// type GlobalProps = {
|
|
11
|
-
// theme?: 'light' | 'dark' | undefined
|
|
12
|
-
// color?: 'base' | 'brand' | undefined
|
|
13
|
-
// size?: 'sm' | 'md' | 'lg' | undefined
|
|
14
|
-
// contrast?: boolean | undefined
|
|
15
|
-
// }
|
|
16
|
-
// }
|
package/src/utils/getHref.ts
CHANGED
|
@@ -15,8 +15,9 @@ export function getHref(
|
|
|
15
15
|
slug: CollectionEntry<ContentCollectionKey>['slug']
|
|
16
16
|
) {
|
|
17
17
|
let href
|
|
18
|
-
if (slug === 'index') href = `/`
|
|
19
|
-
else if (slug) href = `/${routes[collection]}
|
|
18
|
+
if (collection === 'pages' && slug === 'index') href = `/`
|
|
19
|
+
else if (slug === 'index') href = `/${routes[collection]}/`
|
|
20
|
+
else href = `/${routes[collection]}/${slug}/`
|
|
20
21
|
href = href?.replace('//', '/')
|
|
21
22
|
return href
|
|
22
23
|
}
|
package/tsconfig.json
CHANGED
package/example.svelte
DELETED
|
File without changes
|
package/parent.svelte
DELETED
|
File without changes
|
package/src/App.svelte
DELETED
|
File without changes
|
package/src/blocks/Banner.astro
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { ComponentProps } from 'astro/types'
|
|
3
|
-
import Element from 'fulldev-ui/components/Element.astro'
|
|
4
|
-
import Text from 'fulldev-ui/components/Text.astro'
|
|
5
|
-
|
|
6
|
-
type Props = {
|
|
7
|
-
size?: 'sm' | 'md' | 'lg' | undefined
|
|
8
|
-
text?: ComponentProps<typeof Text>['text']
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const { size = 'sm', text, ...rest } = Astro.props
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
<Element
|
|
15
|
-
class:list={'banner'}
|
|
16
|
-
as="header"
|
|
17
|
-
{size}
|
|
18
|
-
{...rest}
|
|
19
|
-
>
|
|
20
|
-
<Text text={text} />
|
|
21
|
-
</Element>
|
|
22
|
-
|
|
23
|
-
<style is:global>
|
|
24
|
-
@layer fulldev {
|
|
25
|
-
.banner {
|
|
26
|
-
@apply relative z-50 flex w-full items-center justify-center overflow-hidden bg-primary px-gutter text-center text-sm text-primary-foreground;
|
|
27
|
-
height: var(--banner-height);
|
|
28
|
-
|
|
29
|
-
&,
|
|
30
|
-
& ~ * {
|
|
31
|
-
--banner-height: 32px;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
</style>
|
package/src/blocks/Contact.astro
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import Channels from 'fulldev-ui/components/Channels.astro'
|
|
3
|
-
import Element from 'fulldev-ui/components/Element.astro'
|
|
4
|
-
import Form from 'fulldev-ui/components/Form.astro'
|
|
5
|
-
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
6
|
-
import Image from 'fulldev-ui/components/Image.astro'
|
|
7
|
-
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
8
|
-
import Socials from 'fulldev-ui/components/Socials.astro'
|
|
9
|
-
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
10
|
-
|
|
11
|
-
const {
|
|
12
|
-
as = 'section',
|
|
13
|
-
size = 'md',
|
|
14
|
-
variant = 1,
|
|
15
|
-
heading,
|
|
16
|
-
form,
|
|
17
|
-
text,
|
|
18
|
-
tagline,
|
|
19
|
-
googleMaps,
|
|
20
|
-
paragraph,
|
|
21
|
-
buttons,
|
|
22
|
-
socials,
|
|
23
|
-
position,
|
|
24
|
-
image,
|
|
25
|
-
channels,
|
|
26
|
-
level = 1,
|
|
27
|
-
...rest
|
|
28
|
-
} = Astro.props
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
<Element
|
|
32
|
-
class:list="contact"
|
|
33
|
-
{as}
|
|
34
|
-
{size}
|
|
35
|
-
{variant}
|
|
36
|
-
{...rest}
|
|
37
|
-
>
|
|
38
|
-
<Element class:list="contact-container">
|
|
39
|
-
<Element class:list="contact-segment">
|
|
40
|
-
<Element class:list="contact-content">
|
|
41
|
-
<Tagline text={tagline} />
|
|
42
|
-
<Heading
|
|
43
|
-
size={'sm'}
|
|
44
|
-
level={level}
|
|
45
|
-
text={heading}
|
|
46
|
-
/>
|
|
47
|
-
<Paragraph text={paragraph} />
|
|
48
|
-
</Element>
|
|
49
|
-
<Channels {channels} />
|
|
50
|
-
<Socials {socials} />
|
|
51
|
-
<Form
|
|
52
|
-
action="/thank-you"
|
|
53
|
-
method="POST"
|
|
54
|
-
{...form}
|
|
55
|
-
/>
|
|
56
|
-
</Element>
|
|
57
|
-
<Image
|
|
58
|
-
class:list="contact-image"
|
|
59
|
-
{position}
|
|
60
|
-
{...image}
|
|
61
|
-
/>
|
|
62
|
-
</Element>
|
|
63
|
-
</Element>
|
|
64
|
-
|
|
65
|
-
<style is:global>
|
|
66
|
-
@layer fulldev {
|
|
67
|
-
.contact {
|
|
68
|
-
@apply relative w-full;
|
|
69
|
-
|
|
70
|
-
.contact-container {
|
|
71
|
-
@apply mx-auto flex h-full w-full flex-col;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.contact-segment {
|
|
75
|
-
@apply z-10 flex flex-col items-start gap-8;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.contact-content {
|
|
79
|
-
@apply flex max-w-screen-md flex-col gap-6;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
&.dark {
|
|
83
|
-
@apply bg-background;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/* Narrow left aligned */
|
|
87
|
-
&.variant-1 {
|
|
88
|
-
.contact-container {
|
|
89
|
-
@apply max-w-screen-md px-gutter py-8;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.contact-segment {
|
|
93
|
-
@apply gap-8 py-16;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.content-image {
|
|
97
|
-
@apply rounded-lg;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/* Split */
|
|
102
|
-
&.variant-2 {
|
|
103
|
-
.contact-container {
|
|
104
|
-
@apply container gap-x-gutter gap-y-16 py-20 lg:grid lg:grid-cols-2 lg:items-center;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.contact-segment {
|
|
108
|
-
@apply max-w-xl;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.contact-image {
|
|
112
|
-
@apply rounded-lg;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
</style>
|
package/src/blocks/Content.astro
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { ComponentProps, HTMLAttributes, HTMLTag } from 'astro/types'
|
|
3
|
-
import Badge from 'fulldev-ui/components/Badge.astro'
|
|
4
|
-
import Buttons from 'fulldev-ui/components/Buttons.astro'
|
|
5
|
-
import Element from 'fulldev-ui/components/Element.astro'
|
|
6
|
-
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
7
|
-
import Image from 'fulldev-ui/components/Image.astro'
|
|
8
|
-
import Lead from 'fulldev-ui/components/Lead.astro'
|
|
9
|
-
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
10
|
-
import Rating from 'fulldev-ui/components/Rating.astro'
|
|
11
|
-
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
12
|
-
|
|
13
|
-
interface Props extends HTMLAttributes<'section'> {
|
|
14
|
-
rating?: ComponentProps<typeof Rating> | undefined
|
|
15
|
-
badge?: ComponentProps<typeof Badge> | undefined
|
|
16
|
-
tagline?: ComponentProps<typeof Tagline>['text']
|
|
17
|
-
heading?: ComponentProps<typeof Heading>['text']
|
|
18
|
-
lead?: ComponentProps<typeof Lead>['text']
|
|
19
|
-
paragraph?: ComponentProps<typeof Paragraph>['text']
|
|
20
|
-
buttons?: ComponentProps<typeof Buttons>['buttons']
|
|
21
|
-
image?: ComponentProps<typeof Image>['id']
|
|
22
|
-
level?: ComponentProps<typeof Heading>['level']
|
|
23
|
-
as?: HTMLTag
|
|
24
|
-
size?: 'sm' | 'md' | 'lg' | undefined
|
|
25
|
-
variant?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | undefined
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const {
|
|
29
|
-
as = 'section',
|
|
30
|
-
size = 'md',
|
|
31
|
-
variant = 1,
|
|
32
|
-
level = 2,
|
|
33
|
-
rating,
|
|
34
|
-
tagline,
|
|
35
|
-
badge,
|
|
36
|
-
heading,
|
|
37
|
-
lead,
|
|
38
|
-
paragraph,
|
|
39
|
-
buttons,
|
|
40
|
-
image,
|
|
41
|
-
...rest
|
|
42
|
-
} = Astro.props
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
<Element
|
|
46
|
-
class:list="content"
|
|
47
|
-
{as}
|
|
48
|
-
{size}
|
|
49
|
-
{variant}
|
|
50
|
-
{...rest}
|
|
51
|
-
>
|
|
52
|
-
<Element class:list="content-container">
|
|
53
|
-
<Element class:list="content-segment">
|
|
54
|
-
<Element class:list="content-content">
|
|
55
|
-
<Rating
|
|
56
|
-
{size}
|
|
57
|
-
{...rating}
|
|
58
|
-
/>
|
|
59
|
-
<Tagline
|
|
60
|
-
text={tagline}
|
|
61
|
-
{size}
|
|
62
|
-
/>
|
|
63
|
-
<Badge
|
|
64
|
-
{size}
|
|
65
|
-
{...badge}
|
|
66
|
-
/>
|
|
67
|
-
<Heading
|
|
68
|
-
text={heading}
|
|
69
|
-
{level}
|
|
70
|
-
{size}
|
|
71
|
-
/>
|
|
72
|
-
<Lead
|
|
73
|
-
text={lead}
|
|
74
|
-
{size}
|
|
75
|
-
/>
|
|
76
|
-
<Paragraph
|
|
77
|
-
text={paragraph}
|
|
78
|
-
{size}
|
|
79
|
-
/>
|
|
80
|
-
<slot name="content" />
|
|
81
|
-
</Element>
|
|
82
|
-
<Buttons
|
|
83
|
-
variant="secondary"
|
|
84
|
-
{size}
|
|
85
|
-
{buttons}
|
|
86
|
-
/>
|
|
87
|
-
<slot name="segment" />
|
|
88
|
-
</Element>
|
|
89
|
-
<Image
|
|
90
|
-
class:list="content-image"
|
|
91
|
-
{...image}
|
|
92
|
-
/>
|
|
93
|
-
<slot />
|
|
94
|
-
</Element>
|
|
95
|
-
</Element>
|
|
96
|
-
|
|
97
|
-
<style is:global>
|
|
98
|
-
@layer fulldev {
|
|
99
|
-
.content {
|
|
100
|
-
@apply relative w-full;
|
|
101
|
-
|
|
102
|
-
.content-container {
|
|
103
|
-
@apply flex h-full flex-col;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.content-segment {
|
|
107
|
-
@apply z-10 flex flex-col items-start gap-8;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
.content-content {
|
|
111
|
-
@apply flex max-w-screen-md flex-col gap-6;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
&.dark {
|
|
115
|
-
@apply bg-background;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/* Split */
|
|
119
|
-
&.variant-1 {
|
|
120
|
-
.content-container {
|
|
121
|
-
@apply container py-16 lg:grid lg:grid-cols-2 lg:items-center;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.content-image {
|
|
125
|
-
@apply rounded-lg;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
</style>
|
package/src/blocks/Cta.astro
DELETED