@fkui/design 6.39.0 → 6.41.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,6 +1,6 @@
1
1
  {
2
2
  "name": "@fkui/design",
3
- "version": "6.39.0",
3
+ "version": "6.41.0",
4
4
  "description": "fkui design",
5
5
  "keywords": [
6
6
  "fkui",
@@ -39,8 +39,8 @@
39
39
  "unit:watch": "node --test --watch"
40
40
  },
41
41
  "devDependencies": {
42
- "@fkui/icon-lib-default": "6.39.0",
43
- "@fkui/theme-default": "6.39.0",
42
+ "@fkui/icon-lib-default": "6.41.0",
43
+ "@fkui/theme-default": "6.41.0",
44
44
  "autoprefixer": "10.4.27",
45
45
  "cssnano": "7.1.3",
46
46
  "glob": "13.0.6",
@@ -51,7 +51,7 @@
51
51
  "svgo": "4.0.1"
52
52
  },
53
53
  "peerDependencies": {
54
- "@fkui/theme-default": "^6.39.0",
54
+ "@fkui/theme-default": "^6.41.0",
55
55
  "sass": "^1.40.0",
56
56
  "stylelint": ">= 14"
57
57
  },
@@ -68,5 +68,5 @@
68
68
  "npm": ">= 7"
69
69
  },
70
70
  "sass": "./src/fkui.scss",
71
- "gitHead": "dcb4ae0482dae1d80806b45900c8b80771de7372"
71
+ "gitHead": "b5a8d5801dff4745cf7007b9209a9bc5a8bbe40c"
72
72
  }
@@ -10,6 +10,7 @@
10
10
  @forward "contextmenu/variables";
11
11
  @forward "crud-dataset/variables";
12
12
  @forward "datepicker-field/variables";
13
+ @forward "definition-list/variables";
13
14
  @forward "dialogue-tree/variables";
14
15
  @forward "entrypoint/variables";
15
16
  @forward "error-list/variables";
@@ -61,6 +62,7 @@
61
62
  @use "contextmenu";
62
63
  @use "crud-dataset";
63
64
  @use "datepicker-field";
65
+ @use "definition-list";
64
66
  @use "dialogue-tree";
65
67
  @use "entrypoint";
66
68
  @use "error-list";
@@ -0,0 +1,62 @@
1
+ @use "../../core";
2
+ @use "../../core/size";
3
+
4
+ @mixin button-group-margin($margin-bottom, $margin-right) {
5
+ margin-bottom: $margin-bottom;
6
+ margin-right: $margin-right;
7
+
8
+ &:last-child {
9
+ margin-right: 0;
10
+ }
11
+ }
12
+
13
+ .button-group {
14
+ align-items: center;
15
+ display: flex;
16
+ flex-wrap: wrap;
17
+ margin-bottom: core.densify(size.$margin-050);
18
+ margin-top: core.densify(size.$margin-025);
19
+
20
+ &--end {
21
+ justify-content: flex-end;
22
+ }
23
+
24
+ &__item {
25
+ margin: 0;
26
+ margin-bottom: core.densify(size.$margin-100);
27
+
28
+ @include core.breakpoint-up(md) {
29
+ @include button-group-margin(core.densify(size.$margin-100), size.$margin-125);
30
+ }
31
+ }
32
+
33
+ > .button--discrete {
34
+ @include button-group-margin(core.densify(size.$margin-100), size.$margin-150);
35
+ }
36
+
37
+ > .button--small {
38
+ @include button-group-margin(core.densify(size.$margin-075), size.$margin-075);
39
+
40
+ &.button--full-width {
41
+ @include core.breakpoint-down(sm) {
42
+ margin-right: 0;
43
+ }
44
+ }
45
+ }
46
+
47
+ > .button--medium {
48
+ @include button-group-margin(core.densify(size.$margin-075), size.$margin-100);
49
+
50
+ &.button--full-width {
51
+ @include core.breakpoint-down(sm) {
52
+ margin-right: 0;
53
+ }
54
+ }
55
+ }
56
+
57
+ > .button--large {
58
+ @include core.breakpoint-up(md) {
59
+ @include button-group-margin(core.densify(size.$margin-100), size.$margin-125);
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,22 @@
1
+ @use "../../core";
2
+ @use "../../core/size";
3
+
4
+ .button-list {
5
+ margin-bottom: core.densify(size.$margin-050);
6
+ margin-top: core.densify(size.$margin-025);
7
+ padding-left: 0;
8
+
9
+ > li button {
10
+ margin: 0;
11
+ margin-bottom: core.densify(size.$margin-100);
12
+
13
+ &.button.button--small,
14
+ &.button.button--medium {
15
+ margin-bottom: core.densify(size.$margin-075);
16
+ }
17
+
18
+ &.button.button--large {
19
+ margin-bottom: core.densify(size.$margin-100);
20
+ }
21
+ }
22
+ }
@@ -2,85 +2,6 @@
2
2
  @use "../../core/size";
3
3
  @use "variables" as *;
4
4
 
5
- @mixin button-group-margin($margin-bottom, $margin-right) {
6
- margin-bottom: $margin-bottom;
7
- margin-right: $margin-right;
8
-
9
- &:last-child {
10
- margin-right: 0;
11
- }
12
- }
13
-
14
- /// Button group and button list
15
- .button-group {
16
- align-items: center;
17
- display: flex;
18
- flex-wrap: wrap;
19
- margin-bottom: core.densify(size.$margin-050);
20
- margin-top: core.densify(size.$margin-025);
21
-
22
- .button-group__item {
23
- margin: 0;
24
- margin-bottom: core.densify(size.$margin-100);
25
-
26
- @include core.breakpoint-up(md) {
27
- @include button-group-margin(core.densify(size.$margin-100), size.$margin-125);
28
- }
29
- }
30
-
31
- > .button.button--discrete {
32
- @include button-group-margin(core.densify(size.$margin-100), size.$margin-150);
33
- }
34
-
35
- > .button.button--small {
36
- @include button-group-margin(core.densify(size.$margin-075), size.$margin-075);
37
- &.button--full-width {
38
- @include core.breakpoint-down(sm) {
39
- margin-right: 0;
40
- }
41
- }
42
- }
43
-
44
- > .button.button--medium {
45
- @include button-group-margin(core.densify(size.$margin-075), size.$margin-100);
46
- &.button--full-width {
47
- @include core.breakpoint-down(sm) {
48
- margin-right: 0;
49
- }
50
- }
51
- }
52
-
53
- > .button.button--large {
54
- @include core.breakpoint-up(md) {
55
- @include button-group-margin(core.densify(size.$margin-100), size.$margin-125);
56
- }
57
- }
58
-
59
- &--end {
60
- justify-content: flex-end;
61
- }
62
- }
63
-
64
- .button-list {
65
- margin-bottom: core.densify(size.$margin-050);
66
- margin-top: core.densify(size.$margin-025);
67
- padding-left: 0;
68
-
69
- > li button {
70
- margin: 0;
71
- margin-bottom: core.densify(size.$margin-100);
72
-
73
- &.button.button--small,
74
- &.button.button--medium {
75
- margin-bottom: core.densify(size.$margin-075);
76
- }
77
-
78
- &.button.button--large {
79
- margin-bottom: core.densify(size.$margin-100);
80
- }
81
- }
82
- }
83
-
84
5
  /// Primary button
85
6
  $button--primary: (
86
7
  background-color: $button-primary-color-background-default,
@@ -323,7 +244,8 @@ $button--tertiary: (
323
244
  }
324
245
  }
325
246
 
326
- &:disabled {
247
+ &:disabled,
248
+ &[aria-disabled="true"] {
327
249
  border: none;
328
250
  }
329
251
 
@@ -337,7 +259,8 @@ $button--tertiary: (
337
259
  background-color: $button-tertiary-inverted-color-background-focus;
338
260
  }
339
261
 
340
- &:disabled {
262
+ &:disabled,
263
+ &[aria-disabled="true"] {
341
264
  color: $button-tertiary-inverted-color-text-disabled;
342
265
  border: none;
343
266
  border-width: 0;
@@ -350,7 +273,8 @@ $button--tertiary: (
350
273
  text-decoration-thickness: 2px;
351
274
  text-underline-offset: 4px;
352
275
 
353
- &:disabled {
276
+ &:disabled,
277
+ &[aria-disabled="true"] {
354
278
  text-decoration: none;
355
279
  }
356
280
  }
@@ -464,6 +388,8 @@ $button--tertiary: (
464
388
  &.disabled:hover,
465
389
  &:disabled,
466
390
  &:disabled:hover,
391
+ &[aria-disabled="true"],
392
+ &[aria-disabled="true"]:hover,
467
393
  &.button--disabled {
468
394
  border-width: var(--f-border-width-medium);
469
395
  box-shadow: none;
@@ -1 +1,3 @@
1
1
  @use "button";
2
+ @use "button-group";
3
+ @use "button-list";
@@ -24,15 +24,27 @@ $calendar-width: calc(100vw - #{$popup-spacing});
24
24
  height: core.densify(var(--f-icon-size-x-large));
25
25
  width: core.densify(var(--f-icon-size-x-large));
26
26
  vertical-align: middle;
27
+
28
+ @media (forced-colors: active) {
29
+ color: ButtonBorder;
30
+ }
27
31
  }
28
32
 
29
33
  &:hover {
30
34
  .icon {
31
35
  color: $datepickerfield-f-icon-calendar-color-content-hover;
36
+
37
+ @media (forced-colors: active) {
38
+ color: LinkText;
39
+ }
32
40
  }
33
41
  }
34
42
  &:disabled .icon {
35
43
  color: $datepickerfield-f-icon-calendar-color-content-disabled;
44
+
45
+ @media (forced-colors: active) {
46
+ color: GrayText;
47
+ }
36
48
  }
37
49
  }
38
50
 
@@ -52,6 +64,7 @@ $calendar-width: calc(100vw - #{$popup-spacing});
52
64
  &__close > &__close__button {
53
65
  margin: 0;
54
66
  padding: 1rem;
67
+ align-items: center;
55
68
  }
56
69
  }
57
70
 
@@ -0,0 +1,23 @@
1
+ @use "../../core/size";
2
+ @use "variables" as *;
3
+
4
+ .definition-list {
5
+ margin: 0;
6
+ color: $definitionlist-text-color-default;
7
+
8
+ &__term {
9
+ float: left;
10
+ clear: left;
11
+ margin-right: size.$margin-025;
12
+ font-weight: var(--f-font-weight-medium);
13
+ }
14
+
15
+ &__term::after {
16
+ content: ":";
17
+ }
18
+
19
+ &__definition {
20
+ margin-left: 0;
21
+ margin-bottom: 0.25rem;
22
+ }
23
+ }
@@ -0,0 +1 @@
1
+ @use "definition-list";
@@ -0,0 +1 @@
1
+ $definitionlist-text-color-default: var(--fkds-color-text-primary) !default;
@@ -34,6 +34,7 @@
34
34
  display: flex;
35
35
  align-items: center;
36
36
  justify-content: space-between;
37
+ cursor: pointer;
37
38
 
38
39
  span {
39
40
  display: -webkit-box;
@@ -43,7 +44,6 @@
43
44
  font-weight: var(--f-font-weight-medium);
44
45
  font-size: var(--f-font-size-standard);
45
46
  text-align: left;
46
- cursor: pointer;
47
47
  }
48
48
 
49
49
  .icon {
@@ -57,7 +57,8 @@
57
57
  &__file-name {
58
58
  margin-left: size.$margin-025;
59
59
  min-width: 0;
60
- overflow-wrap: break-word;
60
+ overflow-wrap: anywhere;
61
+ hyphens: auto;
61
62
  white-space: normal;
62
63
  }
63
64
 
@@ -9,14 +9,19 @@
9
9
  @include focus-indicator;
10
10
  }
11
11
  }
12
+ label.button.button--tertiary {
13
+ @media (forced-colors: active) {
14
+ border-color: ButtonBorder;
15
+ color: ButtonText;
16
+ }
12
17
 
13
- label {
14
18
  cursor: pointer;
15
19
  }
16
-
17
- input:disabled + label {
18
- background-color: transparent;
19
- border-color: transparent;
20
+ input[aria-disabled="true"] + label.button.button--tertiary {
20
21
  cursor: default;
22
+ @media (forced-colors: active) {
23
+ color: GrayText;
24
+ border-color: GrayText;
25
+ }
21
26
  }
22
27
  }
@@ -55,6 +55,10 @@
55
55
  height: size.$padding-100;
56
56
  position: absolute;
57
57
  width: size.$padding-100;
58
+
59
+ @media (forced-colors: active) {
60
+ background-color: CanvasText;
61
+ }
58
62
  }
59
63
 
60
64
  &__wait-text {
@@ -85,6 +89,10 @@
85
89
 
86
90
  .loader__circle {
87
91
  background-color: $loader-circle-inverted-color-background;
92
+
93
+ @media (forced-colors: active) {
94
+ background-color: CanvasText;
95
+ }
88
96
  }
89
97
  }
90
98
 
@@ -38,7 +38,7 @@ $paginator-width-full: $button-width + $gap-size + $page-width * $number-of-page
38
38
 
39
39
  &--active {
40
40
  color: var(--fkds-color-action-text-inverted-default);
41
- background-color: var(--fkds-color-action-background-primary-default);
41
+ background-color: var(--fkds-color-select-background-primary-default);
42
42
  @include forcedcolors.selected-indicator;
43
43
  }
44
44
 
@@ -38,6 +38,10 @@
38
38
  padding: var(--padding-input-fields);
39
39
  width: var(--f-width-full);
40
40
 
41
+ @media (forced-colors: active) {
42
+ border-color: ButtonBorder;
43
+ }
44
+
41
45
  &:hover {
42
46
  background-color: $selectfield-color-background-hover;
43
47
  }
@@ -70,6 +74,10 @@
70
74
  @extend %icon--inset-top-right;
71
75
 
72
76
  color: $selectfield-f-icon-arrow-down-color-content-default;
77
+
78
+ @media (forced-colors: active) {
79
+ color: buttonText;
80
+ }
73
81
  }
74
82
 
75
83
  &__error-popup-icon {
@@ -1,69 +1,15 @@
1
1
  @use "../../core";
2
2
  @use "../../core/size";
3
- @use "variables" as *;
4
-
5
- // Selectfield
6
- $sortfilter-field-margin-bottom: 0.85rem !default;
7
-
8
- // Selectfield label
9
- $sortfilter-field-label-margin-right: size.$margin-100 !default;
10
- $sortfilter-field-label-padding-top: size.$padding-050 !default;
11
-
12
- // Header
13
- $sortfilter-header-font-size: var(--f-font-size-h2) !default;
14
- $sortfilter-header-padding-top: size.$padding-025 !default;
15
3
 
16
4
  .sort-filter-dataset {
17
5
  &__sort {
18
6
  min-width: 80px;
19
7
  }
20
8
 
21
- &__search {
22
- position: relative;
23
-
24
- input {
25
- padding-left: 2.1rem;
26
- padding-right: 2.1rem;
27
-
28
- @include core.breakpoint-up(md) {
29
- width: 160px;
30
- }
31
- }
32
-
33
- &__magnify-icon {
34
- position: absolute;
35
- left: size.$margin-175;
36
- height: var(--f-height-large);
37
-
38
- /* same as textfield */
39
- z-index: 1;
40
-
41
- /* In front of input field */
42
- width: 1.2rem;
43
- color: $sort-filter-dateset-color-icon-search;
44
-
45
- @include core.breakpoint-down(sm) {
46
- top: size.$margin-150;
47
- left: size.$margin-075;
48
- }
49
- }
50
-
51
- &__close-icon.button--discrete {
52
- position: absolute;
53
- top: calc(-1 * size.$margin-075);
54
- right: 0;
55
- color: $sort-filter-dateset-color-icon-clear;
56
- cursor: pointer;
57
- padding: 1rem;
58
-
59
- @include core.breakpoint-down(sm) {
60
- top: size.$margin-100;
61
- }
62
- }
63
-
64
- &__close-icon.button--discrete:hover {
65
- box-shadow: none;
66
- background-color: transparent;
9
+ &__search input {
10
+ @include core.breakpoint-up(md) {
11
+ // technical debt: should use `FTextField` `input-width` prop but is not compatible with `inline`.
12
+ width: 160px;
67
13
  }
68
14
  }
69
15
  }
@@ -1,2 +1 @@
1
- $sort-filter-dateset-color-icon-clear: var(--fkds-color-text-secondary) !default;
2
- $sort-filter-dateset-color-icon-search: var(--fkds-color-text-secondary) !default;
1
+ // stylelint-disable no-empty-source -- placeholder file
@@ -5,6 +5,7 @@
5
5
  $vertical-padding: core.densify(size.$padding-025);
6
6
  $horizontal-padding: size.$padding-050;
7
7
  $underline-thickness: 3px;
8
+ $editable-min-height: calc(var(--f-font-size-standard) * var(--f-line-height-large) + ($vertical-padding * 2) + ($table-ng-selection-outline * 2));
8
9
 
9
10
  .table-ng__cell {
10
11
  padding: $vertical-padding $horizontal-padding;
@@ -14,8 +15,8 @@ $underline-thickness: 3px;
14
15
  &:focus,
15
16
  &:focus-within {
16
17
  box-shadow: none;
17
- outline: 3px solid $table-ng-cell-color-outline;
18
- outline-offset: -3px;
18
+ outline: $table-ng-selection-outline solid $table-ng-cell-color-outline;
19
+ outline-offset: -$table-ng-selection-outline;
19
20
  }
20
21
 
21
22
  &:not(&--menu-open):hover:has(button) {
@@ -67,6 +68,8 @@ $underline-thickness: 3px;
67
68
  }
68
69
 
69
70
  .table-ng__editable {
71
+ min-block-size: $editable-min-height;
72
+
70
73
  &:focus-within {
71
74
  box-shadow: inset 0 (-$underline-thickness) 0 0 $table-ng-cell-color-underline;
72
75
  border-radius: 0;
@@ -203,8 +206,8 @@ $underline-thickness: 3px;
203
206
 
204
207
  &:focus {
205
208
  box-shadow: none;
206
- outline: 3px solid $table-ng-cell-color-outline;
207
- outline-offset: -3px;
209
+ outline: $table-ng-selection-outline solid $table-ng-cell-color-outline;
210
+ outline-offset: -$table-ng-selection-outline;
208
211
  }
209
212
  }
210
213
 
@@ -242,6 +245,7 @@ $underline-thickness: 3px;
242
245
 
243
246
  &__text {
244
247
  flex: 1 1 auto;
248
+ white-space: pre;
245
249
  }
246
250
 
247
251
  &__numeric {
@@ -268,8 +272,8 @@ $underline-thickness: 3px;
268
272
 
269
273
  .table-ng [tabindex="0"]:focus,
270
274
  .table-ng [tabindex="0"]:focus-visible {
271
- outline: 3px solid CanvasText;
272
- outline-offset: -3px;
275
+ outline: $table-ng-selection-outline solid CanvasText;
276
+ outline-offset: -$table-ng-selection-outline;
273
277
  background: transparent;
274
278
  }
275
279
 
@@ -13,8 +13,8 @@ $horizontal-padding: size.$padding-050;
13
13
  &:focus,
14
14
  &:focus-within {
15
15
  box-shadow: none;
16
- border-bottom: 2px solid var(--f-color-focus);
17
- border-right: 1px solid var(--f-color-focus);
16
+ outline: $table-ng-selection-outline solid $table-ng-cell-color-outline;
17
+ outline-offset: -$table-ng-selection-outline;
18
18
  }
19
19
 
20
20
  &--selectable {
@@ -27,6 +27,11 @@ $horizontal-padding: size.$padding-050;
27
27
  vertical-align: middle;
28
28
  accent-color: $table-ng-button-primary-color-background-default;
29
29
  }
30
+
31
+ input[type="checkbox"]:focus,
32
+ input[type="checkbox"]:focus-visible {
33
+ box-shadow: none;
34
+ }
30
35
  }
31
36
 
32
37
  &--rowheader {
@@ -1,3 +1,6 @@
1
+ // Selection
2
+ $table-ng-selection-outline: 3px;
3
+
1
4
  // Caption
2
5
  $table-ng-caption-background: transparent !default;
3
6
  $table-ng-caption-foreground: var(--fkds-color-text-primary) !default;
@@ -50,10 +50,21 @@
50
50
  &.disabled:hover,
51
51
  &:disabled,
52
52
  &:disabled:hover,
53
+ &[aria-disabled="true"],
54
+ &[aria-disabled="true"]:hover,
53
55
  &#{$name}--disabled,
54
56
  &#{$name}--disabled:hover {
55
57
  background-color: $background-color--disabled;
56
58
  border-color: $border-color--disabled;
57
59
  color: $color--disabled;
60
+ pointer-events: none;
61
+ }
62
+
63
+ &[aria-disabled="true"] {
64
+ pointer-events: none;
65
+ @media (forced-colors: active) {
66
+ color: GrayText;
67
+ border-color: GrayText;
68
+ }
58
69
  }
59
70
  }
@@ -5,7 +5,11 @@
5
5
 
6
6
  $calendar-icon-padding: 5px;
7
7
  $calendar-icon-disabled-border-width: 1px;
8
+ $calendar-icon-forced-colors-border-width: 2px;
8
9
  $calendar-icon-disabled-padding: calc($calendar-icon-padding - $calendar-icon-disabled-border-width);
10
+ $calendar-icon-disabled-forced-colors-padding: calc($calendar-icon-padding - $calendar-icon-forced-colors-border-width);
11
+ $calendar-icon-forced-colors-padding: calc($calendar-icon-padding - $calendar-icon-forced-colors-border-width);
12
+
9
13
  %calendar-title {
10
14
  font-size: 1.5rem;
11
15
  font-weight: bold;
@@ -71,12 +75,27 @@ $calendar-icon-disabled-padding: calc($calendar-icon-padding - $calendar-icon-di
71
75
  border-radius: 50%;
72
76
  box-shadow: var(--f-button-shadow);
73
77
 
78
+ @media (forced-colors: active) {
79
+ background-color: transparent;
80
+ border: $calendar-icon-forced-colors-border-width solid ButtonBorder;
81
+ color: ButtonText;
82
+ padding: $calendar-icon-forced-colors-padding;
83
+ }
84
+
74
85
  &--disabled {
75
86
  color: $calendarnavbar-f-icon-arrow-color-content-disabled;
76
87
  background-color: $calendarnavbar-button-color-background-disabled;
77
88
  padding: $calendar-icon-disabled-padding;
78
89
  border: $calendar-icon-disabled-border-width solid $calendarnavbar-button-color-border-disabled;
79
90
  box-shadow: none;
91
+
92
+ @media (forced-colors: active) {
93
+ background-color: transparent;
94
+ border-color: GrayText;
95
+ border-width: $calendar-icon-forced-colors-border-width;
96
+ color: GrayText;
97
+ padding: $calendar-icon-disabled-forced-colors-padding;
98
+ }
80
99
  }
81
100
  }
82
101
 
@@ -86,5 +105,9 @@ $calendar-icon-disabled-padding: calc($calendar-icon-padding - $calendar-icon-di
86
105
  border: none;
87
106
  background-color: transparent;
88
107
  cursor: pointer;
108
+
109
+ @media (forced-colors: active) {
110
+ border-color: ButtonBorder;
111
+ }
89
112
  }
90
113
  }