@iqual/nuxt-icms 1.5.10 → 1.5.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -81,6 +81,7 @@
81
81
  :debug="false"
82
82
  :alignHorizontalFull="alignHorizontalFull"
83
83
  @results-updated="onResultsUpdated"
84
+ :conjunction="conjunction"
84
85
  >
85
86
  <template #results="{ results }">
86
87
  <slot name="preResults" :results="results"></slot>
@@ -162,10 +163,8 @@ const props = withDefaults(
162
163
  titleStyle?: string
163
164
  text?: string
164
165
  listingType?: string
165
- topics?: ({
166
- id?: string
167
- name?: string
168
- } | null)[]
166
+ conjunction?: 'AND' | 'OR'
167
+ prefilter?: Record<string, Array<{ id?: string; name?: string } | null>>
169
168
  availableFacets?: string[]
170
169
  contentTypeFilter?: string[]
171
170
  additionalFilters?: Array<{ field: string; value: any; operator?: string }>
@@ -213,9 +212,15 @@ const filterValidItems = (items?: any[]) =>
213
212
  }[]
214
213
 
215
214
  // Build manual filters object from props for 'manual' listing type
216
- const manualFilters = computed(() => ({
217
- topics: filterValidItems(props.topics),
218
- }))
215
+ const manualFilters = computed(() => {
216
+ const result: Record<string, any> = {}
217
+
218
+ Object.entries(props.prefilter).forEach(([key, items]) => {
219
+ result[key] = filterValidItems(items)
220
+ })
221
+
222
+ return result
223
+ })
219
224
 
220
225
  // Get the valid listing type
221
226
  const listingType = computed(() => {
@@ -21,8 +21,9 @@
21
21
  :pretitle="pretitle"
22
22
  :pretitleClass="themedClass('pretitleClass')"
23
23
  :title="title"
24
- :text="text"
25
24
  :titleClass="themedClass('titleClass')"
25
+ :text="text"
26
+ :textClass="themedClass('textClass')"
26
27
  :titleWeight="titleWeight"
27
28
  :titleStyle="titleStyle"
28
29
  :subtitle="subtitle"
@@ -65,8 +66,12 @@
65
66
  prevIcon="i-lucide-chevron-left"
66
67
  nextIcon="i-lucide-chevron-right"
67
68
  :ui="{
68
- item: 'basis-full',
69
- container: themedClass('carouselContent'),
69
+ root: themedClass('carouselRootClass'),
70
+ viewport: themedClass('carouselViewportClass'),
71
+ item: themedClass('carouselItemClass', 'basis-full'),
72
+ container: themedClass('carouselContentClass'),
73
+ controls: themedClass('carouselControlsClass'),
74
+ arrows: themedClass('carouselArrowsClass'),
70
75
  prev: cn(
71
76
  themedClass('carouselButtonPrevClass', 'sm:-start-24'),
72
77
  carouselButton({ colorScheme }),
@@ -75,6 +80,8 @@
75
80
  themedClass('carouselButtonNextClass', 'sm:-end-24'),
76
81
  carouselButton({ colorScheme }),
77
82
  ),
83
+ dots: themedClass('carouselDotsClass'),
84
+ dot: carouselDot({ colorScheme }),
78
85
  }"
79
86
  >
80
87
  <template #default="{ item }">
@@ -159,6 +166,36 @@ const carouselButton = tv({
159
166
  },
160
167
  })
161
168
 
169
+ const carouselDot = tv({
170
+ base: themedClass(
171
+ 'carouselDotBase',
172
+ 'cursor-pointer size-3 rounded-full transition focus:outline-none focus-visible:ring-2',
173
+ ),
174
+ variants: {
175
+ colorScheme: {
176
+ none: themedClass(
177
+ 'carouselDotVariantsColorSchemeNone',
178
+ 'bg-gray-300 data-[state=active]:bg-gray-950 focus-visible:ring-primary',
179
+ ),
180
+ dark: themedClass(
181
+ 'carouselDotVariantsColorSchemeDark',
182
+ 'bg-gray-600 data-[state=active]:bg-white focus-visible:ring-primary',
183
+ ),
184
+ light: themedClass(
185
+ 'carouselDotVariantsColorSchemeLight',
186
+ 'bg-gray-300 data-[state=active]:bg-gray-950 focus-visible:ring-primary',
187
+ ),
188
+ accent: themedClass(
189
+ 'carouselDotVariantsColorSchemeAccent',
190
+ 'bg-primary-300 data-[state=active]:bg-white focus-visible:ring-white',
191
+ ),
192
+ },
193
+ },
194
+ defaultVariants: {
195
+ colorScheme: 'none',
196
+ },
197
+ })
198
+
162
199
  const spacing = computed(() => {
163
200
  return { bottom: options.value.spacingBottom, top: options.value.spacingTop }
164
201
  })
@@ -101,7 +101,6 @@
101
101
  icon: themedClass('filterOptionUCheckboxIcon'),
102
102
  }"
103
103
  tabindex="-1"
104
- @click.stop
105
104
  />
106
105
 
107
106
  <span :class="filterOptionLabel({ colorScheme })">
@@ -571,7 +570,7 @@ const resetFiltersButton = tv({
571
570
  })
572
571
 
573
572
  const checkboxBase = tv({
574
- base: themedClass('checkboxBase', 'rounded-none'),
573
+ base: themedClass('checkboxBase', 'rounded-none cursor-pointer'),
575
574
  variants: {
576
575
  colorScheme: {
577
576
  none: themedClass('checkboxBaseVariantsColorSchemeNone', 'ring-gray-200'),
@@ -615,7 +614,7 @@ const checkboxIndicator = tv({
615
614
  const filterOptionButton = tv({
616
615
  base: themedClass(
617
616
  'filterOptionButtonBase',
618
- 'flex w-full items-center gap-4 px-4 py-3 text-left focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-offset-4',
617
+ 'flex w-full items-center gap-4 px-4 py-3 text-left focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-offset-4 cursor-pointer',
619
618
  ),
620
619
  variants: {
621
620
  colorScheme: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iqual/nuxt-icms",
3
- "version": "1.5.10",
3
+ "version": "1.5.12",
4
4
  "description": "ICMS Base",
5
5
  "type": "module",
6
6
  "private": false,