framework7 9.1.0 → 9.1.2

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,5 +1,5 @@
1
1
  /**
2
- * Framework7 9.1.0
2
+ * Framework7 9.1.2
3
3
  * Full featured mobile HTML framework for building iOS & Android apps
4
4
  * https://framework7.io/
5
5
  *
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Released under the MIT License
9
9
  *
10
- * Released on: June 29, 2026
10
+ * Released on: July 28, 2026
11
11
  */
12
12
 
13
13
  (function (global, factory) {
@@ -6746,8 +6746,9 @@
6746
6746
  }
6747
6747
  var tokens = lexer(str);
6748
6748
  var _a = options.prefixes,
6749
- prefixes = _a === void 0 ? "./" : _a;
6750
- var defaultPattern = "[^".concat(escapeString(options.delimiter || "/#?"), "]+?");
6749
+ prefixes = _a === void 0 ? "./" : _a,
6750
+ _b = options.delimiter,
6751
+ delimiter = _b === void 0 ? "/#?" : _b;
6751
6752
  var result = [];
6752
6753
  var key = 0;
6753
6754
  var i = 0;
@@ -6771,6 +6772,22 @@
6771
6772
  }
6772
6773
  return result;
6773
6774
  };
6775
+ var isSafe = function (value) {
6776
+ for (var _i = 0, delimiter_1 = delimiter; _i < delimiter_1.length; _i++) {
6777
+ var char = delimiter_1[_i];
6778
+ if (value.indexOf(char) > -1) return true;
6779
+ }
6780
+ return false;
6781
+ };
6782
+ var safePattern = function (prefix) {
6783
+ var prev = result[result.length - 1];
6784
+ var prevText = prefix || (prev && typeof prev === "string" ? prev : "");
6785
+ if (prev && !prevText) {
6786
+ throw new TypeError("Must have text between two parameters, missing text after \"".concat(prev.name, "\""));
6787
+ }
6788
+ if (!prevText || isSafe(prevText)) return "[^".concat(escapeString(delimiter), "]+?");
6789
+ return "(?:(?!".concat(escapeString(prevText), ")[^").concat(escapeString(delimiter), "])+?");
6790
+ };
6774
6791
  while (i < tokens.length) {
6775
6792
  var char = tryConsume("CHAR");
6776
6793
  var name = tryConsume("NAME");
@@ -6789,7 +6806,7 @@
6789
6806
  name: name || key++,
6790
6807
  prefix: prefix,
6791
6808
  suffix: "",
6792
- pattern: pattern || defaultPattern,
6809
+ pattern: pattern || safePattern(prefix),
6793
6810
  modifier: tryConsume("MODIFIER") || ""
6794
6811
  });
6795
6812
  continue;
@@ -6812,7 +6829,7 @@
6812
6829
  mustConsume("CLOSE");
6813
6830
  result.push({
6814
6831
  name: name_1 || (pattern_1 ? key++ : ""),
6815
- pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,
6832
+ pattern: name_1 && !pattern_1 ? safePattern(prefix) : pattern_1,
6816
6833
  prefix: prefix,
6817
6834
  suffix: suffix,
6818
6835
  modifier: tryConsume("MODIFIER") || ""
@@ -7029,10 +7046,9 @@
7029
7046
  }
7030
7047
  } else {
7031
7048
  if (token.modifier === "+" || token.modifier === "*") {
7032
- route += "((?:".concat(token.pattern, ")").concat(token.modifier, ")");
7033
- } else {
7034
- route += "(".concat(token.pattern, ")").concat(token.modifier);
7049
+ throw new TypeError("Can not repeat \"".concat(token.name, "\" without a prefix and suffix"));
7035
7050
  }
7051
+ route += "(".concat(token.pattern, ")").concat(token.modifier);
7036
7052
  }
7037
7053
  } else {
7038
7054
  route += "(?:".concat(prefix).concat(suffix, ")").concat(token.modifier);
@@ -32516,11 +32532,10 @@
32516
32532
  }
32517
32533
  function extend$1(...args) {
32518
32534
  const to = Object(args[0]);
32519
- const noExtend = ['__proto__', 'constructor', 'prototype'];
32520
32535
  for (let i = 1; i < args.length; i += 1) {
32521
32536
  const nextSource = args[i];
32522
32537
  if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {
32523
- const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);
32538
+ const keysArray = Object.keys(Object(nextSource)).filter(key => key !== '__proto__' && key !== 'constructor' && key !== 'prototype');
32524
32539
  for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
32525
32540
  const nextKey = keysArray[nextIndex];
32526
32541
  const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
@@ -33167,6 +33182,12 @@
33167
33182
  setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');
33168
33183
  setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');
33169
33184
  }
33185
+
33186
+ // set cssMode offsets
33187
+ if (params.cssMode) {
33188
+ setCSSProperty(wrapperEl, '--swiper-slides-offset-before', `${offsetBefore}px`);
33189
+ setCSSProperty(wrapperEl, '--swiper-slides-offset-after', `${offsetAfter}px`);
33190
+ }
33170
33191
  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;
33171
33192
  if (gridEnabled) {
33172
33193
  swiper.grid.initSlides(slides);
@@ -33278,17 +33299,52 @@
33278
33299
 
33279
33300
  // Remove last grid elements depending on width
33280
33301
  if (!params.centeredSlides) {
33302
+ // Check if snapToSlideEdge should be applied
33303
+ const isFractionalSlidesPerView = params.slidesPerView !== 'auto' && params.slidesPerView % 1 !== 0;
33304
+ const shouldSnapToSlideEdge = params.snapToSlideEdge && !params.loop && (params.slidesPerView === 'auto' || isFractionalSlidesPerView);
33305
+
33306
+ // Calculate the last allowed snap index when snapToSlideEdge is enabled
33307
+ // This ensures minimum slides are visible at the end
33308
+ let lastAllowedSnapIndex = snapGrid.length;
33309
+ if (shouldSnapToSlideEdge) {
33310
+ let minVisibleSlides;
33311
+ if (params.slidesPerView === 'auto') {
33312
+ // For 'auto' mode, calculate how many slides fit based on actual sizes
33313
+ minVisibleSlides = 1;
33314
+ let accumulatedSize = 0;
33315
+ for (let i = slidesSizesGrid.length - 1; i >= 0; i -= 1) {
33316
+ accumulatedSize += slidesSizesGrid[i] + (i < slidesSizesGrid.length - 1 ? spaceBetween : 0);
33317
+ if (accumulatedSize <= swiperSize) {
33318
+ minVisibleSlides = slidesSizesGrid.length - i;
33319
+ } else {
33320
+ break;
33321
+ }
33322
+ }
33323
+ } else {
33324
+ minVisibleSlides = Math.floor(params.slidesPerView);
33325
+ }
33326
+ lastAllowedSnapIndex = Math.max(slidesLength - minVisibleSlides, 0);
33327
+ }
33281
33328
  const newSlidesGrid = [];
33282
33329
  for (let i = 0; i < snapGrid.length; i += 1) {
33283
33330
  let slidesGridItem = snapGrid[i];
33284
33331
  if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);
33285
- if (snapGrid[i] <= swiper.virtualSize - swiperSize) {
33332
+ if (shouldSnapToSlideEdge) {
33333
+ // When snapToSlideEdge is enabled, only keep snaps up to lastAllowedSnapIndex
33334
+ if (i <= lastAllowedSnapIndex) {
33335
+ newSlidesGrid.push(slidesGridItem);
33336
+ }
33337
+ } else if (snapGrid[i] <= swiper.virtualSize - swiperSize) {
33338
+ // When snapToSlideEdge is disabled, keep snaps that fit within scrollable area
33286
33339
  newSlidesGrid.push(slidesGridItem);
33287
33340
  }
33288
33341
  }
33289
33342
  snapGrid = newSlidesGrid;
33290
33343
  if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
33291
- snapGrid.push(swiper.virtualSize - swiperSize);
33344
+ // Only add edge-aligned snap if snapToSlideEdge is not enabled
33345
+ if (!shouldSnapToSlideEdge) {
33346
+ snapGrid.push(swiper.virtualSize - swiperSize);
33347
+ }
33292
33348
  }
33293
33349
  }
33294
33350
  if (isVirtual && params.loop) {
@@ -33340,9 +33396,8 @@
33340
33396
  allSlidesSize += slideSizeValue + (spaceBetween || 0);
33341
33397
  });
33342
33398
  allSlidesSize -= spaceBetween;
33343
- const offsetSize = (offsetBefore || 0) + (offsetAfter || 0);
33344
- if (allSlidesSize + offsetSize < swiperSize) {
33345
- const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;
33399
+ if (allSlidesSize < swiperSize) {
33400
+ const allSlidesOffset = (swiperSize - allSlidesSize) / 2;
33346
33401
  snapGrid.forEach((snap, snapIndex) => {
33347
33402
  snapGrid[snapIndex] = snap - allSlidesOffset;
33348
33403
  });
@@ -33631,12 +33686,13 @@
33631
33686
  requestAnimationFrame(() => {
33632
33687
  if (slideEl.shadowRoot) {
33633
33688
  lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
33634
- if (lazyEl) lazyEl.remove();
33689
+ if (lazyEl && !lazyEl.lazyPreloaderManaged) lazyEl.remove();
33635
33690
  }
33636
33691
  });
33637
33692
  }
33638
33693
  }
33639
- if (lazyEl) lazyEl.remove();
33694
+ // Skip removal if managed by React/Vue component
33695
+ if (lazyEl && !lazyEl.lazyPreloaderManaged) lazyEl.remove();
33640
33696
  }
33641
33697
  };
33642
33698
  const unlazy = (swiper, index) => {
@@ -33750,8 +33806,12 @@
33750
33806
 
33751
33807
  // Get real index
33752
33808
  let realIndex;
33753
- if (swiper.virtual && params.virtual.enabled && params.loop) {
33754
- realIndex = getVirtualRealIndex(activeIndex);
33809
+ if (swiper.virtual && params.virtual.enabled) {
33810
+ if (params.loop) {
33811
+ realIndex = getVirtualRealIndex(activeIndex);
33812
+ } else {
33813
+ realIndex = activeIndex;
33814
+ }
33755
33815
  } else if (gridEnabled) {
33756
33816
  const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);
33757
33817
  let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);
@@ -34841,6 +34901,7 @@
34841
34901
  }
34842
34902
  function onTouchStart(event) {
34843
34903
  const swiper = this;
34904
+ if (swiper.destroyed) return;
34844
34905
  const document = getDocument();
34845
34906
  let e = event;
34846
34907
  if (e.originalEvent) e = e.originalEvent;
@@ -34943,6 +35004,7 @@
34943
35004
  function onTouchMove(event) {
34944
35005
  const document = getDocument();
34945
35006
  const swiper = this;
35007
+ if (swiper.destroyed) return;
34946
35008
  const data = swiper.touchEventsData;
34947
35009
  const {
34948
35010
  params,
@@ -35203,6 +35265,7 @@
35203
35265
  }
35204
35266
  function onTouchEnd(event) {
35205
35267
  const swiper = this;
35268
+ if (swiper.destroyed) return;
35206
35269
  const data = swiper.touchEventsData;
35207
35270
  let e = event;
35208
35271
  if (e.originalEvent) e = e.originalEvent;
@@ -35389,7 +35452,8 @@
35389
35452
  swiper.updateSlidesClasses();
35390
35453
  const isVirtualLoop = isVirtual && params.loop;
35391
35454
  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {
35392
- swiper.slideTo(swiper.slides.length - 1, 0, false, true);
35455
+ const slides = isVirtual ? swiper.virtual.slides : swiper.slides;
35456
+ swiper.slideTo(slides.length - 1, 0, false, true);
35393
35457
  } else {
35394
35458
  if (swiper.params.loop && !isVirtual) {
35395
35459
  swiper.slideToLoop(swiper.realIndex, 0, false, true);
@@ -35414,6 +35478,7 @@
35414
35478
  }
35415
35479
  function onClick(e) {
35416
35480
  const swiper = this;
35481
+ if (swiper.destroyed) return;
35417
35482
  if (!swiper.enabled) return;
35418
35483
  if (!swiper.allowClick) {
35419
35484
  if (swiper.params.preventClicks) e.preventDefault();
@@ -35425,6 +35490,7 @@
35425
35490
  }
35426
35491
  function onScroll() {
35427
35492
  const swiper = this;
35493
+ if (swiper.destroyed) return;
35428
35494
  const {
35429
35495
  wrapperEl,
35430
35496
  rtlTranslate,
@@ -35455,6 +35521,7 @@
35455
35521
  }
35456
35522
  function onLoad(e) {
35457
35523
  const swiper = this;
35524
+ if (swiper.destroyed) return;
35458
35525
  processLazyPreloader(swiper, e.target);
35459
35526
  if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {
35460
35527
  return;
@@ -35463,6 +35530,7 @@
35463
35530
  }
35464
35531
  function onDocumentTouchStart() {
35465
35532
  const swiper = this;
35533
+ if (swiper.destroyed) return;
35466
35534
  if (swiper.documentTouchHandlerProceeded) return;
35467
35535
  swiper.documentTouchHandlerProceeded = true;
35468
35536
  if (swiper.params.touchReleaseOnEdges) {
@@ -35846,6 +35914,7 @@
35846
35914
  // in px
35847
35915
  normalizeSlideIndex: true,
35848
35916
  centerInsufficientSlides: false,
35917
+ snapToSlideEdge: false,
35849
35918
  // Disable swiper and hide navigation when container not overflow
35850
35919
  watchOverflow: true,
35851
35920
  // Round length
@@ -35999,7 +36068,11 @@
35999
36068
  swiper.eventsAnyListeners = [];
36000
36069
  swiper.modules = [...swiper.__modules__];
36001
36070
  if (params.modules && Array.isArray(params.modules)) {
36002
- swiper.modules.push(...params.modules);
36071
+ params.modules.forEach(mod => {
36072
+ if (typeof mod === 'function' && swiper.modules.indexOf(mod) < 0) {
36073
+ swiper.modules.push(mod);
36074
+ }
36075
+ });
36003
36076
  }
36004
36077
  const allModulesParams = {};
36005
36078
  swiper.modules.forEach(mod => {
@@ -36939,7 +37012,8 @@
36939
37012
  keyboard: {
36940
37013
  enabled: false,
36941
37014
  onlyInViewport: true,
36942
- pageUpDown: true
37015
+ pageUpDown: true,
37016
+ speed: undefined
36943
37017
  }
36944
37018
  });
36945
37019
  function handle(event) {
@@ -36993,18 +37067,19 @@
36993
37067
  }
36994
37068
  if (!inView) return undefined;
36995
37069
  }
37070
+ const speed = swiper.params.keyboard.speed;
36996
37071
  if (swiper.isHorizontal()) {
36997
37072
  if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {
36998
37073
  if (e.preventDefault) e.preventDefault();else e.returnValue = false;
36999
37074
  }
37000
- if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();
37001
- if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();
37075
+ if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(speed);
37076
+ if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(speed);
37002
37077
  } else {
37003
37078
  if (isPageUp || isPageDown || isArrowUp || isArrowDown) {
37004
37079
  if (e.preventDefault) e.preventDefault();else e.returnValue = false;
37005
37080
  }
37006
- if (isPageDown || isArrowDown) swiper.slideNext();
37007
- if (isPageUp || isArrowUp) swiper.slidePrev();
37081
+ if (isPageDown || isArrowDown) swiper.slideNext(speed);
37082
+ if (isPageUp || isArrowUp) swiper.slidePrev(speed);
37008
37083
  }
37009
37084
  emit('keyPress', kc);
37010
37085
  return undefined;
@@ -37645,7 +37720,8 @@
37645
37720
  }
37646
37721
 
37647
37722
  function classesToSelector(classes = '') {
37648
- return `.${classes.trim().replace(/([\.:!+\/()[\]])/g, '\\$1') // eslint-disable-line
37723
+ // Escape all CSS selector special characters
37724
+ return `.${classes.trim().replace(/([\.:!+\/()[\]#>~*^$|=,'"@{}\\])/g, '\\$1') // eslint-disable-line
37649
37725
  .replace(/ /g, '.')}`;
37650
37726
  }
37651
37727
 
@@ -39028,6 +39104,7 @@
39028
39104
  }
39029
39105
  }
39030
39106
  if (!gesture.imageEl || !gesture.imageWrapEl) return;
39107
+ gesture.maxRatio = getMaxRatio();
39031
39108
  if (swiper.params.cssMode) {
39032
39109
  swiper.wrapperEl.style.overflow = 'hidden';
39033
39110
  swiper.wrapperEl.style.touchAction = 'none';
@@ -39139,6 +39216,7 @@
39139
39216
  }
39140
39217
  }
39141
39218
  if (!gesture.imageEl || !gesture.imageWrapEl) return;
39219
+ gesture.maxRatio = getMaxRatio();
39142
39220
  if (swiper.params.cssMode) {
39143
39221
  swiper.wrapperEl.style.overflow = '';
39144
39222
  swiper.wrapperEl.style.touchAction = '';
@@ -39526,12 +39604,6 @@
39526
39604
  subEl.setAttribute('aria-roledescription', description);
39527
39605
  });
39528
39606
  }
39529
- function addElControls(el, controls) {
39530
- el = makeElementsArray(el);
39531
- el.forEach(subEl => {
39532
- subEl.setAttribute('aria-controls', controls);
39533
- });
39534
- }
39535
39607
  function addElLabel(el, label) {
39536
39608
  el = makeElementsArray(el);
39537
39609
  el.forEach(subEl => {
@@ -39559,7 +39631,7 @@
39559
39631
  function enableEl(el) {
39560
39632
  el = makeElementsArray(el);
39561
39633
  el.forEach(subEl => {
39562
- subEl.setAttribute('aria-disabled', false);
39634
+ subEl.removeAttribute('aria-disabled');
39563
39635
  });
39564
39636
  }
39565
39637
  function onEnterOrSpaceKey(e) {
@@ -39653,7 +39725,6 @@
39653
39725
  el.addEventListener('keydown', onEnterOrSpaceKey);
39654
39726
  }
39655
39727
  addElLabel(el, message);
39656
- addElControls(el, wrapperId);
39657
39728
  };
39658
39729
  const handlePointerDown = e => {
39659
39730
  if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {
@@ -39680,7 +39751,8 @@
39680
39751
  const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
39681
39752
  if (!slideEl || !swiper.slides.includes(slideEl)) return;
39682
39753
  focusTargetSlideEl = slideEl;
39683
- const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;
39754
+ const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
39755
+ const isActive = (isVirtual ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : swiper.slides.indexOf(slideEl)) === swiper.activeIndex;
39684
39756
  const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);
39685
39757
  if (isActive || isVisible) return;
39686
39758
  if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;
@@ -39693,6 +39765,8 @@
39693
39765
  if (preventFocusHandler) return;
39694
39766
  if (swiper.params.loop) {
39695
39767
  swiper.slideToLoop(swiper.getSlideIndexWhenGrid(parseInt(slideEl.getAttribute('data-swiper-slide-index'))), 0);
39768
+ } else if (isVirtual) {
39769
+ swiper.slideTo(swiper.getSlideIndexWhenGrid(parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10)), 0);
39696
39770
  } else {
39697
39771
  swiper.slideTo(swiper.getSlideIndexWhenGrid(swiper.slides.indexOf(slideEl)), 0);
39698
39772
  }
@@ -39770,7 +39844,6 @@
39770
39844
  const document = getDocument();
39771
39845
  document.addEventListener('visibilitychange', onVisibilityChange);
39772
39846
  swiper.el.addEventListener('focus', handleFocus, true);
39773
- swiper.el.addEventListener('focus', handleFocus, true);
39774
39847
  swiper.el.addEventListener('pointerdown', handlePointerDown, true);
39775
39848
  swiper.el.addEventListener('pointerup', handlePointerUp, true);
39776
39849
  };
@@ -40093,7 +40166,6 @@
40093
40166
  let isTouched;
40094
40167
  let pausedByTouch;
40095
40168
  let touchStartTimeout;
40096
- let slideChanged;
40097
40169
  let pausedByInteraction;
40098
40170
  let pausedByPointerEnter;
40099
40171
  function onTransitionEnd(e) {
@@ -40131,18 +40203,23 @@
40131
40203
  const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);
40132
40204
  return currentSlideDelay;
40133
40205
  };
40206
+ const getTotalDelay = () => {
40207
+ let totalDelay = swiper.params.autoplay.delay;
40208
+ const currentSlideDelay = getSlideDelay();
40209
+ if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0) {
40210
+ totalDelay = currentSlideDelay;
40211
+ }
40212
+ return totalDelay;
40213
+ };
40134
40214
  const run = delayForce => {
40135
40215
  if (swiper.destroyed || !swiper.autoplay.running) return;
40136
40216
  cancelAnimationFrame(raf);
40137
40217
  calcTimeLeft();
40138
- let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;
40139
- autoplayDelayTotal = swiper.params.autoplay.delay;
40140
- autoplayDelayCurrent = swiper.params.autoplay.delay;
40141
- const currentSlideDelay = getSlideDelay();
40142
- if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {
40143
- delay = currentSlideDelay;
40144
- autoplayDelayTotal = currentSlideDelay;
40145
- autoplayDelayCurrent = currentSlideDelay;
40218
+ let delay = delayForce;
40219
+ if (typeof delay === 'undefined') {
40220
+ delay = getTotalDelay();
40221
+ autoplayDelayTotal = delay;
40222
+ autoplayDelayCurrent = delay;
40146
40223
  }
40147
40224
  autoplayTimeLeft = delay;
40148
40225
  const speed = swiper.params.speed;
@@ -40214,10 +40291,6 @@
40214
40291
  };
40215
40292
  swiper.autoplay.paused = true;
40216
40293
  if (reset) {
40217
- if (slideChanged) {
40218
- autoplayTimeLeft = swiper.params.autoplay.delay;
40219
- }
40220
- slideChanged = false;
40221
40294
  proceed();
40222
40295
  return;
40223
40296
  }
@@ -40348,7 +40421,10 @@
40348
40421
  });
40349
40422
  on('slideChange', () => {
40350
40423
  if (swiper.destroyed || !swiper.autoplay.running) return;
40351
- slideChanged = true;
40424
+ if (swiper.autoplay.paused) {
40425
+ autoplayTimeLeft = getTotalDelay();
40426
+ autoplayDelayTotal = getTotalDelay();
40427
+ }
40352
40428
  });
40353
40429
  Object.assign(swiper.autoplay, {
40354
40430
  start,
@@ -40377,6 +40453,11 @@
40377
40453
  swiper.thumbs = {
40378
40454
  swiper: null
40379
40455
  };
40456
+ function isVirtualEnabled() {
40457
+ const thumbsSwiper = swiper.thumbs.swiper;
40458
+ if (!thumbsSwiper || thumbsSwiper.destroyed) return false;
40459
+ return thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled;
40460
+ }
40380
40461
  function onThumbClick() {
40381
40462
  const thumbsSwiper = swiper.thumbs.swiper;
40382
40463
  if (!thumbsSwiper || thumbsSwiper.destroyed) return;
@@ -40429,12 +40510,18 @@
40429
40510
  }
40430
40511
  swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);
40431
40512
  swiper.thumbs.swiper.on('tap', onThumbClick);
40513
+ if (isVirtualEnabled()) {
40514
+ swiper.thumbs.swiper.on('virtualUpdate', () => {
40515
+ update(false, {
40516
+ autoScroll: false
40517
+ });
40518
+ });
40519
+ }
40432
40520
  return true;
40433
40521
  }
40434
- function update(initial) {
40522
+ function update(initial, p) {
40435
40523
  const thumbsSwiper = swiper.thumbs.swiper;
40436
40524
  if (!thumbsSwiper || thumbsSwiper.destroyed) return;
40437
- const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;
40438
40525
 
40439
40526
  // Activate thumbs
40440
40527
  let thumbsToActivate = 1;
@@ -40447,7 +40534,7 @@
40447
40534
  }
40448
40535
  thumbsToActivate = Math.floor(thumbsToActivate);
40449
40536
  thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));
40450
- if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {
40537
+ if (thumbsSwiper.params.loop || isVirtualEnabled()) {
40451
40538
  for (let i = 0; i < thumbsToActivate; i += 1) {
40452
40539
  elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => {
40453
40540
  slideEl.classList.add(thumbActiveClass);
@@ -40460,6 +40547,14 @@
40460
40547
  }
40461
40548
  }
40462
40549
  }
40550
+ if (p?.autoScroll ?? true) {
40551
+ autoScroll(initial ? 0 : undefined);
40552
+ }
40553
+ }
40554
+ function autoScroll(slideSpeed) {
40555
+ const thumbsSwiper = swiper.thumbs.swiper;
40556
+ if (!thumbsSwiper || thumbsSwiper.destroyed) return;
40557
+ const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;
40463
40558
  const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;
40464
40559
  const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;
40465
40560
  if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {
@@ -40485,7 +40580,7 @@
40485
40580
  newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
40486
40581
  }
40487
40582
  } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;
40488
- thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);
40583
+ thumbsSwiper.slideTo(newThumbsIndex, slideSpeed);
40489
40584
  }
40490
40585
  }
40491
40586
  }
@@ -40822,7 +40917,7 @@
40822
40917
  slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;
40823
40918
  }
40824
40919
  if (slidesPerView !== 'auto' && fill === 'row') {
40825
- slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);
40920
+ slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, Math.floor(slidesPerView) * rows);
40826
40921
  }
40827
40922
  slidesPerRow = slidesNumberEvenToRows / rows;
40828
40923
  };
@@ -41927,15 +42022,15 @@
41927
42022
  }
41928
42023
 
41929
42024
  /**
41930
- * Swiper 12.0.3
42025
+ * Swiper 12.2.0
41931
42026
  * Most modern mobile touch slider and framework with hardware accelerated transitions
41932
42027
  * https://swiperjs.com
41933
42028
  *
41934
- * Copyright 2014-2025 Vladimir Kharlampidi
42029
+ * Copyright 2014-2026 Vladimir Kharlampidi
41935
42030
  *
41936
42031
  * Released under the MIT License
41937
42032
  *
41938
- * Released on: October 21, 2025
42033
+ * Released on: May 27, 2026
41939
42034
  */
41940
42035
 
41941
42036
 
@@ -41944,7 +42039,7 @@
41944
42039
  Swiper$1.use(modules);
41945
42040
 
41946
42041
  /* underscore in name -> watch for changes */
41947
- const paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'swiperElementNodeName', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',
42042
+ const paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'swiperElementNodeName', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_snapToSlideEdge', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',
41948
42043
  // modules
41949
42044
  'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];
41950
42045
  function isObject(o) {
@@ -42267,21 +42362,21 @@
42267
42362
  }
42268
42363
 
42269
42364
  /**
42270
- * Swiper Custom Element 12.0.3
42365
+ * Swiper Custom Element 12.2.0
42271
42366
  * Most modern mobile touch slider and framework with hardware accelerated transitions
42272
42367
  * https://swiperjs.com
42273
42368
  *
42274
- * Copyright 2014-2025 Vladimir Kharlampidi
42369
+ * Copyright 2014-2026 Vladimir Kharlampidi
42275
42370
  *
42276
42371
  * Released under the MIT License
42277
42372
  *
42278
- * Released on: October 21, 2025
42373
+ * Released on: May 27, 2026
42279
42374
  */
42280
42375
 
42281
42376
 
42282
42377
  /* eslint-disable spaced-comment */
42283
42378
 
42284
- const SwiperCSS = `:host{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;height:100%;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;width:100%;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper:after{content:"";left:0;pointer-events:none;position:absolute;top:0}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper:after{height:var(--swiper-virtual-size);width:1px}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-navigation-color,var(--swiper-theme-color));cursor:pointer;display:flex;height:var(--swiper-navigation-size);justify-content:center;position:absolute;width:var(--swiper-navigation-size);z-index:10}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{cursor:auto;opacity:0;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{height:100%;object-fit:contain;transform-origin:center;width:100%;fill:currentColor;pointer-events:none}.swiper-button-lock{display:none}.swiper-button-next,.swiper-button-prev{margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}.swiper-horizontal .swiper-button-next,.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-next,.swiper-horizontal~.swiper-button-prev{margin-left:0;margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}.swiper-horizontal .swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next,.swiper-horizontal~.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}.swiper-horizontal .swiper-button-prev .swiper-navigation-icon,.swiper-horizontal.swiper-rtl .swiper-button-next .swiper-navigation-icon,.swiper-horizontal.swiper-rtl~.swiper-button-next .swiper-navigation-icon,.swiper-horizontal~.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-horizontal.swiper-rtl .swiper-button-prev .swiper-navigation-icon,.swiper-horizontal.swiper-rtl~.swiper-button-prev .swiper-navigation-icon{transform:rotate(0deg)}.swiper-vertical .swiper-button-next,.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-next,.swiper-vertical~.swiper-button-prev{left:var(--swiper-navigation-top-offset,50%);margin-left:calc(0px - var(--swiper-navigation-size)/2);margin-top:0;right:auto}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{bottom:auto;top:var(--swiper-navigation-sides-offset,4px)}.swiper-vertical .swiper-button-prev .swiper-navigation-icon,.swiper-vertical~.swiper-button-prev .swiper-navigation-icon{transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset,4px);top:auto}.swiper-vertical .swiper-button-next .swiper-navigation-icon,.swiper-vertical~.swiper-button-next .swiper-navigation-icon{transform:rotate(90deg)}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);left:0;top:var(--swiper-pagination-top,auto);width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{background:var(--swiper-pagination-bullet-inactive-color,#000);border-radius:var(--swiper-pagination-bullet-border-radius,50%);display:inline-block;height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px))}button.swiper-pagination-bullet{appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{background:var(--swiper-pagination-color,var(--swiper-theme-color));opacity:var(--swiper-pagination-bullet-opacity,1)}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{left:var(--swiper-pagination-left,auto);right:var(--swiper-pagination-right,8px);top:50%;transform:translate3d(0,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{display:block;margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,#00000040);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0;width:100%}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{height:100%;left:0;top:0;width:var(--swiper-pagination-progressbar-size,4px)}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:var(--swiper-scrollbar-bg-color,#0000001a);border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{bottom:var(--swiper-scrollbar-bottom,4px);height:var(--swiper-scrollbar-size,4px);left:var(--swiper-scrollbar-sides-offset,1%);position:absolute;top:var(--swiper-scrollbar-top,auto);width:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);z-index:50}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{height:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);left:var(--swiper-scrollbar-left,auto);position:absolute;right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);width:var(--swiper-scrollbar-size,4px);z-index:50}.swiper-scrollbar-drag{background:var(--swiper-scrollbar-drag-bg-color,#00000080);border-radius:var(--swiper-scrollbar-border-radius,10px);height:100%;left:0;position:relative;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{left:0;opacity:0;pointer-events:none;position:absolute;top:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:0 0;visibility:hidden;width:100%;z-index:1}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{bottom:0;height:100%;left:0;opacity:.6;position:absolute;width:100%;z-index:0}.swiper-cube .swiper-cube-shadow:before{background:#000;bottom:0;content:"";filter:blur(50px);left:0;position:absolute;right:0;top:0}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){backface-visibility:hidden;pointer-events:none;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){backface-visibility:hidden;overflow:hidden;transform-origin:center bottom}`;
42379
+ const SwiperCSS = `:host{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;height:100%;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;width:100%;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-horizontal ::slotted(swiper-slide):last-child{margin-inline-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-vertical ::slotted(swiper-slide):last-child{margin-block-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper:after{content:"";left:0;pointer-events:none;position:absolute;top:0}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper:after{height:var(--swiper-virtual-size);width:1px}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-navigation-color,var(--swiper-theme-color));cursor:pointer;display:flex;height:var(--swiper-navigation-size);justify-content:center;position:absolute;width:var(--swiper-navigation-size);z-index:10}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{cursor:auto;opacity:0;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next ::slotted(svg),.swiper-button-next svg,.swiper-button-prev ::slotted(svg),.swiper-button-prev svg{height:100%;object-fit:contain;transform-origin:center;width:100%;fill:currentColor;pointer-events:none}.swiper-button-lock{display:none}.swiper-button-next,.swiper-button-prev{margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}.swiper-button-prev .swiper-navigation-icon,.swiper-button-prev ::slotted(.swiper-navigation-icon){transform:rotate(180deg)}.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}.swiper-horizontal .swiper-button-next,.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-next,.swiper-horizontal~.swiper-button-prev{margin-left:0;margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}.swiper-horizontal .swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next,.swiper-horizontal~.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}.swiper-horizontal .swiper-button-prev .swiper-navigation-icon,.swiper-horizontal .swiper-button-prev ::slotted(.swiper-navigation-icon),.swiper-horizontal.swiper-rtl .swiper-button-next .swiper-navigation-icon,.swiper-horizontal.swiper-rtl .swiper-button-next ::slotted(.swiper-navigation-icon),.swiper-horizontal.swiper-rtl~.swiper-button-next .swiper-navigation-icon,.swiper-horizontal.swiper-rtl~.swiper-button-next ::slotted(.swiper-navigation-icon),.swiper-horizontal~.swiper-button-prev .swiper-navigation-icon,.swiper-horizontal~.swiper-button-prev ::slotted(.swiper-navigation-icon){transform:rotate(180deg)}.swiper-horizontal.swiper-rtl .swiper-button-prev .swiper-navigation-icon,.swiper-horizontal.swiper-rtl .swiper-button-prev ::slotted(.swiper-navigation-icon),.swiper-horizontal.swiper-rtl~.swiper-button-prev .swiper-navigation-icon,.swiper-horizontal.swiper-rtl~.swiper-button-prev ::slotted(.swiper-navigation-icon){transform:rotate(0deg)}.swiper-vertical .swiper-button-next,.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-next,.swiper-vertical~.swiper-button-prev{left:var(--swiper-navigation-top-offset,50%);margin-left:calc(0px - var(--swiper-navigation-size)/2);margin-top:0;right:auto}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{bottom:auto;top:var(--swiper-navigation-sides-offset,4px)}.swiper-vertical .swiper-button-prev .swiper-navigation-icon,.swiper-vertical .swiper-button-prev ::slotted(.swiper-navigation-icon),.swiper-vertical~.swiper-button-prev .swiper-navigation-icon,.swiper-vertical~.swiper-button-prev ::slotted(.swiper-navigation-icon){transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset,4px);top:auto}.swiper-vertical .swiper-button-next .swiper-navigation-icon,.swiper-vertical .swiper-button-next ::slotted(.swiper-navigation-icon),.swiper-vertical~.swiper-button-next .swiper-navigation-icon,.swiper-vertical~.swiper-button-next ::slotted(.swiper-navigation-icon){transform:rotate(90deg)}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);left:0;top:var(--swiper-pagination-top,auto);width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{background:var(--swiper-pagination-bullet-inactive-color,#000);border-radius:var(--swiper-pagination-bullet-border-radius,50%);display:inline-block;height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px))}button.swiper-pagination-bullet{appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{background:var(--swiper-pagination-color,var(--swiper-theme-color));opacity:var(--swiper-pagination-bullet-opacity,1)}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{left:var(--swiper-pagination-left,auto);right:var(--swiper-pagination-right,8px);top:50%;transform:translate3d(0,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{display:block;margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,#00000040);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0;width:100%}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{height:100%;left:0;top:0;width:var(--swiper-pagination-progressbar-size,4px)}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:var(--swiper-scrollbar-bg-color,#0000001a);border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{bottom:var(--swiper-scrollbar-bottom,4px);height:var(--swiper-scrollbar-size,4px);left:var(--swiper-scrollbar-sides-offset,1%);position:absolute;top:var(--swiper-scrollbar-top,auto);width:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);z-index:50}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{height:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);left:var(--swiper-scrollbar-left,auto);position:absolute;right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);width:var(--swiper-scrollbar-size,4px);z-index:50}.swiper-scrollbar-drag{background:var(--swiper-scrollbar-drag-bg-color,#00000080);border-radius:var(--swiper-scrollbar-border-radius,10px);height:100%;left:0;position:relative;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{left:0;opacity:0;pointer-events:none;position:absolute;top:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:0 0;visibility:hidden;width:100%;z-index:1}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{bottom:0;height:100%;left:0;opacity:.6;position:absolute;width:100%;z-index:0}.swiper-cube .swiper-cube-shadow:before{background:#000;bottom:0;content:"";filter:blur(50px);left:0;position:absolute;right:0;top:0}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){backface-visibility:hidden;pointer-events:none;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){backface-visibility:hidden;overflow:hidden;transform-origin:center bottom}`;
42285
42380
  const SwiperSlideCSS = `::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}::slotted(.swiper-slide-shadow){background:#00000026}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(270deg,#00000080,#0000)}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(90deg,#00000080,#0000)}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(0deg,#00000080,#0000)}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(180deg,#00000080,#0000)}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s linear infinite;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid #0000;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){backface-visibility:hidden;z-index:0}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){backface-visibility:hidden;z-index:0}::slotted(.swiper-zoom-container){align-items:center;display:flex;height:100%;justify-content:center;text-align:center;width:100%}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-height:100%;max-width:100%;object-fit:contain}`;
42286
42381
  class DummyHTMLElement {}
42287
42382
  const ClassToExtend = typeof window === 'undefined' || typeof HTMLElement === 'undefined' ? DummyHTMLElement : HTMLElement;
@@ -42378,8 +42473,8 @@
42378
42473
  </div>
42379
42474
  <slot name="container-end"></slot>
42380
42475
  ${needsNavigation(this.passedParams) ? `
42381
- <div part="button-prev" class="swiper-button-prev"></div>
42382
- <div part="button-next" class="swiper-button-next"></div>
42476
+ <div part="button-prev" class="swiper-button-prev"><slot name="button-prev"></slot></div>
42477
+ <div part="button-next" class="swiper-button-next"><slot name="button-next"></slot></div>
42383
42478
  ` : ''}
42384
42479
  ${needsPagination(this.passedParams) ? `
42385
42480
  <div part="pagination" class="swiper-pagination"></div>