fulldev-ui 0.4.15 → 0.4.16
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/.github/ISSUE_TEMPLATE/bug_report.yml +7 -52
- package/.github/ISSUE_TEMPLATE/config.yml +3 -0
- package/.github/ISSUE_TEMPLATE/documentation.yml +12 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +7 -34
- package/.github/ISSUE_TEMPLATE/support.yml +12 -0
- package/.github/pull_request_template.md +1 -13
- package/CODE_OF_CONDUCT.md +6 -0
- package/CONTRIBUTING.md +20 -4
- package/README.md +1 -0
- package/package.json +2 -1
- package/public/showcase/anti-slip-profiles.webp +0 -0
- package/public/showcase/fulldev-ui.webp +0 -0
- package/public/showcase/lavis-detailing.webp +0 -0
- package/public/showcase/leren-trainingsacteren.webp +0 -0
- package/public/showcase/miele-witgoedcenter-amsterdam.webp +0 -0
- package/public/showcase/sloepverhuur-bolsward.webp +0 -0
- package/public/showcase/stark-vulcanising-products.webp +0 -0
- package/public/showcase/the-gym-haren.webp +0 -0
- package/public/showcase/van-dillen-antieke-bouwmaterialen.webp +0 -0
- package/src/blocks/Features.astro +1 -1
- package/src/blocks/Prices.astro +1 -1
- package/src/components/Badge.astro +1 -1
- package/src/components/Box.astro +3 -0
- package/src/components/Button.astro +7 -5
- package/src/components/Card.astro +23 -2
- package/src/components/Drawer.astro +1 -0
- package/src/components/Footer.astro +1 -1
- package/src/components/Grid.astro +1 -1
- package/src/components/Header.astro +52 -48
- package/src/components/Rating.astro +6 -2
- package/src/components/Root.astro +1 -1
- package/src/components/Section.astro +20 -2
- package/src/components/Stack.astro +36 -0
- package/src/components/docs/NavigationButtons.astro +59 -0
- package/src/components/experimental/Channel.astro +1 -4
- package/src/content/pages/_segment/footer.mdx +11 -11
- package/src/content/pages/base/badge.mdx +1 -1
- package/src/content/pages/base/button.mdx +9 -9
- package/src/content/pages/overview/showcase.mdx +62 -0
- package/src/content/pages/structure/stack.mdx +22 -0
- package/src/content/settings/base.yml +4 -0
- package/src/content/settings/components.yml +2 -0
- package/src/css/custom.css +16 -1
- package/src/layouts/Layout.astro +63 -62
- package/src/schemas/base.ts +10 -1
|
@@ -1,57 +1,12 @@
|
|
|
1
|
-
name:
|
|
2
|
-
description: Report
|
|
3
|
-
|
|
4
|
-
labels: ["bug"]
|
|
1
|
+
name: 'Bug report'
|
|
2
|
+
description: Report a bug or issue
|
|
3
|
+
labels: ['bug']
|
|
5
4
|
body:
|
|
6
|
-
- type: markdown
|
|
7
|
-
attributes:
|
|
8
|
-
value: |
|
|
9
|
-
### Thanks for taking the time to create a bug report. Please search existing issues before submitting, as the issue may have already been addressed.
|
|
10
|
-
|
|
11
|
-
- type: textarea
|
|
12
|
-
id: bug-description
|
|
13
|
-
attributes:
|
|
14
|
-
label: Describe the bug
|
|
15
|
-
description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, describe how in the description.
|
|
16
|
-
placeholder: Bug description
|
|
17
|
-
validations:
|
|
18
|
-
required: true
|
|
19
|
-
|
|
20
|
-
- type: input
|
|
21
|
-
id: components-affected
|
|
22
|
-
attributes:
|
|
23
|
-
label: Affected component/components/documentation
|
|
24
|
-
description: Is this feature request relevant to any of the already existing components?
|
|
25
|
-
placeholder: ex. Button, Input...
|
|
26
|
-
validations:
|
|
27
|
-
required: false
|
|
28
|
-
|
|
29
5
|
- type: textarea
|
|
30
|
-
id:
|
|
6
|
+
id: description
|
|
31
7
|
attributes:
|
|
32
|
-
label:
|
|
33
|
-
description:
|
|
34
|
-
placeholder:
|
|
35
|
-
1. Go to '...'
|
|
36
|
-
2. Click on '....'
|
|
37
|
-
3. See error
|
|
8
|
+
label: Describe the bug or issue
|
|
9
|
+
description: Be clear and concise. Add logs and/or screenshots if applicable.
|
|
10
|
+
placeholder: Add your bug or issue description here...
|
|
38
11
|
validations:
|
|
39
12
|
required: true
|
|
40
|
-
|
|
41
|
-
- type: textarea
|
|
42
|
-
id: logs
|
|
43
|
-
attributes:
|
|
44
|
-
label: Logs
|
|
45
|
-
description: "Please include browser console and server logs around the time this bug occurred. Optional if provided reproduction. Please try not to insert an image but copy paste the log text."
|
|
46
|
-
render: bash
|
|
47
|
-
|
|
48
|
-
- type: checkboxes
|
|
49
|
-
id: terms
|
|
50
|
-
attributes:
|
|
51
|
-
label: Before submitting
|
|
52
|
-
description: By submitting this issue, you agree to follow our [Contributing Guidelines](https://github.com/fulldotdev/ui/blob/main/CONTRIBUTING.md).
|
|
53
|
-
options:
|
|
54
|
-
- label: I've made research efforts and searched the documentation
|
|
55
|
-
required: true
|
|
56
|
-
- label: I've searched for existing issues
|
|
57
|
-
required: true
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
blank_issues_enabled: false
|
|
2
2
|
contact_links:
|
|
3
|
+
- name: Add your site to our showcase
|
|
4
|
+
url: https://github.com/fulldotdev/ui/blob/main/CONTRIBUTING.md#showcase
|
|
5
|
+
about: Add your project to the showcase page and get featured on our website.
|
|
3
6
|
- name: Get Help on Discord
|
|
4
7
|
url: https://discord.gg/tdmUyH2YE4
|
|
5
8
|
about: If you can't get something to work, open a forum post in our Discord server.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
name: 'Documentation'
|
|
2
|
+
description: Issues and suggestions regarding documentation
|
|
3
|
+
labels: ['docs']
|
|
4
|
+
body:
|
|
5
|
+
- type: textarea
|
|
6
|
+
id: description
|
|
7
|
+
attributes:
|
|
8
|
+
label: Describe the issue or suggestion
|
|
9
|
+
description: Be clear and concise. Add logs and/or screenshots if applicable.
|
|
10
|
+
placeholder: Add your issue or suggestion description here...
|
|
11
|
+
validations:
|
|
12
|
+
required: true
|
|
@@ -1,39 +1,12 @@
|
|
|
1
|
-
name: 'Feature
|
|
2
|
-
description:
|
|
3
|
-
|
|
4
|
-
labels: ['area: request']
|
|
1
|
+
name: 'Feature'
|
|
2
|
+
description: Propose and discuss improvements
|
|
3
|
+
labels: ['feature']
|
|
5
4
|
body:
|
|
6
|
-
- type: markdown
|
|
7
|
-
attributes:
|
|
8
|
-
value: |
|
|
9
|
-
### Thanks for taking the time to create a feature request! Please search existing issues before submitting, as the issue may have already been addressed.
|
|
10
|
-
|
|
11
5
|
- type: textarea
|
|
12
|
-
id:
|
|
6
|
+
id: description
|
|
13
7
|
attributes:
|
|
14
|
-
label:
|
|
15
|
-
description:
|
|
16
|
-
placeholder:
|
|
17
|
-
value: 'Describe your feature request...'
|
|
8
|
+
label: Describe the feature
|
|
9
|
+
description: Be clear and concise. Add logs and/or screenshots if applicable.
|
|
10
|
+
placeholder: Add your feature description here...
|
|
18
11
|
validations:
|
|
19
12
|
required: true
|
|
20
|
-
|
|
21
|
-
- type: input
|
|
22
|
-
id: components-affected
|
|
23
|
-
attributes:
|
|
24
|
-
label: Affected component/components/documentation
|
|
25
|
-
description: Is this feature request relevant to any of the already existing components?
|
|
26
|
-
placeholder: ex. Button, Input...
|
|
27
|
-
validations:
|
|
28
|
-
required: false
|
|
29
|
-
|
|
30
|
-
- type: checkboxes
|
|
31
|
-
id: terms
|
|
32
|
-
attributes:
|
|
33
|
-
label: Before submitting
|
|
34
|
-
description: By submitting this request, you agree to follow our [Contributing Guidelines](https://github.com/fulldotdev/ui/blob/main/CONTRIBUTING.md).
|
|
35
|
-
options:
|
|
36
|
-
- label: I've made research efforts and searched the documentation
|
|
37
|
-
required: true
|
|
38
|
-
- label: I've searched for existing issues and PRs
|
|
39
|
-
required: true
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
name: 'Support'
|
|
2
|
+
description: Ask a question or request help
|
|
3
|
+
labels: ['support']
|
|
4
|
+
body:
|
|
5
|
+
- type: textarea
|
|
6
|
+
id: description
|
|
7
|
+
attributes:
|
|
8
|
+
label: Describe your question or request
|
|
9
|
+
description: Be clear and concise. Add logs and/or screenshots if applicable.
|
|
10
|
+
placeholder: Add your question or request description here...
|
|
11
|
+
validations:
|
|
12
|
+
required: true
|
|
@@ -1,19 +1,7 @@
|
|
|
1
|
-
# Changes/Additions being made
|
|
1
|
+
# Changes/Additions being made and why
|
|
2
2
|
|
|
3
3
|
Here give examples of the changes you've made in this pull request. Include an itemized list if you can. It'll help the reviewer
|
|
4
4
|
|
|
5
|
-
## What's the context?
|
|
6
|
-
|
|
7
|
-
What's the context for the changes? Are there any
|
|
8
|
-
|
|
9
|
-
## Rationale behind the change or addition
|
|
10
|
-
|
|
11
|
-
Why did you choose to make these changes? Were there any trade-offs you had to consider?
|
|
12
|
-
|
|
13
|
-
## Test plan
|
|
14
|
-
|
|
15
|
-
How do you know the changes are safe to ship to production?
|
|
16
|
-
|
|
17
5
|
## Screenshots (optional)
|
|
18
6
|
|
|
19
7
|
If you made visual changes, what are the before an afters?
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Contributor Code of Conduct
|
|
2
|
+
We accept and encourage everyone's contributions. It doesn't matter how you look, how you feel, where you're from, or anything like that. In fact, we won't bring it up, or ask.
|
|
3
|
+
|
|
4
|
+
We are here to build great software, to learn, to grow, and to help each other. Maybe make some friends along the way.
|
|
5
|
+
|
|
6
|
+
If you have any questions, please reach out!
|
package/CONTRIBUTING.md
CHANGED
|
@@ -55,11 +55,14 @@ The main source directory containing all the core files of the project.
|
|
|
55
55
|
|
|
56
56
|
### Setup
|
|
57
57
|
|
|
58
|
-
1.
|
|
58
|
+
1. Fork the [repository](https://github.com/fulldotdev/ui) by clicking the fork button on the top right of the repository page.
|
|
59
|
+
|
|
60
|
+
2. Clone the Github repository in your designated folder:
|
|
59
61
|
|
|
60
62
|
```bash
|
|
61
|
-
git clone https://github.com/
|
|
63
|
+
git clone https://github.com/your-user-name/ui
|
|
62
64
|
```
|
|
65
|
+
Ensure the cloned repo is named "ui" or replace "ui" with your fork's name.
|
|
63
66
|
|
|
64
67
|
2. Enter the folder using `cd ui`.
|
|
65
68
|
|
|
@@ -69,7 +72,7 @@ git clone https://github.com/fulldotdev/ui.git
|
|
|
69
72
|
git checkout -b my-new-branch
|
|
70
73
|
```
|
|
71
74
|
|
|
72
|
-
|
|
75
|
+
4. Install the packages using pnpm:
|
|
73
76
|
|
|
74
77
|
```bash
|
|
75
78
|
pnpm install
|
|
@@ -77,7 +80,7 @@ pnpm install
|
|
|
77
80
|
|
|
78
81
|
Make sure to do this in root to make sure you're using the local version of the component package.
|
|
79
82
|
|
|
80
|
-
|
|
83
|
+
5. Run the development server:
|
|
81
84
|
|
|
82
85
|
```bash
|
|
83
86
|
pnpm dev
|
|
@@ -85,10 +88,23 @@ pnpm dev
|
|
|
85
88
|
|
|
86
89
|
## Commit & Pull Requests
|
|
87
90
|
|
|
91
|
+
### Pull Requests
|
|
92
|
+
|
|
93
|
+
The simplest way to open a pull request with your changes is by using github web, after following the [setup guide](#setup) and commit your changes you have a contribute button at the top of your repo, after clicking that you should be able to make a pull request and go from there.
|
|
94
|
+
|
|
88
95
|
### Commit Conduct
|
|
89
96
|
|
|
90
97
|
For a faster and easier review we advise you to use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary).
|
|
91
98
|
|
|
99
|
+
## Showcase
|
|
100
|
+
|
|
101
|
+
Have you used fulldev-ui to build a website? Add it to the showcase!
|
|
102
|
+
|
|
103
|
+
1. Fork this repository.
|
|
104
|
+
2. Add a screenshot of your site to the `public/showcase/` directory.
|
|
105
|
+
3. Add your site to the `showcase` array at the top of `src/content/pages/overview/showcase.mdx`.
|
|
106
|
+
4. Go to the forked repository on your Github and clicke the 'Contribute` button to make a Pull Request.
|
|
107
|
+
|
|
92
108
|
## Community / Contact
|
|
93
109
|
|
|
94
110
|
Looking to share your work using fulldev-ui, regular talks about it or support join our [discord server](https://discord.gg/tdmUyH2YE4).
|
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fulldev-ui",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.16",
|
|
4
4
|
"description": "A component library built for Astro",
|
|
5
5
|
"homepage": "https://ui.full.dev",
|
|
6
6
|
"bugs": "https://github.com/fulldotdev/ui/issues",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"build": "astro build",
|
|
23
23
|
"check": "astro check",
|
|
24
24
|
"preview": "astro preview",
|
|
25
|
+
"build:prod": "astro check && astro build",
|
|
25
26
|
"astro": "astro",
|
|
26
27
|
"test": "astro check && astro build && astro preview --host"
|
|
27
28
|
},
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/src/blocks/Prices.astro
CHANGED
package/src/components/Box.astro
CHANGED
|
@@ -8,6 +8,7 @@ import Masonry from './Masonry.astro'
|
|
|
8
8
|
import Row from './Row.astro'
|
|
9
9
|
import Split from './Split.astro'
|
|
10
10
|
import Spread from './Spread.astro'
|
|
11
|
+
import Stack from './Stack.astro'
|
|
11
12
|
import Wrap from './Wrap.astro'
|
|
12
13
|
|
|
13
14
|
type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> & {
|
|
@@ -25,6 +26,7 @@ type Props<As extends HTMLTag = 'div'> = Polymorphic<{ as: As }> & {
|
|
|
25
26
|
| 'split'
|
|
26
27
|
| 'spread'
|
|
27
28
|
| 'wrap'
|
|
29
|
+
| 'stack'
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
const structuresMap = {
|
|
@@ -37,6 +39,7 @@ const structuresMap = {
|
|
|
37
39
|
split: Split,
|
|
38
40
|
spread: Spread,
|
|
39
41
|
wrap: Wrap,
|
|
42
|
+
stack: Stack,
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
const {
|
|
@@ -35,9 +35,9 @@ const {
|
|
|
35
35
|
{radius}
|
|
36
36
|
{...rest}
|
|
37
37
|
>
|
|
38
|
+
<Avatar src={avatar} />
|
|
39
|
+
<Icon name={icon} />
|
|
38
40
|
<slot>
|
|
39
|
-
<Avatar src={avatar} />
|
|
40
|
-
<Icon name={icon} />
|
|
41
41
|
<Fragment set:html={html} />
|
|
42
42
|
<Fragment set:text={text} />
|
|
43
43
|
</slot>
|
|
@@ -57,7 +57,7 @@ const {
|
|
|
57
57
|
cursor: pointer;
|
|
58
58
|
outline: none;
|
|
59
59
|
box-shadow: none;
|
|
60
|
-
border:
|
|
60
|
+
border-width: 0px;
|
|
61
61
|
background: none;
|
|
62
62
|
padding: 0 var(--space-4);
|
|
63
63
|
height: calc(var(--text-2) + 2 * var(--space-4));
|
|
@@ -111,21 +111,23 @@ const {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
&.variant-secondary {
|
|
114
|
-
|
|
114
|
+
border-style: solid;
|
|
115
|
+
border-color: var(--color-7);
|
|
115
116
|
background-color: var(--color-3);
|
|
116
117
|
color: var(--color-11);
|
|
117
118
|
|
|
118
119
|
&:hover {
|
|
120
|
+
border-color: var(--color-8);
|
|
119
121
|
background-color: var(--color-4);
|
|
120
122
|
}
|
|
121
123
|
|
|
122
124
|
&:active {
|
|
125
|
+
border-color: var(--color-8);
|
|
123
126
|
background-color: var(--color-5);
|
|
124
127
|
}
|
|
125
128
|
}
|
|
126
129
|
|
|
127
130
|
&.variant-tertiary {
|
|
128
|
-
box-shadow: 0 var(--space-1) var(--space-3) 0 rgba(0, 0, 0, 0.05);
|
|
129
131
|
background-color: transparent;
|
|
130
132
|
color: var(--color-11);
|
|
131
133
|
|
|
@@ -12,12 +12,14 @@ import Spread from 'fulldev-ui/components/Spread.astro'
|
|
|
12
12
|
import Tagline from 'fulldev-ui/components/Tagline.astro'
|
|
13
13
|
import Text from 'fulldev-ui/components/Text.astro'
|
|
14
14
|
import Wrap from 'fulldev-ui/components/Wrap.astro'
|
|
15
|
+
import Badge from './Badge.astro'
|
|
15
16
|
|
|
16
17
|
type Props<As extends HTMLTag = 'a'> = Polymorphic<{ as: As }> & {
|
|
17
18
|
ratio?: 'landscape' | 'portrait' | 'square' | number
|
|
18
19
|
variant?: 'primary' | 'secondary' | 'tertiary'
|
|
19
20
|
position?: 'background' | 'cover' | 'inset'
|
|
20
21
|
align?: 'start' | 'center' | 'end'
|
|
22
|
+
justify?: 'start' | 'center' | 'end'
|
|
21
23
|
level?: 1 | 2 | 3 | 4 | 5 | 6
|
|
22
24
|
size?: 'sm' | 'md' | 'lg'
|
|
23
25
|
radius?: 'auto' | 'none'
|
|
@@ -26,8 +28,11 @@ type Props<As extends HTMLTag = 'a'> = Polymorphic<{ as: As }> & {
|
|
|
26
28
|
space?: 'auto' | 'none'
|
|
27
29
|
mask?: 'sm' | 'md' | 'lg'
|
|
28
30
|
image?: string
|
|
31
|
+
images?: string[]
|
|
29
32
|
button?: ComponentProps<typeof Button<'a'>>
|
|
30
33
|
buttons?: ComponentProps<typeof Button<'a'>>[]
|
|
34
|
+
badge?: string | ComponentProps<typeof Badge<'a'>>
|
|
35
|
+
badges?: (string | ComponentProps<typeof Badge<'a'>>)[]
|
|
31
36
|
rating?: number | ComponentProps<typeof Rating>
|
|
32
37
|
price?: number
|
|
33
38
|
icon?: string
|
|
@@ -48,7 +53,7 @@ const {
|
|
|
48
53
|
href,
|
|
49
54
|
as = href ? 'a' : 'div',
|
|
50
55
|
space = 'auto',
|
|
51
|
-
frame = '
|
|
56
|
+
frame = 'none',
|
|
52
57
|
radius = 'auto',
|
|
53
58
|
align = 'start',
|
|
54
59
|
variant,
|
|
@@ -63,8 +68,11 @@ const {
|
|
|
63
68
|
description,
|
|
64
69
|
list,
|
|
65
70
|
buttons,
|
|
71
|
+
badge,
|
|
72
|
+
badges,
|
|
66
73
|
ratio,
|
|
67
74
|
image,
|
|
75
|
+
images,
|
|
68
76
|
rating,
|
|
69
77
|
button,
|
|
70
78
|
price,
|
|
@@ -101,13 +109,26 @@ const buttonVariant = (i: number) => {
|
|
|
101
109
|
{position}
|
|
102
110
|
{mask}
|
|
103
111
|
ratio={position === 'background' ? undefined : ratio}
|
|
104
|
-
src={image}
|
|
112
|
+
src={image || images?.[0]}
|
|
105
113
|
/>
|
|
106
114
|
<Icon name={icon} />
|
|
107
115
|
<Rating
|
|
108
116
|
color="brand"
|
|
117
|
+
{avatars}
|
|
118
|
+
{avatar}
|
|
119
|
+
{label}
|
|
109
120
|
{...typeof rating === 'number' ? { value: rating } : rating}
|
|
110
121
|
/>
|
|
122
|
+
<Wrap>
|
|
123
|
+
{
|
|
124
|
+
[badge, ...(badges ?? [])].filter(Boolean)?.map((badge: any) => (
|
|
125
|
+
<Badge
|
|
126
|
+
color="base"
|
|
127
|
+
{...(typeof badge === 'string' ? { html: badge } : badge)}
|
|
128
|
+
/>
|
|
129
|
+
))
|
|
130
|
+
}
|
|
131
|
+
</Wrap>
|
|
111
132
|
<Tagline
|
|
112
133
|
color="base"
|
|
113
134
|
html={tagline}
|
|
@@ -8,7 +8,7 @@ import Text from 'fulldev-ui/components/Text.astro'
|
|
|
8
8
|
import Logo from 'fulldev-ui/components/experimental/Logo.astro'
|
|
9
9
|
|
|
10
10
|
type Props<As extends HTMLTag = 'footer'> = Polymorphic<{ as: As }> & {
|
|
11
|
-
structure?: 'spread' | 'row' | 'split' | 'column'
|
|
11
|
+
structure?: 'spread' | 'row' | 'split' | 'column' | 'stack'
|
|
12
12
|
variant?: 'base' | 'ghost' | 'subtle' | 'soft' | 'surface' | 'outline'
|
|
13
13
|
frame?: 'fill' | 'panel' | 'contain'
|
|
14
14
|
align?: 'start' | 'center' | 'end'
|
|
@@ -24,7 +24,7 @@ const { ...rest } = Astro.props
|
|
|
24
24
|
|
|
25
25
|
display: grid;
|
|
26
26
|
position: relative;
|
|
27
|
-
grid-template-columns: repeat(auto-
|
|
27
|
+
grid-template-columns: repeat(auto-fill, minmax(var(--column-width), 1fr));
|
|
28
28
|
gap: var(--space-4);
|
|
29
29
|
width: 100%;
|
|
30
30
|
}
|
|
@@ -32,8 +32,7 @@ const {
|
|
|
32
32
|
structure = 'spread',
|
|
33
33
|
space = 'auto',
|
|
34
34
|
size = 'sm',
|
|
35
|
-
frame = '
|
|
36
|
-
variant = 'base',
|
|
35
|
+
frame = 'none',
|
|
37
36
|
logo,
|
|
38
37
|
heading,
|
|
39
38
|
links,
|
|
@@ -52,7 +51,6 @@ const url = Astro.url.href
|
|
|
52
51
|
{as}
|
|
53
52
|
{frame}
|
|
54
53
|
{structure}
|
|
55
|
-
{variant}
|
|
56
54
|
{space}
|
|
57
55
|
{size}
|
|
58
56
|
{...rest}
|
|
@@ -86,52 +84,54 @@ const url = Astro.url.href
|
|
|
86
84
|
/>
|
|
87
85
|
))
|
|
88
86
|
}
|
|
89
|
-
<Search {...search} />
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
drawer
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
{item.links?.map((link: any) => (
|
|
104
|
-
<Link
|
|
105
|
-
{...link}
|
|
106
|
-
class="sidebar-link"
|
|
107
|
-
color={
|
|
108
|
-
url.replace(/\/$/, '').endsWith(link.href)
|
|
109
|
-
? 'brand'
|
|
110
|
-
: undefined
|
|
111
|
-
}
|
|
87
|
+
{search && <Search {...search} />}
|
|
88
|
+
{
|
|
89
|
+
drawer && (
|
|
90
|
+
<Drawer
|
|
91
|
+
icon="menu-2"
|
|
92
|
+
id="navigation-drawer"
|
|
93
|
+
>
|
|
94
|
+
{drawer &&
|
|
95
|
+
drawer.length > 0 &&
|
|
96
|
+
drawer.map((item: any) => (
|
|
97
|
+
<>
|
|
98
|
+
<Heading
|
|
99
|
+
level={6}
|
|
100
|
+
html={item.heading}
|
|
112
101
|
/>
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
102
|
+
{item.links?.map((link: any) => (
|
|
103
|
+
<Link
|
|
104
|
+
{...link}
|
|
105
|
+
class="sidebar-link"
|
|
106
|
+
color={
|
|
107
|
+
url.replace(/\/$/, '').endsWith(link.href)
|
|
108
|
+
? 'brand'
|
|
109
|
+
: undefined
|
|
110
|
+
}
|
|
111
|
+
/>
|
|
112
|
+
))}
|
|
113
|
+
{item.folder &&
|
|
114
|
+
(async () => {
|
|
115
|
+
const pages = await getCollection(
|
|
116
|
+
'pages',
|
|
117
|
+
(entry: any) =>
|
|
118
|
+
entry.slug.startsWith(item.folder) &&
|
|
119
|
+
!entry.slug.endsWith(item.folder)
|
|
120
|
+
)
|
|
121
|
+
return pages.map((page: any) => (
|
|
122
|
+
<Link
|
|
123
|
+
href={`/${page.slug}`}
|
|
124
|
+
class="sidebar-link"
|
|
125
|
+
color={slug === page.slug ? 'brand' : undefined}
|
|
126
|
+
html={page.data.title}
|
|
127
|
+
/>
|
|
128
|
+
))
|
|
129
|
+
})()}
|
|
130
|
+
</>
|
|
131
|
+
))}
|
|
132
|
+
</Drawer>
|
|
133
|
+
)
|
|
134
|
+
}
|
|
135
135
|
</Row>
|
|
136
136
|
</Root>
|
|
137
137
|
|
|
@@ -160,6 +160,10 @@ const url = Astro.url.href
|
|
|
160
160
|
max-width: calc(100% - (2 * var(--outer-x)));
|
|
161
161
|
height: var(--header-height);
|
|
162
162
|
|
|
163
|
+
&.frame-none {
|
|
164
|
+
padding: 0 var(--gutter);
|
|
165
|
+
}
|
|
166
|
+
|
|
163
167
|
&.frame-fill {
|
|
164
168
|
background-color: var(--color-2);
|
|
165
169
|
padding: 0 var(--gutter);
|
|
@@ -8,6 +8,7 @@ import Label from './Label.astro'
|
|
|
8
8
|
|
|
9
9
|
type Props = HTMLAttributes<'div'> & {
|
|
10
10
|
color?: 'base' | 'brand'
|
|
11
|
+
align?: 'start' | 'center' | 'end'
|
|
11
12
|
value?: number
|
|
12
13
|
size?: string
|
|
13
14
|
label?: string
|
|
@@ -15,7 +16,7 @@ type Props = HTMLAttributes<'div'> & {
|
|
|
15
16
|
avatar?: string
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
const { value, label, avatars, avatar, ...rest } = Astro.props
|
|
19
|
+
const { value, label, avatars, avatar, align, ...rest } = Astro.props
|
|
19
20
|
|
|
20
21
|
const getIcon = (count: number) => {
|
|
21
22
|
if (!value) return
|
|
@@ -24,6 +25,8 @@ const getIcon = (count: number) => {
|
|
|
24
25
|
if (difference >= -0.75) return 'star-half-filled'
|
|
25
26
|
return 'star'
|
|
26
27
|
}
|
|
28
|
+
|
|
29
|
+
const hasAvatars = avatars && avatars?.length > 0
|
|
27
30
|
---
|
|
28
31
|
|
|
29
32
|
<Root
|
|
@@ -38,7 +41,7 @@ const getIcon = (count: number) => {
|
|
|
38
41
|
/>
|
|
39
42
|
))
|
|
40
43
|
}
|
|
41
|
-
<Column>
|
|
44
|
+
<Column align={!hasAvatars ? align : undefined}>
|
|
42
45
|
<Root
|
|
43
46
|
class:list={'stars'}
|
|
44
47
|
{...rest}
|
|
@@ -64,6 +67,7 @@ const getIcon = (count: number) => {
|
|
|
64
67
|
@layer fulldev {
|
|
65
68
|
.rating {
|
|
66
69
|
display: flex;
|
|
70
|
+
align-items: center;
|
|
67
71
|
gap: var(--space-4);
|
|
68
72
|
|
|
69
73
|
.avatar + .avatar {
|