@wikicasa-dev/components 2.4.1 → 2.4.2-alpha.1

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.
Files changed (34) hide show
  1. package/dist/Swiper/Autoplay/factory.js +9 -0
  2. package/dist/Swiper/Autoplay/index.js +5 -0
  3. package/dist/Swiper/Controller/factory.js +9 -0
  4. package/dist/Swiper/Controller/index.js +5 -0
  5. package/dist/Swiper/FreeMode/factory.js +9 -0
  6. package/dist/Swiper/FreeMode/index.js +5 -0
  7. package/dist/Swiper/Keyboard/factory.js +9 -0
  8. package/dist/Swiper/Keyboard/index.js +5 -0
  9. package/dist/Swiper/Navigation/factory.js +17 -0
  10. package/dist/Swiper/Navigation/index.js +5 -0
  11. package/dist/Swiper/Pagination/factory.js +17 -0
  12. package/dist/Swiper/Pagination/index.js +5 -0
  13. package/dist/Swiper/Thumbs/factory.js +9 -0
  14. package/dist/Swiper/Thumbs/index.js +5 -0
  15. package/dist/Swiper/Zoom/factory.js +9 -0
  16. package/dist/Swiper/Zoom/index.js +5 -0
  17. package/dist/Swiper/factory.js +13 -0
  18. package/dist/Swiper/index.js +5 -0
  19. package/dist/Swiper/types.js +1 -0
  20. package/dist/assets/SwiperCarousel.css +1 -1
  21. package/dist/assets/SwiperCarousel2.css +1 -1
  22. package/dist/assets/tailwind.css +1 -1
  23. package/dist/components/carousel/SwiperCarousel.d.ts +11 -2329
  24. package/dist/components/carousel/SwiperCarousel.js +2 -2
  25. package/dist/packages/components/lib/components/carousel/SwiperCarousel.vue.js +125 -164
  26. package/package.json +1 -1
  27. package/dist/Swiper/autoplay.js +0 -5
  28. package/dist/Swiper/controller.js +0 -5
  29. package/dist/Swiper/free-mode.js +0 -5
  30. package/dist/Swiper/keyboard.js +0 -5
  31. package/dist/Swiper/navigation.js +0 -5
  32. package/dist/Swiper/pagination.js +0 -5
  33. package/dist/Swiper/thumbs.js +0 -5
  34. /package/dist/assets/{swiper-thumbs.css → swiper-keyboard.css} +0 -0
@@ -2,7 +2,7 @@ import o from "../../packages/components/lib/components/carousel/SwiperCarousel.
2
2
  import '../../assets/SwiperCarousel2.css';import '../../assets/SwiperCarousel.css';/* empty css */
3
3
  /* empty css */
4
4
  import r from "../../_virtual/_plugin-vue_export-helper.js";
5
- const m = /* @__PURE__ */ r(o, [["__scopeId", "data-v-1ea2f6ce"]]);
5
+ const a = /* @__PURE__ */ r(o, [["__scopeId", "data-v-9fbc502e"]]);
6
6
  export {
7
- m as default
7
+ a as default
8
8
  };
@@ -1,10 +1,14 @@
1
- import { defineComponent as Q, reactive as U, ref as k, useId as X, computed as f, onMounted as Y, watch as x, nextTick as V, createElementBlock as l, openBlock as u, normalizeClass as d, createElementVNode as v, createCommentVNode as $, renderSlot as M, Fragment as P, renderList as E, mergeProps as F, withModifiers as O } from "vue";
2
- import { Swiper as T } from "swiper";
3
- import { Zoom as _ } from "swiper/modules";
4
- import '../../../../../assets/swiper-zoom.css';import '../../../../../assets/swiper-swiper.css';/* empty css */
5
- /* empty css */
6
- import { shallowCopyObjectTo as ee } from "@wikicasa-dev/utilities";
7
- const te = ["id"], se = ["id", "data-cy"], ie = ["data-idx", "alt", "width", "height", "onLoad"], ae = ["id"], re = ["alt"], ce = /* @__PURE__ */ Q({
1
+ import { defineComponent as U, shallowRef as z, useTemplateRef as M, useId as X, computed as Y, onMounted as x, watch as _, nextTick as C, createElementBlock as n, openBlock as l, normalizeClass as d, createElementVNode as p, createCommentVNode as b, unref as ee, renderSlot as L, Fragment as k, renderList as V, mergeProps as R, withModifiers as O } from "vue";
2
+ import { createSwiper as T } from "../../../../../Swiper/factory.js";
3
+ import { AutoplayModule as te } from "../../../../../Swiper/Autoplay/factory.js";
4
+ import { ControllerModule as se } from "../../../../../Swiper/Controller/factory.js";
5
+ import { FreemodeModule as ie } from "../../../../../Swiper/FreeMode/factory.js";
6
+ import { KeyboardModule as re } from "../../../../../Swiper/Keyboard/factory.js";
7
+ import { NavigationModule as ae } from "../../../../../Swiper/Navigation/factory.js";
8
+ import { PaginationModule as oe } from "../../../../../Swiper/Pagination/factory.js";
9
+ import { ThumbsModule as ne } from "../../../../../Swiper/Thumbs/factory.js";
10
+ import { ZoomModule as le } from "../../../../../Swiper/Zoom/factory.js";
11
+ const de = ["data-cy"], ue = ["data-idx", "alt", "width", "height", "onLoad"], ce = ["alt"], ke = /* @__PURE__ */ U({
8
12
  inheritAttrs: !1,
9
13
  __name: "SwiperCarousel",
10
14
  props: {
@@ -18,229 +22,186 @@ const te = ["id"], se = ["id", "data-cy"], ie = ["data-idx", "alt", "width", "he
18
22
  shiftFirstImage: { type: Boolean, default: !1 }
19
23
  },
20
24
  emits: ["moved", "click", "firstSlideLoaded", "init"],
21
- setup(s, { expose: B, emit: D }) {
22
- const y = D, a = U({
23
- swiperParams: { modules: [_] },
24
- swiper: null,
25
- initCarousel: !1
26
- }), S = k(), j = k(!1), A = X(), p = f(() => s.id ?? A), N = f(() => a.swiper), g = f(() => s.swiperOptions?.slidesPerView || 1), W = f(() => !!s.swiperOptions?.keyboard), C = f(() => !!s.swiperOptions.navigation), I = f(() => !!s.swiperOptions.pagination), q = f(() => !!s.swiperOptions.autoplay), K = f(
27
- () => s.swiperOptions?.effect || "slider"
28
- ), R = () => {
29
- s.swiperOptions && ee(s.swiperOptions, a.swiperParams);
30
- }, z = (e, i = -1, t = !1) => {
25
+ setup(t, { expose: B, emit: D }) {
26
+ const g = D, u = z(null), y = M("rootRef"), A = M("thumbsRef"), F = z(!1), N = X(), $ = Y(() => t.id ?? N), w = t.swiperOptions?.slidesPerView || 1, j = !!t.swiperOptions?.keyboard, S = !!t.swiperOptions.navigation, I = !!t.swiperOptions.pagination, q = !!t.swiperOptions.autoplay, E = t.swiperOptions?.effect || "slider", P = (e, s = -1, i = !1) => {
31
27
  if (!e.images)
32
28
  return { src: e.src || "" };
33
- let r = "", o = "", b = "";
34
- if (s.artDirection) {
35
- for (const n in s.artDirection) {
36
- const { mq: w, width: c } = s.artDirection[n];
37
- c && (b += b ? `,${w} ${parseInt(c)}px` : `${w} ${parseInt(c)}px`);
29
+ let r = "", o = "", v = "";
30
+ if (t.artDirection) {
31
+ for (const a in t.artDirection) {
32
+ const { mq: c, width: f } = t.artDirection[a];
33
+ f && (v += v ? `,${c} ${parseInt(f)}px` : `${c} ${parseInt(f)}px`);
38
34
  }
39
- o = e.images.reduce((n, w, c) => {
40
- const m = Object.values(s.artDirection)[c];
41
- return !m || !m.width || (n += n ? `, ${w.storagePath} ${m.width}` : `${w.storagePath} ${m.width}`), n;
35
+ o = e.images.reduce((a, c, f) => {
36
+ const m = Object.values(t.artDirection)[f];
37
+ return !m || !m.width || (a += a ? `, ${c.storagePath} ${m.width}` : `${c.storagePath} ${m.width}`), a;
42
38
  }, ""), r = e.images[0].storagePath;
43
39
  } else {
44
- let n = e.images;
45
- e.images.length > 3 ? n = e.images.slice(2, 5) : s.shiftFirstImage && (n[0] = n[1]), o = n.reduce((w, c, m) => (m === 0 && (r = `${c.storagePath}`), m > 0 && (w += ", "), `${w}${c.storagePath} ${m + 1}x`), "");
40
+ let a = e.images;
41
+ e.images.length > 3 ? a = e.images.slice(2, 5) : t.shiftFirstImage && (a[0] = a[1]), o = a.reduce((c, f, m) => (m === 0 && (r = `${f.storagePath}`), m > 0 && (c += ", "), `${c}${f.storagePath} ${m + 1}x`), "");
46
42
  }
47
- const H = r, J = o;
48
- return typeof g.value == "number" && i > g.value ? (r = "", o = "", { sizes: b, "data-src": H, "data-srcset": J }) : t ? {
43
+ const J = r, Q = o;
44
+ return typeof w == "number" && s > w ? (r = "", o = "", { sizes: v, "data-src": J, "data-srcset": Q }) : i ? {
49
45
  src: r,
50
46
  srcset: o,
51
- sizes: b,
47
+ sizes: v,
52
48
  loading: "lazy",
53
49
  fetchpriority: "low"
54
50
  } : {
55
51
  src: r,
56
52
  srcset: o,
57
- sizes: b,
58
- loading: s.lazyLoadImages || i >= g.value ? "lazy" : void 0,
59
- fetchpriority: !s.lazyLoadImages && i === 0 ? "high" : "low"
53
+ sizes: v,
54
+ loading: t.lazyLoadImages || s >= w ? "lazy" : void 0,
55
+ fetchpriority: !t.lazyLoadImages && s === 0 ? "high" : "low"
60
56
  };
61
- }, h = [], Z = (e) => {
62
- if (typeof g.value == "string") return;
63
- const i = h[e];
64
- if (i && !i.src && (i.src = i.dataset.src || "", i.srcset = i.dataset.srcset || ""), e < g.value || e + 1 >= (s.images ?? []).length)
57
+ }, h = [], K = (e) => {
58
+ if (typeof w == "string") return;
59
+ const s = h[e];
60
+ if (s && !s.src && (s.src = s.dataset.src || "", s.srcset = s.dataset.srcset || ""), e < w || e + 1 >= (t.images ?? []).length)
65
61
  return;
66
- const t = h[e + 1];
67
- t && !t.src && (t.src = t?.dataset.src || "", t.srcset = t?.dataset.srcset || "");
68
- }, L = k(null), G = (e) => {
69
- e === 0 && h && h[e] && V(() => {
70
- L.value?.setAttribute("data-first-slide-loaded", "true"), y("firstSlideLoaded");
62
+ const i = h[e + 1];
63
+ i && !i.src && (i.src = i?.dataset.src || "", i.srcset = i?.dataset.srcset || "");
64
+ }, W = (e) => {
65
+ e || !h?.[e] || C(() => {
66
+ y.value?.setAttribute("data-first-slide-loaded", "true"), g("firstSlideLoaded");
71
67
  });
72
- };
73
- return Y(async () => {
74
- if (R(), W.value) {
75
- const { Keyboard: t } = await import("../../../../../Swiper/keyboard.js");
76
- a.swiperParams.modules?.push(t), a.swiperParams.keyboard = s.swiperOptions.keyboard;
77
- }
78
- if (I.value) {
79
- const { Pagination: t } = await import("../../../../../Swiper/pagination.js");
80
- a.swiperParams.modules?.push(t), a.swiperParams.pagination = {
81
- el: ".swiper-pagination",
82
- renderFraction: (r, o) => `<div class="uikit-rounded-xs uikit-border-w-black uikit-border uikit-border-solid uikit-px-3 uikit-bg-white uikit-pt-[3px] uikit-pb-[3px]">
83
- <span data-cy="swiper-pagination-current" class="${r}"></span>
84
- /
85
- <span data-cy="swiper-pagination-total" class="${o}"></span>
86
- </div>`,
87
- ...typeof a.swiperParams.pagination == "boolean" ? {} : a.swiperParams.pagination
88
- };
89
- }
90
- if (C.value) {
91
- const { Navigation: t } = await import("../../../../../Swiper/navigation.js");
92
- a.swiperParams.modules?.push(t);
93
- const r = {
94
- ...s.swiperOptions.navigation.nextEl ?? {
95
- nextEl: ".swiper-button-next"
96
- },
97
- ...s.swiperOptions.navigation.prevEl ?? {
98
- prevEl: ".swiper-button-prev"
99
- }
100
- };
101
- a.swiperParams.navigation = {
102
- ...typeof s.swiperOptions.navigation == "object" ? s.swiperOptions.navigation : {},
103
- ...r
104
- };
105
- }
106
- if (q.value) {
107
- const { Autoplay: t } = await import("../../../../../Swiper/autoplay.js");
108
- a.swiperParams.modules?.push(t), a.swiperParams.autoplay = s.swiperOptions.autoplay;
109
- }
110
- const e = {
111
- ...a.swiperParams,
112
- on: {
113
- init: () => {
114
- j.value = !0, y("init");
68
+ }, Z = (e) => t.thumbSwiperOptions ? T(e, t.thumbSwiperOptions, [
69
+ ie(t.thumbSwiperOptions.freeMode)
70
+ ]) : null, G = async (e, s) => {
71
+ const i = s ? await Z(s) : null;
72
+ u.value = await T(
73
+ e,
74
+ {
75
+ on: {
76
+ init: () => {
77
+ F.value = !0, g("init");
78
+ },
79
+ slideChange: (r) => {
80
+ K(r.activeIndex), g("moved", { activeIndex: r.activeIndex });
81
+ }
115
82
  },
116
- slideChange: (t) => {
117
- Z(t.activeIndex), y("moved", { activeIndex: t.activeIndex });
118
- }
119
- }
120
- };
121
- let i = null;
122
- if (s.thumbSwiperOptions) {
123
- const [t, r, o] = await Promise.all([
124
- import("../../../../../Swiper/thumbs.js"),
125
- import("../../../../../Swiper/free-mode.js"),
126
- import("../../../../../Swiper/controller.js")
127
- ]);
128
- a.swiperParams.modules?.push(t.Thumbs), a.swiperParams.modules?.push(o.Controller), i = new T(`#thumb_${p.value}`, {
129
- ...s.thumbSwiperOptions,
130
- modules: [r.FreeMode]
131
- }), e.thumbs = {
132
- swiper: i
133
- };
134
- }
135
- e.lazyPreloadPrevNext = 1, a.swiper = new T(`#${p.value}`, e), S.value?.classList.remove("uikit-hidden");
136
- }), x(
137
- () => s.images,
83
+ ...i ? { thumbs: { swiper: i } } : {},
84
+ ...t.swiperOptions
85
+ },
86
+ [
87
+ le(t.swiperOptions.zoom),
88
+ j ? re(t.swiperOptions.keyboard) : void 0,
89
+ I ? oe(t.swiperOptions.pagination) : void 0,
90
+ S ? ae(t.swiperOptions.navigation) : void 0,
91
+ q ? te(t.swiperOptions.autoplay) : void 0,
92
+ //Thumbs specific modules
93
+ i ? ne(t.swiperOptions.thumbs) : void 0,
94
+ i ? se(t.swiperOptions.controller) : void 0
95
+ ].filter(Boolean)
96
+ );
97
+ };
98
+ x(() => {
99
+ y.value && setTimeout(() => G(y.value, A.value));
100
+ });
101
+ const H = (e) => {
102
+ !u.value || u.value.params.slidesPerView === e || (u.value.params.slidesPerView = e, u.value.update());
103
+ };
104
+ return _(
105
+ () => t.images,
138
106
  () => {
139
- V(() => {
140
- a.swiper?.update();
107
+ C(() => {
108
+ u.value?.update();
141
109
  });
142
110
  }
143
111
  ), B({
144
- swiper: N,
145
- moveTo(e, i = 0, t = !0) {
146
- a.swiper?.slideTo(e, i, t);
112
+ swiper: u,
113
+ moveTo(e, s = 0, i = !0) {
114
+ u.value?.slideTo(e, s, i);
147
115
  },
148
- updateSlidesPerView: (e) => {
149
- !a.swiper || a.swiper.params.slidesPerView === e || (a.swiper.params.slidesPerView = e, a.swiper.update());
150
- }
151
- }), (e, i) => (u(), l("div", {
152
- id: `root-${p.value}`,
153
- ref_key: "root",
154
- ref: L,
116
+ updateSlidesPerView: H
117
+ }), (e, s) => (l(), n("div", {
155
118
  class: d(["swiper-carousel-root", e.$attrs["root-classes"]])
156
119
  }, [
157
- v("div", {
158
- id: p.value,
120
+ p("div", {
121
+ ref: "rootRef",
159
122
  "data-cy": e.$attrs["data-cy"],
160
- class: d(["swiper", e.$attrs["swiper-classes"]])
123
+ class: d(["swiper uikit-carousel", e.$attrs["swiper-classes"]])
161
124
  }, [
162
- v("div", {
163
- ref_key: "swiperWrapper",
164
- ref: S,
125
+ p("div", {
126
+ ref: "swiperWrapperRef",
165
127
  class: d(["swiper-wrapper", [
166
128
  e.$attrs["swiper-wrapper-classes"],
167
- K.value === "none" && "no-transition"
129
+ ee(E) === "none" && "no-transition"
168
130
  ]]),
169
- onClick: i[0] || (i[0] = (t) => y("click"))
131
+ onClick: s[0] || (s[0] = (i) => g("click"))
170
132
  }, [
171
- M(e.$slots, "default", {}, () => [
172
- (u(!0), l(P, null, E(s.images, (t, r) => (u(), l("div", {
173
- key: `swiper_${p.value}_${r}`,
133
+ L(e.$slots, "default", {}, () => [
134
+ (l(!0), n(k, null, V(t.images, (i, r) => (l(), n("div", {
135
+ key: `swiper_${$.value}_${r}`,
174
136
  class: d(["swiper-slide", e.$attrs["swiper-slide-classes"]])
175
137
  }, [
176
- v("div", {
138
+ p("div", {
177
139
  class: d(["swiper-zoom-container", e.$attrs["swiper-zoom-container-classes"]])
178
140
  }, [
179
- s.backgroundImage ? $("", !0) : (u(), l("img", F({
141
+ t.backgroundImage ? b("", !0) : (l(), n("img", R({
180
142
  key: 0,
181
143
  ref_for: !0,
182
144
  ref: (o) => {
183
145
  h.push(o);
184
146
  },
185
- class: ["disable-select", [e.$attrs["slide-img-classes"] || t.classes]],
186
- "data-idx": `${p.value}-slide-img-${r}`
187
- }, { ref_for: !0 }, z(t, r), {
188
- alt: t.alt,
147
+ class: ["disable-select", [e.$attrs["slide-img-classes"] || i.classes]],
148
+ "data-idx": `${$.value}-slide-img-${r}`
149
+ }, { ref_for: !0 }, P(i, r), {
150
+ alt: i.alt,
189
151
  itemprop: "image",
190
- width: t.width,
191
- height: t.height,
192
- onLoad: (o) => G(r)
193
- }), null, 16, ie))
152
+ width: i.width,
153
+ height: i.height,
154
+ onLoad: (o) => W(r)
155
+ }), null, 16, ue))
194
156
  ], 2)
195
157
  ], 2))), 128)),
196
- M(e.$slots, "last_slide", {}, void 0, !0)
158
+ L(e.$slots, "last_slide", {}, void 0, !0)
197
159
  ], !0)
198
160
  ], 2),
199
- I.value ? (u(), l("div", {
161
+ I ? (l(), n("div", {
200
162
  key: 0,
201
163
  class: d([e.$attrs["swiper-pagination-classes"], "swiper-pagination [&.swiper-pagination-fraction]:uikit-flex [&.swiper-pagination-fraction]:uikit-justify-center"]),
202
- onClick: i[1] || (i[1] = O(() => {
164
+ onClick: s[1] || (s[1] = O(() => {
203
165
  }, ["stop"]))
204
- }, null, 2)) : $("", !0),
205
- C.value ? (u(), l(P, { key: 1 }, [
206
- v("div", {
166
+ }, null, 2)) : b("", !0),
167
+ S ? (l(), n(k, { key: 1 }, [
168
+ p("div", {
207
169
  class: "swiper-button-prev",
208
170
  "data-cy": "swiper-button-prev",
209
- onClick: i[2] || (i[2] = O(() => {
171
+ onClick: s[2] || (s[2] = O(() => {
210
172
  }, ["stop"]))
211
173
  }),
212
- v("div", {
174
+ p("div", {
213
175
  class: "swiper-button-next",
214
176
  "data-cy": "swiper-button-next",
215
- onClick: i[3] || (i[3] = O(() => {
177
+ onClick: s[3] || (s[3] = O(() => {
216
178
  }, ["stop"]))
217
179
  })
218
- ], 64)) : $("", !0)
219
- ], 10, se),
220
- s.thumbSwiperOptions ? (u(), l("div", {
180
+ ], 64)) : b("", !0)
181
+ ], 10, de),
182
+ t.thumbSwiperOptions ? (l(), n("div", {
221
183
  key: 0,
222
- id: `thumb_${p.value}`,
223
- thumbsSlider: "",
184
+ ref: "thumbsRef",
224
185
  class: d(["swiper", e.$attrs["thumb-swiper-classes"]])
225
186
  }, [
226
- v("div", {
187
+ p("div", {
227
188
  class: d(["swiper-wrapper", e.$attrs["thumb-swiper-wrapper-classes"]])
228
189
  }, [
229
- (u(!0), l(P, null, E(s.images, (t, r) => (u(), l("div", {
230
- key: `thumb_${p.value}_${r}`,
190
+ (l(!0), n(k, null, V(t.images, (i, r) => (l(), n("div", {
191
+ key: `thumb_${$.value}_${r}`,
231
192
  class: d(["swiper-slide", e.$attrs["thumb-img-wrapper-classes"]])
232
193
  }, [
233
- v("img", F({
194
+ p("img", R({
234
195
  class: e.$attrs["thumb-img-classes"]
235
- }, { ref_for: !0 }, z(t, -1, !1), {
236
- alt: t.alt
237
- }), null, 16, re)
196
+ }, { ref_for: !0 }, P(i, -1, !1), {
197
+ alt: i.alt
198
+ }), null, 16, ce)
238
199
  ], 2))), 128))
239
200
  ], 2)
240
- ], 10, ae)) : $("", !0)
241
- ], 10, te));
201
+ ], 2)) : b("", !0)
202
+ ], 2));
242
203
  }
243
204
  });
244
205
  export {
245
- ce as default
206
+ ke as default
246
207
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wikicasa-dev/components",
3
- "version": "2.4.1",
3
+ "version": "2.4.2-alpha.1",
4
4
  "description": "Wikicasa frontend components",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,5 +0,0 @@
1
- import { Autoplay as t } from "swiper/modules";
2
- import '../assets/swiper-thumbs.css';/* empty css */
3
- export {
4
- t as Autoplay
5
- };
@@ -1,5 +0,0 @@
1
- import { Controller as e } from "swiper/modules";
2
- import '../assets/swiper-thumbs.css';/* empty css */
3
- export {
4
- e as Controller
5
- };
@@ -1,5 +0,0 @@
1
- import { FreeMode as m } from "swiper/modules";
2
- import '../assets/swiper-free-mode.css';/* empty css */
3
- export {
4
- m as FreeMode
5
- };
@@ -1,5 +0,0 @@
1
- import { Keyboard as m } from "swiper/modules";
2
- import '../assets/swiper-thumbs.css';/* empty css */
3
- export {
4
- m as Keyboard
5
- };
@@ -1,5 +0,0 @@
1
- import { Navigation as t } from "swiper/modules";
2
- import '../assets/swiper-navigation.css';/* empty css */
3
- export {
4
- t as Navigation
5
- };
@@ -1,5 +0,0 @@
1
- import { Pagination as t } from "swiper/modules";
2
- import '../assets/swiper-pagination.css';/* empty css */
3
- export {
4
- t as Pagination
5
- };
@@ -1,5 +0,0 @@
1
- import { Thumbs as p } from "swiper/modules";
2
- import '../assets/swiper-thumbs.css';/* empty css */
3
- export {
4
- p as Thumbs
5
- };