@chinggis.systems/collection-ui 1.0.1 → 1.0.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionCarousel.d.ts","sourceRoot":"","sources":["../../src/primitives/CollectionCarousel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAE1D,wBAAgB,kBAAkB,CAAC,EACjC,EAAE,EACF,MAAM,EACN,SAAS,EACT,cAAc,EACd,aAAa,EACb,SAAS,EACT,YAAY,EACZ,MAAM,EACN,cAAc,EACd,IAAI,EACJ,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,WAAW,GACZ,EAAE,uBAAuB,2CAqEzB"}
1
+ {"version":3,"file":"CollectionCarousel.d.ts","sourceRoot":"","sources":["../../src/primitives/CollectionCarousel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAE1D,wBAAgB,kBAAkB,CAAC,EACjC,EAAE,EACF,MAAM,EACN,SAAS,EACT,cAAc,EACd,aAAa,EACb,SAAS,EACT,YAAY,EACZ,MAAM,EACN,cAAc,EACd,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,WAAW,GACZ,EAAE,uBAAuB,2CA2EzB"}
@@ -1,15 +1,17 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useId } from "react";
3
- import { EffectCoverflow, Navigation } from "swiper";
3
+ import { Autoplay, EffectCoverflow, Navigation } from "swiper";
4
4
  import { Swiper, SwiperSlide } from "swiper/react";
5
- export function CollectionCarousel({ id, slides, className, slideClassName, previousLabel, nextLabel, showControls, effect, centeredSlides, loop, slidesPerView, slidesPerGroupAuto, spaceBetween, breakpoints, }) {
5
+ export function CollectionCarousel({ id, slides, className, slideClassName, previousLabel, nextLabel, showControls, effect, centeredSlides, loop, autoplay, speed, slidesPerView, slidesPerGroupAuto, spaceBetween, draggable, breakpoints, }) {
6
6
  const fallbackId = useId().replaceAll(":", "");
7
7
  const carouselId = id || `collection-carousel-${fallbackId}`;
8
8
  const isGridTitle = slideClassName?.includes("grid-title");
9
- return (_jsxs("div", { className: "collection-ui-carousel", children: [showControls ? (_jsxs("div", { className: "collection-ui-carousel__controls", children: [_jsx("button", { type: "button", "aria-controls": carouselId, "aria-label": previousLabel, className: `collection-ui-carousel__prev-${carouselId}`, children: "<" }), _jsx("button", { type: "button", "aria-controls": carouselId, "aria-label": nextLabel, className: `collection-ui-carousel__next-${carouselId}`, children: ">" })] })) : null, _jsx(Swiper, { id: carouselId, modules: [Navigation, EffectCoverflow], cssMode: true, effect: effect, navigation: {
9
+ const isBanner = className?.includes("collection-ui-banner-carousel");
10
+ const canDrag = draggable ?? true;
11
+ return (_jsxs("div", { className: "collection-ui-carousel", children: [showControls ? (_jsxs("div", { className: "collection-ui-carousel__controls", children: [_jsx("button", { type: "button", "aria-controls": carouselId, "aria-label": previousLabel, className: `collection-ui-carousel__prev-${carouselId}`, children: "<" }), _jsx("button", { type: "button", "aria-controls": carouselId, "aria-label": nextLabel, className: `collection-ui-carousel__next-${carouselId}`, children: ">" })] })) : null, _jsx(Swiper, { id: carouselId, modules: [Navigation, EffectCoverflow, Autoplay], cssMode: !isBanner && canDrag, effect: effect, navigation: {
10
12
  prevEl: `.collection-ui-carousel__prev-${carouselId}`,
11
13
  nextEl: `.collection-ui-carousel__next-${carouselId}`,
12
- }, centeredSlides: centeredSlides, loop: loop, spaceBetween: spaceBetween ?? (isGridTitle ? 24 : 20), edgeSwipeDetection: "prevent", slidesPerView: slidesPerView ?? (isGridTitle ? 1 : "auto"), slidesPerGroup: 1, slidesPerGroupAuto: slidesPerGroupAuto ?? !isGridTitle, coverflowEffect: effect === "coverflow"
14
+ }, centeredSlides: centeredSlides, loop: loop, autoplay: autoplay, speed: speed, spaceBetween: spaceBetween ?? (isGridTitle ? 24 : 20), edgeSwipeDetection: "prevent", allowTouchMove: canDrag, simulateTouch: canDrag, slidesPerView: slidesPerView ?? (isGridTitle ? 1 : "auto"), slidesPerGroup: 1, slidesPerGroupAuto: slidesPerGroupAuto ?? !isGridTitle, coverflowEffect: effect === "coverflow"
13
15
  ? {
14
16
  rotate: 0,
15
17
  stretch: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionCarousel.js","sourceRoot":"","sources":["../../src/primitives/CollectionCarousel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKnD,MAAM,UAAU,kBAAkB,CAAC,EACjC,EAAE,EACF,MAAM,EACN,SAAS,EACT,cAAc,EACd,aAAa,EACb,SAAS,EACT,YAAY,EACZ,MAAM,EACN,cAAc,EACd,IAAI,EACJ,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,WAAW,GACa;IACxB,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,EAAE,IAAI,uBAAuB,UAAU,EAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE3D,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACpC,YAAY,CAAC,CAAC,CAAC,CACd,eAAK,SAAS,EAAC,kCAAkC,aAC/C,iBACE,IAAI,EAAC,QAAQ,mBACE,UAAU,gBACb,aAAa,EACzB,SAAS,EAAE,gCAAgC,UAAU,EAAE,kBAGhD,EACT,iBACE,IAAI,EAAC,QAAQ,mBACE,UAAU,gBACb,SAAS,EACrB,SAAS,EAAE,gCAAgC,UAAU,EAAE,kBAGhD,IACL,CACP,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,MAAM,IACL,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EACtC,OAAO,QACP,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;oBACV,MAAM,EAAE,iCAAiC,UAAU,EAAE;oBACrD,MAAM,EAAE,iCAAiC,UAAU,EAAE;iBACtD,EACD,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD,kBAAkB,EAAC,SAAS,EAC5B,aAAa,EAAE,aAAa,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAC1D,cAAc,EAAE,CAAC,EACjB,kBAAkB,EAAE,kBAAkB,IAAI,CAAC,WAAW,EACtD,eAAe,EACb,MAAM,KAAK,WAAW;oBACpB,CAAC,CAAC;wBACE,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,CAAC;wBACV,KAAK,EAAE,GAAG;wBACV,KAAK,EAAE,GAAG;wBACV,QAAQ,EAAE,CAAC;wBACX,YAAY,EAAE,KAAK;qBACpB;oBACH,CAAC,CAAC,SAAS,EAEf,SAAS,EAAE,SAAS,IAAI,+BAA+B,EACvD,WAAW,EAAE,WAAkB,YAE9B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,WAAW,IAEV,SAAS,EAAE,cAAc,IAAI,+BAA+B,YAE3D,KAAK,IAHD,KAAK,CAIE,CACf,CAAC,GACK,IACL,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CollectionCarousel.js","sourceRoot":"","sources":["../../src/primitives/CollectionCarousel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKnD,MAAM,UAAU,kBAAkB,CAAC,EACjC,EAAE,EACF,MAAM,EACN,SAAS,EACT,cAAc,EACd,aAAa,EACb,SAAS,EACT,YAAY,EACZ,MAAM,EACN,cAAc,EACd,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,WAAW,GACa;IACxB,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,EAAE,IAAI,uBAAuB,UAAU,EAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,SAAS,EAAE,QAAQ,CAAC,+BAA+B,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC;IAElC,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACpC,YAAY,CAAC,CAAC,CAAC,CACd,eAAK,SAAS,EAAC,kCAAkC,aAC/C,iBACE,IAAI,EAAC,QAAQ,mBACE,UAAU,gBACb,aAAa,EACzB,SAAS,EAAE,gCAAgC,UAAU,EAAE,kBAGhD,EACT,iBACE,IAAI,EAAC,QAAQ,mBACE,UAAU,gBACb,SAAS,EACrB,SAAS,EAAE,gCAAgC,UAAU,EAAE,kBAGhD,IACL,CACP,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,MAAM,IACL,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,CAAC,EAChD,OAAO,EAAE,CAAC,QAAQ,IAAI,OAAO,EAC7B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;oBACV,MAAM,EAAE,iCAAiC,UAAU,EAAE;oBACrD,MAAM,EAAE,iCAAiC,UAAU,EAAE;iBACtD,EACD,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD,kBAAkB,EAAC,SAAS,EAC5B,cAAc,EAAE,OAAO,EACvB,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,aAAa,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAC1D,cAAc,EAAE,CAAC,EACjB,kBAAkB,EAAE,kBAAkB,IAAI,CAAC,WAAW,EACtD,eAAe,EACb,MAAM,KAAK,WAAW;oBACpB,CAAC,CAAC;wBACE,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,CAAC;wBACV,KAAK,EAAE,GAAG;wBACV,KAAK,EAAE,GAAG;wBACV,QAAQ,EAAE,CAAC;wBACX,YAAY,EAAE,KAAK;qBACpB;oBACH,CAAC,CAAC,SAAS,EAEf,SAAS,EAAE,SAAS,IAAI,+BAA+B,EACvD,WAAW,EAAE,WAAkB,YAE9B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,WAAW,IAEV,SAAS,EAAE,cAAc,IAAI,+BAA+B,YAE3D,KAAK,IAHD,KAAK,CAIE,CACf,CAAC,GACK,IACL,CACP,CAAC;AACJ,CAAC"}
package/dist/styles.css CHANGED
@@ -6,7 +6,10 @@
6
6
  --collection-ui-band-bg: var(--color-fg-alt, rgb(0 0 0 / 4%));
7
7
  --collection-ui-card-bg: transparent;
8
8
  --collection-ui-fg: var(--color-t-default, inherit);
9
- --collection-ui-muted: var(--color-t-muted, color-mix(in srgb, currentColor 62%, transparent));
9
+ --collection-ui-muted: var(
10
+ --color-t-muted,
11
+ color-mix(in srgb, currentColor 62%, transparent)
12
+ );
10
13
  --collection-ui-link: var(--color-link, #0f79d0);
11
14
  --collection-ui-button-bg: #f6a0a8;
12
15
  --collection-ui-button-fg: #151515;
@@ -17,14 +20,17 @@
17
20
  }
18
21
 
19
22
  .collection-ui--ecommerce {
20
- --collection-ui-bg: var(--color-bg-default, #181818);
21
- --collection-ui-band-bg: var(--color-fg-alt, #121212);
22
- --collection-ui-fg: var(--color-t-default, #fff);
23
- --collection-ui-muted: var(--color-t-muted, #aaa);
24
- --collection-ui-link: var(--color-link, #38bdf8);
25
- --collection-ui-button-bg: #f6a0a8;
26
- --collection-ui-button-fg: #151515;
27
- --collection-ui-special-bg: var(--color-fg-alt, #121212);
23
+ --collection-ui-bg: var(--color-bg-default, transparent);
24
+ --collection-ui-band-bg: var(--color-fg-main, transparent);
25
+ --collection-ui-fg: var(--color-t-default, inherit);
26
+ --collection-ui-muted: var(
27
+ --color-t-muted,
28
+ color-mix(in srgb, currentColor 62%, transparent)
29
+ );
30
+ --collection-ui-link: var(--color-link, #0f79d0);
31
+ --collection-ui-button-bg: #6e0b0f;
32
+ --collection-ui-button-fg: var(--color-fg-main, #151515);
33
+ --collection-ui-special-bg: var(--color-fg-main, transparent);
28
34
  --collection-ui-special-panel: transparent;
29
35
  }
30
36
 
@@ -42,6 +48,10 @@
42
48
  background: var(--collection-ui-bg);
43
49
  }
44
50
 
51
+ .dark .collection-ui--ecommerce {
52
+ --collection-ui-button-bg: #f6a2a5;
53
+ }
54
+
45
55
  .collection-ui--preview {
46
56
  --collection-ui-preview-max-height: 420px;
47
57
  border-radius: 6px;
@@ -152,12 +162,16 @@
152
162
  display: none;
153
163
  }
154
164
 
155
- .collection-ui-horizontal .collection-ui-title__link {
165
+ .collection-ui-horizontal .collection-ui-title__link,
166
+ .collection-ui-grid-double .collection-ui-title__link,
167
+ .collection-ui-grid-special .collection-ui-title__link {
156
168
  display: block;
157
169
  }
158
170
 
159
171
  .collection-ui-horizontal,
160
- .collection-ui-grid {
172
+ .collection-ui-grid,
173
+ .collection-ui-grid-double,
174
+ .collection-ui-grid-special {
161
175
  min-width: 0;
162
176
  position: relative;
163
177
  }
@@ -194,6 +208,57 @@
194
208
  width: max-content;
195
209
  }
196
210
 
211
+ .collection-ui-new-layout-carousel {
212
+ margin-top: 28px;
213
+ }
214
+
215
+ .collection-ui-grid-double__track,
216
+ .collection-ui-grid-special__track {
217
+ margin-inline: -16px;
218
+ overflow: visible;
219
+ padding: 0 16px 28px;
220
+ }
221
+
222
+ .collection-ui-grid-double__slide,
223
+ .collection-ui-grid-special__slide {
224
+ height: auto;
225
+ overflow: visible;
226
+ width: max-content !important;
227
+ }
228
+
229
+ .collection-ui-grid-double__panel {
230
+ display: grid;
231
+ gap: 12px 8px;
232
+ grid-auto-flow: column;
233
+ grid-auto-columns: max-content;
234
+ grid-template-rows: repeat(2, minmax(0, auto));
235
+ }
236
+
237
+ .collection-ui-grid-double__item,
238
+ .collection-ui-grid-special__item {
239
+ min-width: 0;
240
+ }
241
+
242
+ .collection-ui-grid-special__panel {
243
+ align-items: stretch;
244
+ display: flex;
245
+ gap: 12px;
246
+ width: max-content;
247
+ }
248
+
249
+ .collection-ui-grid-special__featured {
250
+ align-items: flex-end;
251
+ display: flex;
252
+ justify-content: center;
253
+ min-width: 0;
254
+ }
255
+
256
+ .collection-ui-grid-special__items {
257
+ display: grid;
258
+ gap: 10px 10px;
259
+ grid-template-columns: repeat(2, max-content);
260
+ }
261
+
197
262
  .collection-ui-grid-title.collection-ui-grid-title {
198
263
  margin-inline: -16px;
199
264
  padding-inline: 16px;
@@ -223,10 +288,11 @@
223
288
 
224
289
  .collection-ui-view-all {
225
290
  align-items: center;
226
- background: linear-gradient(135deg, #1f2937, #111827);
227
- border: 1px solid rgb(255 255 255 / 12%);
228
- border-radius: 2px;
229
- color: rgb(212 212 212);
291
+ background: var(--color-fg-main, #fff);
292
+ border: 1px solid var(--color-border-main, rgb(0 0 0 / 10%));
293
+ border-radius: 6px;
294
+ box-shadow: 0 14px 30px rgb(0 0 0 / 8%);
295
+ color: var(--collection-ui-link);
230
296
  display: flex;
231
297
  flex-direction: column;
232
298
  font-size: 0.875rem;
@@ -236,23 +302,26 @@
236
302
  overflow: hidden;
237
303
  padding: 24px;
238
304
  position: relative;
239
- transition: border-color 300ms ease, color 300ms ease;
305
+ transition:
306
+ border-color 160ms ease,
307
+ box-shadow 160ms ease,
308
+ transform 160ms ease;
240
309
  width: 180px;
241
310
  }
242
311
 
243
312
  .collection-ui-view-all:hover {
244
- border-color: rgb(255 255 255 / 20%);
245
- color: white;
313
+ border-color: color-mix(in srgb, var(--collection-ui-link) 35%, transparent);
314
+ box-shadow: 0 18px 36px rgb(0 0 0 / 12%);
315
+ transform: translateY(-2px);
246
316
  }
247
317
 
248
318
  .collection-ui-view-all::before {
249
- background: linear-gradient(135deg, rgb(14 165 233 / 10%), rgb(168 85 247 / 10%));
319
+ background: color-mix(in srgb, var(--collection-ui-link) 8%, transparent);
250
320
  content: "";
251
- filter: blur(16px);
252
321
  inset: 0;
253
322
  opacity: 0;
254
323
  position: absolute;
255
- transition: opacity 500ms ease;
324
+ transition: opacity 160ms ease;
256
325
  }
257
326
 
258
327
  .collection-ui-view-all:hover::before {
@@ -261,21 +330,23 @@
261
330
 
262
331
  .collection-ui-view-all__icon {
263
332
  align-items: center;
264
- background: rgb(38 38 38);
333
+ background: color-mix(in srgb, var(--collection-ui-link) 10%, transparent);
265
334
  border-radius: 999px;
266
- color: rgb(56 189 248);
335
+ color: var(--collection-ui-link);
267
336
  display: inline-flex;
268
337
  font-size: 1.5rem;
269
338
  height: 56px;
270
339
  justify-content: center;
271
340
  margin-bottom: 16px;
272
341
  position: relative;
273
- transition: background-color 300ms ease, transform 200ms ease;
342
+ transition:
343
+ background-color 300ms ease,
344
+ transform 200ms ease;
274
345
  width: 56px;
275
346
  }
276
347
 
277
348
  .collection-ui-view-all:hover .collection-ui-view-all__icon {
278
- background: rgb(14 165 233 / 20%);
349
+ background: color-mix(in srgb, var(--collection-ui-link) 16%, transparent);
279
350
  transform: translateX(4px);
280
351
  }
281
352
 
@@ -356,6 +427,33 @@
356
427
  width: 112px;
357
428
  }
358
429
 
430
+ .collection-ui-card--image-only {
431
+ justify-content: flex-end;
432
+ width: 88px;
433
+ }
434
+
435
+ .collection-ui-grid-special
436
+ .collection-ui-card--image-only:not(.collection-ui-card--featured) {
437
+ width: auto;
438
+ }
439
+
440
+ .collection-ui-card--image-only .collection-ui-card__media {
441
+ min-height: 0;
442
+ }
443
+
444
+ .collection-ui-card--image-only .we-book-overlay {
445
+ margin-bottom: 0;
446
+ }
447
+
448
+ .collection-ui-grid-double .we-book-overlay,
449
+ .collection-ui-grid-special .we-book-overlay {
450
+ margin-bottom: 0;
451
+ }
452
+
453
+ .collection-ui-card--featured {
454
+ width: auto;
455
+ }
456
+
359
457
  .collection-ui-card__media {
360
458
  align-items: flex-end;
361
459
  display: flex;
@@ -363,6 +461,10 @@
363
461
  min-height: 144px;
364
462
  }
365
463
 
464
+ .collection-ui-card__media--featured {
465
+ min-height: 0;
466
+ }
467
+
366
468
  .collection-ui-card__body {
367
469
  display: flex;
368
470
  gap: 8px;
@@ -673,6 +775,10 @@
673
775
  padding-block: 32px;
674
776
  }
675
777
 
778
+ .collection-ui--ecommerce .collection-ui-band {
779
+ color: var(--collection-ui-fg);
780
+ }
781
+
676
782
  .collection-ui-special-section {
677
783
  background: var(--collection-ui-special-bg);
678
784
  padding-block: 40px;
@@ -694,6 +800,14 @@
694
800
  grid-template-columns: 1fr;
695
801
  }
696
802
 
803
+ .collection-ui-banner-carousel {
804
+ min-width: 0;
805
+ }
806
+
807
+ .collection-ui-banner-carousel__slide {
808
+ height: 100%;
809
+ }
810
+
697
811
  .collection-ui-banner__copy {
698
812
  padding: 16px;
699
813
  }
@@ -730,7 +844,96 @@
730
844
  width: 100%;
731
845
  }
732
846
 
733
- .collection-ui-button {
847
+ .collection-ui-banner__image {
848
+ height: 100%;
849
+ }
850
+
851
+ .collection-ui-featured-card__image {
852
+ height: auto;
853
+ }
854
+
855
+ .collection-ui-banner__media-link {
856
+ aspect-ratio: 16 / 9;
857
+ border-radius: 8px;
858
+ display: block;
859
+ max-height: 260px;
860
+ overflow: hidden;
861
+ min-width: 0;
862
+ width: 100%;
863
+ }
864
+
865
+ .collection-ui-banner__image--zoom {
866
+ transform: scale(1);
867
+ transition: transform 5000ms linear;
868
+ will-change: transform;
869
+ }
870
+
871
+ .collection-ui-banner-carousel
872
+ .swiper-slide-active
873
+ .collection-ui-banner__image--zoom {
874
+ transform: scale(1.06);
875
+ }
876
+
877
+ .collection-ui-banner-source {
878
+ align-items: center;
879
+ aspect-ratio: 16 / 9;
880
+ background: #030712;
881
+ border-radius: 8px;
882
+ display: flex;
883
+ justify-content: center;
884
+ max-height: 260px;
885
+ overflow: hidden;
886
+ padding: 32px;
887
+ position: relative;
888
+ }
889
+
890
+ .collection-ui-banner-source__background {
891
+ height: 100%;
892
+ inset: 0;
893
+ object-fit: cover;
894
+ opacity: 0.6;
895
+ position: absolute;
896
+ width: 100%;
897
+ }
898
+
899
+ .collection-ui-banner-source__overlay {
900
+ background: linear-gradient(
901
+ 135deg,
902
+ rgb(0 0 0 / 40%),
903
+ rgb(255 255 255 / 10%),
904
+ rgb(0 0 0 / 55%)
905
+ );
906
+ inset: 0;
907
+ position: absolute;
908
+ }
909
+
910
+ .collection-ui-banner-source__frame {
911
+ align-items: center;
912
+ background: rgb(255 255 255 / 15%);
913
+ border-radius: 6px;
914
+ box-shadow: 0 24px 80px rgb(0 0 0 / 35%);
915
+ display: flex;
916
+ height: 210px;
917
+ justify-content: center;
918
+ padding: 12px;
919
+ position: relative;
920
+ width: 150px;
921
+ }
922
+
923
+ @supports (backdrop-filter: blur(12px)) {
924
+ .collection-ui-banner-source__frame {
925
+ backdrop-filter: blur(12px);
926
+ }
927
+ }
928
+
929
+ .collection-ui-banner-source__foreground {
930
+ filter: drop-shadow(0 22px 28px rgb(0 0 0 / 35%));
931
+ height: 100%;
932
+ object-fit: contain;
933
+ width: 100%;
934
+ }
935
+
936
+ .collection-ui .collection-ui-button {
734
937
  align-items: center;
735
938
  background: var(--collection-ui-button-bg);
736
939
  border-radius: 8px;
@@ -744,7 +947,9 @@
744
947
  min-width: 152px;
745
948
  padding: 10px 32px;
746
949
  text-align: center;
747
- transition: background-color 160ms ease, transform 160ms ease;
950
+ transition:
951
+ background-color 160ms ease,
952
+ transform 160ms ease;
748
953
  white-space: nowrap;
749
954
  }
750
955
 
@@ -819,31 +1024,45 @@
819
1024
  align-items: center;
820
1025
  display: grid;
821
1026
  gap: 28px;
822
- grid-template-columns: repeat(var(--collection-ui-columns, 2), minmax(0, 1fr));
1027
+ grid-template-columns: repeat(
1028
+ var(--collection-ui-columns, 2),
1029
+ minmax(0, 1fr)
1030
+ );
823
1031
  justify-content: center;
824
1032
  margin-top: 32px;
825
1033
  }
826
1034
 
827
1035
  .collection-ui-image-grid__item {
1036
+ align-items: center;
828
1037
  display: flex;
1038
+ flex: 0 1 auto;
829
1039
  justify-content: center;
1040
+ min-height: 96px;
1041
+ min-width: 0;
830
1042
  }
831
1043
 
832
1044
  .collection-ui-image-grid__image {
833
1045
  border-radius: 8px;
834
1046
  display: block;
835
- height: auto;
836
1047
  max-width: 100%;
837
- object-fit: cover;
1048
+ object-fit: contain;
1049
+ width: 176px;
1050
+ height: 96px;
838
1051
  }
839
1052
 
840
1053
  .collection-ui-image-grid--circle .collection-ui-image-grid__image {
841
1054
  height: 128px;
1055
+ object-fit: cover;
842
1056
  width: 128px;
843
1057
  }
844
1058
 
1059
+ .collection-ui-image-grid--circle .collection-ui-image-grid__item {
1060
+ min-height: 128px;
1061
+ }
1062
+
845
1063
  .collection-ui-image-grid--block .collection-ui-image-grid__image {
846
- max-height: 96px;
1064
+ height: 96px;
1065
+ width: 176px;
847
1066
  }
848
1067
 
849
1068
  .collection-ui-image-grid__image--circle {
@@ -853,6 +1072,13 @@
853
1072
 
854
1073
  .collection-ui-image-grid__image--square {
855
1074
  aspect-ratio: 1;
1075
+ height: 176px;
1076
+ object-fit: cover;
1077
+ width: 176px;
1078
+ }
1079
+
1080
+ .collection-ui-image-grid--square .collection-ui-image-grid__item {
1081
+ min-height: 176px;
856
1082
  }
857
1083
 
858
1084
  .collection-ui--preview .collection-ui-image-grid__items {
@@ -865,6 +1091,25 @@
865
1091
  width: auto;
866
1092
  }
867
1093
 
1094
+ @media (max-width: 767px) {
1095
+ .collection-ui-grid-special__panel {
1096
+ gap: 18px;
1097
+ grid-template-columns: minmax(116px, auto) minmax(104px, auto);
1098
+ }
1099
+
1100
+ .collection-ui-grid-special__items {
1101
+ grid-template-columns: minmax(104px, auto);
1102
+ }
1103
+
1104
+ .collection-ui-card--featured {
1105
+ width: 136px;
1106
+ }
1107
+
1108
+ .collection-ui-card__media--featured {
1109
+ min-height: 204px;
1110
+ }
1111
+ }
1112
+
868
1113
  @media (min-width: 768px) {
869
1114
  .collection-ui-title__controls {
870
1115
  display: flex;
@@ -896,9 +1141,20 @@
896
1141
  padding: 0 32px 24px 0;
897
1142
  }
898
1143
 
899
- .collection-ui-banner > a {
1144
+ .collection-ui-banner__media-link {
900
1145
  display: block;
901
1146
  grid-column: span 8 / span 8;
1147
+ max-height: 500px;
1148
+ }
1149
+
1150
+ .collection-ui-banner-source {
1151
+ max-height: 500px;
1152
+ padding: 48px;
1153
+ }
1154
+
1155
+ .collection-ui-banner-source__frame {
1156
+ height: min(420px, 100%);
1157
+ width: 300px;
902
1158
  }
903
1159
 
904
1160
  .collection-ui-banner__eyebrow {
@@ -906,11 +1162,17 @@
906
1162
  }
907
1163
 
908
1164
  .collection-ui-featured {
909
- grid-template-columns: repeat(var(--collection-ui-columns, 2), minmax(0, 1fr));
1165
+ grid-template-columns: repeat(
1166
+ var(--collection-ui-columns, 2),
1167
+ minmax(0, 1fr)
1168
+ );
910
1169
  }
911
1170
 
912
1171
  .collection-ui-featured--three {
913
- grid-template-columns: repeat(var(--collection-ui-columns, 3), minmax(0, 1fr));
1172
+ grid-template-columns: repeat(
1173
+ var(--collection-ui-columns, 3),
1174
+ minmax(0, 1fr)
1175
+ );
914
1176
  }
915
1177
 
916
1178
  .collection-ui-carousel__controls {
@@ -924,7 +1186,10 @@
924
1186
  }
925
1187
 
926
1188
  .collection-ui-special-item {
927
- grid-template-columns: minmax(160px, 0.28fr) minmax(0, 0.52fr) minmax(156px, 0.2fr);
1189
+ grid-template-columns: minmax(160px, 0.28fr) minmax(0, 0.52fr) minmax(
1190
+ 156px,
1191
+ 0.2fr
1192
+ );
928
1193
  justify-items: stretch;
929
1194
  }
930
1195
 
@@ -935,16 +1200,34 @@
935
1200
  .collection-ui-image-grid__items {
936
1201
  display: flex;
937
1202
  flex-wrap: wrap;
1203
+ justify-content: center;
938
1204
  }
939
1205
 
940
1206
  .collection-ui-image-grid--circle .collection-ui-image-grid__items {
941
- flex-wrap: nowrap;
942
1207
  gap: clamp(24px, 4vw, 56px);
943
1208
  }
944
1209
 
945
1210
  .collection-ui-image-grid--block .collection-ui-image-grid__items {
946
1211
  gap: 16px;
947
1212
  }
1213
+
1214
+ .collection-ui-image-grid__item {
1215
+ flex-basis: calc(
1216
+ 100% / var(--collection-ui-columns, 4) -
1217
+ var(--collection-ui-image-grid-gap, 28px)
1218
+ );
1219
+ max-width: 220px;
1220
+ }
1221
+
1222
+ .collection-ui-image-grid--circle .collection-ui-image-grid__item {
1223
+ --collection-ui-image-grid-gap: clamp(24px, 4vw, 56px);
1224
+ flex-basis: auto;
1225
+ max-width: 168px;
1226
+ }
1227
+
1228
+ .collection-ui-image-grid--block .collection-ui-image-grid__item {
1229
+ --collection-ui-image-grid-gap: 16px;
1230
+ }
948
1231
  }
949
1232
 
950
1233
  @media (min-width: 1200px) {
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { CSSProperties, ReactNode } from "react";
2
- export type CollectionLayoutName = "banner" | "block-grid" | "carousel" | "dynamic" | "featured" | "grid" | "grid-title" | "hero" | "image-grid" | "list" | "relative" | "slide" | "special";
2
+ export type CollectionLayoutName = "banner" | "block-grid" | "carousel" | "dynamic" | "featured" | "grid" | "grid-double" | "grid-special" | "grid-title" | "hero" | "image-grid" | "list" | "relative" | "slide" | "special";
3
3
  export type CollectionLayoutDirection = "horizontal" | "vertical";
4
4
  export type CollectionLayoutShape = "circle" | "rectangle" | "square";
5
5
  export type CollectionItemMediaKind = "audio" | "book" | "ebook" | string;
@@ -103,9 +103,16 @@ export interface CarouselRenderProps {
103
103
  effect?: "slide" | "coverflow";
104
104
  centeredSlides?: boolean;
105
105
  loop?: boolean;
106
+ autoplay?: boolean | {
107
+ delay?: number;
108
+ disableOnInteraction?: boolean;
109
+ pauseOnMouseEnter?: boolean;
110
+ };
111
+ speed?: number;
106
112
  slidesPerView?: number | "auto";
107
113
  slidesPerGroupAuto?: boolean;
108
114
  spaceBetween?: number;
115
+ draggable?: boolean;
109
116
  breakpoints?: Record<string | number, unknown>;
110
117
  }
111
118
  export interface CollectionRendererLabels {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE1D,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,UAErE;AAED,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,gBAQ1D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAE1E;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,UAAU,WAE9C;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,WAEpD;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,iBAE3D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,iBAEnD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE1D,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,UAErE;AAED,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,gBAE1D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAE1E;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,UAAU,WAE9C;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,WAEpD;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,iBAE3D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,iBAEnD"}
package/dist/utils.js CHANGED
@@ -2,12 +2,7 @@ export function cx(...values) {
2
2
  return values.filter(Boolean).join(" ");
3
3
  }
4
4
  export function sortCollections(items) {
5
- return [...compact(items)].sort((a, b) => {
6
- if (a.sort != null || b.sort != null) {
7
- return (b.sort ?? Number.NEGATIVE_INFINITY) - (a.sort ?? Number.NEGATIVE_INFINITY);
8
- }
9
- return (a.name ?? "").localeCompare(b.name ?? "");
10
- });
5
+ return compact(items);
11
6
  }
12
7
  export function compact(items) {
13
8
  return (items ?? []).filter((item) => Boolean(item));
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,EAAE,CAAC,GAAG,MAAgD;IACpE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,OAAO,CAAI,KAA0C;IACnE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAa,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,UAAsB;IAC7C,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAsB;IACnD,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAsB;IAC1D,OAAO,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAoB;IAClD,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,EAAE,CAAC,GAAG,MAAgD;IACpE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,OAAO,CAAI,KAA0C;IACnE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAa,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,UAAsB;IAC7C,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAsB;IACnD,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAsB;IAC1D,OAAO,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAoB;IAClD,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;AAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chinggis.systems/collection-ui",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Reusable React collection layout renderer with app-provided link, image, and item adapters.",
5
5
  "license": "MIT",
6
6
  "type": "module",