@xh/hoist 79.0.0-SNAPSHOT.1767040663589 → 79.0.0-SNAPSHOT.1767385592891

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 (62) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/admin/App.scss +1 -1
  3. package/admin/columns/Tracking.ts +10 -0
  4. package/admin/tabs/activity/tracking/ActivityTrackingModel.ts +3 -0
  5. package/admin/tabs/activity/tracking/detail/ActivityDetailModel.ts +1 -0
  6. package/admin/tabs/activity/tracking/detail/ActivityDetailView.ts +1 -0
  7. package/admin/tabs/clients/ClientsModel.ts +1 -1
  8. package/appcontainer/ThemeModel.ts +1 -1
  9. package/build/types/admin/columns/Tracking.d.ts +1 -0
  10. package/build/types/desktop/cmp/input/DateInput.d.ts +1 -1
  11. package/build/types/desktop/hooks/UseContextMenu.d.ts +1 -1
  12. package/build/types/kit/blueprint/Wrappers.d.ts +2 -2
  13. package/build/types/kit/blueprint/index.d.ts +0 -1
  14. package/cmp/ag-grid/AgGrid.scss +1 -1
  15. package/cmp/chart/Chart.scss +1 -1
  16. package/desktop/appcontainer/ExceptionDialog.scss +1 -1
  17. package/desktop/appcontainer/LoginPanel.scss +1 -1
  18. package/desktop/appcontainer/Message.scss +1 -1
  19. package/desktop/appcontainer/Toast.scss +3 -3
  20. package/desktop/appcontainer/ToastSource.ts +2 -45
  21. package/desktop/cmp/appbar/AppBar.scss +10 -10
  22. package/desktop/cmp/button/Button.scss +11 -11
  23. package/desktop/cmp/dash/canvas/DashCanvas.scss +1 -1
  24. package/desktop/cmp/dash/canvas/DashCanvas.ts +1 -2
  25. package/desktop/cmp/dash/container/DashContainer.scss +1 -1
  26. package/desktop/cmp/dash/container/DashContainerModel.ts +1 -1
  27. package/desktop/cmp/dock/impl/Dock.scss +1 -1
  28. package/desktop/cmp/filter/FilterChooser.scss +1 -1
  29. package/desktop/cmp/filter/PopoverFilterChooser.scss +3 -3
  30. package/desktop/cmp/form/FormField.scss +4 -4
  31. package/desktop/cmp/grid/columns/Actions.ts +1 -1
  32. package/desktop/cmp/grid/editors/Editors.scss +4 -4
  33. package/desktop/cmp/grid/find/GridFindField.scss +1 -1
  34. package/desktop/cmp/grid/impl/filter/headerfilter/custom/CustomTab.scss +2 -2
  35. package/desktop/cmp/grid/impl/filter/headerfilter/values/ValuesTab.scss +2 -2
  36. package/desktop/cmp/grouping/GroupingChooser.scss +3 -3
  37. package/desktop/cmp/input/Checkbox.scss +1 -1
  38. package/desktop/cmp/input/DateInput.scss +3 -3
  39. package/desktop/cmp/input/DateInput.ts +1 -1
  40. package/desktop/cmp/input/RadioInput.scss +2 -2
  41. package/desktop/cmp/input/Select.ts +1 -1
  42. package/desktop/cmp/input/Slider.scss +1 -1
  43. package/desktop/cmp/input/Slider.ts +1 -1
  44. package/desktop/cmp/input/SwitchInput.scss +1 -1
  45. package/desktop/cmp/mask/impl/Mask.scss +1 -1
  46. package/desktop/cmp/panel/impl/PanelHeader.scss +1 -1
  47. package/desktop/cmp/tab/TabSwitcher.ts +1 -1
  48. package/desktop/cmp/tab/Tabs.scss +7 -7
  49. package/desktop/cmp/tab/dynamic/DynamicTabSwitcher.scss +1 -1
  50. package/desktop/cmp/tab/dynamic/DynamicTabSwitcher.ts +4 -4
  51. package/desktop/cmp/toolbar/Toolbar.scss +16 -16
  52. package/desktop/hooks/UseContextMenu.ts +1 -1
  53. package/kit/blueprint/ContextMenu.ts +1 -12
  54. package/kit/blueprint/Dialog.ts +3 -3
  55. package/kit/blueprint/Wrappers.ts +1 -1
  56. package/kit/blueprint/index.ts +2 -5
  57. package/kit/blueprint/styles.scss +79 -75
  58. package/package.json +3 -4
  59. package/styles/XH.scss +2 -2
  60. package/svc/TrackService.ts +1 -0
  61. package/svc/WebSocketService.ts +7 -1
  62. package/tsconfig.tsbuildinfo +1 -1
@@ -3,28 +3,28 @@
3
3
  //------------------------
4
4
  // Tabs
5
5
  //------------------------
6
- .bp5-tab-panel > div {
6
+ .bp6-tab-panel > div {
7
7
  margin: 0 !important; // TODO - investigate this....
8
8
  }
9
9
 
10
- .bp5-tab > svg:first-child {
10
+ .bp6-tab > svg:first-child {
11
11
  margin-right: var(--xh-pad-half-px);
12
12
  }
13
13
 
14
14
  // Vertical tab lists fill their width
15
- .bp5-tabs.bp5-vertical .bp5-tab-list {
15
+ .bp6-tabs.bp6-vertical .bp6-tab-list {
16
16
  flex: 1;
17
17
  }
18
18
 
19
19
  //------------------------
20
20
  // Dialogs, Popovers, Masking
21
21
  //------------------------
22
- .bp5-dialog {
22
+ .bp6-dialog {
23
23
  padding-bottom: 0;
24
24
  border-radius: var(--xh-border-radius-px);
25
25
  border: var(--xh-popup-border-width-px) solid var(--xh-popup-border-color);
26
26
 
27
- .bp5-dialog-header {
27
+ .bp6-dialog-header {
28
28
  color: var(--xh-popup-title-text-color);
29
29
  background-color: var(--xh-popup-title-bg);
30
30
  font-family: var(--xh-popup-title-font-family);
@@ -33,8 +33,8 @@
33
33
  border-top-right-radius: var(--xh-border-radius-px);
34
34
  border-top-left-radius: var(--xh-border-radius-px);
35
35
 
36
- .bp5-heading,
37
- .bp5-icon {
36
+ .bp6-heading,
37
+ .bp6-icon {
38
38
  color: var(--xh-popup-title-text-color);
39
39
  }
40
40
 
@@ -43,7 +43,7 @@
43
43
  }
44
44
  }
45
45
 
46
- .bp5-dialog-body {
46
+ .bp6-dialog-body {
47
47
  margin: 0;
48
48
  padding: var(--xh-pad-double-px);
49
49
  background: var(--xh-popup-bg);
@@ -55,7 +55,7 @@
55
55
 
56
56
  // Ensure that date numbers in the datepicker do not wrap if the datePicker portal is rendered
57
57
  // inside a dialogBody - e.g. `dateEditor` in a grid in a dialog. See comment on #862.
58
- .bp5-datepicker {
58
+ .bp6-datepicker {
59
59
  overflow-wrap: normal;
60
60
  }
61
61
  }
@@ -63,8 +63,12 @@
63
63
 
64
64
  // Customized here for backdrops behind dialogs.
65
65
  // Note that masks use their own CSS var, set in Mask.scss.
66
- .bp5-overlay-backdrop:not(.bp5-popover-backdrop) {
67
- background-color: var(--xh-backdrop-bg);
66
+ .bp6-overlay {
67
+ transition: none;
68
+
69
+ &-backdrop:not(.bp6-popover-backdrop) {
70
+ background-color: var(--xh-backdrop-bg);
71
+ }
68
72
  }
69
73
 
70
74
  // On Popover and Tooltip components, squelch scale & opacity transition - unlike Dialog with its `transitionName` prop,
@@ -75,26 +79,26 @@
75
79
  // BlueprintJs' own Popover.minimal uses this same approach to disable its transitions.
76
80
  // (it appears from testing that overriding these rules with any value will squelch the transition, but
77
81
  // we might as well use the final values to be explicit.)
78
- .bp5-popover-transition-container {
79
- &.bp5-popover-enter,
80
- &.bp5-popover-appear {
82
+ .bp6-popover-transition-container {
83
+ &.bp6-popover-enter,
84
+ &.bp6-popover-appear {
81
85
  opacity: 1;
82
86
  }
83
87
 
84
- &.bp5-popover-exit {
88
+ &.bp6-popover-exit {
85
89
  opacity: 0;
86
90
  }
87
91
 
88
- &.bp5-popover-enter,
89
- &.bp5-popover-appear {
90
- > .bp5-popover {
92
+ &.bp6-popover-enter,
93
+ &.bp6-popover-appear {
94
+ > .bp6-popover {
91
95
  transform: scale(1);
92
96
  }
93
97
  }
94
98
 
95
- &.bp5-popover-exit-active,
96
- &.bp5-popover-exit {
97
- > .bp5-popover {
99
+ &.bp6-popover-exit-active,
100
+ &.bp6-popover-exit {
101
+ > .bp6-popover {
98
102
  transform: scale(0);
99
103
  }
100
104
  }
@@ -103,8 +107,8 @@
103
107
  //------------------------
104
108
  // Menus
105
109
  //------------------------
106
- .bp5-dark .bp5-menu,
107
- .bp5-menu {
110
+ .bp6-dark .bp6-menu,
111
+ .bp6-menu {
108
112
  background-color: var(--xh-menu-bg);
109
113
  border: var(--xh-menu-border);
110
114
  color: var(--xh-menu-item-text-color);
@@ -116,14 +120,14 @@
116
120
  max-height: calc(100vh - 100px);
117
121
  overflow-y: auto;
118
122
 
119
- .bp5-menu-item {
123
+ .bp6-menu-item {
120
124
  // Default alignment of flex-start leaves Hoist icons shifted up - could target
121
125
  // more specifically if this is a problem in any other contexts.
122
126
  align-items: center;
123
127
  color: var(--xh-menu-item-text-color);
124
128
  padding: 5px 10px;
125
129
 
126
- .bp5-menu-item-icon {
130
+ .bp6-menu-item-icon {
127
131
  color: inherit;
128
132
  }
129
133
 
@@ -132,47 +136,47 @@
132
136
  border-radius: 0;
133
137
  }
134
138
 
135
- &.bp5-intent-primary {
139
+ &.bp6-intent-primary {
136
140
  color: var(--xh-intent-primary);
137
141
  }
138
142
 
139
- &.bp5-intent-success {
143
+ &.bp6-intent-success {
140
144
  color: var(--xh-intent-success);
141
145
  }
142
146
 
143
- &.bp5-intent-warning {
147
+ &.bp6-intent-warning {
144
148
  color: var(--xh-intent-warning);
145
149
  }
146
150
 
147
- &.bp5-intent-danger {
151
+ &.bp6-intent-danger {
148
152
  color: var(--xh-intent-danger);
149
153
  }
150
154
 
151
155
  .xh-dark & {
152
- &.bp5-intent-primary {
156
+ &.bp6-intent-primary {
153
157
  color: var(--xh-intent-primary-lighter);
154
158
  }
155
159
 
156
- &.bp5-intent-success {
160
+ &.bp6-intent-success {
157
161
  color: var(--xh-intent-success-lighter);
158
162
  }
159
163
 
160
- &.bp5-intent-warning {
164
+ &.bp6-intent-warning {
161
165
  color: var(--xh-intent-warning-lighter);
162
166
  }
163
167
 
164
- &.bp5-intent-danger {
168
+ &.bp6-intent-danger {
165
169
  color: var(--xh-intent-danger-lighter);
166
170
  }
167
171
  }
168
172
  }
169
173
 
170
- .bp5-submenu {
174
+ .bp6-submenu {
171
175
  padding: 0;
172
176
  }
173
177
  }
174
178
 
175
- .bp5-dark .bp5-menu-divider {
179
+ .bp6-dark .bp6-menu-divider {
176
180
  border-color: rgba(255, 255, 255, 0.15) !important;
177
181
  }
178
182
 
@@ -182,7 +186,7 @@
182
186
  // See desktop/cmp/button/Button.scss for button styles.
183
187
  // Rule below applies only to buttons within BP inputs to disable default hover background-color
184
188
  // (which looks weird) and instead tweak the icon color to indicate it's active.
185
- .xh-app .xh-input .bp5-input-group .xh-button {
189
+ .xh-app .xh-input .bp6-input-group .xh-button {
186
190
  &.xh-button--minimal,
187
191
  &.xh-button--outlined {
188
192
  &.xh-button--enabled {
@@ -200,43 +204,43 @@
200
204
  //------------------------
201
205
  // Tooltips
202
206
  //------------------------
203
- .bp5-tooltip {
204
- &.bp5-intent-primary {
205
- .bp5-popover-content {
207
+ .bp6-tooltip {
208
+ &.bp6-intent-primary {
209
+ .bp6-popover-content {
206
210
  background-color: var(--xh-intent-primary);
207
211
  }
208
212
 
209
- .bp5-popover-arrow-fill {
213
+ .bp6-popover-arrow-fill {
210
214
  fill: var(--xh-intent-primary);
211
215
  }
212
216
  }
213
217
 
214
- &.bp5-intent-danger {
215
- .bp5-popover-content {
218
+ &.bp6-intent-danger {
219
+ .bp6-popover-content {
216
220
  background-color: var(--xh-intent-danger);
217
221
  }
218
222
 
219
- .bp5-popover-arrow-fill {
223
+ .bp6-popover-arrow-fill {
220
224
  fill: var(--xh-intent-danger);
221
225
  }
222
226
  }
223
227
 
224
- &.bp5-intent-success {
225
- .bp5-popover-content {
228
+ &.bp6-intent-success {
229
+ .bp6-popover-content {
226
230
  background-color: var(--xh-intent-success);
227
231
  }
228
232
 
229
- .bp5-popover-arrow-fill {
233
+ .bp6-popover-arrow-fill {
230
234
  fill: var(--xh-intent-success);
231
235
  }
232
236
  }
233
237
 
234
- &.bp5-intent-warning {
235
- .bp5-popover-content {
238
+ &.bp6-intent-warning {
239
+ .bp6-popover-content {
236
240
  background-color: var(--xh-intent-warning);
237
241
  }
238
242
 
239
- .bp5-popover-arrow-fill {
243
+ .bp6-popover-arrow-fill {
240
244
  fill: var(--xh-intent-warning);
241
245
  }
242
246
  }
@@ -245,11 +249,11 @@
245
249
  //------------------------
246
250
  // Forms + Inputs
247
251
  //------------------------
248
- .bp5-input,
249
- .bp5-dark .bp5-input,
250
- textarea.bp5-input,
251
- .bp5-dark textarea.bp5-input,
252
- .bp5-input-ghost {
252
+ .bp6-input,
253
+ .bp6-dark .bp6-input,
254
+ textarea.bp6-input,
255
+ .bp6-dark textarea.bp6-input,
256
+ .bp6-input-ghost {
253
257
  color: var(--xh-input-text-color);
254
258
  background: var(--xh-input-bg);
255
259
  font-size: var(--xh-font-size);
@@ -260,7 +264,7 @@ textarea.bp5-input,
260
264
  }
261
265
 
262
266
  // Use Hoist theme vars for disabled input styles.
263
- &.bp5-disabled,
267
+ &.bp6-disabled,
264
268
  &:disabled {
265
269
  background-color: var(--xh-input-disabled-bg);
266
270
  color: var(--xh-input-disabled-text-color);
@@ -268,44 +272,44 @@ textarea.bp5-input,
268
272
  }
269
273
 
270
274
  // Expose CSS var for box-shadow tweaking
271
- .bp5-input:not(.bp5-active):not(:focus) {
275
+ .bp6-input:not(.bp6-active):not(:focus) {
272
276
  box-shadow: var(--xh-form-field-box-shadow);
273
277
  }
274
278
 
275
- .bp5-control,
276
- .bp5-dark .bp5-control {
277
- input:focus ~ .bp5-control-indicator {
279
+ .bp6-control,
280
+ .bp6-dark .bp6-control {
281
+ input:focus ~ .bp6-control-indicator {
278
282
  outline: var(--xh-form-field-focused-border-color) solid 1px !important;
279
283
  outline-offset: 1px;
280
284
  }
281
285
  }
282
286
 
283
- .bp5-slider-handle:focus {
287
+ .bp6-slider-handle:focus {
284
288
  outline: unset; // override browser default styles
285
289
  box-shadow: var(--xh-slider-handle-focused-box-shadow);
286
290
  }
287
291
 
288
- .bp5-input:focus,
289
- .bp5-dark .bp5-input:focus,
290
- .bp5-dark textarea.bp5-input:focus {
292
+ .bp6-input:focus,
293
+ .bp6-dark .bp6-input:focus,
294
+ .bp6-dark textarea.bp6-input:focus {
291
295
  box-shadow: var(--xh-form-field-focused-box-shadow);
292
296
  }
293
297
 
294
298
  // Override Blueprint textarea and switch input dark theme
295
- .bp5-dark textarea.bp5-input {
299
+ .bp6-dark textarea.bp6-input {
296
300
  box-shadow: var(--xh-form-field-box-shadow);
297
301
  }
298
302
 
299
- .bp5-dark .bp5-control.bp5-switch input ~ .bp5-control-indicator {
303
+ .bp6-dark .bp6-control.bp6-switch input ~ .bp6-control-indicator {
300
304
  box-shadow: var(--xh-form-field-box-shadow) !important;
301
305
  }
302
306
 
303
- .bp5-dark .bp5-control.bp5-switch:hover input ~ .bp5-control-indicator {
307
+ .bp6-dark .bp6-control.bp6-switch:hover input ~ .bp6-control-indicator {
304
308
  background-color: #202b33;
305
309
  }
306
310
 
307
311
  /* Apply blueprint styling to non-blueprint icons within input groups */
308
- .bp5-input-group {
312
+ .bp6-input-group {
309
313
  .xh-icon {
310
314
  position: absolute;
311
315
  top: 0;
@@ -322,15 +326,15 @@ textarea.bp5-input,
322
326
 
323
327
  // Support direct use of a Hoist Icon as input `rightElement` prop - w/o the below, the icon SVG
324
328
  // will not be measured (clientWidth == 0) and the input's internal layout won't account for it.
325
- .bp5-input-action > .xh-icon {
329
+ .bp6-input-action > .xh-icon {
326
330
  position: relative;
327
331
  display: block;
328
332
  }
329
333
 
330
- .bp5-button-group {
334
+ .bp6-button-group {
331
335
  margin-right: 3px;
332
336
 
333
- .bp5-button {
337
+ .bp6-button {
334
338
  margin-right: 0;
335
339
  margin-left: 0;
336
340
  }
@@ -342,18 +346,18 @@ textarea.bp5-input,
342
346
  }
343
347
 
344
348
  /* Apply blueprint's z-index of 16 for icons within a control group */
345
- .bp5-control-group .bp5-input-group svg:not(.bp5-icon) {
349
+ .bp6-control-group .bp6-input-group svg:not(.bp6-icon) {
346
350
  z-index: 16;
347
351
  }
348
352
 
349
353
  // Controls ship with default bottom and (inline) right margins. We expose variables
350
354
  // to customize and default those to 0 to avoid adding margins by default.
351
355
  // Hoist theme text-color applied to elements not styled with a more specific selector.
352
- .bp5-control {
356
+ .bp6-control {
353
357
  color: var(--xh-text-color);
354
358
  margin-bottom: var(--xh-form-field-margin-bottom);
355
359
 
356
- &.bp5-inline {
360
+ &.bp6-inline {
357
361
  margin-right: var(--xh-form-field-margin-right);
358
362
  }
359
363
  }
@@ -361,10 +365,10 @@ textarea.bp5-input,
361
365
  //------------------------
362
366
  // Misc
363
367
  //------------------------
364
- .bp5-hotkey-column {
368
+ .bp6-hotkey-column {
365
369
  padding: var(--xh-pad-double-px);
366
370
 
367
- .bp5-heading {
371
+ .bp6-heading {
368
372
  font-weight: normal;
369
373
  margin-top: 0;
370
374
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xh/hoist",
3
- "version": "79.0.0-SNAPSHOT.1767040663589",
3
+ "version": "79.0.0-SNAPSHOT.1767385592891",
4
4
  "description": "Hoist add-on for building and deploying React Applications.",
5
5
  "repository": "github:xh/hoist-react",
6
6
  "homepage": "https://xh.io",
@@ -30,9 +30,8 @@
30
30
  "dependencies": {
31
31
  "@auth0/auth0-spa-js": "~2.9.1",
32
32
  "@azure/msal-browser": "~4.26.2",
33
- "@blueprintjs/core": "^5.10.5",
34
- "@blueprintjs/datetime": "^5.3.7",
35
- "@blueprintjs/datetime2": "^2.3.7",
33
+ "@blueprintjs/core": "^6.3.2",
34
+ "@blueprintjs/datetime": "^6.0.6",
36
35
  "@fortawesome/fontawesome-pro": "^6.6.0",
37
36
  "@fortawesome/fontawesome-svg-core": "^6.6.0",
38
37
  "@fortawesome/pro-light-svg-icons": "^6.6.0",
package/styles/XH.scss CHANGED
@@ -205,8 +205,8 @@ body.xh-app {
205
205
  &--framed {
206
206
  border: 1px solid var(--xh-popup-border-color);
207
207
 
208
- .bp5-popover-arrow-border,
209
- .bp5-popover-arrow-fill {
208
+ .bp6-popover-arrow-border,
209
+ .bp6-popover-arrow-fill {
210
210
  fill: var(--xh-popup-border-color) !important;
211
211
  }
212
212
  }
@@ -119,6 +119,7 @@ export class TrackService extends HoistService {
119
119
  msg: stripTags(options.message),
120
120
  clientUsername: XH.getUsername(),
121
121
  appVersion: XH.getEnv('clientVersion'),
122
+ clientAppCode: XH.clientAppCode,
122
123
  loadId: XH.loadId,
123
124
  tabId: XH.tabId,
124
125
  url: window.location.href,
@@ -45,7 +45,13 @@ export class WebSocketService extends HoistService {
45
45
  readonly REG_SUCCESS_TOPIC = 'xhRegistrationSuccess';
46
46
  readonly FORCE_APP_SUSPEND_TOPIC = 'xhForceAppSuspend';
47
47
  readonly REQ_CLIENT_HEALTH_RPT_TOPIC = 'xhRequestClientHealthReport';
48
- readonly METADATA_FOR_HANDSHAKE = ['appVersion', 'appBuild', 'loadId', 'tabId'];
48
+ readonly METADATA_FOR_HANDSHAKE = [
49
+ 'appVersion',
50
+ 'appBuild',
51
+ 'loadId',
52
+ 'tabId',
53
+ 'clientAppCode'
54
+ ];
49
55
 
50
56
  /** True if WebSockets not explicitly disabled via {@link AppSpec.disableWebSockets}. */
51
57
  enabled: boolean = !XH.appSpec.disableWebSockets;