@dative-gpi/foundation-shared-components 1.1.0 → 1.1.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.
- package/components/FSCard.vue +8 -1
- package/components/FSColor.vue +3 -3
- package/components/FSColorIcon.vue +1 -0
- package/components/FSSnackbar.vue +146 -0
- package/components/lists/FSTileList.vue +23 -6
- package/components/map/FSMapMarker.vue +4 -3
- package/components/tiles/FSPlaylistTileUI.vue +149 -0
- package/models/variants.ts +6 -0
- package/package.json +4 -4
- package/styles/components/fs_button.scss +0 -1
- package/styles/components/fs_card.scss +3 -3
- package/styles/components/fs_snackbar.scss +7 -0
- package/styles/components/index.scss +1 -1
- package/styles/components/fs_color_icon.scss +0 -3
package/components/FSCard.vue
CHANGED
|
@@ -134,6 +134,10 @@ export default defineComponent({
|
|
|
134
134
|
disabled: {
|
|
135
135
|
type: Boolean,
|
|
136
136
|
default: false
|
|
137
|
+
},
|
|
138
|
+
disableHoverStyle: {
|
|
139
|
+
type: Boolean,
|
|
140
|
+
default: false
|
|
137
141
|
}
|
|
138
142
|
},
|
|
139
143
|
setup(props, { emit }) {
|
|
@@ -224,7 +228,7 @@ export default defineComponent({
|
|
|
224
228
|
...baseStyle,
|
|
225
229
|
"--fs-card-background-color": lights.light,
|
|
226
230
|
"--fs-card-border-color" : lights.dark,
|
|
227
|
-
"--fs-card-color" : lights.lightContrast!
|
|
231
|
+
"--fs-card-color" : props.clickable ? lights.dark : lights.lightContrast!
|
|
228
232
|
};
|
|
229
233
|
}
|
|
230
234
|
|
|
@@ -295,6 +299,9 @@ export default defineComponent({
|
|
|
295
299
|
if (actualClickable.value) {
|
|
296
300
|
classNames.push("fs-card-clickable");
|
|
297
301
|
}
|
|
302
|
+
if (props.disableHoverStyle) {
|
|
303
|
+
classNames.push("fs-card-disable-hover-style");
|
|
304
|
+
}
|
|
298
305
|
if (props.disabled) {
|
|
299
306
|
classNames.push("fs-card-disabled");
|
|
300
307
|
}
|
package/components/FSColor.vue
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<script lang="ts">
|
|
15
15
|
import { computed, defineComponent, type PropType } from "vue";
|
|
16
16
|
|
|
17
|
-
import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
17
|
+
import { type CardVariant, CardVariants, type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
18
18
|
import { useColors } from "@dative-gpi/foundation-shared-components/composables";
|
|
19
19
|
|
|
20
20
|
import FSCard from "./FSCard.vue";
|
|
@@ -26,9 +26,9 @@ export default defineComponent({
|
|
|
26
26
|
},
|
|
27
27
|
props: {
|
|
28
28
|
variant: {
|
|
29
|
-
type: String as PropType<
|
|
29
|
+
type: String as PropType<CardVariant>,
|
|
30
30
|
required: false,
|
|
31
|
-
default:
|
|
31
|
+
default: CardVariants.Standard
|
|
32
32
|
},
|
|
33
33
|
color: {
|
|
34
34
|
type: String as PropType<ColorBase>,
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-snackbar
|
|
3
|
+
class="fs-snackbar"
|
|
4
|
+
:modelValue="$props.modelValue"
|
|
5
|
+
@update:modelValue="$emit('update:modelValue', $event)"
|
|
6
|
+
:multi-line="$props.multiLine"
|
|
7
|
+
:location="$props.location"
|
|
8
|
+
:timeout="$props.timeout"
|
|
9
|
+
:style="style"
|
|
10
|
+
>
|
|
11
|
+
<slot>
|
|
12
|
+
<FSRow
|
|
13
|
+
align="center-left"
|
|
14
|
+
:wrap="false"
|
|
15
|
+
gap="12px"
|
|
16
|
+
>
|
|
17
|
+
<FSIcon
|
|
18
|
+
v-if="$props.icon"
|
|
19
|
+
>
|
|
20
|
+
{{ $props.icon }}
|
|
21
|
+
</FSIcon>
|
|
22
|
+
<FSSpan
|
|
23
|
+
v-if="$props.text"
|
|
24
|
+
:ellipsis="!$props.multiLine"
|
|
25
|
+
>
|
|
26
|
+
{{ $props.text }}
|
|
27
|
+
</FSSpan>
|
|
28
|
+
</FSRow>
|
|
29
|
+
</slot>
|
|
30
|
+
<template
|
|
31
|
+
v-if="$slots.actions || $props.closeButton"
|
|
32
|
+
#actions
|
|
33
|
+
>
|
|
34
|
+
<slot
|
|
35
|
+
name="actions"
|
|
36
|
+
>
|
|
37
|
+
<FSButton
|
|
38
|
+
v-if="$props.closeButton"
|
|
39
|
+
icon="mdi-close"
|
|
40
|
+
variant="icon"
|
|
41
|
+
@click="$emit('update:modelValue', false)"
|
|
42
|
+
/>
|
|
43
|
+
</slot>
|
|
44
|
+
</template>
|
|
45
|
+
</v-snackbar>
|
|
46
|
+
</template>
|
|
47
|
+
|
|
48
|
+
<script lang="ts">
|
|
49
|
+
import { computed, defineComponent, type PropType, type StyleValue } from "vue";
|
|
50
|
+
|
|
51
|
+
import { type ColorBase, ColorEnum, type SnackbarVariant, SnackbarVariants } from "@dative-gpi/foundation-shared-components/models";
|
|
52
|
+
import { useColors } from "@dative-gpi/foundation-shared-components/composables";
|
|
53
|
+
import { sizeToVar } from "@dative-gpi/foundation-shared-components/utils";
|
|
54
|
+
|
|
55
|
+
import FSButton from "./FSButton.vue";
|
|
56
|
+
import FSIcon from "./FSIcon.vue";
|
|
57
|
+
import FSSpan from "./FSSpan.vue";
|
|
58
|
+
import FSRow from "./FSRow.vue";
|
|
59
|
+
|
|
60
|
+
export default defineComponent({
|
|
61
|
+
name: "FSSnackbar",
|
|
62
|
+
components: {
|
|
63
|
+
FSButton,
|
|
64
|
+
FSIcon,
|
|
65
|
+
FSSpan,
|
|
66
|
+
FSRow
|
|
67
|
+
},
|
|
68
|
+
props: {
|
|
69
|
+
modelValue: {
|
|
70
|
+
type: Boolean,
|
|
71
|
+
required: false,
|
|
72
|
+
default: false
|
|
73
|
+
},
|
|
74
|
+
text: {
|
|
75
|
+
type: String as PropType<string | null>,
|
|
76
|
+
required: false,
|
|
77
|
+
default: null
|
|
78
|
+
},
|
|
79
|
+
icon: {
|
|
80
|
+
type: String as PropType<string | null>,
|
|
81
|
+
required: false,
|
|
82
|
+
default: null
|
|
83
|
+
},
|
|
84
|
+
color: {
|
|
85
|
+
type: String as PropType<ColorBase>,
|
|
86
|
+
required: false,
|
|
87
|
+
default: ColorEnum.Dark
|
|
88
|
+
},
|
|
89
|
+
timeout: {
|
|
90
|
+
type: Number,
|
|
91
|
+
required: false,
|
|
92
|
+
default: 5000
|
|
93
|
+
},
|
|
94
|
+
location: {
|
|
95
|
+
type: String as PropType<"top" | "bottom" | "left" | "right" | "top left" | "top right" | "bottom left" | "bottom right">,
|
|
96
|
+
required: false,
|
|
97
|
+
default: "bottom"
|
|
98
|
+
},
|
|
99
|
+
multiLine: {
|
|
100
|
+
type: Boolean,
|
|
101
|
+
required: false,
|
|
102
|
+
default: false
|
|
103
|
+
},
|
|
104
|
+
closeButton: {
|
|
105
|
+
type: Boolean,
|
|
106
|
+
required: false,
|
|
107
|
+
default: false
|
|
108
|
+
},
|
|
109
|
+
variant: {
|
|
110
|
+
type: String as PropType<SnackbarVariant>,
|
|
111
|
+
required: false,
|
|
112
|
+
default: SnackbarVariants.Full
|
|
113
|
+
},
|
|
114
|
+
borderRadius: {
|
|
115
|
+
type: [String, Number],
|
|
116
|
+
required: false,
|
|
117
|
+
default: "4px"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
emits: ["update:modelValue"],
|
|
121
|
+
setup(props) {
|
|
122
|
+
const { getColors } = useColors();
|
|
123
|
+
|
|
124
|
+
const colors = computed(() => getColors(props.color));
|
|
125
|
+
|
|
126
|
+
const style = computed((): StyleValue => {
|
|
127
|
+
switch (props.variant) {
|
|
128
|
+
case "standard": return {
|
|
129
|
+
"--fs-snackbar-border-radius": sizeToVar(props.borderRadius),
|
|
130
|
+
"--fs-snackbar-background-color": colors.value.light,
|
|
131
|
+
"--fs-snackbar-color": colors.value.dark
|
|
132
|
+
};
|
|
133
|
+
default: return {
|
|
134
|
+
"--fs-snackbar-border-radius": sizeToVar(props.borderRadius),
|
|
135
|
+
"--fs-snackbar-background-color": colors.value.base,
|
|
136
|
+
"--fs-snackbar-color": colors.value.light
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
return {
|
|
142
|
+
style
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
</script>
|
|
@@ -2,12 +2,21 @@
|
|
|
2
2
|
<FSCol
|
|
3
3
|
gap="12px"
|
|
4
4
|
>
|
|
5
|
-
<
|
|
6
|
-
v-if="$props.searchable"
|
|
7
|
-
:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
<FSRow
|
|
6
|
+
v-if="$props.searchable || $slots.action"
|
|
7
|
+
:wrap="false"
|
|
8
|
+
align="center-left"
|
|
9
|
+
>
|
|
10
|
+
<FSSearchField
|
|
11
|
+
v-if="$props.searchable"
|
|
12
|
+
:hideHeader="true"
|
|
13
|
+
:modelValue="actualSearch"
|
|
14
|
+
@update:modelValue="onSearch"
|
|
15
|
+
/>
|
|
16
|
+
<slot
|
|
17
|
+
name="action"
|
|
18
|
+
/>
|
|
19
|
+
</FSRow>
|
|
11
20
|
<FSFadeOut
|
|
12
21
|
v-if="$props.direction == ListDirections.Column"
|
|
13
22
|
:maxHeight="$props.maxHeight"
|
|
@@ -109,11 +118,13 @@ import FSFadeOut from "../FSFadeOut.vue";
|
|
|
109
118
|
import FSSlideGroup from "../FSSlideGroup.vue"
|
|
110
119
|
import FSSearchField from "../fields/FSSearchField.vue";
|
|
111
120
|
import FSSimpleTileUI from "../tiles/FSSimpleTileUI.vue";
|
|
121
|
+
import FSRow from "../FSRow.vue";
|
|
112
122
|
|
|
113
123
|
export default defineComponent({
|
|
114
124
|
name: "FSTileList",
|
|
115
125
|
components: {
|
|
116
126
|
FSCol,
|
|
127
|
+
FSRow,
|
|
117
128
|
FSFadeOut,
|
|
118
129
|
FSLoader,
|
|
119
130
|
FSSlideGroup,
|
|
@@ -223,6 +234,12 @@ export default defineComponent({
|
|
|
223
234
|
actualSearch.value = value;
|
|
224
235
|
});
|
|
225
236
|
|
|
237
|
+
watch(() => props.singleSelect, () => {
|
|
238
|
+
if(props.singleSelect && props.modelValue.length > 1) {
|
|
239
|
+
emit("update:modelValue", []);
|
|
240
|
+
}
|
|
241
|
+
}, { immediate: true });
|
|
242
|
+
|
|
226
243
|
return {
|
|
227
244
|
actualSearch,
|
|
228
245
|
filteredItems,
|
|
@@ -11,8 +11,9 @@ import { type Map, divIcon, type LatLng, marker, type Marker, type MarkerCluster
|
|
|
11
11
|
import { useColors } from "../../composables";
|
|
12
12
|
import { useRouting } from '@dative-gpi/foundation-shared-services/composables';
|
|
13
13
|
|
|
14
|
-
import { gpsMarkerHtml, locationMarkerHtml, pinMarkerHtml } from '../../utils/leafletMarkers';
|
|
15
14
|
import { MAP, MARKERCLUSTERGROUP } from './keys';
|
|
15
|
+
import { ColorEnum, type ColorBase } from '@dative-gpi/foundation-shared-components/models';
|
|
16
|
+
import { gpsMarkerHtml, locationMarkerHtml, pinMarkerHtml } from '../../utils/leafletMarkers';
|
|
16
17
|
|
|
17
18
|
export default {
|
|
18
19
|
name: 'FSMapMarker',
|
|
@@ -23,8 +24,8 @@ export default {
|
|
|
23
24
|
required: false
|
|
24
25
|
},
|
|
25
26
|
color: {
|
|
26
|
-
type: String
|
|
27
|
-
default:
|
|
27
|
+
type: String as PropType<ColorBase>,
|
|
28
|
+
default: ColorEnum.Primary,
|
|
28
29
|
required: false
|
|
29
30
|
},
|
|
30
31
|
latlng: {
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<FSTile
|
|
3
|
+
:activeColor="ColorEnum.Primary"
|
|
4
|
+
:modelValue="$props.modelValue"
|
|
5
|
+
:width="$props.width"
|
|
6
|
+
:height="$props.height"
|
|
7
|
+
padding="16px 24px"
|
|
8
|
+
v-bind="$attrs"
|
|
9
|
+
>
|
|
10
|
+
<FSRow
|
|
11
|
+
:wrap="false"
|
|
12
|
+
>
|
|
13
|
+
<FSCol
|
|
14
|
+
gap="16px"
|
|
15
|
+
width="fill"
|
|
16
|
+
>
|
|
17
|
+
<FSText
|
|
18
|
+
font="text-button"
|
|
19
|
+
>
|
|
20
|
+
{{ $props.label }}
|
|
21
|
+
</FSText>
|
|
22
|
+
<FSRow
|
|
23
|
+
:wrap="false"
|
|
24
|
+
align="center-left"
|
|
25
|
+
>
|
|
26
|
+
<FSIcon>
|
|
27
|
+
mdi-view-dashboard-outline
|
|
28
|
+
</FSIcon>
|
|
29
|
+
<FSText
|
|
30
|
+
font="text-overline"
|
|
31
|
+
>
|
|
32
|
+
{{ $tr('ui.dashboards.dynamic', '{0} dashboard(s)', $props.dashboardsCount) }}
|
|
33
|
+
</FSText>
|
|
34
|
+
</FSRow>
|
|
35
|
+
<FSRow
|
|
36
|
+
:wrap="false"
|
|
37
|
+
align="center-left"
|
|
38
|
+
>
|
|
39
|
+
<FSIconCheck
|
|
40
|
+
variant="fill"
|
|
41
|
+
:value="automaticTransition"
|
|
42
|
+
/>
|
|
43
|
+
<FSText
|
|
44
|
+
font="text-overline"
|
|
45
|
+
v-if="automaticTransition"
|
|
46
|
+
>
|
|
47
|
+
{{$tr('ui.playlist.transition-delay.dynamic', 'Transition : {0}', getTimeBestString($props.delay ?? 0))}}
|
|
48
|
+
</FSText>
|
|
49
|
+
<FSText
|
|
50
|
+
font="text-overline"
|
|
51
|
+
v-else
|
|
52
|
+
>
|
|
53
|
+
{{ $tr('ui.playlist.automatic-transition', 'Automatic transition') }}
|
|
54
|
+
</FSText>
|
|
55
|
+
</FSRow>
|
|
56
|
+
<FSRow
|
|
57
|
+
:wrap="false"
|
|
58
|
+
align="center-left"
|
|
59
|
+
>
|
|
60
|
+
<FSIconCheck
|
|
61
|
+
variant="fill"
|
|
62
|
+
:value="$props.looped"
|
|
63
|
+
/>
|
|
64
|
+
<FSText
|
|
65
|
+
font="text-overline"
|
|
66
|
+
>
|
|
67
|
+
{{ $tr('entity.playlist.looped', 'Looped') }}
|
|
68
|
+
</FSText>
|
|
69
|
+
</FSRow>
|
|
70
|
+
</FSCol>
|
|
71
|
+
<slot
|
|
72
|
+
name="actions"
|
|
73
|
+
/>
|
|
74
|
+
</FSRow>
|
|
75
|
+
</FSTile>
|
|
76
|
+
</template>
|
|
77
|
+
|
|
78
|
+
<script lang="ts">
|
|
79
|
+
import { computed, defineComponent, type PropType } from "vue";
|
|
80
|
+
|
|
81
|
+
import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
82
|
+
|
|
83
|
+
import { getTimeBestString } from "@dative-gpi/foundation-shared-components/utils";
|
|
84
|
+
|
|
85
|
+
import FSIconCheck from "../FSIconCheck.vue";
|
|
86
|
+
import FSTile from "../tiles/FSTile.vue";
|
|
87
|
+
import FSIcon from "../FSIcon.vue";
|
|
88
|
+
import FSText from "../FSText.vue";
|
|
89
|
+
import FSRow from "../FSRow.vue";
|
|
90
|
+
import FSCol from "../FSCol.vue";
|
|
91
|
+
|
|
92
|
+
export default defineComponent({
|
|
93
|
+
name: "FSPlaylistTileUI",
|
|
94
|
+
components: {
|
|
95
|
+
FSIconCheck,
|
|
96
|
+
FSIcon,
|
|
97
|
+
FSTile,
|
|
98
|
+
FSText,
|
|
99
|
+
FSRow,
|
|
100
|
+
FSCol
|
|
101
|
+
},
|
|
102
|
+
inheritAttrs: false,
|
|
103
|
+
props: {
|
|
104
|
+
width: {
|
|
105
|
+
type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
|
|
106
|
+
required: false,
|
|
107
|
+
default: () => [352, 336]
|
|
108
|
+
},
|
|
109
|
+
height: {
|
|
110
|
+
type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
|
|
111
|
+
required: false,
|
|
112
|
+
default: () => 'hug'
|
|
113
|
+
},
|
|
114
|
+
label: {
|
|
115
|
+
type: String as PropType<string>,
|
|
116
|
+
required: true
|
|
117
|
+
},
|
|
118
|
+
dashboardsCount: {
|
|
119
|
+
type: Number,
|
|
120
|
+
required: true
|
|
121
|
+
},
|
|
122
|
+
delay: {
|
|
123
|
+
type: Number ,
|
|
124
|
+
required: false
|
|
125
|
+
},
|
|
126
|
+
looped: {
|
|
127
|
+
type: Boolean,
|
|
128
|
+
required: true
|
|
129
|
+
},
|
|
130
|
+
modelValue: {
|
|
131
|
+
type: Boolean,
|
|
132
|
+
required: false,
|
|
133
|
+
default: false
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
setup(props) {
|
|
137
|
+
|
|
138
|
+
const automaticTransition = computed((): boolean => {
|
|
139
|
+
return props.delay ? props.delay > 0 : false;
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
return {
|
|
143
|
+
getTimeBestString,
|
|
144
|
+
automaticTransition,
|
|
145
|
+
ColorEnum
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
</script>
|
package/models/variants.ts
CHANGED
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"url": "https://github.com/Dative-GPI/foundation-shared-ui.git"
|
|
5
5
|
},
|
|
6
6
|
"sideEffects": false,
|
|
7
|
-
"version": "1.1.
|
|
7
|
+
"version": "1.1.1",
|
|
8
8
|
"description": "",
|
|
9
9
|
"publishConfig": {
|
|
10
10
|
"access": "public"
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"author": "",
|
|
14
14
|
"license": "ISC",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@dative-gpi/foundation-shared-domain": "1.1.
|
|
17
|
-
"@dative-gpi/foundation-shared-services": "1.1.
|
|
16
|
+
"@dative-gpi/foundation-shared-domain": "1.1.1",
|
|
17
|
+
"@dative-gpi/foundation-shared-services": "1.1.1"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
20
|
"@dative-gpi/bones-ui": "^1.0.0",
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"sass": "1.71.1",
|
|
39
39
|
"sass-loader": "13.3.2"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "e216573a785fa74dba8daac116173fcdd42311c8"
|
|
42
42
|
}
|
|
@@ -44,19 +44,19 @@
|
|
|
44
44
|
border-color: var(--fs-card-active-border-color) !important;
|
|
45
45
|
color: var(--fs-card-active-color) !important;
|
|
46
46
|
|
|
47
|
-
& .fs-card-clickable {
|
|
47
|
+
& .fs-card-clickable:not(.fs-card-disable-hover-style) {
|
|
48
48
|
transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1);
|
|
49
49
|
background-color: var(--fs-card-active-background-color);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
@include clickscreen {
|
|
54
|
-
&:not(.fs-card-disabled):hover:not(:has( .fs-stopclick:hover)) {
|
|
54
|
+
&:not(.fs-card-disabled):not(.fs-card-disable-hover-style):hover:not(:has( .fs-stopclick:hover)) {
|
|
55
55
|
background-color: var(--fs-card-hover-background-color) !important;
|
|
56
56
|
border-color: var(--fs-card-hover-border-color) !important;
|
|
57
57
|
color: var(--fs-card-hover-color) !important;
|
|
58
58
|
|
|
59
|
-
& .fs-card-clickable {
|
|
59
|
+
& .fs-card-clickable:not(.fs-card-disable-hover-style) {
|
|
60
60
|
transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1);
|
|
61
61
|
background-color: var(--fs-card-hover-background-color);
|
|
62
62
|
}
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
@import "fs_col.scss";
|
|
17
17
|
@import "fs_color_field.scss";
|
|
18
18
|
@import "fs_color.scss";
|
|
19
|
-
@import "fs_color_icon.scss";
|
|
20
19
|
@import "fs_data_table.scss";
|
|
21
20
|
@import "fs_dialog_menu.scss";
|
|
22
21
|
@import "fs_dialog.scss";
|
|
@@ -52,6 +51,7 @@
|
|
|
52
51
|
@import "fs_select_field.scss";
|
|
53
52
|
@import "fs_slide_group.scss";
|
|
54
53
|
@import "fs_slider.scss";
|
|
54
|
+
@import "fs_snackbar.scss";
|
|
55
55
|
@import "fs_span.scss";
|
|
56
56
|
@import "fs_status_rich_card.scss";
|
|
57
57
|
@import "fs_switch.scss";
|