superdesk-ui-framework 4.0.24 → 4.0.26

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 (38) hide show
  1. package/.github/CODEOWNERS +1 -0
  2. package/app/index.js +1 -0
  3. package/app/styles/_big-icon-font.scss +1 -1
  4. package/app/styles/_boxed-list.scss +60 -24
  5. package/app/styles/_design-tokens.scss +3 -0
  6. package/app/styles/_labels.scss +82 -71
  7. package/app/styles/app.scss +1 -0
  8. package/app/styles/components/_calendar-week-day.scss +97 -0
  9. package/app/styles/design-tokens/_brand-colors.scss +32 -0
  10. package/app/styles/design-tokens/_new-colors.scss +18 -0
  11. package/app/styles/design-tokens/_primitives.scss +161 -0
  12. package/app/styles/design-tokens/_semantic-colors.scss +145 -0
  13. package/app/styles/form-elements/_checkbox.scss +15 -0
  14. package/app/styles/form-elements/_forms-general.scss +4 -1
  15. package/app-typescript/components/Lists/BoxedList.tsx +2 -0
  16. package/app-typescript/components/Lists/CalendarWeekDayItem.tsx +36 -0
  17. package/app-typescript/components/RadioButtonGroup.tsx +1 -1
  18. package/app-typescript/components/avatar/avatar-image.tsx +8 -1
  19. package/app-typescript/index.ts +1 -0
  20. package/dist/components/BoxedList.tsx +27 -2
  21. package/dist/components/RadioGroup.tsx +26 -3
  22. package/dist/examples.bundle.js +1339 -1175
  23. package/dist/playgrounds/react-playgrounds/TestGround.tsx +117 -0
  24. package/dist/superdesk-ui.bundle.css +519 -223
  25. package/dist/superdesk-ui.bundle.js +980 -897
  26. package/dist/vendor.bundle.js +14 -14
  27. package/examples/pages/components/BoxedList.tsx +27 -2
  28. package/examples/pages/components/RadioGroup.tsx +26 -3
  29. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +117 -0
  30. package/package.json +1 -1
  31. package/react/components/Lists/BoxedList.d.ts +1 -0
  32. package/react/components/Lists/BoxedList.js +1 -0
  33. package/react/components/Lists/CalendarWeekDayItem.d.ts +15 -0
  34. package/react/components/Lists/CalendarWeekDayItem.js +67 -0
  35. package/react/components/RadioButtonGroup.js +1 -1
  36. package/react/components/avatar/avatar-image.js +1 -1
  37. package/react/index.d.ts +1 -0
  38. package/react/index.js +3 -1
@@ -0,0 +1,161 @@
1
+ :root {
2
+ // PRIMITIVES / COLORS
3
+ // These colors should not to be applied directly to elements and components
4
+ --l-base: 35%;
5
+ --l-100-add: 55;
6
+ --l-200-add: 34;
7
+ --l-300-add: 20;
8
+ --l-400-add: 8;
9
+ --l-600-remove: 10;
10
+ --l-700-remove: 20;
11
+ --l-800-remove: 35;
12
+
13
+ --c-base: 75;
14
+ --c-100-remove: 60;
15
+ --c-200-remove: 45;
16
+ --c-300-remove: 30;
17
+ --c-400-remove: 10;
18
+ --c-600-add: 0;
19
+ --c-700-add: 0;
20
+ --c-800-add: 0;
21
+
22
+ // Morocco Red
23
+ --morocco-red-500: lch(var(--l-base) var(--c-base) 28);
24
+ --morocco-red-100: lch(from var(--morocco-red-500) calc(l + var(--l-100-add)) calc(c - var(--c-100-remove)) h);
25
+ --morocco-red-200: lch(from var(--morocco-red-500) calc(l + var(--l-200-add)) calc(c - var(--c-200-remove)) h);
26
+ --morocco-red-300: lch(from var(--morocco-red-500) calc(l + var(--l-300-add)) calc(c - var(--c-300-remove)) h);
27
+ --morocco-red-400: lch(from var(--morocco-red-500) calc(l + var(--l-400-add)) calc(c - var(--c-400-remove)) h);
28
+ --morocco-red-600: lch(from var(--morocco-red-500) calc(l - var(--l-600-remove)) calc(c + var(--c-600-add)) h);
29
+ --morocco-red-700: lch(from var(--morocco-red-500) calc(l - var(--l-700-remove)) calc(c + var(--c-700-add)) h);
30
+ --morocco-red-800: lch(from var(--morocco-red-500) calc(l - var(--l-800-remove)) calc(c + var(--c-800-add)) h);
31
+ --morocco-red-500-a32: lch(from var(--morocco-red-500) l c h / .32);
32
+ --morocco-red-500-a24: lch(from var(--morocco-red-500) l c h / .24);
33
+ --morocco-red-500-a16: lch(from var(--morocco-red-500) l c h / .16);
34
+ --morocco-red-500-a12: lch(from var(--morocco-red-500) l c h / .12);
35
+ // Syrah Soil
36
+ --syrah-soil-500: lch(var(--l-base) var(--c-base) 74);
37
+ --syrah-soil-100: lch(from var(--syrah-soil-500) calc(l + var(--l-100-add)) calc(c - var(--c-100-remove)) h);
38
+ --syrah-soil-200: lch(from var(--syrah-soil-500) calc(l + var(--l-200-add)) calc(c - var(--c-200-remove)) h);
39
+ --syrah-soil-300: lch(from var(--syrah-soil-500) calc(l + var(--l-300-add)) calc(c - var(--c-300-remove)) h);
40
+ --syrah-soil-400: lch(from var(--syrah-soil-500) calc(l + var(--l-400-add)) calc(c - var(--c-400-remove)) h);
41
+ --syrah-soil-600: lch(from var(--syrah-soil-500) calc(l - var(--l-600-remove)) calc(c + var(--c-600-add)) h);
42
+ --syrah-soil-700: lch(from var(--syrah-soil-500) calc(l - var(--l-700-remove)) calc(c + var(--c-700-add)) h);
43
+ --syrah-soil-800: lch(from var(--syrah-soil-500) calc(l - var(--l-800-remove)) calc(c + var(--c-800-add)) h);
44
+ --syrah-soil-500-a32: hsl(from var(--syrah-soil-500) h s l / .32);
45
+ --syrah-soil-500-a24: hsl(from var(--syrah-soil-500) h s l / .24);
46
+ --syrah-soil-500-a16: hsl(from var(--syrah-soil-500) h s l / .16);
47
+ --syrah-soil-500-a12: hsl(from var(--syrah-soil-500) h s l / .12);
48
+ // Green Brier
49
+ --green-brier-500: lch(var(--l-base) var(--c-base) 126);
50
+ --green-brier-100: lch(from var(--green-brier-500) calc(l + var(--l-100-add)) calc(c - var(--c-100-remove)) h);
51
+ --green-brier-200: lch(from var(--green-brier-500) calc(l + var(--l-200-add)) calc(c - var(--c-200-remove)) h);
52
+ --green-brier-300: lch(from var(--green-brier-500) calc(l + var(--l-300-add)) calc(c - var(--c-300-remove)) h);
53
+ --green-brier-400: lch(from var(--green-brier-500) calc(l + var(--l-400-add)) calc(c - var(--c-400-remove)) h);
54
+ --green-brier-600: lch(from var(--green-brier-500) calc(l - var(--l-600-remove)) calc(c + var(--c-600-add)) h);
55
+ --green-brier-700: lch(from var(--green-brier-500) calc(l - var(--l-700-remove)) calc(c + var(--c-700-add)) h);
56
+ --green-brier-800: lch(from var(--green-brier-500) calc(l - var(--l-800-remove)) calc(c + var(--c-800-add)) h);
57
+ --green-brier-400-a32: hsl(from var(--green-brier-400) h s l / .32);
58
+ --green-brier-400-a24: hsl(from var(--green-brier-400) h s l / .24);
59
+ --green-brier-400-a16: hsl(from var(--green-brier-400) h s l / .16);
60
+ --green-brier-400-a12: hsl(from var(--green-brier-400) h s l / .12);
61
+ --green-brier-500-a32: hsl(from var(--green-brier-500) h s l / .32);
62
+ --green-brier-500-a24: hsl(from var(--green-brier-500) h s l / .24);
63
+ --green-brier-500-a16: hsl(from var(--green-brier-500) h s l / .16);
64
+ --green-brier-500-a12: hsl(from var(--green-brier-500) h s l / .12);
65
+ // Sorcerer Blue
66
+ --sorcerer-blue-500: lch(var(--l-base) var(--c-base) 202);
67
+ --sorcerer-blue-100: lch(from var(--sorcerer-blue-500) calc(l + var(--l-100-add)) calc(c - var(--c-100-remove)) h);
68
+ --sorcerer-blue-200: lch(from var(--sorcerer-blue-500) calc(l + var(--l-200-add)) calc(c - var(--c-200-remove)) h);
69
+ --sorcerer-blue-300: lch(from var(--sorcerer-blue-500) calc(l + var(--l-300-add)) calc(c - var(--c-300-remove)) h);
70
+ --sorcerer-blue-400: lch(from var(--sorcerer-blue-500) calc(l + var(--l-400-add)) calc(c - var(--c-400-remove)) h);
71
+ --sorcerer-blue-600: lch(from var(--sorcerer-blue-500) calc(l - var(--l-600-remove)) calc(c + var(--c-600-add)) h);
72
+ --sorcerer-blue-700: lch(from var(--sorcerer-blue-500) calc(l - var(--l-700-remove)) calc(c + var(--c-700-add)) h);
73
+ --sorcerer-blue-800: lch(from var(--sorcerer-blue-500) calc(l - var(--l-800-remove)) calc(c + var(--c-800-add)) h);
74
+ --sorcerer-blue-500-a32: hsl(from var(--sorcerer-blue-500) h s l / .32);
75
+ --sorcerer-blue-500-a24: hsl(from var(--sorcerer-blue-500) h s l / .24);
76
+ --sorcerer-blue-500-a16: hsl(from var(--sorcerer-blue-500) h s l / .16);
77
+ --sorcerer-blue-500-a12: hsl(from var(--sorcerer-blue-500) h s l / .12);
78
+ // Palatinate Blue
79
+ --palatinate-blue-500: lch(var(--l-base) var(--c-base) 280);
80
+ --palatinate-blue-100: lch(from var(--palatinate-blue-500) calc(l + var(--l-100-add)) calc(c - var(--c-100-remove)) h);
81
+ --palatinate-blue-200: lch(from var(--palatinate-blue-500) calc(l + var(--l-200-add)) calc(c - var(--c-200-remove)) h);
82
+ --palatinate-blue-300: lch(from var(--palatinate-blue-500) calc(l + var(--l-300-add)) calc(c - var(--c-300-remove)) h);
83
+ --palatinate-blue-400: lch(from var(--palatinate-blue-500) calc(l + var(--l-400-add)) calc(c - var(--c-400-remove)) h);
84
+ --palatinate-blue-600: lch(from var(--palatinate-blue-500) calc(l - var(--l-600-remove)) calc(c + var(--c-600-add)) h);
85
+ --palatinate-blue-700: lch(from var(--palatinate-blue-500) calc(l - var(--l-700-remove)) calc(c + var(--c-700-add)) h);
86
+ --palatinate-blue-800: lch(from var(--palatinate-blue-500) calc(l - var(--l-800-remove)) calc(c + var(--c-800-add)) h);
87
+ --palatinate-blue-500-a32: hsl(from var(--palatinate-blue-500) h s l / .32);
88
+ --palatinate-blue-500-a24: hsl(from var(--palatinate-blue-500) h s l / .24);
89
+ --palatinate-blue-500-a16: hsl(from var(--palatinate-blue-500) h s l / .16);
90
+ --palatinate-blue-500-a12: hsl(from var(--palatinate-blue-500) h s l / .12);
91
+ // Purple Spot
92
+ --purple-spot-500: lch(var(--l-base) var(--c-base) 307);
93
+ --purple-spot-100: lch(from var(--purple-spot-500) calc(l + var(--l-100-add)) calc(c - var(--c-100-remove)) h);
94
+ --purple-spot-200: lch(from var(--purple-spot-500) calc(l + var(--l-200-add)) calc(c - var(--c-200-remove)) h);
95
+ --purple-spot-300: lch(from var(--purple-spot-500) calc(l + var(--l-300-add)) calc(c - var(--c-300-remove)) h);
96
+ --purple-spot-400: lch(from var(--purple-spot-500) calc(l + var(--l-400-add)) calc(c - var(--c-400-remove)) h);
97
+ --purple-spot-600: lch(from var(--purple-spot-500) calc(l - var(--l-600-remove)) calc(c + var(--c-600-add)) h);
98
+ --purple-spot-700: lch(from var(--purple-spot-500) calc(l - var(--l-700-remove)) calc(c + var(--c-700-add)) h);
99
+ --purple-spot-800: lch(from var(--purple-spot-500) calc(l - var(--l-800-remove)) calc(c + var(--c-800-add)) h);
100
+ --purple-spot-500-a32: hsl(from var(--purple-spot-500) h s l / .32);
101
+ --purple-spot-500-a24: hsl(from var(--purple-spot-500) h s l / .24);
102
+ --purple-spot-500-a16: hsl(from var(--purple-spot-500) h s l / .16);
103
+ --purple-spot-500-a12: hsl(from var(--purple-spot-500) h s l / .12);
104
+ // Blissful Berry
105
+ --blissful-berry-500: lch(var(--l-base) var(--c-base) 338);
106
+ --blissful-berry-100: lch(from var(--blissful-berry-500) calc(l + var(--l-100-add)) calc(c - var(--c-100-remove)) h);
107
+ --blissful-berry-200: lch(from var(--blissful-berry-500) calc(l + var(--l-200-add)) calc(c - var(--c-200-remove)) h);
108
+ --blissful-berry-300: lch(from var(--blissful-berry-500) calc(l + var(--l-300-add)) calc(c - var(--c-300-remove)) h);
109
+ --blissful-berry-400: lch(from var(--blissful-berry-500) calc(l + var(--l-400-add)) calc(c - var(--c-400-remove)) h);
110
+ --blissful-berry-600: lch(from var(--blissful-berry-500) calc(l - var(--l-600-remove)) calc(c + var(--c-600-add)) h);
111
+ --blissful-berry-700: lch(from var(--blissful-berry-500) calc(l - var(--l-700-remove)) calc(c + var(--c-700-add)) h);
112
+ --blissful-berry-800: lch(from var(--blissful-berry-500) calc(l - var(--l-800-remove)) calc(c + var(--c-800-add)) h);
113
+ --blissful-berry-500-a32: hsl(from var(--blissful-berry-500) h s l / .32);
114
+ --blissful-berry-500-a24: hsl(from var(--blissful-berry-500) h s l / .24);
115
+ --blissful-berry-500-a16: hsl(from var(--blissful-berry-500) h s l / .16);
116
+ --blissful-berry-500-a12: hsl(from var(--blissful-berry-500) h s l / .12);
117
+ // NEUTRAL
118
+ // Buoyant Grey
119
+ --buoyant-grey-500: lch(46% 11 260);
120
+ --buoyant-grey-000: lch(from var(--buoyant-grey-500) calc(l + 54) calc(c - 12) h);
121
+ --buoyant-grey-050: lch(from var(--buoyant-grey-500) calc(l + 50.8) calc(c - 9) h);
122
+ --buoyant-grey-100: lch(from var(--buoyant-grey-500) calc(l + 48.2) calc(c - 9) h);
123
+ --buoyant-grey-125: lch(from var(--buoyant-grey-500) calc(l + 45.5) calc(c - 8) h);
124
+ --buoyant-grey-150: lch(from var(--buoyant-grey-500) calc(l + 39) calc(c - 6) h);
125
+ --buoyant-grey-200: lch(from var(--buoyant-grey-500) calc(l + 30) calc(c - 4) h);
126
+ --buoyant-grey-300: lch(from var(--buoyant-grey-500) calc(l + 20) calc(c - 2) h);
127
+ --buoyant-grey-400: lch(from var(--buoyant-grey-500) calc(l + 10) calc(c - 0) h);
128
+ --buoyant-grey-600: lch(from var(--buoyant-grey-500) calc(l - 8) calc(c + 0) h);
129
+ --buoyant-grey-700: lch(from var(--buoyant-grey-500) calc(l - 16) calc(c + 0) h);
130
+ --buoyant-grey-800: lch(from var(--buoyant-grey-500) calc(l - 22) calc(c + 0) h);
131
+ --buoyant-grey-825: lch(from var(--buoyant-grey-500) calc(l - 26) calc(c + 0) h);
132
+ --buoyant-grey-850: lch(from var(--buoyant-grey-500) calc(l - 31) calc(c + 1) h);
133
+ --buoyant-grey-900: lch(from var(--buoyant-grey-500) calc(l - 36) calc(c + 2) h);
134
+ --buoyant-grey-950: lch(from var(--buoyant-grey-500) calc(l - 42) calc(c + 2) h);
135
+ --buoyant-grey-999: lch(from var(--buoyant-grey-500) calc(l - 46) calc(c - 11) h);
136
+ --buoyant-grey-200-a40: hsl(from var(--buoyant-grey-200) h s l / .40);
137
+ --buoyant-grey-200-a32: hsl(from var(--buoyant-grey-200) h s l / .32);
138
+ --buoyant-grey-200-a24: hsl(from var(--buoyant-grey-200) h s l / .24);
139
+ --buoyant-grey-200-a16: hsl(from var(--buoyant-grey-200) h s l / .16);
140
+ --buoyant-grey-200-a12: hsl(from var(--buoyant-grey-200) h s l / .12);
141
+ --buoyant-grey-300-a40: hsl(from var(--buoyant-grey-300) h s l / .40);
142
+ --buoyant-grey-300-a32: hsl(from var(--buoyant-grey-300) h s l / .32);
143
+ --buoyant-grey-300-a24: hsl(from var(--buoyant-grey-300) h s l / .24);
144
+ --buoyant-grey-300-a16: hsl(from var(--buoyant-grey-300) h s l / .16);
145
+ --buoyant-grey-300-a12: hsl(from var(--buoyant-grey-300) h s l / .12);
146
+ --buoyant-grey-400-a40: hsl(from var(--buoyant-grey-400) h s l / .40);
147
+ --buoyant-grey-400-a32: hsl(from var(--buoyant-grey-400) h s l / .32);
148
+ --buoyant-grey-400-a24: hsl(from var(--buoyant-grey-400) h s l / .24);
149
+ --buoyant-grey-400-a16: hsl(from var(--buoyant-grey-400) h s l / .16);
150
+ --buoyant-grey-400-a12: hsl(from var(--buoyant-grey-400) h s l / .12);
151
+ --buoyant-grey-500-a40: hsl(from var(--buoyant-grey-500) h s l / .40);
152
+ --buoyant-grey-500-a32: hsl(from var(--buoyant-grey-500) h s l / .32);
153
+ --buoyant-grey-500-a24: hsl(from var(--buoyant-grey-500) h s l / .24);
154
+ --buoyant-grey-500-a16: hsl(from var(--buoyant-grey-500) h s l / .16);
155
+ --buoyant-grey-500-a12: hsl(from var(--buoyant-grey-500) h s l / .12);
156
+ --buoyant-grey-600-a40: hsl(from var(--buoyant-grey-600) h s l / .40);
157
+ --buoyant-grey-600-a32: hsl(from var(--buoyant-grey-600) h s l / .32);
158
+ --buoyant-grey-600-a24: hsl(from var(--buoyant-grey-600) h s l / .24);
159
+ --buoyant-grey-600-a16: hsl(from var(--buoyant-grey-600) h s l / .16);
160
+ --buoyant-grey-600-a12: hsl(from var(--buoyant-grey-600) h s l / .12);
161
+ }
@@ -0,0 +1,145 @@
1
+ :root {
2
+ // Surface (backgrounds etc.)
3
+ --color-surface-base: var(--buoyant-grey-000);
4
+ --color-surface-muted: var(--buoyant-grey-050);
5
+ --color-surface-subdued: var(--buoyant-grey-100);
6
+ --color-surface-faded: var(--buoyant-grey-125);
7
+ --color-surface-base-translucent: var(--buoyant-grey-200-a16);
8
+ --color-surface-muted-translucent: var(--buoyant-grey-200-a16);
9
+ --color-surface-subdued-translucent: var(--buoyant-grey-200-a32);
10
+ --color-surface-faded-translucent: var(--buoyant-grey-200-a32);
11
+ // Text
12
+ --color-text-default: var(--buoyant-grey-900);
13
+ --color-text-muted: var(--buoyant-grey-600);
14
+ --color-text-subdued: var(--buoyant-grey-500);
15
+ --color-text-inverse: var(--buoyant-grey-050);
16
+ --color-text-ondark: var(--buoyant-grey-000);
17
+ --color-text-onlight: var(--buoyant-grey-900);
18
+ // Line
19
+ --color-line-x-light: var(--buoyant-grey-500-a16);
20
+ --color-line-light: var(--buoyant-grey-500-a24);
21
+ --color-line-medium: var(--buoyant-grey-500-a32);
22
+ --color-line-strong: var(--buoyant-grey-500-a40);
23
+ // Primary
24
+ --color-primary-default: var(--brand-primary-700);
25
+ --color-primary-highlight: var(--brand-primary);
26
+ --color-primary-text: var(--brand-primary-800);
27
+ --color-primary-translucent: var(--brand-primary-a16);
28
+ --color-primary-translucent-strong: var(--brand-primary-a32);
29
+ // Success
30
+ --color-success-default: var(--green-brier-400);
31
+ --color-success-highlight: var(--green-brier-300);
32
+ --color-success-text: var(--green-brier-600);
33
+ --color-success-translucent: var(--green-brier-400-a12);
34
+ // Warning
35
+ --color-warning-default: var(--syrah-soil-300);
36
+ --color-warning-highlight: var(--syrah-soil-200);
37
+ --color-warning-text: var(--syrah-soil-400);
38
+ --color-warning-translucent: var(--syrah-soil-500-a12);
39
+ // Alert
40
+ --color-alert-default: var(--morocco-red-500);
41
+ --color-alert-highlight: var(--morocco-red-400);
42
+ --color-alert-text: var(--morocco-red-600);
43
+ --color-alert-translucent: var(--morocco-red-500-a16);
44
+ // Highlight
45
+ --color-highlight-default: var(--blissful-berry-400);
46
+ --color-highlight-highlight: var(--blissful-berry-300);
47
+ --color-highlight-text: var(--blissful-berry-600);
48
+ --color-highlight-translucent: var(--blissful-berry-500-a12);
49
+ // Info
50
+ --color-info-default: var(--sorcerer-blue-500);
51
+ --color-info-highlight: var(--sorcerer-blue-300);
52
+ --color-info-text: var(--sorcerer-blue-700);
53
+ --color-info-translucent: var(--sorcerer-blue-500-a12);
54
+ // Neutral
55
+ --color-neutral-light-default: var(--buoyant-grey-300-a24);
56
+ --color-neutral-light-text: var(--buoyant-grey-700);
57
+ --color-neutral-medium-default: var(--buoyant-grey-200);
58
+ --color-neutral-strong-default: var(--buoyant-grey-600);
59
+ --color-neutral-strong-text: var(--buoyant-grey-100);
60
+ // Interactive
61
+ --color-interactive-default: var(--brand-primary-700);
62
+ --color-interactive-highlight: var(--brand-primary);
63
+ --color-interactive-text: var(--brand-primary-800);
64
+ --color-interactive-translucent: var(--brand-primary-a16);
65
+ --color-interactive-translucent-strong: var(--brand-primary-a32);
66
+ --color-interactive-surface-selected: var(--brand-primary-100);
67
+ --color-interactive-shadow-focus: var(--brand-primary-a32);
68
+ // General clickabl content items (list item, grid item)
69
+ --color-item-bg-normal: var(--color-surface-base);
70
+ --color-item-bg-hover: var(--color-surface-muted);
71
+ --color-item-bg-active: var(--color-interactive-surface-selected);
72
+ --color-item-border-active: var(--color-interactive-translucent-strong);
73
+ --color-item-overlay-actioning: hsl(from var(--color-surface-base) h s l / .70);
74
+ }
75
+
76
+ [data-theme="dark-ui"] {
77
+ // Surface (backgrounds etc.)
78
+ --color-surface-base: var(--buoyant-grey-900);
79
+ --color-surface-muted: var(--buoyant-grey-850);
80
+ --color-surface-subdued: var(--buoyant-grey-825);
81
+ --color-surface-faded: var(--buoyant-grey-800);
82
+ --color-surface-muted-translucent: var(--buoyant-grey-600-a16);
83
+ --color-surface-subdued-translucent: var(--buoyant-grey-600-a32);
84
+ --color-surface-faded-translucent: var(--buoyant-grey-600-a32);
85
+ // Text
86
+ --color-text-default: var(--buoyant-grey-050);
87
+ --color-text-muted: var(--buoyant-grey-200);
88
+ --color-text-subdued: var(--buoyant-grey-300);
89
+ --color-text-inverse: var(--buoyant-grey-900);
90
+ --color-text-ondark: var(--buoyant-grey-000);
91
+ --color-text-onlight: var(--buoyant-grey-900);
92
+ // Line
93
+ --color-line-x-light: var(--buoyant-grey-300-a16);
94
+ --color-line-light: var(--buoyant-grey-300-a24);
95
+ --color-line-medium: var(--buoyant-grey-300-a32);
96
+ --color-line-strong: var(--buoyant-grey-300-a40);
97
+ // Primary
98
+ --color-primary-default: var(--brand-primary-700);
99
+ --color-primary-highlight: var(--brand-primary-600);
100
+ --color-primary-text: var(--brand-primary-400);
101
+ --color-primary-translucent: var(--brand-primary-a16);
102
+ --color-primary-highlight-translucent: var(--brand-primary-600-a16);
103
+ // Success
104
+ --color-success-default: var(--green-brier-500);
105
+ --color-success-highlight: var(--green-brier-400);
106
+ --color-success-text: var(--green-brier-300);
107
+ --color-success-translucent: var(--green-brier-400-a16);
108
+ // Warning
109
+ --color-warning-default: var(--syrah-soil-400);
110
+ --color-warning-highlight: var(--syrah-soil-300);
111
+ --color-warning-text: var(--syrah-soil-300);
112
+ --color-warning-translucent: var(--syrah-soil-500-a16);
113
+ // Alert
114
+ --color-alert-default: var(--morocco-red-600);
115
+ --color-alert-text: var(--morocco-red-400);
116
+ --color-alert-translucent: var(--morocco-red-500-a16);
117
+ // Highlight
118
+ --color-highlight-default: var(--blissful-berry-500);
119
+ --color-highlight-text: var(--blissful-berry-300);
120
+ --color-highlight-translucent: var(--blissful-berry-500-a16);
121
+ // Info
122
+ --color-info-default: var(--sorcerer-blue-600);
123
+ --color-info-text: var(--sorcerer-blue-300);
124
+ --color-info-translucent: var(--sorcerer-blue-500-a16);
125
+ // Neutral
126
+ --color-neutral-light-default: var(--buoyant-grey-500-a24);
127
+ --color-neutral-light-text: var(--buoyant-grey-200);
128
+ --color-neutral-medium-default: var(--buoyant-grey-300);
129
+ --color-neutral-strong-default: var(--buoyant-grey-600);
130
+ --color-neutral-strong-text: var(--buoyant-grey-100);
131
+ // Interactive
132
+ --color-interactive-default: var(--brand-primary-700);
133
+ --color-interactive-highlight: var(--brand-primary);
134
+ --color-interactive-text: var(--brand-primary-400);
135
+ --color-interactive-translucent: var(--brand-primary-a16);
136
+ --color-interactive-translucent-strong: var(--brand-primary-a32);
137
+ --color-interactive-surface-selected: var(--brand-primary-950);
138
+ --color-interactive-shadow-focus: var(--brand-primary-a32);
139
+ // General clickabl content items (list item, grid item)
140
+ --color-item-bg-normal: var(--color-surface-base);
141
+ --color-item-bg-hover: var(--color-surface-muted);
142
+ --color-item-bg-active: var(--color-interactive-surface-selected);
143
+ --color-item-border-active: var(--color-interactive-translucent-strong);
144
+ --color-item-overlay-actioning: hsl(from var(--color-surface-base) h s l / .70);
145
+ }
@@ -444,15 +444,30 @@ $checkButtonBorderRadius: $border-radius__base--small;
444
444
 
445
445
  .sd-check-button__group--left, .sd-check-button__group--start {
446
446
  margin-inline-end: auto;
447
+ justify-content: flex-start;
447
448
  }
448
449
 
449
450
  .sd-check-button__group--right, .sd-check-button__group--end {
450
451
  margin-inline-start: auto;
452
+ justify-content: flex-end;
453
+ }
454
+
455
+ .sd-check-button__group--vertical {
456
+ flex-direction: column;
457
+ align-items: flex-start;
458
+ .sd-check-button.sd-check-button--native {
459
+ align-self: stretch;
460
+ .sd-check-button__text-label {
461
+ text-align: left;
462
+ justify-content: flex-start;
463
+ }
464
+ }
451
465
  }
452
466
 
453
467
  .sd-check-button__group--center {
454
468
  margin-inline-start: auto;
455
469
  margin-inline-end: auto;
470
+ justify-content: center;
456
471
  }
457
472
 
458
473
  .sd-check-button__group--inline {
@@ -63,7 +63,6 @@
63
63
 
64
64
  // For more complex inline form combinations an additional element that goes inside .form__row--flex container is provided.
65
65
  .form__row-item {
66
- flex-basis: 0;
67
66
  flex-grow: 1;
68
67
  margin: 0 0.6rem;
69
68
 
@@ -80,6 +79,10 @@
80
79
  }
81
80
  }
82
81
 
82
+ .form__row-item:not(.sd-flex-no-grow) {
83
+ flex-basis: 0;
84
+ }
85
+
83
86
  .form__row-item--no-grow {
84
87
  flex-basis: auto;
85
88
  flex-grow: 0;
@@ -77,6 +77,7 @@ interface IPropsItem {
77
77
  clickable?: boolean;
78
78
  alignVertical?: 'start' | 'center';
79
79
  slideInActions?: boolean;
80
+ coloredBg?: boolean;
80
81
  selected?: boolean;
81
82
  unread?: boolean;
82
83
  onClick?(): void;
@@ -107,6 +108,7 @@ class BoxedListItem extends React.PureComponent<IPropsItem> {
107
108
  'boxed-list__item--clickable': this.props.clickable === true,
108
109
  'boxed-list__item--selected': this.props.selected,
109
110
  'boxed-list__item--unread': this.props.unread,
111
+ 'boxed-list__item--colored-bg': this.props.coloredBg,
110
112
  [`boxed-list__item--${this.props.type}`]: this.props.type || this.props.type !== undefined,
111
113
  [`boxed-list__item--align-${this.props.alignVertical}`]: this.props.alignVertical,
112
114
  });
@@ -0,0 +1,36 @@
1
+ import * as React from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ interface IPropsItem {
5
+ children?: React.ReactNode;
6
+ state?: 'default' | 'primary' | 'success' | 'warning' | 'alert' | 'highlight';
7
+ clickable?: boolean;
8
+ coloredBg?: boolean;
9
+ selected?: boolean;
10
+ disabled?: boolean;
11
+ hidden?: boolean;
12
+ onClick?(): void;
13
+ }
14
+
15
+ class CalendarWeekDayItem extends React.PureComponent<IPropsItem> {
16
+
17
+ render() {
18
+ let classes = classNames('calendar-week-day__item', {
19
+ 'calendar-week-day__item--clickable': this.props.clickable === true,
20
+ 'calendar-week-day__item--selected': this.props.selected,
21
+ 'calendar-week-day__item--colored-bg': this.props.coloredBg,
22
+ 'calendar-week-day__item--disabled': this.props.disabled,
23
+ 'calendar-week-day__item--hidden': this.props.hidden,
24
+ [`calendar-week-day__item--${this.props.state}`]: this.props.state || this.props.state !== undefined,
25
+ });
26
+ return (
27
+ <div className={classes}>
28
+ {this.props.children}
29
+ </div>
30
+ );
31
+ }
32
+ }
33
+
34
+ export {
35
+ CalendarWeekDayItem
36
+ };
@@ -44,7 +44,7 @@ export class RadioButtonGroup extends React.Component<IProps> {
44
44
  let classes = classNames('sd-check-button__group', {
45
45
  [`sd-check-button__group--${this.props.group?.align}`]: this.props.group?.align,
46
46
  [`sd-check-button__group--start`]: !this.props.group?.grid && this.props.group?.align === undefined,
47
- [`button-group--vertical`]: this.props.group?.orientation === 'vertical',
47
+ [`sd-check-button__group--vertical`]: this.props.group?.orientation === 'vertical',
48
48
  [`sd-check-button__group--grid`]: this.props.group?.grid,
49
49
  [`sd-check-button__group--padded`]: this.props.group?.padded === true,
50
50
  });
@@ -23,7 +23,14 @@ export class AvatarContentImage extends React.PureComponent<IPropsImageAvatar> {
23
23
  className="sd-avatar-content sd-avatar-content--dummy-img"
24
24
  title={tooltipText}
25
25
  >
26
- <svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
26
+ <svg
27
+ width="200"
28
+ height="200"
29
+ viewBox="0 0 200 200"
30
+ fill="none"
31
+ xmlns="http://www.w3.org/2000/svg"
32
+ style={{display: 'block', width: '100%', height: '100%'}}
33
+ >
27
34
  <circle cx="100" cy="100" r="100" fill="white" fillOpacity="0"/>
28
35
  {/* tslint:disable-next-line:max-line-length */}
29
36
  <path fillRule="evenodd" clipRule="evenodd" d="M40 153V145.384C40 141.557 41.16 137.981 43.16 135C49.14 126.057 66.24 119.711 77.14 118C82.74 117.115 90.16 116.538 100 116.538C109.84 116.538 117.26 117.115 122.86 118C133.76 119.711 150.86 126.057 156.84 135C158.84 137.981 160 141.557 160 145.384V153C150 165 130 180 100 180C70 180 50 165 40 153ZM100 30C122.08 30 140 47.2307 140 68.4614C140 89.6922 122.08 106.923 100 106.923C77.92 106.923 60 89.6922 60 68.4614C60 47.2307 77.92 30 100 30Z" fill="var(--sd-colour-avatar-dummy)" fillOpacity="1"/>
@@ -106,6 +106,7 @@ export { Spacer, SpacerBlock } from '@superdesk/common';
106
106
  export { ResizeObserverComponent } from './components/ResizeObserverComponent';
107
107
  export { DragHandleDots } from './components/DragHandleDots';
108
108
  export { DragHandle } from './components/DragHandle';
109
+ export { CalendarWeekDayItem } from './components/Lists/CalendarWeekDayItem';
109
110
 
110
111
  // declare non-typescript exports to prevent errors
111
112
  export declare const ToggleBoxNext: any;
@@ -30,6 +30,15 @@ export default class BoxedListDoc extends React.Component {
30
30
  <BoxedListItem type='highlight'>Highlight type, cras mattis consectetur purus sit amet fermentum.</BoxedListItem>
31
31
  </BoxedList>
32
32
 
33
+ <p className="docs-page__paragraph">// with colored background (affects only success, warning, alert and highlight types)</p>
34
+
35
+ <BoxedList>
36
+ <BoxedListItem coloredBg type='success'>Succes, donec sed odio dui.</BoxedListItem>
37
+ <BoxedListItem coloredBg type='warning'>Warning, maecenas sed diam eget risus varius.</BoxedListItem>
38
+ <BoxedListItem coloredBg type='alert'>Alert. Nullam quis risus eget urna mollis ornare vel eu leo.</BoxedListItem>
39
+ <BoxedListItem coloredBg type='highlight'>Highlight type, cras mattis consectetur purus sit amet fermentum.</BoxedListItem>
40
+ </BoxedList>
41
+
33
42
  <p className="docs-page__paragraph">// clickable, with media and actions</p>
34
43
 
35
44
  <BoxedList>
@@ -200,6 +209,15 @@ export default class BoxedListDoc extends React.Component {
200
209
  <BoxedListItem type='highlight'>Highlight type, cras mattis consectetur purus sit amet fermentum.</BoxedListItem>
201
210
  </BoxedList>
202
211
 
212
+ // with colored background (affects only success, warning, alert and highlight types)</p>
213
+
214
+ <BoxedList>
215
+ <BoxedListItem coloredBg type='success'>Succes, donec sed odio dui.</BoxedListItem>
216
+ <BoxedListItem coloredBg type='warning'>Warning, maecenas sed diam eget risus varius.</BoxedListItem>
217
+ <BoxedListItem coloredBg type='alert'>Alert. Nullam quis risus eget urna mollis ornare vel eu leo.</BoxedListItem>
218
+ <BoxedListItem coloredBg type='highlight'>Highlight type, cras mattis consectetur purus sit amet fermentum.</BoxedListItem>
219
+ </BoxedList>
220
+
203
221
  // clickable, with media and actions
204
222
 
205
223
  <BoxedList>
@@ -350,12 +368,19 @@ export default class BoxedListDoc extends React.Component {
350
368
  </PropsList>
351
369
  <p className="docs-page__paragraph">BoxedListItem</p>
352
370
  <PropsList>
371
+ <Prop name='density' isRequired={false} type='compact | comfortable | loose' default='comfortable' description='Changes the outside padding of the list item.'/>
372
+ <Prop name='type' isRequired={false} type='default | primary | success | warning | alert | highlight' default='/' description='Adds a clour coded border on the right, based on the selected type.'/>
353
373
  <Prop name='clickable' isRequired={false} type='boolean' default='false' description='Adds hover effect and changes the cursor to poiter.'/>
354
374
  <Prop name='selected' isRequired={false} type='boolean' default='false' description='Changes the state to selected and adds apropriate styling for it.'/>
375
+ <Prop name='unread' isRequired={false} type='boolean' default='false' description='Changes the state to unread and adds apropriate styling for it.'/>
376
+ <Prop name='alignVertical' isRequired={false} type='start | center' default='/' description='Changes the verticla alignment of the content inside list items.'/>
355
377
  <Prop name='slideInActions' isRequired={false} type='boolean' default='false' description='If set to true, the action buttons will be hidden and slide in from the right on hover.'/>
356
- <Prop name='type' isRequired={false} type='default | primary | success | warning | alert | highlight' default='/' description='Adds a clour coded border on the right, based on the selected type.'/>
378
+ <Prop name='coloredBg' isRequired={false} type='boolean' default='false' description='Adds a colored background to the list item (affects only success, warning, alert and highlight types).'/>
379
+ <Prop name='onClick' isRequired={false} type='function' default='/' description='Callback fired when pressed (combine with clickable prop).'/>
380
+ <Prop name='media' isRequired={false} type='React.ReactNode' default='/' description='Adds a media element (icon, avatar, etc.) to the list item.'/>
381
+ <Prop name='footer' isRequired={false} type='React.ReactNode' default='/' description='Adds a footer to the list item.'/>
382
+ <Prop name='actions' isRequired={false} type='React.ReactNode' default='/' description='Adds a actions to the list item.'/>
357
383
  </PropsList>
358
-
359
384
  </section>
360
385
  )
361
386
  }
@@ -13,6 +13,9 @@ interface IState {
13
13
  value6?: string;
14
14
  value7?: string;
15
15
  value8?: string;
16
+ value9?: string;
17
+ value10?: string;
18
+ value11?: string;
16
19
  }
17
20
 
18
21
  export default class RadioGroupDoc extends React.Component<{}, IState> {
@@ -28,6 +31,9 @@ export default class RadioGroupDoc extends React.Component<{}, IState> {
28
31
  value6: undefined,
29
32
  value7: undefined,
30
33
  value8: undefined,
34
+ value9: undefined,
35
+ value10: undefined,
36
+ value11: undefined,
31
37
  };
32
38
  }
33
39
  render() {
@@ -158,6 +164,16 @@ export default class RadioGroupDoc extends React.Component<{}, IState> {
158
164
  {value:'test12', label:'Yeah, me too!', icon:'kanban-view'},
159
165
  ]} value={this.state.value4} onChange={(value) => this.setState(() => ({ value4: value }))} />
160
166
  </div>
167
+
168
+ <p className="docs-page__paragraph docs-page__paragraph--topMarginL">// With icon & vertical</p>
169
+ <div className='form__group'style={{width: 240}}>
170
+ <RadioButtonGroup group={{orientation: 'vertical'}} options={[
171
+ {value:'test10', label:'Radio button with icon', icon:'list-view'},
172
+ {value:'test11', label:'I have an icon!', icon:'grid-view'},
173
+ {value:'test12', label:'Yeah, me too!', icon:'kanban-view'},
174
+ ]} value={this.state.value4} onChange={(value) => this.setState(() => ({ value4: value }))} />
175
+ </div>
176
+
161
177
  <p className="docs-page__paragraph docs-page__paragraph--topMarginL">// With icon only (text label is hidden but still accessible to screenreaders)</p>
162
178
  <div className='form__group'>
163
179
  <RadioButtonGroup options={[
@@ -185,14 +201,21 @@ export default class RadioGroupDoc extends React.Component<{}, IState> {
185
201
  {value:'test9', label:'Button style disabled', disabled:true},
186
202
  ]} value={this.state.value3} onChange={(value) => this.setState(() => ({ value3: value }))} />
187
203
 
188
- // Button styled radio with icon
204
+ // With icon
189
205
  <RadioButtonGroup options={[
190
206
  {value:'test10', label:'Radio button with icon', icon:'list-view'},
191
207
  {value:'test11', label:'I have an icon!', icon:'grid-view'},
192
208
  {value:'test12', label:'Yeah, me too!', icon:'kanban-view'},
193
209
  ]} value={this.state.value4} onChange={(value) => this.setState(() => ({ value4: value }))} />
194
210
 
195
- // Button style radio with icon only (text label is hidden)
211
+ // With icon & vertical
212
+ <RadioButtonGroup group={{orientation: 'vertical'}} options={[
213
+ {value:'test10', label:'Radio button with icon', icon:'list-view'},
214
+ {value:'test11', label:'I have an icon!', icon:'grid-view'},
215
+ {value:'test12', label:'Yeah, me too!', icon:'kanban-view'},
216
+ ]} value={this.state.value4} onChange={(value) => this.setState(() => ({ value4: value }))} />
217
+
218
+ // With icon only (text label is hidden but still accessible to screenreaders)
196
219
  <RadioButtonGroup options={[
197
220
  {value:'test10', label:'Radio button with icon', icon:'list-view', labelHidden: true},
198
221
  {value:'test11', label:'I have an icon!', icon:'grid-view', labelHidden: true},
@@ -220,7 +243,7 @@ export default class RadioGroupDoc extends React.Component<{}, IState> {
220
243
  </div>
221
244
  <p className="docs-page__paragraph docs-page__paragraph--topMarginL">// Right</p>
222
245
  <div className='form__row form__row--flex docs-page__test-helper-2'>
223
- <RadioButtonGroup group={{align:'end', groupLabel:'My group label'}} value={this.state.value4} options={[
246
+ <RadioButtonGroup group={{align:'end'}} value={this.state.value4} options={[
224
247
  {value:'test304', label:'Option one'},
225
248
  {value:'test305', label:'Option two'},
226
249
  {value:'test306', label:'Option three'},