@dative-gpi/foundation-shared-components 1.0.194 → 1.1.0-fix01

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/components/FSButton.vue +43 -89
  2. package/components/FSCard.vue +208 -100
  3. package/components/FSCardPlaceholder.vue +29 -25
  4. package/components/FSChip.vue +54 -127
  5. package/components/FSChipGroup.vue +3 -3
  6. package/components/FSClickable.vue +24 -326
  7. package/components/FSColor.vue +3 -3
  8. package/components/FSColorIcon.vue +1 -0
  9. package/components/FSDialogContent.vue +37 -28
  10. package/components/FSEditImageUI.vue +19 -30
  11. package/components/FSIconCheck.vue +8 -0
  12. package/components/FSImageCard.vue +4 -4
  13. package/components/FSLink.vue +1 -13
  14. package/components/FSOptionItem.vue +4 -4
  15. package/components/FSOptionsMenu.vue +6 -6
  16. package/components/FSPlayButtons.vue +8 -8
  17. package/components/FSRouterLink.vue +84 -14
  18. package/components/FSSlideGroup.vue +5 -1
  19. package/components/agenda/FSAgendaHorizontalEvent.vue +4 -4
  20. package/components/agenda/FSAgendaVerticalEvent.vue +4 -4
  21. package/components/deviceOrganisations/FSStatusRichCard.vue +2 -7
  22. package/components/lists/FSFilterButton.vue +11 -8
  23. package/components/lists/FSHeaderButton.vue +6 -3
  24. package/components/tiles/FSTile.vue +31 -65
  25. package/models/index.ts +2 -1
  26. package/models/variants.ts +7 -0
  27. package/package.json +4 -4
  28. package/styles/components/fs_button.scss +1 -7
  29. package/styles/components/fs_card.scss +75 -4
  30. package/styles/components/fs_chip.scss +0 -29
  31. package/styles/components/index.scss +0 -2
  32. package/styles/globals/overrides.scss +1 -1
  33. package/styles/components/fs_clickable.scss +0 -69
  34. package/styles/components/fs_color_icon.scss +0 -3
@@ -1,40 +1,46 @@
1
1
  <template>
2
- <component
3
- :is="$attrs.onClick ? FSClickable : FSCard"
2
+ <FSCard
4
3
  borderStyle="dashed"
5
4
  padding="24px"
6
5
  :height="$props.height"
6
+ :variant="CardVariants.Standard"
7
+ :color="ColorEnum.Light"
7
8
  :width="$props.width"
8
9
  :border="true"
9
10
  v-bind="$attrs"
10
11
  >
11
- <FSRow
12
- align="center-center"
12
+ <template
13
+ #default
13
14
  >
14
- <FSIcon
15
- v-if="$props.icon"
16
- :color="ColorEnum.Light"
17
- variant="dark"
18
- >
19
- {{ $props.icon }}
20
- </FSIcon>
21
- <FSText
22
- v-if="$props.label"
23
- :color="ColorEnum.Light"
24
- variant="dark"
25
- >
26
- {{ $props.label }}
27
- </FSText>
28
- </FSRow>
29
- </component>
15
+ <slot>
16
+ <FSRow
17
+ align="center-center"
18
+ >
19
+ <FSIcon
20
+ v-if="$props.icon"
21
+ :color="ColorEnum.Light"
22
+ variant="dark"
23
+ >
24
+ {{ $props.icon }}
25
+ </FSIcon>
26
+ <FSText
27
+ v-if="$props.label"
28
+ :color="ColorEnum.Light"
29
+ variant="dark"
30
+ >
31
+ {{ $props.label }}
32
+ </FSText>
33
+ </FSRow>
34
+ </slot>
35
+ </template>
36
+ </FSCard>
30
37
  </template>
31
38
 
32
39
  <script lang="ts">
33
40
  import { defineComponent, type PropType } from "vue";
34
41
 
35
- import { ColorEnum } from "../models";
42
+ import { CardVariants, ColorEnum } from "../models";
36
43
 
37
- import FSClickable from "./FSClickable.vue";
38
44
  import FSCard from "./FSCard.vue";
39
45
  import FSIcon from "./FSIcon.vue";
40
46
  import FSText from "./FSText.vue";
@@ -43,7 +49,6 @@ import FSRow from "./FSRow.vue";
43
49
  export default defineComponent({
44
50
  name: "FSCardPlaceholder",
45
51
  components: {
46
- FSClickable,
47
52
  FSCard,
48
53
  FSIcon,
49
54
  FSText,
@@ -74,8 +79,7 @@ export default defineComponent({
74
79
  setup() {
75
80
  return {
76
81
  ColorEnum,
77
- FSClickable,
78
- FSCard,
82
+ CardVariants
79
83
  };
80
84
  }
81
85
  });
@@ -1,72 +1,72 @@
1
1
  <template>
2
- <component
3
- :is="$props.to && $props.clickable ? 'FSRouterLink' : 'div'"
4
- class="fs-chip-container"
5
- v-bind="$props.to ? { to: $props.to } : {}"
2
+ <FSCard
3
+ class="fs-chip"
4
+ padding="2px 20px"
5
+ :borderRadius="50"
6
+ :color="$props.color"
7
+ :variant="$props.variant"
8
+ :height="$props.height"
6
9
  @click="$emit('click', $event)"
10
+ v-bind="$attrs"
7
11
  >
8
- <FSRow
9
- :align="$props.align"
10
- :width="$props.width"
11
- :class="classes"
12
- :style="style"
13
- :wrap="false"
14
- v-bind="$attrs"
12
+ <template
13
+ #default="{ contentVariant }"
15
14
  >
16
- <slot
17
- name="prepend"
18
- v-bind="{ color: $props.color, colors }"
15
+ <FSRow
16
+ :align="$props.align"
17
+ :wrap="false"
19
18
  >
20
- <FSIcon
21
- v-if="$props.prependIcon"
22
- size="s"
19
+ <slot
20
+ name="prepend"
21
+ v-bind="{ color: $props.color, contentVariant }"
23
22
  >
24
- {{ $props.prependIcon }}
25
- </FSIcon>
26
- </slot>
27
- <slot
28
- v-bind="{ color: $props.color, colors }"
29
- >
30
- <FSSpan
31
- v-if="$props.label"
32
- font="text-overline"
33
- class="fs-chip-label"
23
+ <FSIcon
24
+ v-if="$props.prependIcon"
25
+ size="s"
26
+ >
27
+ {{ $props.prependIcon }}
28
+ </FSIcon>
29
+ </slot>
30
+ <slot
31
+ v-bind="{ color: $props.color, contentVariant }"
34
32
  >
35
- {{ $props.label }}
36
- </FSSpan>
37
- </slot>
38
- <slot
39
- name="append"
40
- v-bind="{ color: $props.color, colors }"
41
- >
42
- <FSIcon
43
- v-if="$props.appendIcon"
44
- size="s"
33
+ <FSSpan
34
+ v-if="$props.label"
35
+ font="text-overline"
36
+ >
37
+ {{ $props.label }}
38
+ </FSSpan>
39
+ </slot>
40
+ <slot
41
+ name="append"
42
+ v-bind="{ color: $props.color, contentVariant }"
45
43
  >
46
- {{ $props.appendIcon }}
47
- </FSIcon>
48
- </slot>
49
- </FSRow>
50
- </component>
44
+ <FSIcon
45
+ v-if="$props.appendIcon"
46
+ size="s"
47
+ >
48
+ {{ $props.appendIcon }}
49
+ </FSIcon>
50
+ </slot>
51
+ </FSRow>
52
+ </template>
53
+ </FSCard>
51
54
  </template>
52
55
 
53
56
  <script lang="ts">
54
- import { computed, defineComponent, type PropType, type StyleValue } from "vue";
55
- import { type RouteLocation } from "vue-router";
57
+ import { defineComponent, type PropType } from "vue";
56
58
 
57
- import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
58
- import { useColors } from "@dative-gpi/foundation-shared-components/composables";
59
- import { sizeToVar } from "@dative-gpi/foundation-shared-components/utils";
59
+ import { type CardVariant, CardVariants, type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
60
60
 
61
61
  import FSIcon from "./FSIcon.vue";
62
62
  import FSSpan from "./FSSpan.vue";
63
63
  import FSRow from "./FSRow.vue";
64
- import FSRouterLink from '@dative-gpi/foundation-shared-components/components/FSRouterLink.vue';
64
+ import FSCard from './FSCard.vue';
65
65
 
66
66
  export default defineComponent({
67
67
  name: "FSChip",
68
68
  components: {
69
- FSRouterLink,
69
+ FSCard,
70
70
  FSIcon,
71
71
  FSSpan,
72
72
  FSRow
@@ -92,100 +92,27 @@ export default defineComponent({
92
92
  required: false,
93
93
  default: () => [24, 20]
94
94
  },
95
- width: {
96
- type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
97
- required: false,
98
- default: "hug"
99
- },
100
95
  variant: {
101
- type: String as PropType<"standard" | "full" | "borderless">,
96
+ type: String as PropType<CardVariant>,
102
97
  required: false,
103
- default: "full"
98
+ default: CardVariants.Full
104
99
  },
105
100
  color: {
106
101
  type: String as PropType<ColorBase>,
107
102
  required: false,
108
103
  default: ColorEnum.Primary
109
104
  },
110
- clickable: {
111
- type: Boolean,
112
- required: false,
113
- default: false
114
- },
115
105
  align: {
116
- type: String as PropType<"center-center" | "center-left">,
106
+ type: String as PropType<"top-left" | "top-center" | "top-right" | "center-left" | "center-center" | "center-right" | "bottom-left" | "bottom-center" | "bottom-right">,
117
107
  required: false,
118
108
  default: "center-center"
119
- },
120
- to: {
121
- type: Object as PropType<RouteLocation | null>,
122
- required: false,
123
- default: null
124
- },
109
+ }
125
110
  },
126
111
  inheritsAttrs: false,
127
112
  emits: ['click'],
128
- setup(props) {
129
- const { getColors } = useColors();
130
-
131
- const colors = computed(() => getColors(props.color));
132
- const backgrounds = getColors(ColorEnum.Background);
133
- const darks = getColors(ColorEnum.Dark);
134
-
135
- const style = computed((): StyleValue => {
136
- switch (props.variant) {
137
- case "standard": return {
138
- "--fs-chip-height" : sizeToVar(props.height),
139
- "--fs-chip-background-color" : backgrounds.base,
140
- "--fs-chip-border-color" : colors.value.base,
141
- "--fs-chip-color" : colors.value.base,
142
- "--fs-chip-hover-background-color" : colors.value.base,
143
- "--fs-chip-hover-border-color" : colors.value.base,
144
- "--fs-chip-hover-color" : colors.value.baseContrast!,
145
- "--fs-chip-active-background-color": backgrounds.base,
146
- "--fs-chip-active-border-color" : colors.value.dark,
147
- "--fs-chip-active-color" : colors.value.dark
148
- };
149
- case "full": return {
150
- "--fs-chip-height" : sizeToVar(props.height),
151
- "--fs-chip-background-color" : colors.value.base,
152
- "--fs-chip-border-color" : colors.value.base,
153
- "--fs-chip-color" : colors.value.baseContrast!,
154
- "--fs-chip-hover-background-color" : colors.value.soft,
155
- "--fs-chip-hover-border-color" : colors.value.soft,
156
- "--fs-chip-hover-color" : colors.value.baseContrast!,
157
- "--fs-chip-active-background-color": colors.value.dark,
158
- "--fs-chip-active-border-color" : colors.value.darkContrast!,
159
- "--fs-chip-active-color" : colors.value.darkContrast!
160
- };
161
- case "borderless": return {
162
- "--fs-chip-height" : sizeToVar(props.height),
163
- "--fs-chip-background-color" : backgrounds.base,
164
- "--fs-chip-border-color" : backgrounds.base,
165
- "--fs-chip-color" : darks.base,
166
- "--fs-chip-hover-background-color" : colors.value.light,
167
- "--fs-chip-hover-border-color" : colors.value.light,
168
- "--fs-chip-hover-color" : colors.value.base,
169
- "--fs-chip-active-background-color": colors.value.light,
170
- "--fs-chip-active-border-color" : colors.value.light,
171
- "--fs-chip-active-color" : colors.value.base
172
- };
173
- }
174
- });
175
-
176
- const classes = computed((): string[] => {
177
- const classNames: string[] = ["fs-chip"];
178
- if (props.clickable) {
179
- classNames.push("fs-chip-clickable");
180
- }
181
- return classNames;
182
- });
113
+ setup() {
183
114
 
184
115
  return {
185
- FSRouterLink,
186
- classes,
187
- colors,
188
- style
189
116
  };
190
117
  }
191
118
  });
@@ -30,7 +30,7 @@
30
30
  <script lang="ts">
31
31
  import { defineComponent, type PropType } from "vue";
32
32
 
33
- import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
33
+ import { type CardVariant, CardVariants, type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
34
34
 
35
35
  import FSSlideGroup from "./FSSlideGroup.vue";
36
36
  import FSWrapGroup from "./FSWrapGroup.vue";
@@ -55,9 +55,9 @@ export default defineComponent({
55
55
  default: "wrap"
56
56
  },
57
57
  chipVariant: {
58
- type: String as PropType<"standard" | "full" | "borderless">,
58
+ type: String as PropType<CardVariant>,
59
59
  required: false,
60
- default: "full"
60
+ default: CardVariants.Full
61
61
  },
62
62
  color: {
63
63
  type: String as PropType<ColorBase>,