@deephaven/components 0.57.2-beta.1 → 0.58.1-beta.0

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 (110) hide show
  1. package/css/BaseStyleSheet.css +189 -215
  2. package/css/BaseStyleSheet.css.map +1 -1
  3. package/dist/AutoCompleteInput.css +2 -2
  4. package/dist/AutoCompleteInput.css.map +1 -1
  5. package/dist/AutoResizeTextarea.css +1 -1
  6. package/dist/BasicModal.js +0 -1
  7. package/dist/BasicModal.js.map +1 -1
  8. package/dist/Button.d.ts.map +1 -1
  9. package/dist/Button.js +4 -3
  10. package/dist/Button.js.map +1 -1
  11. package/dist/ComboBox.css +15 -1
  12. package/dist/ComboBox.css.map +1 -1
  13. package/dist/ComboBox.d.ts.map +1 -1
  14. package/dist/ComboBox.js +2 -0
  15. package/dist/ComboBox.js.map +1 -1
  16. package/dist/CopyButton.d.ts +3 -1
  17. package/dist/CopyButton.d.ts.map +1 -1
  18. package/dist/CopyButton.js +2 -0
  19. package/dist/CopyButton.js.map +1 -1
  20. package/dist/CustomTimeSelect.css +2 -2
  21. package/dist/CustomTimeSelect.css.map +1 -1
  22. package/dist/DraggableItemList.css +6 -6
  23. package/dist/DraggableItemList.css.map +1 -1
  24. package/dist/HierarchicalCheckboxMenu.css +1 -1
  25. package/dist/HierarchicalCheckboxMenu.css.map +1 -1
  26. package/dist/ItemList.css.map +1 -1
  27. package/dist/ItemListItem.css +1 -0
  28. package/dist/ItemListItem.css.map +1 -1
  29. package/dist/MaskedInput.css.map +1 -1
  30. package/dist/SelectValueList.css +1 -1
  31. package/dist/SelectValueList.css.map +1 -1
  32. package/dist/SocketedButton.css +19 -19
  33. package/dist/SocketedButton.css.map +1 -1
  34. package/dist/ThemeExport.module.css.map +1 -1
  35. package/dist/TimeSlider.css +2 -2
  36. package/dist/TimeSlider.css.map +1 -1
  37. package/dist/TimeSlider.module.css +2 -2
  38. package/dist/TimeSlider.module.css.map +1 -1
  39. package/dist/ToastNotification.css.map +1 -1
  40. package/dist/UISwitch.css +2 -0
  41. package/dist/UISwitch.css.map +1 -1
  42. package/dist/context-actions/ContextActionUtils.d.ts +1 -0
  43. package/dist/context-actions/ContextActionUtils.d.ts.map +1 -1
  44. package/dist/context-actions/ContextActionUtils.js.map +1 -1
  45. package/dist/context-actions/ContextActions.css +14 -14
  46. package/dist/context-actions/ContextActions.css.map +1 -1
  47. package/dist/context-actions/ContextMenuItem.d.ts.map +1 -1
  48. package/dist/context-actions/ContextMenuItem.js +2 -2
  49. package/dist/context-actions/ContextMenuItem.js.map +1 -1
  50. package/dist/menu-actions/DropdownMenu.css +2 -2
  51. package/dist/menu-actions/DropdownMenu.css.map +1 -1
  52. package/dist/modal/Modal.d.ts.map +1 -1
  53. package/dist/modal/Modal.js +1 -1
  54. package/dist/modal/Modal.js.map +1 -1
  55. package/dist/navigation/MenuItem.css +7 -2
  56. package/dist/navigation/MenuItem.css.map +1 -1
  57. package/dist/navigation/Page.css +0 -6
  58. package/dist/navigation/Page.css.map +1 -1
  59. package/dist/navigation/Page.js +2 -2
  60. package/dist/navigation/Page.js.map +1 -1
  61. package/dist/navigation/Stack.css.map +1 -1
  62. package/dist/popper/Popper.css +8 -3
  63. package/dist/popper/Popper.css.map +1 -1
  64. package/dist/popper/Tooltip.js +1 -1
  65. package/dist/popper/Tooltip.js.map +1 -1
  66. package/dist/theme/Logo.css +1 -0
  67. package/dist/theme/Logo.css.map +1 -0
  68. package/dist/theme/Logo.d.ts +9 -0
  69. package/dist/theme/Logo.d.ts.map +1 -0
  70. package/dist/theme/Logo.js +15 -0
  71. package/dist/theme/Logo.js.map +1 -0
  72. package/dist/theme/ThemeUtils.d.ts.map +1 -1
  73. package/dist/theme/ThemeUtils.js +8 -8
  74. package/dist/theme/ThemeUtils.js.map +1 -1
  75. package/dist/theme/index.d.ts +1 -0
  76. package/dist/theme/index.d.ts.map +1 -1
  77. package/dist/theme/index.js +1 -0
  78. package/dist/theme/index.js.map +1 -1
  79. package/dist/theme/theme-dark/theme-dark-components.css +1 -1
  80. package/dist/theme/theme-dark/theme-dark-components.css.map +1 -1
  81. package/dist/theme/theme-dark/theme-dark-semantic-editor.css +1 -1
  82. package/dist/theme/theme-dark/theme-dark-semantic-editor.css.map +1 -1
  83. package/dist/theme/theme-dark/theme-dark-semantic-grid.css +1 -1
  84. package/dist/theme/theme-dark/theme-dark-semantic-grid.css.map +1 -1
  85. package/dist/theme/theme-dark/theme-dark-semantic.css +1 -1
  86. package/dist/theme/theme-dark/theme-dark-semantic.css.map +1 -1
  87. package/dist/theme/theme-light/index.d.ts +2 -0
  88. package/dist/theme/theme-light/index.d.ts.map +1 -1
  89. package/dist/theme/theme-light/index.js +8 -1
  90. package/dist/theme/theme-light/index.js.map +1 -1
  91. package/dist/theme/theme-light/theme-light-components.css +1 -0
  92. package/dist/theme/theme-light/theme-light-components.css.map +1 -0
  93. package/dist/theme/theme-light/theme-light-palette.css +1 -1
  94. package/dist/theme/theme-light/theme-light-palette.css.map +1 -1
  95. package/dist/theme/theme-light/theme-light-semantic-chart.css +1 -0
  96. package/dist/theme/theme-light/theme-light-semantic-chart.css.map +1 -0
  97. package/dist/theme/theme-light/theme-light-semantic-editor.css +1 -0
  98. package/dist/theme/theme-light/theme-light-semantic-editor.css.map +1 -0
  99. package/dist/theme/theme-light/theme-light-semantic-grid.css +1 -0
  100. package/dist/theme/theme-light/theme-light-semantic-grid.css.map +1 -0
  101. package/dist/theme/theme-light/theme-light-semantic.css +1 -0
  102. package/dist/theme/theme-light/theme-light-semantic.css.map +1 -0
  103. package/dist/theme/theme-spectrum/theme-spectrum-alias.module.css +1 -1
  104. package/dist/theme/theme-spectrum/theme-spectrum-alias.module.css.map +1 -1
  105. package/dist/theme/theme-spectrum/theme-spectrum-overrides.css +1 -1
  106. package/dist/theme/theme-spectrum/theme-spectrum-overrides.css.map +1 -1
  107. package/package.json +7 -7
  108. package/scss/BaseStyleSheet.scss +104 -144
  109. package/scss/bootstrap_override_mixins_buttons.scss +7 -4
  110. package/scss/bootstrap_overrides.scss +34 -14
@@ -4,17 +4,22 @@
4
4
  z-index: 5000;
5
5
  }
6
6
 
7
+ .popper.popper-tooltip {
8
+ --background-color: var(--dh-color-tooltip-bg);
9
+ }
10
+
7
11
  .popper {
8
- background: var(--dh-color-tooltip-bg);
12
+ --background-color: var(--dh-color-popover-bg);
13
+ background: var(--background-color);
9
14
  color: var(--dh-color-tooltip-fg);
10
15
  border-radius: 4px;
16
+ box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);
11
17
  transition: visibility 0.15s, opacity 0.15s;
12
18
  pointer-events: none;
13
19
  outline: 0;
14
20
  }
15
21
  .popper .popper-content {
16
22
  position: relative;
17
- box-shadow: 0 0.1rem 1.5rem 0.25rem hsla(var(--dh-color-black-hsl), 0.45);
18
23
  }
19
24
  .popper .popper-content .tooltip-content {
20
25
  text-align: center;
@@ -26,7 +31,7 @@
26
31
  border-style: solid;
27
32
  position: absolute;
28
33
  margin: 5px;
29
- border-color: var(--dh-color-tooltip-bg);
34
+ border-color: var(--background-color);
30
35
  }
31
36
 
32
37
  .popper.interactive {
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../scss/custom.scss","../../src/popper/Popper.scss","../../scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAAA;ACOA;EACE;EACA;;;AAGF;EACE;EACA;EACA,eC2Ic;ED1Id,YACE;EAEF;EACA;;AAEA;EACE;EACA,YArBY;;AAuBZ;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA,QAnCU;EAoCV;;;AAIJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;EAOE;EACA;EACA;;;AAGF;EACE,eAvFY;;AAyFZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,YArGY;;AAuGZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,aAnHY;;AAqHZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,cAjIY;;AAmIZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA","file":"Popper.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n","@import '../../scss/custom.scss';\n\n$arrow-width: 5px;\n$popper-shadow: 0 0.1rem 1.5rem 0.25rem hsla(var(--dh-color-black-hsl), 0.45);\n$animation-scale: 0.92;\n$animation-offset: 10px;\n\n.popper-container {\n position: absolute;\n z-index: 5000;\n}\n\n.popper {\n background: var(--dh-color-tooltip-bg);\n color: var(--dh-color-tooltip-fg);\n border-radius: $border-radius;\n transition:\n visibility $transition,\n opacity $transition;\n pointer-events: none;\n outline: 0;\n\n .popper-content {\n position: relative;\n box-shadow: $popper-shadow;\n\n .tooltip-content {\n text-align: center;\n padding: $tooltip-padding-y $tooltip-padding-x;\n }\n }\n\n .popper-arrow {\n width: 0;\n height: 0;\n border-style: solid;\n position: absolute;\n margin: $arrow-width;\n border-color: var(--dh-color-tooltip-bg);\n }\n}\n\n.popper.interactive {\n pointer-events: auto;\n}\n\n.popper-transition-enter {\n opacity: 0;\n transition: none;\n}\n\n.popper-transition-exit {\n opacity: 0;\n transition: all $transition;\n}\n\n.popper-container[x-placement^='top'] > .popper-transition-enter,\n.popper-container[x-placement^='top'] > .popper-transition-exit {\n transform: scale($animation-scale) translate(0, $animation-offset);\n}\n\n.popper-container[x-placement^='right'] > .popper-transition-enter,\n.popper-container[x-placement^='right'] > .popper-transition-exit {\n transform: scale($animation-scale) translate(-$animation-offset, 0);\n}\n\n.popper-container[x-placement^='bottom'] > .popper-transition-enter,\n.popper-container[x-placement^='bottom'] > .popper-transition-exit {\n transform: scale($animation-scale) translate(0, -$animation-offset);\n}\n\n.popper-container[x-placement^='left'] > .popper-transition-enter,\n.popper-container[x-placement^='left'] > .popper-transition-exit {\n transform: scale($animation-scale) translate($animation-offset, 0);\n}\n\n.popper-container[x-placement^='top'] > .popper-transition-enter-active.popper,\n.popper-container[x-placement^='right']\n > .popper-transition-enter-active.popper,\n.popper-container[x-placement^='bottom']\n > .popper-transition-enter-active.popper,\n.popper-container[x-placement^='left']\n > .popper-transition-enter-active.popper {\n opacity: 1;\n transform: none;\n transition: all $transition ease-out;\n}\n\n.popper-container[x-placement^='top'] > .popper {\n margin-bottom: $arrow-width;\n\n .popper-arrow {\n border-width: $arrow-width $arrow-width 0 $arrow-width;\n border-left-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n bottom: -$arrow-width;\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n.popper-container[x-placement^='bottom'] > .popper {\n margin-top: $arrow-width;\n\n .popper-arrow {\n border-width: 0 $arrow-width $arrow-width $arrow-width;\n border-left-color: transparent;\n border-right-color: transparent;\n border-top-color: transparent;\n top: -$arrow-width;\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n.popper-container[x-placement^='right'] > .popper {\n margin-left: $arrow-width;\n\n .popper-arrow {\n border-width: $arrow-width $arrow-width $arrow-width 0;\n border-left-color: transparent;\n border-top-color: transparent;\n border-bottom-color: transparent;\n left: -$arrow-width;\n margin-left: 0;\n margin-right: 0;\n }\n}\n\n.popper-container[x-placement^='left'] > .popper {\n margin-right: $arrow-width;\n\n .popper-arrow {\n border-width: $arrow-width 0 $arrow-width $arrow-width;\n border-top-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n right: -$arrow-width;\n margin-left: 0;\n margin-right: 0;\n }\n}\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg);\n$foreground: var(--dh-color-fg);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$primary-light: var(--dh-color-accent-1100);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-light': $primary-light,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem hsla(var(--dh-color-black-hsl), 0.45); //because our UI is so dark, we need darker default shadows\n$box-shadow-900: 0 0.1rem 1rem hsla(var(--dh-color-true-black-hsl), 0.45); //darkest shadow for $black popups over $black UI\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: hsla(var(--dh-color-accent-hsl), 0.35);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n\n//checkbox\n$custom-control-indicator-bg: $gray-600;\n$custom-control-indicator-active-bg: var(--dh-color-accent-1100);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: $gray-800;\n$custom-control-indicator-checked-disabled-bg: $gray-800;\n$custom-control-label-disabled-color: $gray-400;\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $gray-200;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: $primary;\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: $gray-600;\n$contextmenu-color: $foreground;\n$contextmenu-disabled-color: $text-muted;\n$contextmenu-keyboard-selected-bg: hsla(var(--dh-color-accent-hsl), 0.5);\n$contextmenu-selected-bg: $primary;\n$contextmenu-selected-color: $foreground;\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../../scss/custom.scss","../../src/popper/Popper.scss","../../scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAAA;ACMA;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EAEA;EACA;EACA,eCsIc;EDrId,YCsIW;EDrIX,YACE;EAEF;EACA;;AAEA;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA,QAxCU;EAyCV;;;AAIJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;EAOE;EACA;EACA;;;AAGF;EACE,eA5FY;;AA8FZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,YA1GY;;AA4GZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,aAxHY;;AA0HZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,cAtIY;;AAwIZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA","file":"Popper.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n","@import '../../scss/custom.scss';\n\n$arrow-width: 5px;\n$animation-scale: 0.92;\n$animation-offset: 10px;\n\n.popper-container {\n position: absolute;\n z-index: 5000;\n}\n\n.popper.popper-tooltip {\n --background-color: var(--dh-color-tooltip-bg);\n}\n\n.popper {\n --background-color: var(--dh-color-popover-bg);\n\n background: var(--background-color);\n color: var(--dh-color-tooltip-fg);\n border-radius: $border-radius;\n box-shadow: $box-shadow;\n transition:\n visibility $transition,\n opacity $transition;\n pointer-events: none;\n outline: 0;\n\n .popper-content {\n position: relative;\n\n .tooltip-content {\n text-align: center;\n padding: $tooltip-padding-y $tooltip-padding-x;\n }\n }\n\n .popper-arrow {\n width: 0;\n height: 0;\n border-style: solid;\n position: absolute;\n margin: $arrow-width;\n border-color: var(--background-color);\n }\n}\n\n.popper.interactive {\n pointer-events: auto;\n}\n\n.popper-transition-enter {\n opacity: 0;\n transition: none;\n}\n\n.popper-transition-exit {\n opacity: 0;\n transition: all $transition;\n}\n\n.popper-container[x-placement^='top'] > .popper-transition-enter,\n.popper-container[x-placement^='top'] > .popper-transition-exit {\n transform: scale($animation-scale) translate(0, $animation-offset);\n}\n\n.popper-container[x-placement^='right'] > .popper-transition-enter,\n.popper-container[x-placement^='right'] > .popper-transition-exit {\n transform: scale($animation-scale) translate(-$animation-offset, 0);\n}\n\n.popper-container[x-placement^='bottom'] > .popper-transition-enter,\n.popper-container[x-placement^='bottom'] > .popper-transition-exit {\n transform: scale($animation-scale) translate(0, -$animation-offset);\n}\n\n.popper-container[x-placement^='left'] > .popper-transition-enter,\n.popper-container[x-placement^='left'] > .popper-transition-exit {\n transform: scale($animation-scale) translate($animation-offset, 0);\n}\n\n.popper-container[x-placement^='top'] > .popper-transition-enter-active.popper,\n.popper-container[x-placement^='right']\n > .popper-transition-enter-active.popper,\n.popper-container[x-placement^='bottom']\n > .popper-transition-enter-active.popper,\n.popper-container[x-placement^='left']\n > .popper-transition-enter-active.popper {\n opacity: 1;\n transform: none;\n transition: all $transition ease-out;\n}\n\n.popper-container[x-placement^='top'] > .popper {\n margin-bottom: $arrow-width;\n\n .popper-arrow {\n border-width: $arrow-width $arrow-width 0 $arrow-width;\n border-left-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n bottom: -$arrow-width;\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n.popper-container[x-placement^='bottom'] > .popper {\n margin-top: $arrow-width;\n\n .popper-arrow {\n border-width: 0 $arrow-width $arrow-width $arrow-width;\n border-left-color: transparent;\n border-right-color: transparent;\n border-top-color: transparent;\n top: -$arrow-width;\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n.popper-container[x-placement^='right'] > .popper {\n margin-left: $arrow-width;\n\n .popper-arrow {\n border-width: $arrow-width $arrow-width $arrow-width 0;\n border-left-color: transparent;\n border-top-color: transparent;\n border-bottom-color: transparent;\n left: -$arrow-width;\n margin-left: 0;\n margin-right: 0;\n }\n}\n\n.popper-container[x-placement^='left'] > .popper {\n margin-right: $arrow-width;\n\n .popper-arrow {\n border-width: $arrow-width 0 $arrow-width $arrow-width;\n border-top-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n right: -$arrow-width;\n margin-left: 0;\n margin-right: 0;\n }\n}\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg);\n$foreground: var(--dh-color-fg);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$primary-light: var(--dh-color-accent-1100);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-light': $primary-light,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: hsla(var(--dh-color-accent-hsl), 0.35);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units. Using 0.4214rem with 1.3\n// line height gets us to 31.99px vs Spectrum's 32px.\n$input-btn-padding-y: 0.4214rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: $primary;\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-input-disabled-fg);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n"]}
@@ -257,7 +257,7 @@ class Tooltip extends Component {
257
257
  },
258
258
  "data-testid": dataTestId,
259
259
  children: /*#__PURE__*/_jsx(Popper, {
260
- className: classNames(popperClassName),
260
+ className: classNames(popperClassName, 'popper-tooltip'),
261
261
  options: options,
262
262
  ref: this.popper,
263
263
  onEntered: onEntered,
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","names":["React","Component","classNames","Log","Popper","jsxs","_jsxs","jsx","_jsx","log","module","Tooltip","handleHidden","shownTooltipCount","lastHiddenTime","Date","now","handleShown","constructor","props","_defineProperty","handleMouseMove","bind","handleMouseLeave","handleWindowMouseMove","handleWheel","handleTimeout","handleExited","stopShowingTooltip","container","createRef","popper","parent","timer","state","isShown","componentDidMount","startListening","timeout","show","componentDidUpdate","prevProps","prevState","oldIsShown","componentWillUnmount","stopListening","stopListeningWindow","stopTimer","current","parentElement","error","addEventListener","removeEventListener","startListeningWindow","window","startTimer","element","matches","hide","interactive","event","mouseX","clientX","mouseY","clientY","popperRect","getBoundingClientRect","parentRect","left","width","top","height","reshowTimeout","timerTimeout","triggerReshowThreshold","setTimeout","clearTimeout","_this$popper$current","setState","_this$popper$current2","update","_this$popper$current3","scheduleUpdate","onExited","render","children","referenceObject","popperClassName","dataTestId","onEntered","options","_objectSpread","placement","ref","style","display","className","defaultReshowTimeout","defaultTimeout","undefined"],"sources":["../../src/popper/Tooltip.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport Popper, { PopperOptions, ReferenceObject } from './Popper';\n\nconst log = Log.module('Tooltip');\n\ntype TooltipProps = typeof Tooltip.defaultProps & {\n children: React.ReactNode;\n interactive?: boolean;\n options?: PopperOptions;\n popperClassName?: string;\n reshowTimeout?: number;\n timeout?: number;\n referenceObject?: ReferenceObject | null;\n onEntered?: () => void;\n onExited?: () => void;\n 'data-testid'?: string;\n};\ninterface TooltipState {\n isShown: boolean;\n}\n\n/**\n * Component that can be added to an element to automatically display a tooltip.\n * Content is mounted lazily, so don't worry about complex tooltips!\n *\n * Usage:\n * <div className=\"parent-container\">\n * Hover this container to see a tooltip\n * <Tooltip>\n * <div>My tooltip content goes here!</div>\n * </Tooltip>\n * </div>\n */\nclass Tooltip extends Component<TooltipProps, TooltipState> {\n static defaultTimeout = 500;\n\n static defaultReshowTimeout = 100;\n\n static triggerReshowThreshold = 300;\n\n static shownTooltipCount = 0;\n\n static lastHiddenTime = Date.now();\n\n static defaultProps = {\n interactive: false,\n options: {},\n popperClassName: '',\n reshowTimeout: Tooltip.defaultReshowTimeout,\n timeout: Tooltip.defaultTimeout,\n onEntered: (): void => undefined,\n onExited: (): void => undefined,\n 'data-testid': undefined,\n };\n\n static handleHidden(): void {\n Tooltip.shownTooltipCount -= 1;\n\n if (Tooltip.shownTooltipCount === 0) {\n Tooltip.lastHiddenTime = Date.now();\n }\n }\n\n static handleShown(): void {\n Tooltip.shownTooltipCount += 1;\n }\n\n constructor(props: TooltipProps) {\n super(props);\n\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleWindowMouseMove = this.handleWindowMouseMove.bind(this);\n this.handleWheel = this.handleWheel.bind(this);\n this.handleTimeout = this.handleTimeout.bind(this);\n this.handleExited = this.handleExited.bind(this);\n this.stopShowingTooltip = this.stopShowingTooltip.bind(this);\n\n this.container = React.createRef();\n this.popper = React.createRef();\n this.parent = null;\n this.timer = null;\n\n this.state = {\n isShown: false,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n\n const { timeout } = this.props;\n if (timeout === 0) {\n this.show();\n }\n }\n\n componentDidUpdate(prevProps: TooltipProps, prevState: TooltipState): void {\n const { isShown: oldIsShown } = prevState;\n const { isShown } = this.state;\n\n if (isShown !== oldIsShown) {\n if (isShown) {\n Tooltip.handleShown();\n } else {\n Tooltip.handleHidden();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.stopListening();\n this.stopListeningWindow();\n this.stopTimer();\n\n const { isShown } = this.state;\n\n if (isShown) {\n Tooltip.handleHidden();\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n popper: React.RefObject<Popper>;\n\n parent: HTMLElement | null;\n\n // This is platform dependent of Node/DOM\n // Jest requires Node types\n timer: number | null;\n\n startListening(): void {\n if (!this.container.current || !this.container.current.parentElement) {\n log.error(\"Tooltip doesn't have a container or a parent set!\");\n return;\n }\n\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('mousemove', this.handleMouseMove);\n this.parent.addEventListener('mouseleave', this.handleMouseLeave);\n this.parent.addEventListener('mousedown', this.stopShowingTooltip);\n }\n\n stopListening(): void {\n if (!this.parent) {\n return;\n }\n\n this.parent.removeEventListener('mousemove', this.handleMouseMove);\n this.parent.removeEventListener('mouseleave', this.handleMouseLeave);\n this.parent.removeEventListener('mousedown', this.stopShowingTooltip);\n }\n\n startListeningWindow(): void {\n window.addEventListener('mousemove', this.handleWindowMouseMove, true);\n window.addEventListener('contextmenu', this.stopShowingTooltip, true);\n window.addEventListener('wheel', this.handleWheel);\n }\n\n stopListeningWindow(): void {\n window.removeEventListener('mousemove', this.handleWindowMouseMove, true);\n window.removeEventListener('contextmenu', this.stopShowingTooltip, true);\n window.removeEventListener('wheel', this.handleWheel);\n }\n\n handleMouseMove(): void {\n this.startTimer();\n }\n\n handleWheel(): void {\n const { isShown } = this.state;\n if (this.popper.current && this.parent && isShown) {\n if (\n !this.popper.current.element.matches(':hover') &&\n !this.parent.matches(':hover')\n ) {\n this.stopTimer();\n this.hide();\n }\n }\n }\n\n handleMouseLeave(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n const { interactive } = this.props;\n if (!interactive && isShown) {\n this.hide();\n }\n }\n\n handleTimeout(): void {\n this.show();\n }\n\n handleWindowMouseMove(event: MouseEvent): void {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { isShown } = this.state;\n\n if (!this.popper.current || !this.parent) {\n return;\n }\n const popperRect = this.popper.current.element.getBoundingClientRect();\n const parentRect = this.parent.getBoundingClientRect();\n\n if (\n mouseX >= popperRect.left &&\n mouseX <= popperRect.left + popperRect.width &&\n mouseY >= popperRect.top &&\n mouseY <= popperRect.top + popperRect.height\n ) {\n this.handleMouseMove();\n } else if (\n mouseX >= parentRect.left &&\n mouseX <= parentRect.left + parentRect.width &&\n mouseY >= parentRect.top &&\n mouseY <= parentRect.top + parentRect.height\n ) {\n this.handleMouseMove();\n } else if (isShown) {\n this.stopTimer();\n this.hide();\n }\n }\n\n startTimer(): void {\n this.stopTimer();\n\n const { timeout, reshowTimeout } = this.props;\n let timerTimeout = timeout;\n if (\n Tooltip.shownTooltipCount > 0 ||\n Date.now() - Tooltip.lastHiddenTime < Tooltip.triggerReshowThreshold\n ) {\n timerTimeout = reshowTimeout;\n }\n this.timer = window.setTimeout(this.handleTimeout, timerTimeout);\n }\n\n stopTimer(): void {\n if (this.timer != null) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n show(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n if (!isShown) {\n this.popper.current?.show();\n this.setState({ isShown: true });\n\n const { interactive } = this.props;\n if (interactive) {\n this.startListeningWindow();\n }\n }\n }\n\n hide(): void {\n this.popper.current?.hide();\n this.stopListeningWindow();\n }\n\n update(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleExited(): void {\n this.setState({ isShown: false });\n const { onExited } = this.props;\n onExited();\n }\n\n stopShowingTooltip(): void {\n const { isShown } = this.state;\n this.stopTimer();\n if (isShown) {\n this.hide();\n }\n }\n\n render(): JSX.Element {\n const {\n interactive,\n children,\n referenceObject,\n popperClassName,\n 'data-testid': dataTestId,\n onEntered,\n } = this.props;\n const { isShown } = this.state;\n\n let { options } = this.props;\n options = {\n placement: 'bottom',\n ...options,\n };\n\n return (\n <div\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n <Popper\n className={classNames(popperClassName)}\n options={options}\n ref={this.popper}\n onEntered={onEntered}\n onExited={this.handleExited}\n interactive={interactive}\n referenceObject={referenceObject}\n >\n <div className=\"tooltip-content\"> {isShown && children}</div>\n </Popper>\n </div>\n );\n }\n}\n\nexport default Tooltip;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tooltip.js","names":["React","Component","classNames","Log","Popper","jsxs","_jsxs","jsx","_jsx","log","module","Tooltip","handleHidden","shownTooltipCount","lastHiddenTime","Date","now","handleShown","constructor","props","_defineProperty","handleMouseMove","bind","handleMouseLeave","handleWindowMouseMove","handleWheel","handleTimeout","handleExited","stopShowingTooltip","container","createRef","popper","parent","timer","state","isShown","componentDidMount","startListening","timeout","show","componentDidUpdate","prevProps","prevState","oldIsShown","componentWillUnmount","stopListening","stopListeningWindow","stopTimer","current","parentElement","error","addEventListener","removeEventListener","startListeningWindow","window","startTimer","element","matches","hide","interactive","event","mouseX","clientX","mouseY","clientY","popperRect","getBoundingClientRect","parentRect","left","width","top","height","reshowTimeout","timerTimeout","triggerReshowThreshold","setTimeout","clearTimeout","_this$popper$current","setState","_this$popper$current2","update","_this$popper$current3","scheduleUpdate","onExited","render","children","referenceObject","popperClassName","dataTestId","onEntered","options","_objectSpread","placement","ref","style","display","className","defaultReshowTimeout","defaultTimeout","undefined"],"sources":["../../src/popper/Tooltip.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport Popper, { PopperOptions, ReferenceObject } from './Popper';\n\nconst log = Log.module('Tooltip');\n\ntype TooltipProps = typeof Tooltip.defaultProps & {\n children: React.ReactNode;\n interactive?: boolean;\n options?: PopperOptions;\n popperClassName?: string;\n reshowTimeout?: number;\n timeout?: number;\n referenceObject?: ReferenceObject | null;\n onEntered?: () => void;\n onExited?: () => void;\n 'data-testid'?: string;\n};\ninterface TooltipState {\n isShown: boolean;\n}\n\n/**\n * Component that can be added to an element to automatically display a tooltip.\n * Content is mounted lazily, so don't worry about complex tooltips!\n *\n * Usage:\n * <div className=\"parent-container\">\n * Hover this container to see a tooltip\n * <Tooltip>\n * <div>My tooltip content goes here!</div>\n * </Tooltip>\n * </div>\n */\nclass Tooltip extends Component<TooltipProps, TooltipState> {\n static defaultTimeout = 500;\n\n static defaultReshowTimeout = 100;\n\n static triggerReshowThreshold = 300;\n\n static shownTooltipCount = 0;\n\n static lastHiddenTime = Date.now();\n\n static defaultProps = {\n interactive: false,\n options: {},\n popperClassName: '',\n reshowTimeout: Tooltip.defaultReshowTimeout,\n timeout: Tooltip.defaultTimeout,\n onEntered: (): void => undefined,\n onExited: (): void => undefined,\n 'data-testid': undefined,\n };\n\n static handleHidden(): void {\n Tooltip.shownTooltipCount -= 1;\n\n if (Tooltip.shownTooltipCount === 0) {\n Tooltip.lastHiddenTime = Date.now();\n }\n }\n\n static handleShown(): void {\n Tooltip.shownTooltipCount += 1;\n }\n\n constructor(props: TooltipProps) {\n super(props);\n\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleWindowMouseMove = this.handleWindowMouseMove.bind(this);\n this.handleWheel = this.handleWheel.bind(this);\n this.handleTimeout = this.handleTimeout.bind(this);\n this.handleExited = this.handleExited.bind(this);\n this.stopShowingTooltip = this.stopShowingTooltip.bind(this);\n\n this.container = React.createRef();\n this.popper = React.createRef();\n this.parent = null;\n this.timer = null;\n\n this.state = {\n isShown: false,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n\n const { timeout } = this.props;\n if (timeout === 0) {\n this.show();\n }\n }\n\n componentDidUpdate(prevProps: TooltipProps, prevState: TooltipState): void {\n const { isShown: oldIsShown } = prevState;\n const { isShown } = this.state;\n\n if (isShown !== oldIsShown) {\n if (isShown) {\n Tooltip.handleShown();\n } else {\n Tooltip.handleHidden();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.stopListening();\n this.stopListeningWindow();\n this.stopTimer();\n\n const { isShown } = this.state;\n\n if (isShown) {\n Tooltip.handleHidden();\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n popper: React.RefObject<Popper>;\n\n parent: HTMLElement | null;\n\n // This is platform dependent of Node/DOM\n // Jest requires Node types\n timer: number | null;\n\n startListening(): void {\n if (!this.container.current || !this.container.current.parentElement) {\n log.error(\"Tooltip doesn't have a container or a parent set!\");\n return;\n }\n\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('mousemove', this.handleMouseMove);\n this.parent.addEventListener('mouseleave', this.handleMouseLeave);\n this.parent.addEventListener('mousedown', this.stopShowingTooltip);\n }\n\n stopListening(): void {\n if (!this.parent) {\n return;\n }\n\n this.parent.removeEventListener('mousemove', this.handleMouseMove);\n this.parent.removeEventListener('mouseleave', this.handleMouseLeave);\n this.parent.removeEventListener('mousedown', this.stopShowingTooltip);\n }\n\n startListeningWindow(): void {\n window.addEventListener('mousemove', this.handleWindowMouseMove, true);\n window.addEventListener('contextmenu', this.stopShowingTooltip, true);\n window.addEventListener('wheel', this.handleWheel);\n }\n\n stopListeningWindow(): void {\n window.removeEventListener('mousemove', this.handleWindowMouseMove, true);\n window.removeEventListener('contextmenu', this.stopShowingTooltip, true);\n window.removeEventListener('wheel', this.handleWheel);\n }\n\n handleMouseMove(): void {\n this.startTimer();\n }\n\n handleWheel(): void {\n const { isShown } = this.state;\n if (this.popper.current && this.parent && isShown) {\n if (\n !this.popper.current.element.matches(':hover') &&\n !this.parent.matches(':hover')\n ) {\n this.stopTimer();\n this.hide();\n }\n }\n }\n\n handleMouseLeave(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n const { interactive } = this.props;\n if (!interactive && isShown) {\n this.hide();\n }\n }\n\n handleTimeout(): void {\n this.show();\n }\n\n handleWindowMouseMove(event: MouseEvent): void {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { isShown } = this.state;\n\n if (!this.popper.current || !this.parent) {\n return;\n }\n const popperRect = this.popper.current.element.getBoundingClientRect();\n const parentRect = this.parent.getBoundingClientRect();\n\n if (\n mouseX >= popperRect.left &&\n mouseX <= popperRect.left + popperRect.width &&\n mouseY >= popperRect.top &&\n mouseY <= popperRect.top + popperRect.height\n ) {\n this.handleMouseMove();\n } else if (\n mouseX >= parentRect.left &&\n mouseX <= parentRect.left + parentRect.width &&\n mouseY >= parentRect.top &&\n mouseY <= parentRect.top + parentRect.height\n ) {\n this.handleMouseMove();\n } else if (isShown) {\n this.stopTimer();\n this.hide();\n }\n }\n\n startTimer(): void {\n this.stopTimer();\n\n const { timeout, reshowTimeout } = this.props;\n let timerTimeout = timeout;\n if (\n Tooltip.shownTooltipCount > 0 ||\n Date.now() - Tooltip.lastHiddenTime < Tooltip.triggerReshowThreshold\n ) {\n timerTimeout = reshowTimeout;\n }\n this.timer = window.setTimeout(this.handleTimeout, timerTimeout);\n }\n\n stopTimer(): void {\n if (this.timer != null) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n show(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n if (!isShown) {\n this.popper.current?.show();\n this.setState({ isShown: true });\n\n const { interactive } = this.props;\n if (interactive) {\n this.startListeningWindow();\n }\n }\n }\n\n hide(): void {\n this.popper.current?.hide();\n this.stopListeningWindow();\n }\n\n update(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleExited(): void {\n this.setState({ isShown: false });\n const { onExited } = this.props;\n onExited();\n }\n\n stopShowingTooltip(): void {\n const { isShown } = this.state;\n this.stopTimer();\n if (isShown) {\n this.hide();\n }\n }\n\n render(): JSX.Element {\n const {\n interactive,\n children,\n referenceObject,\n popperClassName,\n 'data-testid': dataTestId,\n onEntered,\n } = this.props;\n const { isShown } = this.state;\n\n let { options } = this.props;\n options = {\n placement: 'bottom',\n ...options,\n };\n\n return (\n <div\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n <Popper\n className={classNames(popperClassName, 'popper-tooltip')}\n options={options}\n ref={this.popper}\n onEntered={onEntered}\n onExited={this.handleExited}\n interactive={interactive}\n referenceObject={referenceObject}\n >\n <div className=\"tooltip-content\"> {isShown && children}</div>\n </Popper>\n </div>\n );\n }\n}\n\nexport default Tooltip;\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,GAAG,MAAM,gBAAgB;AAAC,OAC1BC,MAAM;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEb,IAAMC,GAAG,GAAGN,GAAG,CAACO,MAAM,CAAC,SAAS,CAAC;AAkBjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,OAAO,SAASV,SAAS,CAA6B;EAsB1D,OAAOW,YAAYA,CAAA,EAAS;IAC1BD,OAAO,CAACE,iBAAiB,IAAI,CAAC;IAE9B,IAAIF,OAAO,CAACE,iBAAiB,KAAK,CAAC,EAAE;MACnCF,OAAO,CAACG,cAAc,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IACrC;EACF;EAEA,OAAOC,WAAWA,CAAA,EAAS;IACzBN,OAAO,CAACE,iBAAiB,IAAI,CAAC;EAChC;EAEAK,WAAWA,CAACC,KAAmB,EAAE;IAC/B,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAEb,IAAI,CAACC,eAAe,GAAG,IAAI,CAACA,eAAe,CAACC,IAAI,CAAC,IAAI,CAAC;IACtD,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACD,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACE,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACF,IAAI,CAAC,IAAI,CAAC;IAClE,IAAI,CAACG,WAAW,GAAG,IAAI,CAACA,WAAW,CAACH,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACI,aAAa,GAAG,IAAI,CAACA,aAAa,CAACJ,IAAI,CAAC,IAAI,CAAC;IAClD,IAAI,CAACK,YAAY,GAAG,IAAI,CAACA,YAAY,CAACL,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACM,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACN,IAAI,CAAC,IAAI,CAAC;IAE5D,IAAI,CAACO,SAAS,gBAAG7B,KAAK,CAAC8B,SAAS,CAAC,CAAC;IAClC,IAAI,CAACC,MAAM,gBAAG/B,KAAK,CAAC8B,SAAS,CAAC,CAAC;IAC/B,IAAI,CAACE,MAAM,GAAG,IAAI;IAClB,IAAI,CAACC,KAAK,GAAG,IAAI;IAEjB,IAAI,CAACC,KAAK,GAAG;MACXC,OAAO,EAAE;IACX,CAAC;EACH;EAEAC,iBAAiBA,CAAA,EAAS;IACxB,IAAI,CAACC,cAAc,CAAC,CAAC;IAErB,IAAM;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACnB,KAAK;IAC9B,IAAImB,OAAO,KAAK,CAAC,EAAE;MACjB,IAAI,CAACC,IAAI,CAAC,CAAC;IACb;EACF;EAEAC,kBAAkBA,CAACC,SAAuB,EAAEC,SAAuB,EAAQ;IACzE,IAAM;MAAEP,OAAO,EAAEQ;IAAW,CAAC,GAAGD,SAAS;IACzC,IAAM;MAAEP;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAE9B,IAAIC,OAAO,KAAKQ,UAAU,EAAE;MAC1B,IAAIR,OAAO,EAAE;QACXxB,OAAO,CAACM,WAAW,CAAC,CAAC;MACvB,CAAC,MAAM;QACLN,OAAO,CAACC,YAAY,CAAC,CAAC;MACxB;IACF;EACF;EAEAgC,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,CAACC,aAAa,CAAC,CAAC;IACpB,IAAI,CAACC,mBAAmB,CAAC,CAAC;IAC1B,IAAI,CAACC,SAAS,CAAC,CAAC;IAEhB,IAAM;MAAEZ;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAE9B,IAAIC,OAAO,EAAE;MACXxB,OAAO,CAACC,YAAY,CAAC,CAAC;IACxB;EACF;;EAQA;EACA;EAGAyB,cAAcA,CAAA,EAAS;IACrB,IAAI,CAAC,IAAI,CAACR,SAAS,CAACmB,OAAO,IAAI,CAAC,IAAI,CAACnB,SAAS,CAACmB,OAAO,CAACC,aAAa,EAAE;MACpExC,GAAG,CAACyC,KAAK,CAAC,mDAAmD,CAAC;MAC9D;IACF;IAEA,IAAI,CAAClB,MAAM,GAAG,IAAI,CAACH,SAAS,CAACmB,OAAO,CAACC,aAAa;IAClD,IAAI,CAACjB,MAAM,CAACmB,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC9B,eAAe,CAAC;IAC/D,IAAI,CAACW,MAAM,CAACmB,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC5B,gBAAgB,CAAC;IACjE,IAAI,CAACS,MAAM,CAACmB,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACvB,kBAAkB,CAAC;EACpE;EAEAiB,aAAaA,CAAA,EAAS;IACpB,IAAI,CAAC,IAAI,CAACb,MAAM,EAAE;MAChB;IACF;IAEA,IAAI,CAACA,MAAM,CAACoB,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC/B,eAAe,CAAC;IAClE,IAAI,CAACW,MAAM,CAACoB,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC7B,gBAAgB,CAAC;IACpE,IAAI,CAACS,MAAM,CAACoB,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAACxB,kBAAkB,CAAC;EACvE;EAEAyB,oBAAoBA,CAAA,EAAS;IAC3BC,MAAM,CAACH,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC3B,qBAAqB,EAAE,IAAI,CAAC;IACtE8B,MAAM,CAACH,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAACvB,kBAAkB,EAAE,IAAI,CAAC;IACrE0B,MAAM,CAACH,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC1B,WAAW,CAAC;EACpD;EAEAqB,mBAAmBA,CAAA,EAAS;IAC1BQ,MAAM,CAACF,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC5B,qBAAqB,EAAE,IAAI,CAAC;IACzE8B,MAAM,CAACF,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAACxB,kBAAkB,EAAE,IAAI,CAAC;IACxE0B,MAAM,CAACF,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC3B,WAAW,CAAC;EACvD;EAEAJ,eAAeA,CAAA,EAAS;IACtB,IAAI,CAACkC,UAAU,CAAC,CAAC;EACnB;EAEA9B,WAAWA,CAAA,EAAS;IAClB,IAAM;MAAEU;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAC9B,IAAI,IAAI,CAACH,MAAM,CAACiB,OAAO,IAAI,IAAI,CAAChB,MAAM,IAAIG,OAAO,EAAE;MACjD,IACE,CAAC,IAAI,CAACJ,MAAM,CAACiB,OAAO,CAACQ,OAAO,CAACC,OAAO,CAAC,QAAQ,CAAC,IAC9C,CAAC,IAAI,CAACzB,MAAM,CAACyB,OAAO,CAAC,QAAQ,CAAC,EAC9B;QACA,IAAI,CAACV,SAAS,CAAC,CAAC;QAChB,IAAI,CAACW,IAAI,CAAC,CAAC;MACb;IACF;EACF;EAEAnC,gBAAgBA,CAAA,EAAS;IACvB,IAAM;MAAEY;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAC9B,IAAI,CAACa,SAAS,CAAC,CAAC;IAEhB,IAAM;MAAEY;IAAY,CAAC,GAAG,IAAI,CAACxC,KAAK;IAClC,IAAI,CAACwC,WAAW,IAAIxB,OAAO,EAAE;MAC3B,IAAI,CAACuB,IAAI,CAAC,CAAC;IACb;EACF;EAEAhC,aAAaA,CAAA,EAAS;IACpB,IAAI,CAACa,IAAI,CAAC,CAAC;EACb;EAEAf,qBAAqBA,CAACoC,KAAiB,EAAQ;IAC7C,IAAMC,MAAM,GAAGD,KAAK,CAACE,OAAO;IAC5B,IAAMC,MAAM,GAAGH,KAAK,CAACI,OAAO;IAC5B,IAAM;MAAE7B;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAE9B,IAAI,CAAC,IAAI,CAACH,MAAM,CAACiB,OAAO,IAAI,CAAC,IAAI,CAAChB,MAAM,EAAE;MACxC;IACF;IACA,IAAMiC,UAAU,GAAG,IAAI,CAAClC,MAAM,CAACiB,OAAO,CAACQ,OAAO,CAACU,qBAAqB,CAAC,CAAC;IACtE,IAAMC,UAAU,GAAG,IAAI,CAACnC,MAAM,CAACkC,qBAAqB,CAAC,CAAC;IAEtD,IACEL,MAAM,IAAII,UAAU,CAACG,IAAI,IACzBP,MAAM,IAAII,UAAU,CAACG,IAAI,GAAGH,UAAU,CAACI,KAAK,IAC5CN,MAAM,IAAIE,UAAU,CAACK,GAAG,IACxBP,MAAM,IAAIE,UAAU,CAACK,GAAG,GAAGL,UAAU,CAACM,MAAM,EAC5C;MACA,IAAI,CAAClD,eAAe,CAAC,CAAC;IACxB,CAAC,MAAM,IACLwC,MAAM,IAAIM,UAAU,CAACC,IAAI,IACzBP,MAAM,IAAIM,UAAU,CAACC,IAAI,GAAGD,UAAU,CAACE,KAAK,IAC5CN,MAAM,IAAII,UAAU,CAACG,GAAG,IACxBP,MAAM,IAAII,UAAU,CAACG,GAAG,GAAGH,UAAU,CAACI,MAAM,EAC5C;MACA,IAAI,CAAClD,eAAe,CAAC,CAAC;IACxB,CAAC,MAAM,IAAIc,OAAO,EAAE;MAClB,IAAI,CAACY,SAAS,CAAC,CAAC;MAChB,IAAI,CAACW,IAAI,CAAC,CAAC;IACb;EACF;EAEAH,UAAUA,CAAA,EAAS;IACjB,IAAI,CAACR,SAAS,CAAC,CAAC;IAEhB,IAAM;MAAET,OAAO;MAAEkC;IAAc,CAAC,GAAG,IAAI,CAACrD,KAAK;IAC7C,IAAIsD,YAAY,GAAGnC,OAAO;IAC1B,IACE3B,OAAO,CAACE,iBAAiB,GAAG,CAAC,IAC7BE,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGL,OAAO,CAACG,cAAc,GAAGH,OAAO,CAAC+D,sBAAsB,EACpE;MACAD,YAAY,GAAGD,aAAa;IAC9B;IACA,IAAI,CAACvC,KAAK,GAAGqB,MAAM,CAACqB,UAAU,CAAC,IAAI,CAACjD,aAAa,EAAE+C,YAAY,CAAC;EAClE;EAEA1B,SAASA,CAAA,EAAS;IAChB,IAAI,IAAI,CAACd,KAAK,IAAI,IAAI,EAAE;MACtB2C,YAAY,CAAC,IAAI,CAAC3C,KAAK,CAAC;MACxB,IAAI,CAACA,KAAK,GAAG,IAAI;IACnB;EACF;EAEAM,IAAIA,CAAA,EAAS;IACX,IAAM;MAAEJ;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAC9B,IAAI,CAACa,SAAS,CAAC,CAAC;IAEhB,IAAI,CAACZ,OAAO,EAAE;MAAA,IAAA0C,oBAAA;MACZ,CAAAA,oBAAA,OAAI,CAAC9C,MAAM,CAACiB,OAAO,cAAA6B,oBAAA,uBAAnBA,oBAAA,CAAqBtC,IAAI,CAAC,CAAC;MAC3B,IAAI,CAACuC,QAAQ,CAAC;QAAE3C,OAAO,EAAE;MAAK,CAAC,CAAC;MAEhC,IAAM;QAAEwB;MAAY,CAAC,GAAG,IAAI,CAACxC,KAAK;MAClC,IAAIwC,WAAW,EAAE;QACf,IAAI,CAACN,oBAAoB,CAAC,CAAC;MAC7B;IACF;EACF;EAEAK,IAAIA,CAAA,EAAS;IAAA,IAAAqB,qBAAA;IACX,CAAAA,qBAAA,OAAI,CAAChD,MAAM,CAACiB,OAAO,cAAA+B,qBAAA,uBAAnBA,qBAAA,CAAqBrB,IAAI,CAAC,CAAC;IAC3B,IAAI,CAACZ,mBAAmB,CAAC,CAAC;EAC5B;EAEAkC,MAAMA,CAAA,EAAS;IAAA,IAAAC,qBAAA;IACb,CAAAA,qBAAA,OAAI,CAAClD,MAAM,CAACiB,OAAO,cAAAiC,qBAAA,uBAAnBA,qBAAA,CAAqBC,cAAc,CAAC,CAAC;EACvC;EAEAvD,YAAYA,CAAA,EAAS;IACnB,IAAI,CAACmD,QAAQ,CAAC;MAAE3C,OAAO,EAAE;IAAM,CAAC,CAAC;IACjC,IAAM;MAAEgD;IAAS,CAAC,GAAG,IAAI,CAAChE,KAAK;IAC/BgE,QAAQ,CAAC,CAAC;EACZ;EAEAvD,kBAAkBA,CAAA,EAAS;IACzB,IAAM;MAAEO;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAC9B,IAAI,CAACa,SAAS,CAAC,CAAC;IAChB,IAAIZ,OAAO,EAAE;MACX,IAAI,CAACuB,IAAI,CAAC,CAAC;IACb;EACF;EAEA0B,MAAMA,CAAA,EAAgB;IACpB,IAAM;MACJzB,WAAW;MACX0B,QAAQ;MACRC,eAAe;MACfC,eAAe;MACf,aAAa,EAAEC,UAAU;MACzBC;IACF,CAAC,GAAG,IAAI,CAACtE,KAAK;IACd,IAAM;MAAEgB;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAE9B,IAAI;MAAEwD;IAAQ,CAAC,GAAG,IAAI,CAACvE,KAAK;IAC5BuE,OAAO,GAAAC,aAAA;MACLC,SAAS,EAAE;IAAQ,GAChBF,OAAO,CACX;IAED,oBACElF,IAAA;MACEqF,GAAG,EAAE,IAAI,CAAChE,SAAU;MACpBiE,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAO,CAAE;MAC3B,eAAaP,UAAW;MAAAH,QAAA,eAExB7E,IAAA,CAACJ,MAAM;QACL4F,SAAS,EAAE9F,UAAU,CAACqF,eAAe,EAAE,gBAAgB,CAAE;QACzDG,OAAO,EAAEA,OAAQ;QACjBG,GAAG,EAAE,IAAI,CAAC9D,MAAO;QACjB0D,SAAS,EAAEA,SAAU;QACrBN,QAAQ,EAAE,IAAI,CAACxD,YAAa;QAC5BgC,WAAW,EAAEA,WAAY;QACzB2B,eAAe,EAAEA,eAAgB;QAAAD,QAAA,eAEjC/E,KAAA;UAAK0F,SAAS,EAAC,iBAAiB;UAAAX,QAAA,GAAC,GAAC,EAAClD,OAAO,IAAIkD,QAAQ;QAAA,CAAM;MAAC,CACvD;IAAC,CACN,CAAC;EAEV;AACF;AAACjE,eAAA,CAnSKT,OAAO,oBACa,GAAG;AAAAS,eAAA,CADvBT,OAAO,0BAGmB,GAAG;AAAAS,eAAA,CAH7BT,OAAO,4BAKqB,GAAG;AAAAS,eAAA,CAL/BT,OAAO,uBAOgB,CAAC;AAAAS,eAAA,CAPxBT,OAAO,oBASaI,IAAI,CAACC,GAAG,CAAC,CAAC;AAAAI,eAAA,CAT9BT,OAAO,kBAWW;EACpBgD,WAAW,EAAE,KAAK;EAClB+B,OAAO,EAAE,CAAC,CAAC;EACXH,eAAe,EAAE,EAAE;EACnBf,aAAa,EAAE7D,OAAO,CAACsF,oBAAoB;EAC3C3D,OAAO,EAAE3B,OAAO,CAACuF,cAAc;EAC/BT,SAAS,EAAEA,CAAA,KAAYU,SAAS;EAChChB,QAAQ,EAAEA,CAAA,KAAYgB,SAAS;EAC/B,aAAa,EAAEA;AACjB,CAAC;AAiRH,eAAexF,OAAO"}
@@ -0,0 +1 @@
1
+ :root{--dh-logo-dark-img: url("./logos/community-wordmark-dark.svg");--dh-logo-light-img: url("./logos/community-wordmark-light.svg")}.dh-logo{--dh-logo-width: 230;--dh-logo-height: 40;aspect-ratio:var(--dh-logo-width)/var(--dh-logo-height);max-height:100%;max-width:100%;height:calc(var(--dh-logo-height)*1px);background-image:var(--dh-logo-img);background-repeat:no-repeat;background-position:left center}/*# sourceMappingURL=Logo.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../../src/theme/Logo.css"],"names":[],"mappings":"AAAA,MACE,+DACA,iEAGF,SACE,qBACA,qBACA,wDACA,gBACA,eACA,uCACA,oCACA,4BACA","file":"Logo.css","sourcesContent":[":root {\n --dh-logo-dark-img: url('./logos/community-wordmark-dark.svg');\n --dh-logo-light-img: url('./logos/community-wordmark-light.svg');\n}\n\n.dh-logo {\n --dh-logo-width: 230;\n --dh-logo-height: 40;\n aspect-ratio: var(--dh-logo-width) / var(--dh-logo-height);\n max-height: 100%;\n max-width: 100%;\n height: calc(var(--dh-logo-height) * 1px); /* assign unit */\n background-image: var(--dh-logo-img);\n background-repeat: no-repeat;\n background-position: left center;\n}\n"]}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import './Logo.css';
3
+ interface LogoProps {
4
+ className?: string;
5
+ style?: React.CSSProperties;
6
+ }
7
+ export declare function Logo({ className, style }: LogoProps): JSX.Element;
8
+ export default Logo;
9
+ //# sourceMappingURL=Logo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logo.d.ts","sourceRoot":"","sources":["../../src/theme/Logo.tsx"],"names":[],"mappings":";AACA,OAAO,YAAY,CAAC;AAEpB,UAAU,SAAS;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CAEjE;AAED,eAAe,IAAI,CAAC"}
@@ -0,0 +1,15 @@
1
+ import classNames from 'classnames';
2
+ import "./Logo.css";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ export function Logo(_ref) {
5
+ var {
6
+ className,
7
+ style
8
+ } = _ref;
9
+ return /*#__PURE__*/_jsx("div", {
10
+ className: classNames('dh-logo', className),
11
+ style: style
12
+ });
13
+ }
14
+ export default Logo;
15
+ //# sourceMappingURL=Logo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logo.js","names":["classNames","jsx","_jsx","Logo","_ref","className","style"],"sources":["../../src/theme/Logo.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport './Logo.css';\n\ninterface LogoProps {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function Logo({ className, style }: LogoProps): JSX.Element {\n return <div className={classNames('dh-logo', className)} style={style} />;\n}\n\nexport default Logo;\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAQpC,OAAO,SAASC,IAAIA,CAAAC,IAAA,EAA+C;EAAA,IAA9C;IAAEC,SAAS;IAAEC;EAAiB,CAAC,GAAAF,IAAA;EAClD,oBAAOF,IAAA;IAAKG,SAAS,EAAEL,UAAU,CAAC,SAAS,EAAEK,SAAS,CAAE;IAACC,KAAK,EAAEA;EAAM,CAAE,CAAC;AAC3E;AAEA,eAAeH,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeUtils.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,SAAS,EACT,gBAAgB,EAChB,uBAAuB,EAEvB,qBAAqB,EAGrB,oBAAoB,EAErB,MAAM,cAAc,CAAC;AAItB,eAAO,MAAM,yBAAyB,WAAW,CAAC;AAClD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,oBAAoB,QAAO,CAAC;AACzC,eAAO,MAAM,gBAAgB,QAAO,CAAC;AAErC,MAAM,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;AAEtE;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,uBAAuB,CAUtE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,OAAO,GACV,CAAC,OAAO,EAAE,oBAAoB,KAAK,MAAM,CAkB3C;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,GAAG,CAAC,MAAM,CAAC,CAcb;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,qBAAqB,GACvC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CA+BtC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,EAAE,CAgBlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAU7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAiCrE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,CAKR;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1E,MAAM,EAAE,CAAC,EACT,aAAa,GAAE,WAA2B,EAC1C,eAAe,UAAQ,GACtB,CAAC,CA2CH;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,MAAM,GACZ,MAAM,CAyBR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAKvE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAWnC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAkB5C"}
1
+ {"version":3,"file":"ThemeUtils.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,SAAS,EACT,gBAAgB,EAChB,uBAAuB,EAEvB,qBAAqB,EAGrB,oBAAoB,EAErB,MAAM,cAAc,CAAC;AAItB,eAAO,MAAM,yBAAyB,WAAW,CAAC;AAClD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,oBAAoB,QAAO,CAAC;AACzC,eAAO,MAAM,gBAAgB,QAAO,CAAC;AAErC,MAAM,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;AAEtE;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,uBAAuB,CAUtE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,OAAO,GACV,CAAC,OAAO,EAAE,oBAAoB,KAAK,MAAM,CAkB3C;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,GAAG,CAAC,MAAM,CAAC,CAcb;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,qBAAqB,GACvC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CA+BtC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,EAAE,CAgBlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAU7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAiCrE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,CAKR;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1E,MAAM,EAAE,CAAC,EACT,aAAa,GAAE,WAA2B,EAC1C,eAAe,UAAQ,GACtB,CAAC,CA2CH;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,MAAM,GACZ,MAAM,CAyBR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAKvE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAWnC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAkB5C"}
@@ -1,7 +1,8 @@
1
1
  import Log from '@deephaven/log';
2
2
  import { assertNotNull, ColorUtils } from '@deephaven/utils';
3
3
  import { themeDark } from "./theme-dark/index.js";
4
- import { DEFAULT_DARK_THEME_KEY, DEFAULT_PRELOAD_DATA_VARIABLES, THEME_CACHE_LOCAL_STORAGE_KEY, SVG_ICON_MANUAL_COLOR_MAP } from "./ThemeModel.js";
4
+ import { themeLight } from "./theme-light/index.js";
5
+ import { DEFAULT_DARK_THEME_KEY, DEFAULT_LIGHT_THEME_KEY, DEFAULT_PRELOAD_DATA_VARIABLES, THEME_CACHE_LOCAL_STORAGE_KEY, SVG_ICON_MANUAL_COLOR_MAP } from "./ThemeModel.js";
5
6
  var log = Log.module('ThemeUtils');
6
7
  export var CSS_VAR_EXPRESSION_PREFIX = 'var(--';
7
8
  export var TMP_CSS_PROP_PREFIX = 'dh-tmp';
@@ -91,16 +92,15 @@ export function getDefaultBaseThemes() {
91
92
  name: 'Default Dark',
92
93
  themeKey: DEFAULT_DARK_THEME_KEY,
93
94
  styleContent: themeDark
94
- }
95
+ },
95
96
  // The ThemePicker shows whenever more than 1 theme is available. Disable
96
97
  // light theme for now to keep the picker hidden until it is fully
97
98
  // implemented by #1539.
98
- // {
99
- // name: 'Default Light',
100
- // themeKey: DEFAULT_LIGHT_THEME_KEY,
101
- // styleContent: themeLight,
102
- // },
103
- ];
99
+ {
100
+ name: 'Default Light',
101
+ themeKey: DEFAULT_LIGHT_THEME_KEY,
102
+ styleContent: themeLight
103
+ }];
104
104
  }
105
105
 
106
106
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeUtils.js","names":["Log","assertNotNull","ColorUtils","themeDark","DEFAULT_DARK_THEME_KEY","DEFAULT_PRELOAD_DATA_VARIABLES","THEME_CACHE_LOCAL_STORAGE_KEY","SVG_ICON_MANUAL_COLOR_MAP","log","module","CSS_VAR_EXPRESSION_PREFIX","TMP_CSS_PROP_PREFIX","NON_WHITESPACE_REGEX","WHITESPACE_REGEX","calculatePreloadStyleContent","resolveVar","createCssVariableResolver","document","body","pairs","Object","keys","map","key","concat","join","el","computedStyle","getComputedStyle","cssVariableResolver","varName","_DEFAULT_PRELOAD_DATA","value","getPropertyValue","extractDistinctCssVariableExpressions","record","set","Set","values","forEach","getExpressionRanges","_ref","start","end","expression","substring","includes","add","getActiveThemes","themeKey","themeRegistration","_custom$baseThemeKey","custom","find","theme","baseThemeKey","base","error","debug","getDefaultBaseThemes","name","styleContent","getThemePreloadData","data","localStorage","getItem","JSON","parse","_unused","_NON_WHITESPACE_REGEX","_NON_WHITESPACE_REGEX2","ranges","exec","index","parenLevel","i","length","test","push","replaceSVGFillColor","svgContent","fillColor","replace","encodeURIComponent","resolveCssVariablesInRecord","targetElement","arguments","undefined","isAlphaOptional","perfStart","performance","now","tmpPropEl","createElement","appendChild","varExpressions","varExpression","tmpPropKey","style","setProperty","result","window","resolver","indexOf","resolved","normalizeCssColor","entries","_ref2","resolveCssVariablesInString","remove","_ref3","setThemePreloadData","preloadData","setItem","stringify","getThemeKey","pluginName","themeName","preloadTheme","_getThemePreloadData$","_getThemePreloadData","preloadStyleContent","id","innerHTML","head","overrideSVGFillColors","_ref4","removeProperty","newSVGContent"],"sources":["../../src/theme/ThemeUtils.ts"],"sourcesContent":["import Log from '@deephaven/log';\nimport { assertNotNull, ColorUtils } from '@deephaven/utils';\nimport { themeDark } from './theme-dark';\nimport {\n DEFAULT_DARK_THEME_KEY,\n DEFAULT_PRELOAD_DATA_VARIABLES,\n ThemeData,\n ThemePreloadData,\n CssVariableStyleContent,\n ThemePreloadColorVariable,\n ThemeRegistrationData,\n THEME_CACHE_LOCAL_STORAGE_KEY,\n SVG_ICON_MANUAL_COLOR_MAP,\n ThemeCssVariableName,\n ThemeIconsRequiringManualColorChanges,\n} from './ThemeModel';\n\nconst log = Log.module('ThemeUtils');\n\nexport const CSS_VAR_EXPRESSION_PREFIX = 'var(--';\nexport const TMP_CSS_PROP_PREFIX = 'dh-tmp';\nexport const NON_WHITESPACE_REGEX = /\\S/;\nexport const WHITESPACE_REGEX = /\\s/;\n\nexport type VarExpressionResolver = (varExpression: string) => string;\n\n/**\n * Resolves the current values of CSS variables we want to preload. Preloading\n * happens before themes are fully loaded so that we can style things like the\n * loading spinner and background color which are shown to the user early on in\n * the app lifecycle.\n */\nexport function calculatePreloadStyleContent(): CssVariableStyleContent {\n const resolveVar = createCssVariableResolver(document.body);\n\n // Calculate the current preload variables. If the variable is not set, use\n // the default value.\n const pairs = Object.keys(DEFAULT_PRELOAD_DATA_VARIABLES).map(\n key => `${key}:${resolveVar(key as ThemePreloadColorVariable)}`\n );\n\n return `:root{${pairs.join(';')}}`;\n}\n\n/**\n * Create a resolver function for calculating the value of a css variable based\n * on a given element's computed style. If the variable resolves to '', we check\n * DEFAULT_PRELOAD_DATA_VARIABLES for a default value, and if one does not exist,\n * return ''.\n * @param el Element to resolve css variables against\n */\nexport function createCssVariableResolver(\n el: Element\n): (varName: ThemeCssVariableName) => string {\n const computedStyle = getComputedStyle(el);\n\n /**\n * Resolve the given css variable name to a value. If the variable is not set,\n * return the default preload value or '' if one does not exist.\n */\n return function cssVariableResolver(varName: ThemeCssVariableName): string {\n const value = computedStyle.getPropertyValue(varName);\n\n if (value !== '') {\n return value;\n }\n\n return (\n DEFAULT_PRELOAD_DATA_VARIABLES[varName as ThemePreloadColorVariable] ?? ''\n );\n };\n}\n\n/**\n * Extracts all css variable expressions from the given record and returns\n * a set of unique expressions.\n * @param record The record to extract css variable expressions from\n */\nexport function extractDistinctCssVariableExpressions(\n record: Record<string, string>\n): Set<string> {\n const set = new Set<string>();\n\n Object.values(record).forEach(value => {\n getExpressionRanges(value).forEach(([start, end]) => {\n const expression = value.substring(start, end + 1);\n\n if (expression.includes(CSS_VAR_EXPRESSION_PREFIX)) {\n set.add(expression);\n }\n });\n });\n\n return set;\n}\n\n/**\n * Returns an array of the active themes. The first item will always be one\n * of the base themes. Optionally, the second item will be a custom theme.\n */\nexport function getActiveThemes(\n themeKey: string,\n themeRegistration: ThemeRegistrationData\n): [ThemeData] | [ThemeData, ThemeData] {\n const custom = themeRegistration.custom.find(\n theme => theme.themeKey === themeKey\n );\n\n const baseThemeKey = custom?.baseThemeKey ?? themeKey;\n\n let base = themeRegistration.base.find(\n theme => theme.themeKey === baseThemeKey\n );\n\n if (base == null) {\n log.error(\n `No registered base theme found for theme key: '${baseThemeKey}'`,\n 'Registered:',\n themeRegistration.base.map(theme => theme.themeKey),\n themeRegistration.custom.map(theme => theme.themeKey)\n );\n base = themeRegistration.base.find(\n theme => theme.themeKey === DEFAULT_DARK_THEME_KEY\n );\n\n assertNotNull(\n base,\n `Default base theme '${DEFAULT_DARK_THEME_KEY}' is not registered`\n );\n }\n\n log.debug('Applied themes:', base.themeKey, custom?.themeKey);\n\n return custom == null ? [base] : [base, custom];\n}\n\n/**\n * Get default base theme data.\n */\nexport function getDefaultBaseThemes(): ThemeData[] {\n return [\n {\n name: 'Default Dark',\n themeKey: DEFAULT_DARK_THEME_KEY,\n styleContent: themeDark,\n },\n // The ThemePicker shows whenever more than 1 theme is available. Disable\n // light theme for now to keep the picker hidden until it is fully\n // implemented by #1539.\n // {\n // name: 'Default Light',\n // themeKey: DEFAULT_LIGHT_THEME_KEY,\n // styleContent: themeLight,\n // },\n ];\n}\n\n/**\n * Get the preload data from local storage or null if it does not exist or is\n * invalid\n */\nexport function getThemePreloadData(): ThemePreloadData | null {\n const data = localStorage.getItem(THEME_CACHE_LOCAL_STORAGE_KEY);\n\n try {\n return data == null ? null : JSON.parse(data);\n } catch {\n // ignore\n }\n\n return null;\n}\n\n/**\n * Identifies start and end indices of any top-level expressions in the given\n * string.\n *\n * e.g.\n * getExpressionRanges('var(--aaa-aa) #fff var(--bbb-bb)')\n * yields:\n * [\n * [0, 12], // 'var(--aaa-aa)'\n * [14, 17] // '#fff'\n * [19, 31], // 'var(--bbb-bb)'\n * ]\n *\n * In cases where there are nested expressions, only the indices of the outermost\n * expression will be included.\n *\n * e.g.\n * getExpressionRanges('var(--ccc-cc, var(--aaa-aa, green)) var(--bbb-bb)')\n * yields:\n * [\n * [0, 34], // 'var(--ccc-cc, var(--aaa-aa, green))'\n * [36, 48], // 'var(--bbb-bb)'\n * ]\n * @param value The string to search for expressions\n * @returns An array of [start, end] index pairs for each expression\n */\nexport function getExpressionRanges(value: string): [number, number][] {\n const ranges: [number, number][] = [];\n\n let start = NON_WHITESPACE_REGEX.exec(value)?.index ?? 0;\n let parenLevel = 0;\n\n for (let i = 0; i < value.length; i += 1) {\n if (value[i] === '(') {\n parenLevel += 1;\n } else if (value[i] === ')') {\n parenLevel -= 1;\n }\n\n if (\n i === value.length - 1 ||\n (WHITESPACE_REGEX.test(value[i + 1]) && parenLevel === 0)\n ) {\n ranges.push([start, i]);\n\n while (i < value.length - 1 && WHITESPACE_REGEX.test(value[i + 1])) {\n i += 1;\n }\n\n start = i + 1;\n }\n }\n\n if (parenLevel !== 0) {\n log.error('Unbalanced parentheses in css var expression', value);\n return [];\n }\n\n return ranges;\n}\n\n/**\n * Replace the `fill='...'` attribute in the given SVG content with the given\n * color string.\n * @param svgContent Inline SVG content to replace the fill color in\n * @param fillColor The color to replace the fill color with\n */\nexport function replaceSVGFillColor(\n svgContent: string,\n fillColor: string\n): string {\n return svgContent.replace(\n /fill='.*?'/,\n `fill='${encodeURIComponent(fillColor)}'`\n );\n}\n\n/**\n * Make a copy of the given object replacing any css variable expressions\n * contained in its prop values with values resolved from the given HTML element.\n * Variables that resolve to color strings will also be normalized to 8 digit\n * hex values (or optionally 6 digit hex if `isAlphaOptional` is true).\n *\n * Note that the browser will force a reflow when calling `getComputedStyle` if\n * css properties have changed. In order to avoid a reflow for every property\n * check we use distinct setup, resolve / normalize, and cleanup passes:\n * 1. Setup - Create a tmp element and set all css props we want to evaluate\n * 2. Resolve / Normalize - Evaluate all css props via `getPropertyValue` calls\n * and replace the original expressions with resolved values. Also normalize\n * css colors to rgb/a.\n * 3. Cleanup - Remove the tmp element\n * @param record An object whose values may contain css var expressions\n * @param targetElement The element to resolve css variables against. Defaults\n * to document.body\n * @param isAlphaOptional If true, the alpha value will be dropped from resolved\n * 8 character hex colors if it is 'ff'. Defaults to false.\n */\nexport function resolveCssVariablesInRecord<T extends Record<string, string>>(\n record: T,\n targetElement: HTMLElement = document.body,\n isAlphaOptional = false\n): T {\n const perfStart = performance.now();\n\n // Add a temporary div to attach temp css variables to\n const tmpPropEl = document.createElement('div');\n targetElement.appendChild(tmpPropEl);\n\n const varExpressions = [...extractDistinctCssVariableExpressions(record)];\n\n // Set temporary css variables for resolving var expressions\n varExpressions.forEach((varExpression, i) => {\n const tmpPropKey = `--${TMP_CSS_PROP_PREFIX}-${i}`;\n tmpPropEl.style.setProperty(tmpPropKey, varExpression);\n });\n\n const result = {} as T;\n\n const computedStyle = window.getComputedStyle(tmpPropEl);\n\n const resolver = (varExpression: string): string => {\n const tmpPropKey = `--${TMP_CSS_PROP_PREFIX}-${varExpressions.indexOf(\n varExpression\n )}`;\n\n const resolved = computedStyle.getPropertyValue(tmpPropKey);\n\n return ColorUtils.normalizeCssColor(resolved, isAlphaOptional);\n };\n\n // Resolve the temporary css variables\n Object.entries(record).forEach(([key, value]) => {\n result[key as keyof T] = resolveCssVariablesInString(\n resolver,\n value\n ) as T[keyof T];\n });\n\n // Remove the temporary css variables\n tmpPropEl.remove();\n\n log.debug('Resolved css variables', performance.now() - perfStart, 'ms');\n\n return result;\n}\n\n/**\n * Resolve css variable expressions in the given string using the\n * given resolver and replace the original expressions with the resolved values.\n *\n * @param resolver Function that can resolve a css variable expression\n * @param value Value that may contain css variable expressions\n */\nexport function resolveCssVariablesInString(\n resolver: VarExpressionResolver,\n value: string\n): string {\n const result: string[] = [];\n let i = 0;\n getExpressionRanges(value).forEach(([start, end]) => {\n if (i < start) {\n result.push(value.substring(i, start));\n i += start - i;\n }\n\n const expression = value.substring(start, end + 1);\n\n result.push(\n expression.includes(CSS_VAR_EXPRESSION_PREFIX)\n ? resolver(expression)\n : expression\n );\n\n i += end - start + 1;\n });\n\n if (result.length === 0) {\n return value;\n }\n\n return result.join('');\n}\n\n/**\n * Store theme preload data in local storage.\n * @param preloadData The preload data to set\n */\nexport function setThemePreloadData(preloadData: ThemePreloadData): void {\n localStorage.setItem(\n THEME_CACHE_LOCAL_STORAGE_KEY,\n JSON.stringify(preloadData)\n );\n}\n\n/**\n * Derive unique theme key from plugin root path and theme name.\n * @param pluginName The root path of the plugin\n * @param themeName The name of the theme\n */\nexport function getThemeKey(pluginName: string, themeName: string): string {\n return `${pluginName}_${themeName}`;\n}\n\n/**\n * Preload minimal theme variables from the cache.\n */\nexport function preloadTheme(): void {\n const preloadStyleContent =\n getThemePreloadData()?.preloadStyleContent ??\n calculatePreloadStyleContent();\n\n log.debug('Preloading theme content:', `'${preloadStyleContent}'`);\n\n const style = document.createElement('style');\n style.id = 'theme-preload';\n style.innerHTML = preloadStyleContent;\n document.head.appendChild(style);\n}\n\n/**\n * Inline SVGs cannot depend on dynamic CSS variables, so we have to statically\n * update them if we want to change their color.\n *\n * This function:\n * 1. Clears any previous overrides\n * 2. Resolves CSS variables containing inline SVG urls\n * 3. Resolves mapped color variables and replaces the `fill='...'` attribute with the result\n * 4. Sets the original CSS variable to the new replaced value\n *\n * Note that it is preferable to use inline SVGs as background-mask values and\n * just change the background color instead of relying on this util, but this\n * is not always possible. e.g. <select> elements don't support pseudo elements,\n * so there's not a good way to set icons via masks.\n */\nexport function overrideSVGFillColors(): void {\n const resolveVar = createCssVariableResolver(document.body);\n\n Object.entries(SVG_ICON_MANUAL_COLOR_MAP).forEach(([key, value]) => {\n // Clear any previous override so that our variables get resolved against the\n // actual svg content provided by the active themes and not from a previous\n // override\n document.body.style.removeProperty(key);\n\n const svgContent = resolveVar(key as ThemeIconsRequiringManualColorChanges);\n const fillColor = resolveVar(value as ThemePreloadColorVariable);\n\n const newSVGContent = replaceSVGFillColor(svgContent, fillColor);\n\n // This will take precedence over any values for the variable provided by\n // the active themes\n document.body.style.setProperty(key, newSVGContent);\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThemeUtils.js","names":["Log","assertNotNull","ColorUtils","themeDark","themeLight","DEFAULT_DARK_THEME_KEY","DEFAULT_LIGHT_THEME_KEY","DEFAULT_PRELOAD_DATA_VARIABLES","THEME_CACHE_LOCAL_STORAGE_KEY","SVG_ICON_MANUAL_COLOR_MAP","log","module","CSS_VAR_EXPRESSION_PREFIX","TMP_CSS_PROP_PREFIX","NON_WHITESPACE_REGEX","WHITESPACE_REGEX","calculatePreloadStyleContent","resolveVar","createCssVariableResolver","document","body","pairs","Object","keys","map","key","concat","join","el","computedStyle","getComputedStyle","cssVariableResolver","varName","_DEFAULT_PRELOAD_DATA","value","getPropertyValue","extractDistinctCssVariableExpressions","record","set","Set","values","forEach","getExpressionRanges","_ref","start","end","expression","substring","includes","add","getActiveThemes","themeKey","themeRegistration","_custom$baseThemeKey","custom","find","theme","baseThemeKey","base","error","debug","getDefaultBaseThemes","name","styleContent","getThemePreloadData","data","localStorage","getItem","JSON","parse","_unused","_NON_WHITESPACE_REGEX","_NON_WHITESPACE_REGEX2","ranges","exec","index","parenLevel","i","length","test","push","replaceSVGFillColor","svgContent","fillColor","replace","encodeURIComponent","resolveCssVariablesInRecord","targetElement","arguments","undefined","isAlphaOptional","perfStart","performance","now","tmpPropEl","createElement","appendChild","varExpressions","varExpression","tmpPropKey","style","setProperty","result","window","resolver","indexOf","resolved","normalizeCssColor","entries","_ref2","resolveCssVariablesInString","remove","_ref3","setThemePreloadData","preloadData","setItem","stringify","getThemeKey","pluginName","themeName","preloadTheme","_getThemePreloadData$","_getThemePreloadData","preloadStyleContent","id","innerHTML","head","overrideSVGFillColors","_ref4","removeProperty","newSVGContent"],"sources":["../../src/theme/ThemeUtils.ts"],"sourcesContent":["import Log from '@deephaven/log';\nimport { assertNotNull, ColorUtils } from '@deephaven/utils';\nimport { themeDark } from './theme-dark';\nimport { themeLight } from './theme-light';\nimport {\n DEFAULT_DARK_THEME_KEY,\n DEFAULT_LIGHT_THEME_KEY,\n DEFAULT_PRELOAD_DATA_VARIABLES,\n ThemeData,\n ThemePreloadData,\n CssVariableStyleContent,\n ThemePreloadColorVariable,\n ThemeRegistrationData,\n THEME_CACHE_LOCAL_STORAGE_KEY,\n SVG_ICON_MANUAL_COLOR_MAP,\n ThemeCssVariableName,\n ThemeIconsRequiringManualColorChanges,\n} from './ThemeModel';\n\nconst log = Log.module('ThemeUtils');\n\nexport const CSS_VAR_EXPRESSION_PREFIX = 'var(--';\nexport const TMP_CSS_PROP_PREFIX = 'dh-tmp';\nexport const NON_WHITESPACE_REGEX = /\\S/;\nexport const WHITESPACE_REGEX = /\\s/;\n\nexport type VarExpressionResolver = (varExpression: string) => string;\n\n/**\n * Resolves the current values of CSS variables we want to preload. Preloading\n * happens before themes are fully loaded so that we can style things like the\n * loading spinner and background color which are shown to the user early on in\n * the app lifecycle.\n */\nexport function calculatePreloadStyleContent(): CssVariableStyleContent {\n const resolveVar = createCssVariableResolver(document.body);\n\n // Calculate the current preload variables. If the variable is not set, use\n // the default value.\n const pairs = Object.keys(DEFAULT_PRELOAD_DATA_VARIABLES).map(\n key => `${key}:${resolveVar(key as ThemePreloadColorVariable)}`\n );\n\n return `:root{${pairs.join(';')}}`;\n}\n\n/**\n * Create a resolver function for calculating the value of a css variable based\n * on a given element's computed style. If the variable resolves to '', we check\n * DEFAULT_PRELOAD_DATA_VARIABLES for a default value, and if one does not exist,\n * return ''.\n * @param el Element to resolve css variables against\n */\nexport function createCssVariableResolver(\n el: Element\n): (varName: ThemeCssVariableName) => string {\n const computedStyle = getComputedStyle(el);\n\n /**\n * Resolve the given css variable name to a value. If the variable is not set,\n * return the default preload value or '' if one does not exist.\n */\n return function cssVariableResolver(varName: ThemeCssVariableName): string {\n const value = computedStyle.getPropertyValue(varName);\n\n if (value !== '') {\n return value;\n }\n\n return (\n DEFAULT_PRELOAD_DATA_VARIABLES[varName as ThemePreloadColorVariable] ?? ''\n );\n };\n}\n\n/**\n * Extracts all css variable expressions from the given record and returns\n * a set of unique expressions.\n * @param record The record to extract css variable expressions from\n */\nexport function extractDistinctCssVariableExpressions(\n record: Record<string, string>\n): Set<string> {\n const set = new Set<string>();\n\n Object.values(record).forEach(value => {\n getExpressionRanges(value).forEach(([start, end]) => {\n const expression = value.substring(start, end + 1);\n\n if (expression.includes(CSS_VAR_EXPRESSION_PREFIX)) {\n set.add(expression);\n }\n });\n });\n\n return set;\n}\n\n/**\n * Returns an array of the active themes. The first item will always be one\n * of the base themes. Optionally, the second item will be a custom theme.\n */\nexport function getActiveThemes(\n themeKey: string,\n themeRegistration: ThemeRegistrationData\n): [ThemeData] | [ThemeData, ThemeData] {\n const custom = themeRegistration.custom.find(\n theme => theme.themeKey === themeKey\n );\n\n const baseThemeKey = custom?.baseThemeKey ?? themeKey;\n\n let base = themeRegistration.base.find(\n theme => theme.themeKey === baseThemeKey\n );\n\n if (base == null) {\n log.error(\n `No registered base theme found for theme key: '${baseThemeKey}'`,\n 'Registered:',\n themeRegistration.base.map(theme => theme.themeKey),\n themeRegistration.custom.map(theme => theme.themeKey)\n );\n base = themeRegistration.base.find(\n theme => theme.themeKey === DEFAULT_DARK_THEME_KEY\n );\n\n assertNotNull(\n base,\n `Default base theme '${DEFAULT_DARK_THEME_KEY}' is not registered`\n );\n }\n\n log.debug('Applied themes:', base.themeKey, custom?.themeKey);\n\n return custom == null ? [base] : [base, custom];\n}\n\n/**\n * Get default base theme data.\n */\nexport function getDefaultBaseThemes(): ThemeData[] {\n return [\n {\n name: 'Default Dark',\n themeKey: DEFAULT_DARK_THEME_KEY,\n styleContent: themeDark,\n },\n // The ThemePicker shows whenever more than 1 theme is available. Disable\n // light theme for now to keep the picker hidden until it is fully\n // implemented by #1539.\n {\n name: 'Default Light',\n themeKey: DEFAULT_LIGHT_THEME_KEY,\n styleContent: themeLight,\n },\n ];\n}\n\n/**\n * Get the preload data from local storage or null if it does not exist or is\n * invalid\n */\nexport function getThemePreloadData(): ThemePreloadData | null {\n const data = localStorage.getItem(THEME_CACHE_LOCAL_STORAGE_KEY);\n\n try {\n return data == null ? null : JSON.parse(data);\n } catch {\n // ignore\n }\n\n return null;\n}\n\n/**\n * Identifies start and end indices of any top-level expressions in the given\n * string.\n *\n * e.g.\n * getExpressionRanges('var(--aaa-aa) #fff var(--bbb-bb)')\n * yields:\n * [\n * [0, 12], // 'var(--aaa-aa)'\n * [14, 17] // '#fff'\n * [19, 31], // 'var(--bbb-bb)'\n * ]\n *\n * In cases where there are nested expressions, only the indices of the outermost\n * expression will be included.\n *\n * e.g.\n * getExpressionRanges('var(--ccc-cc, var(--aaa-aa, green)) var(--bbb-bb)')\n * yields:\n * [\n * [0, 34], // 'var(--ccc-cc, var(--aaa-aa, green))'\n * [36, 48], // 'var(--bbb-bb)'\n * ]\n * @param value The string to search for expressions\n * @returns An array of [start, end] index pairs for each expression\n */\nexport function getExpressionRanges(value: string): [number, number][] {\n const ranges: [number, number][] = [];\n\n let start = NON_WHITESPACE_REGEX.exec(value)?.index ?? 0;\n let parenLevel = 0;\n\n for (let i = 0; i < value.length; i += 1) {\n if (value[i] === '(') {\n parenLevel += 1;\n } else if (value[i] === ')') {\n parenLevel -= 1;\n }\n\n if (\n i === value.length - 1 ||\n (WHITESPACE_REGEX.test(value[i + 1]) && parenLevel === 0)\n ) {\n ranges.push([start, i]);\n\n while (i < value.length - 1 && WHITESPACE_REGEX.test(value[i + 1])) {\n i += 1;\n }\n\n start = i + 1;\n }\n }\n\n if (parenLevel !== 0) {\n log.error('Unbalanced parentheses in css var expression', value);\n return [];\n }\n\n return ranges;\n}\n\n/**\n * Replace the `fill='...'` attribute in the given SVG content with the given\n * color string.\n * @param svgContent Inline SVG content to replace the fill color in\n * @param fillColor The color to replace the fill color with\n */\nexport function replaceSVGFillColor(\n svgContent: string,\n fillColor: string\n): string {\n return svgContent.replace(\n /fill='.*?'/,\n `fill='${encodeURIComponent(fillColor)}'`\n );\n}\n\n/**\n * Make a copy of the given object replacing any css variable expressions\n * contained in its prop values with values resolved from the given HTML element.\n * Variables that resolve to color strings will also be normalized to 8 digit\n * hex values (or optionally 6 digit hex if `isAlphaOptional` is true).\n *\n * Note that the browser will force a reflow when calling `getComputedStyle` if\n * css properties have changed. In order to avoid a reflow for every property\n * check we use distinct setup, resolve / normalize, and cleanup passes:\n * 1. Setup - Create a tmp element and set all css props we want to evaluate\n * 2. Resolve / Normalize - Evaluate all css props via `getPropertyValue` calls\n * and replace the original expressions with resolved values. Also normalize\n * css colors to rgb/a.\n * 3. Cleanup - Remove the tmp element\n * @param record An object whose values may contain css var expressions\n * @param targetElement The element to resolve css variables against. Defaults\n * to document.body\n * @param isAlphaOptional If true, the alpha value will be dropped from resolved\n * 8 character hex colors if it is 'ff'. Defaults to false.\n */\nexport function resolveCssVariablesInRecord<T extends Record<string, string>>(\n record: T,\n targetElement: HTMLElement = document.body,\n isAlphaOptional = false\n): T {\n const perfStart = performance.now();\n\n // Add a temporary div to attach temp css variables to\n const tmpPropEl = document.createElement('div');\n targetElement.appendChild(tmpPropEl);\n\n const varExpressions = [...extractDistinctCssVariableExpressions(record)];\n\n // Set temporary css variables for resolving var expressions\n varExpressions.forEach((varExpression, i) => {\n const tmpPropKey = `--${TMP_CSS_PROP_PREFIX}-${i}`;\n tmpPropEl.style.setProperty(tmpPropKey, varExpression);\n });\n\n const result = {} as T;\n\n const computedStyle = window.getComputedStyle(tmpPropEl);\n\n const resolver = (varExpression: string): string => {\n const tmpPropKey = `--${TMP_CSS_PROP_PREFIX}-${varExpressions.indexOf(\n varExpression\n )}`;\n\n const resolved = computedStyle.getPropertyValue(tmpPropKey);\n\n return ColorUtils.normalizeCssColor(resolved, isAlphaOptional);\n };\n\n // Resolve the temporary css variables\n Object.entries(record).forEach(([key, value]) => {\n result[key as keyof T] = resolveCssVariablesInString(\n resolver,\n value\n ) as T[keyof T];\n });\n\n // Remove the temporary css variables\n tmpPropEl.remove();\n\n log.debug('Resolved css variables', performance.now() - perfStart, 'ms');\n\n return result;\n}\n\n/**\n * Resolve css variable expressions in the given string using the\n * given resolver and replace the original expressions with the resolved values.\n *\n * @param resolver Function that can resolve a css variable expression\n * @param value Value that may contain css variable expressions\n */\nexport function resolveCssVariablesInString(\n resolver: VarExpressionResolver,\n value: string\n): string {\n const result: string[] = [];\n let i = 0;\n getExpressionRanges(value).forEach(([start, end]) => {\n if (i < start) {\n result.push(value.substring(i, start));\n i += start - i;\n }\n\n const expression = value.substring(start, end + 1);\n\n result.push(\n expression.includes(CSS_VAR_EXPRESSION_PREFIX)\n ? resolver(expression)\n : expression\n );\n\n i += end - start + 1;\n });\n\n if (result.length === 0) {\n return value;\n }\n\n return result.join('');\n}\n\n/**\n * Store theme preload data in local storage.\n * @param preloadData The preload data to set\n */\nexport function setThemePreloadData(preloadData: ThemePreloadData): void {\n localStorage.setItem(\n THEME_CACHE_LOCAL_STORAGE_KEY,\n JSON.stringify(preloadData)\n );\n}\n\n/**\n * Derive unique theme key from plugin root path and theme name.\n * @param pluginName The root path of the plugin\n * @param themeName The name of the theme\n */\nexport function getThemeKey(pluginName: string, themeName: string): string {\n return `${pluginName}_${themeName}`;\n}\n\n/**\n * Preload minimal theme variables from the cache.\n */\nexport function preloadTheme(): void {\n const preloadStyleContent =\n getThemePreloadData()?.preloadStyleContent ??\n calculatePreloadStyleContent();\n\n log.debug('Preloading theme content:', `'${preloadStyleContent}'`);\n\n const style = document.createElement('style');\n style.id = 'theme-preload';\n style.innerHTML = preloadStyleContent;\n document.head.appendChild(style);\n}\n\n/**\n * Inline SVGs cannot depend on dynamic CSS variables, so we have to statically\n * update them if we want to change their color.\n *\n * This function:\n * 1. Clears any previous overrides\n * 2. Resolves CSS variables containing inline SVG urls\n * 3. Resolves mapped color variables and replaces the `fill='...'` attribute with the result\n * 4. Sets the original CSS variable to the new replaced value\n *\n * Note that it is preferable to use inline SVGs as background-mask values and\n * just change the background color instead of relying on this util, but this\n * is not always possible. e.g. <select> elements don't support pseudo elements,\n * so there's not a good way to set icons via masks.\n */\nexport function overrideSVGFillColors(): void {\n const resolveVar = createCssVariableResolver(document.body);\n\n Object.entries(SVG_ICON_MANUAL_COLOR_MAP).forEach(([key, value]) => {\n // Clear any previous override so that our variables get resolved against the\n // actual svg content provided by the active themes and not from a previous\n // override\n document.body.style.removeProperty(key);\n\n const svgContent = resolveVar(key as ThemeIconsRequiringManualColorChanges);\n const fillColor = resolveVar(value as ThemePreloadColorVariable);\n\n const newSVGContent = replaceSVGFillColor(svgContent, fillColor);\n\n // This will take precedence over any values for the variable provided by\n // the active themes\n document.body.style.setProperty(key, newSVGContent);\n });\n}\n"],"mappings":"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"}
@@ -5,4 +5,5 @@ export * from './ThemePicker';
5
5
  export * from './ThemeProvider';
6
6
  export * from './ThemeUtils';
7
7
  export * from './useTheme';
8
+ export * from './Logo';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC"}
@@ -5,4 +5,5 @@ export * from "./ThemePicker.js";
5
5
  export * from "./ThemeProvider.js";
6
6
  export * from "./ThemeUtils.js";
7
7
  export * from "./useTheme.js";
8
+ export * from "./Logo.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/theme/index.ts"],"sourcesContent":["export * from './theme-dark';\nexport * from './theme-light';\nexport * from './ThemeModel';\nexport * from './ThemePicker';\nexport * from './ThemeProvider';\nexport * from './ThemeUtils';\nexport * from './useTheme';\n"],"mappings":""}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/theme/index.ts"],"sourcesContent":["export * from './theme-dark';\nexport * from './theme-light';\nexport * from './ThemeModel';\nexport * from './ThemePicker';\nexport * from './ThemeProvider';\nexport * from './ThemeUtils';\nexport * from './useTheme';\nexport * from './Logo';\n"],"mappings":""}
@@ -1 +1 @@
1
- :root{--dh-color-loading-spinner-primary: var(--dh-color-accent-bg);--dh-color-loading-spinner-secondary: hsla(var(--dh-color-gray-800-hsl), 0.5);--dh-color-quickactions-bg: hsla(var(--dh-color-visual-gray-hsl), 0.9);--dh-color-radial-reaction: hsla(var(--dh-color-visual-gray-hsl), 0.6);--dh-color-colorpicker-border: hsla(var(--dh-color-visual-gray-hsl), 0.1);--dh-color-login-form-bg: var(--dh-color-gray-400);--dh-color-login-status-message: var(--dh-color-gray-600);--dh-color-login-logo-bg: var(--dh-color-gray-900);--dh-color-login-footer-fg: var(--dh-color-gray-700);--dh-color-random-area-plot-animation-fg-fill: hsla( var(--dh-color-accent-hsl), 0.08 );--dh-color-random-area-plot-animation-fg-stroke: hsla( var(--dh-color-accent-hsl), 0.2 );--dh-color-random-area-plot-animation-bg: var(--dh-color-gray-75);--dh-color-random-area-plot-animation-grid: var(--dh-color-gray-300);--dh-color-action-bg: hsl(var(--dh-color-action-hsl));--dh-color-action-fg: hsl(var(--dh-color-action-contrast-hsl));--dh-color-action-border: var(--dh-color-border);--dh-color-action-down-bg: var(--dh-color-gray-300);--dh-color-action-hover-bg: var(--dh-color-black);--dh-color-action-hover-fg: var(--dh-color-action-fg);--dh-color-action-hover-border: var(--dh-color-hover-border);--dh-color-action-active-bg: var(--dh-color-accent-bg);--dh-color-action-active-fg: var(--dh-color-accent-contrast);--dh-color-action-active-border: var(--dh-color-accent-bg);--dh-color-action-active-hover-bg: var(--dh-color-accent-hover-bg);--dh-color-action-active-hover-fg: var(--dh-color-accent-contrast);--dh-color-action-active-hover-border: var(--dh-color-accent-hover-bg);--dh-color-action-disabled-bg: transparent;--dh-color-action-disabled-fg: var(--dh-color-gray-700);--dh-color-action-disabled-border: var(--dh-color-black);--dh-color-input-bg: var(--dh-color-gray-500);--dh-color-input-fg: var(--dh-color-fg);--dh-color-input-disabled-bg: var(--dh-color-gray-300);--dh-color-input-border: var(--dh-color-gray-600);--dh-color-input-placeholder: var(--dh-color-gray-600);--dh-color-input-focus-border: hsla(var(--dh-color-accent-hsl), 0.85);--dh-color-search-icon: var(--dh-color-fg);--dh-color-form-control-error: hsl(var(--dh-color-visual-negative-hsl));--dh-color-form-control-error-shadow: hsla( var(--dh-color-visual-negative-hsl), 0.25 );--dh-color-selector-fg: hsla(var(--dh-color-gray-800-hsl), 0.4);--dh-color-selector-hover-fg: hsl(var(--dh-color-gray-800-hsl));--dh-color-selector-disabled-fg: hsla( var(--dh-color-gray-800-hsl), /* * Other dropdowns have opacity .4 when not hovered and then an additional * .65 opacity applied to disabled, hence .4 * .65 == .26 */ 0.26 );--dh-color-item-list-bg: transparent;--dh-color-item-list-active-bg: var(--dh-color-highlight-active);--dh-color-item-list-hover-bg: var(--dh-color-highlight-hover);--dh-color-item-list-selected-fg: var(--dh-color-white);--dh-color-item-list-selected-bg: var(--dh-color-highlight-selected);--dh-color-item-list-selected-hover-bg: var( --dh-color-highlight-selected-hover );--dh-color-item-list-selected-inactive-bg: var(--dh-color-gray-200);--dh-color-item-list-selected-border: hsla(var(--dh-color-accent-hsl), 0.6);--dh-color-item-list-drop-target-fg: var(--dh-color-white);--dh-color-item-list-keyboard-selected-bg: hsla( var(--dh-color-accent-hsl), 0.5 );--dh-color-menu-item-fg: var(--dh-color-gray-700);--dh-color-tooltip-bg: var(--dh-color-gray-400);--dh-color-tooltip-fg: var(--dh-color-fg);--dh-color-tooltip-box-shadow: hsla(var(--dh-color-black-hsl), 0.8);--dh-color-well-bg: hsla(var(--dh-color-visual-gray-hsl), 0.02);--dh-color-well-border: hsla(var(--dh-color-visual-gray-hsl), 0.05)}/*# sourceMappingURL=theme-dark-components.css.map */
1
+ :root{--dh-color-loading-spinner-primary: var(--dh-color-accent-bg);--dh-color-loading-spinner-secondary: hsla(var(--dh-color-gray-800-hsl), 0.5);--dh-color-quickactions-bg: hsla(var(--dh-color-visual-gray-hsl), 0.9);--dh-color-radial-reaction: hsla(var(--dh-color-visual-gray-hsl), 0.6);--dh-color-colorpicker-border: hsla(var(--dh-color-visual-gray-hsl), 0.1);--dh-logo-img: var(--dh-logo-dark-img);--dh-color-login-form-bg: var(--dh-color-gray-400);--dh-color-login-status-message: var(--dh-color-gray-600);--dh-color-login-logo-bg: var(--dh-color-gray-900);--dh-color-login-footer-fg: var(--dh-color-gray-700);--dh-color-random-area-plot-animation-fg-fill: hsla( var(--dh-color-accent-hsl), 0.08 );--dh-color-random-area-plot-animation-fg-stroke: hsla( var(--dh-color-accent-hsl), 0.2 );--dh-color-random-area-plot-animation-bg: var(--dh-color-gray-75);--dh-color-random-area-plot-animation-grid: var(--dh-color-gray-300);--dh-color-action-bg: var(--dh-color-gray-75);--dh-color-action-fg: var(--dh-color-text);--dh-color-action-border: var(--dh-color-border);--dh-color-action-down-bg: var(--dh-color-gray-300);--dh-color-action-hover-bg: var(--dh-color-gray-50);--dh-color-action-hover-fg: var(--dh-color-text-hover);--dh-color-action-hover-border: var(--dh-color-hover-border);--dh-color-action-active-bg: var(--dh-color-accent-bg);--dh-color-action-active-fg: var(--dh-color-accent-contrast);--dh-color-action-active-border: var(--dh-color-accent-bg);--dh-color-action-active-hover-bg: var(--dh-color-accent-hover-bg);--dh-color-action-active-hover-fg: var(--dh-color-accent-contrast);--dh-color-action-active-hover-border: var(--dh-color-accent-hover-bg);--dh-color-action-disabled-bg: transparent;--dh-color-action-disabled-fg: var(--dh-color-text-disabled);--dh-color-action-disabled-border: var(--dh-color-gray-300);--dh-color-icon-fg: var(--dh-color-gray-700);--dh-color-icon-disabled-fg: var(--dh-color-gray-400);--dh-color-input-bg: var(--dh-color-gray-50);--dh-color-input-fg: var(--dh-color-text);--dh-color-input-border: var(--dh-color-border);--dh-color-input-placeholder: var(--dh-color-gray-600);--dh-color-input-active-bg: var(--dh-color-input-bg);--dh-color-input-disabled-bg: var(--dh-color-disabled-bg);--dh-color-input-disabled-border: transparent;--dh-color-input-disabled-fg: var(--dh-color-text-disabled);--dh-color-input-hover-border: var(--dh-color-gray-600);--dh-color-input-focus-border: var(--dh-color-border-focus);--dh-color-search-icon: var(--dh-color-fg);--dh-color-form-control-error: hsl(var(--dh-color-visual-negative-hsl));--dh-color-form-control-error-shadow: hsla( var(--dh-color-visual-negative-hsl), 0.25 );--dh-color-label-text: var(--dh-color-gray-700);--dh-color-selector-fg: var(--dh-color-icon-fg);--dh-color-selector-bg: var(--dh-color-gray-75);--dh-color-selector-hover-bg: var(--dh-color-gray-50);--dh-color-selector-hover-fg: var(--dh-color-gray-900);--dh-color-selector-disabled-fg: var(--dh-color-icon-disabled-fg);--dh-color-item-list-bg: transparent;--dh-color-item-list-active-bg: var(--dh-color-highlight-active);--dh-color-item-list-hover-bg: var(--dh-color-highlight-hover);--dh-color-item-list-selected-fg: var(--dh-color-text);--dh-color-item-list-selected-bg: var(--dh-color-highlight-selected);--dh-color-item-list-selected-hover-bg: var( --dh-color-highlight-selected-hover );--dh-color-item-list-selected-inactive-bg: var(--dh-color-gray-200);--dh-color-item-list-selected-border: hsla(var(--dh-color-accent-hsl), 0.6);--dh-color-item-list-drop-target-fg: var(--dh-color-white);--dh-color-item-list-keyboard-selected-bg: hsla( var(--dh-color-accent-hsl), 0.5 );--dh-color-golden-layout-tab-header-bg: var(--dh-color-gray-75);--dh-color-golden-layout-tab-bg: var(--dh-color-gray-75);--dh-color-golden-layout-tab-selected-bg: var(--dh-color-content-bg);--dh-color-menu-item-fg: var(--dh-color-gray-700);--dh-color-hr: var(--dh-color-gray-200);--dh-color-dialog-title-fg: var(--dh-color-heading-text);--dh-color-dialog-fg: var(--dh-color-text);--dh-color-popover-bg: var(--dh-color-bg);--dh-color-tooltip-bg: var(--dh-color-gray-400);--dh-color-tooltip-fg: var(--dh-color-fg);--dh-color-tooltip-box-shadow: var(--dh-color-dropshadow);--dh-color-well-bg: hsla(var(--dh-color-visual-gray-hsl), 0.02);--dh-color-well-border: hsla(var(--dh-color-visual-gray-hsl), 0.05)}/*# sourceMappingURL=theme-dark-components.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../src/theme/theme-dark/theme-dark-components.css"],"names":[],"mappings":"AAEA,MACE,8DACA,8EACA,uEACA,uEACA,0EAGA,mDACA,0DACA,mDACA,qDAIA,wFAIA,yFAIA,kEACA,qEAGA,sDACA,+DACA,iDAEA,oDAEA,kDACA,sDACA,6DAEA,uDACA,6DACA,2DAEA,mEACA,mEACA,uEAEA,2CACA,wDACA,yDAGA,8CACA,wCACA,uDACA,kDACA,uDACA,sEAGA,2CACA,wEACA,wFAMA,gEACA,gEACA,uNAUA,qCACA,iEACA,+DACA,wDACA,qEACA,mFAGA,oEACA,4EACA,2DAEA,mFAcA,kDAGA,gDACA,0CACA,oEAGA,gEACA","file":"theme-dark-components.css","sourcesContent":["/* stylelint-disable custom-property-empty-line-before */\n/* stylelint-disable alpha-value-notation */\n:root {\n --dh-color-loading-spinner-primary: var(--dh-color-accent-bg);\n --dh-color-loading-spinner-secondary: hsla(var(--dh-color-gray-800-hsl), 0.5);\n --dh-color-quickactions-bg: hsla(var(--dh-color-visual-gray-hsl), 0.9);\n --dh-color-radial-reaction: hsla(var(--dh-color-visual-gray-hsl), 0.6);\n --dh-color-colorpicker-border: hsla(var(--dh-color-visual-gray-hsl), 0.1);\n\n /* Login */\n --dh-color-login-form-bg: var(--dh-color-gray-400);\n --dh-color-login-status-message: var(--dh-color-gray-600);\n --dh-color-login-logo-bg: var(--dh-color-gray-900);\n --dh-color-login-footer-fg: var(--dh-color-gray-700);\n\n /* We should base this color on something from the palette, but for now just\n * hard coding the original value */\n --dh-color-random-area-plot-animation-fg-fill: hsla(\n var(--dh-color-accent-hsl),\n 0.08\n );\n --dh-color-random-area-plot-animation-fg-stroke: hsla(\n var(--dh-color-accent-hsl),\n 0.2\n );\n --dh-color-random-area-plot-animation-bg: var(--dh-color-gray-75);\n --dh-color-random-area-plot-animation-grid: var(--dh-color-gray-300);\n\n /* Actions */\n --dh-color-action-bg: hsl(var(--dh-color-action-hsl));\n --dh-color-action-fg: hsl(var(--dh-color-action-contrast-hsl));\n --dh-color-action-border: var(--dh-color-border);\n\n --dh-color-action-down-bg: var(--dh-color-gray-300);\n\n --dh-color-action-hover-bg: var(--dh-color-black);\n --dh-color-action-hover-fg: var(--dh-color-action-fg);\n --dh-color-action-hover-border: var(--dh-color-hover-border);\n\n --dh-color-action-active-bg: var(--dh-color-accent-bg);\n --dh-color-action-active-fg: var(--dh-color-accent-contrast);\n --dh-color-action-active-border: var(--dh-color-accent-bg);\n\n --dh-color-action-active-hover-bg: var(--dh-color-accent-hover-bg);\n --dh-color-action-active-hover-fg: var(--dh-color-accent-contrast);\n --dh-color-action-active-hover-border: var(--dh-color-accent-hover-bg);\n\n --dh-color-action-disabled-bg: transparent;\n --dh-color-action-disabled-fg: var(--dh-color-gray-700);\n --dh-color-action-disabled-border: var(--dh-color-black);\n\n /* Inputs */\n --dh-color-input-bg: var(--dh-color-gray-500);\n --dh-color-input-fg: var(--dh-color-fg);\n --dh-color-input-disabled-bg: var(--dh-color-gray-300);\n --dh-color-input-border: var(--dh-color-gray-600);\n --dh-color-input-placeholder: var(--dh-color-gray-600);\n --dh-color-input-focus-border: hsla(var(--dh-color-accent-hsl), 0.85);\n\n /* Form Controls */\n --dh-color-search-icon: var(--dh-color-fg);\n --dh-color-form-control-error: hsl(var(--dh-color-visual-negative-hsl));\n --dh-color-form-control-error-shadow: hsla(\n var(--dh-color-visual-negative-hsl),\n 0.25\n );\n\n /* Selectors (pickers, dropdowns, select, etc.) */\n --dh-color-selector-fg: hsla(var(--dh-color-gray-800-hsl), 0.4);\n --dh-color-selector-hover-fg: hsl(var(--dh-color-gray-800-hsl));\n --dh-color-selector-disabled-fg: hsla(\n var(--dh-color-gray-800-hsl),\n /* \n * Other dropdowns have opacity .4 when not hovered and then an additional \n * .65 opacity applied to disabled, hence .4 * .65 == .26\n */\n 0.26\n );\n\n /* Item List */\n --dh-color-item-list-bg: transparent;\n --dh-color-item-list-active-bg: var(--dh-color-highlight-active);\n --dh-color-item-list-hover-bg: var(--dh-color-highlight-hover);\n --dh-color-item-list-selected-fg: var(--dh-color-white);\n --dh-color-item-list-selected-bg: var(--dh-color-highlight-selected);\n --dh-color-item-list-selected-hover-bg: var(\n --dh-color-highlight-selected-hover\n );\n --dh-color-item-list-selected-inactive-bg: var(--dh-color-gray-200);\n --dh-color-item-list-selected-border: hsla(var(--dh-color-accent-hsl), 0.6);\n --dh-color-item-list-drop-target-fg: var(--dh-color-white);\n\n --dh-color-item-list-keyboard-selected-bg: hsla(\n var(--dh-color-accent-hsl),\n 0.5\n );\n\n /* \n * There are a couple of related variables used in Enterprise SingleClickItemList.\n * that aren't consumed in DHC. We should see if there is a way to include these\n * in the theming variables.\n * --dh-color-item-list-keyboard-selected-border\n * --dh-color-item-list-keyboard-selected-hover-bg\n */\n\n /* Navigation Menu */\n --dh-color-menu-item-fg: var(--dh-color-gray-700);\n\n /* Tooltips */\n --dh-color-tooltip-bg: var(--dh-color-gray-400);\n --dh-color-tooltip-fg: var(--dh-color-fg);\n --dh-color-tooltip-box-shadow: hsla(var(--dh-color-black-hsl), 0.8);\n\n /* Wells */\n --dh-color-well-bg: hsla(var(--dh-color-visual-gray-hsl), 0.02);\n --dh-color-well-border: hsla(var(--dh-color-visual-gray-hsl), 0.05);\n}\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../../../src/theme/theme-dark/theme-dark-components.css"],"names":[],"mappings":"AAEA,MACE,8DACA,8EACA,uEACA,uEACA,0EAGA,uCAGA,mDACA,0DACA,mDACA,qDAIA,wFAIA,yFAIA,kEACA,qEAGA,8CACA,2CACA,iDAEA,oDAEA,oDACA,uDACA,6DAEA,uDACA,6DACA,2DAEA,mEACA,mEACA,uEAEA,2CACA,6DACA,4DAGA,6CACA,sDAGA,6CACA,0CACA,gDACA,uDACA,qDACA,0DACA,8CACA,4DACA,wDACA,4DAGA,2CACA,wEACA,wFAMA,gDAGA,gDACA,gDACA,sDACA,uDACA,kEAGA,qCACA,iEACA,+DACA,uDACA,qEACA,mFAGA,oEACA,4EACA,2DAEA,mFAcA,gEACA,yDACA,qEAGA,kDAGA,wCAGA,yDACA,2CAGA,0CAGA,gDACA,0CACA,0DAGA,gEACA","file":"theme-dark-components.css","sourcesContent":["/* stylelint-disable custom-property-empty-line-before */\n/* stylelint-disable alpha-value-notation */\n:root {\n --dh-color-loading-spinner-primary: var(--dh-color-accent-bg);\n --dh-color-loading-spinner-secondary: hsla(var(--dh-color-gray-800-hsl), 0.5);\n --dh-color-quickactions-bg: hsla(var(--dh-color-visual-gray-hsl), 0.9);\n --dh-color-radial-reaction: hsla(var(--dh-color-visual-gray-hsl), 0.6);\n --dh-color-colorpicker-border: hsla(var(--dh-color-visual-gray-hsl), 0.1);\n\n /* Logo */\n --dh-logo-img: var(--dh-logo-dark-img);\n\n /* Login */\n --dh-color-login-form-bg: var(--dh-color-gray-400);\n --dh-color-login-status-message: var(--dh-color-gray-600);\n --dh-color-login-logo-bg: var(--dh-color-gray-900);\n --dh-color-login-footer-fg: var(--dh-color-gray-700);\n\n /* We should base this color on something from the palette, but for now just\n * hard coding the original value */\n --dh-color-random-area-plot-animation-fg-fill: hsla(\n var(--dh-color-accent-hsl),\n 0.08\n );\n --dh-color-random-area-plot-animation-fg-stroke: hsla(\n var(--dh-color-accent-hsl),\n 0.2\n );\n --dh-color-random-area-plot-animation-bg: var(--dh-color-gray-75);\n --dh-color-random-area-plot-animation-grid: var(--dh-color-gray-300);\n\n /* Actions */\n --dh-color-action-bg: var(--dh-color-gray-75);\n --dh-color-action-fg: var(--dh-color-text);\n --dh-color-action-border: var(--dh-color-border);\n\n --dh-color-action-down-bg: var(--dh-color-gray-300);\n\n --dh-color-action-hover-bg: var(--dh-color-gray-50);\n --dh-color-action-hover-fg: var(--dh-color-text-hover);\n --dh-color-action-hover-border: var(--dh-color-hover-border);\n\n --dh-color-action-active-bg: var(--dh-color-accent-bg);\n --dh-color-action-active-fg: var(--dh-color-accent-contrast);\n --dh-color-action-active-border: var(--dh-color-accent-bg);\n\n --dh-color-action-active-hover-bg: var(--dh-color-accent-hover-bg);\n --dh-color-action-active-hover-fg: var(--dh-color-accent-contrast);\n --dh-color-action-active-hover-border: var(--dh-color-accent-hover-bg);\n\n --dh-color-action-disabled-bg: transparent;\n --dh-color-action-disabled-fg: var(--dh-color-text-disabled);\n --dh-color-action-disabled-border: var(--dh-color-gray-300);\n\n /* Icons */\n --dh-color-icon-fg: var(--dh-color-gray-700);\n --dh-color-icon-disabled-fg: var(--dh-color-gray-400);\n\n /* Inputs */\n --dh-color-input-bg: var(--dh-color-gray-50);\n --dh-color-input-fg: var(--dh-color-text);\n --dh-color-input-border: var(--dh-color-border);\n --dh-color-input-placeholder: var(--dh-color-gray-600);\n --dh-color-input-active-bg: var(--dh-color-input-bg);\n --dh-color-input-disabled-bg: var(--dh-color-disabled-bg);\n --dh-color-input-disabled-border: transparent;\n --dh-color-input-disabled-fg: var(--dh-color-text-disabled);\n --dh-color-input-hover-border: var(--dh-color-gray-600);\n --dh-color-input-focus-border: var(--dh-color-border-focus);\n\n /* Form Controls */\n --dh-color-search-icon: var(--dh-color-fg);\n --dh-color-form-control-error: hsl(var(--dh-color-visual-negative-hsl));\n --dh-color-form-control-error-shadow: hsla(\n var(--dh-color-visual-negative-hsl),\n 0.25\n );\n\n /* Labels */\n --dh-color-label-text: var(--dh-color-gray-700);\n\n /* Selectors (pickers, dropdowns, select, etc.) */\n --dh-color-selector-fg: var(--dh-color-icon-fg);\n --dh-color-selector-bg: var(--dh-color-gray-75);\n --dh-color-selector-hover-bg: var(--dh-color-gray-50);\n --dh-color-selector-hover-fg: var(--dh-color-gray-900);\n --dh-color-selector-disabled-fg: var(--dh-color-icon-disabled-fg);\n\n /* Item List */\n --dh-color-item-list-bg: transparent;\n --dh-color-item-list-active-bg: var(--dh-color-highlight-active);\n --dh-color-item-list-hover-bg: var(--dh-color-highlight-hover);\n --dh-color-item-list-selected-fg: var(--dh-color-text);\n --dh-color-item-list-selected-bg: var(--dh-color-highlight-selected);\n --dh-color-item-list-selected-hover-bg: var(\n --dh-color-highlight-selected-hover\n );\n --dh-color-item-list-selected-inactive-bg: var(--dh-color-gray-200);\n --dh-color-item-list-selected-border: hsla(var(--dh-color-accent-hsl), 0.6);\n --dh-color-item-list-drop-target-fg: var(--dh-color-white);\n\n --dh-color-item-list-keyboard-selected-bg: hsla(\n var(--dh-color-accent-hsl),\n 0.5\n );\n\n /* \n * There are a couple of related variables used in Enterprise SingleClickItemList.\n * that aren't consumed in DHC. We should see if there is a way to include these\n * in the theming variables.\n * --dh-color-item-list-keyboard-selected-border\n * --dh-color-item-list-keyboard-selected-hover-bg\n */\n\n /* Golden Layout */\n --dh-color-golden-layout-tab-header-bg: var(--dh-color-gray-75);\n --dh-color-golden-layout-tab-bg: var(--dh-color-gray-75);\n --dh-color-golden-layout-tab-selected-bg: var(--dh-color-content-bg);\n\n /* Navigation Menu */\n --dh-color-menu-item-fg: var(--dh-color-gray-700);\n\n /* Hr */\n --dh-color-hr: var(--dh-color-gray-200);\n\n /* Dialogs */\n --dh-color-dialog-title-fg: var(--dh-color-heading-text);\n --dh-color-dialog-fg: var(--dh-color-text);\n\n /* Popovers */\n --dh-color-popover-bg: var(--dh-color-bg);\n\n /* Tooltips */\n --dh-color-tooltip-bg: var(--dh-color-gray-400);\n --dh-color-tooltip-fg: var(--dh-color-fg);\n --dh-color-tooltip-box-shadow: var(--dh-color-dropshadow);\n\n /* Wells */\n --dh-color-well-bg: hsla(var(--dh-color-visual-gray-hsl), 0.02);\n --dh-color-well-border: hsla(var(--dh-color-visual-gray-hsl), 0.05);\n}\n"]}
@@ -1 +1 @@
1
- :root{--dh-color-editor-bg: var(--dh-color-content-bg);--dh-color-editor-fg: var(--dh-color-gray-900);--dh-color-editor-error-fg: var(--dh-color-visual-red);--dh-color-editor-line-number-fg: var(--dh-color-gray-700);--dh-color-editor-line-highlight-bg: var(--dh-color-gray-200);--dh-color-editor-selection-bg: var(--dh-color-text-highlight);--dh-color-editor-comment: var(--dh-color-gray-700);--dh-color-editor-delimiter: var(--dh-color-gray-700);--dh-color-editor-identifier-js: var(--dh-color-visual-yellow);--dh-color-editor-identifier-namespace: var(--dh-color-visual-red);--dh-color-editor-identifier: var(--dh-color-gray-900);--dh-color-editor-keyword: var(--dh-color-visual-cyan);--dh-color-editor-number: var(--dh-color-visual-purple);--dh-color-editor-operator: var(--dh-color-visual-red);--dh-color-editor-predefined: var(--dh-color-visual-green);--dh-color-editor-storage: var(--dh-color-visual-red);--dh-color-editor-string-delim: var(--dh-color-gray-700);--dh-color-editor-string: var(--dh-color-visual-yellow);--dh-color-editor-focus-border: var(--dh-color-focus-border);--dh-color-editor-input-option-active-border: var(--dh-color-focus-ring);--dh-color-editor-input-bg: var(--dh-color-bg);--dh-color-editor-input-fg: var(--dh-color-text);--dh-color-editor-input-border: var(--dh-color-border);--dh-color-editor-context-menu-bg: var(--dh-color-gray-300);--dh-color-editor-context-menu-fg: var(--dh-color-gray-900);--dh-color-editor-menu-selection-bg: var(--dh-color-highlight-hover);--dh-color-editor-log-date: var(--dh-color-gray-700);--dh-color-editor-log-error: var(--dh-color-visual-red);--dh-color-editor-log-info: var(--dh-color-visual-cyan);--dh-color-editor-log-stdout: var(--dh-color-gray-900);--dh-color-editor-log-warn: var(--dh-color-visual-yellow);--dh-color-editor-log-debug: var(--dh-color-visual-purple);--dh-color-editor-log-trace: var(--dh-color-visual-green);--dh-color-editor-find-bg: var(--dh-color-gray-200);--dh-color-editor-find-match-bg: var(--dh-color-highlight-selected);--dh-color-editor-find-match-highlight-bg: var( --dh-color-highlight-selected-hover );--dh-color-editor-find-option-active-bg: var(--dh-color-accent-700);--dh-color-editor-find-option-active-fg: var(--dh-color-gray-900);--dh-color-editor-suggest-bg: var(--dh-color-gray-200);--dh-color-editor-suggest-border: var(--dh-color-gray-400);--dh-color-editor-suggest-fg: var(--dh-color-white);--dh-color-editor-suggest-selected-bg: var(--dh-color-highlight-selected);--dh-color-editor-suggest-selected-fg: var(--dh-color-white);--dh-color-editor-suggest-highlight-fg: var(--dh-color-accent-700);--dh-color-editor-suggest-focus-highlight-fg: var(--dh-color-accent-700);--dh-color-editor-suggest-hover-bg: var(--dh-color-highlight-hover);--dh-color-editor-link-foreground: var(--dh-color-accent-1000);--dh-color-editor-link-active-fg: var(--dh-color-accent-1100)}/*# sourceMappingURL=theme-dark-semantic-editor.css.map */
1
+ :root{--dh-color-editor-bg: var(--dh-color-content-bg);--dh-color-editor-fg: var(--dh-color-gray-900);--dh-color-editor-error-fg: var(--dh-color-visual-red);--dh-color-editor-line-number-fg: var(--dh-color-gray-700);--dh-color-editor-line-highlight-bg: var(--dh-color-gray-200);--dh-color-editor-selection-bg: var(--dh-color-text-highlight);--dh-color-editor-inactive-selection-bg: var(--dh-color-gray-300);--dh-color-editor-selection-highlight-bg: var(--dh-color-gray-500);--dh-color-editor-word-highlight-bg: var(--dh-color-gray-500);--dh-color-editor-comment: var(--dh-color-gray-700);--dh-color-editor-delimiter: var(--dh-color-gray-700);--dh-color-editor-identifier-js: var(--dh-color-visual-yellow);--dh-color-editor-identifier-namespace: var(--dh-color-visual-red);--dh-color-editor-identifier: var(--dh-color-gray-900);--dh-color-editor-keyword: var(--dh-color-visual-cyan);--dh-color-editor-number: var(--dh-color-visual-purple);--dh-color-editor-operator: var(--dh-color-visual-red);--dh-color-editor-predefined: var(--dh-color-visual-green);--dh-color-editor-storage: var(--dh-color-visual-red);--dh-color-editor-string-delim: var(--dh-color-gray-700);--dh-color-editor-string: var(--dh-color-visual-yellow);--dh-color-editor-bracket-fg1: var(--dh-color-visual-yellow);--dh-color-editor-bracket-fg2: var(--dh-color-visual-purple);--dh-color-editor-bracket-fg3: var(--dh-color-visual-blue);--dh-color-editor-bracket-fg4: var(--dh-color-visual-yellow);--dh-color-editor-bracket-fg5: var(--dh-color-visual-purple);--dh-color-editor-bracket-fg6: var(--dh-color-visual-blue);--dh-color-editor-unexpected-bracket-fg: var(--dh-color-visual-negative);--dh-color-editor-focus-border: var(--dh-color-focus-border);--dh-color-editor-input-option-active-border: var(--dh-color-focus-ring);--dh-color-editor-input-bg: var(--dh-color-bg);--dh-color-editor-input-fg: var(--dh-color-text);--dh-color-editor-input-border: var(--dh-color-border);--dh-color-editor-context-menu-bg: var(--dh-color-gray-300);--dh-color-editor-context-menu-fg: var(--dh-color-text);--dh-color-editor-menu-selection-bg: var(--dh-color-highlight-hover);--dh-color-editor-menu-selection-fg: var(--dh-color-text);--dh-color-editor-log-date: var(--dh-color-gray-700);--dh-color-editor-log-error: var(--dh-color-visual-red);--dh-color-editor-log-info: var(--dh-color-visual-cyan);--dh-color-editor-log-stdout: var(--dh-color-gray-900);--dh-color-editor-log-warn: var(--dh-color-visual-yellow);--dh-color-editor-log-debug: var(--dh-color-visual-purple);--dh-color-editor-log-trace: var(--dh-color-visual-green);--dh-color-editor-find-bg: var(--dh-color-gray-200);--dh-color-editor-find-match-bg: var(--dh-color-highlight-selected);--dh-color-editor-find-match-highlight-bg: var( --dh-color-highlight-selected-hover );--dh-color-editor-find-option-active-bg: var(--dh-color-accent-700);--dh-color-editor-find-option-active-fg: var(--dh-color-gray-900);--dh-color-editor-suggest-bg: var(--dh-color-gray-200);--dh-color-editor-suggest-border: var(--dh-color-gray-400);--dh-color-editor-suggest-fg: var(--dh-color-text);--dh-color-editor-suggest-selected-bg: var(--dh-color-highlight-selected);--dh-color-editor-suggest-selected-fg: var(--dh-color-text);--dh-color-editor-suggest-highlight-fg: var(--dh-color-accent-700);--dh-color-editor-suggest-focus-highlight-fg: var(--dh-color-accent-700);--dh-color-editor-suggest-hover-bg: var(--dh-color-highlight-hover);--dh-color-editor-link-foreground: var(--dh-color-accent-1000);--dh-color-editor-link-active-fg: var(--dh-color-accent-1100)}/*# sourceMappingURL=theme-dark-semantic-editor.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../src/theme/theme-dark/theme-dark-semantic-editor.css"],"names":[],"mappings":"AAAA,MAEE,iDACA,+CACA,uDACA,2DACA,8DACA,+DAGA,oDACA,sDACA,+DACA,mEACA,uDACA,uDACA,wDACA,uDACA,2DACA,sDACA,yDACA,wDAGA,6DACA,yEACA,+CACA,iDACA,uDAGA,4DACA,4DACA,qEAGA,qDACA,wDACA,wDACA,uDACA,0DACA,2DACA,0DAGA,oDACA,oEACA,sFAGA,oEACA,kEAGA,uDACA,2DACA,oDACA,0EACA,6DACA,mEACA,yEACA,oEAGA,+DACA","file":"theme-dark-semantic-editor.css","sourcesContent":[":root {\n /* Editor */\n --dh-color-editor-bg: var(--dh-color-content-bg);\n --dh-color-editor-fg: var(--dh-color-gray-900);\n --dh-color-editor-error-fg: var(--dh-color-visual-red);\n --dh-color-editor-line-number-fg: var(--dh-color-gray-700);\n --dh-color-editor-line-highlight-bg: var(--dh-color-gray-200);\n --dh-color-editor-selection-bg: var(--dh-color-text-highlight);\n\n /* Code rules */\n --dh-color-editor-comment: var(--dh-color-gray-700);\n --dh-color-editor-delimiter: var(--dh-color-gray-700);\n --dh-color-editor-identifier-js: var(--dh-color-visual-yellow);\n --dh-color-editor-identifier-namespace: var(--dh-color-visual-red);\n --dh-color-editor-identifier: var(--dh-color-gray-900);\n --dh-color-editor-keyword: var(--dh-color-visual-cyan);\n --dh-color-editor-number: var(--dh-color-visual-purple);\n --dh-color-editor-operator: var(--dh-color-visual-red);\n --dh-color-editor-predefined: var(--dh-color-visual-green);\n --dh-color-editor-storage: var(--dh-color-visual-red);\n --dh-color-editor-string-delim: var(--dh-color-gray-700);\n --dh-color-editor-string: var(--dh-color-visual-yellow);\n\n /* Input */\n --dh-color-editor-focus-border: var(--dh-color-focus-border);\n --dh-color-editor-input-option-active-border: var(--dh-color-focus-ring);\n --dh-color-editor-input-bg: var(--dh-color-bg);\n --dh-color-editor-input-fg: var(--dh-color-text);\n --dh-color-editor-input-border: var(--dh-color-border);\n\n /* Menus */\n --dh-color-editor-context-menu-bg: var(--dh-color-gray-300);\n --dh-color-editor-context-menu-fg: var(--dh-color-gray-900);\n --dh-color-editor-menu-selection-bg: var(--dh-color-highlight-hover);\n\n /* Logging */\n --dh-color-editor-log-date: var(--dh-color-gray-700);\n --dh-color-editor-log-error: var(--dh-color-visual-red);\n --dh-color-editor-log-info: var(--dh-color-visual-cyan);\n --dh-color-editor-log-stdout: var(--dh-color-gray-900);\n --dh-color-editor-log-warn: var(--dh-color-visual-yellow);\n --dh-color-editor-log-debug: var(--dh-color-visual-purple);\n --dh-color-editor-log-trace: var(--dh-color-visual-green);\n\n /* Find */\n --dh-color-editor-find-bg: var(--dh-color-gray-200);\n --dh-color-editor-find-match-bg: var(--dh-color-highlight-selected);\n --dh-color-editor-find-match-highlight-bg: var(\n --dh-color-highlight-selected-hover\n );\n --dh-color-editor-find-option-active-bg: var(--dh-color-accent-700);\n --dh-color-editor-find-option-active-fg: var(--dh-color-gray-900);\n\n /* Suggest */\n --dh-color-editor-suggest-bg: var(--dh-color-gray-200);\n --dh-color-editor-suggest-border: var(--dh-color-gray-400);\n --dh-color-editor-suggest-fg: var(--dh-color-white);\n --dh-color-editor-suggest-selected-bg: var(--dh-color-highlight-selected);\n --dh-color-editor-suggest-selected-fg: var(--dh-color-white);\n --dh-color-editor-suggest-highlight-fg: var(--dh-color-accent-700);\n --dh-color-editor-suggest-focus-highlight-fg: var(--dh-color-accent-700);\n --dh-color-editor-suggest-hover-bg: var(--dh-color-highlight-hover);\n\n /* Links */\n --dh-color-editor-link-foreground: var(--dh-color-accent-1000);\n --dh-color-editor-link-active-fg: var(--dh-color-accent-1100);\n}\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../../../src/theme/theme-dark/theme-dark-semantic-editor.css"],"names":[],"mappings":"AAAA,MAEE,iDACA,+CACA,uDACA,2DACA,8DACA,+DACA,kEACA,mEACA,8DAGA,oDACA,sDACA,+DACA,mEACA,uDACA,uDACA,wDACA,uDACA,2DACA,sDACA,yDACA,wDAGA,6DACA,6DACA,2DACA,6DACA,6DACA,2DACA,yEAGA,6DACA,yEACA,+CACA,iDACA,uDAGA,4DACA,wDACA,qEACA,0DAGA,qDACA,wDACA,wDACA,uDACA,0DACA,2DACA,0DAGA,oDACA,oEACA,sFAGA,oEACA,kEAGA,uDACA,2DACA,mDACA,0EACA,4DACA,mEACA,yEACA,oEAGA,+DACA","file":"theme-dark-semantic-editor.css","sourcesContent":[":root {\n /* Editor */\n --dh-color-editor-bg: var(--dh-color-content-bg);\n --dh-color-editor-fg: var(--dh-color-gray-900);\n --dh-color-editor-error-fg: var(--dh-color-visual-red);\n --dh-color-editor-line-number-fg: var(--dh-color-gray-700);\n --dh-color-editor-line-highlight-bg: var(--dh-color-gray-200);\n --dh-color-editor-selection-bg: var(--dh-color-text-highlight);\n --dh-color-editor-inactive-selection-bg: var(--dh-color-gray-300);\n --dh-color-editor-selection-highlight-bg: var(--dh-color-gray-500);\n --dh-color-editor-word-highlight-bg: var(--dh-color-gray-500);\n\n /* Code rules */\n --dh-color-editor-comment: var(--dh-color-gray-700);\n --dh-color-editor-delimiter: var(--dh-color-gray-700);\n --dh-color-editor-identifier-js: var(--dh-color-visual-yellow);\n --dh-color-editor-identifier-namespace: var(--dh-color-visual-red);\n --dh-color-editor-identifier: var(--dh-color-gray-900);\n --dh-color-editor-keyword: var(--dh-color-visual-cyan);\n --dh-color-editor-number: var(--dh-color-visual-purple);\n --dh-color-editor-operator: var(--dh-color-visual-red);\n --dh-color-editor-predefined: var(--dh-color-visual-green);\n --dh-color-editor-storage: var(--dh-color-visual-red);\n --dh-color-editor-string-delim: var(--dh-color-gray-700);\n --dh-color-editor-string: var(--dh-color-visual-yellow);\n\n /* Brackets */\n --dh-color-editor-bracket-fg1: var(--dh-color-visual-yellow);\n --dh-color-editor-bracket-fg2: var(--dh-color-visual-purple);\n --dh-color-editor-bracket-fg3: var(--dh-color-visual-blue);\n --dh-color-editor-bracket-fg4: var(--dh-color-visual-yellow);\n --dh-color-editor-bracket-fg5: var(--dh-color-visual-purple);\n --dh-color-editor-bracket-fg6: var(--dh-color-visual-blue);\n --dh-color-editor-unexpected-bracket-fg: var(--dh-color-visual-negative);\n\n /* Input */\n --dh-color-editor-focus-border: var(--dh-color-focus-border);\n --dh-color-editor-input-option-active-border: var(--dh-color-focus-ring);\n --dh-color-editor-input-bg: var(--dh-color-bg);\n --dh-color-editor-input-fg: var(--dh-color-text);\n --dh-color-editor-input-border: var(--dh-color-border);\n\n /* Menus */\n --dh-color-editor-context-menu-bg: var(--dh-color-gray-300);\n --dh-color-editor-context-menu-fg: var(--dh-color-text);\n --dh-color-editor-menu-selection-bg: var(--dh-color-highlight-hover);\n --dh-color-editor-menu-selection-fg: var(--dh-color-text);\n\n /* Logging */\n --dh-color-editor-log-date: var(--dh-color-gray-700);\n --dh-color-editor-log-error: var(--dh-color-visual-red);\n --dh-color-editor-log-info: var(--dh-color-visual-cyan);\n --dh-color-editor-log-stdout: var(--dh-color-gray-900);\n --dh-color-editor-log-warn: var(--dh-color-visual-yellow);\n --dh-color-editor-log-debug: var(--dh-color-visual-purple);\n --dh-color-editor-log-trace: var(--dh-color-visual-green);\n\n /* Find */\n --dh-color-editor-find-bg: var(--dh-color-gray-200);\n --dh-color-editor-find-match-bg: var(--dh-color-highlight-selected);\n --dh-color-editor-find-match-highlight-bg: var(\n --dh-color-highlight-selected-hover\n );\n --dh-color-editor-find-option-active-bg: var(--dh-color-accent-700);\n --dh-color-editor-find-option-active-fg: var(--dh-color-gray-900);\n\n /* Suggest */\n --dh-color-editor-suggest-bg: var(--dh-color-gray-200);\n --dh-color-editor-suggest-border: var(--dh-color-gray-400);\n --dh-color-editor-suggest-fg: var(--dh-color-text);\n --dh-color-editor-suggest-selected-bg: var(--dh-color-highlight-selected);\n --dh-color-editor-suggest-selected-fg: var(--dh-color-text);\n --dh-color-editor-suggest-highlight-fg: var(--dh-color-accent-700);\n --dh-color-editor-suggest-focus-highlight-fg: var(--dh-color-accent-700);\n --dh-color-editor-suggest-hover-bg: var(--dh-color-highlight-hover);\n\n /* Links */\n --dh-color-editor-link-foreground: var(--dh-color-accent-1000);\n --dh-color-editor-link-active-fg: var(--dh-color-accent-1100);\n}\n"]}
@@ -1 +1 @@
1
- :root{--dh-color-grid-bg: var(--dh-color-bg);--dh-color-grid-header-bg: var(--dh-color-gray-100);--dh-color-grid-header-text: var(--dh-color-heading-text);--dh-color-grid-header-separator: var(--dh-color-gray-50);--dh-color-grid-header-separator-hover: var(--dh-color-gray-600);--dh-color-grid-header-separator-hidden-hover: var(--dh-color-accent-700);--dh-color-grid-header-sort-bar: var(--dh-color-visual-purple);--dh-color-grid-header-reverse-bar: var(--dh-color-visual-green);--dh-color-grid-header-bar-casing: var(--dh-color-gray-50);--dh-color-grid-row-0-bg: var(--dh-color-gray-300);--dh-color-grid-row-1-bg: var(--dh-color-gray-100);--dh-color-grid-row-hover-bg: var(--dh-color-gray-400);--dh-color-grid-row-hover-bg-selected: var( --dh-color-highlight-selected-hover );--dh-color-grid-selection: var(--dh-color-highlight-selected);--dh-color-grid-selection-outline: var(--dh-color-accent-900);--dh-color-grid-selection-outline-casing: var(--dh-color-gray-50);--dh-color-grid-scroll-bar-active-selection-tick: var(--dh-color-accent-400);--dh-color-grid-scroll-bar-bg: var(--dh-color-gray-100);--dh-color-grid-scroll-bar-hover-bg: var(--dh-color-gray-200);--dh-color-grid-scroll-bar-casing: var(--dh-color-gray-400);--dh-color-grid-scroll-bar-corner: var(--dh-color-gray-100);--dh-color-grid-scroll-bar: var(--dh-color-gray-500);--dh-color-grid-scroll-bar-hover: var(--dh-color-gray-600);--dh-color-grid-scroll-bar-active: var(--dh-color-gray-700);--dh-color-grid-text: var(--dh-color-text);--dh-color-grid-text-hyperlink: var(--dh-color-accent-1000);--dh-color-grid-text-pending: var(--dh-color-yellow-1300);--dh-color-grid-text-error: var(--dh-color-visual-negative);--dh-color-grid-date: var(--dh-color-visual-notice);--dh-color-grid-number-positive: var(--dh-color-visual-positive);--dh-color-grid-number-negative: var(--dh-color-visual-negative);--dh-color-grid-number-zero: var(--dh-color-visual-notice);--dh-color-grid-string-null: var(--dh-color-gray-600);--dh-color-grid-filter-bar-active-bg: hsla( var(--dh-color-accent-700-hsl), 0.5 );--dh-color-grid-filter-bar-active: var(--dh-color-accent-600);--dh-color-grid-filter-bar-expanded-bg: var(--dh-color-gray-200);--dh-color-grid-filter-bar-expanded-active-bg: hsla( var(--dh-color-accent-1000-hsl), 0.19 );--dh-color-grid-filter-bar-expanded-active-cell-bg: hsla( var(--dh-color-accent-700-hsl), 0.32 );--dh-color-grid-filter-bar-separator: var(--dh-color-gray-600);--dh-color-grid-filter-bar-error: var(--dh-color-visual-negative);--dh-color-grid-filter-icon: var(--dh-color-accent-600);--dh-color-grid-context-menu-sort-icon: var(--dh-color-visual-purple);--dh-color-grid-context-menu-reverse-icon: var(--dh-color-visual-green);--dh-color-grid-column-linker-hover-bg: var( --dh-color-highlight-selected-hover );--dh-color-grid-column-grouped-divider: var(--dh-color-gray-50);--dh-color-grid-tree-line: var(--dh-color-gray-500);--dh-color-grid-tree-marker: var(--dh-color-gray-700);--dh-color-grid-tree-marker-hover: var(--dh-color-gray-900);--dh-color-grid-floating-row: var(--dh-color-gray-300);--dh-color-grid-floating-row-bg: var(--dh-color-gray-200);--dh-color-grid-floating-divider-inner: var(--dh-color-gray-200);--dh-color-grid-floating-divider-outer: var(--dh-color-gray-50);--dh-color-grid-overflow-button: var(--dh-color-gray-700);--dh-color-grid-overflow-button-hover: var(--dh-color-gray-900);--dh-color-grid-data-bar-positive: var(--dh-color-visual-positive);--dh-color-grid-data-bar-negative: var(--dh-color-visual-negative);--dh-color-grid-data-bar-marker: var(--dh-color-white);--dh-color-grid-data-bar-zero-line: var(--dh-color-gray-300);--dh-color-grid-scrim: var(--dh-color-gray-50)}/*# sourceMappingURL=theme-dark-semantic-grid.css.map */
1
+ :root{--dh-color-grid-bg: var(--dh-color-gray-75);--dh-color-grid-header-bg: var(--dh-color-gray-100);--dh-color-grid-header-text: var(--dh-color-heading-text);--dh-color-grid-header-separator: var(--dh-color-gray-50);--dh-color-grid-header-separator-hover: var(--dh-color-gray-600);--dh-color-grid-header-separator-hidden-hover: var(--dh-color-accent-700);--dh-color-grid-header-sort-bar: var(--dh-color-visual-purple);--dh-color-grid-header-reverse-bar: var(--dh-color-visual-green);--dh-color-grid-header-bar-casing: var(--dh-color-gray-50);--dh-color-grid-row-0-bg: var(--dh-color-gray-300);--dh-color-grid-row-1-bg: var(--dh-color-gray-100);--dh-color-grid-row-hover-bg: var(--dh-color-highlight-hover);--dh-color-grid-row-hover-bg-selected: var( --dh-color-highlight-selected-hover );--dh-color-grid-row-shadow-alpha: 0.15;--dh-color-grid-selection: var(--dh-color-highlight-selected);--dh-color-grid-selection-outline: var(--dh-color-accent-900);--dh-color-grid-selection-outline-casing: var(--dh-color-gray-50);--dh-color-grid-scroll-bar-active-selection-tick: var(--dh-color-accent-400);--dh-color-grid-scroll-bar-bg: var(--dh-color-gray-100);--dh-color-grid-scroll-bar-hover-bg: var(--dh-color-gray-200);--dh-color-grid-scroll-bar-casing: var(--dh-color-gray-400);--dh-color-grid-scroll-bar-corner: var(--dh-color-gray-100);--dh-color-grid-scroll-bar: var(--dh-color-gray-500);--dh-color-grid-scroll-bar-hover: var(--dh-color-gray-600);--dh-color-grid-scroll-bar-active: var(--dh-color-gray-700);--dh-color-grid-text: var(--dh-color-text);--dh-color-grid-text-hyperlink: var(--dh-color-accent-1000);--dh-color-grid-text-pending: var(--dh-color-yellow-1300);--dh-color-grid-text-error: var(--dh-color-visual-negative);--dh-color-grid-date: var(--dh-color-visual-notice);--dh-color-grid-number-positive: var(--dh-color-visual-positive);--dh-color-grid-number-negative: var(--dh-color-visual-negative);--dh-color-grid-number-zero: var(--dh-color-visual-notice);--dh-color-grid-string-null: var(--dh-color-gray-600);--dh-color-grid-filter-bar-active-bg: hsla( var(--dh-color-accent-700-hsl), 0.5 );--dh-color-grid-filter-bar-active: var(--dh-color-accent-600);--dh-color-grid-filter-bar-expanded-bg: var(--dh-color-gray-200);--dh-color-grid-filter-bar-expanded-active-bg: hsla( var(--dh-color-accent-1000-hsl), 0.19 );--dh-color-grid-filter-bar-expanded-active-cell-bg: hsla( var(--dh-color-accent-700-hsl), 0.32 );--dh-color-grid-filter-bar-separator: var(--dh-color-gray-600);--dh-color-grid-filter-bar-error: var(--dh-color-visual-negative);--dh-color-grid-filter-icon: var(--dh-color-accent-600);--dh-color-grid-context-menu-sort-icon: var(--dh-color-visual-purple);--dh-color-grid-context-menu-reverse-icon: var(--dh-color-visual-green);--dh-color-grid-column-linker-hover-bg: var( --dh-color-highlight-selected-hover );--dh-color-grid-column-grouped-divider: var(--dh-color-gray-50);--dh-color-grid-tree-line: var(--dh-color-gray-500);--dh-color-grid-tree-marker: var(--dh-color-gray-700);--dh-color-grid-tree-marker-hover: var(--dh-color-gray-900);--dh-color-grid-floating-row: var(--dh-color-gray-300);--dh-color-grid-floating-row-bg: var(--dh-color-gray-200);--dh-color-grid-floating-divider-inner: var(--dh-color-gray-200);--dh-color-grid-floating-divider-outer: var(--dh-color-gray-50);--dh-color-grid-overflow-button: var(--dh-color-gray-700);--dh-color-grid-overflow-button-hover: var(--dh-color-gray-900);--dh-color-grid-data-bar-positive: var(--dh-color-visual-positive);--dh-color-grid-data-bar-negative: var(--dh-color-visual-negative);--dh-color-grid-data-bar-marker: var(--dh-color-white);--dh-color-grid-data-bar-zero-line: var(--dh-color-gray-300);--dh-color-grid-scrim: var(--dh-color-gray-50)}/*# sourceMappingURL=theme-dark-semantic-grid.css.map */