@funidata/fudis-core 2.3.4 → 3.1.0

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/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@funidata/fudis-core",
3
- "version": "2.3.4",
3
+ "version": "3.1.0",
4
4
  "description": "Core styles and foundations for Fudis Design System",
5
5
  "files": [
6
6
  "src",
7
7
  "./_index.scss",
8
8
  "./_styles.scss"
9
9
  ],
10
+ "type": "module",
10
11
  "scripts": {
11
12
  "start": "storybook dev -p 6007",
12
13
  "build:storybook": "storybook build",
@@ -30,16 +31,19 @@
30
31
  "url": "https://github.com/funidata/fudis-core/issues"
31
32
  },
32
33
  "homepage": "https://github.com/funidata/fudis-core#readme",
34
+ "optionalDependencies": {
35
+ "@rolldown/binding-linux-x64-gnu": "1.0.1",
36
+ "lightningcss-linux-x64-gnu": "1.32.0"
37
+ },
33
38
  "devDependencies": {
34
- "@storybook/addon-a11y": "^8.6.12",
35
- "@storybook/addon-essentials": "^8.6.12",
36
- "@storybook/blocks": "^8.6.12",
37
- "@storybook/html": "^8.6.12",
38
- "@storybook/html-vite": "^8.6.12",
39
- "@storybook/test": "^8.6.12",
40
- "@whitespace/storybook-addon-html": "^7.0.0",
41
- "nodemon": "^3.1.10",
42
- "sass-embedded": "^1.86.3",
43
- "storybook": "^8.6.12"
39
+ "@storybook/addon-a11y": "10.4.0",
40
+ "@storybook/addon-docs": "10.4.0",
41
+ "@storybook/html-vite": "10.4.0",
42
+ "@whitespace/storybook-addon-html": "^9.0.0",
43
+ "nodemon": "^3.1.14",
44
+ "prettier2": "npm:prettier@2.8.8",
45
+ "sass-embedded": "^1.99.0",
46
+ "storybook": "10.4.0",
47
+ "vite": "^8.0.12"
44
48
  }
45
49
  }
@@ -28,6 +28,7 @@
28
28
  box-shadow: none;
29
29
  width: spacing.$spacing-md;
30
30
  height: spacing.$spacing-md;
31
+ cursor: pointer;
31
32
 
32
33
  &:focus {
33
34
  @include focus.focus-generic;
@@ -15,10 +15,11 @@
15
15
  display: inline-flex;
16
16
  align-items: center;
17
17
  justify-content: center;
18
- cursor: pointer;
19
18
  padding: 0 spacing.$spacing-xs;
20
19
  min-width: spacing.$spacing-xxl;
21
20
  vertical-align: middle;
21
+ text-align: left;
22
+ cursor: pointer;
22
23
 
23
24
  &:focus {
24
25
  @include focus.focus-generic;
@@ -56,10 +57,13 @@
56
57
 
57
58
  &__size {
58
59
  &__small {
60
+ padding-top: calc(spacing.$spacing-xxs / 2);
61
+ padding-bottom: calc(spacing.$spacing-xxs / 2);
59
62
  min-height: spacing.$spacing-md;
60
63
  }
61
64
 
62
65
  &__medium {
66
+ padding: calc(spacing.$spacing-md / 4) spacing.$spacing-xs;
63
67
  min-height: spacing.$spacing-lg;
64
68
  }
65
69
 
@@ -73,8 +73,7 @@
73
73
  &__md {
74
74
  @include typography.heading-xs;
75
75
 
76
- .fudis-fieldset__legend__main__text,
77
- .fudis-fieldset__legend__main__required {
76
+ .fudis-fieldset__legend__main__text {
78
77
  vertical-align: sub;
79
78
  }
80
79
  }
@@ -19,14 +19,14 @@
19
19
  display: flex;
20
20
  transform: translateX(
21
21
  /* stylelint-disable unit-disallowed-list */
22
- calc(-1 * calc(0.4rem / var(--fudis-rem-multiplier)))
22
+ calc(-1 * calc(0.4rem / var(--fudis-rem-multiplier)))
23
23
  );
24
- opacity: 0;
25
- height: spacing.$spacing-xs;
26
24
  animation-name: delay-appearance;
27
25
  animation-delay: 0.2s;
28
26
  animation-iteration-count: 1;
29
27
  animation-fill-mode: forwards;
28
+ opacity: 0;
29
+ height: spacing.$spacing-xs;
30
30
 
31
31
  &__list {
32
32
  min-height: spacing.$spacing-xs;
@@ -3,14 +3,14 @@
3
3
 
4
4
  /* Only for internal use for this icon class */
5
5
  @mixin icon-mask-base() {
6
+ mask-size: contain;
7
+ mask-position: center;
8
+ mask-repeat: no-repeat;
6
9
  /* stylelint-disable property-disallowed-list */
7
10
  background-color: currentcolor;
8
11
  width: var(--icon-size);
9
12
  height: var(--icon-size);
10
13
  content: '';
11
- mask-repeat: no-repeat;
12
- mask-position: center;
13
- mask-size: contain;
14
14
  }
15
15
 
16
16
  /* Only for internal use in creating white background for large fill icons */
@@ -13,11 +13,11 @@ $radio-indicator-size: calc(0.75rem / var(--fudis-rem-multiplier));
13
13
  @include typography.body-text-md-regular;
14
14
  @include colorMixin.text-color('gray-dark');
15
15
 
16
- display: inline-flex;
16
+ display: flex;
17
17
  position: relative;
18
18
  align-items: center;
19
19
  margin-bottom: 0;
20
- width: auto;
20
+ width: fit-content;
21
21
  min-height: spacing.$spacing-lg;
22
22
 
23
23
  &__label {
@@ -26,13 +26,18 @@ $radio-indicator-size: calc(0.75rem / var(--fudis-rem-multiplier));
26
26
  padding-left: spacing.$spacing-xs;
27
27
  }
28
28
 
29
- /* Radio button circle */
30
29
  &__content {
31
30
  display: flex;
32
31
  align-items: center;
33
32
  transform: translateX(calc(-0.1rem / var(--fudis-rem-multiplier)));
34
33
  padding-left: 0;
34
+ cursor: pointer;
35
+
36
+ &--disabled {
37
+ cursor: default;
38
+ }
35
39
 
40
+ /* Radio button circle */
36
41
  &-wrapper {
37
42
  display: flex;
38
43
  align-items: center;
@@ -69,15 +74,15 @@ $radio-indicator-size: calc(0.75rem / var(--fudis-rem-multiplier));
69
74
  &__indicator {
70
75
  &::after {
71
76
  display: block;
77
+ mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2012%2012'%20width='12'%20height='12'%3E%3Ccircle%20cx='6'%20cy='6'%20r='6'/%3E%3C/svg%3E");
78
+ mask-size: contain;
79
+ mask-position: center;
80
+ mask-repeat: no-repeat;
72
81
  /* stylelint-disable property-disallowed-list */
73
82
  background-color: currentcolor;
74
83
  width: $radio-indicator-size;
75
84
  height: $radio-indicator-size;
76
85
  content: '';
77
- mask-repeat: no-repeat;
78
- mask-position: center;
79
- mask-size: contain;
80
- mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2012%2012'%20width='12'%20height='12'%3E%3Ccircle%20cx='6'%20cy='6'%20r='6'/%3E%3C/svg%3E");
81
86
  }
82
87
  }
83
88
  }
@@ -88,14 +93,9 @@ $radio-indicator-size: calc(0.75rem / var(--fudis-rem-multiplier));
88
93
  left: 0;
89
94
  opacity: 0;
90
95
  margin: 0;
91
- cursor: pointer;
92
96
  width: 100%;
93
97
  height: 100%;
94
98
 
95
- &--disabled {
96
- cursor: default;
97
- }
98
-
99
99
  /* stylelint-disable-next-line */
100
100
  &:focus
101
101
  /* stylelint-disable selector-class-pattern */
@@ -41,8 +41,8 @@
41
41
  top: 50%;
42
42
  transform: translate(0, -50%);
43
43
  border-style: none;
44
- cursor: pointer;
45
44
  padding: 0;
45
+ cursor: pointer;
46
46
 
47
47
  &:focus {
48
48
  @include focus.focus-generic;
@@ -102,10 +102,10 @@
102
102
  box-sizing: border-box;
103
103
  display: flex;
104
104
  align-items: center;
105
- cursor: pointer;
106
105
  padding-right: spacing.$spacing-sm;
107
106
  padding-left: spacing.$spacing-sm;
108
107
  text-decoration: none;
108
+ cursor: pointer;
109
109
 
110
110
  &:focus-visible {
111
111
  @include focus.focus-generic;
@@ -14,8 +14,8 @@
14
14
 
15
15
  display: flex;
16
16
  align-items: center;
17
- cursor: pointer;
18
17
  width: 100%;
18
+ cursor: pointer;
19
19
  }
20
20
 
21
21
  @mixin fudis-table-default {
@@ -23,8 +23,3 @@
23
23
  @error 'Unknown grid width of #{$width}. Accepted arguments are: "xxl", "xl", "lg", "md", "sm", "xs".';
24
24
  }
25
25
  }
26
-
27
- @mixin grid-xs-margins() {
28
- margin-right: spacing.$spacing-sm;
29
- margin-left: spacing.$spacing-sm;
30
- }
@@ -15,6 +15,11 @@
15
15
  font-family: tokens.$font-family;
16
16
  font-size: tokens.$body-text-lg-font-size;
17
17
  font-weight: tokens.$font-weight-light;
18
+
19
+ @include breakpoints.breakpoint-max('sm') {
20
+ line-height: tokens.$body-text-md-line-height;
21
+ font-size: tokens.$body-text-md-font-size;
22
+ }
18
23
  }
19
24
 
20
25
  @mixin body-text-lg-regular {
@@ -23,6 +28,11 @@
23
28
  font-family: tokens.$font-family;
24
29
  font-size: tokens.$body-text-lg-font-size;
25
30
  font-weight: tokens.$font-weight-regular;
31
+
32
+ @include breakpoints.breakpoint-max('sm') {
33
+ line-height: tokens.$body-text-md-line-height;
34
+ font-size: tokens.$body-text-md-font-size;
35
+ }
26
36
  }
27
37
 
28
38
  @mixin body-text-md-light {
@@ -266,8 +276,8 @@
266
276
  display: inline-block;
267
277
  position: relative;
268
278
  text-decoration: underline;
269
- font-family: tokens.$font-family;
270
279
  overflow-wrap: anywhere;
280
+ font-family: tokens.$font-family;
271
281
 
272
282
  &:focus {
273
283
  @include focus.focus-generic;
@@ -298,10 +308,10 @@
298
308
  // Tab component
299
309
 
300
310
  @mixin tab-text {
311
+ text-wrap: nowrap;
301
312
  font-family: tokens.$font-family;
302
313
  font-size: tokens.$body-text-md-font-size;
303
314
  font-weight: tokens.$font-weight-medium;
304
- text-wrap: nowrap;
305
315
  }
306
316
 
307
317
  // Empty state
@@ -50,4 +50,8 @@
50
50
  &__lg {
51
51
  max-width: spacing.$input-width-lg;
52
52
  }
53
+
54
+ &__full-width {
55
+ max-width: 100%;
56
+ }
53
57
  }
@@ -13,12 +13,12 @@
13
13
  margin: -1px;
14
14
  outline: 0;
15
15
  border: 0;
16
+ clip-path: rect(0 0 0 0);
16
17
  padding: 0;
17
18
  width: 1px;
18
19
  height: 1px;
19
20
  overflow: hidden;
20
21
  white-space: nowrap;
21
- clip: rect(0 0 0 0);
22
22
  }
23
23
 
24
24
  @mixin box-reset() {