@dnax/ui 0.0.19 → 0.0.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/components/QAutocomplete.vue +64 -2
- package/components/QCol.vue +10 -11
- package/components/QGrid.vue +5 -8
- package/package.json +1 -1
- package/styles/main.css +208 -144
|
@@ -53,6 +53,8 @@ interface Props {
|
|
|
53
53
|
sheetOptions?: QAutocompleteModeOptions
|
|
54
54
|
/** Options spécifiques au mode modal */
|
|
55
55
|
modalOptions?: QAutocompleteModeOptions
|
|
56
|
+
/** En mode sheet, swipe vers le bas sur le header pour fermer */
|
|
57
|
+
swipeToClose?: boolean
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
export interface QAutocompleteModeOptions {
|
|
@@ -86,6 +88,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
86
88
|
loading: false,
|
|
87
89
|
noOptionsLabel: "No options to display",
|
|
88
90
|
mode: "inline",
|
|
91
|
+
swipeToClose: false,
|
|
89
92
|
})
|
|
90
93
|
|
|
91
94
|
const emit = defineEmits<{
|
|
@@ -157,6 +160,41 @@ const sheetTitle = computed(
|
|
|
157
160
|
() => modeOptions.value?.title ?? props.title ?? props.label ?? props.placeholder ?? "Select",
|
|
158
161
|
)
|
|
159
162
|
|
|
163
|
+
// — Swipe down pour fermer (mode sheet, opt-in swipe-to-close) —
|
|
164
|
+
const dragging = ref(false)
|
|
165
|
+
let dragStartY = 0
|
|
166
|
+
let dragDy = 0
|
|
167
|
+
const canSwipe = computed(() => props.swipeToClose && props.mode === "sheet")
|
|
168
|
+
|
|
169
|
+
const onDragStart = (e: PointerEvent) => {
|
|
170
|
+
if (!canSwipe.value) return
|
|
171
|
+
;(e.target as HTMLElement).setPointerCapture(e.pointerId)
|
|
172
|
+
dragStartY = e.clientY
|
|
173
|
+
dragDy = 0
|
|
174
|
+
dragging.value = true
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
const onDragMove = (e: PointerEvent) => {
|
|
178
|
+
if (!dragging.value) return
|
|
179
|
+
dragDy = Math.max(0, e.clientY - dragStartY)
|
|
180
|
+
if (sheetRef.value) sheetRef.value.style.transform = `translateY(${dragDy}px)`
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
const onDragEnd = () => {
|
|
184
|
+
if (!dragging.value) return
|
|
185
|
+
dragging.value = false
|
|
186
|
+
if (dragDy > 80) closePopup()
|
|
187
|
+
else if (sheetRef.value) sheetRef.value.style.transform = ""
|
|
188
|
+
dragDy = 0
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
const sheetClasses = computed(() => [
|
|
192
|
+
`q-autocomplete__sheet--${props.mode}`,
|
|
193
|
+
modeOptions.value?.class,
|
|
194
|
+
dragging.value && "q-autocomplete__sheet--dragging",
|
|
195
|
+
canSwipe.value && "q-autocomplete__sheet--swipeable",
|
|
196
|
+
])
|
|
197
|
+
|
|
160
198
|
// — Valeurs des options —
|
|
161
199
|
const getValue = (opt: any): any =>
|
|
162
200
|
typeof props.optionValue === "function" ? props.optionValue(opt) : opt?.[props.optionValue]
|
|
@@ -242,6 +280,15 @@ const onClear = () => {
|
|
|
242
280
|
emit("clear")
|
|
243
281
|
}
|
|
244
282
|
|
|
283
|
+
// Clear du champ de recherche du panneau (sheet/modal) : vide la recherche
|
|
284
|
+
// sans effacer la sélection, garde le focus dans l'input
|
|
285
|
+
const onSearchClear = () => {
|
|
286
|
+
query.value = ""
|
|
287
|
+
emit("update:inputValue", "")
|
|
288
|
+
activeIndex.value = 0
|
|
289
|
+
nextTick(() => panelInput.value?.focus())
|
|
290
|
+
}
|
|
291
|
+
|
|
245
292
|
const isSelected = (opt: any) => getValue(opt) === props.modelValue
|
|
246
293
|
|
|
247
294
|
// À la perte de focus : si le texte saisi ne correspond exactement à aucune
|
|
@@ -428,13 +475,19 @@ watch(open, (v) => {
|
|
|
428
475
|
<div
|
|
429
476
|
ref="sheetRef"
|
|
430
477
|
class="q-autocomplete__sheet"
|
|
431
|
-
:class="
|
|
478
|
+
:class="sheetClasses"
|
|
432
479
|
:style="[sheetStyle, modeOptions?.style]"
|
|
433
480
|
role="dialog"
|
|
434
481
|
aria-modal="true"
|
|
435
482
|
:aria-label="sheetTitle"
|
|
436
483
|
>
|
|
437
|
-
<div
|
|
484
|
+
<div
|
|
485
|
+
class="q-autocomplete__sheet-header"
|
|
486
|
+
@pointerdown="onDragStart"
|
|
487
|
+
@pointermove="onDragMove"
|
|
488
|
+
@pointerup="onDragEnd"
|
|
489
|
+
@pointercancel="onDragEnd"
|
|
490
|
+
>
|
|
438
491
|
<span class="q-autocomplete__sheet-title">{{ sheetTitle }}</span>
|
|
439
492
|
<button
|
|
440
493
|
type="button"
|
|
@@ -458,6 +511,15 @@ watch(open, (v) => {
|
|
|
458
511
|
@input="onInput"
|
|
459
512
|
@keydown="onKeydown"
|
|
460
513
|
/>
|
|
514
|
+
<button
|
|
515
|
+
v-if="query !== ''"
|
|
516
|
+
type="button"
|
|
517
|
+
class="q-autocomplete__search-clear"
|
|
518
|
+
aria-label="Effacer la recherche"
|
|
519
|
+
@mousedown.prevent="onSearchClear"
|
|
520
|
+
>
|
|
521
|
+
<Icon :icon="icons.x" aria-hidden="true" />
|
|
522
|
+
</button>
|
|
461
523
|
</div>
|
|
462
524
|
<div
|
|
463
525
|
ref="popupRef"
|
package/components/QCol.vue
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// QCol — cellule de la grille : <q-col :span="6" :span-md="4" :offset="1">
|
|
3
3
|
// Responsive : span-sm/md/lg/xl et offset-* écrasent la valeur de base au breakpoint.
|
|
4
4
|
import { computed } from "vue"
|
|
5
|
-
import { useGridBreakpoints } from "../lib/breakpoints"
|
|
6
5
|
|
|
7
6
|
type ColSpan = number | "auto"
|
|
8
7
|
|
|
@@ -27,19 +26,19 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
27
26
|
alignSelf: "stretch",
|
|
28
27
|
})
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
// Les classes responsive (span-md-*…) sont TOUJOURS posées — ce sont les
|
|
30
|
+
// @media (min-width) du CSS qui les activent au bon breakpoint (pas de JS).
|
|
32
31
|
const classes = computed(() => ({
|
|
33
32
|
...(props.span !== "auto" ? { [`q-col--span-${props.span}`]: true } : {}),
|
|
34
33
|
...(props.offset ? { [`q-col--offset-${props.offset}`]: true } : {}),
|
|
35
|
-
...(
|
|
36
|
-
...(
|
|
37
|
-
...(
|
|
38
|
-
...(
|
|
39
|
-
...(
|
|
40
|
-
...(
|
|
41
|
-
...(
|
|
42
|
-
...(
|
|
34
|
+
...(props.spanSm !== undefined && props.spanSm !== "auto" ? { [`q-col--span-sm-${props.spanSm}`]: true } : {}),
|
|
35
|
+
...(props.offsetSm ? { [`q-col--offset-sm-${props.offsetSm}`]: true } : {}),
|
|
36
|
+
...(props.spanMd !== undefined && props.spanMd !== "auto" ? { [`q-col--span-md-${props.spanMd}`]: true } : {}),
|
|
37
|
+
...(props.offsetMd ? { [`q-col--offset-md-${props.offsetMd}`]: true } : {}),
|
|
38
|
+
...(props.spanLg !== undefined && props.spanLg !== "auto" ? { [`q-col--span-lg-${props.spanLg}`]: true } : {}),
|
|
39
|
+
...(props.offsetLg ? { [`q-col--offset-lg-${props.offsetLg}`]: true } : {}),
|
|
40
|
+
...(props.spanXl !== undefined && props.spanXl !== "auto" ? { [`q-col--span-xl-${props.spanXl}`]: true } : {}),
|
|
41
|
+
...(props.offsetXl ? { [`q-col--offset-xl-${props.offsetXl}`]: true } : {}),
|
|
43
42
|
}))
|
|
44
43
|
|
|
45
44
|
const style = computed(() => (props.alignSelf !== "stretch" ? { alignSelf: props.alignSelf } : undefined))
|
package/components/QGrid.vue
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
// Mode cellules (Vant) : activé par `column-num` → <q-grid-item> enfants
|
|
5
5
|
// (icône + texte), ex. menu d'app : <q-grid :column-num="4" gutter="8" clickable>
|
|
6
6
|
import { computed } from "vue"
|
|
7
|
-
import { useGridBreakpoints } from "../lib/breakpoints"
|
|
8
7
|
|
|
9
8
|
interface Props {
|
|
10
9
|
/** Nombre de colonnes du layout (défaut : 12) */
|
|
@@ -60,8 +59,6 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
60
59
|
iconColor: "",
|
|
61
60
|
})
|
|
62
61
|
|
|
63
|
-
const bp = useGridBreakpoints()
|
|
64
|
-
|
|
65
62
|
const px = (v: string | number | undefined) =>
|
|
66
63
|
v === undefined ? undefined : typeof v === "number" ? `${v}px` : v
|
|
67
64
|
|
|
@@ -84,12 +81,12 @@ const style = computed<Record<string, string>>(() => {
|
|
|
84
81
|
s.alignItems = props.align
|
|
85
82
|
return s
|
|
86
83
|
})
|
|
87
|
-
|
|
84
|
+
// Classes cols responsive TOUJOURS posées — activées par les @media CSS
|
|
88
85
|
const classes = computed(() => ({
|
|
89
|
-
...(
|
|
90
|
-
...(
|
|
91
|
-
...(
|
|
92
|
-
...(
|
|
86
|
+
...(props.colsSm ? { [`q-grid--cols-sm-${props.colsSm}`]: true } : {}),
|
|
87
|
+
...(props.colsMd ? { [`q-grid--cols-md-${props.colsMd}`]: true } : {}),
|
|
88
|
+
...(props.colsLg ? { [`q-grid--cols-lg-${props.colsLg}`]: true } : {}),
|
|
89
|
+
...(props.colsXl ? { [`q-grid--cols-xl-${props.colsXl}`]: true } : {}),
|
|
93
90
|
"q-grid--cell": isCellMode.value,
|
|
94
91
|
"q-grid--border": isCellMode.value && props.border,
|
|
95
92
|
"q-grid--square": isCellMode.value && props.square,
|
package/package.json
CHANGED
package/styles/main.css
CHANGED
|
@@ -850,6 +850,9 @@ html.dark body {
|
|
|
850
850
|
text-transform: uppercase;
|
|
851
851
|
cursor: pointer;
|
|
852
852
|
user-select: none;
|
|
853
|
+
/* Supprime le délai double-tap/zoom d'iOS qui « avalait » le premier tap
|
|
854
|
+
→ la couleur active et la sélection se font dès le premier clic. */
|
|
855
|
+
touch-action: manipulation;
|
|
853
856
|
transition:
|
|
854
857
|
color 0.2s ease,
|
|
855
858
|
background-color 0.2s ease,
|
|
@@ -857,9 +860,13 @@ html.dark body {
|
|
|
857
860
|
transform 0.15s ease;
|
|
858
861
|
}
|
|
859
862
|
|
|
860
|
-
/* appui au clic : léger aplatissement (prop animated)
|
|
861
|
-
|
|
862
|
-
|
|
863
|
+
/* appui au clic : léger aplatissement (prop animated) — scopé aux devices avec
|
|
864
|
+
souris : sur mobile le scale peut faire sortir le point du doigt de l'élément
|
|
865
|
+
au relâchement et ANNULER le clic (second tap requis). */
|
|
866
|
+
@media (hover: hover) and (pointer: fine) {
|
|
867
|
+
.q-tabs--animated .q-tab:active:not(:disabled) {
|
|
868
|
+
transform: scale(0.94);
|
|
869
|
+
}
|
|
863
870
|
}
|
|
864
871
|
|
|
865
872
|
/* pop du tab actif (overshoot) — spring (défaut) et elastic */
|
|
@@ -3459,6 +3466,22 @@ html.dark body {
|
|
|
3459
3466
|
color: inherit;
|
|
3460
3467
|
border-radius: var(--q-radius);
|
|
3461
3468
|
box-shadow: 0 12px 40px rgb(0 0 0 / 0.3);
|
|
3469
|
+
transition: transform 0.25s ease;
|
|
3470
|
+
}
|
|
3471
|
+
|
|
3472
|
+
/* pendant le swipe : suivi direct, sans transition ni snap */
|
|
3473
|
+
.q-autocomplete__sheet--dragging {
|
|
3474
|
+
transition: none;
|
|
3475
|
+
}
|
|
3476
|
+
|
|
3477
|
+
/* le header est la zone qui attrape le swipe (cursor grab) — seulement si
|
|
3478
|
+
swipe-to-close est actif (classe --swipeable) */
|
|
3479
|
+
.q-autocomplete__sheet--swipeable .q-autocomplete__sheet-header {
|
|
3480
|
+
cursor: grab;
|
|
3481
|
+
touch-action: none;
|
|
3482
|
+
}
|
|
3483
|
+
.q-autocomplete__sheet--dragging .q-autocomplete__sheet-header {
|
|
3484
|
+
cursor: grabbing;
|
|
3462
3485
|
}
|
|
3463
3486
|
.q-autocomplete__overlay--modal .q-autocomplete__sheet {
|
|
3464
3487
|
max-width: 480px;
|
|
@@ -3548,6 +3571,27 @@ html.dark body {
|
|
|
3548
3571
|
.q-autocomplete__search-input::placeholder {
|
|
3549
3572
|
color: rgb(0 0 0 / 0.45);
|
|
3550
3573
|
}
|
|
3574
|
+
.q-autocomplete__search-clear {
|
|
3575
|
+
display: inline-flex;
|
|
3576
|
+
align-items: center;
|
|
3577
|
+
justify-content: center;
|
|
3578
|
+
width: 20px;
|
|
3579
|
+
height: 20px;
|
|
3580
|
+
padding: 0;
|
|
3581
|
+
border: none;
|
|
3582
|
+
border-radius: 50%;
|
|
3583
|
+
background: rgb(0 0 0 / 0.15);
|
|
3584
|
+
color: inherit;
|
|
3585
|
+
cursor: pointer;
|
|
3586
|
+
flex-shrink: 0;
|
|
3587
|
+
}
|
|
3588
|
+
.q-autocomplete__search-clear:hover {
|
|
3589
|
+
background: rgb(0 0 0 / 0.25);
|
|
3590
|
+
}
|
|
3591
|
+
.q-autocomplete__search-clear svg {
|
|
3592
|
+
width: 12px;
|
|
3593
|
+
height: 12px;
|
|
3594
|
+
}
|
|
3551
3595
|
.q-autocomplete__sheet-list {
|
|
3552
3596
|
overflow-y: auto;
|
|
3553
3597
|
padding: 6px;
|
|
@@ -7476,7 +7520,11 @@ html.dark body {
|
|
|
7476
7520
|
}
|
|
7477
7521
|
.q-col {
|
|
7478
7522
|
min-width: 0;
|
|
7479
|
-
|
|
7523
|
+
/* Placement auto par défaut : fallback -1 → calc(0) = 0 → valeur INVALIDE
|
|
7524
|
+
pour grid-column-start → la propriété retombe sur auto et l'item est
|
|
7525
|
+
auto-placé (sinon TOUS les q-col démarreraient en colonne 1 et se
|
|
7526
|
+
superposeraient — une seule colonne visible). */
|
|
7527
|
+
grid-column-start: calc(var(--q-col-offset, -1) + 1);
|
|
7480
7528
|
grid-column-end: span var(--q-col-span, 1);
|
|
7481
7529
|
}
|
|
7482
7530
|
.q-col--span-1 { --q-col-span: 1; }
|
|
@@ -7502,146 +7550,162 @@ html.dark body {
|
|
|
7502
7550
|
.q-col--offset-9 { --q-col-offset: 9; }
|
|
7503
7551
|
.q-col--offset-10 { --q-col-offset: 10; }
|
|
7504
7552
|
.q-col--offset-11 { --q-col-offset: 11; }
|
|
7505
|
-
|
|
7506
|
-
|
|
7507
|
-
|
|
7508
|
-
.q-col--span-sm-
|
|
7509
|
-
.q-col--span-sm-
|
|
7510
|
-
.q-col--span-sm-
|
|
7511
|
-
.q-col--span-sm-
|
|
7512
|
-
.q-col--span-sm-
|
|
7513
|
-
.q-col--span-sm-
|
|
7514
|
-
.q-col--span-sm-
|
|
7515
|
-
.q-col--span-sm-
|
|
7516
|
-
.q-col--span-sm-
|
|
7517
|
-
.q-col--
|
|
7518
|
-
.q-col--
|
|
7519
|
-
.q-col--
|
|
7520
|
-
.q-col--offset-sm-
|
|
7521
|
-
.q-col--offset-sm-
|
|
7522
|
-
.q-col--offset-sm-
|
|
7523
|
-
.q-col--offset-sm-
|
|
7524
|
-
.q-col--offset-sm-
|
|
7525
|
-
.q-col--offset-sm-
|
|
7526
|
-
.q-col--offset-sm-
|
|
7527
|
-
.q-col--offset-sm-
|
|
7528
|
-
.q-
|
|
7529
|
-
.q-
|
|
7530
|
-
.q-
|
|
7531
|
-
.q-grid--cols-sm-
|
|
7532
|
-
.q-grid--cols-sm-
|
|
7533
|
-
.q-grid--cols-sm-
|
|
7534
|
-
.q-grid--cols-sm-
|
|
7535
|
-
.q-grid--cols-sm-
|
|
7536
|
-
.q-grid--cols-sm-
|
|
7537
|
-
.q-grid--cols-sm-
|
|
7538
|
-
.q-grid--cols-sm-
|
|
7539
|
-
.q-grid--cols-sm-
|
|
7540
|
-
.q-
|
|
7541
|
-
.q-
|
|
7542
|
-
.q-
|
|
7543
|
-
|
|
7544
|
-
|
|
7545
|
-
|
|
7546
|
-
|
|
7547
|
-
.q-col--span-md-
|
|
7548
|
-
.q-col--span-md-
|
|
7549
|
-
.q-col--span-md-
|
|
7550
|
-
.q-col--span-md-
|
|
7551
|
-
.q-col--span-md-
|
|
7552
|
-
.q-col--
|
|
7553
|
-
.q-col--
|
|
7554
|
-
.q-col--
|
|
7555
|
-
.q-col--
|
|
7556
|
-
.q-col--
|
|
7557
|
-
.q-col--
|
|
7558
|
-
.q-col--
|
|
7559
|
-
.q-col--offset-md-
|
|
7560
|
-
.q-col--offset-md-
|
|
7561
|
-
.q-col--offset-md-
|
|
7562
|
-
.q-col--offset-md-
|
|
7563
|
-
.q-
|
|
7564
|
-
.q-
|
|
7565
|
-
.q-
|
|
7566
|
-
.q-
|
|
7567
|
-
.q-
|
|
7568
|
-
.q-
|
|
7569
|
-
.q-
|
|
7570
|
-
.q-grid--cols-md-
|
|
7571
|
-
.q-grid--cols-md-
|
|
7572
|
-
.q-grid--cols-md-
|
|
7573
|
-
.q-grid--cols-md-
|
|
7574
|
-
.q-grid--cols-md-
|
|
7575
|
-
.q-
|
|
7576
|
-
.q-
|
|
7577
|
-
.q-
|
|
7578
|
-
.q-
|
|
7579
|
-
.q-
|
|
7580
|
-
.q-
|
|
7581
|
-
.q-
|
|
7582
|
-
|
|
7583
|
-
|
|
7584
|
-
|
|
7585
|
-
|
|
7586
|
-
.q-col--span-lg-
|
|
7587
|
-
.q-col--
|
|
7588
|
-
.q-col--
|
|
7589
|
-
.q-col--
|
|
7590
|
-
.q-col--
|
|
7591
|
-
.q-col--
|
|
7592
|
-
.q-col--
|
|
7593
|
-
.q-col--
|
|
7594
|
-
.q-col--
|
|
7595
|
-
.q-col--
|
|
7596
|
-
.q-col--
|
|
7597
|
-
.q-col--
|
|
7598
|
-
.q-
|
|
7599
|
-
.q-
|
|
7600
|
-
.q-
|
|
7601
|
-
.q-
|
|
7602
|
-
.q-
|
|
7603
|
-
.q-
|
|
7604
|
-
.q-
|
|
7605
|
-
.q-
|
|
7606
|
-
.q-
|
|
7607
|
-
.q-
|
|
7608
|
-
.q-
|
|
7609
|
-
.q-grid--cols-lg-
|
|
7610
|
-
.q-
|
|
7611
|
-
.q-
|
|
7612
|
-
.q-
|
|
7613
|
-
.q-
|
|
7614
|
-
.q-
|
|
7615
|
-
.q-
|
|
7616
|
-
.q-
|
|
7617
|
-
.q-
|
|
7618
|
-
.q-
|
|
7619
|
-
.q-
|
|
7620
|
-
.q-
|
|
7621
|
-
|
|
7622
|
-
|
|
7623
|
-
|
|
7624
|
-
|
|
7625
|
-
.q-col--
|
|
7626
|
-
.q-col--
|
|
7627
|
-
.q-col--
|
|
7628
|
-
.q-col--
|
|
7629
|
-
.q-col--
|
|
7630
|
-
.q-col--
|
|
7631
|
-
.q-col--
|
|
7632
|
-
.q-col--
|
|
7633
|
-
.q-
|
|
7634
|
-
.q-
|
|
7635
|
-
.q-
|
|
7636
|
-
.q-
|
|
7637
|
-
.q-
|
|
7638
|
-
.q-
|
|
7639
|
-
.q-
|
|
7640
|
-
.q-
|
|
7641
|
-
.q-
|
|
7642
|
-
.q-
|
|
7643
|
-
.q-
|
|
7644
|
-
.q-
|
|
7553
|
+
|
|
7554
|
+
/* breakpoint sm : >= 600px */
|
|
7555
|
+
@media (min-width: 600px) {
|
|
7556
|
+
.q-col--span-sm-1 { --q-col-span: 1; }
|
|
7557
|
+
.q-col--span-sm-2 { --q-col-span: 2; }
|
|
7558
|
+
.q-col--span-sm-3 { --q-col-span: 3; }
|
|
7559
|
+
.q-col--span-sm-4 { --q-col-span: 4; }
|
|
7560
|
+
.q-col--span-sm-5 { --q-col-span: 5; }
|
|
7561
|
+
.q-col--span-sm-6 { --q-col-span: 6; }
|
|
7562
|
+
.q-col--span-sm-7 { --q-col-span: 7; }
|
|
7563
|
+
.q-col--span-sm-8 { --q-col-span: 8; }
|
|
7564
|
+
.q-col--span-sm-9 { --q-col-span: 9; }
|
|
7565
|
+
.q-col--span-sm-10 { --q-col-span: 10; }
|
|
7566
|
+
.q-col--span-sm-11 { --q-col-span: 11; }
|
|
7567
|
+
.q-col--span-sm-12 { --q-col-span: 12; }
|
|
7568
|
+
.q-col--offset-sm-1 { --q-col-offset: 1; }
|
|
7569
|
+
.q-col--offset-sm-2 { --q-col-offset: 2; }
|
|
7570
|
+
.q-col--offset-sm-3 { --q-col-offset: 3; }
|
|
7571
|
+
.q-col--offset-sm-4 { --q-col-offset: 4; }
|
|
7572
|
+
.q-col--offset-sm-5 { --q-col-offset: 5; }
|
|
7573
|
+
.q-col--offset-sm-6 { --q-col-offset: 6; }
|
|
7574
|
+
.q-col--offset-sm-7 { --q-col-offset: 7; }
|
|
7575
|
+
.q-col--offset-sm-8 { --q-col-offset: 8; }
|
|
7576
|
+
.q-col--offset-sm-9 { --q-col-offset: 9; }
|
|
7577
|
+
.q-col--offset-sm-10 { --q-col-offset: 10; }
|
|
7578
|
+
.q-col--offset-sm-11 { --q-col-offset: 11; }
|
|
7579
|
+
.q-grid--cols-sm-1 { --q-grid-cols: 1; }
|
|
7580
|
+
.q-grid--cols-sm-2 { --q-grid-cols: 2; }
|
|
7581
|
+
.q-grid--cols-sm-3 { --q-grid-cols: 3; }
|
|
7582
|
+
.q-grid--cols-sm-4 { --q-grid-cols: 4; }
|
|
7583
|
+
.q-grid--cols-sm-5 { --q-grid-cols: 5; }
|
|
7584
|
+
.q-grid--cols-sm-6 { --q-grid-cols: 6; }
|
|
7585
|
+
.q-grid--cols-sm-7 { --q-grid-cols: 7; }
|
|
7586
|
+
.q-grid--cols-sm-8 { --q-grid-cols: 8; }
|
|
7587
|
+
.q-grid--cols-sm-9 { --q-grid-cols: 9; }
|
|
7588
|
+
.q-grid--cols-sm-10 { --q-grid-cols: 10; }
|
|
7589
|
+
.q-grid--cols-sm-11 { --q-grid-cols: 11; }
|
|
7590
|
+
.q-grid--cols-sm-12 { --q-grid-cols: 12; }
|
|
7591
|
+
}
|
|
7592
|
+
|
|
7593
|
+
/* breakpoint md : >= 1024px */
|
|
7594
|
+
@media (min-width: 1024px) {
|
|
7595
|
+
.q-col--span-md-1 { --q-col-span: 1; }
|
|
7596
|
+
.q-col--span-md-2 { --q-col-span: 2; }
|
|
7597
|
+
.q-col--span-md-3 { --q-col-span: 3; }
|
|
7598
|
+
.q-col--span-md-4 { --q-col-span: 4; }
|
|
7599
|
+
.q-col--span-md-5 { --q-col-span: 5; }
|
|
7600
|
+
.q-col--span-md-6 { --q-col-span: 6; }
|
|
7601
|
+
.q-col--span-md-7 { --q-col-span: 7; }
|
|
7602
|
+
.q-col--span-md-8 { --q-col-span: 8; }
|
|
7603
|
+
.q-col--span-md-9 { --q-col-span: 9; }
|
|
7604
|
+
.q-col--span-md-10 { --q-col-span: 10; }
|
|
7605
|
+
.q-col--span-md-11 { --q-col-span: 11; }
|
|
7606
|
+
.q-col--span-md-12 { --q-col-span: 12; }
|
|
7607
|
+
.q-col--offset-md-1 { --q-col-offset: 1; }
|
|
7608
|
+
.q-col--offset-md-2 { --q-col-offset: 2; }
|
|
7609
|
+
.q-col--offset-md-3 { --q-col-offset: 3; }
|
|
7610
|
+
.q-col--offset-md-4 { --q-col-offset: 4; }
|
|
7611
|
+
.q-col--offset-md-5 { --q-col-offset: 5; }
|
|
7612
|
+
.q-col--offset-md-6 { --q-col-offset: 6; }
|
|
7613
|
+
.q-col--offset-md-7 { --q-col-offset: 7; }
|
|
7614
|
+
.q-col--offset-md-8 { --q-col-offset: 8; }
|
|
7615
|
+
.q-col--offset-md-9 { --q-col-offset: 9; }
|
|
7616
|
+
.q-col--offset-md-10 { --q-col-offset: 10; }
|
|
7617
|
+
.q-col--offset-md-11 { --q-col-offset: 11; }
|
|
7618
|
+
.q-grid--cols-md-1 { --q-grid-cols: 1; }
|
|
7619
|
+
.q-grid--cols-md-2 { --q-grid-cols: 2; }
|
|
7620
|
+
.q-grid--cols-md-3 { --q-grid-cols: 3; }
|
|
7621
|
+
.q-grid--cols-md-4 { --q-grid-cols: 4; }
|
|
7622
|
+
.q-grid--cols-md-5 { --q-grid-cols: 5; }
|
|
7623
|
+
.q-grid--cols-md-6 { --q-grid-cols: 6; }
|
|
7624
|
+
.q-grid--cols-md-7 { --q-grid-cols: 7; }
|
|
7625
|
+
.q-grid--cols-md-8 { --q-grid-cols: 8; }
|
|
7626
|
+
.q-grid--cols-md-9 { --q-grid-cols: 9; }
|
|
7627
|
+
.q-grid--cols-md-10 { --q-grid-cols: 10; }
|
|
7628
|
+
.q-grid--cols-md-11 { --q-grid-cols: 11; }
|
|
7629
|
+
.q-grid--cols-md-12 { --q-grid-cols: 12; }
|
|
7630
|
+
}
|
|
7631
|
+
|
|
7632
|
+
/* breakpoint lg : >= 1440px */
|
|
7633
|
+
@media (min-width: 1440px) {
|
|
7634
|
+
.q-col--span-lg-1 { --q-col-span: 1; }
|
|
7635
|
+
.q-col--span-lg-2 { --q-col-span: 2; }
|
|
7636
|
+
.q-col--span-lg-3 { --q-col-span: 3; }
|
|
7637
|
+
.q-col--span-lg-4 { --q-col-span: 4; }
|
|
7638
|
+
.q-col--span-lg-5 { --q-col-span: 5; }
|
|
7639
|
+
.q-col--span-lg-6 { --q-col-span: 6; }
|
|
7640
|
+
.q-col--span-lg-7 { --q-col-span: 7; }
|
|
7641
|
+
.q-col--span-lg-8 { --q-col-span: 8; }
|
|
7642
|
+
.q-col--span-lg-9 { --q-col-span: 9; }
|
|
7643
|
+
.q-col--span-lg-10 { --q-col-span: 10; }
|
|
7644
|
+
.q-col--span-lg-11 { --q-col-span: 11; }
|
|
7645
|
+
.q-col--span-lg-12 { --q-col-span: 12; }
|
|
7646
|
+
.q-col--offset-lg-1 { --q-col-offset: 1; }
|
|
7647
|
+
.q-col--offset-lg-2 { --q-col-offset: 2; }
|
|
7648
|
+
.q-col--offset-lg-3 { --q-col-offset: 3; }
|
|
7649
|
+
.q-col--offset-lg-4 { --q-col-offset: 4; }
|
|
7650
|
+
.q-col--offset-lg-5 { --q-col-offset: 5; }
|
|
7651
|
+
.q-col--offset-lg-6 { --q-col-offset: 6; }
|
|
7652
|
+
.q-col--offset-lg-7 { --q-col-offset: 7; }
|
|
7653
|
+
.q-col--offset-lg-8 { --q-col-offset: 8; }
|
|
7654
|
+
.q-col--offset-lg-9 { --q-col-offset: 9; }
|
|
7655
|
+
.q-col--offset-lg-10 { --q-col-offset: 10; }
|
|
7656
|
+
.q-col--offset-lg-11 { --q-col-offset: 11; }
|
|
7657
|
+
.q-grid--cols-lg-1 { --q-grid-cols: 1; }
|
|
7658
|
+
.q-grid--cols-lg-2 { --q-grid-cols: 2; }
|
|
7659
|
+
.q-grid--cols-lg-3 { --q-grid-cols: 3; }
|
|
7660
|
+
.q-grid--cols-lg-4 { --q-grid-cols: 4; }
|
|
7661
|
+
.q-grid--cols-lg-5 { --q-grid-cols: 5; }
|
|
7662
|
+
.q-grid--cols-lg-6 { --q-grid-cols: 6; }
|
|
7663
|
+
.q-grid--cols-lg-7 { --q-grid-cols: 7; }
|
|
7664
|
+
.q-grid--cols-lg-8 { --q-grid-cols: 8; }
|
|
7665
|
+
.q-grid--cols-lg-9 { --q-grid-cols: 9; }
|
|
7666
|
+
.q-grid--cols-lg-10 { --q-grid-cols: 10; }
|
|
7667
|
+
.q-grid--cols-lg-11 { --q-grid-cols: 11; }
|
|
7668
|
+
.q-grid--cols-lg-12 { --q-grid-cols: 12; }
|
|
7669
|
+
}
|
|
7670
|
+
|
|
7671
|
+
/* breakpoint xl : >= 1920px */
|
|
7672
|
+
@media (min-width: 1920px) {
|
|
7673
|
+
.q-col--span-xl-1 { --q-col-span: 1; }
|
|
7674
|
+
.q-col--span-xl-2 { --q-col-span: 2; }
|
|
7675
|
+
.q-col--span-xl-3 { --q-col-span: 3; }
|
|
7676
|
+
.q-col--span-xl-4 { --q-col-span: 4; }
|
|
7677
|
+
.q-col--span-xl-5 { --q-col-span: 5; }
|
|
7678
|
+
.q-col--span-xl-6 { --q-col-span: 6; }
|
|
7679
|
+
.q-col--span-xl-7 { --q-col-span: 7; }
|
|
7680
|
+
.q-col--span-xl-8 { --q-col-span: 8; }
|
|
7681
|
+
.q-col--span-xl-9 { --q-col-span: 9; }
|
|
7682
|
+
.q-col--span-xl-10 { --q-col-span: 10; }
|
|
7683
|
+
.q-col--span-xl-11 { --q-col-span: 11; }
|
|
7684
|
+
.q-col--span-xl-12 { --q-col-span: 12; }
|
|
7685
|
+
.q-col--offset-xl-1 { --q-col-offset: 1; }
|
|
7686
|
+
.q-col--offset-xl-2 { --q-col-offset: 2; }
|
|
7687
|
+
.q-col--offset-xl-3 { --q-col-offset: 3; }
|
|
7688
|
+
.q-col--offset-xl-4 { --q-col-offset: 4; }
|
|
7689
|
+
.q-col--offset-xl-5 { --q-col-offset: 5; }
|
|
7690
|
+
.q-col--offset-xl-6 { --q-col-offset: 6; }
|
|
7691
|
+
.q-col--offset-xl-7 { --q-col-offset: 7; }
|
|
7692
|
+
.q-col--offset-xl-8 { --q-col-offset: 8; }
|
|
7693
|
+
.q-col--offset-xl-9 { --q-col-offset: 9; }
|
|
7694
|
+
.q-col--offset-xl-10 { --q-col-offset: 10; }
|
|
7695
|
+
.q-col--offset-xl-11 { --q-col-offset: 11; }
|
|
7696
|
+
.q-grid--cols-xl-1 { --q-grid-cols: 1; }
|
|
7697
|
+
.q-grid--cols-xl-2 { --q-grid-cols: 2; }
|
|
7698
|
+
.q-grid--cols-xl-3 { --q-grid-cols: 3; }
|
|
7699
|
+
.q-grid--cols-xl-4 { --q-grid-cols: 4; }
|
|
7700
|
+
.q-grid--cols-xl-5 { --q-grid-cols: 5; }
|
|
7701
|
+
.q-grid--cols-xl-6 { --q-grid-cols: 6; }
|
|
7702
|
+
.q-grid--cols-xl-7 { --q-grid-cols: 7; }
|
|
7703
|
+
.q-grid--cols-xl-8 { --q-grid-cols: 8; }
|
|
7704
|
+
.q-grid--cols-xl-9 { --q-grid-cols: 9; }
|
|
7705
|
+
.q-grid--cols-xl-10 { --q-grid-cols: 10; }
|
|
7706
|
+
.q-grid--cols-xl-11 { --q-grid-cols: 11; }
|
|
7707
|
+
.q-grid--cols-xl-12 { --q-grid-cols: 12; }
|
|
7708
|
+
}
|
|
7645
7709
|
|
|
7646
7710
|
/* ===== QGrid — mode cellules (Vant Grid) =====
|
|
7647
7711
|
Activé par :column-num — cellules QGridItem en grille égale, avec icône + texte. */
|