@deephaven/components 0.55.0 → 0.55.1-alpha-theme-spectrum.17

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 (142) hide show
  1. package/css/BaseStyleSheet.css +878 -3622
  2. package/css/BaseStyleSheet.css.map +1 -1
  3. package/dist/AutoCompleteInput.css +4 -4
  4. package/dist/AutoCompleteInput.css.map +1 -1
  5. package/dist/Button.d.ts.map +1 -1
  6. package/dist/Button.js +26 -2
  7. package/dist/Button.js.map +1 -1
  8. package/dist/ComboBox.css +26 -6
  9. package/dist/ComboBox.css.map +1 -1
  10. package/dist/ComboBox.d.ts.map +1 -1
  11. package/dist/ComboBox.js +2 -4
  12. package/dist/ComboBox.js.map +1 -1
  13. package/dist/CustomTimeSelect.css +23 -10
  14. package/dist/CustomTimeSelect.css.map +1 -1
  15. package/dist/CustomTimeSelect.d.ts.map +1 -1
  16. package/dist/CustomTimeSelect.js +2 -5
  17. package/dist/CustomTimeSelect.js.map +1 -1
  18. package/dist/DraggableItemList.css +14 -14
  19. package/dist/DraggableItemList.css.map +1 -1
  20. package/dist/ErrorBoundary.d.ts +26 -0
  21. package/dist/ErrorBoundary.d.ts.map +1 -0
  22. package/dist/ErrorBoundary.js +55 -0
  23. package/dist/ErrorBoundary.js.map +1 -0
  24. package/dist/HierarchicalCheckboxMenu.css +20 -6
  25. package/dist/HierarchicalCheckboxMenu.css.map +1 -1
  26. package/dist/HierarchicalCheckboxMenu.d.ts.map +1 -1
  27. package/dist/HierarchicalCheckboxMenu.js +2 -4
  28. package/dist/HierarchicalCheckboxMenu.js.map +1 -1
  29. package/dist/ItemList.css +1 -1
  30. package/dist/ItemList.css.map +1 -1
  31. package/dist/ItemListItem.css +7 -7
  32. package/dist/ItemListItem.css.map +1 -1
  33. package/dist/LoadingOverlay.css +1 -1
  34. package/dist/LoadingOverlay.css.map +1 -1
  35. package/dist/LoadingSpinner.css +2 -8
  36. package/dist/LoadingSpinner.css.map +1 -1
  37. package/dist/MaskedInput.css.map +1 -1
  38. package/dist/RandomAreaPlotAnimation.d.ts +1 -1
  39. package/dist/RandomAreaPlotAnimation.d.ts.map +1 -1
  40. package/dist/RandomAreaPlotAnimation.js +43 -14
  41. package/dist/RandomAreaPlotAnimation.js.map +1 -1
  42. package/dist/SearchInput.css +28 -12
  43. package/dist/SearchInput.css.map +1 -1
  44. package/dist/SearchInput.d.ts +10 -1
  45. package/dist/SearchInput.d.ts.map +1 -1
  46. package/dist/SearchInput.js +73 -7
  47. package/dist/SearchInput.js.map +1 -1
  48. package/dist/SelectValueList.css +3 -3
  49. package/dist/SelectValueList.css.map +1 -1
  50. package/dist/SocketedButton.css +33 -33
  51. package/dist/SocketedButton.css.map +1 -1
  52. package/dist/ThemeExport.module.css +33 -33
  53. package/dist/ThemeExport.module.css.map +1 -1
  54. package/dist/TimeSlider.css +10 -10
  55. package/dist/TimeSlider.css.map +1 -1
  56. package/dist/TimeSlider.module.css +10 -10
  57. package/dist/TimeSlider.module.css.map +1 -1
  58. package/dist/ToastNotification.css +4 -4
  59. package/dist/ToastNotification.css.map +1 -1
  60. package/dist/UISwitch.css +19 -19
  61. package/dist/UISwitch.css.map +1 -1
  62. package/dist/ValidateLabelInput.css +1 -1
  63. package/dist/ValidateLabelInput.css.map +1 -1
  64. package/dist/context-actions/ContextActions.css +19 -19
  65. package/dist/context-actions/ContextActions.css.map +1 -1
  66. package/dist/index.d.ts +1 -0
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +1 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/menu-actions/DropdownMenu.css +2 -2
  71. package/dist/menu-actions/DropdownMenu.css.map +1 -1
  72. package/dist/navigation/MenuItem.css +9 -9
  73. package/dist/navigation/MenuItem.css.map +1 -1
  74. package/dist/navigation/Page.css.map +1 -1
  75. package/dist/navigation/Stack.css +2 -2
  76. package/dist/navigation/Stack.css.map +1 -1
  77. package/dist/popper/Popper.css +4 -4
  78. package/dist/popper/Popper.css.map +1 -1
  79. package/dist/shortcuts/GlobalShortcuts.d.ts +2 -0
  80. package/dist/shortcuts/GlobalShortcuts.d.ts.map +1 -1
  81. package/dist/shortcuts/GlobalShortcuts.js +14 -0
  82. package/dist/shortcuts/GlobalShortcuts.js.map +1 -1
  83. package/dist/theme/SpectrumThemeProvider.d.ts.map +1 -1
  84. package/dist/theme/SpectrumThemeProvider.js +1 -0
  85. package/dist/theme/SpectrumThemeProvider.js.map +1 -1
  86. package/dist/theme/ThemeModel.d.ts +12 -6
  87. package/dist/theme/ThemeModel.d.ts.map +1 -1
  88. package/dist/theme/ThemeModel.js +67 -3
  89. package/dist/theme/ThemeModel.js.map +1 -1
  90. package/dist/theme/ThemePicker.d.ts +4 -0
  91. package/dist/theme/ThemePicker.d.ts.map +1 -0
  92. package/dist/theme/ThemePicker.js +25 -0
  93. package/dist/theme/ThemePicker.js.map +1 -0
  94. package/dist/theme/ThemeProvider.d.ts +3 -1
  95. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  96. package/dist/theme/ThemeProvider.js +23 -13
  97. package/dist/theme/ThemeProvider.js.map +1 -1
  98. package/dist/theme/ThemeUtils.d.ts +42 -8
  99. package/dist/theme/ThemeUtils.d.ts.map +1 -1
  100. package/dist/theme/ThemeUtils.js +97 -36
  101. package/dist/theme/ThemeUtils.js.map +1 -1
  102. package/dist/theme/index.d.ts +1 -0
  103. package/dist/theme/index.d.ts.map +1 -1
  104. package/dist/theme/index.js +1 -0
  105. package/dist/theme/index.js.map +1 -1
  106. package/dist/theme/theme-dark/theme-dark-components.css +1 -1
  107. package/dist/theme/theme-dark/theme-dark-components.css.map +1 -1
  108. package/dist/theme/theme-dark/theme-dark-palette.css +1 -1
  109. package/dist/theme/theme-dark/theme-dark-palette.css.map +1 -1
  110. package/dist/theme/theme-dark/theme-dark-semantic-chart.css +1 -1
  111. package/dist/theme/theme-dark/theme-dark-semantic-chart.css.map +1 -1
  112. package/dist/theme/theme-dark/theme-dark-semantic-editor.css +1 -1
  113. package/dist/theme/theme-dark/theme-dark-semantic-editor.css.map +1 -1
  114. package/dist/theme/theme-dark/theme-dark-semantic-grid.css +1 -1
  115. package/dist/theme/theme-dark/theme-dark-semantic-grid.css.map +1 -1
  116. package/dist/theme/theme-dark/theme-dark-semantic.css +1 -1
  117. package/dist/theme/theme-dark/theme-dark-semantic.css.map +1 -1
  118. package/dist/theme/theme-light/theme-light-palette.css +1 -1
  119. package/dist/theme/theme-light/theme-light-palette.css.map +1 -1
  120. package/dist/theme/theme-spectrum/index.d.ts +1 -0
  121. package/dist/theme/theme-spectrum/index.d.ts.map +1 -1
  122. package/dist/theme/theme-spectrum/index.js +3 -3
  123. package/dist/theme/theme-spectrum/index.js.map +1 -1
  124. package/dist/theme/theme-spectrum/theme-spectrum-alias.module.css +1 -1
  125. package/dist/theme/theme-spectrum/theme-spectrum-alias.module.css.map +1 -1
  126. package/dist/theme/theme-spectrum/theme-spectrum-overrides.css +1 -0
  127. package/dist/theme/theme-spectrum/theme-spectrum-overrides.css.map +1 -0
  128. package/dist/theme/theme-svg.css +1 -0
  129. package/dist/theme/theme-svg.css.map +1 -0
  130. package/package.json +7 -7
  131. package/scss/BaseStyleSheet.scss +169 -82
  132. package/scss/bootstrap_imports.scss +49 -0
  133. package/scss/bootstrap_override_functions.scss +31 -0
  134. package/scss/bootstrap_override_mixins_background_variant.scss +16 -0
  135. package/scss/bootstrap_override_mixins_buttons.scss +123 -0
  136. package/scss/bootstrap_override_mixins_forms.scss +231 -0
  137. package/scss/bootstrap_override_mixins_text_emphasis.scss +21 -0
  138. package/scss/bootstrap_overrides.scss +144 -101
  139. package/scss/new_variables.scss +18 -0
  140. package/scss/util.scss +27 -0
  141. package/dist/theme/theme-spectrum/theme-spectrum-overrides.module.css +0 -1
  142. package/dist/theme/theme-spectrum/theme-spectrum-overrides.module.css.map +0 -1
@@ -1,7 +1,18 @@
1
1
  // Import our custom variables and bootstrap
2
2
  // Can be imported directly by Vite since it resolves bootstrap to node_modules/bootstrap
3
3
  @import './custom.scss';
4
- @import 'bootstrap/scss/bootstrap';
4
+ @import './util.scss';
5
+ @import './bootstrap_imports.scss';
6
+
7
+ :root {
8
+ --dh-svg-inline-icon-size: 16px;
9
+
10
+ color: var(--dh-color-text);
11
+
12
+ .spectrum-theme-provider {
13
+ color: var(--dh-color-text);
14
+ }
15
+ }
5
16
 
6
17
  //Various non-variable css overides
7
18
  //Overide default size from 16px to 14px. We need density.
@@ -10,29 +21,36 @@ html {
10
21
  min-height: 100%;
11
22
  }
12
23
 
24
+ // override
25
+ .text-black-50 {
26
+ color: background-opacity(50) !important;
27
+ }
28
+ .text-white-50 {
29
+ color: foreground-opacity(50) !important;
30
+ }
31
+
13
32
  // deephaven-icons are designed on a 16px grid
14
33
  // and look best at that size. Default icon size back to 16px
15
34
  // vertical alignment changed to best match icon set against 14px text
16
35
  .svg-inline--fa {
17
- font-size: 16px;
36
+ font-size: var(--dh-svg-inline-icon-size);
18
37
  vertical-align: -3px;
19
38
  }
20
39
 
21
40
  body {
22
41
  min-height: 100%;
23
- background-color: var(--dh-color-background, $background);
42
+ background-color: $background;
24
43
  color: $foreground;
25
44
  margin: 0;
26
45
  padding: 0;
27
46
  overscroll-behavior: none;
28
47
  -ms-scroll-chaining: none;
29
- scrollbar-color: rgba($white, 0.1) rgba($black, 0.1); //applies to firefox only
48
+ scrollbar-color: foreground-opacity(10) background-opacity(10); //applies to firefox only
30
49
  }
31
50
 
32
51
  #root {
33
- background-color: var(--dh-color-background, $background);
34
-
35
52
  .app {
53
+ background-color: $background;
36
54
  height: 100vh;
37
55
  width: 100vw;
38
56
  }
@@ -85,7 +103,7 @@ a.custom-link,
85
103
  content: '';
86
104
  box-sizing: content-box;
87
105
  position: absolute;
88
- background: rgba($primary, $focus-bg-transparency);
106
+ background: accent-opacity(10);
89
107
  top: 0;
90
108
  left: 0;
91
109
  width: 100%;
@@ -129,18 +147,18 @@ span.btn-disabled-wrapper {
129
147
  border-radius: $border-radius;
130
148
 
131
149
  &:focus {
132
- background: rgba($primary, $focus-bg-transparency);
150
+ background: accent-opacity(10);
133
151
  border: $input-border-width solid $primary;
134
152
  box-shadow: $input-btn-focus-box-shadow;
135
153
  }
136
154
 
137
155
  &:hover {
138
- background: rgba($primary, $hover-bg-transparency);
156
+ background: accent-opacity(15);
139
157
  }
140
158
 
141
159
  &:active {
142
160
  content: '';
143
- background: rgba($primary, $active-bg-transparency);
161
+ background: accent-opacity(30);
144
162
  }
145
163
  }
146
164
  }
@@ -151,15 +169,13 @@ span.btn-disabled-wrapper {
151
169
  border-color: $danger;
152
170
 
153
171
  &:focus {
154
- box-shadow: 0 0 0 $btn-focus-width
155
- rgba(mix(color-yiq($background), $danger, 15%), 0.5);
172
+ box-shadow: 0 0 0 $btn-focus-width var(--dh-color-focus);
156
173
  }
157
174
 
158
175
  &:not(:disabled):not(.disabled):active {
159
- background: darken($danger, 10%);
160
- border-color: darken($danger, 10%);
161
- box-shadow: 0 0 0 $btn-focus-width
162
- rgba(mix(color-yiq($background), $danger, 15%), 0.5);
176
+ background: var(--dh-color-negative-down-bg);
177
+ border-color: var(--dh-color-negative-down-bg);
178
+ box-shadow: 0 0 0 $btn-focus-width var(--dh-color-focus);
163
179
  }
164
180
  }
165
181
 
@@ -174,8 +190,7 @@ span.btn-disabled-wrapper {
174
190
 
175
191
  .btn-spinner {
176
192
  padding: $btn-padding-y 1rem;
177
- .fa-layers,
178
- .loading-spinner {
193
+ .fa-layers {
179
194
  margin-right: 0.5rem;
180
195
  }
181
196
  }
@@ -220,7 +235,7 @@ span.btn-disabled-wrapper {
220
235
  text-decoration: none;
221
236
  box-shadow: none;
222
237
  &::after {
223
- background: rgba($primary, $focus-bg-transparency);
238
+ background: accent-opacity(10);
224
239
  border: $input-border-width solid $primary;
225
240
  box-shadow: $input-btn-focus-box-shadow;
226
241
  }
@@ -228,14 +243,14 @@ span.btn-disabled-wrapper {
228
243
 
229
244
  &:hover {
230
245
  &::after {
231
- background: rgba($primary, $hover-bg-transparency);
246
+ background: accent-opacity(15);
232
247
  }
233
248
  }
234
249
 
235
250
  &:active {
236
251
  &::after {
237
252
  content: '';
238
- background: rgba($primary, $active-bg-transparency);
253
+ background: accent-opacity(30);
239
254
  }
240
255
  }
241
256
  }
@@ -290,51 +305,49 @@ span.btn-disabled-wrapper {
290
305
  padding-left: $spacer-1;
291
306
  padding-right: $spacer-1;
292
307
  border-radius: $border-radius;
293
- background: $gray-600;
294
- border: 1px solid $input-border-color;
295
- color: $gray-300;
308
+ background: var(--dh-color-action-bg);
309
+ border: 1px solid var(--dh-color-action-border);
310
+ color: var(--dh-color-action-fg);
296
311
 
297
312
  &.active {
298
- border-color: $primary;
299
- background: $primary;
300
- color: $gray-100;
313
+ border-color: var(--dh-color-action-active-border);
314
+ background: var(--dh-color-action-active-bg);
315
+ color: var(--dh-color-action-active-fg);
301
316
 
302
- &:focus {
317
+ &:focus-visible {
303
318
  border: 1px solid $input-focus-border-color;
304
319
  }
305
320
 
306
321
  &:not(:disabled):not(.disabled):hover {
307
- background: $primary;
322
+ color: var(--dh-color-action-active-hover-fg);
323
+ background: var(--dh-color-action-active-hover-bg);
324
+ border-color: var(--dh-color-action-active-hover-border);
308
325
  }
309
326
  }
310
327
 
311
328
  &.disabled,
312
329
  &:disabled {
313
- border: 1px solid $black;
314
- color: $gray-300;
330
+ background-color: var(--dh-color-action-disabled-bg);
331
+ border: 1px solid var(--dh-color-action-disabled-border);
332
+ color: var(--dh-color-action-disabled-fg);
315
333
  cursor: not-allowed;
316
334
  }
317
335
 
318
- &:focus {
336
+ &:focus-visible {
319
337
  border: 1px solid $input-focus-border-color;
320
338
  }
321
339
 
322
340
  &:not(:disabled):not(.disabled):hover {
323
- background-color: $gray-500;
324
- color: $gray-200;
341
+ background-color: var(--dh-color-action-hover-bg);
342
+ border: 1px solid var(--dh-color-action-hover-border);
343
+ color: var(--dh-color-action-hover-fg);
325
344
  }
326
345
 
327
346
  &:not(:disabled):not(.disabled):active {
328
- background: $gray-700;
347
+ background: var(--dh-color-action-down-bg);
329
348
  }
330
349
  }
331
350
 
332
- .btn-secondary:hover {
333
- // steal primary hover state to look more hovered, less disabled
334
- background-color: $primary-hover;
335
- border-color: $primary-hover;
336
- }
337
-
338
351
  .btn-secondary.disabled,
339
352
  .btn-secondary:disabled {
340
353
  // look more disabled
@@ -392,18 +405,28 @@ form label small {
392
405
  .form-control.focus {
393
406
  border: 1px solid $primary;
394
407
  }
395
- .form-control.btn:focus {
408
+
409
+ .form-control.is-invalid,
410
+ .form-control.is-invalid:focus {
411
+ border-color: var(--dh-color-form-control-error);
412
+ background-image: var(--dh-svg-icon-error);
413
+ }
414
+ .form-control.is-invalid:focus {
415
+ box-shadow: 0 0 0 0.2rem var(--dh-color-form-control-error-shadow);
416
+ }
417
+
418
+ .form-control.btn:focus-visible {
396
419
  box-shadow: $input-btn-focus-box-shadow;
397
420
  }
398
421
 
399
422
  .form-control:disabled {
400
423
  border-color: $black;
401
- color: darken($gray-400, 5%);
424
+ color: $gray-500;
402
425
  cursor: not-allowed;
403
426
  }
404
427
 
405
428
  .form-control:disabled::placeholder {
406
- color: darken($gray-400, 5%);
429
+ color: $gray-500;
407
430
  }
408
431
 
409
432
  .form-control[type='password'] {
@@ -450,9 +473,41 @@ form label small {
450
473
  cursor: not-allowed;
451
474
  }
452
475
 
476
+ .custom-select {
477
+ $caret-size: 10px 6px;
478
+ $error-size: 16px;
479
+
480
+ background-image: var(--dh-svg-icon-select-indicator);
481
+ background-size: $caret-size;
482
+
483
+ &:hover {
484
+ background-image: var(--dh-svg-icon-select-indicator-hover);
485
+ }
486
+
487
+ &.is-invalid,
488
+ &.is-invalid:focus {
489
+ border-color: var(--dh-color-form-control-error);
490
+ background-size: $caret-size, $error-size;
491
+ background-image: var(--dh-svg-icon-select-indicator),
492
+ var(--dh-svg-icon-error);
493
+ }
494
+ &.is-invalid:hover {
495
+ background-image: var(--dh-svg-icon-select-indicator-hover),
496
+ var(--dh-svg-icon-error);
497
+ }
498
+ &.is-invalid:focus {
499
+ box-shadow: 0 0 0 0.2rem var(--dh-color-form-control-error-shadow);
500
+ }
501
+ }
502
+
453
503
  .custom-select:disabled {
454
504
  border-color: $black;
455
505
  cursor: not-allowed;
506
+ background-image: var(--dh-svg-icon-select-indicator-disabled);
507
+ &.is-invalid {
508
+ background-image: var(--dh-svg-icon-select-indicator-disabled),
509
+ var(--dh-svg-icon-error);
510
+ }
456
511
  }
457
512
 
458
513
  input[type='number'] {
@@ -481,11 +536,8 @@ input[type='number']::-webkit-inner-spin-button {
481
536
  }
482
537
 
483
538
  .input-group > .input-group-append.cb-dropdown > .btn {
484
- color: $gray-400;
485
539
  border: 1px solid $gray-400;
486
- &:hover {
487
- color: $foreground;
488
- }
540
+
489
541
  &:focus {
490
542
  border-color: $input-focus-border-color;
491
543
  }
@@ -572,7 +624,7 @@ input[type='number']::-webkit-inner-spin-button {
572
624
  border-color: $gray-300;
573
625
  &:focus,
574
626
  &.focus {
575
- box-shadow: 0 0 0 0.2rem rgba(91, 90, 92, 20%);
627
+ box-shadow: 0 0 0 0.2rem background-opacity(20);
576
628
  }
577
629
  }
578
630
  }
@@ -596,26 +648,26 @@ input[type='number']::-webkit-inner-spin-button {
596
648
  ::selection {
597
649
  //blink/webkit
598
650
  color: $foreground;
599
- background: rgba($text-select-color, 0.99);
651
+ background: var(--dh-color-text-highlight);
600
652
  opacity: 1;
601
653
  }
602
654
 
603
655
  ::-moz-selection {
604
656
  //moz
605
657
  color: $foreground;
606
- background: rgba($text-select-color, 0.99);
658
+ background: var(--dh-color-text-highlight);
607
659
  opacity: 1;
608
660
  }
609
661
 
610
662
  .masked-input::selection {
611
663
  //blink/webkit
612
- background: rgba($primary, 0.7);
664
+ background: var(--dh-color-text-highlight);
613
665
  opacity: 1;
614
666
  }
615
667
 
616
668
  .masked-input::-moz-selection {
617
669
  //moz
618
- background: rgba($primary, 0.7);
670
+ background: var(--dh-color-text-highlight);
619
671
  opacity: 1;
620
672
  }
621
673
 
@@ -627,7 +679,7 @@ input[type='number']::-webkit-inner-spin-button {
627
679
 
628
680
  // style the same as monaco scrollbar
629
681
  ::-webkit-scrollbar-thumb {
630
- background: rgba(var(--scrollbar-color), 0.18);
682
+ background: hsla(var(--dh-color-scrollbar-hsl), 0.18);
631
683
  border-radius: 0;
632
684
  }
633
685
 
@@ -637,36 +689,31 @@ input[type='number']::-webkit-inner-spin-button {
637
689
  }
638
690
 
639
691
  ::-webkit-scrollbar-corner {
640
- background: rgba(0, 0, 0, 10%);
692
+ background: background-opacity(10);
641
693
  }
642
694
 
643
695
  ::-webkit-scrollbar-track:horizontal {
644
- border-top: 1px solid rgba(var(--scrollbar-color), 0.15);
696
+ border-top: 1px solid hsla(var(--dh-color-scrollbar-hsl), 0.15);
645
697
  }
646
698
 
647
699
  ::-webkit-scrollbar-track:vertical {
648
- border-left: 1px solid rgba(var(--scrollbar-color), 0.15);
700
+ border-left: 1px solid hsla(var(--dh-color-scrollbar-hsl), 0.15);
649
701
  }
650
702
 
651
703
  ::-webkit-scrollbar-thumb:hover {
652
- background: rgba(var(--scrollbar-color), 0.25);
704
+ background: hsla(var(--dh-color-scrollbar-hsl), 0.25);
653
705
  }
654
706
 
655
707
  ::-webkit-scrollbar-thumb:active {
656
- background: rgba(var(--scrollbar-color), 0.35);
708
+ background: hsla(var(--dh-color-scrollbar-hsl), 0.35);
657
709
  }
658
710
 
659
- /* stylelint-disable no-descending-specificity */
660
- :root {
661
- --scrollbar-color: 255, 255, 255;
662
- }
663
- /* stylelint-enable no-descending-specificity */
664
-
665
711
  // used in inverted color sections, like light modals
666
712
  .theme-bg-light {
667
- --scrollbar-color: 0, 0, 0;
713
+ --dh-color-scrollbar-hsl: #{var(--dh-color-bg-hsl)};
668
714
 
669
- scrollbar-color: rgba($black, 0.5) rgba($black, 0.3); // firefox
715
+ scrollbar-color: hsla(var(--dh-color-scrollbar-hsl), 0.5)
716
+ hsla(var(--dh-color-scrollbar-hsl), 0.3); // firefox
670
717
  }
671
718
 
672
719
  /********** Monaco Overides *********/
@@ -740,40 +787,80 @@ input[type='number']::-webkit-inner-spin-button {
740
787
  //Moz specific hacks
741
788
  /* stylelint-disable-next-line function-url-quotes */
742
789
  @-moz-document url-prefix() {
743
- //Selection box in mozilla loses default styling on options list if you apply a background color other then #FFF or inheirt...
744
- //Hack: turn the background to inheirt, then apply a background gradient that is inputbg color to inputbg color
790
+ $caret-position: right $custom-select-padding-x;
791
+ $error-position: right (1 + $custom-select-padding-x);
792
+ $svg-caret: var(--dh-svg-icon-select-indicator);
793
+ $svg-caret-hover: var(--dh-svg-icon-select-indicator-hover);
794
+ $svg-error: var(--dh-svg-icon-error);
795
+
796
+ //Selection box in mozilla loses default styling on options list if you apply a background color other then #FFF or inherit...
797
+ //Hack: turn the background to inherit, then apply a background gradient that is inputbg color to inputbg color
745
798
  //for crossbrowser consistency this gradient is stacked bellow the svg used to get a caret (indicator) looking the same
746
799
  .custom-select {
747
800
  background-color: inherit !important;
748
801
  color: $foreground;
749
- background-image: escape-svg($custom-select-indicator),
750
- linear-gradient(0deg, $input-bg, $input-bg);
751
- background-size: $custom-select-bg-size, cover;
752
- background-repeat: no-repeat;
753
- background-position:
754
- bottom 50% right $custom-select-padding-x,
802
+ // bg image, size and position for 2 layers
803
+ background-image: $svg-caret, solid-gradient($input-bg);
804
+ background-size:
805
+ 10px 6px,
806
+ cover;
807
+ background-position-x: $caret-position, center;
808
+ background-position-y:
809
+ bottom 50%,
755
810
  center;
811
+ background-repeat: no-repeat;
812
+
756
813
  //make the dotted duplicate focus line on firefox go away
757
814
  &:-moz-focusring {
758
- color: rgba(0, 0, 0, 0%);
815
+ color: transparent;
759
816
  text-shadow: 0 0 0 $foreground !important;
760
817
  }
818
+
819
+ &:hover {
820
+ background-image: $svg-caret-hover, solid-gradient($input-bg);
821
+ }
822
+
823
+ &.is-invalid,
824
+ &.is-invalid:focus {
825
+ // bg image, size and position for 3 layers
826
+ background-image: $svg-caret, $svg-error, solid-gradient($input-bg);
827
+ background-size:
828
+ 10px 6px,
829
+ 16px,
830
+ cover;
831
+ background-position-x: $caret-position, $error-position, center;
832
+ }
833
+
834
+ &.is-invalid:hover {
835
+ background-image: $svg-caret-hover, $svg-error, solid-gradient($input-bg);
836
+ }
837
+
838
+ &:disabled {
839
+ background-image: $svg-caret, solid-gradient($input-disabled-bg);
840
+
841
+ &.is-invalid {
842
+ background-image: $svg-caret, $svg-error,
843
+ solid-gradient($input-disabled-bg);
844
+ }
845
+ }
761
846
  }
762
847
 
763
848
  .console-creator .custom-select {
764
- background-image: escape-svg($custom-select-indicator),
765
- linear-gradient(0deg, $gray-700, $gray-700);
849
+ background-image: var(--dh-svg-icon-select-indicator),
850
+ solid-gradient($gray-700);
851
+
766
852
  &:-moz-focusring {
767
- color: rgba(0, 0, 0, 0%);
853
+ color: transparent;
768
854
  text-shadow: 0 0 0 $foreground !important;
769
855
  }
770
856
  }
771
857
 
772
858
  .modal-dialog.theme-bg-light .custom-select {
773
- background-image: escape-svg($custom-select-indicator),
774
- linear-gradient(0deg, $gray-200, $gray-200);
859
+ background-image: var(--dh-svg-icon-select-indicator),
860
+ solid-gradient($gray-200);
861
+
775
862
  &:-moz-focusring {
776
- color: rgba(0, 0, 0, 0%);
863
+ color: transparent;
777
864
  text-shadow: 0 0 0 $background !important;
778
865
  }
779
866
  }
@@ -0,0 +1,49 @@
1
+ /*!
2
+ * Bootstrap v4.6.2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2022 The Bootstrap Authors
4
+ * Copyright 2011-2022 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
+ */
7
+
8
+ /*
9
+ * Deephaven manually imports only the necessary bootstrap files.
10
+ * See `bootstrap/scss/bootstrap.scss` in `node_modules` for the original list of imports.
11
+ */
12
+
13
+ @import 'bootstrap/scss/functions';
14
+
15
+ // patch the functions
16
+ @import './bootstrap_override_functions.scss';
17
+
18
+ @import 'bootstrap/scss/variables';
19
+ @import 'bootstrap/scss/mixins';
20
+
21
+ // patch the mixins
22
+ @import './bootstrap_override_mixins_background_variant.scss';
23
+ @import './bootstrap_override_mixins_buttons.scss';
24
+ @import './bootstrap_override_mixins_forms.scss';
25
+ @import './bootstrap_override_mixins_text_emphasis.scss';
26
+
27
+ // $theme-colors is used by button mixins. We don't want to use the `dark` or `light`
28
+ // variants since they don't align with the semantics we use for theming.
29
+ $theme-colors: map-remove($theme-colors, 'dark', 'light');
30
+
31
+ @import 'bootstrap/scss/root';
32
+ @import 'bootstrap/scss/reboot';
33
+ @import 'bootstrap/scss/type';
34
+ @import 'bootstrap/scss/code';
35
+ @import 'bootstrap/scss/grid';
36
+ @import 'bootstrap/scss/forms';
37
+ @import 'bootstrap/scss/buttons';
38
+ @import 'bootstrap/scss/transitions';
39
+ @import 'bootstrap/scss/dropdown';
40
+ @import 'bootstrap/scss/button-group';
41
+ @import 'bootstrap/scss/input-group';
42
+ @import 'bootstrap/scss/custom-forms';
43
+ @import 'bootstrap/scss/nav';
44
+ @import 'bootstrap/scss/navbar';
45
+ @import 'bootstrap/scss/progress';
46
+ @import 'bootstrap/scss/close';
47
+ @import 'bootstrap/scss/modal';
48
+ @import 'bootstrap/scss/spinners';
49
+ @import 'bootstrap/scss/utilities';
@@ -0,0 +1,31 @@
1
+ // Bootstrap overrides for `bootstrap/scss/_functions.scss`
2
+
3
+ // Color contrast
4
+ // DH Customization: Add support for dh-color variables
5
+ @function color-yiq(
6
+ $color,
7
+ $dark: var(--dh-color-contrast-dark),
8
+ $light: var(--dh-color-contrast-light)
9
+ ) {
10
+ // if $color is a hex color, use the default color-yiq function
11
+ @if type-of($color) == 'color' {
12
+ $r: red($color);
13
+ $g: green($color);
14
+ $b: blue($color);
15
+
16
+ $yiq: (($r * 299) + ($g * 587) + ($b * 114)) * 0.001;
17
+
18
+ @if $yiq >= $yiq-contrasted-threshold {
19
+ @return $dark;
20
+ } @else {
21
+ @return $light;
22
+ }
23
+ }
24
+
25
+ $contrast-color: var(
26
+ --dh-color-#{$color}-contrast,
27
+ var(--dh-color-contrast-light)
28
+ );
29
+
30
+ @return $contrast-color;
31
+ }
@@ -0,0 +1,16 @@
1
+ // Bootstrap mixin overrides for `bootstrap/scss/mixins/_background-variant.scss`
2
+ @use 'sass:map';
3
+
4
+ @mixin bg-variant($parent, $bootstrap-value, $ignore-warning: false) {
5
+ $semantic-value: map.get($bootstrap-dh-semantic-map, $bootstrap-value) or '';
6
+
7
+ #{$parent} {
8
+ background-color: var(--dh-color-#{$semantic-value}-bg) !important;
9
+ }
10
+ a#{$parent},
11
+ button#{$parent} {
12
+ @include hover-focus {
13
+ background-color: var(--dh-color-#{$semantic-value}-down-bg) !important;
14
+ }
15
+ }
16
+ }