superdesk-ui-framework 3.1.9 → 3.1.13

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 (113) hide show
  1. package/app/styles/_helpers.scss +926 -776
  2. package/app/styles/_master-desk.scss +2 -2
  3. package/app/styles/_toggle-box.scss +45 -28
  4. package/app/styles/components/_sd-collapse-box.scss +113 -0
  5. package/app/styles/components/_subnav.scss +0 -1
  6. package/app/styles/design-tokens/_design-tokens-general.scss +19 -5
  7. package/app/styles/design-tokens/_new-colors.scss +11 -1
  8. package/app/styles/form-elements/_inputs.scss +14 -0
  9. package/app/styles/grids/_grid-layout.scss +3 -0
  10. package/app-typescript/components/DatePicker.tsx +6 -0
  11. package/app-typescript/components/Layouts/LayoutContainer.tsx +7 -1
  12. package/app-typescript/components/Layouts/PageLayout.tsx +2 -1
  13. package/app-typescript/components/TimePickerV2.tsx +222 -0
  14. package/app-typescript/components/ToggleBox/CustomHeaderToggleBox.tsx +61 -0
  15. package/app-typescript/components/{Togglebox.tsx → ToggleBox/SimpleToggleBox.tsx} +13 -34
  16. package/app-typescript/components/ToggleBox/index.tsx +43 -0
  17. package/app-typescript/components/TreeMenu.tsx +12 -7
  18. package/app-typescript/components/TreeSelect/TreeSelect.tsx +13 -12
  19. package/app-typescript/components/TreeSelect/TreeSelectItem.tsx +11 -1
  20. package/app-typescript/index.ts +2 -1
  21. package/dist/components/Alerts.tsx +1 -1
  22. package/dist/components/ContentDivider.tsx +1 -1
  23. package/dist/components/DragHandleDocs.tsx +2 -2
  24. package/dist/components/Index.tsx +105 -50
  25. package/dist/components/Panel.tsx +13 -13
  26. package/dist/components/Tags.tsx +2 -2
  27. package/dist/components/TimePicker.tsx +43 -1
  28. package/dist/components/Togglebox.tsx +171 -17
  29. package/dist/components/TreeMenu.tsx +2 -0
  30. package/dist/components/utilities/BorderRadiusUtilities.tsx +56 -0
  31. package/dist/components/utilities/BorderUtilities.tsx +170 -0
  32. package/dist/components/utilities/DisplayUtilities.tsx +116 -0
  33. package/dist/components/utilities/FlexAndGridUtilities.tsx +551 -0
  34. package/dist/components/utilities/ObjectFitUtilities.tsx +53 -0
  35. package/dist/components/utilities/ObjectPositionUtilities.tsx +68 -0
  36. package/dist/components/utilities/OpacityUtilities.tsx +64 -0
  37. package/dist/components/utilities/OverflowUtilities.tsx +93 -0
  38. package/dist/components/utilities/PositionUtilities.tsx +52 -0
  39. package/dist/components/utilities/ShadowUtilities.tsx +123 -0
  40. package/dist/components/utilities/SpacingUtilities.tsx +2 -2
  41. package/dist/components/utilities/TextUtilities.tsx +83 -4
  42. package/dist/components.html +2 -4
  43. package/dist/components_deprecated/modals.html +2 -2
  44. package/dist/components_deprecated.html +1 -0
  45. package/dist/design-patterns/Index.tsx +1 -42
  46. package/dist/design-patterns/ThreePaneLayoutPattern.tsx +1 -1
  47. package/dist/design-patterns.html +2 -4
  48. package/dist/design.html +1 -0
  49. package/dist/examples.bundle.css +15 -7
  50. package/dist/examples.bundle.js +4283 -2189
  51. package/dist/main.html +1 -0
  52. package/dist/playgrounds/react-playgrounds/Rundowns.tsx +1 -1
  53. package/dist/playgrounds/react-playgrounds/TestGround.tsx +214 -2
  54. package/dist/playgrounds.html +1 -0
  55. package/dist/superdesk-ui.bundle.css +1397 -1019
  56. package/dist/superdesk-ui.bundle.js +2039 -1653
  57. package/dist/vendor.bundle.js +16 -16
  58. package/examples/css/docs-page.css +15 -7
  59. package/examples/js/doc.js +13 -1
  60. package/examples/pages/components/Alerts.tsx +1 -1
  61. package/examples/pages/components/ContentDivider.tsx +1 -1
  62. package/examples/pages/components/DragHandleDocs.tsx +2 -2
  63. package/examples/pages/components/Index.tsx +105 -50
  64. package/examples/pages/components/Panel.tsx +13 -13
  65. package/examples/pages/components/Tags.tsx +2 -2
  66. package/examples/pages/components/TimePicker.tsx +43 -1
  67. package/examples/pages/components/Togglebox.tsx +171 -17
  68. package/examples/pages/components/TreeMenu.tsx +2 -0
  69. package/examples/pages/components/utilities/BorderRadiusUtilities.tsx +56 -0
  70. package/examples/pages/components/utilities/BorderUtilities.tsx +170 -0
  71. package/examples/pages/components/utilities/DisplayUtilities.tsx +116 -0
  72. package/examples/pages/components/utilities/FlexAndGridUtilities.tsx +551 -0
  73. package/examples/pages/components/utilities/ObjectFitUtilities.tsx +53 -0
  74. package/examples/pages/components/utilities/ObjectPositionUtilities.tsx +68 -0
  75. package/examples/pages/components/utilities/OpacityUtilities.tsx +64 -0
  76. package/examples/pages/components/utilities/OverflowUtilities.tsx +93 -0
  77. package/examples/pages/components/utilities/PositionUtilities.tsx +52 -0
  78. package/examples/pages/components/utilities/ShadowUtilities.tsx +123 -0
  79. package/examples/pages/components/utilities/SpacingUtilities.tsx +2 -2
  80. package/examples/pages/components/utilities/TextUtilities.tsx +83 -4
  81. package/examples/pages/components.html +2 -4
  82. package/examples/pages/components_deprecated/modals.html +2 -2
  83. package/examples/pages/components_deprecated.html +1 -0
  84. package/examples/pages/design-patterns/Index.tsx +1 -42
  85. package/examples/pages/design-patterns/ThreePaneLayoutPattern.tsx +1 -1
  86. package/examples/pages/design-patterns.html +2 -4
  87. package/examples/pages/design.html +1 -0
  88. package/examples/pages/main.html +1 -0
  89. package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +1 -1
  90. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +214 -2
  91. package/examples/pages/playgrounds.html +1 -0
  92. package/package.json +1 -1
  93. package/react/components/DatePicker.d.ts +3 -0
  94. package/react/components/DatePicker.js +2 -2
  95. package/react/components/Layouts/LayoutContainer.d.ts +1 -0
  96. package/react/components/Layouts/LayoutContainer.js +8 -1
  97. package/react/components/Layouts/PageLayout.d.ts +1 -0
  98. package/react/components/Layouts/PageLayout.js +1 -1
  99. package/react/components/TimePickerV2.d.ts +28 -0
  100. package/react/components/TimePickerV2.js +189 -0
  101. package/react/components/ToggleBox/CustomHeaderToggleBox.d.ts +12 -0
  102. package/react/components/ToggleBox/CustomHeaderToggleBox.js +81 -0
  103. package/react/components/ToggleBox/SimpleToggleBox.d.ts +18 -0
  104. package/react/components/{Togglebox.js → ToggleBox/SimpleToggleBox.js} +15 -13
  105. package/react/components/ToggleBox/index.d.ts +27 -0
  106. package/react/components/ToggleBox/index.js +71 -0
  107. package/react/components/TreeMenu.js +9 -7
  108. package/react/components/TreeSelect/TreeSelect.js +9 -11
  109. package/react/components/TreeSelect/TreeSelectItem.d.ts +1 -0
  110. package/react/components/TreeSelect/TreeSelectItem.js +7 -4
  111. package/react/index.d.ts +2 -1
  112. package/react/index.js +7 -5
  113. package/react/components/Togglebox.d.ts +0 -28
@@ -39,7 +39,7 @@ $board-header-border-color: var(--color-kanban-border);
39
39
  }
40
40
 
41
41
  .sd-board__content-block {
42
- @include sd-shadow('z2');
42
+ box-shadow: var(--sd-shadow--z2);
43
43
  border-radius: $border-radius__base--x-small;
44
44
  background-color: var(--sd-item__main-Bg);
45
45
  display: flex;
@@ -51,7 +51,7 @@ $board-header-border-color: var(--color-kanban-border);
51
51
  cursor: pointer;
52
52
 
53
53
  &:hover {
54
- @include sd-shadow('z3');
54
+ box-shadow: var(--sd-shadow--z3);
55
55
  outline: 1px solid var(--sd-colour-interactive--alpha-50);
56
56
  }
57
57
  }
@@ -2,30 +2,31 @@
2
2
 
3
3
  .toggle-box {
4
4
  position: relative;
5
- align-self: stretch;
6
-
5
+ display: grid;
6
+ grid-template-columns: 1fr;
7
+ grid-template-rows: auto 1fr auto;
8
+ transition: grid-template-rows 0.2s ease;
7
9
  &.hidden {
10
+ grid-template-rows: auto 0fr auto;
11
+ transition: grid-template-rows 0.2s ease;
8
12
  .toggle-box__chevron {
9
13
  i {
10
14
  transform: rotate(0);
11
15
  }
12
16
  }
13
-
14
17
  .toggle-box__chevron--circle {
15
18
  background-color: var(--sd-colour-btn-bg-neutral);
16
-
17
19
  i {
18
20
  color: var(--color-text-light);
19
21
  }
20
22
  }
21
-
22
23
  .toggle-box__content-wraper {
23
- max-height: 0;
24
24
  transition: all ease-out .5s;
25
25
  }
26
-
27
- .toggle-box__header {
28
- margin-block-end: 0;
26
+ }
27
+ &.open {
28
+ .toggle-box__content {
29
+ animation: fadeIn 0.3s ease-in 0s 1;
29
30
  }
30
31
  }
31
32
 
@@ -39,23 +40,35 @@
39
40
  }
40
41
  }
41
42
  }
43
+ &.toggle-box--large-title {
44
+ .toggle-box__header,
45
+ a.toggle-box__header {
46
+ .toggle-box__label {
47
+ font-size: var(--text-size-medium);
48
+ color: var(--color-text);
49
+ text-transform: none;
50
+ font-weight: 500;
51
+ }
52
+ &:hover {
53
+ .toggle-box__label {
54
+ color: var(--sd-colour-interactive);
55
+ }
56
+ }
57
+ }
58
+ }
42
59
 
43
60
  &.toggle-box--marg-b10 {
44
61
  margin-block-end: 1rem;
45
62
  }
46
-
47
63
  &.toggle-box--margin-none {
48
64
  margin-block-end: 0;
49
65
  }
50
-
51
66
  &.toggle-box--margin-small {
52
67
  margin-block-end: $sd-base-increment * 2;
53
68
  }
54
-
55
69
  &.toggle-box--margin-normal {
56
70
  margin-block-end: $sd-base-increment * 3;
57
71
  }
58
-
59
72
  &.toggle-box--margin-large {
60
73
  margin-block-end: $sd-base-increment * 4;
61
74
  }
@@ -73,12 +86,12 @@
73
86
 
74
87
  .toggle-box__header,
75
88
  a.toggle-box__header {
89
+ grid-row: 1 / 2;
76
90
  display: flex;
77
91
  cursor: pointer;
78
- margin-block-end: 1.8rem;
79
92
  align-items: center;
80
93
  text-decoration: none !important;
81
-
94
+ align-self: flex-start;
82
95
  .toggle-box__chevron {
83
96
  i {
84
97
  transition: all .3s;
@@ -87,10 +100,11 @@ a.toggle-box__header {
87
100
  }
88
101
 
89
102
  .toggle-box__label {
90
- font-size: 1.2rem;
91
- padding: 0 1rem 0 0.8rem;
92
- color: var(--color-label-text);
103
+ font-size: var(--text-size-x-small);
104
+ padding: 0 var(--space--2) 0 var(--space--1);
105
+ color: var(--color-text-light);
93
106
  text-transform: uppercase;
107
+ transition: color 0.2s ease;
94
108
  }
95
109
 
96
110
  .toggle-box__line {
@@ -101,7 +115,8 @@ a.toggle-box__header {
101
115
  }
102
116
 
103
117
  &:hover {
104
- .toggle-box__label {
118
+ .toggle-box__label,
119
+ {
105
120
  color: var(--sd-colour-interactive);
106
121
  text-decoration: none !important;
107
122
  }
@@ -115,7 +130,6 @@ a.toggle-box__header {
115
130
  .toggle-box__chevron {
116
131
  box-shadow: 0 0 0 3px $sd-colour--focus-shadow;
117
132
  }
118
-
119
133
  .toggle-box__label {
120
134
  color: var(--sd-colour-interactive);
121
135
  }
@@ -127,30 +141,33 @@ a.toggle-box__header {
127
141
  }
128
142
 
129
143
  .toggle-box__content-wraper {
130
- transition: all ease-out .5s;
144
+ grid-row: 2 / 3;
145
+ transition: grid-template-rows 0.2s ease;
146
+ display: flex;
147
+ flex-direction: column;
148
+ justify-content: flex-start;
149
+ align-items: stretch;
150
+ overflow: hidden;
131
151
  }
132
152
 
133
- .toggle-box__content {
134
- animation: fadeIn 0.3s ease-in 0s 1;
153
+ .toggle-box__content {
154
+ overflow-y: auto;
155
+ padding-block-start: 1.8rem;
156
+ flex:1;
135
157
  }
136
158
 
137
159
  // Buttons
138
160
  .toggle-box__button {
139
161
  color: $grayLight;
140
162
  cursor: pointer;
141
-
142
163
  i {
143
164
  color: $grayLight;
144
165
  margin-inline-end: 0.5rem;
145
166
  vertical-align: text-bottom;
146
167
  }
147
-
148
168
  &:hover {
149
169
  text-decoration: none;
150
170
  color: $white;
151
171
  i { color: $white; }
152
172
  }
153
173
  }
154
-
155
-
156
-
@@ -140,3 +140,116 @@
140
140
  align-items: center;
141
141
  }
142
142
  }
143
+
144
+ // NEW COLLAPSE BOX
145
+ .new-collapse-box {
146
+ --collapse-box-clor-bg: var(--sd-colour-panel-bg--100);
147
+ display: grid;
148
+ grid-template-columns: 1fr;
149
+ grid-template-rows: auto 0fr auto;
150
+ border-radius: var(--b-radius--small);
151
+ position: relative;
152
+ overflow: hidden;
153
+ transition: all 0.2s ease;
154
+ outline: 1px solid var(--sd-colour-line--x-light);
155
+ }
156
+ .new-collapse-box__header {
157
+ grid-row: 1 / 2;
158
+ height: auto;
159
+ padding: 0;
160
+ overflow: hidden;
161
+ transition: all 0.2s ease;
162
+ }
163
+ .new-collapse-box__content {
164
+ grid-row: 2 / 3;
165
+ display: flex;
166
+ flex-direction: column;
167
+ justify-content: flex-start;
168
+ align-items: stretch;
169
+ overflow: hidden;
170
+ padding-block: 0;
171
+ background-color: var(--sd-colour-panel-bg--100);
172
+ transition: grid-template-rows 0.2s ease;
173
+ }
174
+ .new-collapse-box {
175
+ &.new-collapse-box--open {
176
+ grid-template-rows: auto 1fr auto;
177
+ .new-collapse-box__content {
178
+ > .new-collapse-box__content-inner {
179
+ animation: fadeIn 0.3s ease-in 0s 1;
180
+ overflow-y: auto;
181
+ .new-collapse-box { // Nested -- collapse-box inside a parent collapse-box
182
+ &.new-collapse-box--open {
183
+ .new-collapse-box__content {
184
+ .new-collapse-box__content-inner {
185
+ animation: fadeIn2 0.3s ease-in 0s 1;
186
+ }
187
+ }
188
+ }
189
+ }
190
+ }
191
+ }
192
+ &:focus-within {
193
+ outline-color: var(--sd-colour-interactive);
194
+ }
195
+ }
196
+ .sd-list-item {
197
+ border-radius: var(--b-radius--small) var(--b-radius--small) 0 0;
198
+
199
+ + .sd-list-item {
200
+ border-block-start: none;
201
+ }
202
+
203
+ .sd-list-item__border {
204
+ border-radius: var(--b-radius--small) 0 0 0;
205
+ }
206
+ }
207
+ }
208
+ .new-collapse-box__divider {
209
+ position: relative;
210
+ z-index: 1;
211
+ display: flex;
212
+ align-items: center;
213
+ justify-content: center;
214
+ width: 100%;
215
+ min-width: 100%;
216
+ background: linear-gradient(to bottom, transparent 50%, var(--collapse-box-clor-bg) 50%);
217
+ padding-inline: 0;
218
+ margin-inline: 0;
219
+ margin-block-start: -9px;
220
+ margin-block-end: 8px;
221
+ border-block-start: 0;
222
+ border-block-end: 0;
223
+ border-inline-start: 0;
224
+ border-inline-end: 0;
225
+ border-block-start-color: var(--sd-colour-line--light);
226
+ border-style: solid;
227
+ &::before,
228
+ &::after {
229
+ content: "";
230
+ position: relative;
231
+ inset-block-start: 50%;
232
+ width: 50%;
233
+ border-block-start: 1px solid transparent;
234
+ border-top-color: transparent;
235
+ border-top-color: inherit;
236
+ border-block-end: 0;
237
+ border-inline-start: 0;
238
+ border-inline-end: 0;
239
+ transform: translateY(50%);
240
+ border-style: inherit;
241
+ }
242
+ .new-collapse-box__divider-label {
243
+ background-color: var(--collapse-box-button-color-bg-default);
244
+ color: var(--collapse-box-button-color-fg-default);
245
+ transition: all 0.2s ease;
246
+ }
247
+ &:hover {
248
+ border-block-start-color: var(--sd-colour-line--medium);
249
+ .new-collapse-box__divider-label {
250
+ background-color: var(--collapse-box-button-color-bg-hover);
251
+ color: var(--collapse-box-button-color-fg-hover);
252
+ transition: all 0.2s ease;
253
+ }
254
+ }
255
+ }
@@ -12,7 +12,6 @@
12
12
  align-items: center;
13
13
  color: $sd-text;
14
14
  flex-shrink: 0;
15
- flex-grow: 1;
16
15
 
17
16
  .sd-check__group {
18
17
  padding: 0;
@@ -78,10 +78,11 @@
78
78
  --sd-shadow--z4: 0 0 0 1px var(--sd-shadow-outline), 0 2px 10px hsla(0, 0%, 0%, 0.2), 0 6px 16px hsla(0, 0%, 0%, 0.3), 0 0 1px hsla(0, 0%, 0%, 0.1);
79
79
 
80
80
  // DROP-SHADOW Filter
81
- --sd-drop-shadow--z1: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 1px 3px hsla(0, 0%, 0%, 0.18)) drop-shadow(0 0 1px rhsla(0, 0%, 0%, 0.12));
82
- --sd-drop-shadow--z2: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 1px 4px hsla(0, 0%, 0%, 0.18)) drop-shadow(0 2px 6px rhsla(0, 0%, 0%, 0.14)) drop-shadow(0 0 1px hsla(0, 0%, 0%, 0.1));
83
- --sd-drop-shadow--z3: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 1px 6px hsla(0, 0%, 0%, 0.18)) drop-shadow(0 3px 8px rhsla(0, 0%, 0%, 0.26)) drop-shadow(0 0 1px hsla(0, 0%, 0%, 0.1));
84
- --sd-drop-shadow--z4: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 2px 10px hsla(0, 0%, 0%, 0.24)) drop-shadow(0 6px 16px rhsla(0, 0%, 0%, 0.32)) drop-shadow(0 0 1px hsla(0, 0%, 0%, 0.1));
81
+ --sd-drop-shadow--z1: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 1px 3px hsla(0, 0%, 0%, 0.18)) drop-shadow(0 0 1px hsla(0, 0%, 0%, 0.12));
82
+ --sd-drop-shadow--z2: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 1px 4px hsla(0, 0%, 0%, 0.18)) drop-shadow(0 2px 6px hsla(0, 0%, 0%, 0.14)) drop-shadow(0 0 1px hsla(0, 0%, 0%, 0.1));
83
+ --sd-drop-shadow--z3: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 1px 6px hsla(0, 0%, 0%, 0.18)) drop-shadow(0 3px 8px hsla(0, 0%, 0%, 0.26)) drop-shadow(0 0 1px hsla(0, 0%, 0%, 0.1));
84
+ --sd-drop-shadow--z4: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 2px 10px hsla(0, 0%, 0%, 0.24)) drop-shadow(0 6px 16px hsla(0, 0%, 0%, 0.32)) drop-shadow(0 0 1px hsla(0, 0%, 0%, 0.1));
85
+ --sd-drop-shadow--none: drop-shadow(0 0 0 transparent);
85
86
 
86
87
  // FORM ELEMENTS
87
88
  // Size
@@ -104,12 +105,25 @@
104
105
 
105
106
  [data-theme="dark-ui"],
106
107
  .dark-ui {
107
- --sd-shadow-outline: hsl(214, 13%, 60%, 0.14);
108
+ --sd-shadow-outline: hsl(214, 13%, 60%, 0.28);
108
109
  --sd-shadow-outline--2: hsl(214, 13%, 60%, 0.1);
109
110
  --sd-shadow__dropdown: 0 0 0 1px var(--sd-shadow-outline), 0 2px 10px hsla(0, 0%, 0%, 0.6), 0 3px 1px -2px hsla(0, 0%, 0%, 0.2);
110
111
  --sd-shadow__modal: 0 0 0 1px var(--sd-shadow-outline), 0 0 8px 2px hsla(0, 0%, 0%, 0.4);
111
112
  --sd-shadow__toast: 0 0 0 1px var(--sd-shadow-outline--2), 0 2px 4px hsla(0, 0%, 0%, 0.24), 0 8px 12px hsla(0, 0%, 0%, 0.26);
112
113
  --sd-shadow__menu-item--focus-inner: inset 0 0 0 4px var(--sd-colour-interactive--alpha-20), inset 0 0 0 1px var(--sd-colour-interactive--alpha-50);
114
+
115
+ // SHADOW
116
+ --sd-shadow--z1: 0 0 0 1px var(--sd-shadow-outline), 0 1px 3px hsla(0, 0%, 0%, 0.36), 0 0 1px hsla(0, 0%, 0%, 0.2);
117
+ --sd-shadow--z2: 0 0 0 1px var(--sd-shadow-outline), 0 1px 4px hsla(0, 0%, 0%, 0.36), 0 2px 6px hsla(0, 0%, 0%, 0.24), 0 0 1px hsla(0, 0%, 0%, 0.2);
118
+ --sd-shadow--z3: 0 0 0 1px var(--sd-shadow-outline), 0 1px 6px hsla(0, 0%, 0%, 0.36), 0 3px 8px hsla(0, 0%, 0%, 0.48), 0 0 1px hsla(0, 0%, 0%, 0.2);
119
+ --sd-shadow--z4: 0 0 0 1px var(--sd-shadow-outline), 0 2px 10px hsla(0, 0%, 0%, 0.4), 0 6px 16px hsla(0, 0%, 0%, 0.6), 0 0 1px hsla(0, 0%, 0%, 0.2);
120
+
121
+ // DROP-SHADOW Filter
122
+ --sd-drop-shadow--z1: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 1px 3px hsla(0, 0%, 0%, 0.38)) drop-shadow(0 0 1px hsla(0, 0%, 0%, 0.2));
123
+ --sd-drop-shadow--z2: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 1px 4px hsla(0, 0%, 0%, 0.38)) drop-shadow(0 2px 6px hsla(0, 0%, 0%, 0.28)) drop-shadow(0 0 1px hsla(0, 0%, 0%, 0.2));
124
+ --sd-drop-shadow--z3: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 1px 6px hsla(0, 0%, 0%, 0.38)) drop-shadow(0 3px 8px hsla(0, 0%, 0%, 0.50)) drop-shadow(0 0 1px hsla(0, 0%, 0%, 0.2));
125
+ --sd-drop-shadow--z4: drop-shadow(0 0 0 var(--sd-shadow-outline)) drop-shadow(0 2px 10px hsla(0, 0%, 0%, 0.44)) drop-shadow(0 6px 16px hsla(0, 0%, 0%, 0.64)) drop-shadow(0 0 1px hsla(0, 0%, 0%, 0.2));
126
+
113
127
  }
114
128
 
115
129
  .sd-top-menu,
@@ -368,7 +368,11 @@
368
368
  --sd-colour-state--in-progress: var(--sd-colour-highlight);
369
369
  --sd-colour-state--done: var(--sd-colour-success);
370
370
 
371
-
371
+ // New Collapsible Box
372
+ --collapse-box-button-color-bg-default: hsla(var(--sd-colour-cool-grey-l--85), 1);
373
+ --collapse-box-button-color-bg-hover: hsla(var(--sd-colour-cool-grey-l--80), 1);
374
+ --collapse-box-button-color-fg-default: var(--color-text);
375
+ --collapse-box-button-color-fg-hover: var(--color-text);
372
376
  }
373
377
 
374
378
 
@@ -531,6 +535,12 @@
531
535
  --sd-colour-state--default: var(--color-text-lighter);
532
536
  --sd-colour-state--in-progress: var(--sd-colour-highlight);
533
537
  --sd-colour-state--done: var(--sd-colour-success);
538
+
539
+ // New Collapsible Box
540
+ --collapse-box-button-color-bg-default: hsla(var(--sd-colour-cool-grey-l--25), 1);
541
+ --collapse-box-button-color-bg-hover: hsla(var(--sd-colour-cool-grey-l--30), 1);
542
+ --collapse-box-button-color-fg-default: var(--color-text-light);
543
+ --collapse-box-button-color-fg-hover: var(--color-text);
534
544
  }
535
545
 
536
546
 
@@ -1365,3 +1365,17 @@
1365
1365
  opacity: 0;
1366
1366
  }
1367
1367
  }
1368
+
1369
+ .sd__input__time-picker-v2 {
1370
+ display: flex;
1371
+ }
1372
+
1373
+ .input-wrapper__time-picker-v2 {
1374
+ display: flex;
1375
+ align-items: center;
1376
+ }
1377
+
1378
+ .time-picker-v2-suffix {
1379
+ padding: 0 8px;
1380
+ font-size: 1.6rem;
1381
+ }
@@ -700,6 +700,9 @@ $planningEditor-width: 53rem;
700
700
  grid-template-columns: [slideInLeft] auto [mainContent] 1fr [slideInRight] auto [overlayContainer] 0;
701
701
  grid-template-rows: [headerToolbar] auto [contentBlock] 1fr;
702
702
  overflow: auto;
703
+ &.sd-main-content-grid--full-height {
704
+ height: 100%;
705
+ }
703
706
  }
704
707
 
705
708
  .sd-main-content-grid__header {
@@ -37,6 +37,9 @@ interface IDatePickerBase extends IInputWrapper {
37
37
  interface IDatePicker extends IDatePickerBase {
38
38
  value: Date | null;
39
39
  onChange(valueNext: Date | null): void;
40
+ maxDate?: Date;
41
+ minDate?: Date;
42
+ showButtonBar?: boolean;
40
43
  'data-test-id'?: string;
41
44
  }
42
45
 
@@ -157,6 +160,7 @@ export class DatePicker extends React.PureComponent<IDatePicker, IState> {
157
160
  tabindex={this.props.tabindex}
158
161
  >
159
162
  <Calendar
163
+ showButtonBar={this.props.showButtonBar}
160
164
  inputId={this.htmlId}
161
165
  ariaLabelledBy={this.htmlId + 'label'}
162
166
  ref={(ref) => {
@@ -208,6 +212,8 @@ export class DatePicker extends React.PureComponent<IDatePicker, IState> {
208
212
  )}
209
213
  appendTo={document.body} // making it work inside `overflow:hidden`
210
214
  disabled={this.props.disabled}
215
+ minDate={this.props.minDate}
216
+ maxDate={this.props.maxDate}
211
217
  onBlur={(event) => {
212
218
  // @ts-ignore: Object is possibly 'null'.
213
219
  if (!event?.target.value) {
@@ -1,13 +1,19 @@
1
1
  import * as React from 'react';
2
+ import classNames from 'classnames';
2
3
 
3
4
  interface IProps {
4
5
  children?: React.ReactNode;
6
+ fullHeight?: boolean;
5
7
  }
6
8
 
7
9
  export class LayoutContainer extends React.PureComponent<IProps> {
8
10
  render() {
11
+ const classes = classNames('sd-content-wrapper__main-content-area sd-main-content-grid comfort', {
12
+ 'sd-main-content-grid--full-height': this.props.fullHeight,
13
+ },
14
+ );
9
15
  return (
10
- <div className='sd-content-wrapper__main-content-area sd-main-content-grid comfort'>
16
+ <div className={classes}>
11
17
  {this.props.children}
12
18
  </div>
13
19
  );
@@ -19,12 +19,13 @@ interface IProps {
19
19
  rightPanelOpen?: boolean;
20
20
  leftPanel?: React.ReactNode;
21
21
  leftPanelOpen?: boolean;
22
+ fullHeight?: boolean; // For cases where the parent container is not display: grid;
22
23
  }
23
24
 
24
25
  export class PageLayout extends React.PureComponent<IProps> {
25
26
  render() {
26
27
  return (
27
- <LayoutContainer>
28
+ <LayoutContainer fullHeight={this.props.fullHeight}>
28
29
  {this.props.header && (
29
30
  <HeaderPanel>
30
31
  {this.props.header}