fulldev-ui 0.6.0-beta.10 → 0.6.0-beta.12
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/Content1.astro +1 -1
- package/src/blocks/Header.astro +1 -1
- package/src/blocks/{Industries1.astro → JobCategories1.astro} +5 -27
- package/src/blocks/JobCategory1.astro +90 -0
- package/src/blocks/Projects1.astro +4 -1
- package/src/layouts/{Product.astro → _Product.astro} +6 -6
- package/src/schemas/page.ts +1 -0
- package/src/structures/Drawer.astro +2 -3
- package/src/structures/Prose.astro +4 -0
- package/src/layouts/Block.astro +0 -81
- package/src/layouts/Category.astro +0 -136
- package/src/layouts/Doc.astro +0 -96
- package/src/layouts/Job.astro +0 -60
- package/src/layouts/Jobs.astro +0 -72
- package/src/layouts/Post.astro +0 -53
package/package.json
CHANGED
package/src/blocks/Header.astro
CHANGED
|
@@ -107,7 +107,7 @@ const {
|
|
|
107
107
|
<style is:global>
|
|
108
108
|
@layer fulldev {
|
|
109
109
|
.header {
|
|
110
|
-
@apply sticky left-0 top-0 z-20 flex h-14 w-full items-center
|
|
110
|
+
@apply sticky left-0 top-0 z-20 flex h-14 w-full items-center border-b bg-background;
|
|
111
111
|
height: var(--header-height);
|
|
112
112
|
|
|
113
113
|
&,
|
|
@@ -22,11 +22,11 @@ const { heading, button, pages, ...rest } = Astro.props
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
24
|
<Section
|
|
25
|
-
class
|
|
25
|
+
class="job-categories-1"
|
|
26
26
|
{...rest}
|
|
27
27
|
>
|
|
28
|
-
<Container>
|
|
29
|
-
<Element class
|
|
28
|
+
<Container class="flex flex-col gap-12">
|
|
29
|
+
<Element class="flex items-center justify-between gap-8">
|
|
30
30
|
<Heading
|
|
31
31
|
size="3xl"
|
|
32
32
|
text={heading}
|
|
@@ -41,11 +41,11 @@ const { heading, button, pages, ...rest } = Astro.props
|
|
|
41
41
|
{
|
|
42
42
|
pages?.map(({ slug, data: { title, list, image } }) => (
|
|
43
43
|
<Card
|
|
44
|
-
class="
|
|
44
|
+
class="p-0"
|
|
45
45
|
href={getHref(slug)}
|
|
46
46
|
>
|
|
47
47
|
<Image {...image} />
|
|
48
|
-
<Writeup>
|
|
48
|
+
<Writeup class="p-4">
|
|
49
49
|
<Heading
|
|
50
50
|
as="h2"
|
|
51
51
|
size="lg"
|
|
@@ -62,25 +62,3 @@ const { heading, button, pages, ...rest } = Astro.props
|
|
|
62
62
|
</Matrix>
|
|
63
63
|
</Container>
|
|
64
64
|
</Section>
|
|
65
|
-
|
|
66
|
-
<style is:global>
|
|
67
|
-
@layer fulldev {
|
|
68
|
-
.industries-1 {
|
|
69
|
-
.container {
|
|
70
|
-
@apply flex flex-col gap-12;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.industries-1-segment {
|
|
74
|
-
@apply flex items-center justify-between gap-8;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.card {
|
|
78
|
-
@apply overflow-hidden p-0;
|
|
79
|
-
|
|
80
|
-
.writeup {
|
|
81
|
-
@apply p-4;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
</style>
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { CollectionEntry } from 'astro:content'
|
|
3
|
+
import { getCollection } from 'astro:content'
|
|
4
|
+
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
5
|
+
import Image from 'fulldev-ui/components/Image.astro'
|
|
6
|
+
import List from 'fulldev-ui/components/List.astro'
|
|
7
|
+
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
8
|
+
import Card from 'fulldev-ui/structures/Card.astro'
|
|
9
|
+
import Container from 'fulldev-ui/structures/Container.astro'
|
|
10
|
+
import Matrix from 'fulldev-ui/structures/Matrix.astro'
|
|
11
|
+
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
12
|
+
import Section from 'fulldev-ui/structures/Section.astro'
|
|
13
|
+
import { getHref } from 'fulldev-ui/utils/getHref'
|
|
14
|
+
|
|
15
|
+
interface Props {
|
|
16
|
+
slug?: CollectionEntry<'pages'>['slug']
|
|
17
|
+
heading?: string | undefined
|
|
18
|
+
paragraph?: string | undefined
|
|
19
|
+
pages?: CollectionEntry<'pages'>[]
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const { slug, heading, paragraph, pages, ...rest } = Astro.props
|
|
23
|
+
|
|
24
|
+
// Jobs that reference the current category, or any of `pages` select categories
|
|
25
|
+
const jobs = await getCollection('pages', (page) =>
|
|
26
|
+
page.data.parents?.some(
|
|
27
|
+
(category) =>
|
|
28
|
+
category.slug == slug || pages?.some((p) => p.slug == category.slug)
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
<Section
|
|
34
|
+
class:list="job-category-1 flex flex-col gap-12 pt-0"
|
|
35
|
+
{...rest}
|
|
36
|
+
>
|
|
37
|
+
<Container class="border-b py-12">
|
|
38
|
+
<Prose>
|
|
39
|
+
<Heading
|
|
40
|
+
as="h1"
|
|
41
|
+
size="3xl"
|
|
42
|
+
text={heading}
|
|
43
|
+
/>
|
|
44
|
+
<Paragraph text={paragraph} />
|
|
45
|
+
</Prose>
|
|
46
|
+
</Container>
|
|
47
|
+
<Container class="flex flex-col gap-12">
|
|
48
|
+
<Matrix class="gap-2">
|
|
49
|
+
{
|
|
50
|
+
pages?.map(({ slug, data: { title, image } }) => (
|
|
51
|
+
<Card
|
|
52
|
+
class="grid grid-cols-3 items-center bg-transparent p-0"
|
|
53
|
+
href={getHref(slug)}
|
|
54
|
+
>
|
|
55
|
+
<Image
|
|
56
|
+
class="h-full w-auto rounded-sm object-cover"
|
|
57
|
+
{...image}
|
|
58
|
+
/>
|
|
59
|
+
<Heading
|
|
60
|
+
class="col-span-2 p-4"
|
|
61
|
+
as="h3"
|
|
62
|
+
size="md"
|
|
63
|
+
text={title}
|
|
64
|
+
/>
|
|
65
|
+
</Card>
|
|
66
|
+
))
|
|
67
|
+
}
|
|
68
|
+
</Matrix>
|
|
69
|
+
<Matrix>
|
|
70
|
+
{
|
|
71
|
+
jobs?.map(({ slug, data: { title, list } }) => (
|
|
72
|
+
<Card
|
|
73
|
+
class="jobs-1-card flex flex-col gap-3"
|
|
74
|
+
href={getHref(slug)}
|
|
75
|
+
>
|
|
76
|
+
<Heading
|
|
77
|
+
as="h2"
|
|
78
|
+
size="lg"
|
|
79
|
+
text={title}
|
|
80
|
+
/>
|
|
81
|
+
<List
|
|
82
|
+
size="sm"
|
|
83
|
+
items={list}
|
|
84
|
+
/>
|
|
85
|
+
</Card>
|
|
86
|
+
))
|
|
87
|
+
}
|
|
88
|
+
</Matrix>
|
|
89
|
+
</Container>
|
|
90
|
+
</Section>
|
|
@@ -48,7 +48,10 @@ const { tagline, heading, paragraph, buttons, content, cards } = Astro.props
|
|
|
48
48
|
/>
|
|
49
49
|
<Fragment set:html={content} />
|
|
50
50
|
<Group>
|
|
51
|
-
<Buttons
|
|
51
|
+
<Buttons
|
|
52
|
+
variant="secondary"
|
|
53
|
+
{buttons}
|
|
54
|
+
/>
|
|
52
55
|
</Group>
|
|
53
56
|
</Prose>
|
|
54
57
|
<Element class="flex flex-col gap-8">
|
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
|
|
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> -->
|
package/src/schemas/page.ts
CHANGED
|
@@ -42,7 +42,6 @@ const render = slot?.trim().length > 0
|
|
|
42
42
|
>
|
|
43
43
|
<Fragment set:html={slot} />
|
|
44
44
|
</Element>
|
|
45
|
-
|
|
46
45
|
<label
|
|
47
46
|
for={id}
|
|
48
47
|
class="drawer-backdrop"
|
|
@@ -62,7 +61,7 @@ const render = slot?.trim().length > 0
|
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
.drawer-backdrop {
|
|
65
|
-
@apply pointer-events-none invisible fixed left-0 top-0 z-30 h-
|
|
64
|
+
@apply pointer-events-none invisible fixed left-0 top-0 z-30 h-screen w-full bg-black opacity-0 transition-opacity;
|
|
66
65
|
|
|
67
66
|
&:is(.drawer-checkbox:checked ~ &) {
|
|
68
67
|
@apply pointer-events-auto visible opacity-50;
|
|
@@ -70,7 +69,7 @@ const render = slot?.trim().length > 0
|
|
|
70
69
|
}
|
|
71
70
|
|
|
72
71
|
.drawer-body {
|
|
73
|
-
@apply fixed bottom-0 left-0 top-0 z-40 h-
|
|
72
|
+
@apply fixed bottom-0 left-0 top-0 z-40 h-screen w-80 max-w-[75vw] -translate-x-full overflow-y-auto rounded-r-lg border border-l-0 bg-background shadow-2xl transition-transform;
|
|
74
73
|
@apply scrollbar scrollbar-track-transparent scrollbar-thumb-accent scrollbar-thumb-rounded-full scrollbar-w-2 hover:scrollbar-thumb-accent-hover;
|
|
75
74
|
|
|
76
75
|
&:is(.drawer-checkbox:checked ~ &) {
|
package/src/layouts/Block.astro
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { ComponentProps } from 'astro/types'
|
|
3
|
-
import type { CollectionEntry } from 'astro:content'
|
|
4
|
-
import Footer from 'fulldev-ui/blocks/Footer.astro'
|
|
5
|
-
import Header from 'fulldev-ui/blocks/Header.astro'
|
|
6
|
-
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
7
|
-
import Menus from 'fulldev-ui/components/Menus.astro'
|
|
8
|
-
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
9
|
-
import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
|
|
10
|
-
import Container from 'fulldev-ui/structures/Container.astro'
|
|
11
|
-
import Layout from 'fulldev-ui/structures/Layout.astro'
|
|
12
|
-
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
13
|
-
import Sidebar from 'fulldev-ui/structures/Sidebar.astro'
|
|
14
|
-
|
|
15
|
-
type Props = ComponentProps<typeof Layout> &
|
|
16
|
-
PageSchema & {
|
|
17
|
-
render: CollectionEntry<'pages'>['render']
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const { header, sidebar, render, title, description, footer } = Astro.props
|
|
21
|
-
|
|
22
|
-
const { Content } = await render()
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
<Layout
|
|
26
|
-
class:list="block"
|
|
27
|
-
{...Astro.props}
|
|
28
|
-
>
|
|
29
|
-
<Header
|
|
30
|
-
{...sidebar}
|
|
31
|
-
{...header}
|
|
32
|
-
/>
|
|
33
|
-
<Container
|
|
34
|
-
class:list="block-main"
|
|
35
|
-
as="main"
|
|
36
|
-
>
|
|
37
|
-
<Sidebar>
|
|
38
|
-
<Menus
|
|
39
|
-
size="sm"
|
|
40
|
-
menus={sidebar?.menus}
|
|
41
|
-
/>
|
|
42
|
-
</Sidebar>
|
|
43
|
-
<Container class:list="block-container">
|
|
44
|
-
<Prose class:list="block-prose">
|
|
45
|
-
<Heading
|
|
46
|
-
size="4xl"
|
|
47
|
-
as="h1"
|
|
48
|
-
text={title}
|
|
49
|
-
/>
|
|
50
|
-
<Paragraph
|
|
51
|
-
muted
|
|
52
|
-
text={description}
|
|
53
|
-
/>
|
|
54
|
-
<Content />
|
|
55
|
-
</Prose>
|
|
56
|
-
</Container>
|
|
57
|
-
</Container>
|
|
58
|
-
<Footer {...footer} />
|
|
59
|
-
</Layout>
|
|
60
|
-
|
|
61
|
-
<style is:global>
|
|
62
|
-
@layer fulldev {
|
|
63
|
-
.block {
|
|
64
|
-
.block-main {
|
|
65
|
-
@apply flex w-full items-start justify-between !px-0;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.block-container {
|
|
69
|
-
max-width: calc(100% - var(--sidebar-width)) !important;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.sidebar {
|
|
73
|
-
@apply hidden lg:flex;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
.block-prose {
|
|
77
|
-
@apply mx-auto max-w-none py-8;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
</style>
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
<!-- ---
|
|
2
|
-
import type { ComponentProps } from 'astro/types'
|
|
3
|
-
import type { CollectionEntry } from 'astro:content'
|
|
4
|
-
import { getCollection } from 'astro:content'
|
|
5
|
-
import Products1 from 'fulldev-ui/blocks/Products1.astro'
|
|
6
|
-
import Carousel from 'fulldev-ui/components/Carousel.astro'
|
|
7
|
-
import Element from 'fulldev-ui/components/Element.astro'
|
|
8
|
-
import Select from 'fulldev-ui/components/Select.astro'
|
|
9
|
-
import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
|
|
10
|
-
import Layout from 'fulldev-ui/structures/Layout.astro'
|
|
11
|
-
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
12
|
-
import { getHref } from 'fulldev-ui/utils/getHref.ts'
|
|
13
|
-
|
|
14
|
-
interface Props extends ComponentProps<typeof Layout>, PageSchema {
|
|
15
|
-
render: CollectionEntry<'pages'>['render']
|
|
16
|
-
slug: CollectionEntry<'pages'>['slug']
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const { render, slug, title, description } = Astro.props
|
|
20
|
-
|
|
21
|
-
const categories = await getCollection('pages', ({ data }) =>
|
|
22
|
-
data.categories?.some((c) => c.slug.includes(slug))
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
const products = await getCollection('pages', ({ data }) =>
|
|
26
|
-
data.categories?.some((c) => c.slug.includes(slug))
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
const sorts = [
|
|
30
|
-
{
|
|
31
|
-
option: 'Aanbevolen',
|
|
32
|
-
products: [...products].sort(
|
|
33
|
-
(a, b) => (a.data.order || 0) - (b.data.order || 0)
|
|
34
|
-
),
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
option: 'Prijs (laag - hoog)',
|
|
38
|
-
products: [...products].sort(
|
|
39
|
-
(a, b) => (a.data.price || 0) - (b.data.price || 0)
|
|
40
|
-
),
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
option: 'Prijs (hoog - laag)',
|
|
44
|
-
products: [...products].sort(
|
|
45
|
-
(a, b) => (b.data.price || 0) - (a.data.price || 0)
|
|
46
|
-
),
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
option: 'Alfabetisch (A-Z)',
|
|
50
|
-
products: [...products],
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
option: 'Alfabetisch (Z-A)',
|
|
54
|
-
products: [...products].sort((a, b) =>
|
|
55
|
-
(b.data.title || '').localeCompare(a.data.title || '')
|
|
56
|
-
),
|
|
57
|
-
},
|
|
58
|
-
]
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
<script>
|
|
62
|
-
document.addEventListener('astro:page-load', () => {
|
|
63
|
-
const sort = document.querySelector('.sort')
|
|
64
|
-
|
|
65
|
-
sort?.addEventListener('change', (e) => {
|
|
66
|
-
const blocks = document.querySelectorAll('.products')
|
|
67
|
-
const value = (e.target as HTMLSelectElement).value
|
|
68
|
-
blocks?.forEach((block) => block.classList.add('hide'))
|
|
69
|
-
|
|
70
|
-
const block = document.querySelector(`.products[id='${value}']`)
|
|
71
|
-
block?.classList.remove('hide')
|
|
72
|
-
})
|
|
73
|
-
})
|
|
74
|
-
</script>
|
|
75
|
-
|
|
76
|
-
<Layout
|
|
77
|
-
class:list="category"
|
|
78
|
-
{...Astro.props}
|
|
79
|
-
>
|
|
80
|
-
<Intro1
|
|
81
|
-
heading={title}
|
|
82
|
-
text={description}
|
|
83
|
-
/>
|
|
84
|
-
<Carousel>
|
|
85
|
-
{
|
|
86
|
-
categories.map((category) => (
|
|
87
|
-
<Element
|
|
88
|
-
as="a"
|
|
89
|
-
class:list="item"
|
|
90
|
-
href={getHref(category.slug)}
|
|
91
|
-
>
|
|
92
|
-
{category.data.title}
|
|
93
|
-
</Element>
|
|
94
|
-
))
|
|
95
|
-
}
|
|
96
|
-
</Carousel>
|
|
97
|
-
<Element class:list="toolbar">
|
|
98
|
-
<span>{products.length} resultaten</span>
|
|
99
|
-
<Select
|
|
100
|
-
class:list="sort"
|
|
101
|
-
size="sm"
|
|
102
|
-
name="Sorteren"
|
|
103
|
-
options={sorts.map((sort) => sort.option)}
|
|
104
|
-
/>
|
|
105
|
-
</Element>
|
|
106
|
-
{
|
|
107
|
-
sorts.map((sort: any) => (
|
|
108
|
-
<Products1
|
|
109
|
-
class:list={sort.option !== 'Aanbevolen' ? 'hide' : ''}
|
|
110
|
-
products={sort.products}
|
|
111
|
-
/>
|
|
112
|
-
))
|
|
113
|
-
}
|
|
114
|
-
<Prose {render} />
|
|
115
|
-
<slot />
|
|
116
|
-
</Layout>
|
|
117
|
-
|
|
118
|
-
<style is:global>
|
|
119
|
-
.carousel {
|
|
120
|
-
.item {
|
|
121
|
-
@apply min-w-48 rounded-sm border p-4 text-sm;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
.products.hide {
|
|
126
|
-
@apply hidden;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
.toolbar {
|
|
130
|
-
@apply container flex items-center justify-between pt-8;
|
|
131
|
-
|
|
132
|
-
span {
|
|
133
|
-
@apply text-sm text-muted-foreground;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
</style> -->
|
package/src/layouts/Doc.astro
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { ComponentProps } from 'astro/types'
|
|
3
|
-
import type { CollectionEntry } from 'astro:content'
|
|
4
|
-
import Footer from 'fulldev-ui/blocks/Footer.astro'
|
|
5
|
-
import Header from 'fulldev-ui/blocks/Header.astro'
|
|
6
|
-
import Heading from 'fulldev-ui/components/Heading.astro'
|
|
7
|
-
import Menu from 'fulldev-ui/components/Menu.astro'
|
|
8
|
-
import Menus from 'fulldev-ui/components/Menus.astro'
|
|
9
|
-
import Paragraph from 'fulldev-ui/components/Paragraph.astro'
|
|
10
|
-
import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
|
|
11
|
-
import Container from 'fulldev-ui/structures/Container.astro'
|
|
12
|
-
import Layout from 'fulldev-ui/structures/Layout.astro'
|
|
13
|
-
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
14
|
-
import Sidebar from 'fulldev-ui/structures/Sidebar.astro'
|
|
15
|
-
|
|
16
|
-
type Props = ComponentProps<typeof Layout> &
|
|
17
|
-
PageSchema & {
|
|
18
|
-
render: CollectionEntry<'pages'>['render']
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const { header, sidebar, render, title, description, footer } = Astro.props
|
|
22
|
-
|
|
23
|
-
const { Content, headings } = await render()
|
|
24
|
-
|
|
25
|
-
const filteredHeadings = headings?.filter(
|
|
26
|
-
(heading: any) => heading.depth >= 2 && heading.depth <= 4
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
const links = filteredHeadings?.map((button: any) => ({
|
|
30
|
-
text: button.text,
|
|
31
|
-
href: `#${button.slug}`,
|
|
32
|
-
class: `depth-${button.depth}`,
|
|
33
|
-
}))
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
<Layout
|
|
37
|
-
class:list="doc"
|
|
38
|
-
{...Astro.props}
|
|
39
|
-
>
|
|
40
|
-
<Header
|
|
41
|
-
{...sidebar}
|
|
42
|
-
{...header}
|
|
43
|
-
/>
|
|
44
|
-
<Container as="main">
|
|
45
|
-
<Sidebar>
|
|
46
|
-
<Menus
|
|
47
|
-
size="sm"
|
|
48
|
-
menus={sidebar?.menus}
|
|
49
|
-
/>
|
|
50
|
-
</Sidebar>
|
|
51
|
-
<Container>
|
|
52
|
-
<Prose>
|
|
53
|
-
<Heading
|
|
54
|
-
size="4xl"
|
|
55
|
-
as="h1"
|
|
56
|
-
text={title}
|
|
57
|
-
/>
|
|
58
|
-
<Paragraph
|
|
59
|
-
muted
|
|
60
|
-
text={description}
|
|
61
|
-
/>
|
|
62
|
-
<Content />
|
|
63
|
-
</Prose>
|
|
64
|
-
</Container>
|
|
65
|
-
<Sidebar class:list="doc-toc">
|
|
66
|
-
<Menu
|
|
67
|
-
size="sm"
|
|
68
|
-
heading={title}
|
|
69
|
-
{links}
|
|
70
|
-
/>
|
|
71
|
-
</Sidebar>
|
|
72
|
-
</Container>
|
|
73
|
-
<Footer {...footer} />
|
|
74
|
-
</Layout>
|
|
75
|
-
|
|
76
|
-
<style is:global>
|
|
77
|
-
@layer fulldev {
|
|
78
|
-
.doc {
|
|
79
|
-
main {
|
|
80
|
-
@apply flex w-full items-start justify-between !px-0;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.sidebar {
|
|
84
|
-
@apply hidden lg:flex;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
.doc-toc {
|
|
88
|
-
@apply hidden xl:flex;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.prose {
|
|
92
|
-
@apply mx-auto py-8;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
</style>
|
package/src/layouts/Job.astro
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { ComponentProps } from 'astro/types'
|
|
3
|
-
import type { CollectionEntry } from 'astro:content'
|
|
4
|
-
import { getEntries } from 'astro:content'
|
|
5
|
-
import Content3 from 'fulldev-ui/blocks/Content3.astro'
|
|
6
|
-
import Footer from 'fulldev-ui/blocks/Footer.astro'
|
|
7
|
-
import Header from 'fulldev-ui/blocks/Header.astro'
|
|
8
|
-
import Element from 'fulldev-ui/components/Element.astro'
|
|
9
|
-
import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
|
|
10
|
-
import Layout from 'fulldev-ui/structures/Layout.astro'
|
|
11
|
-
import { getHref } from 'fulldev-ui/utils/getHref.ts'
|
|
12
|
-
|
|
13
|
-
type Props = ComponentProps<typeof Layout> &
|
|
14
|
-
PageSchema & {
|
|
15
|
-
render: CollectionEntry<'pages'>['render']
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const {
|
|
19
|
-
title,
|
|
20
|
-
description,
|
|
21
|
-
list,
|
|
22
|
-
button,
|
|
23
|
-
buttons,
|
|
24
|
-
header,
|
|
25
|
-
sidebar,
|
|
26
|
-
render,
|
|
27
|
-
parents,
|
|
28
|
-
footer,
|
|
29
|
-
} = Astro.props
|
|
30
|
-
|
|
31
|
-
const parentEntries = parents && (await getEntries(parents))
|
|
32
|
-
|
|
33
|
-
const { Content } = await render()
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
<Layout
|
|
37
|
-
class:list="job"
|
|
38
|
-
{...Astro.props}
|
|
39
|
-
>
|
|
40
|
-
<Header
|
|
41
|
-
{...sidebar}
|
|
42
|
-
{...header}
|
|
43
|
-
/>
|
|
44
|
-
<Element as="main">
|
|
45
|
-
<Content3
|
|
46
|
-
badges={parentEntries?.map((parent) => ({
|
|
47
|
-
text: parent.data.title,
|
|
48
|
-
href: getHref(parent.slug),
|
|
49
|
-
}))}
|
|
50
|
-
heading={title}
|
|
51
|
-
paragraph={description}
|
|
52
|
-
{list}
|
|
53
|
-
{button}
|
|
54
|
-
{buttons}
|
|
55
|
-
>
|
|
56
|
-
<Content />
|
|
57
|
-
</Content3>
|
|
58
|
-
</Element>
|
|
59
|
-
<Footer {...footer} />
|
|
60
|
-
</Layout>
|
package/src/layouts/Jobs.astro
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { ComponentProps } from 'astro/types'
|
|
3
|
-
import type { CollectionEntry } from 'astro:content'
|
|
4
|
-
import Footer from 'fulldev-ui/blocks/Footer.astro'
|
|
5
|
-
import Header from 'fulldev-ui/blocks/Header.astro'
|
|
6
|
-
import Intro1 from 'fulldev-ui/blocks/Intro1.astro'
|
|
7
|
-
import Jobs1 from 'fulldev-ui/blocks/Jobs1.astro'
|
|
8
|
-
import Element from 'fulldev-ui/components/Element.astro'
|
|
9
|
-
import Sidebar from 'fulldev-ui/components/Sidebar.astro'
|
|
10
|
-
import type { PageSchema } from 'fulldev-ui/schemas/page.ts'
|
|
11
|
-
import Container from 'fulldev-ui/structures/Container.astro'
|
|
12
|
-
import Layout from 'fulldev-ui/structures/Layout.astro'
|
|
13
|
-
import Prose from 'fulldev-ui/structures/Prose.astro'
|
|
14
|
-
|
|
15
|
-
type Props = ComponentProps<typeof Layout> &
|
|
16
|
-
PageSchema & {
|
|
17
|
-
slug: CollectionEntry<'pages'>['slug']
|
|
18
|
-
render: CollectionEntry<'pages'>['render']
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const { slug, header, sidebar, render, title, description, footer } =
|
|
22
|
-
Astro.props
|
|
23
|
-
|
|
24
|
-
const { Content } = await render()
|
|
25
|
-
|
|
26
|
-
// const children = (
|
|
27
|
-
// await getCollection('pages', ({ data }) =>
|
|
28
|
-
// data.parents?.some((p) => p.slug.includes(slug))
|
|
29
|
-
// )
|
|
30
|
-
// )?.map(({ collection, slug }) => ({ collection, slug }))
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
<Layout
|
|
34
|
-
class:list="jobs"
|
|
35
|
-
{...Astro.props}
|
|
36
|
-
>
|
|
37
|
-
<Header
|
|
38
|
-
{...sidebar}
|
|
39
|
-
{...header}
|
|
40
|
-
/>
|
|
41
|
-
<Container class:list="jobs-container">
|
|
42
|
-
<Sidebar {...sidebar} />
|
|
43
|
-
<Element
|
|
44
|
-
class:list="jobs-main"
|
|
45
|
-
as="main"
|
|
46
|
-
>
|
|
47
|
-
<Intro1
|
|
48
|
-
heading={title}
|
|
49
|
-
paragraph={description}
|
|
50
|
-
/>
|
|
51
|
-
<!-- <Jobs1 pages={children} /> -->
|
|
52
|
-
<Prose>
|
|
53
|
-
<Content />
|
|
54
|
-
</Prose>
|
|
55
|
-
</Element>
|
|
56
|
-
</Container>
|
|
57
|
-
</Layout>
|
|
58
|
-
<Footer {...footer} />
|
|
59
|
-
|
|
60
|
-
<style is:global>
|
|
61
|
-
@layer fulldev {
|
|
62
|
-
.jobs {
|
|
63
|
-
.jobs-container {
|
|
64
|
-
@apply flex !pr-0;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.jobs-main {
|
|
68
|
-
@apply flex w-full flex-col;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
</style>
|
package/src/layouts/Post.astro
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { ComponentProps } from 'astro/types'
|
|
3
|
-
import type { CollectionEntry } from 'astro:content'
|
|
4
|
-
import Content1 from 'fulldev-ui/blocks/Content1.astro'
|
|
5
|
-
import Footer from 'fulldev-ui/blocks/Footer.astro'
|
|
6
|
-
import Header from 'fulldev-ui/blocks/Header.astro'
|
|
7
|
-
import Block from 'fulldev-ui/components/Block.astro'
|
|
8
|
-
import Element from 'fulldev-ui/components/Element.astro'
|
|
9
|
-
import type { PageSchema } from 'fulldev-ui/schemas/page'
|
|
10
|
-
import Layout from 'fulldev-ui/structures/Layout.astro'
|
|
11
|
-
|
|
12
|
-
type Props = ComponentProps<typeof Layout> &
|
|
13
|
-
PageSchema & {
|
|
14
|
-
render: CollectionEntry<'pages'>['render']
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const {
|
|
18
|
-
title,
|
|
19
|
-
description,
|
|
20
|
-
list,
|
|
21
|
-
button,
|
|
22
|
-
header,
|
|
23
|
-
sidebar,
|
|
24
|
-
sections,
|
|
25
|
-
footer,
|
|
26
|
-
render,
|
|
27
|
-
} = Astro.props
|
|
28
|
-
|
|
29
|
-
const { Content, headings } = await render()
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
<Layout
|
|
33
|
-
class:list="post"
|
|
34
|
-
{...Astro.props}
|
|
35
|
-
>
|
|
36
|
-
<Header
|
|
37
|
-
{...sidebar}
|
|
38
|
-
{...header}
|
|
39
|
-
/>
|
|
40
|
-
<Element as="main">
|
|
41
|
-
<Content1
|
|
42
|
-
heading={title}
|
|
43
|
-
paragraph={description}
|
|
44
|
-
{list}
|
|
45
|
-
{button}
|
|
46
|
-
{headings}
|
|
47
|
-
>
|
|
48
|
-
<Content />
|
|
49
|
-
</Content1>
|
|
50
|
-
{sections?.map((section) => <Block {...section} />)}
|
|
51
|
-
</Element>
|
|
52
|
-
<Footer {...footer} />
|
|
53
|
-
</Layout>
|