@dative-gpi/foundation-shared-components 0.0.12 → 0.0.14

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 (77) hide show
  1. package/components/FSButton.vue +1 -1
  2. package/components/FSCalendarTwin.vue +2 -0
  3. package/components/FSCheckbox.vue +3 -3
  4. package/components/FSClock.vue +47 -40
  5. package/components/FSCol.vue +2 -2
  6. package/components/FSDivider.vue +46 -7
  7. package/components/FSForm.vue +52 -0
  8. package/components/FSImage.vue +41 -32
  9. package/components/FSLabel.vue +105 -0
  10. package/components/FSPagination.vue +25 -9
  11. package/components/FSPermissions.vue +0 -0
  12. package/components/FSRadio.vue +3 -3
  13. package/components/FSSlideGroup.vue +10 -11
  14. package/components/FSSubmitDialog.vue +1 -1
  15. package/components/FSSwitch.vue +3 -3
  16. package/components/FSText.vue +1 -1
  17. package/components/FSWrapGroup.vue +10 -11
  18. package/components/{FSAutocompleteField.vue → fields/FSAutocompleteField.vue} +26 -19
  19. package/components/fields/FSColorField.vue +205 -0
  20. package/components/{FSDateField.vue → fields/FSDateField.vue} +15 -50
  21. package/components/{FSDateRangeField.vue → fields/FSDateRangeField.vue} +17 -67
  22. package/components/{FSDateTimeField.vue → fields/FSDateTimeField.vue} +17 -52
  23. package/components/{FSDateTimeRangeField.vue → fields/FSDateTimeRangeField.vue} +45 -81
  24. package/components/{FSIconField.vue → fields/FSIconField.vue} +16 -55
  25. package/components/{FSNumberField.vue → fields/FSNumberField.vue} +17 -27
  26. package/components/{FSPasswordField.vue → fields/FSPasswordField.vue} +5 -29
  27. package/components/{FSRichTextField.vue → fields/FSRichTextField.vue} +13 -11
  28. package/components/{FSSearchField.vue → fields/FSSearchField.vue} +1 -1
  29. package/components/{FSSelectField.vue → fields/FSSelectField.vue} +17 -21
  30. package/components/{FSTagField.vue → fields/FSTagField.vue} +18 -53
  31. package/components/{FSTextArea.vue → fields/FSTextArea.vue} +26 -26
  32. package/components/{FSTextField.vue → fields/FSTextField.vue} +18 -18
  33. package/components/fields/FSTimeField.vue +202 -0
  34. package/components/fields/FSTimeSlotField.vue +269 -0
  35. package/components/lists/FSDataTableUI.vue +10 -12
  36. package/components/lists/FSFilterButton.vue +1 -1
  37. package/components/tiles/FSDeviceOrganisationTileUI.vue +4 -9
  38. package/components/tiles/FSGroupTileUI.vue +4 -9
  39. package/composables/index.ts +1 -0
  40. package/composables/useBreakpoints.ts +7 -5
  41. package/composables/useRules.ts +72 -0
  42. package/elements/FSFormElement.ts +17 -0
  43. package/icons/flags/France.vue +9 -0
  44. package/icons/flags/Germany.vue +7 -0
  45. package/icons/flags/GreatBritain.vue +9 -0
  46. package/icons/flags/Italy.vue +9 -0
  47. package/icons/flags/Portugal.vue +59 -0
  48. package/icons/flags/Spain.vue +546 -0
  49. package/icons/flags/UnitedStates.vue +12 -0
  50. package/icons/sets.ts +17 -0
  51. package/models/rules.ts +8 -0
  52. package/package.json +4 -4
  53. package/styles/components/fs_autocomplete_field.scss +3 -60
  54. package/styles/components/fs_clock.scss +4 -0
  55. package/styles/components/fs_color_field.scss +21 -0
  56. package/styles/components/fs_data_table.scss +7 -2
  57. package/styles/components/fs_divider.scss +5 -0
  58. package/styles/components/fs_image.scss +12 -1
  59. package/styles/components/fs_label.scss +86 -0
  60. package/styles/components/fs_pagination.scss +3 -3
  61. package/styles/components/fs_rich_text_field.scss +1 -1
  62. package/styles/components/fs_select_field.scss +3 -4
  63. package/styles/components/fs_switch.scss +4 -4
  64. package/styles/components/fs_text_area.scss +2 -0
  65. package/styles/components/fs_text_field.scss +1 -0
  66. package/styles/components/fs_time_field.scss +16 -0
  67. package/styles/components/fs_timeslot_field.scss +12 -0
  68. package/styles/components/index.scss +4 -0
  69. package/styles/globals/overrides.scss +8 -6
  70. package/styles/globals/text_fonts.scss +18 -0
  71. package/utils/color.ts +7 -0
  72. package/utils/css.ts +2 -1
  73. package/utils/icons.ts +88 -2
  74. package/utils/index.ts +3 -1
  75. package/utils/time.ts +29 -0
  76. package/components/FSHeaderButton.vue +0 -17
  77. package/components/lists/FSDataIteratorGroup.vue +0 -7
@@ -0,0 +1,12 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-us" viewBox="0 0 640 480">
3
+ <g fill-rule="evenodd">
4
+ <g stroke-width="1pt">
5
+ <path fill="#bd3d44" d="M0 0h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8V197H0zm0 78.8h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8v39.4H0zm0 78.8h972.8V512H0z" transform="scale(.9375)"/>
6
+ <path fill="#fff" d="M0 39.4h972.8v39.4H0zm0 78.8h972.8v39.3H0zm0 78.7h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8v39.4H0z" transform="scale(.9375)"/>
7
+ </g>
8
+ <path fill="#192f5d" d="M0 0h389.1v275.7H0z" transform="scale(.9375)"/>
9
+ <path fill="#fff" d="M32.4 11.8 36 22.7h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0 3.6 10.9H177l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0 3.5 10.9H242l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0 3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 39.4l3.5 10.9h11.5L70.6 57 74 67.9l-9-6.7-9.3 6.7L59 57l-9-6.7h11.4zm64.8 0 3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7L124 57l-9.3-6.7h11.5zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0 3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0 3.5 10.9h11.5L330 57l3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 66.9 36 78h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7H29zm64.9 0 3.5 11h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zm64.8 0 3.6 11H177l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7h11.5zm64.9 0 3.5 11H242l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.4zm64.8 0 3.6 11h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.2-6.7h11.4zm64.9 0 3.5 11h11.5l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.5zM64.9 94.5l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0 3.6 10.9h11.4l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0 3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 122.1 36 133h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0 3.6 10.9H177l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0 3.5 10.9H242l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0 3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 149.7l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zm64.8 0 3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.5zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7H191zm64.8 0 3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7H256zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zM32.4 177.2l3.6 11h11.4l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0 3.5 11h11.5l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0 3.6 11H177l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0 3.5 11H242l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0 3.6 11h11.4l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0 3.5 11h11.5l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 204.8l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0 3.6 10.9h11.4l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0 3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 232.4l3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.3-6.7H29zm64.9 0 3.5 10.9h11.5L103 250l3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.4zm64.8 0 3.6 10.9H177l-9 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.3-6.7h11.5zm64.9 0 3.5 10.9H242l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.4zm64.8 0 3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.2-6.7h11.4zm64.9 0 3.5 10.9h11.5l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.5z" transform="scale(.9375)"/>
10
+ </g>
11
+ </svg>
12
+ </template>
package/icons/sets.ts ADDED
@@ -0,0 +1,17 @@
1
+ import France from "./flags/France.vue";
2
+ import Germany from "./flags/Germany.vue";
3
+ import GreatBritain from "./flags/GreatBritain.vue";
4
+ import Italy from "./flags/Italy.vue";
5
+ import Portugal from "./flags/Portugal.vue";
6
+ import Spain from "./flags/Spain.vue";
7
+ import UnitedStates from "./flags/UnitedStates.vue";
8
+
9
+ export const Flags = {
10
+ france: France,
11
+ germany: Germany,
12
+ greatBritain: GreatBritain,
13
+ italy: Italy,
14
+ portugal: Portugal,
15
+ spain: Spain,
16
+ unitedStates: UnitedStates
17
+ };
package/models/rules.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import { useTranslations as useTranslationsProvider } from "@dative-gpi/bones-ui/composables";
2
2
  import { useTimeZone } from "@dative-gpi/foundation-shared-services/composables";
3
3
 
4
+ import { getTimeBestString } from "../utils";
5
+
4
6
  const { epochToLongDateFormat } = useTimeZone()!;
5
7
  const { $tr } = useTranslationsProvider();
6
8
 
@@ -48,4 +50,10 @@ export const AutocompleteRules = {
48
50
  required: (message: string) => (value: string) => !!value || (message ?? $tr("ui.rules.required", "Required")),
49
51
  min: (min: number, message: string) => (value: string[]) => (Array.isArray(value) && value.length >= min) || (message ?? $tr("ui.rules.autocomplete-min", "Must select at least {0} elements", min.toString())),
50
52
  max: (max: number, message: string) => (value: string[]) => (Array.isArray(value) && value.length <= max) || (message ?? $tr("ui.rules.autocomplete-max", "Must select at most {0} elements", max.toString()))
53
+ };
54
+
55
+ export const TimeRules = {
56
+ required: (message: string) => (value: number) => !!value || (message ?? $tr("ui.rules.required", "Required")),
57
+ min: (min: number, message: string) => (value: number) => value >= min || (message ?? $tr("ui.rules.time-min", "Must be more than {0}", getTimeBestString(min))),
58
+ max: (max: number, message: string) => (value: number) => value <= max || (message ?? $tr("ui.rules.time-max", "Must be less than {0}", getTimeBestString(max)))
51
59
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dative-gpi/foundation-shared-components",
3
3
  "sideEffects": false,
4
- "version": "0.0.12",
4
+ "version": "0.0.14",
5
5
  "description": "",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@dative-gpi/foundation-shared-domain": "0.0.12",
14
- "@dative-gpi/foundation-shared-services": "0.0.12",
13
+ "@dative-gpi/foundation-shared-domain": "0.0.14",
14
+ "@dative-gpi/foundation-shared-services": "0.0.14",
15
15
  "@fontsource/montserrat": "^5.0.16",
16
16
  "@lexical/clipboard": "^0.12.5",
17
17
  "@lexical/history": "^0.12.5",
@@ -32,5 +32,5 @@
32
32
  "sass": "^1.69.5",
33
33
  "sass-loader": "^13.3.2"
34
34
  },
35
- "gitHead": "73c686b3b0343ac4b42d34c2aa7cf7604ad0d298"
35
+ "gitHead": "e0e44041b264a555d7eccfb49ae4deaf933bd436"
36
36
  }
@@ -1,5 +1,6 @@
1
1
  .fs-autocomplete-field {
2
2
  padding: 0px !important;
3
+ min-width: 240px;
3
4
  width: 100%;
4
5
 
5
6
  & > .v-input__control > .v-field {
@@ -24,6 +25,8 @@
24
25
  & > .v-field__field > .v-field__input {
25
26
  @extend .text-body;
26
27
 
28
+ flex-wrap: nowrap;
29
+ overflow: hidden;
27
30
  padding-inline: 0 !important;
28
31
  color: var(--fs-autocomplete-field-color);
29
32
  cursor: var(--fs-autocomplete-field-cursor) !important;
@@ -37,32 +40,6 @@
37
40
  min-height: 34px !important;
38
41
  height: 34px !important;
39
42
  }
40
-
41
- & > .v-autocomplete__selection {
42
- @include web {
43
- margin-top: -16px;
44
- height: 38px !important;
45
- }
46
-
47
- @include mobile {
48
- margin-top: -15px;
49
- height: 34px !important;
50
- }
51
- }
52
-
53
- & > input {
54
- @include web {
55
- top: 16px;
56
- margin-top: -16px;
57
- height: 38px !important;
58
- }
59
-
60
- @include mobile {
61
- top: 17px;
62
- margin-top: -17px;
63
- height: 34px !important;
64
- }
65
- }
66
43
  }
67
44
 
68
45
  & > .v-field__clearable {
@@ -71,40 +48,6 @@
71
48
 
72
49
  & > .v-field__append-inner {
73
50
  color: var(--fs-autocomplete-field-color);
74
-
75
- & > i {
76
- margin-inline-start: 0px;
77
- }
78
- }
79
- }
80
- }
81
-
82
- .fs-autocomplete-multiple-field {
83
- & > .v-input__control > .v-field {
84
- & > .v-field__field > .v-field__input {
85
- & > .v-autocomplete__selection {
86
- @include web {
87
- margin-top: -16px;
88
- height: 38px !important;
89
- }
90
-
91
- @include mobile {
92
- margin-top: -15px;
93
- height: 34px !important;
94
- }
95
- }
96
-
97
- & > input {
98
- @include web {
99
- margin-top: -16px;
100
- height: 38px !important;
101
- }
102
-
103
- @include mobile {
104
- margin-top: -17px;
105
- height: 34px !important;
106
- }
107
- }
108
51
  }
109
52
  }
110
53
  }
@@ -1,3 +1,7 @@
1
+ .fs-clock-date {
2
+ max-width: calc(100% - 198px);
3
+ }
4
+
1
5
  .fs-clock-field {
2
6
  padding: 0px !important;
3
7
  width: 72px !important;
@@ -0,0 +1,21 @@
1
+ .fs-color-field {
2
+ min-width:190px;
3
+ }
4
+
5
+ .fs-color-field-opacity {
6
+ min-width: 150px;
7
+ }
8
+
9
+ .fs-color-field .v-field__prepend-inner > .v-icon {
10
+ opacity: 1 !important;
11
+ }
12
+
13
+ .fs-color-field-picker {
14
+ background: none !important;
15
+ min-width: auto !important;
16
+ width: 100% !important;
17
+ }
18
+
19
+ .fs-color-field-description {
20
+ color: var(--fs-color-field-color);
21
+ }
@@ -80,13 +80,18 @@
80
80
  background-color: var(--fs-data-table-background-color);
81
81
  }
82
82
 
83
+ .fs-data-table-rows-per-page > .fs-select-field {
84
+ min-width: 120px !important;
85
+ width: 120px !important;
86
+ }
87
+
83
88
  .fs-data-table-pagination {
84
89
  @include web {
85
- width: 172px;
90
+ max-width: 200px;
86
91
  }
87
92
 
88
93
  @include mobile {
89
- width: 172px;
94
+ max-width: 194px;
90
95
  }
91
96
  }
92
97
 
@@ -2,4 +2,9 @@
2
2
  width: var(--fs-divider-width);
3
3
  border-bottom: 1.3px solid var(--fs-divider-color);
4
4
  border-radius: 3px;
5
+ }
6
+
7
+ .fs-divider-around {
8
+ border-bottom: 1.3px solid var(--fs-divider-color);
9
+ border-radius: 3px;
5
10
  }
@@ -1,5 +1,16 @@
1
+ .fs-load-image {
2
+ border-radius: var(--fs-image-border-radius);
3
+ max-height: 100%;
4
+ height: 100%;
5
+
6
+ & > .v-skeleton-loader__image {
7
+ max-height: 100%;
8
+ height: 100%;
9
+ }
10
+ }
11
+
1
12
  .fs-image {
2
- border-radius: 4px;
13
+ border-radius: var(--fs-image-border-radius);
3
14
 
4
15
  &.v-responsive {
5
16
  flex: 0 0 auto !important;
@@ -0,0 +1,86 @@
1
+ .fs-label {
2
+ color: var(--fs-label-color);
3
+
4
+ @extend .fs-span;
5
+ }
6
+
7
+ .fs-load-label {
8
+ & > .v-skeleton-loader__text {
9
+ margin: 0px;
10
+ height: 100%;
11
+ }
12
+
13
+ &.text-h1 {
14
+ width: calc(50% - 32px);
15
+
16
+ @include web {
17
+ height: 36px;
18
+ }
19
+
20
+ @include mobile {
21
+ height: 29px;
22
+ }
23
+ }
24
+
25
+ &.text-h2 {
26
+ width: calc(60% - 32px);
27
+
28
+ @include web {
29
+ height: 27px;
30
+ }
31
+
32
+ @include mobile {
33
+ height: 22px;
34
+ }
35
+ }
36
+
37
+ &.text-h3 {
38
+ width: calc(65% - 32px);
39
+
40
+ @include web {
41
+ height: 21px;
42
+ }
43
+
44
+ @include mobile {
45
+ height: 17px;
46
+ }
47
+ }
48
+
49
+ &.text-h4 {
50
+ width: calc(75% - 32px);
51
+
52
+ @include web {
53
+ height: 16px;
54
+ }
55
+
56
+ @include mobile {
57
+ height: 14px;
58
+ }
59
+ }
60
+
61
+ &.text-body,
62
+ &.text-button {
63
+ width: calc(75% - 32px);
64
+
65
+ @include web {
66
+ height: 14px;
67
+ }
68
+
69
+ @include mobile {
70
+ height: 12px;
71
+ }
72
+ }
73
+
74
+ &.text-overline,
75
+ &.text-underline {
76
+ width: calc(75% - 32px);
77
+
78
+ @include web {
79
+ height: 12px;
80
+ }
81
+
82
+ @include mobile {
83
+ height: 10px;
84
+ }
85
+ }
86
+ }
@@ -1,11 +1,11 @@
1
- .fs-pagination {
1
+ .fs-pagination-page {
2
2
  height: 4px;
3
- min-width: 12%;
4
3
  border-radius: 4px;
4
+ min-width: var(--fs-pagination-page-width);
5
5
  background-color: var(--fs-pagination-background-color);
6
6
  transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
7
7
 
8
- &.fs-pagination-active {
8
+ &.fs-pagination-active-page {
9
9
  background-color: var(--fs-pagination-active-background-color);
10
10
  }
11
11
  }
@@ -1,5 +1,6 @@
1
1
  .fs-rich-text-field {
2
2
  width: 100%;
3
+ min-width: 240px;
3
4
  outline: none !important;
4
5
  border: 1px solid var(--fs-rich-text-field-border-color) !important;
5
6
  border-radius: 4px !important;
@@ -63,5 +64,4 @@
63
64
 
64
65
  .editor-link {
65
66
  color: var(--fs-rich-text-field-link-color);
66
- text-decoration: underline;
67
67
  }
@@ -1,5 +1,6 @@
1
1
  .fs-select-field {
2
2
  padding: 0px !important;
3
+ min-width: 240px;
3
4
  width: 100%;
4
5
 
5
6
  & > .v-input__control > .v-field {
@@ -24,6 +25,8 @@
24
25
  & > .v-field__field > .v-field__input {
25
26
  @extend .text-body;
26
27
 
28
+ flex-wrap: nowrap;
29
+ overflow: hidden;
27
30
  padding-inline: 0 !important;
28
31
  color: var(--fs-select-field-color);
29
32
  cursor: var(--fs-select-field-cursor) !important;
@@ -49,10 +52,6 @@
49
52
 
50
53
  & > .v-field__append-inner {
51
54
  color: var(--fs-select-field-color);
52
-
53
- & > i {
54
- margin-inline-start: 0px;
55
- }
56
55
  }
57
56
  }
58
57
  }
@@ -1,4 +1,5 @@
1
1
  .fs-switch-size {
2
+ min-width: 40px !important;
2
3
  width: 40px !important;
3
4
  min-height: 24px !important;
4
5
  height: 24px !important;
@@ -37,11 +38,10 @@
37
38
  color: var(--fs-switch-color) !important;
38
39
  }
39
40
 
40
- .v-switch__track {
41
- width: 40px !important;
42
- height: 24px !important;
43
- background-color: var(--fs-switch-track-color) !important;
41
+ .v-switch--inset .v-switch__track {
42
+ @extend .fs-switch-size;
44
43
 
44
+ background-color: var(--fs-switch-track-color) !important;
45
45
  }
46
46
 
47
47
  .v-switch__thumb {
@@ -1,5 +1,6 @@
1
1
  .fs-text-area:not(.fs-text-area-auto-grow) {
2
2
  padding: 0px !important;
3
+ min-width: 240px;
3
4
  width: 100%;
4
5
 
5
6
  & > .v-input__control > .v-field {
@@ -47,6 +48,7 @@
47
48
 
48
49
  .fs-text-area-auto-grow {
49
50
  padding: 0px !important;
51
+ min-width: 240px;
50
52
  width: 100%;
51
53
 
52
54
  & > .v-input__control > .v-field {
@@ -1,5 +1,6 @@
1
1
  .fs-text-field {
2
2
  padding: 0px !important;
3
+ min-width: 240px;
3
4
  width: 100%;
4
5
 
5
6
  & > .v-input__control > .v-field {
@@ -0,0 +1,16 @@
1
+ .fs-time-field-select {
2
+ min-width: 180px;
3
+ }
4
+
5
+ .fs-time-field-label {
6
+ color: var(--fs-time-field-color);
7
+ }
8
+
9
+ .fs-time-field-messages {
10
+ align-self: stretch;
11
+ color: var(--fs-time-field-error-color);
12
+ }
13
+
14
+ .fs-time-field-description {
15
+ color: var(--fs-time-field-color);
16
+ }
@@ -0,0 +1,12 @@
1
+ .fs-time-slot-field-label {
2
+ color: var(--fs-time-slot-field-color);
3
+ }
4
+
5
+ .fs-time-slot-field-messages {
6
+ align-self: stretch;
7
+ color: var(--fs-time-slot-field-error-color);
8
+ }
9
+
10
+ .fs-time-slot-field-description {
11
+ color: var(--fs-time-slot-field-color);
12
+ }
@@ -8,6 +8,7 @@
8
8
  @import "fs_chip.scss";
9
9
  @import "fs_clock.scss";
10
10
  @import "fs_col.scss";
11
+ @import "fs_color_field.scss";
11
12
  @import "fs_color.scss";
12
13
  @import "fs_color_icon.scss";
13
14
  @import "fs_container.scss";
@@ -23,6 +24,7 @@
23
24
  @import "fs_icon_field.scss";
24
25
  @import "fs_icon.scss";
25
26
  @import "fs_image.scss";
27
+ @import "fs_label.scss";
26
28
  @import "fs_link.scss";
27
29
  @import "fs_load_data_table.scss";
28
30
  @import "fs_load_tile.scss";
@@ -44,5 +46,7 @@
44
46
  @import "fs_text_field.scss";
45
47
  @import "fs_text.scss";
46
48
  @import "fs_tile.scss";
49
+ @import "fs_time_field.scss";
50
+ @import "fs_timeslot_field.scss";
47
51
  @import "fs_tooltip.scss";
48
52
  @import "fs_wrap_group.scss";
@@ -17,6 +17,14 @@
17
17
  margin-inline-start: 8px !important;
18
18
  }
19
19
 
20
+ // Clearable icon is always centered vertically
21
+ .v-input__control > .v-field > .v-field__clearable {
22
+ align-items: center;
23
+ padding-top: 0px;
24
+ height: 100%;
25
+ }
26
+
27
+
20
28
  // No up / down buttons in input field of type number
21
29
  input[type=number] {
22
30
  -moz-appearance: textfield;
@@ -56,12 +64,6 @@ input[type=number]::-webkit-outer-spin-button {
56
64
  color: var(--fs-group-hover-color);
57
65
  }
58
66
 
59
- // remove arrows when disabled
60
- .v-slide-group__prev--disabled,
61
- .v-slide-group__next--disabled {
62
- display: none !important;
63
- }
64
-
65
67
  // Badges are totally overriden
66
68
  .v-badge__badge {
67
69
  align-items: center !important;
@@ -56,6 +56,24 @@
56
56
  }
57
57
  }
58
58
 
59
+ .text-h4 {
60
+ font-family: 'Montserrat', sans-serif !important;
61
+ font-style: normal !important;
62
+ font-weight: 500 !important;
63
+
64
+ @include web {
65
+ font-size: 16px !important;
66
+ line-height: 20px !important;
67
+ letter-spacing: -0.48px !important;
68
+ }
69
+
70
+ @include mobile {
71
+ font-size: 14px !important;
72
+ line-height: 16px !important;
73
+ letter-spacing: -0.41px !important;
74
+ }
75
+ }
76
+
59
77
  .text-body {
60
78
  font-family: 'Montserrat', sans-serif !important;
61
79
  font-style: normal !important;
package/utils/color.ts ADDED
@@ -0,0 +1,7 @@
1
+ export const getPercentageFromHex = (hex: string): number => {
2
+ return parseInt(hex, 16) / 255;
3
+ }
4
+
5
+ export const getHexFromPercentage = (percentage: number): string => {
6
+ return Math.round(percentage * 255).toString(16).padStart(2, "0");
7
+ }
package/utils/css.ts CHANGED
@@ -2,7 +2,8 @@ export const sizeToVar = (value: string | number | null, nullValue: string = "fi
2
2
  if (value == null) {
3
3
  return nullValue;
4
4
  }
5
- return typeof value === 'string' ? value : `${value}${unit}`;
5
+
6
+ return typeof value === 'string' && isNaN(+value) ? value : `${value}${unit}`;
6
7
  };
7
8
 
8
9
  export const varToSize = (value: string): number => {
package/utils/icons.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { Flags } from "../icons/sets";
2
+
1
3
  const MdiIcons = [
2
4
  {
3
5
  "name": "ab-testing",
@@ -75408,9 +75410,93 @@ const MdiIcons = [
75408
75410
  "styles": [],
75409
75411
  "tags": []
75410
75412
  }
75411
- ]
75413
+ ];
75414
+
75415
+ const FlagIcons = [
75416
+ {
75417
+ "name": "france",
75418
+ "aliases": [
75419
+ "french-flag"
75420
+ ],
75421
+ "styles": [],
75422
+ "tags": [
75423
+ "Flags",
75424
+ "France"
75425
+ ]
75426
+ },
75427
+ {
75428
+ "name": "germany",
75429
+ "aliases": [
75430
+ "german-flag"
75431
+ ],
75432
+ "styles": [],
75433
+ "tags": [
75434
+ "Flags",
75435
+ "Allemagne"
75436
+ ]
75437
+ },
75438
+ {
75439
+ "name": "greatBritain",
75440
+ "aliases": [
75441
+ "great-britain-flag",
75442
+ "united-kingdom-flag"
75443
+ ],
75444
+ "styles": [],
75445
+ "tags": [
75446
+ "Flags",
75447
+ "Royaume-Uni"
75448
+ ]
75449
+ },
75450
+ {
75451
+ "name": "italy",
75452
+ "aliases": [
75453
+ "italien-flag"
75454
+ ],
75455
+ "styles": [],
75456
+ "tags": [
75457
+ "Flags",
75458
+ "Italie"
75459
+ ]
75460
+ },
75461
+ {
75462
+ "name": "portugal",
75463
+ "aliases": [
75464
+ "portuguese-flag"
75465
+ ],
75466
+ "styles": [],
75467
+ "tags": [
75468
+ "Flags",
75469
+ "Portugal"
75470
+ ]
75471
+ },
75472
+ {
75473
+ "name": "spain",
75474
+ "aliases": [
75475
+ "spanish-flag"
75476
+ ],
75477
+ "styles": [],
75478
+ "tags": [
75479
+ "Flags",
75480
+ "Espagne"
75481
+ ]
75482
+ },
75483
+ {
75484
+ "name": "unitedStates",
75485
+ "aliases": [
75486
+ "united-states-flag"
75487
+ ],
75488
+ "styles": [],
75489
+ "tags": [
75490
+ "Flags",
75491
+ "Etats-Unis"
75492
+ ]
75493
+ }
75494
+ ];
75412
75495
 
75413
75496
  export const Icons: { name: string, fullText: string }[] = MdiIcons.map((icon) => ({
75414
75497
  name: "mdi-" + icon.name,
75415
75498
  fullText: icon.name + icon.name.split("-").join(" ") + " " + icon.aliases.join(" ") + " " + icon.tags.join(" ") + " " + icon.styles.join(" ")
75416
- }));
75499
+ })).concat(FlagIcons.map((icon) => ({
75500
+ name: "$" + icon.name,
75501
+ fullText: icon.name + icon.name.split("-").join(" ") + " " + icon.aliases.join(" ") + " " + icon.tags.join(" ") + " " + icon.styles.join(" ")
75502
+ })));
package/utils/index.ts CHANGED
@@ -1,5 +1,7 @@
1
+ export * from "./color";
1
2
  export * from "./css";
2
3
  export * from "./icons";
3
4
  export * from "./levenshtein";
4
5
  export * from "./lexical";
5
- export * from "./sort";
6
+ export * from "./sort";
7
+ export * from "./time";