@fkui/design 5.36.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.
Files changed (133) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +3 -0
  3. package/lib/fkui-exp.css +7818 -0
  4. package/lib/fkui-exp.min.css +1 -0
  5. package/lib/fkui-int.css +7818 -0
  6. package/lib/fkui-int.min.css +1 -0
  7. package/lib/fonts.css +3 -0
  8. package/lib/fonts.min.css +1 -0
  9. package/package.json +70 -0
  10. package/src/_core.scss +1 -0
  11. package/src/assets/images/fk-logo-default.svg +22 -0
  12. package/src/assets/images/fk-logo-primary-large.svg +161 -0
  13. package/src/assets/images/fk-logo-primary-small.svg +1 -0
  14. package/src/assets/images/fk-logo-primary.svg +23 -0
  15. package/src/assets/images/fk-logo-small.svg +5 -0
  16. package/src/components/_all.scss +60 -0
  17. package/src/components/_z-index.scss +6 -0
  18. package/src/components/anchor/_anchor.scss +27 -0
  19. package/src/components/badge/_badge.scss +72 -0
  20. package/src/components/button/_button.scss +497 -0
  21. package/src/components/calendar-day/_calendar-day.scss +86 -0
  22. package/src/components/calendar-deprecated/_calendar-deprecated.scss +628 -0
  23. package/src/components/card/_card.scss +51 -0
  24. package/src/components/checkbox/_all.scss +2 -0
  25. package/src/components/checkbox/_checkbox-group.scss +18 -0
  26. package/src/components/checkbox/_checkbox.scss +111 -0
  27. package/src/components/chip/_chip.scss +91 -0
  28. package/src/components/close-button/_close-button.scss +16 -0
  29. package/src/components/contextmenu/_contextmenu.scss +54 -0
  30. package/src/components/crud-dataset/_crud-dataset.scss +18 -0
  31. package/src/components/datepicker-field/_datepicker-field.scss +76 -0
  32. package/src/components/dialogue-tree/_dialogue-tree.scss +54 -0
  33. package/src/components/entrypoint/_entrypoint.scss +40 -0
  34. package/src/components/error-list/_error-list.scss +54 -0
  35. package/src/components/expandable-panel/_expandable-panel.scss +113 -0
  36. package/src/components/expandable-paragraph/_expandable-paragraph.scss +97 -0
  37. package/src/components/fieldset/_fieldset.scss +22 -0
  38. package/src/components/file-item/_file-item.scss +80 -0
  39. package/src/components/file-selector/_file-selector.scss +28 -0
  40. package/src/components/file-uploader/_file-uploader.scss +7 -0
  41. package/src/components/form/_all.scss +2 -0
  42. package/src/components/form/_form-step.scss +91 -0
  43. package/src/components/form/_form.scss +8 -0
  44. package/src/components/group/_group.scss +8 -0
  45. package/src/components/icon/_icon.scss +175 -0
  46. package/src/components/indent/_indent.scss +11 -0
  47. package/src/components/label/_label.scss +47 -0
  48. package/src/components/layout-application-template/_layout-application-template.scss +75 -0
  49. package/src/components/layout-navigation/_layout-navigation.scss +124 -0
  50. package/src/components/layout-secondary/_layout-secondary.scss +129 -0
  51. package/src/components/list/_list.scss +117 -0
  52. package/src/components/loader/_loader.scss +179 -0
  53. package/src/components/message-box/_message-box.scss +121 -0
  54. package/src/components/modal/_modal.scss +190 -0
  55. package/src/components/navbar/_navbar-header.scss +77 -0
  56. package/src/components/navbar/_navbar-nav.scss +30 -0
  57. package/src/components/navbar/_navbar.scss +71 -0
  58. package/src/components/offline/_offline.scss +40 -0
  59. package/src/components/output-field/_output-field.scss +23 -0
  60. package/src/components/page-header/_page-header.scss +96 -0
  61. package/src/components/progressbar/_progressbar.scss +34 -0
  62. package/src/components/radio-button/_all.scss +2 -0
  63. package/src/components/radio-button/_item.scss +54 -0
  64. package/src/components/radio-button/_radio-button-group.scss +38 -0
  65. package/src/components/radio-button/_radio-button.scss +106 -0
  66. package/src/components/select-field/_select-field.scss +88 -0
  67. package/src/components/sort-filter-dataset/_sort-filter-dataset.scss +70 -0
  68. package/src/components/static-panel/_static-panel.scss +31 -0
  69. package/src/components/table/_table.scss +415 -0
  70. package/src/components/text-field/_text-field.scss +127 -0
  71. package/src/components/textarea-field/_textarea-field.scss +55 -0
  72. package/src/components/tooltip/_tooltip.scss +87 -0
  73. package/src/components/wizard/_all.scss +2 -0
  74. package/src/components/wizard/_wizard-step.scss +318 -0
  75. package/src/components/wizard/_wizard.scss +5 -0
  76. package/src/core/_all.scss +6 -0
  77. package/src/core/_config-variables.scss +23 -0
  78. package/src/core/_density.scss +11 -0
  79. package/src/core/_global.scss +47 -0
  80. package/src/core/_mixins.scss +8 -0
  81. package/src/core/_reset.scss +60 -0
  82. package/src/core/_size.scss +23 -0
  83. package/src/core/helpers/_all.scss +2 -0
  84. package/src/core/helpers/_helpers.scss +19 -0
  85. package/src/core/helpers/accessibility/_all.scss +2 -0
  86. package/src/core/helpers/accessibility/_focus.scss +24 -0
  87. package/src/core/helpers/accessibility/_screenreader.scss +11 -0
  88. package/src/core/layout/_all.scss +2 -0
  89. package/src/core/layout/grid/_all.scss +1 -0
  90. package/src/core/layout/grid/_grid.scss +135 -0
  91. package/src/core/layout/positioning/_all.scss +1 -0
  92. package/src/core/layout/positioning/_positioning.scss +16 -0
  93. package/src/core/mixins/_all.scss +9 -0
  94. package/src/core/mixins/_anchor.scss +17 -0
  95. package/src/core/mixins/_arrow-creator.scss +51 -0
  96. package/src/core/mixins/_breakpoints.scss +42 -0
  97. package/src/core/mixins/_button.scss +78 -0
  98. package/src/core/mixins/_button_icon.scss +51 -0
  99. package/src/core/mixins/_circle.scss +21 -0
  100. package/src/core/mixins/_focus.scss +4 -0
  101. package/src/core/mixins/_label-inline.scss +19 -0
  102. package/src/core/mixins/_sr-only.scss +11 -0
  103. package/src/core/typography/_all.scss +1 -0
  104. package/src/core/typography/_headings.scss +88 -0
  105. package/src/core/utils/_all.scss +1 -0
  106. package/src/core/utils/_functions.scss +41 -0
  107. package/src/fkui-exp.scss +1 -0
  108. package/src/fkui-int.scss +1 -0
  109. package/src/fkui.scss +3 -0
  110. package/src/fonts.scss +3 -0
  111. package/src/internal-components/IFlex/_iflex.scss +98 -0
  112. package/src/internal-components/IMenu/_imenu.scss +106 -0
  113. package/src/internal-components/IPopupMenu/_ipopupmenu.scss +50 -0
  114. package/src/internal-components/ISkipLink/_iskiplink.scss +16 -0
  115. package/src/internal-components/_all.scss +11 -0
  116. package/src/internal-components/animate-expand/_animate-expand.scss +17 -0
  117. package/src/internal-components/calendar/_calendar.scss +7 -0
  118. package/src/internal-components/calendar-month/_month.scss +74 -0
  119. package/src/internal-components/calendar-navbar/_navbar.scss +55 -0
  120. package/src/internal-components/popup/_popup.scss +35 -0
  121. package/src/internal-components/popupError/_popuperror.scss +116 -0
  122. package/src/internal-components/popupError/arrows/_bottom-before.scss +22 -0
  123. package/src/internal-components/popupError/arrows/_bottom.scss +19 -0
  124. package/src/internal-components/popupError/arrows/_left-before.scss +22 -0
  125. package/src/internal-components/popupError/arrows/_left.scss +19 -0
  126. package/src/internal-components/popupError/arrows/_right-before.scss +22 -0
  127. package/src/internal-components/popupError/arrows/_right.scss +19 -0
  128. package/src/internal-components/popupError/arrows/_top-before.scss +22 -0
  129. package/src/internal-components/popupError/arrows/_top.scss +19 -0
  130. package/stylelint/index.js +3 -0
  131. package/stylelint/recommended.js +6 -0
  132. package/stylelint/rules/deprecatedVariable/index.js +93 -0
  133. package/stylelint/rules/index.js +3 -0
@@ -0,0 +1,111 @@
1
+ @use "../../core/size";
2
+ @use "../../core/mixins/focus" as *;
3
+ @use "../../core/mixins/sr-only" as *;
4
+ @use "../../core/utils/functions" as *;
5
+
6
+ $checkbox_label_offset: 0.1rem;
7
+ $CHECKBOX_SELECTOR: ".checkbox" !default;
8
+
9
+ %checkbox-icon-white {
10
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxhZ2VyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyMCAyMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjAgMjAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cmVjdCB4PSIzLjQ3NCIgeT0iOS4xOTQiIGZpbGw9IiMzQzU1OTIiIHdpZHRoPSIwIiBoZWlnaHQ9IjAiLz4KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTguMzc2LDE1LjAwNWMtMC40MTYsMC0wLjgzMi0wLjE1OC0xLjE0OS0wLjQ3NWwtMy4yNS0zLjI0M2MtMC42MzUtMC42MzQtMC42MzUtMS42NiwwLTIuMjkzCgljMC42MzUtMC42MzMsMS42NjMtMC42MzMsMi4yOTgsMGwyLjEwMSwyLjA5N2w1LjM1MS01LjM0YzAuNjM1LTAuNjM0LDEuNjYzLTAuNjM0LDIuMjk4LDBjMC42MzUsMC42MzMsMC42MzUsMS42NTksMCwyLjI5MwoJbC02LjUsNi40ODdDOS4yMDcsMTQuODQ3LDguNzkyLDE1LjAwNSw4LjM3NiwxNS4wMDV6Ii8+Cjwvc3ZnPgo=");
11
+ }
12
+
13
+ #{$CHECKBOX_SELECTOR} {
14
+ min-height: var(--f-height-medium);
15
+ margin-bottom: densify(size.$margin-100);
16
+
17
+ &:last-child {
18
+ margin-bottom: 0;
19
+ }
20
+
21
+ &__input {
22
+ @include sr-only;
23
+
24
+ // Set height so that IE11 will scroll element into view when navigating (tab, arrow).
25
+ // Use 4 times the height of radio-button to ensure it is inside the view.
26
+ // This height will not be visible.
27
+ min-height: calc(4 * var(--f-height-medium));
28
+ }
29
+
30
+ &__label {
31
+ // Set min-width to avoid being too small when little or no text is used.
32
+ min-width: 4.5rem;
33
+ display: inline-block;
34
+ cursor: pointer;
35
+ font-size: var(--f-font-size-standard);
36
+ line-height: var(--f-line-height-small);
37
+ padding-left: size.$padding-175;
38
+ padding-top: $checkbox_label_offset;
39
+ padding-bottom: $checkbox_label_offset;
40
+ position: relative;
41
+
42
+ // Safari: required to make label clickable
43
+ * {
44
+ pointer-events: none;
45
+ }
46
+
47
+ &::before,
48
+ &::after {
49
+ content: "";
50
+ height: var(--f-icon-size-medium);
51
+ left: 0;
52
+ margin: $checkbox_label_offset 0;
53
+ position: absolute;
54
+ top: 0;
55
+ width: var(--f-icon-size-medium);
56
+ }
57
+
58
+ &::before {
59
+ background: var(--f-background-input);
60
+ border: var(--f-border-width-medium) solid var(--f-border-color-input);
61
+ border-radius: var(--f-border-radius-small);
62
+ cursor: pointer;
63
+ display: block;
64
+ transition:
65
+ background-color ease var(--f-animation-duration-medium),
66
+ border-color ease var(--f-animation-duration-medium),
67
+ opacity ease var(--f-animation-duration-medium);
68
+ }
69
+
70
+ &::after {
71
+ @extend %checkbox-icon-white;
72
+
73
+ background-color: transparent;
74
+ opacity: 0;
75
+ transition: opacity ease var(--f-animation-duration-medium);
76
+ }
77
+ }
78
+
79
+ &.disabled {
80
+ color: var(--f-text-color-input-disabled);
81
+
82
+ #{$CHECKBOX_SELECTOR}__label {
83
+ cursor: default;
84
+
85
+ &::before {
86
+ border: var(--f-border-width-medium) solid var(--f-text-color-input-disabled);
87
+ cursor: inherit;
88
+ }
89
+ }
90
+
91
+ input[type="checkbox"]:checked + label::before {
92
+ background: var(--f-background-input-selected-disabled);
93
+ }
94
+ }
95
+
96
+ input[type="checkbox"]:checked + label::before {
97
+ background-color: var(--f-background-input-selected);
98
+ }
99
+
100
+ input[type="checkbox"]:not(:checked) + #{$CHECKBOX_SELECTOR}__label::before {
101
+ box-shadow: var(--f-input-shadow-inset);
102
+ }
103
+
104
+ input[type="checkbox"]:checked + #{$CHECKBOX_SELECTOR}__label::after {
105
+ opacity: 1;
106
+ }
107
+
108
+ input[type="checkbox"]:focus + #{$CHECKBOX_SELECTOR}__label {
109
+ @include focus-indicator;
110
+ }
111
+ }
@@ -0,0 +1,91 @@
1
+ @use "../../core/size";
2
+ @use "../../core/mixins/breakpoints" as bp;
3
+
4
+ $chip-border-radius: 20px;
5
+
6
+ @mixin chip($group, $item, $type) {
7
+ .#{$group}--chip {
8
+ .#{$group}__label {
9
+ margin-bottom: size.$margin-025;
10
+ }
11
+
12
+ .#{$group}__content {
13
+ margin: -0.25rem;
14
+ }
15
+
16
+ .#{$item} {
17
+ margin: 0;
18
+ padding: size.$padding-025;
19
+
20
+ &.disabled {
21
+ .#{$item}__label {
22
+ background: var(--f-background-button-disabled);
23
+ border-color: var(--f-border-color-button-disabled);
24
+ color: var(--f-text-color-button-disabled);
25
+ cursor: not-allowed;
26
+ }
27
+ }
28
+ }
29
+
30
+ .#{$item}__label {
31
+ display: flex;
32
+ align-items: center;
33
+ cursor: pointer;
34
+ font-weight: var(--f-font-weight-medium);
35
+ padding: size.$padding-050 size.$padding-100;
36
+ border-radius: $chip-border-radius;
37
+ border: var(--f-border-width-medium) solid var(--f-border-color-input);
38
+ background-color: var(--f-background-chip);
39
+ color: var(--f-text-color-chip);
40
+ justify-content: center;
41
+ max-width: 400px;
42
+ user-select: none;
43
+
44
+ &::before,
45
+ &::after {
46
+ display: none;
47
+ }
48
+
49
+ svg {
50
+ margin-right: size.$margin-050;
51
+ }
52
+ }
53
+
54
+ .#{$item}__label:hover {
55
+ border-color: var(--f-border-color-chip-hover);
56
+ background-color: var(--f-background-chip-hover);
57
+ color: var(--f-text-color-chip-hover);
58
+ }
59
+
60
+ input[type="#{$type}"]:checked + .#{$item}__label {
61
+ background: var(--f-background-chip-active);
62
+ border-color: var(--f-border-color-chip-active);
63
+ color: var(--f-text-color-chip-active);
64
+ }
65
+
66
+ input[type="#{$type}"]:focus + label.#{$item}__label {
67
+ border-radius: $chip-border-radius;
68
+ }
69
+ }
70
+
71
+ .#{$group}--chip.#{$group}--horizontal {
72
+ .#{$group}__content {
73
+ flex-flow: row wrap;
74
+
75
+ .#{$item} {
76
+ margin-bottom: 0;
77
+ }
78
+
79
+ @include bp.breakpoint-down(sm) {
80
+ flex-flow: row wrap;
81
+
82
+ .#{$item} {
83
+ margin-bottom: 0;
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ @include chip("radio-button-group", "radio-button", "radio");
91
+ @include chip("checkbox-group", "checkbox", "checkbox");
@@ -0,0 +1,16 @@
1
+ .close-button {
2
+ align-items: center;
3
+ background: inherit;
4
+ border: none;
5
+ color: var(--f-text-color-close-button);
6
+ cursor: pointer;
7
+ display: flex;
8
+ font-weight: 700;
9
+ gap: 0.5rem;
10
+ margin: 0.375rem;
11
+ padding: 0.125rem 0.625rem;
12
+
13
+ .icon {
14
+ min-width: var(--f-icon-size-small);
15
+ }
16
+ }
@@ -0,0 +1,54 @@
1
+ @use "../../core/size";
2
+ @use "../../core/mixins/breakpoints";
3
+ @use "../../core/config-variables";
4
+
5
+ $CONTEXTMENU_SELECTOR: ".contextmenu" !default;
6
+
7
+ #{$CONTEXTMENU_SELECTOR} {
8
+ min-width: 260px;
9
+ background-color: var(--f-background-popupmenu);
10
+
11
+ &__list {
12
+ margin: 0;
13
+ border: 1px solid var(--f-border-color-popupmenu);
14
+ padding: size.$padding-050;
15
+ display: block;
16
+ list-style-type: none;
17
+
18
+ &__item {
19
+ cursor: pointer;
20
+ white-space: normal;
21
+ display: flex;
22
+ align-items: center;
23
+ padding: size.$padding-075;
24
+
25
+ a,
26
+ a:visited,
27
+ a:active {
28
+ color: var(--f-text-color-popupmenu);
29
+ }
30
+
31
+ &:hover {
32
+ color: var(--f-text-color-popupmenu-hover);
33
+ background-color: var(--f-background-popupmenu-vertical-hover);
34
+ }
35
+
36
+ // when desktop, long texts expands popup
37
+ @include breakpoints.breakpoint-up(md) {
38
+ white-space: nowrap;
39
+ }
40
+ }
41
+ }
42
+
43
+ &__separator {
44
+ margin: 0.75rem;
45
+ height: 1px;
46
+ border: none;
47
+ border-top: 1px solid var(--f-border-color-separator-contextmenu);
48
+ }
49
+
50
+ &__lefticon {
51
+ margin-right: 0.75rem;
52
+ min-width: var(--f-icon-size-small);
53
+ }
54
+ }
@@ -0,0 +1,18 @@
1
+ $CRUD_DATASET_SELECTOR: ".crud-dataset" !default;
2
+ $crud-dataset-add-button-margin-top: 0.5rem !default;
3
+ $crud-dataset-add-button-margin-left: 2px !default; // to line up with table or list that has 2px border
4
+
5
+ #{$CRUD_DATASET_SELECTOR} {
6
+ margin: 0 0 var(--f-margin-component-bottom);
7
+
8
+ &__add-button {
9
+ margin-bottom: 0 !important;
10
+ margin-top: $crud-dataset-add-button-margin-top !important;
11
+ margin-left: $crud-dataset-add-button-margin-left;
12
+ }
13
+
14
+ .list,
15
+ .table {
16
+ margin-bottom: 0;
17
+ }
18
+ }
@@ -0,0 +1,76 @@
1
+ @use "../../core/size";
2
+ @use "../../core/config-variables";
3
+ @use "../../core/mixins/breakpoints";
4
+ @use "../../core/utils/functions" as *;
5
+
6
+ $DATEPICKER_FIELD_SELECTOR: ".datepicker-field" !default;
7
+ $POPUP_SELECTOR: ".popup" !default;
8
+
9
+ // 40px = popup spacing (20px) * 2
10
+ $popup-spacing: 40px;
11
+ $calendar-width: calc(100vw - #{$popup-spacing});
12
+
13
+ #{$DATEPICKER_FIELD_SELECTOR} {
14
+ &__button {
15
+ background: transparent;
16
+ border: 0;
17
+ flex: 0 0 auto;
18
+ padding: 0;
19
+ cursor: pointer;
20
+
21
+ .icon {
22
+ color: var(--f-icon-color-primary);
23
+ min-height: var(--f-icon-size-large);
24
+ min-width: var(--f-icon-size-large);
25
+ height: densify(var(--f-icon-size-x-large));
26
+ width: densify(var(--f-icon-size-x-large));
27
+ vertical-align: middle;
28
+ }
29
+
30
+ &:disabled .icon {
31
+ color: var(--f-icon-color-discrete);
32
+ }
33
+ }
34
+
35
+ &__popup {
36
+ // 16px = popup spacing (20px) - 4px
37
+ margin-top: -16px;
38
+ border-radius: var(--f-border-radius-medium);
39
+ border: var(--f-border-width-small) solid var(--f-border-color-modal);
40
+ background-color: var(--f-background-content);
41
+ }
42
+
43
+ &__close {
44
+ display: flex;
45
+ justify-content: flex-end;
46
+ }
47
+
48
+ &__close > &__close__button {
49
+ margin: 0;
50
+ padding: 1rem;
51
+ }
52
+ }
53
+
54
+ #{$POPUP_SELECTOR}--overlay #{$DATEPICKER_FIELD_SELECTOR} {
55
+ &__popup {
56
+ width: $calendar-width;
57
+ max-width: 28rem;
58
+ }
59
+ }
60
+
61
+ #{$POPUP_SELECTOR}--inline #{$DATEPICKER_FIELD_SELECTOR} {
62
+ &__popup {
63
+ width: 100%;
64
+ }
65
+ &__table {
66
+ margin-top: 0;
67
+ }
68
+ &__table .calendar-month__cell {
69
+ padding: 0;
70
+ border-bottom: unset;
71
+ }
72
+ &__table .calendar-month__header-cell {
73
+ background-color: unset;
74
+ border: unset;
75
+ }
76
+ }
@@ -0,0 +1,54 @@
1
+ .dialogue-tree {
2
+ margin: 0 0 var(--f-margin-component-bottom);
3
+
4
+ &__list {
5
+ margin-left: 0;
6
+ padding-left: 0;
7
+ list-style-type: none;
8
+ border-radius: 2px;
9
+ border: 1px solid var(--f-border-color-dialogue-tree);
10
+
11
+ &-item {
12
+ background-color: var(--f-background-dialogue-tree);
13
+ border-bottom: 1px solid var(--f-border-color-dialogue-tree);
14
+ padding: 0.25em;
15
+ height: 60px;
16
+
17
+ &:last-child {
18
+ border-bottom: none;
19
+ }
20
+
21
+ &:hover {
22
+ background-color: var(--f-background-dialogue-tree-hover);
23
+ }
24
+
25
+ button {
26
+ padding: 0 0.75em;
27
+ border: 0;
28
+ width: 100%;
29
+ height: 100%;
30
+ background-color: inherit;
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: space-between;
34
+
35
+ span {
36
+ display: -webkit-box;
37
+ -webkit-line-clamp: 2;
38
+ -webkit-box-orient: vertical;
39
+ overflow: hidden;
40
+ font-weight: var(--f-font-weight-medium);
41
+ font-size: var(--f-font-size-standard);
42
+ color: var(--f-text-color-default);
43
+ text-align: left;
44
+ cursor: pointer;
45
+ }
46
+
47
+ .icon {
48
+ flex-shrink: 0;
49
+ margin-left: 1.25rem;
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,40 @@
1
+ @use "../button/button";
2
+ @use "../../core/mixins";
3
+ @use "../../core/size";
4
+
5
+ $ENTRYPOINT_SELECTOR: ".entrypoint" !default;
6
+
7
+ #{$ENTRYPOINT_SELECTOR} {
8
+ /* stylelint-disable-next-line scss/at-extend-no-missing-placeholder -- technical debt */
9
+ @extend .button;
10
+ @include mixins.make-button-variant($ENTRYPOINT_SELECTOR, button.$button--primary...);
11
+
12
+ & {
13
+ text-align: left;
14
+ padding: size.$padding-100 calc(size.$padding-200 * 2) size.$padding-100 size.$padding-100;
15
+ line-height: var(--f-line-height-large);
16
+ width: 66.667%;
17
+ }
18
+
19
+ @include mixins.breakpoint-down(sm) {
20
+ min-width: 100%;
21
+ }
22
+
23
+ &--full-width {
24
+ min-width: 100%;
25
+ }
26
+
27
+ &__icon {
28
+ /* stylelint-disable-next-line scss/at-extend-no-missing-placeholder -- technical debt */
29
+ @extend .button__icon--end;
30
+
31
+ color: var(--f-icon-color-white);
32
+ top: 50%;
33
+ transform: translate(0, -50%);
34
+ }
35
+
36
+ &:hover {
37
+ // override anchor's underline hover effect
38
+ padding-bottom: size.$padding-100;
39
+ }
40
+ }
@@ -0,0 +1,54 @@
1
+ @use "../../core/config-variables";
2
+ @use "../../core/size";
3
+ @use "../../core/utils/functions" as *;
4
+
5
+ $ERROR_LIST_SELECTOR: ".error-list" !default;
6
+
7
+ #{$ERROR_LIST_SELECTOR} {
8
+ color: var(--f-text-color-error);
9
+ margin: 0 0 densify(var(--f-margin-component-bottom));
10
+
11
+ &--list-style-none {
12
+ list-style-type: none;
13
+ padding: 0;
14
+ }
15
+
16
+ &--padding-left {
17
+ padding-left: size.$padding-100;
18
+ }
19
+
20
+ &__list {
21
+ margin: 0;
22
+ line-height: max(1.5, densify(2));
23
+ }
24
+
25
+ &__bullet::before {
26
+ color: var(--f-text-color-error);
27
+ content: "•";
28
+ display: inline;
29
+ font-size: var(--f-font-size-h4);
30
+ line-height: 0;
31
+ margin-right: size.$margin-075;
32
+ }
33
+
34
+ &__link {
35
+ color: var(--f-text-color-error);
36
+ cursor: pointer;
37
+ list-style-position: inside;
38
+ text-decoration: underline;
39
+
40
+ a {
41
+ color: var(--f-text-color-error);
42
+ }
43
+ }
44
+
45
+ &__icon {
46
+ max-width: none;
47
+ position: relative;
48
+ top: 3px;
49
+ }
50
+
51
+ &--list-item {
52
+ display: list-item;
53
+ }
54
+ }
@@ -0,0 +1,113 @@
1
+ @use "../../core/mixins/circle";
2
+ @use "../../core/typography/headings";
3
+ @use "../icon/icon";
4
+ @use "../../core/size";
5
+ @use "../../core/utils/functions" as *;
6
+
7
+ $EXPANDABLE_PANEL_SELECTOR: ".expandable-panel" !default;
8
+ $EXPANDABLE_PANEL_LINE_HEIGHT: var(--f-line-height-medium);
9
+ $ICON_MARGIN: 0.5rem;
10
+ $ICON_WIDTH: var(--f-icon-size-medium);
11
+
12
+ #{$EXPANDABLE_PANEL_SELECTOR} {
13
+ margin-bottom: densify(size.$margin-200);
14
+
15
+ &__icon {
16
+ @include circle.circle($background: var(--f-icon-color-expandable-panel), $size: $ICON_WIDTH);
17
+
18
+ margin-top: calc((#{$EXPANDABLE_PANEL_LINE_HEIGHT} * 1em - #{$ICON_WIDTH}) / 2); // Unit "em" intended here, align icon to header
19
+ display: flex;
20
+ color: var(--f-background-heading-expandable-panel);
21
+ padding: 3px; // cross icon size
22
+ flex-shrink: 0; // needed for IE11
23
+ margin-right: $ICON_MARGIN;
24
+ .icon {
25
+ transition: transform var(--f-animation-duration-long) ease;
26
+ }
27
+ }
28
+
29
+ &.expandable-panel--expanded {
30
+ .expandable-panel__icon {
31
+ svg:nth-child(2) {
32
+ transform: rotate(0);
33
+ }
34
+ }
35
+
36
+ .expandable-panel__content {
37
+ height: auto;
38
+ }
39
+
40
+ .expandable-panel__heading button {
41
+ border: var(--f-expandable-panel-heading-border-open);
42
+ }
43
+ }
44
+
45
+ &.expandable-panel--collapsed {
46
+ .expandable-panel__icon {
47
+ svg:nth-child(2) {
48
+ transform: rotate(-90deg);
49
+ }
50
+ }
51
+ }
52
+
53
+ &__heading {
54
+ /* stylelint-disable-next-line scss/at-extend-no-missing-placeholder -- technical debt */
55
+ @extend .heading--h3;
56
+
57
+ margin-bottom: 0 !important;
58
+
59
+ button {
60
+ background-color: var(--f-background-heading-expandable-panel);
61
+ border: var(--f-expandable-panel-heading-border-close);
62
+ border-radius: var(--f-expandable-panel-heading-border-radius);
63
+ color: var(--f-text-color-heading-expandable-panel);
64
+ cursor: pointer;
65
+ display: flex;
66
+ margin: 0;
67
+ padding: densify(size.$padding-100) size.$padding-100;
68
+ position: relative;
69
+ text-align: left;
70
+ width: 100%;
71
+
72
+ &:focus,
73
+ &:hover {
74
+ background-color: var(--f-background-heading-expandable-panel-hover);
75
+ }
76
+ }
77
+ }
78
+
79
+ &__notification {
80
+ @include circle.circle(
81
+ $background: var(--f-icon-color-notice),
82
+ $border: var(--f-border-width-medium) solid var(--f-icon-color-white),
83
+ $size: var(--f-icon-size-x-large)
84
+ );
85
+
86
+ display: inline-block;
87
+ padding: 0.27rem;
88
+ position: absolute;
89
+ right: 1.5rem;
90
+ top: calc(-0.5 * size.$padding-150);
91
+ line-height: 0;
92
+
93
+ svg {
94
+ color: var(--f-icon-color-white);
95
+ height: auto;
96
+ width: auto;
97
+ }
98
+ }
99
+
100
+ &__content {
101
+ height: 0;
102
+ overflow: hidden;
103
+ transition: height var(--f-animation-duration-medium) ease-in;
104
+ }
105
+
106
+ &__body {
107
+ background-color: var(--f-background-expandable-panel);
108
+ border: var(--f-border-width-medium) solid var(--f-border-color-panel);
109
+ border-top: 0;
110
+ line-height: inherit;
111
+ padding: densify(size.$padding-150) size.$padding-150;
112
+ }
113
+ }