fulldev-ui 0.2.13 → 0.3.0-beta.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.
- package/.astro/settings.json +5 -0
- package/.astro/types.d.ts +3 -12
- package/.env +1 -0
- package/astro.config.mjs +1 -2
- package/package.json +4 -7
- package/src/_archive/Childmorphic.ts +8 -0
- package/src/_archive/getAllCollections.ts +10 -0
- package/src/_archive/getCollectionCascade.ts +33 -0
- package/src/_archive/getPathname.ts +18 -0
- package/src/_archive/staticPageSchema.ts +124 -0
- package/src/_archive/transform/transform.ts +25 -0
- package/src/_archive/transform/transformCasing.ts +24 -0
- package/src/_archive/transform/transformReferences.ts +54 -0
- package/src/_archive/transform/transformSelfs.ts +20 -0
- package/src/_archive/transform/transformUnderscores.ts +19 -0
- package/src/components/_Block.astro +2 -0
- package/src/components/{_Tag.astro → _Component.astro} +18 -9
- package/src/components/{segment → _archive}/Body.astro +7 -5
- package/src/components/{segment → _archive}/Main.astro +4 -4
- package/src/components/{segment → _archive}/Nav.astro +4 -4
- package/src/components/{structure → _archive}/Row.astro +4 -4
- package/src/components/_todo/Footer.astro +66 -0
- package/src/components/{segment → _todo}/Form.astro +6 -6
- package/src/components/{segment → _todo}/Prose.astro +10 -10
- package/src/components/{segment → _todo}/Writeup.astro +4 -4
- package/src/components/{segment → _todo}/todo.md +3 -1
- package/src/components/base/Badge.astro +6 -6
- package/src/components/base/Button.astro +37 -28
- package/src/components/base/Checkbox.astro +3 -4
- package/src/components/base/Icon.astro +5 -5
- package/src/components/base/Image.astro +19 -52
- package/src/components/base/Input.astro +12 -7
- package/src/components/base/Logo.astro +4 -4
- package/src/components/base/Radio.astro +3 -4
- package/src/components/base/Rating.astro +5 -5
- package/src/components/base/Select.astro +6 -6
- package/src/components/base/SelectOption.astro +1 -1
- package/src/components/base/Switch.astro +8 -7
- package/src/components/base/Textarea.astro +4 -3
- package/src/components/segment/Box.astro +41 -0
- package/src/components/segment/Card.astro +21 -35
- package/src/components/segment/Deck.astro +20 -16
- package/src/components/{structure → segment}/Group.astro +8 -7
- package/src/components/segment/Header.astro +18 -7
- package/src/components/segment/Section.astro +39 -37
- package/src/components/typography/Heading.astro +24 -26
- package/src/components/typography/Label.astro +17 -11
- package/src/components/typography/Link.astro +5 -5
- package/src/components/typography/List.astro +9 -6
- package/src/components/typography/ListItem.astro +5 -5
- package/src/components/typography/Paragraph.astro +17 -11
- package/src/components/typography/Tagline.astro +6 -5
- package/src/components/typography/Text.astro +40 -0
- package/src/{layouts → components/utility}/Layout.astro +6 -6
- package/src/content/config.ts +14 -0
- package/src/content/pages/index.md +1 -0
- package/src/css/color.css +88 -0
- package/src/css/props/align.scss +20 -0
- package/src/css/props/frame.scss +153 -0
- package/src/css/props/mask +1 -0
- package/src/css/props/position.scss +33 -0
- package/src/css/props/ratio +1 -0
- package/src/css/props/structure.scss +228 -0
- package/src/css/props/variant.scss +130 -0
- package/src/css/radix.css +281 -0
- package/src/css/size.css +334 -0
- package/src/css/styles.css +2 -2
- package/src/index.ts +13 -34
- package/src/integration/integration.ts +45 -0
- package/src/schemas/collection.ts +87 -0
- package/src/blocks/todo.md +0 -12
- package/src/components/_Plural.astro +0 -27
- package/src/components/base/Buttons.astro +0 -15
- package/src/components/base/Images.astro +0 -15
- package/src/components/segment/Footer.astro +0 -14
- package/src/components/structure/Bento.astro +0 -35
- package/src/components/structure/Carousel.astro +0 -43
- package/src/components/structure/Grid.astro +0 -30
- package/src/components/structure/Masonry.astro +0 -39
- package/src/components/structure/Split.astro +0 -41
- package/src/components/structure/Spread.astro +0 -48
- package/src/components/structure/Stack.astro +0 -90
- package/src/components/structure/todo.md +0 -5
- package/src/css/colors.css +0 -197
- package/src/css/main.css +0 -3
- package/src/css/sizes.css +0 -217
- package/src/layouts/todo.md +0 -2
- package/src/schemas/attributesSchema.ts +0 -125
- package/src/schemas/htmlAttributesSchema.ts +0 -126
- package/src/schemas/pageSchema.ts +0 -185
- package/src/schemas/staticPageSchema.ts +0 -124
- package/src/types/Childmorphic.ts +0 -8
- package/src/types/Pluralmorphic.ts +0 -7
- package/src/types/Structuremorphic.ts +0 -18
- package/src/utils/getAllCollections.ts +0 -10
- package/src/utils/getCollectionCascade.ts +0 -33
- package/src/utils/getPathname.ts +0 -18
- package/src/utils/transform/transform.ts +0 -25
- package/src/utils/transform/transformCasing.ts +0 -24
- package/src/utils/transform/transformReferences.ts +0 -54
- package/src/utils/transform/transformSelfs.ts +0 -20
- package/src/utils/transform/transformUnderscores.ts +0 -19
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
+
import Component from '../_Component.astro'
|
|
4
|
+
|
|
5
|
+
type Props<As extends HTMLTag = 'footer'> = Polymorphic<{ as: As }> &
|
|
6
|
+
ComponentProps<typeof Component> & {
|
|
7
|
+
structure?: 'spread'
|
|
8
|
+
position?: 'relative' | 'sticky' | 'fixed' | 'absolute'
|
|
9
|
+
variant?: 'base' | 'raised'
|
|
10
|
+
frame?: 'wrapper' | 'container' | 'panel'
|
|
11
|
+
align?: 'start' | 'center' | 'end'
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const {
|
|
15
|
+
as = 'footer',
|
|
16
|
+
density = 'base',
|
|
17
|
+
frame = 'wrapper',
|
|
18
|
+
...rest
|
|
19
|
+
} = Astro.props
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
<Component
|
|
23
|
+
class:list={['footer']}
|
|
24
|
+
{as}
|
|
25
|
+
{density}
|
|
26
|
+
{frame}
|
|
27
|
+
{...rest}
|
|
28
|
+
>
|
|
29
|
+
<slot />
|
|
30
|
+
</Component>
|
|
31
|
+
|
|
32
|
+
<style is:global lang="scss">
|
|
33
|
+
@import '../../css/utils.scss';
|
|
34
|
+
|
|
35
|
+
@include component('footer') {
|
|
36
|
+
--inner: var(--element-3);
|
|
37
|
+
|
|
38
|
+
display: flex;
|
|
39
|
+
top: 0;
|
|
40
|
+
right: 0;
|
|
41
|
+
left: 0;
|
|
42
|
+
justify-content: space-between;
|
|
43
|
+
align-items: center;
|
|
44
|
+
z-index: 10;
|
|
45
|
+
background: var(--background);
|
|
46
|
+
padding-top: var(--element-3);
|
|
47
|
+
padding-bottom: var(--element-3);
|
|
48
|
+
width: 100%;
|
|
49
|
+
|
|
50
|
+
// &.panel {
|
|
51
|
+
// margin-top: var(--inner);
|
|
52
|
+
// }
|
|
53
|
+
|
|
54
|
+
&.position-fixed {
|
|
55
|
+
position: fixed;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&.position-absolute {
|
|
59
|
+
position: absolute;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&.position-sticky {
|
|
63
|
+
position: sticky;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
</style>
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
-
import
|
|
3
|
+
import Component from '../_Component.astro'
|
|
4
4
|
|
|
5
5
|
type Props<As extends HTMLTag = 'form'> = Polymorphic<{ as: As }> &
|
|
6
|
-
ComponentProps<typeof
|
|
7
|
-
structure?: '
|
|
6
|
+
ComponentProps<typeof Component> & {
|
|
7
|
+
structure?: 'column' | 'row' | 'group'
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
const { as = 'form', structure = '
|
|
10
|
+
const { as = 'form', structure = 'column', ...rest } = Astro.props
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
<
|
|
13
|
+
<Component
|
|
14
14
|
class:list={['form']}
|
|
15
15
|
{as}
|
|
16
16
|
{structure}
|
|
17
17
|
{...rest}
|
|
18
18
|
>
|
|
19
19
|
<slot />
|
|
20
|
-
</
|
|
20
|
+
</Component>
|
|
21
21
|
|
|
22
22
|
<style is:global lang="scss">
|
|
23
23
|
@import '../../css/utils.scss';
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
-
import
|
|
3
|
+
import Component from '../_Component.astro'
|
|
4
4
|
|
|
5
5
|
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
6
|
-
ComponentProps<typeof
|
|
6
|
+
ComponentProps<typeof Component>
|
|
7
7
|
|
|
8
8
|
const { as = 'div', ...rest } = Astro.props
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
<
|
|
11
|
+
<Component
|
|
12
12
|
class:list={['prose']}
|
|
13
13
|
{as}
|
|
14
14
|
{...rest}
|
|
15
15
|
>
|
|
16
16
|
<slot />
|
|
17
|
-
</
|
|
17
|
+
</Component>
|
|
18
18
|
|
|
19
19
|
<style is:global lang="scss">
|
|
20
20
|
@import '../../css/utils.scss';
|
|
@@ -34,7 +34,7 @@ const { as = 'div', ...rest } = Astro.props
|
|
|
34
34
|
.full.prose {
|
|
35
35
|
color: var(--foreground);
|
|
36
36
|
font-weight: var(--font-weight);
|
|
37
|
-
font-size: var(--text-
|
|
37
|
+
font-size: var(--text-body);
|
|
38
38
|
line-height: 1.625;
|
|
39
39
|
font-family: var(--font-family);
|
|
40
40
|
|
|
@@ -51,7 +51,7 @@ const { as = 'div', ...rest } = Astro.props
|
|
|
51
51
|
h5,
|
|
52
52
|
h6 {
|
|
53
53
|
margin: var(--space-2) 0;
|
|
54
|
-
font: 600 var(--text-
|
|
54
|
+
font: 600 var(--text-body) 'Saira';
|
|
55
55
|
|
|
56
56
|
& + p {
|
|
57
57
|
color: var(--hue11);
|
|
@@ -77,7 +77,7 @@ const { as = 'div', ...rest } = Astro.props
|
|
|
77
77
|
background: var(--raised-background) !important;
|
|
78
78
|
color: var(--muted-foreground) !important;
|
|
79
79
|
font-weight: 500 !important;
|
|
80
|
-
font-size: var(--text-
|
|
80
|
+
font-size: var(--text-label) !important;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
td {
|
|
@@ -90,15 +90,15 @@ const { as = 'div', ...rest } = Astro.props
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
table a {
|
|
93
|
-
color: var(--
|
|
94
|
-
font-size: var(--text-
|
|
93
|
+
color: var(--solid) !important;
|
|
94
|
+
font-size: var(--text-label) !important;
|
|
95
95
|
line-height: 1 !important;
|
|
96
96
|
white-space: nowrap;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
h6 {
|
|
100
100
|
margin: var(--space-2) 0;
|
|
101
|
-
font-size: var(--text-
|
|
101
|
+
font-size: var(--text-body) !important;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
table a:hover {
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
-
import
|
|
3
|
+
import Component from '../_Component.astro'
|
|
4
4
|
|
|
5
5
|
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
6
|
-
ComponentProps<typeof
|
|
6
|
+
ComponentProps<typeof Component>
|
|
7
7
|
|
|
8
8
|
const { as = 'div', ...rest } = Astro.props
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
<
|
|
11
|
+
<Component
|
|
12
12
|
class:list={['writeup']}
|
|
13
13
|
{as}
|
|
14
14
|
{...rest}
|
|
15
15
|
>
|
|
16
16
|
<slot />
|
|
17
|
-
</
|
|
17
|
+
</Component>
|
|
18
18
|
|
|
19
19
|
<style is:global lang="scss">
|
|
20
20
|
@import '../../css/utils.scss';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
-
import
|
|
3
|
+
import Component from '../_Component.astro'
|
|
4
4
|
import Icon from './Icon.astro'
|
|
5
5
|
|
|
6
6
|
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
7
|
-
ComponentProps<typeof
|
|
7
|
+
ComponentProps<typeof Component> & {
|
|
8
8
|
html?: string
|
|
9
9
|
text?: string
|
|
10
10
|
variant?: 'primary' | 'raised' | 'muted' | 'accent' | 'outline'
|
|
@@ -14,13 +14,13 @@ type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
|
14
14
|
const { icon, ...rest } = Astro.props
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
-
<
|
|
17
|
+
<Component
|
|
18
18
|
class:list={['badge']}
|
|
19
19
|
{...rest}
|
|
20
20
|
>
|
|
21
21
|
<slot />
|
|
22
22
|
{typeof icon === 'string' ? <Icon name={icon} /> : <Icon {...icon} />}
|
|
23
|
-
</
|
|
23
|
+
</Component>
|
|
24
24
|
|
|
25
25
|
<style is:global lang="scss">
|
|
26
26
|
@import '../../css/utils.scss';
|
|
@@ -38,10 +38,10 @@ const { icon, ...rest } = Astro.props
|
|
|
38
38
|
background-color: var(--background);
|
|
39
39
|
padding-right: var(--element-2);
|
|
40
40
|
padding-left: var(--element-2);
|
|
41
|
-
height: calc(var(--text-
|
|
41
|
+
height: calc(var(--text-label) + 2 * var(--element-1));
|
|
42
42
|
color: var(--foreground);
|
|
43
43
|
font-weight: var(--button-font-weight);
|
|
44
|
-
font-size: var(--text-
|
|
44
|
+
font-size: var(--text-label);
|
|
45
45
|
line-height: 1.625;
|
|
46
46
|
font-family: var(--button-font-family);
|
|
47
47
|
text-align: center;
|
|
@@ -1,33 +1,45 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
-
import
|
|
3
|
+
import Component from '../_Component.astro'
|
|
4
4
|
import Icon from './Icon.astro'
|
|
5
5
|
|
|
6
6
|
type Props<As extends HTMLTag = 'a'> = Polymorphic<{ as: As }> &
|
|
7
|
-
ComponentProps<typeof
|
|
7
|
+
ComponentProps<typeof Component> & {
|
|
8
8
|
html?: string
|
|
9
9
|
text?: string
|
|
10
|
-
variant?: '
|
|
10
|
+
variant?: 'solid' | 'soft' | 'surface' | 'outline' | 'ghost' | 'link'
|
|
11
|
+
color?: 'base' | 'brand'
|
|
11
12
|
icon?: ComponentProps<typeof Icon> | ComponentProps<typeof Icon>['name']
|
|
12
13
|
}
|
|
13
14
|
|
|
14
|
-
const {
|
|
15
|
+
const {
|
|
16
|
+
as = 'a',
|
|
17
|
+
variant = 'solid',
|
|
18
|
+
color = variant === 'solid' ? 'brand' : 'base',
|
|
19
|
+
contrast,
|
|
20
|
+
icon,
|
|
21
|
+
...rest
|
|
22
|
+
} = Astro.props
|
|
15
23
|
---
|
|
16
24
|
|
|
17
|
-
<
|
|
25
|
+
<Component
|
|
18
26
|
class:list={['button']}
|
|
19
27
|
{as}
|
|
20
28
|
{variant}
|
|
29
|
+
{color}
|
|
30
|
+
{contrast}
|
|
21
31
|
{...rest}
|
|
22
32
|
>
|
|
23
33
|
<slot />
|
|
24
34
|
{typeof icon === 'string' ? <Icon name={icon} /> : <Icon {...icon} />}
|
|
25
|
-
</
|
|
35
|
+
</Component>
|
|
26
36
|
|
|
27
37
|
<style is:global lang="scss">
|
|
28
38
|
@import '../../css/utils.scss';
|
|
29
39
|
|
|
30
40
|
@include component('button') {
|
|
41
|
+
@import '../../css/props/variant.scss';
|
|
42
|
+
|
|
31
43
|
display: inline-flex;
|
|
32
44
|
flex-shrink: 0;
|
|
33
45
|
justify-content: center;
|
|
@@ -37,49 +49,46 @@ const { as = 'a', variant = 'primary', icon, ...rest } = Astro.props
|
|
|
37
49
|
transition: background-color var(--transition);
|
|
38
50
|
cursor: pointer;
|
|
39
51
|
outline: none !important;
|
|
40
|
-
box-shadow: inset 0 0 0 1px var(--border);
|
|
41
52
|
border: none;
|
|
42
53
|
border-radius: var(--radius-1);
|
|
43
|
-
background-color: var(--background);
|
|
44
54
|
padding-right: var(--element-3);
|
|
45
55
|
padding-left: var(--element-3);
|
|
46
|
-
height: calc(var(--text-
|
|
56
|
+
height: calc(var(--text-label) + 2 * var(--element-3));
|
|
47
57
|
color: var(--foreground);
|
|
48
58
|
font-weight: var(--button-font-weight);
|
|
49
|
-
font-size: var(--text-
|
|
59
|
+
font-size: var(--text-label);
|
|
50
60
|
line-height: 1.625;
|
|
51
61
|
font-family: var(--button-font-family);
|
|
52
62
|
text-align: center;
|
|
53
63
|
text-decoration: none;
|
|
54
64
|
white-space: nowrap;
|
|
55
65
|
|
|
56
|
-
&.variant-link {
|
|
57
|
-
--background: transparent;
|
|
58
|
-
--hover: transparent;
|
|
59
|
-
box-shadow: none !important;
|
|
60
|
-
border-color: transparent;
|
|
61
|
-
background-color: transparent;
|
|
62
|
-
padding: 0;
|
|
63
|
-
font-weight: 400;
|
|
64
|
-
|
|
65
|
-
&:hover {
|
|
66
|
-
text-decoration: underline;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
&:hover {
|
|
71
|
-
background-color: var(--hover);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
66
|
&:focus-visible {
|
|
75
67
|
outline: 2px solid var(--focus) !important;
|
|
76
68
|
outline-offset: 2px;
|
|
77
69
|
}
|
|
78
70
|
|
|
71
|
+
&.variant-solid {
|
|
72
|
+
color: var(--background);
|
|
73
|
+
}
|
|
74
|
+
|
|
79
75
|
&:disabled {
|
|
80
76
|
opacity: 0.5;
|
|
81
77
|
cursor: not-allowed;
|
|
82
78
|
pointer-events: none;
|
|
83
79
|
}
|
|
80
|
+
|
|
81
|
+
&.variant-link {
|
|
82
|
+
box-shadow: none;
|
|
83
|
+
padding: 0;
|
|
84
|
+
|
|
85
|
+
&:hover {
|
|
86
|
+
text-decoration: underline;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
&.contrast {
|
|
90
|
+
color: var(--foreground-contrast);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
84
93
|
}
|
|
85
94
|
</style>
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps } from 'astro/types'
|
|
3
|
-
import Tag from '../_Tag.astro'
|
|
4
3
|
|
|
5
|
-
type Props = ComponentProps<typeof
|
|
4
|
+
type Props = ComponentProps<typeof Component>
|
|
6
5
|
|
|
7
6
|
const { as = 'input', type = 'checkbox', name, ...rest } = Astro.props
|
|
8
7
|
---
|
|
9
8
|
|
|
10
|
-
<
|
|
9
|
+
<Component
|
|
11
10
|
class:list={['checkbox']}
|
|
12
11
|
if={true}
|
|
13
12
|
{as}
|
|
@@ -27,7 +26,7 @@ const { as = 'input', type = 'checkbox', name, ...rest } = Astro.props
|
|
|
27
26
|
min-width: var(--element-2);
|
|
28
27
|
color: var(--color);
|
|
29
28
|
accent-color: var(--10);
|
|
30
|
-
font-size: var(--text);
|
|
29
|
+
font-size: var(--text-body);
|
|
31
30
|
|
|
32
31
|
&:hover {
|
|
33
32
|
border: var(--border-color-hover);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
import tablerIcons from '@iconify-json/tabler/icons.json'
|
|
3
3
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
4
|
-
import
|
|
4
|
+
import Component from '../_Component.astro'
|
|
5
5
|
|
|
6
6
|
type Props<As extends HTMLTag = 'i'> = Polymorphic<{ as: As }> &
|
|
7
|
-
ComponentProps<typeof
|
|
7
|
+
ComponentProps<typeof Component> & {
|
|
8
8
|
name?: string
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -16,7 +16,7 @@ const icon = trimmedName
|
|
|
16
16
|
: undefined
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
<
|
|
19
|
+
<Component
|
|
20
20
|
class:list={['icon']}
|
|
21
21
|
if={icon}
|
|
22
22
|
{as}
|
|
@@ -31,7 +31,7 @@ const icon = trimmedName
|
|
|
31
31
|
/>
|
|
32
32
|
)
|
|
33
33
|
}
|
|
34
|
-
</
|
|
34
|
+
</Component>
|
|
35
35
|
|
|
36
36
|
<style is:global lang="scss">
|
|
37
37
|
@import '../../css/utils.scss';
|
|
@@ -44,7 +44,7 @@ const icon = trimmedName
|
|
|
44
44
|
width: 1em;
|
|
45
45
|
height: 1em;
|
|
46
46
|
color: var(--foreground);
|
|
47
|
-
font-size: var(--text-
|
|
47
|
+
font-size: var(--text-body);
|
|
48
48
|
|
|
49
49
|
svg {
|
|
50
50
|
position: absolute;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps } from 'astro/types'
|
|
3
3
|
import { isString } from 'remeda'
|
|
4
|
-
import
|
|
4
|
+
import Component from '../_Component.astro'
|
|
5
5
|
|
|
6
|
-
interface Props extends ComponentProps<typeof
|
|
7
|
-
position?: 'background' | 'cover'
|
|
6
|
+
interface Props extends ComponentProps<typeof Component> {
|
|
7
|
+
position?: 'background' | 'cover'
|
|
8
8
|
frame?: 'inset'
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -54,7 +54,7 @@ const {
|
|
|
54
54
|
|
|
55
55
|
{
|
|
56
56
|
src && (
|
|
57
|
-
<
|
|
57
|
+
<Component
|
|
58
58
|
class:list={['image']}
|
|
59
59
|
if={src}
|
|
60
60
|
{src}
|
|
@@ -71,53 +71,20 @@ const {
|
|
|
71
71
|
@import '../../css/utils.scss';
|
|
72
72
|
|
|
73
73
|
@include component('image') {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
/* TODO manier fixen zodat dit met custom classes kan */
|
|
90
|
-
border-radius: 0;
|
|
91
|
-
width: 100%;
|
|
92
|
-
height: 100%;
|
|
93
|
-
object-fit: cover;
|
|
94
|
-
|
|
95
|
-
~ .full {
|
|
96
|
-
position: relative;
|
|
97
|
-
z-index: 1;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
&.position-cover {
|
|
102
|
-
width: 100%;
|
|
103
|
-
height: 100%;
|
|
104
|
-
object-fit: cover;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
&.position-panel {
|
|
108
|
-
height: 100%;
|
|
109
|
-
object-fit: cover;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
&.mask-sm {
|
|
113
|
-
-webkit-mask-image: linear-gradient(to top, transparent 0%, black 30%);
|
|
114
|
-
mask-image: linear-gradient(to top, transparent 0%, black 30%);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
&.mask {
|
|
118
|
-
-webkit-mask-image: linear-gradient(to top, transparent 0%, black 100%);
|
|
119
|
-
mask-image: linear-gradient(to top, transparent 0%, black 100%);
|
|
120
|
-
}
|
|
121
|
-
|
|
74
|
+
display: block;
|
|
75
|
+
border-radius: var(--radius-1);
|
|
76
|
+
width: 100%;
|
|
77
|
+
height: auto;
|
|
78
|
+
object-fit: cover;
|
|
79
|
+
|
|
80
|
+
&.mask-sm {
|
|
81
|
+
-webkit-mask-image: linear-gradient(to top, transparent 0%, black 30%);
|
|
82
|
+
mask-image: linear-gradient(to top, transparent 0%, black 30%);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
&.mask {
|
|
86
|
+
-webkit-mask-image: linear-gradient(to top, transparent 0%, black 100%);
|
|
87
|
+
mask-image: linear-gradient(to top, transparent 0%, black 100%);
|
|
88
|
+
}
|
|
122
89
|
}
|
|
123
90
|
</style>
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
-
import
|
|
3
|
+
import Component from '../_Component.astro'
|
|
4
4
|
|
|
5
5
|
type Props<As extends HTMLTag = 'input'> = Polymorphic<{ as: As }> &
|
|
6
|
-
ComponentProps<typeof
|
|
6
|
+
ComponentProps<typeof Component> & {
|
|
7
7
|
variant?: 'outline'
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
const { as = 'input', variant = 'outline', ...rest } = Astro.props
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
<
|
|
13
|
+
<Component
|
|
14
14
|
class:list={['input']}
|
|
15
15
|
if={true}
|
|
16
16
|
{as}
|
|
@@ -26,23 +26,28 @@ const { as = 'input', variant = 'outline', ...rest } = Astro.props
|
|
|
26
26
|
position: relative;
|
|
27
27
|
align-items: center;
|
|
28
28
|
outline: none;
|
|
29
|
-
box-shadow: inset 0 0 0 var(--border-width) var(--border);
|
|
29
|
+
box-shadow: inset 0 0 0 var(--border-width) var(--border-outline);
|
|
30
30
|
border: 0px;
|
|
31
31
|
border-radius: var(--radius-1);
|
|
32
32
|
background-color: var(--input-background);
|
|
33
33
|
padding: var(--element-2);
|
|
34
34
|
width: 100%;
|
|
35
35
|
min-width: var(--element-2);
|
|
36
|
-
height: calc(var(--text-
|
|
36
|
+
height: calc(var(--text-label) + 2 * var(--element-3));
|
|
37
37
|
color: var(--foreground);
|
|
38
38
|
font-weight: var(--font-weight);
|
|
39
|
-
font-size: var(--text-
|
|
39
|
+
font-size: var(--text-label);
|
|
40
40
|
line-height: 1.25;
|
|
41
41
|
font-family: var(--font-family);
|
|
42
42
|
|
|
43
|
+
&:hover {
|
|
44
|
+
outline: none;
|
|
45
|
+
box-shadow: inset 0 0 0 1px var(--border-hover);
|
|
46
|
+
}
|
|
47
|
+
|
|
43
48
|
&:focus {
|
|
44
49
|
outline: none;
|
|
45
|
-
box-shadow: inset 0 0 0
|
|
50
|
+
box-shadow: inset 0 0 0 3px var(--border-hover);
|
|
46
51
|
}
|
|
47
52
|
|
|
48
53
|
&:disabled {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag } from 'astro/types'
|
|
3
3
|
import Children from '../_Children.astro'
|
|
4
|
-
import
|
|
4
|
+
import Component from '../_Component.astro'
|
|
5
5
|
|
|
6
|
-
type Props<As extends HTMLTag = 'a'> = ComponentProps<typeof
|
|
6
|
+
type Props<As extends HTMLTag = 'a'> = ComponentProps<typeof Component> &
|
|
7
7
|
ComponentProps<typeof Children>
|
|
8
8
|
|
|
9
9
|
const { as = 'a', href = '/', src, ...rest } = Astro.props
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
<
|
|
12
|
+
<Component
|
|
13
13
|
class:list={['logo']}
|
|
14
14
|
{href}
|
|
15
15
|
{as}
|
|
@@ -18,7 +18,7 @@ const { as = 'a', href = '/', src, ...rest } = Astro.props
|
|
|
18
18
|
<slot name="before" />
|
|
19
19
|
<Children {...rest} />
|
|
20
20
|
<slot />
|
|
21
|
-
</
|
|
21
|
+
</Component>
|
|
22
22
|
|
|
23
23
|
<style is:global lang="scss">
|
|
24
24
|
@import '../../css/utils.scss';
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps } from 'astro/types'
|
|
3
|
-
import Tag from '../_Tag.astro'
|
|
4
3
|
|
|
5
|
-
type Props = ComponentProps<typeof
|
|
4
|
+
type Props = ComponentProps<typeof Component>
|
|
6
5
|
|
|
7
6
|
const { as = 'input', type = 'radio', name, ...rest } = Astro.props
|
|
8
7
|
---
|
|
9
8
|
|
|
10
|
-
<
|
|
9
|
+
<Component
|
|
11
10
|
class:list={['radio']}
|
|
12
11
|
if={true}
|
|
13
12
|
{as}
|
|
@@ -25,7 +24,7 @@ const { as = 'input', type = 'radio', name, ...rest } = Astro.props
|
|
|
25
24
|
background: var(--background);
|
|
26
25
|
min-width: var(--element-2);
|
|
27
26
|
accent-color: var(--10);
|
|
28
|
-
font-size: var(--text);
|
|
27
|
+
font-size: var(--text-body);
|
|
29
28
|
|
|
30
29
|
&:hover {
|
|
31
30
|
border: var(--border-color-hover);
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { ComponentProps, HTMLTag, Polymorphic } from 'astro/types'
|
|
3
|
-
import
|
|
3
|
+
import Component from '../_Component.astro'
|
|
4
4
|
import Icon from './Icon.astro'
|
|
5
5
|
|
|
6
6
|
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> &
|
|
7
|
-
ComponentProps<typeof
|
|
7
|
+
ComponentProps<typeof Component> & {
|
|
8
8
|
value?: number | string
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const {
|
|
11
|
+
const { value = Astro.props.html, ...rest } = Astro.props
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
<
|
|
14
|
+
<Component
|
|
15
15
|
class:list={['rating']}
|
|
16
16
|
{...rest}
|
|
17
17
|
>
|
|
18
18
|
{value && [1, 2, 3, 4, 5].map(() => <Icon name="star-filled" />)}
|
|
19
|
-
</
|
|
19
|
+
</Component>
|
|
20
20
|
|
|
21
21
|
<style is:global lang="scss">
|
|
22
22
|
@import '../../css/utils.scss';
|