fulldev-ui 0.5.0-beta.9 → 0.6.0-beta-5
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/.env.example +3 -0
- package/.prettierrc.yaml +1 -0
- package/astro.config.ts +10 -34
- package/cloudcannon.config.yml +235 -0
- package/package.json +25 -29
- package/pnpm-lock.yaml +943 -2157
- package/public/favicon/android-chrome-192x192.png +0 -0
- package/public/favicon/android-chrome-512x512.png +0 -0
- package/public/favicon/apple-touch-icon.png +0 -0
- package/public/favicon/manifest.webmanifest +7 -3
- package/public/favicon/mstile-150x150.png +0 -0
- package/src/blocks/Banner.astro +14 -29
- package/src/blocks/Contact1.astro +92 -0
- package/src/blocks/Content1.astro +77 -0
- package/src/blocks/Content2.astro +91 -0
- package/src/blocks/Content3.astro +70 -0
- package/src/blocks/Content4.astro +72 -0
- package/src/blocks/Cta1.astro +58 -0
- package/src/blocks/Feature1.astro +61 -0
- package/src/blocks/Features1.astro +66 -0
- package/src/blocks/Footer.astro +100 -3
- package/src/blocks/Header.astro +192 -3
- package/src/blocks/Hero1.astro +60 -0
- package/src/blocks/Logos1.astro +55 -0
- package/src/blocks/Products1.astro +90 -0
- package/src/blocks/Reviews1.astro +75 -0
- package/src/blocks/_Hero.astro +245 -0
- package/src/components/Avatar.astro +28 -9
- package/src/components/Avatars.astro +36 -0
- package/src/components/Badge.astro +63 -24
- package/src/components/Badges.astro +16 -23
- package/src/components/Block.astro +30 -0
- package/src/components/Blocks.astro +26 -0
- package/src/components/Breadcrumb.astro +58 -0
- package/src/components/Button.astro +49 -119
- package/src/components/Buttons.astro +23 -13
- package/src/components/Card.astro +9 -137
- package/src/components/Cards.astro +33 -35
- package/src/components/Carousel.astro +106 -0
- package/src/components/Cart.astro +18 -14
- package/src/components/CartAdd.svelte +76 -0
- package/src/components/CartCheckout.svelte +58 -0
- package/src/components/CartForm.svelte +130 -0
- package/src/components/CartList.svelte +88 -0
- package/src/components/CartQuantity.svelte +81 -0
- package/src/components/CartSummary.astro +16 -105
- package/src/components/CartTotal.svelte +15 -0
- package/src/components/Channel.astro +44 -35
- package/src/components/Channels.astro +20 -6
- package/src/components/Checkbox.astro +52 -27
- package/src/components/Code.astro +52 -0
- package/src/components/Container.astro +25 -0
- package/src/components/Dialog.astro +3 -2
- package/src/components/Drawer.astro +55 -146
- package/src/components/DrawerOld.astro +143 -0
- package/src/components/Element.astro +18 -8
- package/src/components/Form.astro +16 -13
- package/src/components/Gallery.astro +174 -0
- package/src/components/Group.astro +25 -0
- package/src/components/Head.astro +62 -25
- package/src/components/Header.astro +10 -115
- package/src/components/Heading.astro +51 -44
- package/src/components/Icon.astro +29 -33
- package/src/components/Image.astro +18 -68
- package/src/components/Input.astro +65 -51
- package/src/components/Label.astro +20 -15
- package/src/components/Layout.astro +35 -0
- package/src/components/Link.astro +51 -32
- package/src/components/Links.astro +42 -0
- package/src/components/List.astro +41 -16
- package/src/components/LocaleSwitcher.astro +2 -2
- package/src/components/Logo.astro +56 -0
- package/src/components/Menu.astro +21 -17
- package/src/components/Navigation.astro +39 -0
- package/src/components/Panel.astro +25 -0
- package/src/components/Paragraph.astro +55 -0
- package/src/components/Price.astro +4 -4
- package/src/components/Prose.astro +86 -0
- package/src/components/Rating.astro +23 -62
- package/src/components/Search.astro +107 -43
- package/src/components/Section.astro +13 -242
- package/src/components/Select.astro +45 -55
- package/src/components/Sidebar.astro +53 -76
- package/src/components/Social.astro +11 -9
- package/src/components/Socials.astro +9 -5
- package/src/components/Stack.astro +25 -0
- package/src/components/Subheader.astro +59 -0
- package/src/components/Switch.astro +72 -29
- package/src/components/Table.astro +1 -1
- package/src/components/Tagline.astro +31 -13
- package/src/components/Textarea.astro +40 -50
- package/src/components/Themer.astro +76 -0
- package/src/components/Toc.astro +30 -37
- package/src/components/Writeup.astro +34 -65
- package/src/components/_Author.astro +90 -0
- package/src/components/_Header.astro +129 -0
- package/src/components/_Image.astro +79 -0
- package/src/components/_Prose copy.astro +172 -0
- package/src/components/_Sidebar copy.astro +87 -0
- package/src/components/docs/PropsTable.astro +38 -264
- package/src/components/experimental/Window.astro +5 -57
- package/src/content/config.ts +3 -10
- package/src/content/{presets → layouts}/base.yml +52 -73
- package/src/content/pages/blocks/_categories.mdx +0 -2
- package/src/content/pages/blocks/_footer.mdx +0 -2
- package/src/content/pages/blocks/_header.mdx +0 -4
- package/src/content/pages/blocks/_jobs.mdx +0 -2
- package/src/content/pages/blocks/_prices.mdx +0 -2
- package/src/content/pages/blocks/_product.mdx +0 -2
- package/src/content/pages/blocks/_products.mdx +0 -2
- package/src/content/pages/blocks/_stats.mdx +0 -2
- package/src/content/pages/blocks/banner.mdx +0 -2
- package/src/content/pages/blocks/colleagues.mdx +0 -3
- package/src/content/pages/blocks/contact.mdx +0 -2
- package/src/content/pages/blocks/content.mdx +0 -6
- package/src/content/pages/blocks/cta.mdx +0 -10
- package/src/content/pages/blocks/features.mdx +0 -5
- package/src/content/pages/blocks/hero.mdx +0 -5
- package/src/content/pages/blocks/intro.mdx +0 -5
- package/src/content/pages/blocks/posts.mdx +0 -2
- package/src/content/pages/blocks/reviews.mdx +0 -3
- package/src/content/pages/categories/category.md +7 -0
- package/src/content/pages/docs/_internationalization.mdx +55 -0
- package/src/content/pages/docs/_using-blocks.mdx +33 -0
- package/src/content/pages/docs/_using-presets.mdx +49 -0
- package/src/content/pages/docs/blocks.mdx +33 -0
- package/src/content/pages/docs/collections/images.mdx +102 -0
- package/src/content/pages/docs/collections/pages.mdx +119 -0
- package/src/content/pages/docs/collections/presets.mdx +60 -0
- package/src/content/pages/docs/collections.mdx +42 -0
- package/src/content/pages/{base/card.mdx → docs/components/_card.mdx} +2 -5
- package/src/content/pages/{base → docs/components}/_dialog.mdx +1 -2
- package/src/content/pages/{base → docs/components}/_drawer.mdx +1 -2
- package/src/content/pages/{base → docs/components}/_localeswitcher.mdx +1 -2
- package/src/content/pages/{base → docs/components}/_switch.mdx +3 -4
- package/src/content/pages/{typography → docs/components}/_tagline.mdx +3 -4
- package/src/content/pages/docs/components/_toggle.mdx +30 -0
- package/src/content/pages/docs/components/avatar.mdx +34 -0
- package/src/content/pages/{base → docs/components}/badge.mdx +28 -10
- package/src/content/pages/docs/components/badges.mdx +46 -0
- package/src/content/pages/docs/components/button.mdx +78 -0
- package/src/content/pages/docs/components/buttons.mdx +51 -0
- package/src/content/pages/docs/components/channel.mdx +91 -0
- package/src/content/pages/docs/components/channels.mdx +89 -0
- package/src/content/pages/docs/components/checkbox.mdx +34 -0
- package/src/content/pages/docs/components/code.mdx +45 -0
- package/src/content/pages/docs/components/heading.mdx +59 -0
- package/src/content/pages/docs/components/icon.mdx +48 -0
- package/src/content/pages/docs/components/image.mdx +25 -0
- package/src/content/pages/docs/components/input.mdx +40 -0
- package/src/content/pages/{typography → docs/components}/label.mdx +9 -6
- package/src/content/pages/{typography → docs/components}/link.mdx +24 -10
- package/src/content/pages/docs/components/links.mdx +99 -0
- package/src/content/pages/docs/components/list.mdx +44 -0
- package/src/content/pages/docs/components/logo.mdx +36 -0
- package/src/content/pages/docs/components/menu.mdx +89 -0
- package/src/content/pages/docs/components/prose.mdx +36 -0
- package/src/content/pages/docs/components/rating.mdx +76 -0
- package/src/content/pages/{base → docs/components}/section.mdx +2 -3
- package/src/content/pages/{base → docs/components}/select.mdx +1 -11
- package/src/content/pages/docs/components/social.mdx +94 -0
- package/src/content/pages/docs/components/socials.mdx +102 -0
- package/src/content/pages/docs/components/switch.mdx +34 -0
- package/src/content/pages/{base → docs/components}/table.mdx +1 -4
- package/src/content/pages/docs/components/tagline.mdx +46 -0
- package/src/content/pages/docs/components/text.mdx +48 -0
- package/src/content/pages/docs/components/textarea.mdx +34 -0
- package/src/content/pages/docs/components/themer.mdx +49 -0
- package/src/content/pages/docs/components.mdx +37 -0
- package/src/content/pages/docs/customization.mdx +151 -0
- package/src/content/pages/docs/frameworks.mdx +29 -0
- package/src/content/pages/docs/generating-pages.mdx +129 -0
- package/src/content/pages/docs/index.mdx +20 -0
- package/src/content/pages/docs/installation.mdx +50 -0
- package/src/content/pages/docs/layouts.mdx +33 -0
- package/src/content/pages/index.mdx +25 -33
- package/src/content/pages/posts/post.md +7 -0
- package/src/content/pages/products/product.md +20 -0
- package/src/content/pages/showcase/anti-slip-profiles.md +2 -2
- package/src/content/pages/showcase/fulldev-ui.md +1 -1
- package/src/content/pages/showcase/lavis-detailing.md +1 -1
- package/src/content/pages/showcase/leren-trainingsacteren.md +1 -1
- package/src/content/pages/showcase/miele-witgoedcenter-amsterdam.md +1 -1
- package/src/content/pages/showcase/sloepverhuur-bolsward.md +1 -1
- package/src/content/pages/showcase/stark-vulcanising-products.md +1 -1
- package/src/content/pages/showcase/the-gym-haren.md +1 -1
- package/src/content/pages/showcase/van-dillen-antieke-bouwmaterialen.md +1 -1
- package/src/content/pages/showcase.mdx +4 -3
- package/src/css/color.css +0 -10
- package/src/css/custom.css +10 -12
- package/src/css/size.css +2 -11
- package/src/css/theme.css +95 -0
- package/src/env.d.ts +1 -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/images/logo-1.svg +11 -0
- package/src/images/logo-2.svg +13 -0
- package/src/images/logo-basic.svg +10 -0
- package/src/images/logo-simple.svg +13 -0
- package/src/images/logo-thin.svg +15 -0
- package/src/images/logo.svg +14 -0
- package/src/images/logofat.svg +11 -0
- package/src/integration/index.ts +110 -140
- package/src/layouts/Category.astro +136 -0
- package/src/layouts/Doc.astro +56 -0
- package/src/layouts/Job.astro +60 -0
- package/src/layouts/Page.astro +29 -0
- package/src/layouts/Post.astro +52 -0
- package/src/layouts/Product.astro +114 -0
- package/src/pages/[...page].astro +29 -24
- package/src/pages/test.astro +37 -0
- package/src/schemas/components/avatar.ts +4 -1
- package/src/schemas/components/badge.ts +16 -11
- package/src/schemas/components/block.ts +60 -0
- package/src/schemas/components/button.ts +17 -14
- package/src/schemas/components/channel.ts +15 -9
- package/src/schemas/components/footer.ts +15 -21
- package/src/schemas/components/head.ts +17 -0
- package/src/schemas/components/header.ts +19 -7
- package/src/schemas/components/heading.ts +7 -1
- package/src/schemas/components/icon.ts +7 -1
- package/src/schemas/components/image.ts +38 -16
- package/src/schemas/components/link.ts +17 -0
- package/src/schemas/components/logo.ts +12 -2
- package/src/schemas/components/menu.ts +11 -11
- package/src/schemas/components/navigation.ts +10 -0
- package/src/schemas/components/paragraph.ts +9 -0
- package/src/schemas/components/price.ts +7 -1
- package/src/schemas/components/rating.ts +8 -13
- package/src/schemas/components/sidebar.ts +14 -11
- package/src/schemas/components/social.ts +16 -1
- package/src/schemas/components/tagline.ts +7 -1
- package/src/schemas/imageSchema.ts +33 -4
- package/src/schemas/page.ts +39 -0
- package/src/stores/cart.svelte.ts +79 -0
- package/src/stores/cart.ts +59 -6
- package/src/types/global-props.ts +0 -9
- package/src/types/{virtual-modules.d.ts → virtual.d.ts} +1 -1
- package/src/utils/cart.ts +1 -10
- package/src/utils/formatEntries.ts +8 -0
- package/src/utils/formatEntry.ts +29 -0
- package/src/utils/getDeepReferenceChildren.ts +14 -0
- package/src/utils/getHref.ts +6 -0
- package/src/utils/getReferenceChildren.ts +1 -1
- package/src/utils/setTheme.ts +18 -0
- package/src/utils/slugify.ts +6 -0
- package/svelte.config.js +5 -0
- package/tailwind.config.ts +71 -0
- package/tsconfig.json +1 -3
- package/src/blocks/Article.astro +0 -40
- package/src/blocks/Categories.astro +0 -12
- package/src/blocks/Colleagues.astro +0 -13
- package/src/blocks/Contact.astro +0 -116
- package/src/blocks/Content.astro +0 -12
- package/src/blocks/Cta.astro +0 -15
- package/src/blocks/Excerpt.astro +0 -14
- package/src/blocks/Features.astro +0 -11
- package/src/blocks/Hero.astro +0 -15
- package/src/blocks/Intro.astro +0 -23
- 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 -110
- package/src/blocks/Products.astro +0 -11
- package/src/blocks/Reviews.astro +0 -13
- package/src/components/CartForm.astro +0 -121
- package/src/components/CartList.astro +0 -134
- package/src/components/Footer.astro +0 -193
- package/src/components/Text.astro +0 -43
- package/src/components/ThemeSelect.astro +0 -41
- package/src/components/experimental/Form.astro +0 -53
- package/src/components/experimental/Gallery.astro +0 -104
- package/src/components/experimental/Logo.astro +0 -38
- package/src/components/experimental/Prose.astro +0 -192
- package/src/components/sections.astro +0 -28
- package/src/content/pages/base/button.mdx +0 -60
- package/src/content/pages/base/checkbox.mdx +0 -42
- package/src/content/pages/base/icon.mdx +0 -55
- package/src/content/pages/base/image.mdx +0 -42
- package/src/content/pages/base/input.mdx +0 -56
- package/src/content/pages/base/rating.mdx +0 -55
- package/src/content/pages/base/textarea.mdx +0 -58
- package/src/content/pages/base/theme-select.mdx +0 -15
- package/src/content/pages/layouts/_layout.mdx +0 -14
- package/src/content/pages/layouts/docslayout.mdx +0 -14
- package/src/content/pages/overview/components.mdx +0 -75
- package/src/content/pages/overview/content-collections.mdx +0 -139
- package/src/content/pages/overview/frameworks.mdx +0 -198
- package/src/content/pages/overview/installation.mdx +0 -53
- package/src/content/pages/overview/introduction.mdx +0 -30
- package/src/content/pages/overview/theming.mdx +0 -69
- package/src/content/pages/schemas/page.mdx +0 -17
- package/src/content/pages/schemas/preset.mdx +0 -9
- package/src/content/pages/showcase/record.md +0 -3
- package/src/content/pages/typography/heading.mdx +0 -73
- package/src/content/pages/typography/list.mdx +0 -51
- package/src/content/pages/typography/text.mdx +0 -61
- package/src/content/presets/blocks.yml +0 -1
- package/src/content/presets/docs.yml +0 -6
- package/src/css/space.css +0 -77
- package/src/css/styles.css +0 -0
- package/src/images/avatar-1.yml +0 -1
- package/src/integration/generate-colors.ts +0 -639
- package/src/integration/tailwind-plugin.ts +0 -80
- package/src/integration/unocss-preset.ts +0 -84
- package/src/layouts/BlockLayout.astro +0 -19
- package/src/layouts/ContactLayout.astro +0 -21
- package/src/layouts/DocsLayout.astro +0 -73
- package/src/layouts/Layout.astro +0 -163
- package/src/layouts/OverviewLayout.astro +0 -42
- package/src/layouts/PostLayout.astro +0 -21
- package/src/layouts/ProductLayout.astro +0 -21
- package/src/loaders/imageLoader.ts +0 -26
- package/src/schemas/components/avatars.ts +0 -4
- package/src/schemas/components/buttons.ts +0 -4
- package/src/schemas/components/card.ts +0 -25
- package/src/schemas/components/cards.ts +0 -4
- package/src/schemas/components/channels.ts +0 -4
- package/src/schemas/components/images.ts +0 -4
- package/src/schemas/components/list.ts +0 -3
- package/src/schemas/components/section.ts +0 -15
- package/src/schemas/components/sections.ts +0 -3
- package/src/schemas/components/socials.ts +0 -4
- package/src/schemas/components/text.ts +0 -3
- package/src/schemas/components/toc.ts +0 -3
- package/src/schemas/components/writeup.ts +0 -20
- package/src/schemas/pageSchema.ts +0 -101
- package/src/schemas/presetSchema.ts +0 -3
- package/src/schemas/utils/navigation.ts +0 -8
- package/src/schemas/utils/parents.ts +0 -3
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps, HTMLAttributes, HTMLTag } from 'astro/types'
|
|
3
|
+
import type { CollectionEntry } from 'astro:content'
|
|
4
|
+
import Button from 'fulldev-ui/components/Button.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 {
|
|
9
|
+
default as Lead,
|
|
10
|
+
default as Paragraph,
|
|
11
|
+
} from 'fulldev-ui/components/Paragraph.astro'
|
|
12
|
+
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
13
|
+
import Toc from 'fulldev-ui/components/Toc.astro'
|
|
14
|
+
import { crush } from 'radash'
|
|
15
|
+
import type Sidebar from './Sidebar.astro'
|
|
16
|
+
|
|
17
|
+
interface Props extends HTMLAttributes<'div'> {
|
|
18
|
+
as?: HTMLTag | undefined
|
|
19
|
+
render?: any
|
|
20
|
+
sidebar?: ComponentProps<typeof Sidebar> | undefined
|
|
21
|
+
slug?: CollectionEntry<'pages'>['slug'] | undefined
|
|
22
|
+
toc?: boolean | ComponentProps<typeof Toc>['heading'] | undefined
|
|
23
|
+
tagline?: ComponentProps<typeof Tagline>['text'] | undefined
|
|
24
|
+
heading?: ComponentProps<typeof Heading>['text'] | undefined
|
|
25
|
+
image?: ComponentProps<typeof Image> | undefined
|
|
26
|
+
lead?: ComponentProps<typeof Lead>['text'] | undefined
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const {
|
|
30
|
+
toc = false,
|
|
31
|
+
slug,
|
|
32
|
+
sidebar,
|
|
33
|
+
render,
|
|
34
|
+
tagline,
|
|
35
|
+
heading,
|
|
36
|
+
lead,
|
|
37
|
+
image,
|
|
38
|
+
...rest
|
|
39
|
+
} = Astro.props
|
|
40
|
+
|
|
41
|
+
const Content = render && (await render())?.Content
|
|
42
|
+
|
|
43
|
+
const flatMenu = crush(sidebar?.menu ?? {})
|
|
44
|
+
const slugs = Object.entries(flatMenu)
|
|
45
|
+
.map(([key, value]) => (key.endsWith('.slug') ? value : null))
|
|
46
|
+
.filter(Boolean)
|
|
47
|
+
const slugIndex = slugs.findIndex((val) => val === slug)
|
|
48
|
+
|
|
49
|
+
const prevSlug = slugs[slugIndex - 1]
|
|
50
|
+
const nextSlug = slugs[slugIndex + 1]
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
<Element
|
|
54
|
+
class:list="prose"
|
|
55
|
+
{...rest}
|
|
56
|
+
>
|
|
57
|
+
<Element class:list="prose-container">
|
|
58
|
+
<Element class:list="prose-content">
|
|
59
|
+
<Tagline text={tagline} />
|
|
60
|
+
<Heading
|
|
61
|
+
as="h1"
|
|
62
|
+
level={2}
|
|
63
|
+
text={heading}
|
|
64
|
+
/>
|
|
65
|
+
<Paragraph text={lead} />
|
|
66
|
+
<Image {...image} />
|
|
67
|
+
{Content && <Content />}
|
|
68
|
+
<slot />
|
|
69
|
+
<Element class:list="prose-footer">
|
|
70
|
+
<Button
|
|
71
|
+
class:list="prose-prev"
|
|
72
|
+
icon={prevSlug && 'arrow-left'}
|
|
73
|
+
slug={prevSlug}
|
|
74
|
+
variant="secondary"
|
|
75
|
+
/>
|
|
76
|
+
<Button
|
|
77
|
+
class:list="prose-next"
|
|
78
|
+
icon={nextSlug && 'arrow-right'}
|
|
79
|
+
slug={nextSlug}
|
|
80
|
+
variant="secondary"
|
|
81
|
+
reverse
|
|
82
|
+
/>
|
|
83
|
+
</Element>
|
|
84
|
+
</Element>
|
|
85
|
+
<Toc
|
|
86
|
+
if={toc}
|
|
87
|
+
heading={typeof toc === 'string' ? toc : undefined}
|
|
88
|
+
{render}
|
|
89
|
+
/>
|
|
90
|
+
</Element>
|
|
91
|
+
</Element>
|
|
92
|
+
|
|
93
|
+
<style is:global>
|
|
94
|
+
@layer fulldev {
|
|
95
|
+
.prose {
|
|
96
|
+
@apply relative items-start py-28 first:pt-14;
|
|
97
|
+
|
|
98
|
+
.prose-container {
|
|
99
|
+
@apply container flex h-full w-full flex-grow items-start justify-evenly gap-14 gap-x-gutter;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.prose-content {
|
|
103
|
+
@apply w-full max-w-screen-md;
|
|
104
|
+
|
|
105
|
+
> * {
|
|
106
|
+
@apply mt-6 first:mt-0;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
p {
|
|
110
|
+
@apply mt-4 first:mt-0;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
code:not(.astro-code code) {
|
|
114
|
+
@apply rounded bg-muted px-1.5 py-0.5 font-mono text-sm font-medium;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
h1,
|
|
118
|
+
h2,
|
|
119
|
+
h3,
|
|
120
|
+
h4,
|
|
121
|
+
h5,
|
|
122
|
+
h6 {
|
|
123
|
+
@apply mt-8 scroll-m-20 font-semibold first:mt-0;
|
|
124
|
+
|
|
125
|
+
code {
|
|
126
|
+
font-size: inherit !important;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
> h1 {
|
|
131
|
+
@apply text-4xl font-extrabold;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
> h2 {
|
|
135
|
+
@apply text-2xl;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
> h3 {
|
|
139
|
+
@apply text-xl;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
> h4 {
|
|
143
|
+
@apply text-lg;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
> h5 {
|
|
147
|
+
@apply text-base;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
> h6 {
|
|
151
|
+
@apply text-sm;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
> aside {
|
|
155
|
+
@apply mt-6 rounded-md border border-destructive p-4 text-destructive first:mt-0;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.prose-footer {
|
|
160
|
+
@apply mt-14 flex items-center;
|
|
161
|
+
|
|
162
|
+
.prose-next {
|
|
163
|
+
@apply ml-auto;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.toc {
|
|
168
|
+
@apply order-last;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
</style>
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
<!-- ---
|
|
2
|
+
import type { HTMLAttributes } from 'astro/types'
|
|
3
|
+
import Element from 'fulldev-ui/components/Element.astro'
|
|
4
|
+
import Links from 'fulldev-ui/components/Links.astro'
|
|
5
|
+
import Logo from 'fulldev-ui/components/Logo.astro'
|
|
6
|
+
import Themer from 'fulldev-ui/components/Themer.astro'
|
|
7
|
+
import type { SidebarSchema } from 'fulldev-ui/schemas/components/sidebar'
|
|
8
|
+
import Heading from './Heading.astro'
|
|
9
|
+
|
|
10
|
+
interface Props extends HTMLAttributes<'aside'>, SidebarSchema {}
|
|
11
|
+
|
|
12
|
+
const { company, logo, menus, heading, themer, ...rest } = Astro.props
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<Element
|
|
16
|
+
class:list="sidebar"
|
|
17
|
+
as="aside"
|
|
18
|
+
{...rest}
|
|
19
|
+
>
|
|
20
|
+
<Element
|
|
21
|
+
class:list="sidebar-header"
|
|
22
|
+
as="header"
|
|
23
|
+
>
|
|
24
|
+
<Logo
|
|
25
|
+
{company}
|
|
26
|
+
{...logo}
|
|
27
|
+
size="sm"
|
|
28
|
+
/>
|
|
29
|
+
<Heading
|
|
30
|
+
as="h5"
|
|
31
|
+
size="md"
|
|
32
|
+
text={heading}
|
|
33
|
+
/>
|
|
34
|
+
</Element>
|
|
35
|
+
<Element class:list="sidebar-content">
|
|
36
|
+
<Element
|
|
37
|
+
class:list="sidebar-nav"
|
|
38
|
+
as="nav"
|
|
39
|
+
>
|
|
40
|
+
{
|
|
41
|
+
menus?.map(({ heading, links }) => (
|
|
42
|
+
<Element class:list="sidebar-menu">
|
|
43
|
+
<Heading
|
|
44
|
+
text={heading}
|
|
45
|
+
size="sm"
|
|
46
|
+
as="h6"
|
|
47
|
+
/>
|
|
48
|
+
<Links
|
|
49
|
+
direction="column"
|
|
50
|
+
size="sm"
|
|
51
|
+
{links}
|
|
52
|
+
/>
|
|
53
|
+
</Element>
|
|
54
|
+
))
|
|
55
|
+
}
|
|
56
|
+
</Element>
|
|
57
|
+
<Themer if={themer} />
|
|
58
|
+
<slot />
|
|
59
|
+
</Element>
|
|
60
|
+
</Element>
|
|
61
|
+
|
|
62
|
+
<style is:global>
|
|
63
|
+
@layer fulldev {
|
|
64
|
+
.sidebar {
|
|
65
|
+
@apply sticky bottom-0 z-10 hidden h-full flex-col items-start justify-start border-r bg-background lg:flex;
|
|
66
|
+
|
|
67
|
+
--height: calc(var(--header-height, 0px) + var(--subheader-height, 0px));
|
|
68
|
+
top: var(--height);
|
|
69
|
+
width: var(--sidebar-width);
|
|
70
|
+
max-height: calc(100vh - var(--height));
|
|
71
|
+
|
|
72
|
+
&,
|
|
73
|
+
& ~ * {
|
|
74
|
+
--sidebar-width: 13rem;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.sidebar-header {
|
|
78
|
+
@apply sticky flex h-14 w-full items-center px-gutter py-6;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.sidebar-content {
|
|
82
|
+
@apply flex w-full flex-1 flex-col items-start gap-7 overflow-y-auto px-gutter pb-14 pt-6 first:pt-14;
|
|
83
|
+
@apply scrollbar scrollbar-track-transparent scrollbar-thumb-accent scrollbar-thumb-rounded-full scrollbar-w-2 hover:scrollbar-thumb-accent-hover;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
</style> -->
|
|
@@ -1,275 +1,49 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
propLines.forEach((line) => {
|
|
37
|
-
const trimmedLine = line.trim()
|
|
38
|
-
if (trimmedLine === '') return
|
|
39
|
-
|
|
40
|
-
// Match prop name and type
|
|
41
|
-
const match = trimmedLine.match(/^(\w+)(\??):(.*)/)
|
|
42
|
-
if (match && match[1] && match[3]) {
|
|
43
|
-
if (currentProp) props.push(currentProp)
|
|
44
|
-
currentProp = {
|
|
45
|
-
name: match[1],
|
|
46
|
-
type: match[3].trim(),
|
|
47
|
-
}
|
|
48
|
-
} else if (currentProp) {
|
|
49
|
-
// Continue adding to type if it spans multiple lines
|
|
50
|
-
currentProp.type += ' ' + trimmedLine
|
|
51
|
-
}
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
if (currentProp) props.push(currentProp)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// Extract props from type intersections
|
|
58
|
-
const intersectionProps = content.match(
|
|
59
|
-
/Props(?:<[^>]+>)?\s*=\s*([\s\S]*?)(?:$|\n\n)/
|
|
60
|
-
)
|
|
61
|
-
if (intersectionProps && intersectionProps[1]) {
|
|
62
|
-
const intersectionContent = intersectionProps[1]
|
|
63
|
-
let currentProp: Prop | null = null
|
|
64
|
-
const lines = intersectionContent.split('\n')
|
|
65
|
-
|
|
66
|
-
lines.forEach((line) => {
|
|
67
|
-
const trimmedLine = line.trim()
|
|
68
|
-
if (trimmedLine === '') return
|
|
69
|
-
|
|
70
|
-
// Match prop name and type
|
|
71
|
-
const match = trimmedLine.match(/(\w+)(\??):(.*)/)
|
|
72
|
-
if (match && match[1] && match[3]) {
|
|
73
|
-
if (currentProp) props.push(currentProp)
|
|
74
|
-
currentProp = {
|
|
75
|
-
name: match[1],
|
|
76
|
-
type: match[3].trim(),
|
|
77
|
-
}
|
|
78
|
-
} else if (currentProp) {
|
|
79
|
-
// Continue adding to type if it spans multiple lines
|
|
80
|
-
currentProp.type += ' ' + trimmedLine
|
|
81
|
-
}
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
if (currentProp) props.push(currentProp)
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Clean up the type of the last prop
|
|
88
|
-
if (props.length > 0) {
|
|
89
|
-
const lastProp = props[props.length - 1]
|
|
90
|
-
if (lastProp) {
|
|
91
|
-
lastProp.type = lastProp.type.replace(/\s*}\s*$/, '')
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// Filter out 'as' prop and props starting with underscore
|
|
96
|
-
return props.filter(
|
|
97
|
-
(prop) => prop.name !== 'as' && !prop.name.startsWith('_')
|
|
98
|
-
)
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// Function to extract default prop values from Astro.props
|
|
102
|
-
const extractDefaultProps = (content: string): Record<string, string> => {
|
|
103
|
-
const defaultPropsMatch = content.match(
|
|
104
|
-
/const\s*{[\s\S]*?}\s*=\s*Astro\.props/
|
|
105
|
-
)
|
|
106
|
-
return defaultPropsMatch
|
|
107
|
-
? [
|
|
108
|
-
...defaultPropsMatch[0].matchAll(
|
|
109
|
-
/(\w+)\s*=\s*('[^']*'|"[^"]*"|[^,\n]+)/g
|
|
110
|
-
),
|
|
111
|
-
].reduce(
|
|
112
|
-
(acc, match) => {
|
|
113
|
-
const [, name, value] = match
|
|
114
|
-
if (name && name !== 'as' && value !== undefined) {
|
|
115
|
-
acc[name] =
|
|
116
|
-
value.startsWith("'") || value.startsWith('"')
|
|
117
|
-
? value.slice(1, -1)
|
|
118
|
-
: value
|
|
119
|
-
}
|
|
120
|
-
return acc
|
|
121
|
-
},
|
|
122
|
-
{} as Record<string, string>
|
|
123
|
-
)
|
|
124
|
-
: {}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// Function to extract the default 'As' prop value from the interface or type
|
|
128
|
-
const extractAsDefault = (content: string): string => {
|
|
129
|
-
const asTypeMatch = content.match(/type Props<As extends ([^>]+)>/)
|
|
130
|
-
if (asTypeMatch && asTypeMatch[1]) {
|
|
131
|
-
return asTypeMatch[1].trim().replace(/['"]/g, '')
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
const asInterfaceMatch = content.match(/interface Props<As extends ([^>]+)>/)
|
|
135
|
-
if (asInterfaceMatch && asInterfaceMatch[1]) {
|
|
136
|
-
return asInterfaceMatch[1].trim().replace(/['"]/g, '')
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
return ''
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
const parsedProps = extractProps(componentFileContent)
|
|
143
|
-
const parsedAstroProps = extractDefaultProps(componentFileContent)
|
|
144
|
-
const asDefault = extractAsDefault(componentFileContent)
|
|
145
|
-
|
|
146
|
-
// Function to get the default value for a prop
|
|
147
|
-
const getDefaultValue = (name: string): string => {
|
|
148
|
-
if (name in parsedAstroProps) {
|
|
149
|
-
return parsedAstroProps[name] || '-'
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
return '-'
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
// Check if the component extends Element.astro
|
|
156
|
-
const extendsElement = componentFileContent.includes('GlobalProps')
|
|
157
|
-
|
|
158
|
-
// Check if the component extends Writeup.astro
|
|
159
|
-
const extendsWriteup = componentFileContent.includes(
|
|
160
|
-
'ComponentProps<typeof Writeup>'
|
|
161
|
-
)
|
|
162
|
-
|
|
163
|
-
// Prepare the table body data
|
|
164
|
-
const tableBody = new Map()
|
|
165
|
-
|
|
166
|
-
// Add component-specific props
|
|
167
|
-
parsedProps.forEach((item) => {
|
|
168
|
-
tableBody.set(item.name, [
|
|
169
|
-
item.name,
|
|
170
|
-
item.type.replace(/\s*\|?\s*(undefined|null)/, '').trim(),
|
|
171
|
-
getDefaultValue(item.name),
|
|
172
|
-
])
|
|
173
|
-
})
|
|
174
|
-
|
|
175
|
-
// Add Element props if the component extends Element.astro
|
|
176
|
-
if (extendsElement) {
|
|
177
|
-
const elementProps = extractProps(
|
|
178
|
-
readFileSync('src/components/Element.astro', 'utf-8')
|
|
179
|
-
)
|
|
180
|
-
elementProps
|
|
181
|
-
.filter((item) => item.name !== '[key: string | number | symbol]')
|
|
182
|
-
.forEach((item) => {
|
|
183
|
-
if (!tableBody.has(item.name)) {
|
|
184
|
-
let type = item.type
|
|
185
|
-
.replace(/\s*\|?\s*(undefined|null)/, '')
|
|
186
|
-
.trim()
|
|
187
|
-
.replace(/\s*\|\s*any/, '')
|
|
188
|
-
.replace(/\s*\[key: string \| number \| symbol\]: any/, '')
|
|
189
|
-
|
|
190
|
-
// Remove [key: string | number | symbol]: any from the last prop
|
|
191
|
-
if (item === elementProps[elementProps.length - 1]) {
|
|
192
|
-
type = type.replace(/\s*\[key: string \| number \| symbol\]: any/, '')
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
if (item.name === 'size') {
|
|
196
|
-
type = "'sm' | 'md' | 'lg'"
|
|
197
|
-
} else if (item.name === 'color') {
|
|
198
|
-
type = "'base' | 'brand'"
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
tableBody.set(item.name, [item.name, type, getDefaultValue(item.name)])
|
|
202
|
-
}
|
|
203
|
-
})
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
// Add Writeup props if the component extends Writeup.astro
|
|
207
|
-
if (extendsWriteup) {
|
|
208
|
-
const writeupProps = extractProps(
|
|
209
|
-
readFileSync('src/components/Writeup.astro', 'utf-8')
|
|
210
|
-
)
|
|
211
|
-
writeupProps
|
|
212
|
-
.filter((item) => item.name !== '[key: string | number | symbol]')
|
|
213
|
-
.forEach((item) => {
|
|
214
|
-
if (!tableBody.has(item.name)) {
|
|
215
|
-
let type = item.type
|
|
216
|
-
.replace(/\s*\|?\s*(undefined|null)/, '')
|
|
217
|
-
.trim()
|
|
218
|
-
.replace(/\s*\|\s*any/, '')
|
|
219
|
-
.replace(/\s*\[key: string \| number \| symbol\]: any/, '')
|
|
220
|
-
|
|
221
|
-
// Remove [key: string | number | symbol]: any from the last prop
|
|
222
|
-
if (item === writeupProps[writeupProps.length - 1]) {
|
|
223
|
-
type = type.replace(/\s*\[key: string \| number \| symbol\]: any/, '')
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
tableBody.set(item.name, [item.name, type, getDefaultValue(item.name)])
|
|
227
|
-
}
|
|
228
|
-
})
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// Add 'as' prop only if asDefault is not empty
|
|
232
|
-
if (asDefault) {
|
|
233
|
-
tableBody.set('as', ['as', 'HTMLTag', asDefault])
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// Check if the component is polymorphic
|
|
237
|
-
const isPolymorphic = componentFileContent.includes('Polymorphic<')
|
|
238
|
-
|
|
239
|
-
// Extract HTMLAttributes from the component
|
|
240
|
-
const htmlAttributesMatch = componentFileContent.match(
|
|
241
|
-
/HTMLAttributes<'(\w+)'>/
|
|
242
|
-
)
|
|
243
|
-
let htmlElement = htmlAttributesMatch ? htmlAttributesMatch[1] : ''
|
|
244
|
-
|
|
245
|
-
// Special handling for List and Button components
|
|
246
|
-
if (componentName === 'List') {
|
|
247
|
-
htmlElement = "'ul' | 'ol'"
|
|
248
|
-
} else if (componentName === 'Button') {
|
|
249
|
-
htmlElement = "'button' | 'a' | 'label'"
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// Add HTML Attributes row
|
|
253
|
-
if (isPolymorphic && asDefault) {
|
|
254
|
-
tableBody.set('HTML Attributes', [
|
|
255
|
-
'HTML Attributes',
|
|
256
|
-
`Polymorphic<${asDefault}>`,
|
|
257
|
-
'-',
|
|
258
|
-
])
|
|
259
|
-
} else if (htmlElement) {
|
|
260
|
-
tableBody.set('HTML Attributes', ['HTML Attributes', `${htmlElement}`, '-'])
|
|
261
|
-
}
|
|
2
|
+
// const { schema } = Astro.props
|
|
3
|
+
|
|
4
|
+
// import Table from 'fulldev-ui/components/Table.astro'
|
|
5
|
+
// import { zodToJsonSchema } from 'zod-to-json-schema'
|
|
6
|
+
|
|
7
|
+
// const slug = Astro.params.page?.split('/').pop() || ''
|
|
8
|
+
|
|
9
|
+
// const allSchemas = import.meta.glob('/src/schemas/**/*.ts', {
|
|
10
|
+
// eager: true,
|
|
11
|
+
// })
|
|
12
|
+
|
|
13
|
+
// const schemaName = schema ?? slug
|
|
14
|
+
// const foundSchema = Object.entries(allSchemas).find(([key]) =>
|
|
15
|
+
// key.toLowerCase().includes(`/${schemaName.toLowerCase()}.ts`)
|
|
16
|
+
// )?.[1] as any
|
|
17
|
+
|
|
18
|
+
// const jsonSchema = zodToJsonSchema(foundSchema?.default, {
|
|
19
|
+
// pipeStrategy: 'output',
|
|
20
|
+
// }) as { properties?: Record<string, any> }
|
|
21
|
+
|
|
22
|
+
// const properties = jsonSchema.properties || {}
|
|
23
|
+
|
|
24
|
+
// const tableBody = Object.entries(properties).map(([key, value]: any) => {
|
|
25
|
+
// let type = 'any'
|
|
26
|
+
// if (value.enum) {
|
|
27
|
+
// type = value.enum.join(' | ')
|
|
28
|
+
// } else if (value.type) {
|
|
29
|
+
// type = value.type
|
|
30
|
+
// } else if (value.$ref) {
|
|
31
|
+
// type = `typeof ${key}`
|
|
32
|
+
// }
|
|
33
|
+
// const defaultValue = value.default?.toString() ?? '-'
|
|
34
|
+
// return [key, type, defaultValue]
|
|
35
|
+
// })
|
|
262
36
|
---
|
|
263
37
|
|
|
264
|
-
<Table
|
|
38
|
+
<!-- <Table
|
|
265
39
|
size="md"
|
|
266
40
|
class:list={['props-table']}
|
|
267
41
|
header={['Prop', 'Type', 'Default']}
|
|
268
|
-
body={
|
|
42
|
+
body={tableBody}
|
|
269
43
|
/>
|
|
270
44
|
|
|
271
|
-
<style is:global
|
|
45
|
+
<style is:global>
|
|
272
46
|
.props-table {
|
|
273
47
|
overflow: auto;
|
|
274
48
|
}
|
|
275
|
-
</style>
|
|
49
|
+
</style> -->
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
<!-- ---
|
|
2
2
|
import Button from 'fulldev-ui/components/Button.astro'
|
|
3
3
|
|
|
4
4
|
const { componentProps } = Astro.props
|
|
@@ -25,7 +25,7 @@ const isComponent =
|
|
|
25
25
|
</div>
|
|
26
26
|
</div>
|
|
27
27
|
) : (
|
|
28
|
-
<div class="block
|
|
28
|
+
<div class="window block">
|
|
29
29
|
<div class="button-header">
|
|
30
30
|
<Button
|
|
31
31
|
for={id}
|
|
@@ -50,22 +50,11 @@ const isComponent =
|
|
|
50
50
|
)
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
<style
|
|
53
|
+
<style is:global>
|
|
54
54
|
@layer fulldev {
|
|
55
55
|
.window {
|
|
56
|
-
display: flex;
|
|
57
|
-
flex-direction: column;
|
|
58
|
-
align-items: flex-start;
|
|
59
|
-
width: 100%;
|
|
60
|
-
|
|
61
56
|
.code-container {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
.astro-code {
|
|
65
|
-
margin: 0;
|
|
66
|
-
background-color: #191919 !important;
|
|
67
|
-
padding: var(--space-5);
|
|
68
|
-
}
|
|
57
|
+
@apply w-full;
|
|
69
58
|
}
|
|
70
59
|
|
|
71
60
|
&.component {
|
|
@@ -130,45 +119,4 @@ const isComponent =
|
|
|
130
119
|
}
|
|
131
120
|
}
|
|
132
121
|
}
|
|
133
|
-
|
|
134
|
-
// .window {
|
|
135
|
-
// width: 100%;
|
|
136
|
-
|
|
137
|
-
// &.component {
|
|
138
|
-
// border: 1px solid var(--base-6);
|
|
139
|
-
// border-radius: var(--radius-2);
|
|
140
|
-
// overflow: hidden;
|
|
141
|
-
|
|
142
|
-
// .example-container {
|
|
143
|
-
// display: flex;
|
|
144
|
-
// flex-direction: column;
|
|
145
|
-
// align-items: start;
|
|
146
|
-
// gap: var(--space-4);
|
|
147
|
-
// padding: var(--space-5);
|
|
148
|
-
// }
|
|
149
|
-
|
|
150
|
-
// .astro-code {
|
|
151
|
-
// border: none;
|
|
152
|
-
// border-top: 1px solid var(--base-6);
|
|
153
|
-
// border-radius: 0px;
|
|
154
|
-
// }
|
|
155
|
-
// }
|
|
156
|
-
|
|
157
|
-
// &:not(.component) {
|
|
158
|
-
// padding-top: var(--space-7);
|
|
159
|
-
// padding-bottom: var(--space-7);
|
|
160
|
-
|
|
161
|
-
// .live-code-layout {
|
|
162
|
-
// display: flex;
|
|
163
|
-
// flex-direction: column;
|
|
164
|
-
// margin-top: var(--space-4);
|
|
165
|
-
// width: 100%;
|
|
166
|
-
// overflow: hidden;
|
|
167
|
-
|
|
168
|
-
// .example-container {
|
|
169
|
-
// border-top: 1px solid var(--base-6);
|
|
170
|
-
// }
|
|
171
|
-
// }
|
|
172
|
-
// }
|
|
173
|
-
// }
|
|
174
|
-
</style>
|
|
122
|
+
</style> -->
|
package/src/content/config.ts
CHANGED
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
import { defineCollection } from 'astro:content'
|
|
2
|
-
import
|
|
3
|
-
import imageSchema from 'fulldev-ui/schemas/imageSchema.ts'
|
|
4
|
-
import pageSchema from 'fulldev-ui/schemas/pageSchema.ts'
|
|
5
|
-
import presetSchema from 'fulldev-ui/schemas/presetSchema.ts'
|
|
2
|
+
import { pageSchema } from 'fulldev-ui/schemas/page.ts'
|
|
6
3
|
|
|
7
4
|
export const collections = {
|
|
8
5
|
pages: defineCollection({
|
|
9
6
|
type: 'content',
|
|
10
7
|
schema: pageSchema,
|
|
11
8
|
}),
|
|
12
|
-
|
|
9
|
+
layouts: defineCollection({
|
|
13
10
|
type: 'data',
|
|
14
|
-
schema:
|
|
15
|
-
}),
|
|
16
|
-
images: defineCollection({
|
|
17
|
-
loader: imageLoader,
|
|
18
|
-
schema: imageSchema,
|
|
11
|
+
schema: pageSchema,
|
|
19
12
|
}),
|
|
20
13
|
}
|