spoko-design-system 0.2.17 → 0.2.18
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/dependabot.yml +11 -11
- package/.github/todo.yml +3 -3
- package/.github/workflows/deploy.yml +39 -39
- package/.stackblitzrc +5 -5
- package/.vscode/extensions.json +5 -5
- package/.vscode/launch.json +11 -11
- package/.vscode/settings.json +5 -5
- package/LICENSE +21 -21
- package/README.md +113 -113
- package/astro-i18next.config.mjs +17 -17
- package/astro-i18next.config.ts +10 -10
- package/astro.config.mjs +141 -141
- package/dev-dist/sw.js +91 -91
- package/dev-dist/workbox-c676b6d3.js +3391 -3391
- package/index.ts +6 -6
- package/package.json +6 -6
- package/public/fonts/lg.svg +53 -53
- package/public/fonts/vwhead-bold-demo.html +549 -549
- package/public/fonts/vwhead-regular-demo.html +549 -549
- package/public/fonts/vwtext-bold-demo.html +549 -549
- package/public/fonts/vwtext-regular-demo.html +549 -549
- package/public/github.svg +3 -3
- package/public/grid_dot.svg +4 -4
- package/public/linkedin.svg +44 -44
- package/public/locales/en/translation.json +8 -8
- package/public/locales/pl/translation.json +8 -8
- package/public/make-scrollable-code-focusable.js +3 -3
- package/public/pagefind.yml +3 -3
- package/public/polo.blue.svg +29 -29
- package/public/spoko.space.svg +71 -71
- package/public/twitter.svg +46 -46
- package/renovate.json +6 -6
- package/sandbox.config.json +11 -11
- package/src/MyComponent.astro +8 -8
- package/src/components/Badge.vue +19 -19
- package/src/components/Badges.vue +21 -21
- package/src/components/Breadcrumbs.vue +110 -110
- package/src/components/Button.vue +55 -55
- package/src/components/ButtonCopy.vue +47 -47
- package/src/components/Card.astro +27 -27
- package/src/components/Carousel.astro +26 -26
- package/src/components/CategoryLink.astro +18 -18
- package/src/components/Copyright.astro +12 -12
- package/src/components/Date.astro +7 -7
- package/src/components/FeaturesList.vue +41 -41
- package/src/components/FuckRussia.vue +80 -80
- package/src/components/HandDrive.astro +29 -29
- package/src/components/Header/Header.astro +214 -214
- package/src/components/Header/SkipToContent.astro +1 -1
- package/src/components/Headline.vue +48 -48
- package/src/components/Image.astro +30 -30
- package/src/components/Jumbatron.vue +35 -35
- package/src/components/LeftSidebar.astro +53 -53
- package/src/components/MainColors.vue +23 -23
- package/src/components/MainInput.vue +15 -15
- package/src/components/Modal.astro +27 -27
- package/src/components/PageContent.astro +5 -5
- package/src/components/PartNumber.vue +27 -27
- package/src/components/PostHeader.astro +103 -103
- package/src/components/PrCode.vue +156 -156
- package/src/components/ProductCarousel.astro +38 -38
- package/src/components/ProductCodes.vue +39 -39
- package/src/components/ProductDetailName.vue +52 -52
- package/src/components/ProductDetailsList.vue +65 -65
- package/src/components/ProductNumber copy.astro +116 -116
- package/src/components/ProductNumber.astro +114 -114
- package/src/components/ProductTile.astro +48 -48
- package/src/components/Quote.vue +23 -23
- package/src/components/ReloadPrompt.astro +50 -50
- package/src/components/SlimBanner.vue +70 -70
- package/src/components/Table.vue +32 -32
- package/src/components/TableOfContents.astro +15 -15
- package/src/components/Translations.vue +23 -23
- package/src/components/flags/FlagPL.vue +3 -3
- package/src/components/flags/FlagUA.vue +2 -2
- package/src/components/layout/Container.astro +7 -7
- package/src/components/layout/Header.astro +80 -80
- package/src/config.ts +56 -56
- package/src/design.config.ts +79 -79
- package/src/env.d.ts +1 -1
- package/src/layouts/Layout.astro +60 -60
- package/src/layouts/MainLayout.astro +81 -81
- package/src/layouts/partials/FooterCommon.astro +4 -4
- package/src/layouts/partials/HeadCommon.astro +44 -44
- package/src/layouts/partials/HeadSEO.astro +41 -41
- package/src/pages/components/badges.mdx +55 -55
- package/src/pages/components/breadcrumbs.mdx +139 -139
- package/src/pages/components/buttons.mdx +236 -236
- package/src/pages/components/card.mdx +294 -294
- package/src/pages/components/carousel.mdx +62 -62
- package/src/pages/components/copyright.mdx +42 -42
- package/src/pages/components/details-list.mdx +115 -115
- package/src/pages/components/features-list.mdx +37 -37
- package/src/pages/components/flags.mdx +49 -49
- package/src/pages/components/fuck-russia.mdx +39 -39
- package/src/pages/components/hand-drive.mdx +38 -38
- package/src/pages/components/headline.mdx +152 -152
- package/src/pages/components/icons.astro +48 -48
- package/src/pages/components/image.mdx +513 -513
- package/src/pages/components/input.mdx +45 -45
- package/src/pages/components/jumbatron.mdx +73 -73
- package/src/pages/components/modal.mdx +64 -64
- package/src/pages/components/post-header.mdx +60 -60
- package/src/pages/components/pr-code.mdx +65 -65
- package/src/pages/components/product-number.mdx +66 -66
- package/src/pages/components/product-tile.mdx +51 -51
- package/src/pages/components/quote.mdx +33 -33
- package/src/pages/components/slimbanner.mdx +29 -29
- package/src/pages/components/table.mdx +108 -108
- package/src/pages/core/colors.mdx +10 -10
- package/src/pages/core/grid.mdx +89 -89
- package/src/pages/core/introduction.mdx +77 -77
- package/src/pages/core/shadows.astro +20 -20
- package/src/pages/core/typography.astro +47 -47
- package/src/pages/index.astro +125 -125
- package/src/pages/patterns/introduction.mdx +60 -60
- package/src/pwa.ts +12 -12
- package/src/styles/_variables.scss +66 -66
- package/src/styles/base/_base.scss +184 -184
- package/src/styles/base/_typography.scss +70 -70
- package/src/styles/base/grid.scss +98 -98
- package/src/styles/content.scss +64 -64
- package/src/styles/main.scss +7 -7
- package/tailwind.config.cjs +8 -8
- package/tsconfig.json +11 -11
- package/uno.config.ts +253 -253
|
@@ -1,214 +1,214 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { SITE } from "../../config";
|
|
3
|
-
import SkipToContent from "./SkipToContent.astro";
|
|
4
|
-
import { MenuIcon } from "astro-navbar";
|
|
5
|
-
import Search from "astro-pagefind/components/Search";
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<header
|
|
9
|
-
class="p-3 bg-blue-600 bg-opacity-10 backdrop-blur-md border-b text-slate-900"
|
|
10
|
-
>
|
|
11
|
-
<SkipToContent />
|
|
12
|
-
<nav
|
|
13
|
-
title="Top Navigation"
|
|
14
|
-
class="mx-auto flex justify-between items-center px-4"
|
|
15
|
-
>
|
|
16
|
-
<div class="flex flex-nowrap">
|
|
17
|
-
<MenuIcon class="w-4 h-4 text-gray-800 lg:hidden mr-4" />
|
|
18
|
-
<a class="text-2xl font-medium block font-textbold leading-none block my-auto text-blue-600" href="/"> SDS</a>
|
|
19
|
-
<Search
|
|
20
|
-
transition:persist
|
|
21
|
-
transition:name="search-field"
|
|
22
|
-
className="search-container"
|
|
23
|
-
id="search"
|
|
24
|
-
uiOptions={{
|
|
25
|
-
showImages: false,
|
|
26
|
-
showFilters: false,
|
|
27
|
-
resetStyles: true,
|
|
28
|
-
}}
|
|
29
|
-
/>
|
|
30
|
-
</div>
|
|
31
|
-
<div class="flex gap-2">
|
|
32
|
-
{
|
|
33
|
-
SITE.github && (
|
|
34
|
-
<a
|
|
35
|
-
title="Github"
|
|
36
|
-
class="opacity-80 hover:opacity-100 hover:bg-slate-200 p-2 rounded-full transition-colors"
|
|
37
|
-
href={"https://github.com/" + SITE.github}
|
|
38
|
-
>
|
|
39
|
-
<img class="h-7" src="/github.svg" alt="github logo" />
|
|
40
|
-
</a>
|
|
41
|
-
)
|
|
42
|
-
}
|
|
43
|
-
{
|
|
44
|
-
SITE.linkedin && (
|
|
45
|
-
<a
|
|
46
|
-
title="linkedin"
|
|
47
|
-
class="opacity-80 hover:opacity-100 hover:bg-blue-50 p-2 rounded-full transition-colors"
|
|
48
|
-
href={"https://linkedin.com/in/" + SITE.linkedin}
|
|
49
|
-
>
|
|
50
|
-
<img class="h-7" src="/linkedin.svg" alt="linkedin logo" />
|
|
51
|
-
</a>
|
|
52
|
-
)
|
|
53
|
-
}
|
|
54
|
-
</div>
|
|
55
|
-
</nav>
|
|
56
|
-
</header>
|
|
57
|
-
|
|
58
|
-
<style lang="scss" is:global>
|
|
59
|
-
#search {
|
|
60
|
-
@apply ml-6;
|
|
61
|
-
|
|
62
|
-
&.search-container {
|
|
63
|
-
box-sizing: border-box;
|
|
64
|
-
@apply h-10 border-0 border-gray-800 rounded-3xl hidden md:block;
|
|
65
|
-
}
|
|
66
|
-
.pagefind-ui {
|
|
67
|
-
@apply font-textlight text-base;
|
|
68
|
-
|
|
69
|
-
&__search-input {
|
|
70
|
-
height: 40px !important;
|
|
71
|
-
border: 0;
|
|
72
|
-
@apply rounded-none sm-rounded-3xl h-10 w-full;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
&__result-excerpt,
|
|
76
|
-
__button {
|
|
77
|
-
font-size: 14px !important;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
&__filter-name {
|
|
81
|
-
font-size: 12px !important;
|
|
82
|
-
}
|
|
83
|
-
&__drawer:not(.pagefind-ui__hidden) {
|
|
84
|
-
@apply p-4;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
&__result-link {
|
|
88
|
-
color: var(--pagefind-ui-primary);
|
|
89
|
-
// font-family: 'vw_headregular';
|
|
90
|
-
font-family: vw_headlight;
|
|
91
|
-
font-size: 1rem;
|
|
92
|
-
|
|
93
|
-
&:before {
|
|
94
|
-
top: 0;
|
|
95
|
-
bottom: 0;
|
|
96
|
-
left: 0;
|
|
97
|
-
right: 0;
|
|
98
|
-
content: "";
|
|
99
|
-
position: absolute;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
&__result-excerpt {
|
|
104
|
-
color: var(--pagefind-ui-text);
|
|
105
|
-
order: 3;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
&__drawer {
|
|
109
|
-
@apply bg-white md-position-fixed shadow-lg rounded-b-lg border-t border-t-transparent overflow-auto top-17 md:max-w-[calc(100vw-10%)] max-h-[calc(100vh-10%)];
|
|
110
|
-
gap: 30px;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
&__search-clear {
|
|
114
|
-
height: 38px;
|
|
115
|
-
top: 0;
|
|
116
|
-
@apply sm-rounded-3xl;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
&__search-input {
|
|
120
|
-
font-size: 1rem;
|
|
121
|
-
font-weight: 400;
|
|
122
|
-
padding: 0 2.5rem 2px;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
&__form {
|
|
126
|
-
&:before {
|
|
127
|
-
top: 14px;
|
|
128
|
-
left: 16px;
|
|
129
|
-
width: 14px;
|
|
130
|
-
height: 14px;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
&__result {
|
|
135
|
-
padding: 0.875rem 0;
|
|
136
|
-
gap: 1rem;
|
|
137
|
-
@apply position-relative;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
&__filter-block {
|
|
141
|
-
padding: 0.875rem 0;
|
|
142
|
-
border-width: 1px;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
&__filter-group {
|
|
146
|
-
gap: 0.5rem;
|
|
147
|
-
padding-top: 0.875rem;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
&__filter-value {
|
|
151
|
-
gap: 10px;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
&__filter-checkbox {
|
|
155
|
-
border-radius: 3px;
|
|
156
|
-
margin-top: 1px;
|
|
157
|
-
min-width: calc(16px * var(--pagefind-ui-scale));
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
&__result-image {
|
|
161
|
-
@apply drop-shadow-sm w-full h-full object-contain rounded-none;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
&__filter-panel {
|
|
165
|
-
// min-width: 220px;
|
|
166
|
-
@apply hidden;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
&__filter-label {
|
|
170
|
-
font-size: 0.9rem;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
&__button {
|
|
174
|
-
font-weight: 400;
|
|
175
|
-
height: 40px;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
&__result-tag {
|
|
179
|
-
background: inherit;
|
|
180
|
-
padding: 0;
|
|
181
|
-
color: #9ca3af;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
&__result-thumb {
|
|
185
|
-
max-width: 120px;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
&__result-tags {
|
|
189
|
-
margin-top: 0.4rem;
|
|
190
|
-
order: 2;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
&__filter-name {
|
|
194
|
-
&:after {
|
|
195
|
-
color: var(--pagefind-ui-primary);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
&__result-title {
|
|
200
|
-
font-size: inherit;
|
|
201
|
-
line-height: 1;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
&__filter-panel,
|
|
205
|
-
&__results-area {
|
|
206
|
-
margin-top: 0;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
&__message {
|
|
210
|
-
padding: 0.875rem 0;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
</style>
|
|
1
|
+
---
|
|
2
|
+
import { SITE } from "../../config";
|
|
3
|
+
import SkipToContent from "./SkipToContent.astro";
|
|
4
|
+
import { MenuIcon } from "astro-navbar";
|
|
5
|
+
import Search from "astro-pagefind/components/Search";
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<header
|
|
9
|
+
class="p-3 bg-blue-600 bg-opacity-10 backdrop-blur-md border-b text-slate-900"
|
|
10
|
+
>
|
|
11
|
+
<SkipToContent />
|
|
12
|
+
<nav
|
|
13
|
+
title="Top Navigation"
|
|
14
|
+
class="mx-auto flex justify-between items-center px-4"
|
|
15
|
+
>
|
|
16
|
+
<div class="flex flex-nowrap">
|
|
17
|
+
<MenuIcon class="w-4 h-4 text-gray-800 lg:hidden mr-4" />
|
|
18
|
+
<a class="text-2xl font-medium block font-textbold leading-none block my-auto text-blue-600" href="/"> SDS</a>
|
|
19
|
+
<Search
|
|
20
|
+
transition:persist
|
|
21
|
+
transition:name="search-field"
|
|
22
|
+
className="search-container"
|
|
23
|
+
id="search"
|
|
24
|
+
uiOptions={{
|
|
25
|
+
showImages: false,
|
|
26
|
+
showFilters: false,
|
|
27
|
+
resetStyles: true,
|
|
28
|
+
}}
|
|
29
|
+
/>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="flex gap-2">
|
|
32
|
+
{
|
|
33
|
+
SITE.github && (
|
|
34
|
+
<a
|
|
35
|
+
title="Github"
|
|
36
|
+
class="opacity-80 hover:opacity-100 hover:bg-slate-200 p-2 rounded-full transition-colors"
|
|
37
|
+
href={"https://github.com/" + SITE.github}
|
|
38
|
+
>
|
|
39
|
+
<img class="h-7" src="/github.svg" alt="github logo" />
|
|
40
|
+
</a>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
{
|
|
44
|
+
SITE.linkedin && (
|
|
45
|
+
<a
|
|
46
|
+
title="linkedin"
|
|
47
|
+
class="opacity-80 hover:opacity-100 hover:bg-blue-50 p-2 rounded-full transition-colors"
|
|
48
|
+
href={"https://linkedin.com/in/" + SITE.linkedin}
|
|
49
|
+
>
|
|
50
|
+
<img class="h-7" src="/linkedin.svg" alt="linkedin logo" />
|
|
51
|
+
</a>
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
</div>
|
|
55
|
+
</nav>
|
|
56
|
+
</header>
|
|
57
|
+
|
|
58
|
+
<style lang="scss" is:global>
|
|
59
|
+
#search {
|
|
60
|
+
@apply ml-6;
|
|
61
|
+
|
|
62
|
+
&.search-container {
|
|
63
|
+
box-sizing: border-box;
|
|
64
|
+
@apply h-10 border-0 border-gray-800 rounded-3xl hidden md:block;
|
|
65
|
+
}
|
|
66
|
+
.pagefind-ui {
|
|
67
|
+
@apply font-textlight text-base;
|
|
68
|
+
|
|
69
|
+
&__search-input {
|
|
70
|
+
height: 40px !important;
|
|
71
|
+
border: 0;
|
|
72
|
+
@apply rounded-none sm-rounded-3xl h-10 w-full;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&__result-excerpt,
|
|
76
|
+
__button {
|
|
77
|
+
font-size: 14px !important;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&__filter-name {
|
|
81
|
+
font-size: 12px !important;
|
|
82
|
+
}
|
|
83
|
+
&__drawer:not(.pagefind-ui__hidden) {
|
|
84
|
+
@apply p-4;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&__result-link {
|
|
88
|
+
color: var(--pagefind-ui-primary);
|
|
89
|
+
// font-family: 'vw_headregular';
|
|
90
|
+
font-family: vw_headlight;
|
|
91
|
+
font-size: 1rem;
|
|
92
|
+
|
|
93
|
+
&:before {
|
|
94
|
+
top: 0;
|
|
95
|
+
bottom: 0;
|
|
96
|
+
left: 0;
|
|
97
|
+
right: 0;
|
|
98
|
+
content: "";
|
|
99
|
+
position: absolute;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
&__result-excerpt {
|
|
104
|
+
color: var(--pagefind-ui-text);
|
|
105
|
+
order: 3;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
&__drawer {
|
|
109
|
+
@apply bg-white md-position-fixed shadow-lg rounded-b-lg border-t border-t-transparent overflow-auto top-17 md:max-w-[calc(100vw-10%)] max-h-[calc(100vh-10%)];
|
|
110
|
+
gap: 30px;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
&__search-clear {
|
|
114
|
+
height: 38px;
|
|
115
|
+
top: 0;
|
|
116
|
+
@apply sm-rounded-3xl;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
&__search-input {
|
|
120
|
+
font-size: 1rem;
|
|
121
|
+
font-weight: 400;
|
|
122
|
+
padding: 0 2.5rem 2px;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
&__form {
|
|
126
|
+
&:before {
|
|
127
|
+
top: 14px;
|
|
128
|
+
left: 16px;
|
|
129
|
+
width: 14px;
|
|
130
|
+
height: 14px;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
&__result {
|
|
135
|
+
padding: 0.875rem 0;
|
|
136
|
+
gap: 1rem;
|
|
137
|
+
@apply position-relative;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
&__filter-block {
|
|
141
|
+
padding: 0.875rem 0;
|
|
142
|
+
border-width: 1px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
&__filter-group {
|
|
146
|
+
gap: 0.5rem;
|
|
147
|
+
padding-top: 0.875rem;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
&__filter-value {
|
|
151
|
+
gap: 10px;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
&__filter-checkbox {
|
|
155
|
+
border-radius: 3px;
|
|
156
|
+
margin-top: 1px;
|
|
157
|
+
min-width: calc(16px * var(--pagefind-ui-scale));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
&__result-image {
|
|
161
|
+
@apply drop-shadow-sm w-full h-full object-contain rounded-none;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
&__filter-panel {
|
|
165
|
+
// min-width: 220px;
|
|
166
|
+
@apply hidden;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
&__filter-label {
|
|
170
|
+
font-size: 0.9rem;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
&__button {
|
|
174
|
+
font-weight: 400;
|
|
175
|
+
height: 40px;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
&__result-tag {
|
|
179
|
+
background: inherit;
|
|
180
|
+
padding: 0;
|
|
181
|
+
color: #9ca3af;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
&__result-thumb {
|
|
185
|
+
max-width: 120px;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
&__result-tags {
|
|
189
|
+
margin-top: 0.4rem;
|
|
190
|
+
order: 2;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
&__filter-name {
|
|
194
|
+
&:after {
|
|
195
|
+
color: var(--pagefind-ui-primary);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
&__result-title {
|
|
200
|
+
font-size: inherit;
|
|
201
|
+
line-height: 1;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
&__filter-panel,
|
|
205
|
+
&__results-area {
|
|
206
|
+
margin-top: 0;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
&__message {
|
|
210
|
+
padding: 0.875rem 0;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<a href="#article" class="sr-only focus:not-sr-only skiplink"><span>Skip to Content</span></a>
|
|
1
|
+
<a href="#article" class="sr-only focus:not-sr-only skiplink"><span>Skip to Content</span></a>
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import type { PropType } from 'vue'
|
|
3
|
-
|
|
4
|
-
const props = defineProps({
|
|
5
|
-
as: {
|
|
6
|
-
type: String as PropType<'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span'>,
|
|
7
|
-
default: 'span',
|
|
8
|
-
required: true,
|
|
9
|
-
},
|
|
10
|
-
textSize: {
|
|
11
|
-
type: String as PropType<'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | '8xl' | '9xl'>,
|
|
12
|
-
required: false,
|
|
13
|
-
default: null
|
|
14
|
-
},
|
|
15
|
-
underline: {
|
|
16
|
-
type: Boolean,
|
|
17
|
-
required: false,
|
|
18
|
-
default: false
|
|
19
|
-
}
|
|
20
|
-
})
|
|
21
|
-
</script>
|
|
22
|
-
|
|
23
|
-
<template>
|
|
24
|
-
<component :is="props.as" class="mb-2.5 flex sm:block md:flex items-center leading-none"
|
|
25
|
-
:class="`headline ${props.textSize ? `text-${props.textSize}` : 'text-xl'} ${props.underline ? 'headline--underline' : ''}`">
|
|
26
|
-
<slot />
|
|
27
|
-
</component>
|
|
28
|
-
</template>
|
|
29
|
-
|
|
30
|
-
<style lang="scss">
|
|
31
|
-
.headline--underline {
|
|
32
|
-
@apply relative pb-4;
|
|
33
|
-
|
|
34
|
-
&:after {
|
|
35
|
-
@apply content-empty absolute left-0 bottom-0;
|
|
36
|
-
height: 3px;
|
|
37
|
-
width: 55px;
|
|
38
|
-
background-color: var(--clr-primary-400);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
&:before {
|
|
42
|
-
@apply content-empty absolute left-0 bottom-px h-px;
|
|
43
|
-
width: 95%;
|
|
44
|
-
max-width: 255px;
|
|
45
|
-
background-color: #64748b
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
</style>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { PropType } from 'vue'
|
|
3
|
+
|
|
4
|
+
const props = defineProps({
|
|
5
|
+
as: {
|
|
6
|
+
type: String as PropType<'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span'>,
|
|
7
|
+
default: 'span',
|
|
8
|
+
required: true,
|
|
9
|
+
},
|
|
10
|
+
textSize: {
|
|
11
|
+
type: String as PropType<'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | '8xl' | '9xl'>,
|
|
12
|
+
required: false,
|
|
13
|
+
default: null
|
|
14
|
+
},
|
|
15
|
+
underline: {
|
|
16
|
+
type: Boolean,
|
|
17
|
+
required: false,
|
|
18
|
+
default: false
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<template>
|
|
24
|
+
<component :is="props.as" class="mb-2.5 flex sm:block md:flex items-center leading-none"
|
|
25
|
+
:class="`headline ${props.textSize ? `text-${props.textSize}` : 'text-xl'} ${props.underline ? 'headline--underline' : ''}`">
|
|
26
|
+
<slot />
|
|
27
|
+
</component>
|
|
28
|
+
</template>
|
|
29
|
+
|
|
30
|
+
<style lang="scss">
|
|
31
|
+
.headline--underline {
|
|
32
|
+
@apply relative pb-4;
|
|
33
|
+
|
|
34
|
+
&:after {
|
|
35
|
+
@apply content-empty absolute left-0 bottom-0;
|
|
36
|
+
height: 3px;
|
|
37
|
+
width: 55px;
|
|
38
|
+
background-color: var(--clr-primary-400);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&:before {
|
|
42
|
+
@apply content-empty absolute left-0 bottom-px h-px;
|
|
43
|
+
width: 95%;
|
|
44
|
+
max-width: 255px;
|
|
45
|
+
background-color: #64748b
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
</style>
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { Image } from "astro:assets";
|
|
3
|
-
|
|
4
|
-
const { imageObject } = Astro.props;
|
|
5
|
-
let inputProps = {};
|
|
6
|
-
|
|
7
|
-
if (imageObject.index && imageObject.index === 1) {
|
|
8
|
-
inputProps["data-pagefind-meta"] = "image[src], image_alt[alt]";
|
|
9
|
-
inputProps["loading"] = "eager";
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
if (imageObject.srcset && imageObject.srcset.length) {
|
|
13
|
-
inputProps["widths"] = imageObject.srcset;
|
|
14
|
-
}
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
<Image
|
|
18
|
-
src={imageObject.src}
|
|
19
|
-
alt={imageObject.alt}
|
|
20
|
-
height={imageObject.height}
|
|
21
|
-
width={imageObject.width}
|
|
22
|
-
itemprop="image"
|
|
23
|
-
format="avif"
|
|
24
|
-
data-pagefind-index-attrs="alt"
|
|
25
|
-
onerror="this.style.display='none';"
|
|
26
|
-
class={`h-full w-full select-none pointer-none ${
|
|
27
|
-
imageObject.class || "object-cover"
|
|
28
|
-
}`}
|
|
29
|
-
{...inputProps}
|
|
30
|
-
/>
|
|
1
|
+
---
|
|
2
|
+
import { Image } from "astro:assets";
|
|
3
|
+
|
|
4
|
+
const { imageObject } = Astro.props;
|
|
5
|
+
let inputProps = {};
|
|
6
|
+
|
|
7
|
+
if (imageObject.index && imageObject.index === 1) {
|
|
8
|
+
inputProps["data-pagefind-meta"] = "image[src], image_alt[alt]";
|
|
9
|
+
inputProps["loading"] = "eager";
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
if (imageObject.srcset && imageObject.srcset.length) {
|
|
13
|
+
inputProps["widths"] = imageObject.srcset;
|
|
14
|
+
}
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
<Image
|
|
18
|
+
src={imageObject.src}
|
|
19
|
+
alt={imageObject.alt}
|
|
20
|
+
height={imageObject.height}
|
|
21
|
+
width={imageObject.width}
|
|
22
|
+
itemprop="image"
|
|
23
|
+
format="avif"
|
|
24
|
+
data-pagefind-index-attrs="alt"
|
|
25
|
+
onerror="this.style.display='none';"
|
|
26
|
+
class={`h-full w-full select-none pointer-none ${
|
|
27
|
+
imageObject.class || "object-cover"
|
|
28
|
+
}`}
|
|
29
|
+
{...inputProps}
|
|
30
|
+
/>
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { useSlots } from 'vue';
|
|
3
|
-
|
|
4
|
-
const slots = useSlots()
|
|
5
|
-
const hasSlot = (name) => {
|
|
6
|
-
return !!slots[name];
|
|
7
|
-
}
|
|
8
|
-
const props = defineProps({
|
|
9
|
-
small: {
|
|
10
|
-
type: Boolean,
|
|
11
|
-
default: null,
|
|
12
|
-
required: false,
|
|
13
|
-
},
|
|
14
|
-
})
|
|
15
|
-
</script>
|
|
16
|
-
|
|
17
|
-
<template>
|
|
18
|
-
<div class="relative flex bg-vw " :class="props.small ? 'md:min-h-xs' : 'md:min-h-md'">
|
|
19
|
-
<header class="max-w-7xl mx-auto my-auto py-8 lg:w-full px-6 lg:px-8 text-center" :class="props.small ? 'sm:py-12 md:py-14 lg:py-16 xl:py-20' : 'sm:py-16 md:py-20 lg:py-28 xl:py-32'">
|
|
20
|
-
<h1 class="text-3xl tracking-tight font-headlight text-white sm:(text-4xl pt-0) md:text-5xl lg:text-6xl ">
|
|
21
|
-
<slot name="intro" />
|
|
22
|
-
</h1>
|
|
23
|
-
<slot name="subtitle" />
|
|
24
|
-
<div class="mt-5 sm:(mt-8 flex justify-center)" v-if="hasSlot('cta')">
|
|
25
|
-
<slot name="cta" />
|
|
26
|
-
</div>
|
|
27
|
-
</header>
|
|
28
|
-
</div>
|
|
29
|
-
</template>
|
|
30
|
-
<style lang="scss">
|
|
31
|
-
.bg-vw {
|
|
32
|
-
background: radial-gradient(circle at 50% 85%,
|
|
33
|
-
#00437A 0%,
|
|
34
|
-
#001E50 100%)
|
|
35
|
-
}
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { useSlots } from 'vue';
|
|
3
|
+
|
|
4
|
+
const slots = useSlots()
|
|
5
|
+
const hasSlot = (name) => {
|
|
6
|
+
return !!slots[name];
|
|
7
|
+
}
|
|
8
|
+
const props = defineProps({
|
|
9
|
+
small: {
|
|
10
|
+
type: Boolean,
|
|
11
|
+
default: null,
|
|
12
|
+
required: false,
|
|
13
|
+
},
|
|
14
|
+
})
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<template>
|
|
18
|
+
<div class="relative flex bg-vw " :class="props.small ? 'md:min-h-xs' : 'md:min-h-md'">
|
|
19
|
+
<header class="max-w-7xl mx-auto my-auto py-8 lg:w-full px-6 lg:px-8 text-center" :class="props.small ? 'sm:py-12 md:py-14 lg:py-16 xl:py-20' : 'sm:py-16 md:py-20 lg:py-28 xl:py-32'">
|
|
20
|
+
<h1 class="text-3xl tracking-tight font-headlight text-white sm:(text-4xl pt-0) md:text-5xl lg:text-6xl ">
|
|
21
|
+
<slot name="intro" />
|
|
22
|
+
</h1>
|
|
23
|
+
<slot name="subtitle" />
|
|
24
|
+
<div class="mt-5 sm:(mt-8 flex justify-center)" v-if="hasSlot('cta')">
|
|
25
|
+
<slot name="cta" />
|
|
26
|
+
</div>
|
|
27
|
+
</header>
|
|
28
|
+
</div>
|
|
29
|
+
</template>
|
|
30
|
+
<style lang="scss">
|
|
31
|
+
.bg-vw {
|
|
32
|
+
background: radial-gradient(circle at 50% 85%,
|
|
33
|
+
#00437A 0%,
|
|
34
|
+
#001E50 100%)
|
|
35
|
+
}
|
|
36
36
|
</style>
|