@iqual/nuxt-icms 1.3.1 → 1.4.0
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/assets/symbols/chevron-right.svg +1 -1
- package/components/Blokkli/HeroImage/index.vue +1 -1
- package/components/Blokkli/Teasers/icon.svg +3 -3
- package/components/DesignSystem/Atoms/Button.vue +86 -36
- package/components/DesignSystem/Atoms/Caption.vue +10 -10
- package/components/DesignSystem/Atoms/Container.vue +10 -6
- package/components/DesignSystem/Atoms/GridRow.vue +4 -3
- package/components/DesignSystem/Atoms/LinkListItem.vue +31 -8
- package/components/DesignSystem/Molecules/ButtonGroup.vue +18 -3
- package/components/DesignSystem/Molecules/Card.vue +86 -31
- package/components/DesignSystem/Molecules/IconText.vue +37 -16
- package/components/DesignSystem/Molecules/MediaLightbox.vue +213 -58
- package/components/DesignSystem/Molecules/MediaSlider.vue +88 -25
- package/components/DesignSystem/Molecules/Partnership.vue +40 -9
- package/components/DesignSystem/Molecules/Table.vue +90 -25
- package/components/DesignSystem/Molecules/TitleComposition.vue +15 -12
- package/components/DesignSystem/Organisms/ContentBlock.vue +61 -15
- package/components/DesignSystem/Organisms/FacetedListing.vue +170 -0
- package/components/DesignSystem/Organisms/FlipTeaser.vue +119 -47
- package/components/DesignSystem/Organisms/HeaderHero.vue +167 -0
- package/components/DesignSystem/Organisms/HeaderTextImage.vue +71 -0
- package/components/DesignSystem/Organisms/LogoElement.vue +33 -10
- package/components/DesignSystem/Organisms/Map.vue +11 -6
- package/components/DesignSystem/Organisms/SearchResults.vue +41 -0
- package/components/DesignSystem/Organisms/TeamElement.vue +84 -20
- package/components/DesignSystem/Organisms/TeaserCard.vue +87 -34
- package/components/DesignSystem/Organisms/Testimonial.vue +82 -12
- package/components/DesignSystem/Organisms/TimelineElement.vue +42 -12
- package/components/DesignSystem/Organisms/TwoColumnTextElement.vue +44 -9
- package/components/DesignSystem/Pages/Search.vue +39 -0
- package/components/Drupal/Breadcrumb/index.vue +16 -5
- package/components/Drupal/Messages/index.vue +16 -5
- package/components/Drupal/Webform/fragment.graphql +8 -5
- package/components/Drupal/Webform/index.vue +20 -9
- package/components/Drupal/Webform/query.graphql +18 -16
- package/components/Form/CheckboxInput.vue +6 -6
- package/components/Form/CheckboxInputs.vue +5 -5
- package/components/Form/FileUploadInput.vue +6 -6
- package/components/Form/RadioButtonsInput.vue +5 -5
- package/components/Form/SelectInput.vue +7 -7
- package/components/Form/SubmitButton.vue +1 -1
- package/components/Form/TextAreaInput.vue +2 -2
- package/components/Form/TextEmailInput.vue +2 -2
- package/components/Form/TextInput.vue +2 -2
- package/components/Form/TextPhoneInput.vue +2 -2
- package/components/Form/composables/useFormElement.ts +5 -5
- package/components/Form/utils/types.ts +8 -7
- package/components/Media/Icon/index.vue +10 -6
- package/components/Media/Image/index.vue +26 -20
- package/components/Media/RemoteVideo/index.vue +34 -21
- package/components/Media/Video/index.vue +6 -5
- package/components/Node/Icms/Page/Teaser/index.vue +6 -4
- package/components/Node/Icms/Page/index.vue +2 -2
- package/components/Paragraph/Button/Element/index.vue +9 -2
- package/components/Paragraph/CallToAction/index.vue +43 -10
- package/components/Paragraph/Card/Element/index.vue +2 -1
- package/components/Paragraph/Card/Layout/index.vue +29 -10
- package/components/Paragraph/Contact/index.vue +41 -12
- package/components/Paragraph/Downloads/index.vue +82 -33
- package/components/Paragraph/FAQ/Element/index.vue +41 -12
- package/components/Paragraph/FAQ/Layout/index.vue +47 -13
- package/components/Paragraph/FlipTeasers/index.vue +26 -6
- package/components/Paragraph/Gallery/index.vue +42 -10
- package/components/Paragraph/HeroImage/index.vue +62 -16
- package/components/Paragraph/IconText/Element/index.vue +7 -1
- package/components/Paragraph/IconText/Layout/index.vue +39 -12
- package/components/Paragraph/Introduction/index.vue +50 -15
- package/components/Paragraph/Logo/Element/fragment.graphql +1 -0
- package/components/Paragraph/Logo/Element/index.vue +7 -2
- package/components/Paragraph/Media/index.vue +32 -31
- package/components/Paragraph/Partnerships/Element/fragment.graphql +1 -0
- package/components/Paragraph/Partnerships/Element/index.vue +7 -0
- package/components/Paragraph/Partnerships/Layout/index.vue +100 -27
- package/components/Paragraph/SingleTestimonial/index.vue +58 -15
- package/components/Paragraph/Table/index.vue +32 -9
- package/components/Paragraph/Tabs/Element/index.vue +44 -10
- package/components/Paragraph/Tabs/Layout/index.vue +123 -37
- package/components/Paragraph/Team/Element/index.vue +18 -1
- package/components/Paragraph/Team/Layout/index.vue +30 -7
- package/components/Paragraph/Teasers/index.vue +33 -7
- package/components/Paragraph/Testimonial/Element/index.vue +30 -5
- package/components/Paragraph/Testimonial/Layout/index.vue +78 -24
- package/components/Paragraph/Text/index.vue +32 -10
- package/components/Paragraph/TextMedia/index.vue +44 -13
- package/components/Paragraph/Timeline/Element/index.vue +23 -7
- package/components/Paragraph/Timeline/Layout/index.vue +232 -67
- package/components/Paragraph/TwoColumnText/Element/index.vue +20 -3
- package/components/Paragraph/TwoColumnText/Layout/index.vue +8 -1
- package/components/Paragraph/iFrame/index.vue +31 -11
- package/components/Search/Facets/FacetDropdownUI.vue +351 -77
- package/components/Search/Facets/FacetedSearchUI.vue +257 -101
- package/components/Search/Facets/fragment.graphql +5 -1
- package/components/Search/Input/index.vue +78 -20
- package/components/Section/Footer/index.vue +170 -30
- package/components/Section/Header/Buttons.vue +34 -0
- package/components/Section/Header/DesktopMainMenu.vue +160 -0
- package/components/Section/Header/DesktopMainMenuDropdown.vue +170 -0
- package/components/Section/Header/LanguageDropdown.vue +95 -64
- package/components/Section/Header/LanguageLinks.vue +39 -0
- package/components/Section/Header/Logo.vue +23 -0
- package/components/Section/Header/MainButtons.vue +31 -0
- package/components/Section/Header/MenuIcon.vue +60 -49
- package/components/Section/Header/MetaButtons.vue +31 -0
- package/components/Section/Header/MetaMenu.vue +55 -53
- package/components/Section/Header/MobileMainMenu.vue +23 -0
- package/components/Section/Header/MobileMainMenuItem.vue +191 -0
- package/components/Section/Header/index.vue +182 -186
- package/composables/useMenu.ts +2 -2
- package/composables/useMobileMenuOverlayBus.ts +44 -0
- package/composables/useNavigationOffset.ts +2 -2
- package/composables/useTheme.ts +107 -0
- package/formkit.theme.ts +541 -586
- package/layouts/default.vue +7 -35
- package/layouts/error.vue +7 -32
- package/nuxt.config.ts +13 -0
- package/package.json +1 -1
- package/plugins/initData.ts +8 -5
- package/queries/query.initData.graphql +4 -2
- package/tailwind.config.ts +11 -11
- package/types/global.ts +1 -0
- package/components/Section/Header/GlobalMenu.vue +0 -335
- package/components/Section/Header/LanguageSwitcher.vue +0 -37
|
@@ -1,33 +1,63 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
<div
|
|
3
|
+
:class="themedClass('containerClass', 'facets-ui space-y-5')"
|
|
4
|
+
v-if="groupEntries.length"
|
|
5
|
+
>
|
|
6
|
+
<!-- Filters row -->
|
|
7
|
+
<DesignSystemAtomsGridRow
|
|
8
|
+
:class="themedClass('filtersRowClass', 'w-full p-0')"
|
|
9
|
+
>
|
|
10
|
+
<!-- Text search input column -->
|
|
6
11
|
<div
|
|
7
12
|
v-if="enableTextSearch"
|
|
8
|
-
class="
|
|
13
|
+
:class="
|
|
14
|
+
themedClass(
|
|
15
|
+
'textSearchInputColumnClass',
|
|
16
|
+
'col-span-12 md:col-span-6 lg:col-span-3',
|
|
17
|
+
)
|
|
18
|
+
"
|
|
9
19
|
>
|
|
20
|
+
<!-- Text search input -->
|
|
10
21
|
<SearchInput
|
|
11
|
-
inputClass="
|
|
22
|
+
:inputClass="
|
|
23
|
+
themedClass(
|
|
24
|
+
'textSearchInputClass',
|
|
25
|
+
'w-full pr-6 pl-12 py-3 border transition-all bg-white text-black border-0 selection:bg-primary selection:text-white border-1 border-gray-200 placeholder-gray-300',
|
|
26
|
+
)
|
|
27
|
+
"
|
|
28
|
+
:colorScheme="colorScheme"
|
|
12
29
|
v-model="internalSearchTerm"
|
|
13
30
|
/>
|
|
14
31
|
</div>
|
|
15
32
|
|
|
33
|
+
<!-- Filters column -->
|
|
16
34
|
<div
|
|
17
35
|
v-for="[field, opts] in groupEntries"
|
|
18
36
|
:key="field.field"
|
|
19
|
-
class="
|
|
37
|
+
:class="
|
|
38
|
+
themedClass(
|
|
39
|
+
'filtersColumnClass',
|
|
40
|
+
'col-span-12 md:col-span-6 lg:col-span-3',
|
|
41
|
+
)
|
|
42
|
+
"
|
|
20
43
|
>
|
|
21
44
|
<Popover
|
|
22
45
|
@update:open="(open: boolean) => (openPopovers[field.field] = open)"
|
|
46
|
+
:class="popover({ colorScheme })"
|
|
23
47
|
>
|
|
24
|
-
<PopoverTrigger :class="
|
|
25
|
-
<span
|
|
48
|
+
<PopoverTrigger :class="popoverTrigger({ colorScheme })">
|
|
49
|
+
<span
|
|
50
|
+
:class="
|
|
51
|
+
themedClass('popoverTriggerLabelClass', 'text-h8 truncate')
|
|
52
|
+
"
|
|
53
|
+
>
|
|
54
|
+
{{ fieldTriggerLabel(field) }}
|
|
55
|
+
</span>
|
|
26
56
|
<SpriteSymbol
|
|
27
57
|
name="chevron-down"
|
|
28
58
|
aria-hidden="true"
|
|
29
59
|
:class="[
|
|
30
|
-
|
|
60
|
+
popoverTriggerIcon({ colorScheme }),
|
|
31
61
|
openPopovers[field.field] ? 'rotate-180' : 'rotate-0',
|
|
32
62
|
]"
|
|
33
63
|
/>
|
|
@@ -36,81 +66,123 @@
|
|
|
36
66
|
:class="popoverContent({ colorScheme })"
|
|
37
67
|
align="start"
|
|
38
68
|
>
|
|
39
|
-
|
|
69
|
+
<!-- Filter options container -->
|
|
70
|
+
<div
|
|
71
|
+
:class="
|
|
72
|
+
themedClass(
|
|
73
|
+
'filterOptionsContainerClass',
|
|
74
|
+
'overflow-y-auto pt-1',
|
|
75
|
+
)
|
|
76
|
+
"
|
|
77
|
+
>
|
|
78
|
+
<!-- Filter options -->
|
|
40
79
|
<template v-for="opt in opts" :key="opt.value">
|
|
41
80
|
<button
|
|
42
81
|
type="button"
|
|
43
|
-
class="flex w-full items-center gap-4 px-4 py-3 text-left focus:outline-none"
|
|
44
82
|
@click="toggle(field.field, opt.value)"
|
|
83
|
+
:class="filterOptionButton({ colorScheme })"
|
|
45
84
|
>
|
|
46
85
|
<Checkbox
|
|
47
86
|
:checked="selections[field.field]?.includes(opt.value)"
|
|
48
87
|
@update:checked="toggle(field.field, opt.value)"
|
|
49
88
|
:class="checkbox({ colorScheme })"
|
|
89
|
+
tabindex="-1"
|
|
50
90
|
/>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
91
|
+
|
|
92
|
+
<span :class="filterOptionLabel({ colorScheme })">
|
|
93
|
+
{{ opt.label }}
|
|
94
|
+
</span>
|
|
95
|
+
|
|
96
|
+
<span :class="filterOptionCount({ colorScheme })">
|
|
97
|
+
{{ opt.count }}
|
|
98
|
+
</span>
|
|
57
99
|
</button>
|
|
58
100
|
</template>
|
|
59
101
|
</div>
|
|
60
|
-
|
|
61
|
-
|
|
102
|
+
|
|
103
|
+
<!-- Reset filter button -->
|
|
104
|
+
<div
|
|
105
|
+
:class="
|
|
106
|
+
themedClass(
|
|
107
|
+
'resetFilterContainerClass',
|
|
108
|
+
'flex items-center gap-2 px-4 pb-4 pt-3',
|
|
109
|
+
)
|
|
110
|
+
"
|
|
111
|
+
>
|
|
112
|
+
<button
|
|
62
113
|
:disabled="
|
|
63
114
|
!(selections[field.field] && selections[field.field].length)
|
|
64
115
|
"
|
|
65
|
-
:label="$texts('listing.clear_filter', 'Clear')"
|
|
66
116
|
@click="clearField(field.field)"
|
|
67
|
-
:
|
|
68
|
-
|
|
69
|
-
|
|
117
|
+
:class="resetFilterButton({ colorScheme })"
|
|
118
|
+
>
|
|
119
|
+
<span>{{ $texts('listing.clear_filter', 'Clear') }}</span>
|
|
120
|
+
</button>
|
|
70
121
|
</div>
|
|
71
122
|
</PopoverContent>
|
|
72
123
|
</Popover>
|
|
73
124
|
</div>
|
|
74
125
|
|
|
75
|
-
|
|
76
|
-
|
|
126
|
+
<!-- Reset filters column -->
|
|
127
|
+
<div
|
|
128
|
+
:class="
|
|
129
|
+
themedClass(
|
|
130
|
+
'resetFiltersColumnClass',
|
|
131
|
+
'col-span-12 flex items-center md:col-span-6 lg:col-span-3',
|
|
132
|
+
)
|
|
133
|
+
"
|
|
134
|
+
>
|
|
135
|
+
<!-- Reset filters button -->
|
|
136
|
+
<button
|
|
77
137
|
v-if="selections && Object.keys(selections || {}).length"
|
|
78
|
-
:label="$texts('listing.clear_filters', 'Clear all filters')"
|
|
79
138
|
@click="clearAll"
|
|
80
|
-
:
|
|
81
|
-
|
|
82
|
-
|
|
139
|
+
:class="resetFiltersButton({ colorScheme })"
|
|
140
|
+
>
|
|
141
|
+
<span>
|
|
142
|
+
{{ $texts('listing.clear_filters', 'Clear all filters') }}
|
|
143
|
+
</span>
|
|
144
|
+
</button>
|
|
83
145
|
</div>
|
|
84
146
|
</DesignSystemAtomsGridRow>
|
|
85
147
|
|
|
86
|
-
<!-- Results Counter -->
|
|
87
|
-
<div v-if="totalCount !== undefined" class="
|
|
88
|
-
<
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
(
|
|
102
|
-
|
|
148
|
+
<!-- Results Counter row -->
|
|
149
|
+
<div v-if="totalCount !== undefined" :class="resultsCount({ colorScheme })">
|
|
150
|
+
<span v-if="loading" :class="themedClass('resultsCountLoadingClass')">
|
|
151
|
+
{{ $texts('listing.loading', 'Loading...') }}
|
|
152
|
+
</span>
|
|
153
|
+
<span v-else :class="themedClass('resultsTotalCountClass')">
|
|
154
|
+
{{ totalCount }}
|
|
155
|
+
{{
|
|
156
|
+
totalCount === 1
|
|
157
|
+
? $texts('listing.result', 'result')
|
|
158
|
+
: $texts('listing.results', 'results')
|
|
159
|
+
}}
|
|
160
|
+
<span
|
|
161
|
+
v-if="displayedCount && displayedCount < totalCount"
|
|
162
|
+
:class="
|
|
163
|
+
themedClass(
|
|
164
|
+
'resultsDisplayedCountClass',
|
|
165
|
+
'text-sm font-normal text-gray-600',
|
|
166
|
+
)
|
|
167
|
+
"
|
|
168
|
+
>
|
|
169
|
+
({{ $texts('listing.showing', 'result') }} {{ displayedCount }})
|
|
103
170
|
</span>
|
|
104
|
-
</
|
|
171
|
+
</span>
|
|
105
172
|
</div>
|
|
106
173
|
</div>
|
|
107
174
|
</template>
|
|
175
|
+
|
|
108
176
|
<script setup lang="ts">
|
|
177
|
+
import type { ColorScheme } from '@iqual/nuxt-icms/types/global'
|
|
109
178
|
import Popover from '@iqual/nuxt-icms/components/ui/popover/Popover.vue'
|
|
110
179
|
import PopoverContent from '@iqual/nuxt-icms/components/ui/popover/PopoverContent.vue'
|
|
111
180
|
import PopoverTrigger from '@iqual/nuxt-icms/components/ui/popover/PopoverTrigger.vue'
|
|
181
|
+
import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
|
|
112
182
|
import { tv } from 'tailwind-variants'
|
|
113
183
|
|
|
184
|
+
const themedClass = useTheme()
|
|
185
|
+
|
|
114
186
|
// Incoming facet shape from GraphQL API.
|
|
115
187
|
export interface GraphQLFacetItem {
|
|
116
188
|
field: string
|
|
@@ -143,7 +215,7 @@ const props = defineProps<{
|
|
|
143
215
|
displayedCount?: number
|
|
144
216
|
/** Loading state */
|
|
145
217
|
loading?: boolean
|
|
146
|
-
colorScheme?:
|
|
218
|
+
colorScheme?: ColorScheme
|
|
147
219
|
|
|
148
220
|
/** Enable fulltext search */
|
|
149
221
|
enableTextSearch?: boolean
|
|
@@ -302,63 +374,265 @@ watch(
|
|
|
302
374
|
)
|
|
303
375
|
|
|
304
376
|
const popover = tv({
|
|
305
|
-
base: '
|
|
377
|
+
base: themedClass('popoverBase'),
|
|
306
378
|
variants: {
|
|
307
379
|
colorScheme: {
|
|
308
|
-
none: '
|
|
309
|
-
dark: '
|
|
310
|
-
light: '
|
|
311
|
-
accent: '
|
|
380
|
+
none: themedClass('popoverVariantsColorSchemeNone'),
|
|
381
|
+
dark: themedClass('popoverVariantsColorSchemeDark'),
|
|
382
|
+
light: themedClass('popoverVariantsColorSchemeLight'),
|
|
383
|
+
accent: themedClass('popoverVariantsColorSchemeAccent'),
|
|
384
|
+
},
|
|
385
|
+
},
|
|
386
|
+
})
|
|
387
|
+
|
|
388
|
+
const popoverTrigger = tv({
|
|
389
|
+
base: themedClass(
|
|
390
|
+
'popoverTriggerBase',
|
|
391
|
+
'w-full flex items-center justify-between gap-4 cursor-pointer py-3 px-6 transition-all border-1 focus-visible:outline-none focus-visible:shadow-none focus-visible:ring-2',
|
|
392
|
+
),
|
|
393
|
+
variants: {
|
|
394
|
+
colorScheme: {
|
|
395
|
+
none: themedClass(
|
|
396
|
+
'popoverTriggerVariantsColorSchemeNone',
|
|
397
|
+
'bg-white text-black border-gray-200 focus-visible:ring-primary',
|
|
398
|
+
),
|
|
399
|
+
dark: themedClass(
|
|
400
|
+
'popoverTriggerVariantsColorSchemeDark',
|
|
401
|
+
'bg-gray-900 text-white border-gray-800 focus-visible:ring-primary',
|
|
402
|
+
),
|
|
403
|
+
light: themedClass(
|
|
404
|
+
'popoverTriggerVariantsColorSchemeLight',
|
|
405
|
+
'bg-gray-50 text-black border-gray-200 focus-visible:ring-primary',
|
|
406
|
+
),
|
|
407
|
+
accent: themedClass(
|
|
408
|
+
'popoverTriggerVariantsColorSchemeAccent',
|
|
409
|
+
'bg-primary text-white border-primary focus-visible:ring-white',
|
|
410
|
+
),
|
|
411
|
+
},
|
|
412
|
+
},
|
|
413
|
+
})
|
|
414
|
+
|
|
415
|
+
const popoverTriggerIcon = tv({
|
|
416
|
+
base: themedClass(
|
|
417
|
+
'popoverTriggerIconBase',
|
|
418
|
+
'size-6 transition-all duration-300',
|
|
419
|
+
),
|
|
420
|
+
variants: {
|
|
421
|
+
colorScheme: {
|
|
422
|
+
none: themedClass(
|
|
423
|
+
'popoverTriggerIconVariantsColorSchemeNone',
|
|
424
|
+
'text-primary',
|
|
425
|
+
),
|
|
426
|
+
dark: themedClass(
|
|
427
|
+
'popoverTriggerIconVariantsColorSchemeDark',
|
|
428
|
+
'text-primary',
|
|
429
|
+
),
|
|
430
|
+
light: themedClass(
|
|
431
|
+
'popoverTriggerIconVariantsColorSchemeLight',
|
|
432
|
+
'text-primary',
|
|
433
|
+
),
|
|
434
|
+
accent: themedClass(
|
|
435
|
+
'popoverTriggerIconVariantsColorSchemeAccent',
|
|
436
|
+
'text-white',
|
|
437
|
+
),
|
|
312
438
|
},
|
|
313
439
|
},
|
|
314
440
|
})
|
|
315
441
|
|
|
316
442
|
const popoverContent = tv({
|
|
317
|
-
base:
|
|
443
|
+
base: themedClass(
|
|
444
|
+
'popoverContentBase',
|
|
445
|
+
'w-[var(--radix-popper-anchor-width)] p-0 border-1 rounded-none shadow-none',
|
|
446
|
+
),
|
|
318
447
|
variants: {
|
|
319
448
|
colorScheme: {
|
|
320
|
-
none:
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
449
|
+
none: themedClass(
|
|
450
|
+
'popoverContentVariantsColorSchemeNone',
|
|
451
|
+
'bg-white border-gray-200',
|
|
452
|
+
),
|
|
453
|
+
dark: themedClass(
|
|
454
|
+
'popoverContentVariantsColorSchemeDark',
|
|
455
|
+
'bg-gray-900 border-gray-800',
|
|
456
|
+
),
|
|
457
|
+
light: themedClass(
|
|
458
|
+
'popoverContentVariantsColorSchemeLight',
|
|
459
|
+
'bg-gray-50 border-gray-200',
|
|
460
|
+
),
|
|
461
|
+
accent: themedClass(
|
|
462
|
+
'popoverContentVariantsColorSchemeAccent',
|
|
463
|
+
'bg-primary border-primary',
|
|
464
|
+
),
|
|
324
465
|
},
|
|
325
466
|
},
|
|
326
467
|
})
|
|
327
468
|
|
|
328
|
-
const
|
|
329
|
-
base: 'text-lg font-medium',
|
|
469
|
+
const resultsCount = tv({
|
|
470
|
+
base: themedClass('resultsTextBase', 'mb-4 text-lg font-medium'),
|
|
330
471
|
variants: {
|
|
331
472
|
colorScheme: {
|
|
332
|
-
none: 'text-black',
|
|
333
|
-
dark: 'text-white',
|
|
334
|
-
light: 'text-black',
|
|
335
|
-
accent: 'text-white',
|
|
473
|
+
none: themedClass('resultsTextVariantsColorSchemeNone', 'text-black'),
|
|
474
|
+
dark: themedClass('resultsTextVariantsColorSchemeDark', 'text-white'),
|
|
475
|
+
light: themedClass('resultsTextVariantsColorSchemeLight', 'text-black'),
|
|
476
|
+
accent: themedClass('resultsTextVariantsColorSchemeAccent', 'text-white'),
|
|
336
477
|
},
|
|
337
478
|
},
|
|
338
479
|
})
|
|
339
480
|
|
|
340
481
|
const resetFilterButton = tv({
|
|
341
|
-
base:
|
|
482
|
+
base: themedClass(
|
|
483
|
+
'resetFilterButtonBase',
|
|
484
|
+
'[&>span]:text-sm w-fit px-4 py-1 border-0 transition-all bg-white border-1 border-black focus:outline-none focus:ring-2 disabled:opacity-40',
|
|
485
|
+
),
|
|
486
|
+
variants: {
|
|
487
|
+
colorScheme: {
|
|
488
|
+
none: themedClass(
|
|
489
|
+
'resetFilterButtonVariantsColorSchemeNone',
|
|
490
|
+
'bg-primary border-primary focus:ring-black text-white enabled:hover:text-primary enabled:hover:bg-white enabled:hover:border-primary',
|
|
491
|
+
),
|
|
492
|
+
dark: themedClass(
|
|
493
|
+
'resetFilterButtonVariantsColorSchemeDark',
|
|
494
|
+
'bg-primary border-primary focus:ring-primary text-black enabled:hover:text-primary enabled:hover:bg-gray-900 enabled:hover:border-primary',
|
|
495
|
+
),
|
|
496
|
+
light: themedClass(
|
|
497
|
+
'resetFilterButtonVariantsColorSchemeLight',
|
|
498
|
+
'bg-primary border-primary focus:ring-black text-white enabled:hover:text-primary enabled:hover:bg-gray-50 enabled:hover:border-primary',
|
|
499
|
+
),
|
|
500
|
+
accent: themedClass(
|
|
501
|
+
'resetFilterButtonVariantsColorSchemeAccent',
|
|
502
|
+
'bg-gray-950 border-gray-950 focus:ring-white text-white enabled:hover:text-black enabled:hover:bg-white enabled:hover:border-white',
|
|
503
|
+
),
|
|
504
|
+
},
|
|
505
|
+
},
|
|
506
|
+
})
|
|
507
|
+
|
|
508
|
+
const resetFiltersButton = tv({
|
|
509
|
+
base: themedClass(
|
|
510
|
+
'resetFiltersButtonBase',
|
|
511
|
+
'py-3 px-10 transition-all border-1 focus:outline-none focus:ring-2',
|
|
512
|
+
),
|
|
342
513
|
variants: {
|
|
343
514
|
colorScheme: {
|
|
344
|
-
none:
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
515
|
+
none: themedClass(
|
|
516
|
+
'resetFiltersButtonVariantsColorSchemeBase',
|
|
517
|
+
'bg-primary border-primary focus:ring-black text-white hover:text-primary hover:bg-white hover:border-primary',
|
|
518
|
+
),
|
|
519
|
+
dark: themedClass(
|
|
520
|
+
'resetFiltersButtonVariantsColorSchemeDark',
|
|
521
|
+
'bg-primary border-primary focus:ring-primary text-black hover:text-primary hover:bg-gray-950 hover:border-primary',
|
|
522
|
+
),
|
|
523
|
+
light: themedClass(
|
|
524
|
+
'resetFiltersButtonVariantsColorSchemeNone',
|
|
525
|
+
'bg-primary border-primary focus:ring-black text-white hover:text-primary hover:bg-gray-50 hover:border-primary',
|
|
526
|
+
),
|
|
527
|
+
accent: themedClass(
|
|
528
|
+
'resetFiltersButtonVariantsColorSchemeAccent',
|
|
529
|
+
'bg-gray-950 border-gray-950 focus:ring-white text-white hover:text-black hover:bg-white hover:border-white',
|
|
530
|
+
),
|
|
348
531
|
},
|
|
349
532
|
},
|
|
350
533
|
})
|
|
351
534
|
|
|
352
535
|
const checkbox = tv({
|
|
353
|
-
base:
|
|
536
|
+
base: themedClass(
|
|
537
|
+
'checkboxBase',
|
|
538
|
+
'pointer-events-none w-[18px] h-[18px] mt-0.5 transition-all duration-200',
|
|
539
|
+
),
|
|
540
|
+
variants: {
|
|
541
|
+
colorScheme: {
|
|
542
|
+
none: themedClass(
|
|
543
|
+
'checkboxVariantsColorSchemeNone',
|
|
544
|
+
'text-black border-gray-200 dark:border-gray-200 bg-white dark:bg-white data-[state=checked]:bg-primary dark:data-[state=checked]:bg-primary text-white dark:text-white data-[state=checked]:text-white dark:data-[state=checked]:text-white data-[state=checked]:border-primary dark:data-[state=checked]:border-primary',
|
|
545
|
+
),
|
|
546
|
+
dark: themedClass(
|
|
547
|
+
'checkboxVariantsColorSchemeDark',
|
|
548
|
+
'text-white border-gray-800 dark:border-gray-800 bg-gray-800 dark:bg-gray-800 data-[state=checked]:bg-primary dark:data-[state=checked]:bg-primary text-white dark:text-white data-[state=checked]:text-white dark:data-[state=checked]:text-white data-[state=checked]:border-primary dark:data-[state=checked]:border-primary',
|
|
549
|
+
),
|
|
550
|
+
light: themedClass(
|
|
551
|
+
'checkboxVariantsColorSchemeLight',
|
|
552
|
+
'text-black border-gray-200 dark:border-gray-200 bg-gray-50 dark:bg-gray-50 data-[state=checked]:bg-primary dark:data-[state=checked]:bg-primary text-white dark:text-white data-[state=checked]:text-white dark:data-[state=checked]:text-white data-[state=checked]:border-primary dark:data-[state=checked]:border-primary',
|
|
553
|
+
),
|
|
554
|
+
accent: themedClass(
|
|
555
|
+
'checkboxVariantsColorSchemeAccent',
|
|
556
|
+
'text-white border-primary-600 dark:border-primary-600 bg-primary-600 dark:bg-primary-600 data-[state=checked]:bg-primary-600 dark:data-[state=checked]:bg-primary-600 text-white dark:text-white data-[state=checked]:text-white dark:data-[state=checked]:text-white data-[state=checked]:border-primary-600 dark:data-[state=checked]:border-primary-600',
|
|
557
|
+
),
|
|
558
|
+
},
|
|
559
|
+
},
|
|
560
|
+
})
|
|
561
|
+
|
|
562
|
+
const filterOptionButton = tv({
|
|
563
|
+
base: themedClass(
|
|
564
|
+
'filterOptionButtonBase',
|
|
565
|
+
'flex w-full items-center gap-4 px-4 py-3 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-offset-4',
|
|
566
|
+
),
|
|
567
|
+
variants: {
|
|
568
|
+
colorScheme: {
|
|
569
|
+
none: themedClass(
|
|
570
|
+
'filterOptionButtonVariantsColorSchemeNone',
|
|
571
|
+
'focus-visible:ring-offset-white focus-visible:ring-primary',
|
|
572
|
+
),
|
|
573
|
+
dark: themedClass(
|
|
574
|
+
'filterOptionButtonVariantsColorSchemeDark',
|
|
575
|
+
'focus-visible:ring-offset-gray-900 focus-visible:ring-primary',
|
|
576
|
+
),
|
|
577
|
+
light: themedClass(
|
|
578
|
+
'filterOptionButtonVariantsColorSchemeLight',
|
|
579
|
+
'focus-visible:ring-offset-gray-50 focus-visible:ring-primary',
|
|
580
|
+
),
|
|
581
|
+
accent: themedClass(
|
|
582
|
+
'filterOptionButtonVariantsColorSchemeAccent',
|
|
583
|
+
'focus-visible:ring-offset-primary focus-visible:ring-white',
|
|
584
|
+
),
|
|
585
|
+
},
|
|
586
|
+
},
|
|
587
|
+
})
|
|
588
|
+
|
|
589
|
+
const filterOptionLabel = tv({
|
|
590
|
+
base: themedClass(
|
|
591
|
+
'filterOptionLabelBase',
|
|
592
|
+
'text-h9 flex-1 truncate font-normal',
|
|
593
|
+
),
|
|
594
|
+
variants: {
|
|
595
|
+
colorScheme: {
|
|
596
|
+
none: themedClass(
|
|
597
|
+
'filterOptionLabelVariantsColorSchemeNone',
|
|
598
|
+
'text-black',
|
|
599
|
+
),
|
|
600
|
+
dark: themedClass(
|
|
601
|
+
'filterOptionLabelVariantsColorSchemeDark',
|
|
602
|
+
'text-white',
|
|
603
|
+
),
|
|
604
|
+
light: themedClass(
|
|
605
|
+
'filterOptionLabelVariantsColorSchemeLight',
|
|
606
|
+
'text-black',
|
|
607
|
+
),
|
|
608
|
+
accent: themedClass(
|
|
609
|
+
'filterOptionLabelVariantsColorSchemeAccent',
|
|
610
|
+
'text-white',
|
|
611
|
+
),
|
|
612
|
+
},
|
|
613
|
+
},
|
|
614
|
+
})
|
|
615
|
+
|
|
616
|
+
const filterOptionCount = tv({
|
|
617
|
+
base: themedClass('filterOptionCountBase', 'mt-0.5 text-sm tabular-nums'),
|
|
354
618
|
variants: {
|
|
355
619
|
colorScheme: {
|
|
356
|
-
none:
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
'
|
|
620
|
+
none: themedClass(
|
|
621
|
+
'filterOptionCountVariantsColorSchemeNone',
|
|
622
|
+
'text-black',
|
|
623
|
+
),
|
|
624
|
+
dark: themedClass(
|
|
625
|
+
'filterOptionCountVariantsColorSchemeDark',
|
|
626
|
+
'text-white',
|
|
627
|
+
),
|
|
628
|
+
light: themedClass(
|
|
629
|
+
'filterOptionCountVariantsColorSchemeLight',
|
|
630
|
+
'text-black',
|
|
631
|
+
),
|
|
632
|
+
accent: themedClass(
|
|
633
|
+
'filterOptionCountVariantsColorSchemeAccent',
|
|
634
|
+
'text-white',
|
|
635
|
+
),
|
|
362
636
|
},
|
|
363
637
|
},
|
|
364
638
|
})
|