@quidgest/ui 0.16.20 → 0.16.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ui.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quidgest UI v0.16.20
2
+ * Quidgest UI v0.16.21
3
3
  * (c) 2025 Quidgest - Consultores de Gestão, S.A.
4
4
  * Released under the MIT License.
5
5
  */
@@ -985,6 +985,217 @@ $transition-duration: 0.2s !default;
985
985
  --card-width: 100%;
986
986
  }
987
987
  }
988
+ $q-carousel-height: 360px;
989
+ $q-carousel-height-md: 300px;
990
+ .q-carousel {
991
+ --q-carousel-height: #{$q-carousel-height};
992
+ position: relative;
993
+ overflow: hidden;
994
+ width: 100%;
995
+ height: var(--q-carousel-height);
996
+ border-radius: $border-radius;
997
+ background-color: $neutral-light;
998
+ outline: none;
999
+ }
1000
+ .q-carousel__track {
1001
+ display: flex;
1002
+ width: 100%;
1003
+ height: 100%;
1004
+ will-change: transform;
1005
+ }
1006
+ .q-carousel__slide {
1007
+ flex: 0 0 100%;
1008
+ width: 100%;
1009
+ height: 100%;
1010
+ position: relative;
1011
+ cursor: pointer;
1012
+ user-select: none;
1013
+ overflow: hidden;
1014
+ }
1015
+ .q-carousel__image {
1016
+ width: 100%;
1017
+ height: 100%;
1018
+ object-fit: cover;
1019
+ }
1020
+ .q-carousel__caption-global {
1021
+ position: absolute;
1022
+ bottom: 3.5rem;
1023
+ left: 50%;
1024
+ transform: translateX(-50%);
1025
+ text-align: center;
1026
+ color: white;
1027
+ z-index: 20;
1028
+ max-width: 80%;
1029
+ }
1030
+ .q-carousel__title {
1031
+ margin: 0 0 0.25rem;
1032
+ font-size: 2rem;
1033
+ font-weight: 600;
1034
+ text-shadow: 0 2px 4px rgb(0 0 0 / 50%);
1035
+ }
1036
+ .q-carousel__subtitle {
1037
+ margin: 0;
1038
+ font-size: 1.1rem;
1039
+ opacity: 0.9;
1040
+ text-shadow: 0 1px 2px rgb(0 0 0 / 50%);
1041
+ }
1042
+ .q-carousel__indicators {
1043
+ position: absolute;
1044
+ bottom: 1rem;
1045
+ left: 50%;
1046
+ transform: translateX(-50%);
1047
+ display: flex;
1048
+ gap: 0.5rem;
1049
+ margin: 0;
1050
+ padding: 0;
1051
+ list-style: none;
1052
+ z-index: 10;
1053
+ }
1054
+ .q-carousel__indicator {
1055
+ position: relative;
1056
+ width: 30px;
1057
+ height: 4px;
1058
+ border-radius: 2px;
1059
+ background-color: rgb(255 255 255 / 50%);
1060
+ cursor: pointer;
1061
+ transition: all 0.3s ease;
1062
+ overflow: hidden;
1063
+ }
1064
+ .q-carousel__indicator:hover {
1065
+ background-color: rgb(255 255 255 / 80%);
1066
+ }
1067
+ .q-carousel__indicator--active {
1068
+ background-color: white;
1069
+ box-shadow: 0 2px 8px rgb(0 0 0 / 30%);
1070
+ }
1071
+ .q-carousel__indicator--active::before {
1072
+ content: '';
1073
+ position: absolute;
1074
+ top: 0;
1075
+ left: 0;
1076
+ height: 100%;
1077
+ background-color: rgb(0 0 0 / 20%);
1078
+ width: var(--q-carousel-progress-width);
1079
+ transition: width 0.05s linear;
1080
+ will-change: width;
1081
+ }
1082
+ .q-carousel__control {
1083
+ position: absolute;
1084
+ top: 50%;
1085
+ transform: translateY(-50%);
1086
+ background: rgb(0 0 0 / 50%);
1087
+ border: none;
1088
+ border-radius: 50%;
1089
+ width: 48px;
1090
+ height: 48px;
1091
+ display: flex;
1092
+ align-items: center;
1093
+ justify-content: center;
1094
+ cursor: pointer;
1095
+ z-index: 10;
1096
+ backdrop-filter: blur(4px);
1097
+ color: white;
1098
+ }
1099
+ .q-carousel__control:hover {
1100
+ background: rgb(0 0 0 / 70%);
1101
+ }
1102
+ .q-carousel__control--prev {
1103
+ left: 1rem;
1104
+ }
1105
+ .q-carousel__control--next {
1106
+ right: 1rem;
1107
+ }
1108
+ .q-carousel__control-icon.q-icon {
1109
+ width: 24px;
1110
+ height: 24px;
1111
+ }
1112
+ .q-carousel__skeleton {
1113
+ position: relative;
1114
+ width: 100%;
1115
+ height: 100%;
1116
+ }
1117
+ .q-carousel__skeleton-caption {
1118
+ position: absolute;
1119
+ bottom: 20%;
1120
+ left: 50%;
1121
+ transform: translateX(-50%);
1122
+ display: flex;
1123
+ flex-direction: column;
1124
+ align-items: center;
1125
+ gap: 8px;
1126
+ width: 100%;
1127
+ max-width: 600px;
1128
+ }
1129
+ .q-carousel__skeleton-controls {
1130
+ position: absolute;
1131
+ top: 50%;
1132
+ left: 0;
1133
+ right: 0;
1134
+ display: flex;
1135
+ justify-content: space-between;
1136
+ padding: 0 16px;
1137
+ transform: translateY(-50%);
1138
+ }
1139
+ .q-carousel__skeleton-caption,
1140
+ .q-carousel__skeleton-controls {
1141
+ .q-skeleton-loader__bone {
1142
+ background-color: var(--q-theme-neutral);
1143
+ }
1144
+ }
1145
+ .q-carousel__empty-container {
1146
+ display: flex;
1147
+ align-items: center;
1148
+ justify-content: center;
1149
+ width: 100%;
1150
+ height: 100%;
1151
+ }
1152
+ .q-carousel__sr-only {
1153
+ position: absolute;
1154
+ width: 1px;
1155
+ height: 1px;
1156
+ padding: 0;
1157
+ margin: -1px;
1158
+ overflow: hidden;
1159
+ clip: rect(0, 0, 0, 0);
1160
+ white-space: nowrap;
1161
+ border: 0;
1162
+ }
1163
+ @media (max-width: $breakpoint-md) {
1164
+ .q-carousel {
1165
+ --q-carousel-height: #{$q-carousel-height-md};
1166
+ }
1167
+ .q-carousel__caption-global {
1168
+ bottom: 3rem;
1169
+ max-width: 90%;
1170
+ }
1171
+ .q-carousel__title {
1172
+ font-size: 1.5rem;
1173
+ }
1174
+ .q-carousel__subtitle {
1175
+ font-size: 1rem;
1176
+ }
1177
+ .q-carousel__control {
1178
+ width: 40px;
1179
+ height: 40px;
1180
+ }
1181
+ .q-carousel__control-icon svg {
1182
+ width: 16px;
1183
+ height: 16px;
1184
+ }
1185
+ .q-carousel__control--prev {
1186
+ left: 0.5rem;
1187
+ }
1188
+ .q-carousel__control--next {
1189
+ right: 0.5rem;
1190
+ }
1191
+ }
1192
+ .q-carousel:focus-visible {
1193
+ outline: $outline;
1194
+ }
1195
+ .q-carousel__control:focus-visible,
1196
+ .q-carousel__indicator:focus-visible {
1197
+ outline: $outline;
1198
+ }
988
1199
  .q-checkbox {
989
1200
  $this: &;
990
1201
  --box-size: 1.15rem;
@@ -0,0 +1,44 @@
1
+ import { DEFAULT_ICONS, DEFAULT_TEXTS } from './constants';
2
+ import { QCarouselProps, Slide } from './types';
3
+ type __VLS_Props = QCarouselProps;
4
+ type __VLS_PublicProps = {
5
+ 'currentSlide'?: number;
6
+ } & __VLS_Props;
7
+ declare function __VLS_template(): {
8
+ attrs: Partial<{}>;
9
+ slots: {
10
+ empty?(_: {}): any;
11
+ };
12
+ refs: {};
13
+ rootEl: HTMLDivElement;
14
+ };
15
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
16
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
17
+ "slide:before-change": (newId: string, oldId?: string | undefined) => any;
18
+ "slide:after-change": (newId: string, oldId?: string | undefined) => any;
19
+ "slide:click": (id: string) => any;
20
+ "update:currentSlide": (value: number) => any;
21
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
22
+ "onSlide:before-change"?: ((newId: string, oldId?: string | undefined) => any) | undefined;
23
+ "onSlide:after-change"?: ((newId: string, oldId?: string | undefined) => any) | undefined;
24
+ "onSlide:click"?: ((id: string) => any) | undefined;
25
+ "onUpdate:currentSlide"?: ((value: number) => any) | undefined;
26
+ }>, {
27
+ icons: typeof DEFAULT_ICONS;
28
+ texts: typeof DEFAULT_TEXTS;
29
+ slides: Slide[];
30
+ autoCycleInterval: number;
31
+ autoCyclePause: "hover" | "false";
32
+ ride: "carousel" | "false";
33
+ swipeThreshold: number;
34
+ wrap: boolean;
35
+ animationDuration: number;
36
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
37
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
38
+ export default _default;
39
+ type __VLS_WithTemplateSlots<T, S> = T & {
40
+ new (): {
41
+ $slots: S;
42
+ };
43
+ };
44
+ //# sourceMappingURL=QCarousel.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QCarousel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QCarousel/QCarousel.vue"],"names":[],"mappings":"AA+IA;AAueC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAS1D,OAAO,KAAK,EAAkB,cAAc,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKpE,KAAK,WAAW,GAAG,cAAc,CAAC;AAqVnC,KAAK,iBAAiB,GAAG;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WAqQT,OAAO,IAA6B;;uBAVtB,GAAG;;;;EAe9B;AA4BD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;wFASnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,355 @@
1
+ import { defineComponent as ne, mergeModels as z, useModel as re, ref as E, computed as N, watch as B, onMounted as ie, onUnmounted as ce, createElementBlock as l, openBlock as s, normalizeClass as L, createCommentVNode as a, createVNode as u, createElementVNode as q, unref as d, Fragment as p, normalizeStyle as $, renderList as Q, withModifiers as ue, renderSlot as de, toDisplayString as b, withCtx as F, mergeProps as U, nextTick as fe } from "vue";
2
+ import { DEFAULT_TEXTS as he, DEFAULT_ICONS as _e } from "./constants.js";
3
+ import { QButton as K } from "../QButton/index.js";
4
+ import { QIcon as O } from "../QIcon/index.js";
5
+ import { QSkeletonLoader as m } from "../QSkeletonLoader/index.js";
6
+ const ve = ["id"], pe = {
7
+ key: 0,
8
+ class: "q-carousel__skeleton"
9
+ }, me = { class: "q-carousel__skeleton-caption" }, ye = {
10
+ key: 0,
11
+ class: "q-carousel__skeleton-controls"
12
+ }, ge = ["onClick"], ke = ["src", "alt"], we = {
13
+ key: 1,
14
+ class: "q-carousel__empty-container"
15
+ }, Ce = {
16
+ key: 2,
17
+ class: "q-carousel__caption-global"
18
+ }, qe = {
19
+ key: 0,
20
+ class: "q-carousel__title"
21
+ }, be = {
22
+ key: 1,
23
+ class: "q-carousel__subtitle"
24
+ }, Te = {
25
+ key: 3,
26
+ class: "q-carousel__indicators"
27
+ }, Se = ["aria-label", "aria-current", "onClick"], Ie = { class: "q-carousel__sr-only" }, De = { class: "q-carousel__sr-only" }, Le = /* @__PURE__ */ ne({
28
+ __name: "QCarousel",
29
+ props: /* @__PURE__ */ z({
30
+ id: {},
31
+ class: {},
32
+ slides: { default: () => [] },
33
+ showIndicators: { type: Boolean },
34
+ showControls: { type: Boolean },
35
+ autoCycleInterval: { default: 5e3 },
36
+ autoCyclePause: { default: "hover" },
37
+ ride: { default: "carousel" },
38
+ swipeThreshold: { default: 50 },
39
+ wrap: { type: Boolean, default: !0 },
40
+ animationDuration: { default: 500 },
41
+ loading: { type: Boolean },
42
+ icons: { default: () => _e },
43
+ texts: { default: () => he }
44
+ }, {
45
+ currentSlide: { default: 0 },
46
+ currentSlideModifiers: {}
47
+ }),
48
+ emits: /* @__PURE__ */ z(["slide:before-change", "slide:after-change", "slide:click"], ["update:currentSlide"]),
49
+ setup(X, { emit: V }) {
50
+ const t = X, y = V, T = re(X, "currentSlide"), o = E(0);
51
+ let f = !1, S = !1, I = 0, D = 0;
52
+ const P = E(0), M = E(0);
53
+ let g, k;
54
+ const H = N(() => ({
55
+ transform: `translateX(-${o.value * 100}%)`,
56
+ transition: f ? `transform ${t.animationDuration}ms cubic-bezier(0.4, 0, 0.2, 1)` : "none"
57
+ })), R = N(() => ({
58
+ "--q-carousel-progress-duration": `${t.autoCycleInterval}ms`,
59
+ "--q-carousel-progress-width": `${P.value}%`
60
+ }));
61
+ function r(e) {
62
+ if (e < 0 || e >= t.slides.length || e === o.value || f) return;
63
+ const i = o.value, n = t.slides[i], v = t.slides[e];
64
+ y("slide:before-change", v.id, n == null ? void 0 : n.id), o.value = e, T.value = e, t.animationDuration > 0 ? (f = !0, setTimeout(() => {
65
+ f = !1, y("slide:after-change", v.id, n == null ? void 0 : n.id);
66
+ }, t.animationDuration)) : fe(() => {
67
+ y("slide:after-change", v.id, n == null ? void 0 : n.id);
68
+ });
69
+ }
70
+ function w() {
71
+ const e = o.value + 1;
72
+ e >= t.slides.length ? t.wrap && r(0) : r(e);
73
+ }
74
+ function A() {
75
+ const e = o.value - 1;
76
+ e < 0 ? t.wrap && r(t.slides.length - 1) : r(e);
77
+ }
78
+ function j(e) {
79
+ const i = window.getSelection();
80
+ if (i != null && i.toString().length) return;
81
+ const n = t.slides[e];
82
+ y("slide:click", n.id);
83
+ }
84
+ function G(e) {
85
+ const i = {};
86
+ return e != null && e.colorPlaceholder && (i["background-color"] = e.colorPlaceholder), i;
87
+ }
88
+ function J() {
89
+ t.autoCycleInterval && (k = window.setInterval(() => {
90
+ P.value = (Date.now() - M.value) / t.autoCycleInterval * 100;
91
+ }, 50));
92
+ }
93
+ function C() {
94
+ !t.autoCycleInterval || t.slides.length <= 1 || (_(), t.ride === "carousel" && !S && (M.value = Date.now(), J(), g = window.setTimeout(w, t.autoCycleInterval)));
95
+ }
96
+ function _() {
97
+ g && window.clearTimeout(g), k && window.clearInterval(k), g = void 0, k = void 0, M.value = 0, P.value = 0;
98
+ }
99
+ function W() {
100
+ _(), C();
101
+ }
102
+ function Y() {
103
+ t.autoCyclePause === "hover" && (S = !0, _());
104
+ }
105
+ function Z() {
106
+ t.autoCyclePause === "hover" && (S = !1, C());
107
+ }
108
+ function ee(e) {
109
+ if (!f)
110
+ switch (e.key) {
111
+ case "ArrowLeft":
112
+ e.preventDefault(), A();
113
+ break;
114
+ case "ArrowRight":
115
+ e.preventDefault(), w();
116
+ break;
117
+ case "Home":
118
+ e.preventDefault(), r(0);
119
+ break;
120
+ case "End":
121
+ e.preventDefault(), r(t.slides.length - 1);
122
+ break;
123
+ }
124
+ }
125
+ function te(e) {
126
+ f || (I = e.touches[0].clientX, _());
127
+ }
128
+ function oe(e) {
129
+ f || (D = e.touches[0].clientX);
130
+ }
131
+ function le() {
132
+ if (f) return;
133
+ const e = I - D;
134
+ Math.abs(e) > t.swipeThreshold && (e > 0 ? w() : A()), I = 0, D = 0, C();
135
+ }
136
+ function se(e) {
137
+ return t.texts.goToSlide.replace("{0}", `${e + 1}`);
138
+ }
139
+ function ae(e) {
140
+ if (e.length === 0) {
141
+ o.value = 0, T.value = 0, _();
142
+ return;
143
+ }
144
+ o.value >= e.length && r(0);
145
+ }
146
+ return B(() => t.slides, ae, { immediate: !0, deep: !0 }), B(o, W), B(T, (e) => {
147
+ e !== o.value && r(e);
148
+ }), ie(C), ce(_), (e, i) => {
149
+ var n, v, x;
150
+ return s(), l("div", {
151
+ id: t.id,
152
+ class: L(["q-carousel", t.class]),
153
+ tabindex: "0",
154
+ onMouseenter: Y,
155
+ onMouseleave: Z,
156
+ onKeydown: ee
157
+ }, [
158
+ a(" Skeleton Loader "),
159
+ e.loading ? (s(), l("div", pe, [
160
+ a(" Image placeholder "),
161
+ u(d(m), {
162
+ width: "100%",
163
+ height: "100%"
164
+ }),
165
+ a(" Overlay skeletons for text/captions "),
166
+ q("div", me, [
167
+ u(d(m), {
168
+ type: "text",
169
+ width: "40%",
170
+ height: "24px",
171
+ class: "q-carousel__skeleton-title"
172
+ }),
173
+ u(d(m), {
174
+ type: "text",
175
+ width: "60%",
176
+ height: "16px",
177
+ class: "q-carousel__skeleton-subtitle"
178
+ })
179
+ ]),
180
+ a(" Controls "),
181
+ t.showControls ? (s(), l("div", ye, [
182
+ u(d(m), {
183
+ type: "icon",
184
+ width: "40px",
185
+ height: "40px",
186
+ class: "q-carousel__skeleton-control"
187
+ }),
188
+ u(d(m), {
189
+ type: "icon",
190
+ width: "40px",
191
+ height: "40px",
192
+ class: "q-carousel__skeleton-control"
193
+ })
194
+ ])) : a("v-if", !0)
195
+ ])) : (s(), l(
196
+ p,
197
+ { key: 1 },
198
+ [
199
+ (n = e.slides) != null && n.length ? (s(), l(
200
+ p,
201
+ { key: 0 },
202
+ [
203
+ a(" Carousel Content "),
204
+ q(
205
+ "div",
206
+ {
207
+ class: "q-carousel__track",
208
+ style: $(H.value),
209
+ onTouchstart: te,
210
+ onTouchmove: oe,
211
+ onTouchend: le
212
+ },
213
+ [
214
+ (s(!0), l(
215
+ p,
216
+ null,
217
+ Q(e.slides, (h, c) => (s(), l("div", {
218
+ key: h.id,
219
+ class: L([
220
+ "q-carousel__slide",
221
+ { "q-carousel__slide--active": c === o.value }
222
+ ]),
223
+ style: $(G(h)),
224
+ onClick: ue(() => j(c), ["stop", "prevent"])
225
+ }, [
226
+ h.image ? (s(), l("img", {
227
+ key: 0,
228
+ src: h.image,
229
+ alt: h.title || `Slide ${c + 1}`,
230
+ class: "q-carousel__image",
231
+ decoding: "async",
232
+ loading: "lazy"
233
+ }, null, 8, ke)) : a("v-if", !0)
234
+ ], 14, ge))),
235
+ 128
236
+ /* KEYED_FRAGMENT */
237
+ ))
238
+ ],
239
+ 36
240
+ /* STYLE, NEED_HYDRATION */
241
+ )
242
+ ],
243
+ 64
244
+ /* STABLE_FRAGMENT */
245
+ )) : (s(), l("div", we, [
246
+ de(e.$slots, "empty")
247
+ ])),
248
+ a(" Captions (centered, above indicators) "),
249
+ e.slides[o.value] ? (s(), l("div", Ce, [
250
+ (v = e.slides[o.value]) != null && v.title ? (s(), l(
251
+ "h2",
252
+ qe,
253
+ b(e.slides[o.value].title),
254
+ 1
255
+ /* TEXT */
256
+ )) : a("v-if", !0),
257
+ (x = e.slides[o.value]) != null && x.subtitle ? (s(), l(
258
+ "p",
259
+ be,
260
+ b(e.slides[o.value].subtitle),
261
+ 1
262
+ /* TEXT */
263
+ )) : a("v-if", !0)
264
+ ])) : a("v-if", !0),
265
+ a(" Indicators "),
266
+ e.showIndicators && e.slides.length > 1 ? (s(), l("ol", Te, [
267
+ (s(!0), l(
268
+ p,
269
+ null,
270
+ Q(e.slides, (h, c) => (s(), l("li", {
271
+ key: h.id,
272
+ class: L([
273
+ "q-carousel__indicator",
274
+ { "q-carousel__indicator--active": c === o.value }
275
+ ]),
276
+ "data-testid": "carousel-indicator",
277
+ style: $(c === o.value ? R.value : {}),
278
+ "aria-label": se(c),
279
+ "aria-current": c === o.value,
280
+ onClick: () => r(c)
281
+ }, null, 14, Se))),
282
+ 128
283
+ /* KEYED_FRAGMENT */
284
+ ))
285
+ ])) : a("v-if", !0),
286
+ a(" Controls "),
287
+ e.showControls && e.slides.length > 1 ? (s(), l(
288
+ p,
289
+ { key: 4 },
290
+ [
291
+ u(d(K), {
292
+ class: "q-carousel__control q-carousel__control--prev",
293
+ "data-testid": "carousel-prev",
294
+ "aria-label": e.texts.previousText,
295
+ onClick: A
296
+ }, {
297
+ default: F(() => [
298
+ u(
299
+ d(O),
300
+ U({ class: "q-carousel__control-icon q-carousel__control-icon--prev" }, t.icons.back),
301
+ null,
302
+ 16
303
+ /* FULL_PROPS */
304
+ ),
305
+ q(
306
+ "span",
307
+ Ie,
308
+ b(e.texts.previousText),
309
+ 1
310
+ /* TEXT */
311
+ )
312
+ ]),
313
+ _: 1
314
+ /* STABLE */
315
+ }, 8, ["aria-label"]),
316
+ u(d(K), {
317
+ class: "q-carousel__control q-carousel__control--next",
318
+ "data-testid": "carousel-next",
319
+ "aria-label": e.texts.nextText,
320
+ onClick: w
321
+ }, {
322
+ default: F(() => [
323
+ u(
324
+ d(O),
325
+ U({ class: "q-carousel__control-icon q-carousel__control-icon--next" }, t.icons.forward),
326
+ null,
327
+ 16
328
+ /* FULL_PROPS */
329
+ ),
330
+ q(
331
+ "span",
332
+ De,
333
+ b(e.texts.nextText),
334
+ 1
335
+ /* TEXT */
336
+ )
337
+ ]),
338
+ _: 1
339
+ /* STABLE */
340
+ }, 8, ["aria-label"])
341
+ ],
342
+ 64
343
+ /* STABLE_FRAGMENT */
344
+ )) : a("v-if", !0)
345
+ ],
346
+ 64
347
+ /* STABLE_FRAGMENT */
348
+ ))
349
+ ], 42, ve);
350
+ };
351
+ }
352
+ });
353
+ export {
354
+ Le as default
355
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./QCarousel.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,14 @@
1
+ export declare const DEFAULT_ICONS: {
2
+ back: {
3
+ icon: string;
4
+ };
5
+ forward: {
6
+ icon: string;
7
+ };
8
+ };
9
+ export declare const DEFAULT_TEXTS: {
10
+ previousText: string;
11
+ nextText: string;
12
+ goToSlide: string;
13
+ };
14
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/components/QCarousel/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;;;;;;CAOM,CAAA;AAGhC,eAAO,MAAM,aAAa;;;;CAIQ,CAAA"}
@@ -0,0 +1,16 @@
1
+ const o = {
2
+ back: {
3
+ icon: "chevron-left"
4
+ },
5
+ forward: {
6
+ icon: "chevron-right"
7
+ }
8
+ }, e = {
9
+ previousText: "Previous",
10
+ nextText: "Next",
11
+ goToSlide: "Go to slide {0}"
12
+ };
13
+ export {
14
+ o as DEFAULT_ICONS,
15
+ e as DEFAULT_TEXTS
16
+ };