@finsemble/finsemble-ui 7.2.1 → 7.3.1

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 (124) hide show
  1. package/package.json +14 -14
  2. package/react/assets/css/button.css +34 -6
  3. package/react/assets/css/contextMenu.css +118 -0
  4. package/react/assets/css/notificationsCenter.css +3 -214
  5. package/react/assets/css/userPreferences.css +2 -2
  6. package/react/components/common/Checkbox.d.ts +3 -2
  7. package/react/components/common/Checkbox.js +5 -21
  8. package/react/components/common/Checkbox.js.map +1 -1
  9. package/react/components/common/ContextMenu.d.ts +13 -0
  10. package/react/components/common/ContextMenu.js +69 -0
  11. package/react/components/common/ContextMenu.js.map +1 -0
  12. package/react/components/common/DropdownButton.d.ts +0 -4
  13. package/react/components/common/DropdownButton.js +39 -10
  14. package/react/components/common/DropdownButton.js.map +1 -1
  15. package/react/components/common/css/FinsembleToggle.css +0 -1
  16. package/react/components/common/css/application-edit-page.css +3 -4
  17. package/react/components/common/css/checkbox.css +60 -21
  18. package/react/components/common/css/icon.css +2 -2
  19. package/react/components/common/css/toggle.css +4 -1
  20. package/react/components/common/helpers.js +9 -0
  21. package/react/components/common/helpers.js.map +1 -1
  22. package/react/components/common/stories/ContextMenu.stories.d.ts +38 -0
  23. package/react/components/common/stories/ContextMenu.stories.js +70 -0
  24. package/react/components/common/stories/ContextMenu.stories.js.map +1 -0
  25. package/react/components/common/stories/DropdownButton.stories.d.ts +3 -3
  26. package/react/components/common/stories/DropdownButton.stories.js +11 -10
  27. package/react/components/common/stories/DropdownButton.stories.js.map +1 -1
  28. package/react/components/common/tests/Checkbox.spec.js +10 -12
  29. package/react/components/common/tests/Checkbox.spec.js.map +1 -1
  30. package/react/components/common/tests/ContextMenu.spec.d.ts +1 -0
  31. package/react/components/common/tests/ContextMenu.spec.js +108 -0
  32. package/react/components/common/tests/ContextMenu.spec.js.map +1 -0
  33. package/react/components/common/tests/DropdownButton.spec.d.ts +1 -0
  34. package/react/components/common/tests/DropdownButton.spec.js +32 -0
  35. package/react/components/common/tests/DropdownButton.spec.js.map +1 -0
  36. package/react/components/notifications/components/drawer/DrawerHeader.js +3 -3
  37. package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
  38. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +1 -0
  39. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  40. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +2 -0
  41. package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
  42. package/react/components/notifications/components/shared/IconButton.js +2 -1
  43. package/react/components/notifications/components/shared/IconButton.js.map +1 -1
  44. package/react/components/notifications/components/shared/NotificationCardShell.d.ts +2 -0
  45. package/react/components/notifications/components/shared/NotificationCardShell.js +55 -49
  46. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  47. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js +2 -3
  48. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  49. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +4 -0
  50. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js +92 -13
  51. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
  52. package/react/components/notifications/components/views/ListView.js +5 -9
  53. package/react/components/notifications/components/views/ListView.js.map +1 -1
  54. package/react/components/notifications/css/notification-card.css +165 -0
  55. package/react/components/notifications/stories/NotificationCardShell.stories.d.ts +14 -0
  56. package/react/components/notifications/stories/NotificationCardShell.stories.js +108 -0
  57. package/react/components/notifications/stories/NotificationCardShell.stories.js.map +1 -0
  58. package/react/components/notifications/tests/NotificationCardShell.spec.d.ts +1 -0
  59. package/react/components/notifications/tests/NotificationCardShell.spec.js +91 -0
  60. package/react/components/notifications/tests/NotificationCardShell.spec.js.map +1 -0
  61. package/react/components/notifications/types.d.ts +4 -2
  62. package/react/components/notifications/types.js.map +1 -1
  63. package/react/components/sdd/AddApp.d.ts +3 -3
  64. package/react/components/sdd/AddApp.js +29 -21
  65. package/react/components/sdd/AddApp.js.map +1 -1
  66. package/react/components/sdd/AppEditPage.js +1 -8
  67. package/react/components/sdd/AppEditPage.js.map +1 -1
  68. package/react/components/sdd/Appearance.css +2 -1
  69. package/react/components/sdd/Applications.js +7 -7
  70. package/react/components/sdd/Applications.js.map +1 -1
  71. package/react/components/sdd/Navigation.js +2 -4
  72. package/react/components/sdd/Navigation.js.map +1 -1
  73. package/react/components/sdd/common/views.js +1 -14
  74. package/react/components/sdd/common/views.js.map +1 -1
  75. package/react/components/sdd/css/addApp.css +64 -1
  76. package/react/components/sdd/css/nav.css +50 -29
  77. package/react/components/sdd/fixtures/views.js +1 -14
  78. package/react/components/sdd/fixtures/views.js.map +1 -1
  79. package/react/components/sdd/tests/AddApp.spec.js +2 -2
  80. package/react/components/sdd/tests/AddApp.spec.js.map +1 -1
  81. package/react/components/sdd/tests/AppEditPage.spec.js +5 -8
  82. package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
  83. package/react/components/sdd/tests/Export.spec.js +11 -11
  84. package/react/components/sdd/tests/Export.spec.js.map +1 -1
  85. package/react/components/sdd/tests/ExportZip.spec.js +3 -3
  86. package/react/components/sdd/tests/ExportZip.spec.js.map +1 -1
  87. package/react/components/sdd/tests/Navigation.spec.js +3 -2
  88. package/react/components/sdd/tests/Navigation.spec.js.map +1 -1
  89. package/react/components/sdd/tests/SmartDesktopDesigner.spec.js +1 -2
  90. package/react/components/sdd/tests/SmartDesktopDesigner.spec.js.map +1 -1
  91. package/react/components/toolbar/dashbar/Dashbar.js +18 -14
  92. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  93. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +9 -1
  94. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +35 -1
  95. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  96. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +1 -1
  97. package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
  98. package/react/components/userPreferences/components/content/Workspaces.d.ts +3 -1
  99. package/react/components/userPreferences/components/content/Workspaces.js +20 -3
  100. package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
  101. package/react/components/userPreferences/components/workspaces/WorkspaceItem.d.ts +1 -0
  102. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +3 -2
  103. package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
  104. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js +12 -9
  105. package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
  106. package/react/components/userPreferences/tests/UserPreferencesBase.spec.js +2 -0
  107. package/react/components/userPreferences/tests/UserPreferencesBase.spec.js.map +1 -1
  108. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +99 -26
  109. package/react/components/windowTitleBar/WindowTitleBarShell.js +204 -131
  110. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  111. package/react/components/windowTitleBar/components/left/LinkerButton.js +30 -21
  112. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  113. package/react/hooks/useNotifications.js +8 -7
  114. package/react/hooks/useNotifications.js.map +1 -1
  115. package/react/tsconfig.tsbuildinfo +1 -1
  116. package/react/components/notifications/components/shared/OverflowMenu.d.ts +0 -16
  117. package/react/components/notifications/components/shared/OverflowMenu.js +0 -114
  118. package/react/components/notifications/components/shared/OverflowMenu.js.map +0 -1
  119. package/react/components/sdd/GettingStarted.d.ts +0 -8
  120. package/react/components/sdd/GettingStarted.js +0 -25
  121. package/react/components/sdd/GettingStarted.js.map +0 -1
  122. package/react/components/sdd/stories/GettingStarted.stories.d.ts +0 -11
  123. package/react/components/sdd/stories/GettingStarted.stories.js +0 -18
  124. package/react/components/sdd/stories/GettingStarted.stories.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finsemble/finsemble-ui",
3
- "version": "7.2.1",
3
+ "version": "7.3.1",
4
4
  "description": "Ready-made React components to give you a head-start building your SmartDesktop.",
5
5
  "types": "index.d.ts",
6
6
  "files": [
@@ -29,11 +29,11 @@
29
29
  "build-storybook": "build-storybook"
30
30
  },
31
31
  "dependencies": {
32
- "@finsemble/finsemble-api": "7.2.1",
32
+ "@finsemble/finsemble-api": "7.3.1",
33
33
  "@q42/floating-focus-a11y": "^1.3.3",
34
34
  "@reduxjs/toolkit": "^1.5.0",
35
35
  "@svgr/webpack": "^5.5.0",
36
- "@types/async": "3.2.13",
36
+ "@types/async": "3.2.15",
37
37
  "@types/chai": "4.3.1",
38
38
  "@types/lodash": "4.14.182",
39
39
  "@types/mocha": "9.1.1",
@@ -41,9 +41,9 @@
41
41
  "@types/react-dom": "17.0.16",
42
42
  "@types/react-redux": "7.1.24",
43
43
  "@types/react-relative-portal": "^1.8.1",
44
- "async": "3.2.3",
44
+ "async": "3.2.4",
45
45
  "date-fns": "^2.25.0",
46
- "immer": "9.0.14",
46
+ "immer": "9.0.15",
47
47
  "lodash": "4.17.21",
48
48
  "react-circular-progressbar": "^2.0.3",
49
49
  "react-redux": "7.2.8",
@@ -63,13 +63,13 @@
63
63
  "@babel/preset-env": "^7.16.0",
64
64
  "@babel/preset-react": "^7.12.10",
65
65
  "@babel/register": "^7.16.0",
66
- "@storybook/addon-actions": "6.5.8",
67
- "@storybook/addon-essentials": "6.5.7",
68
- "@storybook/addon-links": "6.5.5",
69
- "@storybook/react": "6.5.6",
66
+ "@storybook/addon-actions": "6.5.9",
67
+ "@storybook/addon-essentials": "6.5.9",
68
+ "@storybook/addon-links": "6.5.9",
69
+ "@storybook/react": "6.5.9",
70
70
  "@types/enzyme": "^3.10.8",
71
- "@types/react-syntax-highlighter": "15.5.1",
72
- "@types/react-transition-group": "4.4.4",
71
+ "@types/react-syntax-highlighter": "15.5.2",
72
+ "@types/react-transition-group": "4.4.5",
73
73
  "@types/sinon": "^10.0.2",
74
74
  "@wojtekmaj/enzyme-adapter-react-17": "^0.6.2",
75
75
  "axe-core": "^4.2.3",
@@ -77,14 +77,14 @@
77
77
  "canvas": "^2.9.0",
78
78
  "chai": "4.3.6",
79
79
  "chokidar-cli": "3.0.0",
80
- "concurrently": "7.2.1",
80
+ "concurrently": "7.2.2",
81
81
  "copyfiles": "2.4.1",
82
82
  "core-js": "^3.15.2",
83
83
  "depcheck": "^1.4.3",
84
84
  "enzyme": "^3.11.0",
85
85
  "ignore-styles": "^5.0.1",
86
86
  "improved-yarn-audit": "^3.0.0",
87
- "jsdom": "^19.0.0",
87
+ "jsdom": "^20.0.0",
88
88
  "mocha": "10.0.0",
89
89
  "nyc": "15.1.0",
90
90
  "react": "17.0.2",
@@ -92,7 +92,7 @@
92
92
  "rimraf": "3.0.2",
93
93
  "sinon": "^14.0.0",
94
94
  "ts-mocha": "10.0.0",
95
- "typescript": "4.7.3"
95
+ "typescript": "4.7.4"
96
96
  },
97
97
  "resolutions": {
98
98
  "trim-newlines": "4.0.1",
@@ -83,8 +83,17 @@
83
83
  .finsemble-dropdown-action__btn .expand-options {
84
84
  justify-content: center;
85
85
  display: flex;
86
- height: 100%;
86
+ align-self: stretch;
87
87
  align-items: center;
88
+ padding-left: 4px;
89
+ border-top-right-radius: 5px;
90
+ border-bottom-right-radius: 5px;
91
+ }
92
+
93
+ .finsemble-dropdown-action__btn .expand-options:hover,
94
+ .finsemble-dropdown-action__btn .expand-options:focus {
95
+ cursor: pointer;
96
+ background-color: var(--accent-primary-1);
88
97
  }
89
98
 
90
99
  .finsemble-dropdown-action__btn span.btn-label {
@@ -96,9 +105,13 @@
96
105
  padding: 4px;
97
106
  margin: auto;
98
107
  color: var(--font-color);
108
+ cursor: pointer;
109
+ border-top-left-radius: 5px;
110
+ border-bottom-left-radius: 5px;
99
111
  }
100
112
 
101
- .finsemble-dropdown-action__btn:hover {
113
+ .finsemble-dropdown-action__btn span.btn-label:hover,
114
+ .finsemble-dropdown-action__btn span.btn-label:focus {
102
115
  background-color: var(--accent-primary-1);
103
116
  }
104
117
 
@@ -115,6 +128,12 @@
115
128
  text-align: right;
116
129
  top: 25px;
117
130
  white-space: nowrap;
131
+ z-index: 999;
132
+ }
133
+
134
+ .finsemble-dropdown-action__btn-options.flow-up {
135
+ top: auto;
136
+ bottom: 31px;
118
137
  }
119
138
 
120
139
  .finsemble-dropdown-action__btn-option {
@@ -128,10 +147,15 @@
128
147
  color: var(--font-color);
129
148
  }
130
149
 
131
- .finsemble-dropdown-action__btn-option:hover {
150
+ .finsemble-dropdown-action__btn-option:hover,
151
+ .finsemble-dropdown-action__btn-option:focus {
132
152
  background-color: var(--accent-primary);
133
153
  }
134
154
 
155
+ .finsemble-dropdown-action__btn .separator {
156
+ margin: 0;
157
+ }
158
+
135
159
  .caret {
136
160
  border-left: 5px solid transparent;
137
161
  border-right: 5px solid transparent;
@@ -139,6 +163,7 @@
139
163
  height: 0;
140
164
  margin-right: 5px;
141
165
  width: 0;
166
+ cursor: pointer;
142
167
  }
143
168
 
144
169
  .separator {
@@ -169,7 +194,8 @@
169
194
  margin: 0 10px;
170
195
  }
171
196
 
172
- .finsemble-navigation__btn:hover {
197
+ .finsemble-navigation__btn:hover,
198
+ .finsemble-navigation__btn:focus {
173
199
  background-color: var(--core-primary-3);
174
200
  }
175
201
 
@@ -200,7 +226,8 @@
200
226
  color: var(--font-color);
201
227
  }
202
228
 
203
- .finsemble__btn:hover {
229
+ .finsemble__btn:hover,
230
+ .finsemble__btn:focus {
204
231
  background-color: var(--core-primary-2);
205
232
  }
206
233
 
@@ -208,6 +235,7 @@
208
235
  background-color: var(--accent-negative);
209
236
  }
210
237
 
211
- .finsemble__btn.accent-negative:hover {
238
+ .finsemble__btn.accent-negative:hover,
239
+ .finsemble__btn.accent-negative:focus {
212
240
  background-color: var(--accent-negative-1);
213
241
  }
@@ -0,0 +1,118 @@
1
+ @import url("https://fonts.googleapis.com/css?family=Roboto+Condensed&display=swap");
2
+
3
+ @import "./shared/animations.css";
4
+
5
+ .context-menu__container {
6
+ background-color: var(--core-primary-3);
7
+ border-radius: 4px;
8
+ display: flex;
9
+ flex-direction: column;
10
+ min-width: 105px;
11
+ padding: 5px 0;
12
+ position: absolute;
13
+ z-index: 999;
14
+ top: 50%;
15
+ right: 30%;
16
+ width: fit-content;
17
+ }
18
+
19
+ .context-menu__container.flow-right {
20
+ left: 5%;
21
+ }
22
+
23
+ .context-menu__container.flow-up {
24
+ top: auto;
25
+ bottom: 15px;
26
+ }
27
+
28
+ .context-menu__container .context-menu__action {
29
+ color: var(--core-primary-5);
30
+ cursor: pointer;
31
+ display: flex;
32
+ font-size: var(--font-size);
33
+ height: 17px;
34
+ line-height: 26px;
35
+ padding: 4px;
36
+ text-align: center;
37
+ white-space: nowrap;
38
+ }
39
+
40
+ .context-menu__container .context-menu__action:hover {
41
+ opacity: 0.5;
42
+ background-color: var(--core-primary-1);
43
+ }
44
+
45
+ .context-menu__action {
46
+ display: grid;
47
+ grid-template-columns: 30px auto;
48
+ grid-template-rows: 26px;
49
+ align-items: center;
50
+ padding-left: 0;
51
+ }
52
+
53
+ .context-menu__action .icon-holder i {
54
+ font-size: 18px;
55
+ color: white;
56
+ }
57
+
58
+ .context-menu__action i {
59
+ color: var(--core-primary-5);
60
+ }
61
+
62
+ .context-menu__action span {
63
+ margin-left: 1px;
64
+ color: var(--font-color);
65
+ }
66
+
67
+ .context-menu__action:hover {
68
+ background-color: var(--accent-primary);
69
+ }
70
+
71
+ .context-menu__container .finsemble-icon {
72
+ display: grid;
73
+ margin: 0 7px;
74
+ width: 17px;
75
+ height: 17px;
76
+ font-size: 16px;
77
+ }
78
+
79
+ .context-menu__container .finsemble-icon svg {
80
+ font-size: 1em;
81
+ width: 1em;
82
+ height: 1em;
83
+ fill: currentcolor;
84
+ display: inline-block;
85
+ color: inherit;
86
+ pointer-events: none;
87
+ line-height: normal;
88
+ }
89
+
90
+ .context-menu__container .finsemble-icon i {
91
+ color: var(--font-color);
92
+ }
93
+
94
+ .context-menu__container .finsemble-icon g {
95
+ fill: var(--font-color); /* custom icons (evelope, snooze, etc) color */
96
+ }
97
+
98
+ .finsemble-icon__btn {
99
+ align-items: center;
100
+ color: var(--core-primary-5);
101
+ cursor: pointer;
102
+ height: 24px;
103
+ position: relative;
104
+ width: 24px;
105
+ }
106
+
107
+ .finsemble-icon__btn.active {
108
+ color: var(--accent-primary);
109
+ }
110
+
111
+ .finsemble-icon__btn:hover:not(.no-hover) {
112
+ background: var(--menu-actions-hover-color);
113
+ border-radius: 50%;
114
+ }
115
+
116
+ .finsemble-icon__btn > i {
117
+ font-size: var(--font-size-large);
118
+ }
@@ -182,52 +182,13 @@ body.notifications-center-body.notifications-popped-in {
182
182
  }
183
183
 
184
184
  /* Notification card and views */
185
- .notification-card {
186
- background-color: var(--core-primary);
187
- box-shadow: 0 0 8px 0 rgb(0 0 0 / 50%);
188
- display: flex;
189
- flex-direction: column;
190
- font-family: var(--notification-font-family);
191
- min-height: 120px;
192
- padding: 8px 10px;
193
- margin: 0 5px;
194
- }
195
-
196
- .notification-card.read {
197
- background-color: var(--core-primary-opacity);
198
- color: var(--font-shadow-light);
199
- }
200
-
201
- #notifications-center .notification-card.new {
202
- box-shadow: 0 0 9px 0 var(--notification-highlight-border-color);
203
- }
204
-
205
- .notification-day {
206
- color: var(--font-shadow-light);
207
- font-size: var(--font-size);
208
- font-weight: bold;
209
- margin: 10px auto;
210
- padding: 0 0 0 5px;
211
- }
212
-
213
- .notification-card__header {
214
- display: grid;
215
- grid-template-columns: 25px auto minmax(80px, auto);
216
- grid-template-rows: 30px;
217
- align-items: center;
218
- }
219
-
220
- .notifications-toast__offscreen .notification-card__header {
221
- grid-template-columns: 25px auto 45px;
222
- }
223
185
 
224
186
  i.default-img.large {
225
187
  font-size: var(--font-size-large);
226
188
  justify-self: center;
227
189
  }
228
190
 
229
- .list-row__cell img,
230
- .notification-card__header img {
191
+ .list-row__cell img {
231
192
  object-fit: contain;
232
193
  margin-right: 8px;
233
194
  max-width: 18px;
@@ -236,93 +197,6 @@ i.default-img.large {
236
197
  height: auto;
237
198
  }
238
199
 
239
- .notification-card__title {
240
- display: block;
241
- font-size: var(--font-size-large);
242
- overflow: hidden;
243
- text-overflow: ellipsis;
244
- white-space: nowrap;
245
- margin-right: auto;
246
- width: 100%;
247
- }
248
-
249
- .notification-card__more-options__no-toggle,
250
- .notification-card__more-options__toggle {
251
- cursor: pointer;
252
- white-space: nowrap;
253
- display: grid;
254
- grid-template-rows: 30px;
255
- align-items: center;
256
- grid-template-columns: minmax(80px, auto);
257
- justify-items: end;
258
- margin-left: 2px;
259
- }
260
-
261
- .notifications-toast__offscreen .notification-card__more-options__no-toggle,
262
- .notifications-toast__offscreen .notification-card__more-options__toggle {
263
- grid-template-columns: 25px 20px;
264
- }
265
-
266
- .notification-card__more-options__toggle .notification-card_overflow_menu,
267
- .notification-card__more-options__toggle:hover .notification-card_timestamp {
268
- display: none;
269
- }
270
-
271
- .notification-card__more-options__no-toggle .notification-card_overflow_menu,
272
- .notification-card__more-options__toggle:hover .notification-card_overflow_menu {
273
- display: flex;
274
- }
275
-
276
- .notification-card__dismiss.finsemble-icon__btn i {
277
- font-size: var(--titleBar-icon-font-size);
278
- }
279
-
280
- .notification-card__more-options__no-toggle .notification-card__dismiss:hover {
281
- color: var(--titleBar-button-hover-negative-color);
282
- }
283
-
284
- .notification-card__body {
285
- display: flex;
286
- flex-direction: row;
287
- font-size: var(--font-size-large);
288
- margin-top: 8px;
289
- }
290
-
291
- .notification-card__body_text {
292
- -webkit-box-orient: vertical;
293
- -webkit-line-clamp: 4;
294
- color: var(--core-primary-5);
295
- display: box;
296
- overflow: hidden;
297
- }
298
-
299
- .notification-card__body_img_container {
300
- width: 50px;
301
- height: 50px;
302
- padding-right: 5px;
303
- padding-bottom: 5px;
304
- }
305
-
306
- .notification-card__body_img_container img {
307
- width: inherit;
308
- height: inherit;
309
- }
310
-
311
- .notification-card.read .notification-card__body_text {
312
- color: var(--font-color-1-shadow);
313
- }
314
-
315
- .actions-panel {
316
- align-items: flex-end;
317
- display: flex;
318
- flex-direction: column;
319
- margin-left: auto;
320
- }
321
-
322
- .actions-panel__btn:hover {
323
- opacity: 0.75;
324
- }
325
-
326
200
  .list-header__container {
327
201
  align-items: center;
328
202
  display: grid;
@@ -384,82 +258,22 @@ i.default-img.large {
384
258
  visibility: visible;
385
259
  }
386
260
 
387
- .notification-card .overflow-menu__container,
388
- .notification-card.read .overflow-menu__container {
261
+ .notification-card .context-menu__container,
262
+ .notification-card.read .context-menu__container {
389
263
  color: var(--font-color);
390
264
  }
391
265
 
392
- .overflow-menu__container {
393
- background-color: var(--core-primary-3);
394
- border-radius: 4px;
395
- display: flex;
396
- flex-direction: column;
397
- min-width: 120px;
398
- padding: 10px 0;
399
- position: absolute;
400
- right: 10px;
401
- top: 10px;
402
- z-index: 999;
403
- }
404
-
405
- .overflow-menu__container.flow-up {
406
- top: auto;
407
- bottom: 15px;
408
- }
409
-
410
- .overflow-menu__container .action {
411
- color: var(--core-primary-5);
412
- cursor: pointer;
413
- display: flex;
414
- font-size: var(--font-size);
415
- height: 26px;
416
- justify-content: center;
417
- line-height: 26px;
418
- padding: 4px;
419
- text-align: center;
420
- }
421
-
422
- .overflow-menu__container .action:hover {
423
- opacity: 0.5;
424
- background-color: var(--core-primary-1);
425
- }
426
-
427
266
  .no-notifications {
428
267
  display: flex;
429
268
  justify-content: center;
430
269
  margin-top: 20px;
431
270
  }
432
271
 
433
- .overflow-menu__action {
434
- display: grid;
435
- grid-template-columns: 30px auto;
436
- grid-template-rows: 26px;
437
- align-items: center;
438
- }
439
-
440
- .overflow-menu__action .icon-holder i {
441
- font-size: 18px;
442
- color: white;
443
- }
444
-
445
272
  .icon-holder svg {
446
273
  width: 20px;
447
274
  height: 20px;
448
275
  }
449
276
 
450
- .overflow-menu__action i {
451
- color: var(--core-primary-5);
452
- }
453
-
454
- .overflow-menu__action span {
455
- margin-left: 5px;
456
- color: var(--font-color);
457
- }
458
-
459
- .overflow-menu__action:hover {
460
- background-color: var(--accent-primary);
461
- }
462
-
463
277
  .finsemble-icon {
464
278
  display: grid;
465
279
  margin: 0 7px;
@@ -535,30 +349,6 @@ i.default-img.large {
535
349
 
536
350
  /* Buttons & Icons - This are probably better placed in the core CSS? */
537
351
 
538
- .finsemble-icon__btn {
539
- align-items: center;
540
- color: var(--core-primary-5);
541
- cursor: pointer;
542
- display: flex;
543
- height: 24px;
544
- justify-content: center;
545
- position: relative;
546
- width: 24px;
547
- }
548
-
549
- .finsemble-icon__btn.active {
550
- color: var(--accent-primary);
551
- }
552
-
553
- .finsemble-icon__btn:hover:not(.no-hover) {
554
- background: var(--menu-actions-hover-color);
555
- border-radius: 50%;
556
- }
557
-
558
- .finsemble-icon__btn i {
559
- font-size: var(--font-size-large);
560
- }
561
-
562
352
  /*** Notifications Toasts ***/
563
353
 
564
354
  body.notifications-toasts-body {
@@ -577,7 +367,6 @@ body.notifications-toasts-body {
577
367
  }
578
368
 
579
369
  .notifications-toast__offscreen {
580
- transform: translateX(1000px);
581
370
  transform: translateX(1000px);
582
371
  animation: slide-in-right-opaque 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
583
372
  }
@@ -375,7 +375,7 @@ img {
375
375
  margin-bottom: 10px;
376
376
  }
377
377
 
378
- .close-toggle-container .complex-menu-checkbox-wrapper {
378
+ .close-toggle-container .checkbox-wrapper {
379
379
  margin-top: 0;
380
380
  width: 90px;
381
381
  margin-right: 15px;
@@ -462,7 +462,7 @@ option:focus {
462
462
  align-items: center;
463
463
  }
464
464
 
465
- .row-section .complex-menu-checkbox-wrapper {
465
+ .row-section .checkbox-wrapper {
466
466
  width: 100%;
467
467
  }
468
468
 
@@ -3,8 +3,9 @@ import "./css/checkbox.css";
3
3
  export interface CheckboxProps {
4
4
  checked?: boolean;
5
5
  disabled?: boolean;
6
- label?: string;
6
+ label: string;
7
7
  showLabel?: boolean;
8
- onClick?: (e: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => void;
8
+ id?: string;
9
+ onClick?: (e: React.ChangeEvent<HTMLInputElement>) => void;
9
10
  }
10
11
  export declare const Checkbox: React.FC<CheckboxProps>;
@@ -1,24 +1,8 @@
1
1
  import React from "react";
2
- import { FinsembleIcon } from "./FinsembleIcon";
2
+ // import { FinsembleIcon } from "./FinsembleIcon";
3
3
  import "./css/checkbox.css";
4
- export const Checkbox = ({ checked = false, disabled = false, label = "", showLabel = true, onClick = () => { }, }) => {
5
- let checkboxClasses = "complex-menu-checkbox";
6
- if (checked) {
7
- checkboxClasses = `${checkboxClasses} checked`;
8
- }
9
- let style = {};
10
- if (disabled) {
11
- style = {
12
- cursor: "default",
13
- opacity: ".3",
14
- };
15
- }
16
- return (React.createElement("div", { style: style, className: "complex-menu-checkbox-wrapper", role: "checkbox", "aria-checked": checked, "aria-label": label, tabIndex: 0, onClick: disabled ? () => { } : onClick, onKeyDown: (e) => {
17
- if (e.key === "Enter" || e.key === " ") {
18
- !disabled && onClick(e);
19
- }
20
- } },
21
- React.createElement("div", { className: checkboxClasses }, checked && React.createElement(FinsembleIcon, { icon: "check" })),
22
- showLabel && React.createElement("div", { className: "complex-menu-checkbox-label" }, label)));
23
- };
4
+ export const Checkbox = ({ checked = false, disabled = false, label, showLabel = true, id, onClick = () => { }, }) => (React.createElement("div", { className: "checkbox-wrapper" },
5
+ React.createElement("label", null,
6
+ React.createElement("input", { type: "checkbox", id: id, disabled: disabled, checked: checked, "aria-label": label, onChange: onClick }),
7
+ showLabel && React.createElement("span", null, label))));
24
8
  //# sourceMappingURL=Checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../src/components/common/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,oBAAoB,CAAC;AAU5B,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,EACjD,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,EAAE,EACV,SAAS,GAAG,IAAI,EAChB,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,GAClB,EAAE,EAAE;IACJ,IAAI,eAAe,GAAG,uBAAuB,CAAC;IAC9C,IAAI,OAAO,EAAE;QACZ,eAAe,GAAG,GAAG,eAAe,UAAU,CAAC;KAC/C;IACD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,QAAQ,EAAE;QACb,KAAK,GAAG;YACP,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI;SACb,CAAC;KACF;IACD,OAAO,CACN,6BACC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAC,+BAA+B,EACzC,IAAI,EAAC,UAAU,kBACD,OAAO,gBACT,KAAK,EACjB,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EACtC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YAChB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;gBACvC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;aACxB;QACF,CAAC;QAED,6BAAK,SAAS,EAAE,eAAe,IAAG,OAAO,IAAI,oBAAC,aAAa,IAAC,IAAI,EAAC,OAAO,GAAG,CAAO;QACjF,SAAS,IAAI,6BAAK,SAAS,EAAC,6BAA6B,IAAE,KAAK,CAAO,CACnE,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import React from \"react\";\nimport { FinsembleIcon } from \"./FinsembleIcon\";\nimport \"./css/checkbox.css\";\n\nexport interface CheckboxProps {\n\tchecked?: boolean;\n\tdisabled?: boolean;\n\tlabel?: string;\n\tshowLabel?: boolean;\n\tonClick?: (e: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => void;\n}\n\nexport const Checkbox: React.FC<CheckboxProps> = ({\n\tchecked = false,\n\tdisabled = false,\n\tlabel = \"\",\n\tshowLabel = true,\n\tonClick = () => {},\n}) => {\n\tlet checkboxClasses = \"complex-menu-checkbox\";\n\tif (checked) {\n\t\tcheckboxClasses = `${checkboxClasses} checked`;\n\t}\n\tlet style = {};\n\tif (disabled) {\n\t\tstyle = {\n\t\t\tcursor: \"default\",\n\t\t\topacity: \".3\",\n\t\t};\n\t}\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName=\"complex-menu-checkbox-wrapper\"\n\t\t\trole=\"checkbox\"\n\t\t\taria-checked={checked}\n\t\t\taria-label={label}\n\t\t\ttabIndex={0}\n\t\t\tonClick={disabled ? () => {} : onClick}\n\t\t\tonKeyDown={(e) => {\n\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\n\t\t\t\t\t!disabled && onClick(e);\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<div className={checkboxClasses}>{checked && <FinsembleIcon icon=\"check\" />}</div>\n\t\t\t{showLabel && <div className=\"complex-menu-checkbox-label\">{label}</div>}\n\t\t</div>\n\t);\n};\n"]}
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../src/components/common/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,mDAAmD;AACnD,OAAO,oBAAoB,CAAC;AAa5B,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,EACjD,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,SAAS,GAAG,IAAI,EAChB,EAAE,EACF,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,GAClB,EAAE,EAAE,CAAC,CACL,6BAAK,SAAS,EAAC,kBAAkB;IAChC;QACC,+BACC,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,gBAEJ,KAAK,EACjB,QAAQ,EAAE,OAAO,GAChB;QACD,SAAS,IAAI,kCAAO,KAAK,CAAQ,CAC3B,CACH,CACN,CAAC","sourcesContent":["import React from \"react\";\n// import { FinsembleIcon } from \"./FinsembleIcon\";\nimport \"./css/checkbox.css\";\n\nexport interface CheckboxProps {\n\tchecked?: boolean;\n\tdisabled?: boolean;\n\t/* A label should always be provided, at minimum for accessibility.\n\tIf a visible label shouldn't be displayed, use showLabel=false */\n\tlabel: string;\n\tshowLabel?: boolean;\n\tid?: string;\n\tonClick?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const Checkbox: React.FC<CheckboxProps> = ({\n\tchecked = false,\n\tdisabled = false,\n\tlabel,\n\tshowLabel = true,\n\tid,\n\tonClick = () => {},\n}) => (\n\t<div className=\"checkbox-wrapper\">\n\t\t<label>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tid={id}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tchecked={checked}\n\t\t\t\t/* In case showLabel=false, we still want a screen reader to know what the label is. */\n\t\t\t\taria-label={label}\n\t\t\t\tonChange={onClick}\n\t\t\t/>\n\t\t\t{showLabel && <span>{label}</span>}\n\t\t</label>\n\t</div>\n);\n"]}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import { ContextMenuAction } from "../notifications/types";
3
+ import "../../assets/css/contextMenu.css";
4
+ export interface ContextMenuProps {
5
+ menuActions: {
6
+ [key: string]: ContextMenuAction;
7
+ };
8
+ message: any;
9
+ isMuteFilterApplied: boolean;
10
+ }
11
+ export declare const renderContextMenuAction: (message: any, menuAction: ContextMenuAction, isMuted: boolean) => JSX.Element | undefined;
12
+ declare const ContextMenuToggle: React.FunctionComponent<ContextMenuProps>;
13
+ export default ContextMenuToggle;