@deephaven/components 1.8.1-beta.1 → 1.8.1-beta.11
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.
- package/dist/navigation/DashboardList.css +6 -10
- package/dist/navigation/DashboardList.css.map +1 -1
- package/dist/navigation/NavTabList.css +2 -0
- package/dist/navigation/NavTabList.css.map +1 -1
- package/dist/navigation/NavTabList.js +2 -2
- package/dist/navigation/NavTabList.js.map +1 -1
- package/dist/popper/Popper.css +5 -0
- package/dist/popper/Popper.css.map +1 -1
- package/dist/popper/Popper.d.ts +4 -0
- package/dist/popper/Popper.d.ts.map +1 -1
- package/dist/popper/Popper.js +58 -12
- package/dist/popper/Popper.js.map +1 -1
- package/dist/theme/theme-dark/theme-dark-components.css +1 -1
- package/dist/theme/theme-dark/theme-dark-components.css.map +1 -1
- package/dist/theme/theme-light/theme-light-components.css +1 -1
- package/dist/theme/theme-light/theme-light-components.css.map +1 -1
- package/package.json +8 -8
|
@@ -2,17 +2,20 @@
|
|
|
2
2
|
/* stylelint-disable-next-line number-max-precision */
|
|
3
3
|
.dashboard-list-container {
|
|
4
4
|
height: 25.6rem;
|
|
5
|
-
padding: 0 0.5rem;
|
|
6
5
|
text-align: left;
|
|
7
6
|
width: 23rem;
|
|
8
7
|
}
|
|
9
8
|
.dashboard-list-container:focus {
|
|
10
9
|
outline: none;
|
|
11
10
|
}
|
|
11
|
+
.dashboard-list-container .dashboard-list-header {
|
|
12
|
+
padding: 0.5rem 0.5rem 1rem 0.5rem;
|
|
13
|
+
}
|
|
12
14
|
.dashboard-list-container .dashboard-list {
|
|
13
|
-
|
|
15
|
+
display: grid;
|
|
16
|
+
align-content: start;
|
|
14
17
|
padding: 0;
|
|
15
|
-
|
|
18
|
+
margin: 0;
|
|
16
19
|
overflow: auto;
|
|
17
20
|
}
|
|
18
21
|
.dashboard-list-container .dashboard-list li {
|
|
@@ -41,12 +44,5 @@
|
|
|
41
44
|
.dashboard-list-container .dashboard-list .dashboard-list-message {
|
|
42
45
|
padding: 0 0.5rem;
|
|
43
46
|
}
|
|
44
|
-
.dashboard-list-container .dashboard-list-header {
|
|
45
|
-
padding-top: 0.5rem;
|
|
46
|
-
padding-bottom: 0.5rem;
|
|
47
|
-
}
|
|
48
|
-
.dashboard-list-container .dashboard-list-header .btn .fa-md {
|
|
49
|
-
margin-right: 0.5rem;
|
|
50
|
-
}
|
|
51
47
|
|
|
52
48
|
/*# sourceMappingURL=DashboardList.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../../node_modules/@deephaven/components/scss/custom.scss","../../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss","../../src/navigation/DashboardList.scss","../../../../node_modules/@deephaven/components/scss/new_variables.scss"],"names":[],"mappings":"AAAA;AC6LA;ACpLA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ODrBK;;ACsBL;EAGE,ODJK;ECKL,kBAtCgC;EAuChC;;AAGJ;EACE,cC1CK;;AD4CP;EACE;;AAIJ;EACE,aClDO;EDmDP,gBCnDO;;ADqDP;EACE,cCtDK","file":"DashboardList.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 './util.scss';\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// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\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, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\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$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-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: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\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 as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\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: var(--dh-color-item-list-hover-bg);\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-text-disabled);\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","@import '@deephaven/components/scss/custom.scss';\n\n$dashboard-list-color: $gray-200;\n$dashboard-list-hover-color: $foreground;\n$dashboard-list-background-hover-color: var(--dh-color-highlight-hover);\n\n$dashboard-list-owner-color: $gray-400;\n$dashboard-list-owner-hover-color: $gray-200;\n\n.dashboard-list-container {\n height: 25.6rem;\n padding: 0 0.5rem;\n text-align: left;\n width: 23rem;\n\n &:focus {\n outline: none;\n }\n\n .dashboard-list {\n margin: 0.5rem -0.5rem 0;\n padding: 0;\n text-align: left;\n overflow: auto;\n li {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n .btn {\n border: none;\n border-radius: 0;\n display: block;\n text-align: left;\n margin: 0;\n padding: 0.35rem 0.5rem;\n width: 100%;\n color: $dashboard-list-color;\n &:hover,\n &:focus,\n &.focused {\n color: $dashboard-list-hover-color;\n background-color: $dashboard-list-background-hover-color;\n text-decoration: none;\n }\n }\n .dashboard-list-item-icon {\n margin-right: $spacer-2;\n }\n .dashboard-list-message {\n padding: 0 $spacer-2;\n }\n }\n\n .dashboard-list-header {\n padding-top: $spacer-2;\n padding-bottom: $spacer-2;\n\n .btn .fa-md {\n margin-right: $spacer-2;\n }\n }\n}\n","@use 'sass:math';\n\n//Set of spacer variables from the spacer map\n$spacer-0: map-get($spacers, 0); //0\n$spacer-1: map-get($spacers, 1);\n$spacer-2: map-get($spacers, 2);\n$spacer-3: map-get($spacers, 3);\n$spacer-4: map-get($spacers, 4);\n$spacer-5: map-get($spacers, 5);\n\n//Marching Ants for golden layout dropzone and drag and drop\n//top bottom, left right.\n//create 4 background images that are 50% color 1, 50% color 2 using graidents, two veritical, two horizontal\n//size them to ant-size and thickness\n//position those images along the egdes and make top/bottom repeat-x and left/right repeat-y\n//then offest each of those background positions by ant-size in animation to make them march.\n$ant-size: 8px;\n$ant-thickness: 1px;\n\n@mixin ants-base($color-1: black, $color-2: white) {\n background-image: linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%);\n background-size:\n $ant-size $ant-thickness,\n $ant-size $ant-thickness,\n $ant-thickness $ant-size,\n $ant-thickness $ant-size;\n background-position:\n 0 top,\n 0 bottom,\n left 0,\n right 0;\n background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;\n animation: march 0.5s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n\n@mixin drag-stack($pseudo-element) {\n &::#{$pseudo-element} {\n content: ' ';\n background: $primary;\n box-shadow: $box-shadow;\n border-radius: $border-radius;\n position: absolute;\n height: 100%;\n width: 100%;\n @content;\n }\n}\n\n$focus-bg-transparency: 12%;\n$hover-bg-transparency: 14%;\n$active-bg-transparency: 28%;\n$exception-transparency: 28%;\n"]}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../../node_modules/@deephaven/components/scss/custom.scss","../../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss","../../src/navigation/DashboardList.scss","../../../../node_modules/@deephaven/components/scss/new_variables.scss"],"names":[],"mappings":"AAAA;AC6LA;ACvLA;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ODvBK;;ACwBL;EAGE,ODNK;ECOL,kBAxCgC;EAyChC;;AAGJ;EACE,cC5CK;;AD8CP;EACE","file":"DashboardList.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 './util.scss';\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// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\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, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\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$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-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: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\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 as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\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: var(--dh-color-item-list-hover-bg);\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-text-disabled);\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","@import '@deephaven/components/scss/custom.scss';\n\n$dashboard-list-color: $gray-200;\n$dashboard-list-hover-color: $foreground;\n$dashboard-list-background-hover-color: var(--dh-color-highlight-hover);\n\n.dashboard-list-container {\n height: 25.6rem;\n text-align: left;\n width: 23rem;\n\n &:focus {\n outline: none;\n }\n\n .dashboard-list-header {\n padding: $spacer-2 $spacer-2 $spacer $spacer-2;\n }\n\n .dashboard-list {\n display: grid;\n align-content: start;\n padding: 0;\n margin: 0;\n overflow: auto;\n\n li {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n .btn {\n border: none;\n border-radius: 0;\n display: block;\n text-align: left;\n margin: 0;\n padding: 0.35rem 0.5rem;\n width: 100%;\n color: $dashboard-list-color;\n &:hover,\n &:focus,\n &.focused {\n color: $dashboard-list-hover-color;\n background-color: $dashboard-list-background-hover-color;\n text-decoration: none;\n }\n }\n .dashboard-list-item-icon {\n margin-right: $spacer-2;\n }\n .dashboard-list-message {\n padding: 0 $spacer-2;\n }\n }\n}\n","@use 'sass:math';\n\n//Set of spacer variables from the spacer map\n$spacer-0: map-get($spacers, 0); //0\n$spacer-1: map-get($spacers, 1);\n$spacer-2: map-get($spacers, 2);\n$spacer-3: map-get($spacers, 3);\n$spacer-4: map-get($spacers, 4);\n$spacer-5: map-get($spacers, 5);\n\n//Marching Ants for golden layout dropzone and drag and drop\n//top bottom, left right.\n//create 4 background images that are 50% color 1, 50% color 2 using graidents, two veritical, two horizontal\n//size them to ant-size and thickness\n//position those images along the egdes and make top/bottom repeat-x and left/right repeat-y\n//then offest each of those background positions by ant-size in animation to make them march.\n$ant-size: 8px;\n$ant-thickness: 1px;\n\n@mixin ants-base($color-1: black, $color-2: white) {\n background-image: linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%);\n background-size:\n $ant-size $ant-thickness,\n $ant-size $ant-thickness,\n $ant-thickness $ant-size,\n $ant-thickness $ant-size;\n background-position:\n 0 top,\n 0 bottom,\n left 0,\n right 0;\n background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;\n animation: march 0.5s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n\n@mixin drag-stack($pseudo-element) {\n &::#{$pseudo-element} {\n content: ' ';\n background: $primary;\n box-shadow: $box-shadow;\n border-radius: $border-radius;\n position: absolute;\n height: 100%;\n width: 100%;\n @content;\n }\n}\n\n$focus-bg-transparency: 12%;\n$hover-bg-transparency: 14%;\n$active-bg-transparency: 28%;\n$exception-transparency: 28%;\n"]}
|
|
@@ -119,9 +119,11 @@
|
|
|
119
119
|
z-index: 2;
|
|
120
120
|
}
|
|
121
121
|
.nav-container .tab-controls-btn-left {
|
|
122
|
+
background-image: linear-gradient(270deg, transparent 0%, var(--dh-color-bg, #1a171a) 25%);
|
|
122
123
|
margin-right: -8px;
|
|
123
124
|
}
|
|
124
125
|
.nav-container .tab-controls-btn-right {
|
|
126
|
+
background-image: linear-gradient(90deg, transparent 0%, var(--dh-color-bg, #1a171a) 25%);
|
|
125
127
|
margin-left: -8px;
|
|
126
128
|
}
|
|
127
129
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../scss/custom.scss","../../scss/bootstrap_overrides.scss","../../src/navigation/NavTabList.scss","../../scss/new_variables.scss"],"names":[],"mappings":"AAAA;AC6LA;ACxKA;EACE;EACA;;AAEA;EACE;EACA,QAzBS;EA0BT,WAxBY;EAyBZ;EACA;EACA;;AAEA;ECbF;EAIA,iBACE;EAIF,qBACE;EAIF;EACA;EACA;EACA;;ADAE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA,aAtDQ;EAuDR;EACA;EACA;EACA;EACA;;AAEA;EACE,ODlDC;;ACqDH;EACE;EACA,ODvDC;;AC2DL;EAEE;EACA;EACA;EACA,MA1EgB;EA2EhB,OA3EgB;EA4EhB,QA3EqB;EA4ErB;;AAIF;EACE;EACA;;AAIF;EACE,YAlF0B;EAmF1B;;AAGF;EAEE;EACA;;AACA;EACE;;AAIJ;EAEE;;AAEA;EACE;;AAGF;EACE,YDlGC;ECmGD;;AAIJ;EACE,OD1GG;;AC4GH;EACE;;AAGF;EACE;;AAEF;EACE;;AAIJ;EACE,ODzHG;EC0HH;;AAEA;EACE;;AAGF;EAEE;;AAMR;EACE,eDEY;ECDZ;EACA;EACA;EACA;;AAGF;EACE,cA9IqB;;AAiJvB;EACE,aAlJqB","file":"NavTabList.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 './util.scss';\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// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\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, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\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$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-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: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\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 as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\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: var(--dh-color-item-list-hover-bg);\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-text-disabled);\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","@import '../../scss/custom.scss';\n\n$tab-height: 32px;\n$tab-drag-border-width: 1px;\n$tab-font-size: 1rem;\n\n$tab-link-side-padding: 24px;\n$tab-link-underline-spacing: 6px;\n\n$tab-link-hover-underline-color: $gray-400;\n\n$tab-link-active-color: $gray-200;\n$tab-link-active-underline-color: var(--dh-color-accent-bg);\n\n$tab-link-active-hover-underline-color: var(--dh-color-accent-bg);\n\n$tab-button-hover-color: $gray-200;\n$tab-button-separator-color: $gray-600;\n\n$tab-control-btn-offset: -8px;\n\n.nav-container {\n display: flex;\n flex-shrink: 0;\n\n .nav-tabs {\n border: none;\n height: $tab-height;\n font-size: $tab-font-size;\n flex-wrap: nowrap;\n overflow-x: hidden;\n position: relative;\n\n &.dragging {\n @include ants-base($gray-300, $background);\n }\n\n .btn-nav-tab {\n line-height: $tab-height - $tab-drag-border-width * 2; // subtract top and bottom borders, and focus border\n width: auto;\n max-width: max(200px, 40vw);\n overflow: hidden;\n padding: 0 $tab-link-side-padding;\n position: relative;\n user-select: none;\n flex-shrink: 0;\n background: none;\n background-clip: padding-box;\n\n .btn-nav-tab-title {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .btn-nav-tab-close {\n position: absolute;\n height: 20px;\n line-height: $tab-font-size;\n right: 0.25rem;\n bottom: 6px;\n padding: 2px 1px;\n opacity: 0;\n transition: opacity $transition ease-out;\n\n &:hover {\n color: $tab-button-hover-color;\n }\n\n &:focus {\n opacity: 1;\n color: $tab-button-hover-color;\n }\n }\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n height: 1px;\n left: $tab-link-side-padding;\n right: $tab-link-side-padding;\n bottom: $tab-link-underline-spacing;\n transition: all $transition-mid ease-out;\n }\n\n //hover line is drawn as a before element\n &::before {\n background: transparent;\n transform: translateY($tab-link-underline-spacing);\n }\n\n //active is drawn animated overtop as after element\n &::after {\n background: $tab-link-active-underline-color;\n transform: scaleX(0);\n }\n\n &:focus {\n // these seem like something that shouldn't have a regular focus state\n box-shadow: none;\n border-color: transparent;\n &::before {\n box-shadow: 0 1px 0 1px $input-btn-focus-color;\n }\n }\n\n &:hover,\n &:focus {\n text-decoration: none;\n\n .btn-nav-tab-close {\n opacity: 1;\n }\n\n &::before {\n background: $tab-link-hover-underline-color;\n transform: translateY(0);\n }\n }\n\n &.active {\n color: $tab-link-active-color;\n\n .btn-nav-tab-close {\n opacity: 1;\n }\n\n &::after {\n transform: scaleX(1);\n }\n &::before {\n transform: translateY(0);\n }\n }\n\n &.dragging {\n color: $tab-link-active-color;\n background-color: var(--dh-color-accent-down-bg);\n\n .btn-nav-tab-close {\n opacity: 0;\n }\n\n &::before,\n &::after {\n display: none;\n }\n }\n }\n }\n\n .tab-controls-btn {\n border-radius: $border-radius;\n width: 25px;\n padding: 0;\n flex-shrink: 0;\n z-index: 2;\n }\n\n .tab-controls-btn-left {\n margin-right: $tab-control-btn-offset;\n }\n\n .tab-controls-btn-right {\n margin-left: $tab-control-btn-offset;\n }\n}\n","@use 'sass:math';\n\n//Set of spacer variables from the spacer map\n$spacer-0: map-get($spacers, 0); //0\n$spacer-1: map-get($spacers, 1);\n$spacer-2: map-get($spacers, 2);\n$spacer-3: map-get($spacers, 3);\n$spacer-4: map-get($spacers, 4);\n$spacer-5: map-get($spacers, 5);\n\n//Marching Ants for golden layout dropzone and drag and drop\n//top bottom, left right.\n//create 4 background images that are 50% color 1, 50% color 2 using graidents, two veritical, two horizontal\n//size them to ant-size and thickness\n//position those images along the egdes and make top/bottom repeat-x and left/right repeat-y\n//then offest each of those background positions by ant-size in animation to make them march.\n$ant-size: 8px;\n$ant-thickness: 1px;\n\n@mixin ants-base($color-1: black, $color-2: white) {\n background-image: linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%);\n background-size:\n $ant-size $ant-thickness,\n $ant-size $ant-thickness,\n $ant-thickness $ant-size,\n $ant-thickness $ant-size;\n background-position:\n 0 top,\n 0 bottom,\n left 0,\n right 0;\n background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;\n animation: march 0.5s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n\n@mixin drag-stack($pseudo-element) {\n &::#{$pseudo-element} {\n content: ' ';\n background: $primary;\n box-shadow: $box-shadow;\n border-radius: $border-radius;\n position: absolute;\n height: 100%;\n width: 100%;\n @content;\n }\n}\n\n$focus-bg-transparency: 12%;\n$hover-bg-transparency: 14%;\n$active-bg-transparency: 28%;\n$exception-transparency: 28%;\n"]}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../scss/custom.scss","../../scss/bootstrap_overrides.scss","../../src/navigation/NavTabList.scss","../../scss/new_variables.scss"],"names":[],"mappings":"AAAA;AC6LA;ACxKA;EACE;EACA;;AAEA;EACE;EACA,QAzBS;EA0BT,WAxBY;EAyBZ;EACA;EACA;;AAEA;ECbF;EAIA,iBACE;EAIF,qBACE;EAIF;EACA;EACA;EACA;;ADAE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA,aAtDQ;EAuDR;EACA;EACA;EACA;EACA;;AAEA;EACE,ODlDC;;ACqDH;EACE;EACA,ODvDC;;AC2DL;EAEE;EACA;EACA;EACA,MA1EgB;EA2EhB,OA3EgB;EA4EhB,QA3EqB;EA4ErB;;AAIF;EACE;EACA;;AAIF;EACE,YAlF0B;EAmF1B;;AAGF;EAEE;EACA;;AACA;EACE;;AAIJ;EAEE;;AAEA;EACE;;AAGF;EACE,YDlGC;ECmGD;;AAIJ;EACE,OD1GG;;AC4GH;EACE;;AAGF;EACE;;AAEF;EACE;;AAIJ;EACE,ODzHG;EC0HH;;AAEA;EACE;;AAGF;EAEE;;AAMR;EACE,eDEY;ECDZ;EACA;EACA;EACA;;AAGF;EACE;EACA,cA/IqB;;AAkJvB;EACE;EACA,aApJqB","file":"NavTabList.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 './util.scss';\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// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\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, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\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$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-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: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\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 as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\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: var(--dh-color-item-list-hover-bg);\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-text-disabled);\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","@import '../../scss/custom.scss';\n\n$tab-height: 32px;\n$tab-drag-border-width: 1px;\n$tab-font-size: 1rem;\n\n$tab-link-side-padding: 24px;\n$tab-link-underline-spacing: 6px;\n\n$tab-link-hover-underline-color: $gray-400;\n\n$tab-link-active-color: $gray-200;\n$tab-link-active-underline-color: var(--dh-color-accent-bg);\n\n$tab-link-active-hover-underline-color: var(--dh-color-accent-bg);\n\n$tab-button-hover-color: $gray-200;\n$tab-button-separator-color: $gray-600;\n\n$tab-control-btn-offset: -8px;\n\n.nav-container {\n display: flex;\n flex-shrink: 0;\n\n .nav-tabs {\n border: none;\n height: $tab-height;\n font-size: $tab-font-size;\n flex-wrap: nowrap;\n overflow-x: hidden;\n position: relative;\n\n &.dragging {\n @include ants-base($gray-300, $background);\n }\n\n .btn-nav-tab {\n line-height: $tab-height - $tab-drag-border-width * 2; // subtract top and bottom borders, and focus border\n width: auto;\n max-width: max(200px, 40vw);\n overflow: hidden;\n padding: 0 $tab-link-side-padding;\n position: relative;\n user-select: none;\n flex-shrink: 0;\n background: none;\n background-clip: padding-box;\n\n .btn-nav-tab-title {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .btn-nav-tab-close {\n position: absolute;\n height: 20px;\n line-height: $tab-font-size;\n right: 0.25rem;\n bottom: 6px;\n padding: 2px 1px;\n opacity: 0;\n transition: opacity $transition ease-out;\n\n &:hover {\n color: $tab-button-hover-color;\n }\n\n &:focus {\n opacity: 1;\n color: $tab-button-hover-color;\n }\n }\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n height: 1px;\n left: $tab-link-side-padding;\n right: $tab-link-side-padding;\n bottom: $tab-link-underline-spacing;\n transition: all $transition-mid ease-out;\n }\n\n //hover line is drawn as a before element\n &::before {\n background: transparent;\n transform: translateY($tab-link-underline-spacing);\n }\n\n //active is drawn animated overtop as after element\n &::after {\n background: $tab-link-active-underline-color;\n transform: scaleX(0);\n }\n\n &:focus {\n // these seem like something that shouldn't have a regular focus state\n box-shadow: none;\n border-color: transparent;\n &::before {\n box-shadow: 0 1px 0 1px $input-btn-focus-color;\n }\n }\n\n &:hover,\n &:focus {\n text-decoration: none;\n\n .btn-nav-tab-close {\n opacity: 1;\n }\n\n &::before {\n background: $tab-link-hover-underline-color;\n transform: translateY(0);\n }\n }\n\n &.active {\n color: $tab-link-active-color;\n\n .btn-nav-tab-close {\n opacity: 1;\n }\n\n &::after {\n transform: scaleX(1);\n }\n &::before {\n transform: translateY(0);\n }\n }\n\n &.dragging {\n color: $tab-link-active-color;\n background-color: var(--dh-color-accent-down-bg);\n\n .btn-nav-tab-close {\n opacity: 0;\n }\n\n &::before,\n &::after {\n display: none;\n }\n }\n }\n }\n\n .tab-controls-btn {\n border-radius: $border-radius;\n width: 25px;\n padding: 0;\n flex-shrink: 0;\n z-index: 2;\n }\n\n .tab-controls-btn-left {\n background-image: linear-gradient(270deg, transparent 0%, $background 25%);\n margin-right: $tab-control-btn-offset;\n }\n\n .tab-controls-btn-right {\n background-image: linear-gradient(90deg, transparent 0%, $background 25%);\n margin-left: $tab-control-btn-offset;\n }\n}\n","@use 'sass:math';\n\n//Set of spacer variables from the spacer map\n$spacer-0: map-get($spacers, 0); //0\n$spacer-1: map-get($spacers, 1);\n$spacer-2: map-get($spacers, 2);\n$spacer-3: map-get($spacers, 3);\n$spacer-4: map-get($spacers, 4);\n$spacer-5: map-get($spacers, 5);\n\n//Marching Ants for golden layout dropzone and drag and drop\n//top bottom, left right.\n//create 4 background images that are 50% color 1, 50% color 2 using graidents, two veritical, two horizontal\n//size them to ant-size and thickness\n//position those images along the egdes and make top/bottom repeat-x and left/right repeat-y\n//then offest each of those background positions by ant-size in animation to make them march.\n$ant-size: 8px;\n$ant-thickness: 1px;\n\n@mixin ants-base($color-1: black, $color-2: white) {\n background-image: linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%);\n background-size:\n $ant-size $ant-thickness,\n $ant-size $ant-thickness,\n $ant-thickness $ant-size,\n $ant-thickness $ant-size;\n background-position:\n 0 top,\n 0 bottom,\n left 0,\n right 0;\n background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;\n animation: march 0.5s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n\n@mixin drag-stack($pseudo-element) {\n &::#{$pseudo-element} {\n content: ' ';\n background: $primary;\n box-shadow: $box-shadow;\n border-radius: $border-radius;\n position: absolute;\n height: 100%;\n width: 100%;\n @content;\n }\n}\n\n$focus-bg-transparency: 12%;\n$hover-bg-transparency: 14%;\n$active-bg-transparency: 28%;\n$exception-transparency: 28%;\n"]}
|
|
@@ -162,8 +162,8 @@ function NavTabList(_ref) {
|
|
|
162
162
|
} = containerRef.current;
|
|
163
163
|
for (var i = 0; i < children.length; i += 1) {
|
|
164
164
|
var child = children[i];
|
|
165
|
-
//
|
|
166
|
-
if (child.offsetLeft + 5 > containerRef.current.scrollLeft + containerRef.current.offsetWidth) {
|
|
165
|
+
// Subtract 5px from right edge to account for rounding of offset values
|
|
166
|
+
if (child.offsetLeft + child.offsetWidth - 5 > containerRef.current.scrollLeft + containerRef.current.offsetWidth) {
|
|
167
167
|
child.scrollIntoView({
|
|
168
168
|
behavior: 'smooth',
|
|
169
169
|
block: 'nearest',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavTabList.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","classNames","clamp","DragDropContext","Droppable","FontAwesomeIcon","vsChevronRight","vsChevronLeft","vsChevronDown","useResizeObserver","DragUtils","Button","NavTab","ContextActions","Popper","DashboardList","GLOBAL_SHORTCUTS","jsx","_jsx","jsxs","_jsxs","CLICK_TIMEOUT","START_SPEED","ACCELERATION","isScrolledLeft","element","scrollLeft","isScrolledRight","Math","abs","clientWidth","scrollWidth","makeBaseContextActions","tab","tabs","onClose","isClosable","key","contextActions","push","title","order","group","action","disabled","i","length","forEach","t","NavTabList","_ref","activeKey","onSelect","onReorder","makeContextActions","containerRef","isOverflowing","setIsOverflowing","isDashboardTabMenuShown","setIsDashboardTabMenuShown","disableScrollLeft","setDisableScrollLeft","disableScrollRight","setDisableScrollRight","handleResize","current","onDragEnd","result","stopDragging","destination","source","index","handleScroll","shouldDisableScrollLeft","shouldDisableScrollRight","continuousScrollRef","cancelClick","handleLeftClick","children","child","offsetLeft","scrollIntoView","behavior","block","inline","handleRightClick","offsetWidth","handleMouseRepeat","direction","startX","deltaX","arguments","undefined","prevTimestamp","container","rAF","requestAnimationFrame","timestamp","startTime","deltaTime","newDeltaX","min","endContinuousScroll","holdTimer","clearTimeout","cancelAnimationFrame","window","removeEventListener","handleMouseDown","setTimeout","addEventListener","handleMouseDownLeft","handleMouseDownRight","handleWheel","_containerRef$current","onWheel","e","stopPropagation","preventDefault","nav","currentTarget","delta","deltaY","_containerRef$current2","tabContextActionMap","tabContextActions","Map","_makeContextActions","set","activeTabRef","activeTab","find","navTabs","map","isActive","activeRef","isDraggable","get","scrollActiveTabIntoView","handleDashboardMenuClick","handleDashboardMenuSelect","handleDashboardMenuClose","className","kind","icon","transform","tooltip","onClick","onMouseDown","onDragStart","startDragging","droppableId","provided","snapshot","_objectSpread","ref","r","innerRef","droppableProps","dragging","draggingFromThisWith","role","onScroll","placeholder","style","visibility","marginLeft","isShown","onExited","options","placement","closeOnBlur","interactive","actions","shortcut","OPEN_DASHBOARD_LIST","isGlobal"],"sources":["../../src/navigation/NavTabList.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport clamp from 'lodash.clamp';\nimport {\n DragDropContext,\n Droppable,\n type OnDragEndResponder,\n} from '@hello-pangea/dnd';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { type IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport { vsChevronRight, vsChevronLeft, vsChevronDown } from '@deephaven/icons';\nimport { useResizeObserver } from '@deephaven/react-hooks';\nimport DragUtils from '../DragUtils';\nimport Button from '../Button';\nimport NavTab from './NavTab';\nimport './NavTabList.scss';\nimport {\n type ContextAction,\n type ResolvableContextAction,\n ContextActions,\n} from '../context-actions';\nimport Popper from '../popper/Popper';\nimport DashboardList from './DashboardList';\nimport { GLOBAL_SHORTCUTS } from '../shortcuts';\n\n// mouse hold timeout to act as hold instead of click\nconst CLICK_TIMEOUT = 500;\n\n// mouse hold acceleration\nconst START_SPEED = 0.01;\nconst ACCELERATION = 0.0005;\n\nexport interface NavTabItem {\n /**\n * Unique key for the tab.\n */\n key: string;\n\n /**\n * Title to display on the tab.\n */\n title: string;\n\n /**\n * Icon to display on the tab.\n */\n icon?: IconDefinition | JSX.Element;\n\n /**\n * Whether the tab is closable.\n * If omitted, the tab will be closeable if onClose exists.\n */\n isClosable?: boolean;\n}\n\ntype NavTabListProps<T extends NavTabItem = NavTabItem> = {\n /**\n * The key of the active tab.\n * If this does not match a tab key, no tab will be active.\n */\n activeKey: string;\n\n /**\n * Array of tabs to display.\n * @see {@link NavTabItem} for the minimum required properties.\n */\n tabs: T[];\n\n /**\n * Function called when a tab is selected.\n *\n * @param key The key of the tab to select\n */\n onSelect: (key: string) => void;\n\n /**\n * Function called when a tab is closed.\n * If the function is provided, all tabs will be closeable by default.\n * Tabs may set their own closeable property to override this behavior.\n *\n * @param key The key of the tab to close\n */\n onClose?: (key: string) => void;\n\n /**\n * Function called when a tab is reordered.\n * If the function is omitted, the tab list will not be reorderable.\n *\n * @param sourceIndex Index in the tab list the drag started from\n * @param destinationIndex Index in the tab list the drag ended at\n */\n onReorder?: (sourceIndex: number, destinationIndex: number) => void;\n\n /**\n * Context actions to add to the tab in addition to the default actions.\n * The default actions are Close, Close to the Right, and Close All.\n * The default actions have a group value of 20.\n *\n * @param tab The tab to make context items for\n * @returns Additional context items for the tab\n */\n makeContextActions?: (tab: T) => ContextAction | ContextAction[];\n};\n\nfunction isScrolledLeft(element: HTMLElement): boolean {\n return element.scrollLeft === 0;\n}\n\nfunction isScrolledRight(element: HTMLElement): boolean {\n return (\n // single pixel buffer to account for sub-pixel rendering\n Math.abs(element.scrollLeft + element.clientWidth - element.scrollWidth) <=\n 1 || element.scrollWidth === 0\n );\n}\n\nfunction makeBaseContextActions(\n tab: NavTabItem,\n tabs: NavTabItem[],\n onClose: ((key: string) => void) | undefined\n): ContextAction[] {\n const { isClosable = false, key } = tab;\n const contextActions: ContextAction[] = [];\n if (isClosable && onClose != null) {\n contextActions.push({\n title: 'Close',\n order: 10,\n group: 20,\n action: () => {\n onClose(key);\n },\n });\n\n let disabled = true;\n for (let i = tabs.length - 1; i > 0; i -= 1) {\n if (tabs[i].key === tab.key) break;\n if (tabs[i].isClosable === true) {\n disabled = false;\n break;\n }\n }\n\n contextActions.push({\n title: 'Close to the Right',\n order: 20,\n group: 20,\n action: () => {\n for (let i = tabs.length - 1; i > 0; i -= 1) {\n if (tabs[i].key === key) break;\n if (tabs[i].isClosable === true) onClose(tabs[i].key);\n }\n },\n disabled,\n });\n\n contextActions.push({\n title: 'Close All',\n order: 30,\n group: 20,\n action: () => {\n tabs.forEach(t => {\n if (t.isClosable === true) onClose(t.key);\n });\n },\n });\n }\n\n return contextActions;\n}\n\nfunction NavTabList({\n activeKey,\n tabs,\n onSelect,\n onReorder,\n onClose,\n makeContextActions,\n}: NavTabListProps): React.ReactElement {\n const containerRef = useRef<HTMLDivElement>();\n const [isOverflowing, setIsOverflowing] = useState(true);\n const [isDashboardTabMenuShown, setIsDashboardTabMenuShown] = useState(false);\n const [disableScrollLeft, setDisableScrollLeft] = useState(true);\n const [disableScrollRight, setDisableScrollRight] = useState(true);\n\n const handleResize = useCallback(() => {\n if (containerRef.current == null) {\n return;\n }\n\n if (\n containerRef.current.clientWidth < containerRef.current.scrollWidth &&\n tabs.length > 0\n ) {\n setIsOverflowing(true);\n } else {\n setIsOverflowing(false);\n }\n\n setDisableScrollLeft(isScrolledLeft(containerRef.current));\n setDisableScrollRight(isScrolledRight(containerRef.current));\n }, [tabs]);\n useResizeObserver(containerRef.current, handleResize);\n\n const onDragEnd: OnDragEndResponder = useCallback(\n result => {\n DragUtils.stopDragging();\n\n // dropped outside the list\n if (!result.destination) {\n return;\n }\n\n onReorder?.(result.source.index, result.destination.index);\n },\n [onReorder]\n );\n\n const handleScroll = useCallback(() => {\n if (containerRef.current == null) {\n return;\n }\n\n const shouldDisableScrollLeft = isScrolledLeft(containerRef.current);\n if (shouldDisableScrollLeft !== disableScrollLeft) {\n setDisableScrollLeft(shouldDisableScrollLeft);\n }\n\n const shouldDisableScrollRight = isScrolledRight(containerRef.current);\n if (shouldDisableScrollRight !== disableScrollRight) {\n setDisableScrollRight(shouldDisableScrollRight);\n }\n }, [disableScrollLeft, disableScrollRight]);\n\n const continuousScrollRef = useRef<{\n holdTimer?: number;\n rAF?: number;\n cancelClick: boolean;\n }>({ cancelClick: false });\n\n const handleLeftClick = useCallback(() => {\n if (\n containerRef.current == null ||\n continuousScrollRef.current.cancelClick\n ) {\n return;\n }\n\n const { children } = containerRef.current;\n for (let i = children.length - 1; i >= 0; i -= 1) {\n const child = children[i] as HTMLElement;\n // Subtract 5px from left edge to account for rounding of offset values\n if (child.offsetLeft < containerRef.current.scrollLeft - 5) {\n child.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'start',\n });\n return;\n }\n }\n }, []);\n\n const handleRightClick = useCallback(() => {\n if (\n containerRef.current == null ||\n continuousScrollRef.current.cancelClick\n ) {\n return;\n }\n\n const { children } = containerRef.current;\n for (let i = 0; i < children.length; i += 1) {\n const child = children[i] as HTMLElement;\n // Add 5px to right edge to account for rounding of offset values\n if (\n child.offsetLeft + 5 >\n containerRef.current.scrollLeft + containerRef.current.offsetWidth\n ) {\n child.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'end',\n });\n return;\n }\n }\n }, []);\n\n /**\n * Recurively called after initial timeout on mousedown. Continuously scroll with acceleration.\n * Cancelled by mouseup handler cancelling the animationFrame.\n * @param direction of scroll, left or right\n * @param startX starting position of scroll\n * @param deltaX delta from intial startX calculated recursively\n * @param prevTimestamp called on subsequent delta frames\n */\n const handleMouseRepeat = useCallback(\n (\n direction: 'left' | 'right',\n startX: number,\n deltaX = 0,\n prevTimestamp?: number\n ) => {\n const container = containerRef.current;\n if (container == null) {\n return;\n }\n\n continuousScrollRef.current.cancelClick = true;\n\n if (direction === 'left') {\n // eslint-disable-next-line no-param-reassign\n container.scrollLeft = startX - deltaX;\n } else if (direction === 'right') {\n // eslint-disable-next-line no-param-reassign\n container.scrollLeft = startX + deltaX;\n }\n\n // eslint-disable-next-line no-param-reassign\n continuousScrollRef.current.rAF = requestAnimationFrame(timestamp => {\n const startTime = prevTimestamp ?? timestamp;\n const deltaTime = timestamp - startTime;\n let newDeltaX =\n START_SPEED * deltaTime + 0.5 * ACCELERATION * deltaTime ** 2;\n newDeltaX = Math.min(newDeltaX, container.scrollWidth);\n // scrollLeft enforces a limit but no point letting delta increment beyond scrollWidth\n\n handleMouseRepeat(direction, startX, newDeltaX, startTime);\n });\n },\n []\n );\n\n const endContinuousScroll = useCallback(() => {\n const { holdTimer, rAF } = continuousScrollRef.current;\n if (holdTimer != null) {\n clearTimeout(holdTimer);\n continuousScrollRef.current.holdTimer = undefined;\n }\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n continuousScrollRef.current.rAF = undefined;\n }\n window.removeEventListener('mouseup', endContinuousScroll);\n }, []);\n\n useEffect(\n () => () => window.removeEventListener('mouseup', endContinuousScroll),\n [endContinuousScroll]\n );\n\n const handleMouseDown = useCallback(\n (direction: 'left' | 'right') => {\n if (containerRef.current != null) {\n continuousScrollRef.current.holdTimer = window.setTimeout(\n handleMouseRepeat,\n CLICK_TIMEOUT,\n direction,\n containerRef.current.scrollLeft\n );\n }\n continuousScrollRef.current.cancelClick = false;\n window.addEventListener('mouseup', endContinuousScroll);\n },\n [endContinuousScroll, handleMouseRepeat]\n );\n\n const handleMouseDownLeft = useCallback(() => {\n handleMouseDown('left');\n }, [handleMouseDown]);\n\n const handleMouseDownRight = useCallback(() => {\n handleMouseDown('right');\n }, [handleMouseDown]);\n\n // React binds to the root as a passive listener for wheel\n // This prevents the wheel event from being canceled\n // Bypass React's event system so we can prevent the default behavior\n // https://github.com/facebook/react/issues/14856\n useEffect(function handleWheel() {\n const onWheel = (e: WheelEvent) => {\n e.stopPropagation();\n e.preventDefault();\n const nav = e.currentTarget as HTMLDivElement;\n const delta =\n Math.abs(e.deltaY) > Math.abs(e.deltaX) ? e.deltaY : e.deltaX;\n\n // Scrolling jumps too far sometimes, so clamp to get a smoother scroll\n nav.scrollLeft += clamp(delta, -30, 30);\n };\n\n containerRef.current?.addEventListener('wheel', onWheel);\n return () => {\n containerRef.current?.removeEventListener('wheel', onWheel);\n };\n }, []);\n\n const tabContextActionMap = useMemo(() => {\n const tabContextActions = new Map<string, ResolvableContextAction[]>();\n tabs.forEach(tab => {\n const { key } = tab;\n const contextActions = [\n () => makeBaseContextActions(tab, tabs, onClose),\n () => makeContextActions?.(tab) ?? [],\n ];\n tabContextActions.set(key, contextActions);\n });\n return tabContextActions;\n }, [makeContextActions, tabs, onClose]);\n\n const activeTabRef = useRef<HTMLDivElement>(null);\n const activeTab = tabs.find(tab => tab.key === activeKey);\n const navTabs = tabs.map((tab, index) => {\n const { key } = tab;\n const isActive = tab === activeTab;\n\n return (\n <NavTab\n tab={tab}\n key={key}\n index={index}\n isActive={isActive}\n activeRef={activeTabRef}\n onSelect={onSelect}\n onClose={onClose}\n isDraggable={onReorder != null}\n contextActions={tabContextActionMap.get(key)}\n />\n );\n });\n\n useEffect(\n // Needs to be in a useEffect so the ref is updated\n function scrollActiveTabIntoView() {\n if (activeTabRef.current != null) {\n activeTabRef.current.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }\n },\n [activeKey]\n );\n\n const handleDashboardMenuClick = () => {\n setIsDashboardTabMenuShown(!isDashboardTabMenuShown);\n };\n\n const handleDashboardMenuSelect = (tab: NavTabItem) => {\n setIsDashboardTabMenuShown(false);\n\n onSelect(tab.key);\n };\n\n const handleDashboardMenuClose = () => {\n setIsDashboardTabMenuShown(false);\n };\n\n return (\n <nav className=\"nav-container\">\n {isOverflowing && (\n <Button\n kind=\"ghost\"\n icon={<FontAwesomeIcon icon={vsChevronLeft} transform=\"grow-4\" />}\n className=\"tab-controls-btn tab-controls-btn-left\"\n tooltip=\"Scroll left\"\n onClick={handleLeftClick}\n onMouseDown={handleMouseDownLeft}\n disabled={disableScrollLeft}\n />\n )}\n <DragDropContext\n onDragStart={DragUtils.startDragging}\n onDragEnd={onDragEnd}\n >\n <Droppable\n droppableId=\"droppable-tab-navigation\"\n direction=\"horizontal\"\n >\n {(provided, snapshot) => (\n <div\n ref={r => {\n if (r == null) {\n return;\n }\n containerRef.current = r;\n provided.innerRef(r);\n }}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.droppableProps}\n className={classNames('nav nav-tabs', {\n dragging: snapshot.draggingFromThisWith,\n })}\n role=\"tablist\"\n onScroll={handleScroll}\n >\n {navTabs}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n {isOverflowing && (\n <Button\n kind=\"ghost\"\n icon={<FontAwesomeIcon icon={vsChevronRight} transform=\"grow-4\" />}\n className=\"tab-controls-btn tab-controls-btn-right\"\n tooltip=\"Scroll right\"\n onClick={handleRightClick}\n onMouseDown={handleMouseDownRight}\n disabled={disableScrollRight}\n />\n )}\n <Button\n kind=\"ghost\"\n icon={<FontAwesomeIcon icon={vsChevronDown} transform=\"grow-4\" />}\n className=\"btn-dashboard-list-menu btn-show-dashboard-list\"\n tooltip=\"Search open dashboards\"\n onClick={handleDashboardMenuClick}\n disabled={tabs.length < 2}\n style={{\n visibility: isOverflowing ? 'visible' : 'hidden',\n marginLeft: 'auto',\n }}\n >\n <Popper\n isShown={isDashboardTabMenuShown}\n className=\"dashboard-list-menu-popper\"\n onExited={handleDashboardMenuClose}\n options={{\n placement: 'bottom-start',\n }}\n closeOnBlur\n interactive\n >\n <DashboardList tabs={tabs} onSelect={handleDashboardMenuSelect} />\n </Popper>\n </Button>\n <ContextActions\n actions={[\n {\n action: () => {\n setIsDashboardTabMenuShown(!isDashboardTabMenuShown);\n },\n shortcut: GLOBAL_SHORTCUTS.OPEN_DASHBOARD_LIST,\n isGlobal: true,\n },\n ]}\n />\n </nav>\n );\n}\n\nexport default NavTabList;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"NavTabList.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","classNames","clamp","DragDropContext","Droppable","FontAwesomeIcon","vsChevronRight","vsChevronLeft","vsChevronDown","useResizeObserver","DragUtils","Button","NavTab","ContextActions","Popper","DashboardList","GLOBAL_SHORTCUTS","jsx","_jsx","jsxs","_jsxs","CLICK_TIMEOUT","START_SPEED","ACCELERATION","isScrolledLeft","element","scrollLeft","isScrolledRight","Math","abs","clientWidth","scrollWidth","makeBaseContextActions","tab","tabs","onClose","isClosable","key","contextActions","push","title","order","group","action","disabled","i","length","forEach","t","NavTabList","_ref","activeKey","onSelect","onReorder","makeContextActions","containerRef","isOverflowing","setIsOverflowing","isDashboardTabMenuShown","setIsDashboardTabMenuShown","disableScrollLeft","setDisableScrollLeft","disableScrollRight","setDisableScrollRight","handleResize","current","onDragEnd","result","stopDragging","destination","source","index","handleScroll","shouldDisableScrollLeft","shouldDisableScrollRight","continuousScrollRef","cancelClick","handleLeftClick","children","child","offsetLeft","scrollIntoView","behavior","block","inline","handleRightClick","offsetWidth","handleMouseRepeat","direction","startX","deltaX","arguments","undefined","prevTimestamp","container","rAF","requestAnimationFrame","timestamp","startTime","deltaTime","newDeltaX","min","endContinuousScroll","holdTimer","clearTimeout","cancelAnimationFrame","window","removeEventListener","handleMouseDown","setTimeout","addEventListener","handleMouseDownLeft","handleMouseDownRight","handleWheel","_containerRef$current","onWheel","e","stopPropagation","preventDefault","nav","currentTarget","delta","deltaY","_containerRef$current2","tabContextActionMap","tabContextActions","Map","_makeContextActions","set","activeTabRef","activeTab","find","navTabs","map","isActive","activeRef","isDraggable","get","scrollActiveTabIntoView","handleDashboardMenuClick","handleDashboardMenuSelect","handleDashboardMenuClose","className","kind","icon","transform","tooltip","onClick","onMouseDown","onDragStart","startDragging","droppableId","provided","snapshot","_objectSpread","ref","r","innerRef","droppableProps","dragging","draggingFromThisWith","role","onScroll","placeholder","style","visibility","marginLeft","isShown","onExited","options","placement","closeOnBlur","interactive","actions","shortcut","OPEN_DASHBOARD_LIST","isGlobal"],"sources":["../../src/navigation/NavTabList.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport clamp from 'lodash.clamp';\nimport {\n DragDropContext,\n Droppable,\n type OnDragEndResponder,\n} from '@hello-pangea/dnd';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { type IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport { vsChevronRight, vsChevronLeft, vsChevronDown } from '@deephaven/icons';\nimport { useResizeObserver } from '@deephaven/react-hooks';\nimport DragUtils from '../DragUtils';\nimport Button from '../Button';\nimport NavTab from './NavTab';\nimport './NavTabList.scss';\nimport {\n type ContextAction,\n type ResolvableContextAction,\n ContextActions,\n} from '../context-actions';\nimport Popper from '../popper/Popper';\nimport DashboardList from './DashboardList';\nimport { GLOBAL_SHORTCUTS } from '../shortcuts';\n\n// mouse hold timeout to act as hold instead of click\nconst CLICK_TIMEOUT = 500;\n\n// mouse hold acceleration\nconst START_SPEED = 0.01;\nconst ACCELERATION = 0.0005;\n\nexport interface NavTabItem {\n /**\n * Unique key for the tab.\n */\n key: string;\n\n /**\n * Title to display on the tab.\n */\n title: string;\n\n /**\n * Icon to display on the tab.\n */\n icon?: IconDefinition | JSX.Element;\n\n /**\n * Whether the tab is closable.\n * If omitted, the tab will be closeable if onClose exists.\n */\n isClosable?: boolean;\n}\n\ntype NavTabListProps<T extends NavTabItem = NavTabItem> = {\n /**\n * The key of the active tab.\n * If this does not match a tab key, no tab will be active.\n */\n activeKey: string;\n\n /**\n * Array of tabs to display.\n * @see {@link NavTabItem} for the minimum required properties.\n */\n tabs: T[];\n\n /**\n * Function called when a tab is selected.\n *\n * @param key The key of the tab to select\n */\n onSelect: (key: string) => void;\n\n /**\n * Function called when a tab is closed.\n * If the function is provided, all tabs will be closeable by default.\n * Tabs may set their own closeable property to override this behavior.\n *\n * @param key The key of the tab to close\n */\n onClose?: (key: string) => void;\n\n /**\n * Function called when a tab is reordered.\n * If the function is omitted, the tab list will not be reorderable.\n *\n * @param sourceIndex Index in the tab list the drag started from\n * @param destinationIndex Index in the tab list the drag ended at\n */\n onReorder?: (sourceIndex: number, destinationIndex: number) => void;\n\n /**\n * Context actions to add to the tab in addition to the default actions.\n * The default actions are Close, Close to the Right, and Close All.\n * The default actions have a group value of 20.\n *\n * @param tab The tab to make context items for\n * @returns Additional context items for the tab\n */\n makeContextActions?: (tab: T) => ContextAction | ContextAction[];\n};\n\nfunction isScrolledLeft(element: HTMLElement): boolean {\n return element.scrollLeft === 0;\n}\n\nfunction isScrolledRight(element: HTMLElement): boolean {\n return (\n // single pixel buffer to account for sub-pixel rendering\n Math.abs(element.scrollLeft + element.clientWidth - element.scrollWidth) <=\n 1 || element.scrollWidth === 0\n );\n}\n\nfunction makeBaseContextActions(\n tab: NavTabItem,\n tabs: NavTabItem[],\n onClose: ((key: string) => void) | undefined\n): ContextAction[] {\n const { isClosable = false, key } = tab;\n const contextActions: ContextAction[] = [];\n if (isClosable && onClose != null) {\n contextActions.push({\n title: 'Close',\n order: 10,\n group: 20,\n action: () => {\n onClose(key);\n },\n });\n\n let disabled = true;\n for (let i = tabs.length - 1; i > 0; i -= 1) {\n if (tabs[i].key === tab.key) break;\n if (tabs[i].isClosable === true) {\n disabled = false;\n break;\n }\n }\n\n contextActions.push({\n title: 'Close to the Right',\n order: 20,\n group: 20,\n action: () => {\n for (let i = tabs.length - 1; i > 0; i -= 1) {\n if (tabs[i].key === key) break;\n if (tabs[i].isClosable === true) onClose(tabs[i].key);\n }\n },\n disabled,\n });\n\n contextActions.push({\n title: 'Close All',\n order: 30,\n group: 20,\n action: () => {\n tabs.forEach(t => {\n if (t.isClosable === true) onClose(t.key);\n });\n },\n });\n }\n\n return contextActions;\n}\n\nfunction NavTabList({\n activeKey,\n tabs,\n onSelect,\n onReorder,\n onClose,\n makeContextActions,\n}: NavTabListProps): React.ReactElement {\n const containerRef = useRef<HTMLDivElement>();\n const [isOverflowing, setIsOverflowing] = useState(true);\n const [isDashboardTabMenuShown, setIsDashboardTabMenuShown] = useState(false);\n const [disableScrollLeft, setDisableScrollLeft] = useState(true);\n const [disableScrollRight, setDisableScrollRight] = useState(true);\n\n const handleResize = useCallback(() => {\n if (containerRef.current == null) {\n return;\n }\n\n if (\n containerRef.current.clientWidth < containerRef.current.scrollWidth &&\n tabs.length > 0\n ) {\n setIsOverflowing(true);\n } else {\n setIsOverflowing(false);\n }\n\n setDisableScrollLeft(isScrolledLeft(containerRef.current));\n setDisableScrollRight(isScrolledRight(containerRef.current));\n }, [tabs]);\n useResizeObserver(containerRef.current, handleResize);\n\n const onDragEnd: OnDragEndResponder = useCallback(\n result => {\n DragUtils.stopDragging();\n\n // dropped outside the list\n if (!result.destination) {\n return;\n }\n\n onReorder?.(result.source.index, result.destination.index);\n },\n [onReorder]\n );\n\n const handleScroll = useCallback(() => {\n if (containerRef.current == null) {\n return;\n }\n\n const shouldDisableScrollLeft = isScrolledLeft(containerRef.current);\n if (shouldDisableScrollLeft !== disableScrollLeft) {\n setDisableScrollLeft(shouldDisableScrollLeft);\n }\n\n const shouldDisableScrollRight = isScrolledRight(containerRef.current);\n if (shouldDisableScrollRight !== disableScrollRight) {\n setDisableScrollRight(shouldDisableScrollRight);\n }\n }, [disableScrollLeft, disableScrollRight]);\n\n const continuousScrollRef = useRef<{\n holdTimer?: number;\n rAF?: number;\n cancelClick: boolean;\n }>({ cancelClick: false });\n\n const handleLeftClick = useCallback(() => {\n if (\n containerRef.current == null ||\n continuousScrollRef.current.cancelClick\n ) {\n return;\n }\n\n const { children } = containerRef.current;\n for (let i = children.length - 1; i >= 0; i -= 1) {\n const child = children[i] as HTMLElement;\n // Subtract 5px from left edge to account for rounding of offset values\n if (child.offsetLeft < containerRef.current.scrollLeft - 5) {\n child.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'start',\n });\n return;\n }\n }\n }, []);\n\n const handleRightClick = useCallback(() => {\n if (\n containerRef.current == null ||\n continuousScrollRef.current.cancelClick\n ) {\n return;\n }\n\n const { children } = containerRef.current;\n for (let i = 0; i < children.length; i += 1) {\n const child = children[i] as HTMLElement;\n // Subtract 5px from right edge to account for rounding of offset values\n if (\n child.offsetLeft + child.offsetWidth - 5 >\n containerRef.current.scrollLeft + containerRef.current.offsetWidth\n ) {\n child.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'end',\n });\n return;\n }\n }\n }, []);\n\n /**\n * Recurively called after initial timeout on mousedown. Continuously scroll with acceleration.\n * Cancelled by mouseup handler cancelling the animationFrame.\n * @param direction of scroll, left or right\n * @param startX starting position of scroll\n * @param deltaX delta from intial startX calculated recursively\n * @param prevTimestamp called on subsequent delta frames\n */\n const handleMouseRepeat = useCallback(\n (\n direction: 'left' | 'right',\n startX: number,\n deltaX = 0,\n prevTimestamp?: number\n ) => {\n const container = containerRef.current;\n if (container == null) {\n return;\n }\n\n continuousScrollRef.current.cancelClick = true;\n\n if (direction === 'left') {\n // eslint-disable-next-line no-param-reassign\n container.scrollLeft = startX - deltaX;\n } else if (direction === 'right') {\n // eslint-disable-next-line no-param-reassign\n container.scrollLeft = startX + deltaX;\n }\n\n // eslint-disable-next-line no-param-reassign\n continuousScrollRef.current.rAF = requestAnimationFrame(timestamp => {\n const startTime = prevTimestamp ?? timestamp;\n const deltaTime = timestamp - startTime;\n let newDeltaX =\n START_SPEED * deltaTime + 0.5 * ACCELERATION * deltaTime ** 2;\n newDeltaX = Math.min(newDeltaX, container.scrollWidth);\n // scrollLeft enforces a limit but no point letting delta increment beyond scrollWidth\n\n handleMouseRepeat(direction, startX, newDeltaX, startTime);\n });\n },\n []\n );\n\n const endContinuousScroll = useCallback(() => {\n const { holdTimer, rAF } = continuousScrollRef.current;\n if (holdTimer != null) {\n clearTimeout(holdTimer);\n continuousScrollRef.current.holdTimer = undefined;\n }\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n continuousScrollRef.current.rAF = undefined;\n }\n window.removeEventListener('mouseup', endContinuousScroll);\n }, []);\n\n useEffect(\n () => () => window.removeEventListener('mouseup', endContinuousScroll),\n [endContinuousScroll]\n );\n\n const handleMouseDown = useCallback(\n (direction: 'left' | 'right') => {\n if (containerRef.current != null) {\n continuousScrollRef.current.holdTimer = window.setTimeout(\n handleMouseRepeat,\n CLICK_TIMEOUT,\n direction,\n containerRef.current.scrollLeft\n );\n }\n continuousScrollRef.current.cancelClick = false;\n window.addEventListener('mouseup', endContinuousScroll);\n },\n [endContinuousScroll, handleMouseRepeat]\n );\n\n const handleMouseDownLeft = useCallback(() => {\n handleMouseDown('left');\n }, [handleMouseDown]);\n\n const handleMouseDownRight = useCallback(() => {\n handleMouseDown('right');\n }, [handleMouseDown]);\n\n // React binds to the root as a passive listener for wheel\n // This prevents the wheel event from being canceled\n // Bypass React's event system so we can prevent the default behavior\n // https://github.com/facebook/react/issues/14856\n useEffect(function handleWheel() {\n const onWheel = (e: WheelEvent) => {\n e.stopPropagation();\n e.preventDefault();\n const nav = e.currentTarget as HTMLDivElement;\n const delta =\n Math.abs(e.deltaY) > Math.abs(e.deltaX) ? e.deltaY : e.deltaX;\n\n // Scrolling jumps too far sometimes, so clamp to get a smoother scroll\n nav.scrollLeft += clamp(delta, -30, 30);\n };\n\n containerRef.current?.addEventListener('wheel', onWheel);\n return () => {\n containerRef.current?.removeEventListener('wheel', onWheel);\n };\n }, []);\n\n const tabContextActionMap = useMemo(() => {\n const tabContextActions = new Map<string, ResolvableContextAction[]>();\n tabs.forEach(tab => {\n const { key } = tab;\n const contextActions = [\n () => makeBaseContextActions(tab, tabs, onClose),\n () => makeContextActions?.(tab) ?? [],\n ];\n tabContextActions.set(key, contextActions);\n });\n return tabContextActions;\n }, [makeContextActions, tabs, onClose]);\n\n const activeTabRef = useRef<HTMLDivElement>(null);\n const activeTab = tabs.find(tab => tab.key === activeKey);\n const navTabs = tabs.map((tab, index) => {\n const { key } = tab;\n const isActive = tab === activeTab;\n\n return (\n <NavTab\n tab={tab}\n key={key}\n index={index}\n isActive={isActive}\n activeRef={activeTabRef}\n onSelect={onSelect}\n onClose={onClose}\n isDraggable={onReorder != null}\n contextActions={tabContextActionMap.get(key)}\n />\n );\n });\n\n useEffect(\n // Needs to be in a useEffect so the ref is updated\n function scrollActiveTabIntoView() {\n if (activeTabRef.current != null) {\n activeTabRef.current.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }\n },\n [activeKey]\n );\n\n const handleDashboardMenuClick = () => {\n setIsDashboardTabMenuShown(!isDashboardTabMenuShown);\n };\n\n const handleDashboardMenuSelect = (tab: NavTabItem) => {\n setIsDashboardTabMenuShown(false);\n\n onSelect(tab.key);\n };\n\n const handleDashboardMenuClose = () => {\n setIsDashboardTabMenuShown(false);\n };\n\n return (\n <nav className=\"nav-container\">\n {isOverflowing && (\n <Button\n kind=\"ghost\"\n icon={<FontAwesomeIcon icon={vsChevronLeft} transform=\"grow-4\" />}\n className=\"tab-controls-btn tab-controls-btn-left\"\n tooltip=\"Scroll left\"\n onClick={handleLeftClick}\n onMouseDown={handleMouseDownLeft}\n disabled={disableScrollLeft}\n />\n )}\n <DragDropContext\n onDragStart={DragUtils.startDragging}\n onDragEnd={onDragEnd}\n >\n <Droppable\n droppableId=\"droppable-tab-navigation\"\n direction=\"horizontal\"\n >\n {(provided, snapshot) => (\n <div\n ref={r => {\n if (r == null) {\n return;\n }\n containerRef.current = r;\n provided.innerRef(r);\n }}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.droppableProps}\n className={classNames('nav nav-tabs', {\n dragging: snapshot.draggingFromThisWith,\n })}\n role=\"tablist\"\n onScroll={handleScroll}\n >\n {navTabs}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n {isOverflowing && (\n <Button\n kind=\"ghost\"\n icon={<FontAwesomeIcon icon={vsChevronRight} transform=\"grow-4\" />}\n className=\"tab-controls-btn tab-controls-btn-right\"\n tooltip=\"Scroll right\"\n onClick={handleRightClick}\n onMouseDown={handleMouseDownRight}\n disabled={disableScrollRight}\n />\n )}\n <Button\n kind=\"ghost\"\n icon={<FontAwesomeIcon icon={vsChevronDown} transform=\"grow-4\" />}\n className=\"btn-dashboard-list-menu btn-show-dashboard-list\"\n tooltip=\"Search open dashboards\"\n onClick={handleDashboardMenuClick}\n disabled={tabs.length < 2}\n style={{\n visibility: isOverflowing ? 'visible' : 'hidden',\n marginLeft: 'auto',\n }}\n >\n <Popper\n isShown={isDashboardTabMenuShown}\n className=\"dashboard-list-menu-popper\"\n onExited={handleDashboardMenuClose}\n options={{\n placement: 'bottom-start',\n }}\n closeOnBlur\n interactive\n >\n <DashboardList tabs={tabs} onSelect={handleDashboardMenuSelect} />\n </Popper>\n </Button>\n <ContextActions\n actions={[\n {\n action: () => {\n setIsDashboardTabMenuShown(!isDashboardTabMenuShown);\n },\n shortcut: GLOBAL_SHORTCUTS.OPEN_DASHBOARD_LIST,\n isGlobal: true,\n },\n ]}\n />\n </nav>\n );\n}\n\nexport default NavTabList;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/popper/Popper.css
CHANGED
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
position: absolute;
|
|
5
5
|
z-index: 5000;
|
|
6
6
|
}
|
|
7
|
+
.popper-container .spectrum-theme-provider {
|
|
8
|
+
max-height: inherit;
|
|
9
|
+
}
|
|
7
10
|
|
|
8
11
|
.popper.popper-tooltip {
|
|
9
12
|
--background-color: var(--dh-color-tooltip-bg);
|
|
@@ -18,9 +21,11 @@
|
|
|
18
21
|
transition: visibility 0.15s, opacity 0.15s;
|
|
19
22
|
pointer-events: none;
|
|
20
23
|
outline: 0;
|
|
24
|
+
max-height: inherit;
|
|
21
25
|
}
|
|
22
26
|
.popper .popper-content {
|
|
23
27
|
position: relative;
|
|
28
|
+
max-height: inherit;
|
|
24
29
|
}
|
|
25
30
|
.popper .popper-content .tooltip-content {
|
|
26
31
|
text-align: center;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../scss/custom.scss","../../scss/bootstrap_overrides.scss","../../src/popper/Popper.scss"],"names":[],"mappings":"AAAA;AC6LA;ACvLA;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EAEA;EACA;EACA,eDuIc;ECtId,YDuIW;ECtIX,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;EAME;;;AAGF;AAAA;EAME;;;AAGF;AAAA;EAME;;;AAGF;AAAA;EAME;;;AAGF;AAAA;AAAA;AAAA;EAYE;EACA;EACA;;;AAGF;EACE,eAjHY;;AAmHZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,YA/HY;;AAiIZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,aA7IY;;AA+IZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,cA3JY;;AA6JZ;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 './util.scss';\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// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\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, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\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$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-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: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\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 as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\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: var(--dh-color-item-list-hover-bg);\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-text-disabled);\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","@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']\n > .spectrum-theme-provider\n .popper-transition-enter,\n.popper-container[x-placement^='top']\n > .spectrum-theme-provider\n .popper-transition-exit {\n transform: scale($animation-scale) translate(0, $animation-offset);\n}\n\n.popper-container[x-placement^='right']\n > .spectrum-theme-provider\n .popper-transition-enter,\n.popper-container[x-placement^='right']\n > .spectrum-theme-provider\n .popper-transition-exit {\n transform: scale($animation-scale) translate(-$animation-offset, 0);\n}\n\n.popper-container[x-placement^='bottom']\n > .spectrum-theme-provider\n .popper-transition-enter,\n.popper-container[x-placement^='bottom']\n > .spectrum-theme-provider\n .popper-transition-exit {\n transform: scale($animation-scale) translate(0, -$animation-offset);\n}\n\n.popper-container[x-placement^='left']\n > .spectrum-theme-provider\n .popper-transition-enter,\n.popper-container[x-placement^='left']\n > .spectrum-theme-provider\n .popper-transition-exit {\n transform: scale($animation-scale) translate($animation-offset, 0);\n}\n\n.popper-container[x-placement^='top']\n > .spectrum-theme-provider\n .popper-transition-enter-active.popper,\n.popper-container[x-placement^='right']\n > .spectrum-theme-provider\n .popper-transition-enter-active.popper,\n.popper-container[x-placement^='bottom']\n > .spectrum-theme-provider\n .popper-transition-enter-active.popper,\n.popper-container[x-placement^='left']\n > .spectrum-theme-provider\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'] > .spectrum-theme-provider .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'] > .spectrum-theme-provider .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'] > .spectrum-theme-provider .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'] > .spectrum-theme-provider .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"]}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../scss/custom.scss","../../scss/bootstrap_overrides.scss","../../src/popper/Popper.scss"],"names":[],"mappings":"AAAA;AC6LA;ACvLA;EACE;EACA;;AAEA;EACE;;;AAIJ;EACE;;;AAGF;EACE;EAEA;EACA;EACA,eDmIc;EClId,YDmIW;EClIX,YACE;EAEF;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA,QA9CU;EA+CV;;;AAIJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAME;;;AAGF;AAAA;EAME;;;AAGF;AAAA;EAME;;;AAGF;AAAA;EAME;;;AAGF;AAAA;AAAA;AAAA;EAYE;EACA;EACA;;;AAGF;EACE,eAvHY;;AAyHZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,YArIY;;AAuIZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,aAnJY;;AAqJZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE,cAjKY;;AAmKZ;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 './util.scss';\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// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\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, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\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$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-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: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\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 as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\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: var(--dh-color-item-list-hover-bg);\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-text-disabled);\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","@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 .spectrum-theme-provider {\n max-height: inherit;\n }\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 max-height: inherit;\n\n .popper-content {\n position: relative;\n max-height: inherit;\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']\n > .spectrum-theme-provider\n .popper-transition-enter,\n.popper-container[x-placement^='top']\n > .spectrum-theme-provider\n .popper-transition-exit {\n transform: scale($animation-scale) translate(0, $animation-offset);\n}\n\n.popper-container[x-placement^='right']\n > .spectrum-theme-provider\n .popper-transition-enter,\n.popper-container[x-placement^='right']\n > .spectrum-theme-provider\n .popper-transition-exit {\n transform: scale($animation-scale) translate(-$animation-offset, 0);\n}\n\n.popper-container[x-placement^='bottom']\n > .spectrum-theme-provider\n .popper-transition-enter,\n.popper-container[x-placement^='bottom']\n > .spectrum-theme-provider\n .popper-transition-exit {\n transform: scale($animation-scale) translate(0, -$animation-offset);\n}\n\n.popper-container[x-placement^='left']\n > .spectrum-theme-provider\n .popper-transition-enter,\n.popper-container[x-placement^='left']\n > .spectrum-theme-provider\n .popper-transition-exit {\n transform: scale($animation-scale) translate($animation-offset, 0);\n}\n\n.popper-container[x-placement^='top']\n > .spectrum-theme-provider\n .popper-transition-enter-active.popper,\n.popper-container[x-placement^='right']\n > .spectrum-theme-provider\n .popper-transition-enter-active.popper,\n.popper-container[x-placement^='bottom']\n > .spectrum-theme-provider\n .popper-transition-enter-active.popper,\n.popper-container[x-placement^='left']\n > .spectrum-theme-provider\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'] > .spectrum-theme-provider .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'] > .spectrum-theme-provider .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'] > .spectrum-theme-provider .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'] > .spectrum-theme-provider .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"]}
|
package/dist/popper/Popper.d.ts
CHANGED
|
@@ -24,9 +24,11 @@ interface PopperProps {
|
|
|
24
24
|
timeout: number;
|
|
25
25
|
onEntered: () => void;
|
|
26
26
|
onExited: () => void;
|
|
27
|
+
onBlur: (e: React.FocusEvent) => void;
|
|
27
28
|
isShown: boolean;
|
|
28
29
|
closeOnBlur: boolean;
|
|
29
30
|
interactive: boolean;
|
|
31
|
+
keepInParent: boolean;
|
|
30
32
|
referenceObject: ReferenceObject | null;
|
|
31
33
|
'data-testid'?: string;
|
|
32
34
|
}
|
|
@@ -41,9 +43,11 @@ declare class Popper extends Component<PopperProps, PopperState> {
|
|
|
41
43
|
timeout: 150;
|
|
42
44
|
onEntered(): void;
|
|
43
45
|
onExited(): void;
|
|
46
|
+
onBlur(): void;
|
|
44
47
|
isShown: boolean;
|
|
45
48
|
interactive: boolean;
|
|
46
49
|
closeOnBlur: boolean;
|
|
50
|
+
keepInParent: boolean;
|
|
47
51
|
referenceObject: null;
|
|
48
52
|
'data-testid': undefined;
|
|
49
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popper.d.ts","sourceRoot":"","sources":["../../src/popper/Popper.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,OAAO,QAAQ,EAAE,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAE/E,OAAO,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Popper.d.ts","sourceRoot":"","sources":["../../src/popper/Popper.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,OAAO,QAAQ,EAAE,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAE/E,OAAO,eAAe,CAAC;AAmCvB,UAAU,WAAW;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB;AAED,cAAM,MAAO,SAAQ,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACtD,MAAM,CAAC,YAAY;;;;qBAIJ,IAAI;oBAGL,IAAI;kBAGN,IAAI;;;;;;;MASd;gBAEU,KAAK,EAAE,WAAW;IAsB9B,kBAAkB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAoBhD,oBAAoB,IAAI,IAAI;IAI5B,OAAO,EAAE,cAAc,CAAC;IAExB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE3C,OAAO,kCAAqC;IAG5C,GAAG,EAAE,MAAM,CAAC;IAEZ,wFAAwF;IACxF,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI;IAYlE,UAAU,IAAI,IAAI;IAuElB,aAAa,CAAC,WAAW,UAAO,GAAG,IAAI;IAsBvC,IAAI,IAAI,IAAI;IASZ,IAAI,IAAI,IAAI;IAIZ,cAAc,IAAI,IAAI;IAKtB,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI;IAarC,WAAW,IAAI,IAAI;IAKnB,UAAU,IAAI,IAAI;IASlB,aAAa,IAAI,GAAG,CAAC,OAAO;IA4C5B,MAAM,IAAI,GAAG,CAAC,OAAO;CActB;AAED,eAAe,MAAM,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/popper/Popper.js
CHANGED
|
@@ -30,6 +30,28 @@ import "./Popper.css";
|
|
|
30
30
|
import { SpectrumThemeProvider } from "../theme/SpectrumThemeProvider.js";
|
|
31
31
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
32
32
|
var POPPER_CLASS_NAME = 'popper';
|
|
33
|
+
var KEEP_IN_PARENT_OPTIONS = {
|
|
34
|
+
placement: 'bottom-end',
|
|
35
|
+
modifiers: {
|
|
36
|
+
preventOverflow: {
|
|
37
|
+
boundariesElement: 'scrollParent',
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
39
|
+
fn: (data, options) => {
|
|
40
|
+
var _PopperJs$Defaults$mo, _PopperJs$Defaults$mo2;
|
|
41
|
+
var modified = (_PopperJs$Defaults$mo = PopperJs.Defaults.modifiers) === null || _PopperJs$Defaults$mo === void 0 || (_PopperJs$Defaults$mo = _PopperJs$Defaults$mo.preventOverflow) === null || _PopperJs$Defaults$mo === void 0 || (_PopperJs$Defaults$mo2 = _PopperJs$Defaults$mo.fn) === null || _PopperJs$Defaults$mo2 === void 0 ? void 0 : _PopperJs$Defaults$mo2.call(_PopperJs$Defaults$mo, data, options);
|
|
42
|
+
if (modified == null) {
|
|
43
|
+
return data;
|
|
44
|
+
}
|
|
45
|
+
modified.styles.maxHeight = "".concat(document.documentElement.clientHeight - data.offsets.popper.top - 2 * options.padding // Double padding because there is top and bottom to account for
|
|
46
|
+
, "px");
|
|
47
|
+
return modified !== null && modified !== void 0 ? modified : data;
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
flip: {
|
|
51
|
+
enabled: false
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
33
55
|
class Popper extends Component {
|
|
34
56
|
constructor(props) {
|
|
35
57
|
super(props);
|
|
@@ -60,15 +82,21 @@ class Popper extends Component {
|
|
|
60
82
|
var {
|
|
61
83
|
isShown
|
|
62
84
|
} = this.props;
|
|
85
|
+
var {
|
|
86
|
+
popper
|
|
87
|
+
} = this.state;
|
|
63
88
|
if (prevProps.isShown !== isShown) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
89
|
+
cancelAnimationFrame(this.rAF);
|
|
90
|
+
this.rAF = window.requestAnimationFrame(() => {
|
|
91
|
+
if (isShown) {
|
|
67
92
|
this.show();
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
93
|
+
} else {
|
|
94
|
+
this.hide();
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
if (popper) {
|
|
99
|
+
popper.scheduleUpdate();
|
|
72
100
|
}
|
|
73
101
|
}
|
|
74
102
|
componentWillUnmount() {
|
|
@@ -82,6 +110,7 @@ class Popper extends Component {
|
|
|
82
110
|
return this.getVisibleElement(element.parentElement);
|
|
83
111
|
}
|
|
84
112
|
initPopper() {
|
|
113
|
+
var _defaultOptions$modif, _optionsProp$modifier;
|
|
85
114
|
var {
|
|
86
115
|
popper: statePopper
|
|
87
116
|
} = this.state;
|
|
@@ -96,16 +125,22 @@ class Popper extends Component {
|
|
|
96
125
|
return;
|
|
97
126
|
}
|
|
98
127
|
var {
|
|
99
|
-
options
|
|
128
|
+
options: optionsProp,
|
|
129
|
+
keepInParent
|
|
100
130
|
} = this.props;
|
|
101
|
-
|
|
131
|
+
var defaultOptions = keepInParent ? KEEP_IN_PARENT_OPTIONS : {
|
|
102
132
|
placement: 'auto',
|
|
103
133
|
modifiers: {
|
|
104
134
|
preventOverflow: {
|
|
105
135
|
boundariesElement: 'viewport'
|
|
106
136
|
}
|
|
107
137
|
}
|
|
108
|
-
}
|
|
138
|
+
};
|
|
139
|
+
var options = _objectSpread(_objectSpread(_objectSpread({}, defaultOptions), optionsProp), {}, {
|
|
140
|
+
modifiers: _objectSpread(_objectSpread(_objectSpread({}, defaultOptions.modifiers), optionsProp.modifiers), {}, {
|
|
141
|
+
preventOverflow: _objectSpread(_objectSpread({}, (_defaultOptions$modif = defaultOptions.modifiers) === null || _defaultOptions$modif === void 0 ? void 0 : _defaultOptions$modif.preventOverflow), (_optionsProp$modifier = optionsProp.modifiers) === null || _optionsProp$modifier === void 0 ? void 0 : _optionsProp$modifier.preventOverflow)
|
|
142
|
+
})
|
|
143
|
+
});
|
|
109
144
|
document.body.appendChild(this.element);
|
|
110
145
|
var parent = this.getVisibleElement(this.container.current);
|
|
111
146
|
if (parent == null) {
|
|
@@ -180,11 +215,18 @@ class Popper extends Component {
|
|
|
180
215
|
if (popper) popper.scheduleUpdate();
|
|
181
216
|
}
|
|
182
217
|
handleBlur(e) {
|
|
218
|
+
var {
|
|
219
|
+
closeOnBlur,
|
|
220
|
+
onBlur
|
|
221
|
+
} = this.props;
|
|
183
222
|
if (!(e.relatedTarget instanceof HTMLElement)) {
|
|
184
223
|
return;
|
|
185
224
|
}
|
|
186
225
|
if (!this.element.contains(e.relatedTarget)) {
|
|
187
|
-
|
|
226
|
+
onBlur === null || onBlur === void 0 || onBlur(e);
|
|
227
|
+
if (closeOnBlur) {
|
|
228
|
+
this.hide();
|
|
229
|
+
}
|
|
188
230
|
}
|
|
189
231
|
}
|
|
190
232
|
handleEnter() {
|
|
@@ -237,7 +279,7 @@ class Popper extends Component {
|
|
|
237
279
|
className: classNames(POPPER_CLASS_NAME, {
|
|
238
280
|
interactive
|
|
239
281
|
}, className),
|
|
240
|
-
onBlur:
|
|
282
|
+
onBlur: this.handleBlur,
|
|
241
283
|
tabIndex: closeOnBlur ? -1 : undefined,
|
|
242
284
|
role: "presentation",
|
|
243
285
|
children: /*#__PURE__*/_jsxs("div", {
|
|
@@ -279,9 +321,13 @@ _defineProperty(Popper, "defaultProps", {
|
|
|
279
321
|
onExited() {
|
|
280
322
|
// no-op
|
|
281
323
|
},
|
|
324
|
+
onBlur() {
|
|
325
|
+
// no-op
|
|
326
|
+
},
|
|
282
327
|
isShown: false,
|
|
283
328
|
interactive: false,
|
|
284
329
|
closeOnBlur: false,
|
|
330
|
+
keepInParent: false,
|
|
285
331
|
referenceObject: null,
|
|
286
332
|
'data-testid': undefined
|
|
287
333
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popper.js","names":["React","Component","ReactDOM","flushSync","classNames","CSSTransition","PopperJs","ThemeExport","SpectrumThemeProvider","jsx","_jsx","jsxs","_jsxs","POPPER_CLASS_NAME","Popper","constructor","props","_defineProperty","createRef","handleEnter","bind","handleExit","handleBlur","element","document","createElement","className","container","rAF","isShown","state","show","popper","componentDidUpdate","prevProps","cancelAnimationFrame","window","requestAnimationFrame","hide","componentWillUnmount","destroyPopper","getVisibleElement","clientHeight","clientWidth","parentElement","initPopper","statePopper","closeOnBlur","referenceObject","current","options","_objectSpread","placement","modifiers","preventOverflow","boundariesElement","body","appendChild","parent","scheduleUpdate","popperEl","querySelector","concat","HTMLElement","contains","activeElement","focus","setState","updateState","arguments","length","undefined","destroy","removeChild","e","relatedTarget","onEntered","onExited","renderContent","children","timeout","interactive","isPortal","in","nodeRef","ref","onClick","stopPropagation","onKeyDown","key","onBlur","tabIndex","role","render","dataTestId","style","display","createPortal","transitionMs"],"sources":["../../src/popper/Popper.tsx"],"sourcesContent":["/**\n * A component for creating popover dialogs. Only requires child element.\n *\n * <Popper\n * options={popperOptions}\n * className=\"whatever\"\n * onEntered={this.handleEnter}\n * onExited={this.handleExit}\n * closeOnBlur // if you want dialog to self close, on click outside\n * interactive // if popper contents will be interactable\n * isShown={variable} // controls if its shown or not,\n * ref={this.popper} // or via ref and this.popper.show() or this.popper.hide()\n * >\n * <ChildContent />\n * </Popper>\n */\n\nimport React, { Component } from 'react';\nimport ReactDOM, { flushSync } from 'react-dom';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport PopperJs, { type PopperOptions, type ReferenceObject } from 'popper.js';\nimport ThemeExport from '../ThemeExport';\nimport './Popper.scss';\nimport { SpectrumThemeProvider } from '../theme/SpectrumThemeProvider';\n\nconst POPPER_CLASS_NAME = 'popper';\n\ninterface PopperProps {\n children: React.ReactNode;\n options: PopperOptions;\n className: string;\n timeout: number;\n onEntered: () => void;\n onExited: () => void;\n isShown: boolean;\n closeOnBlur: boolean;\n interactive: boolean;\n referenceObject: ReferenceObject | null;\n 'data-testid'?: string;\n}\n\ninterface PopperState {\n show: boolean;\n popper: PopperJs | null;\n}\n\nclass Popper extends Component<PopperProps, PopperState> {\n static defaultProps = {\n options: {},\n className: '',\n timeout: ThemeExport.transitionMs,\n onEntered(): void {\n // no-op\n },\n onExited(): void {\n // no-op\n },\n isShown: false,\n interactive: false,\n closeOnBlur: false,\n referenceObject: null,\n 'data-testid': undefined,\n };\n\n constructor(props: PopperProps) {\n super(props);\n\n this.handleEnter = this.handleEnter.bind(this);\n this.handleExit = this.handleExit.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.element = document.createElement('div');\n this.element.className = 'popper-container';\n this.container = React.createRef<HTMLDivElement>();\n\n // cancelAnimationFrame does nothing if the handle isn't recognized\n // requestAnimationFrame provides a non-zero number, so 0 as a default should be safe\n this.rAF = 0;\n\n const { isShown } = this.props;\n\n this.state = {\n show: isShown,\n popper: null,\n };\n }\n\n componentDidUpdate(prevProps: PopperProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown) {\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n this.show();\n });\n } else {\n this.hide();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.destroyPopper(false);\n }\n\n element: HTMLDivElement;\n\n container: React.RefObject<HTMLDivElement>;\n\n nodeRef = React.createRef<HTMLDivElement>();\n\n // This is the request animation frame handle number\n rAF: number;\n\n /** Goes through an element and it's parents until the first visible element is found */\n getVisibleElement(element: HTMLElement | null): HTMLElement | null {\n if (\n element == null ||\n element.clientHeight > 0 ||\n element.clientWidth > 0\n ) {\n return element;\n }\n\n return this.getVisibleElement(element.parentElement);\n }\n\n initPopper(): void {\n const { popper: statePopper } = this.state;\n const { closeOnBlur, referenceObject } = this.props;\n\n if (statePopper) {\n return;\n }\n\n if (this.container.current === null) {\n return;\n }\n\n let { options } = this.props;\n options = {\n placement: 'auto',\n modifiers: { preventOverflow: { boundariesElement: 'viewport' } },\n ...options,\n };\n document.body.appendChild(this.element);\n\n let parent = this.getVisibleElement(this.container.current);\n if (parent == null) {\n parent = this.container.current;\n }\n\n const popper = new PopperJs(\n referenceObject || parent,\n this.element,\n options\n );\n popper.scheduleUpdate();\n\n // delayed due to scheduleUpdate\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n // If the current focus is not on the .popper or one of its descendants,\n // set the focus to the .popper element. This is necessary for close on\n // blur to work.\n if (closeOnBlur) {\n const popperEl = this.element.querySelector(`.${POPPER_CLASS_NAME}`);\n\n if (\n popperEl instanceof HTMLElement &&\n !popperEl.contains(document.activeElement)\n ) {\n popperEl.focus();\n }\n }\n });\n\n // Needed to make the animation work\n flushSync(() => {\n this.setState({ popper });\n });\n }\n\n destroyPopper(updateState = true): void {\n cancelAnimationFrame(this.rAF);\n\n const { popper } = this.state;\n if (!popper) {\n return;\n }\n\n popper.destroy();\n\n // If component is exiting and unmounted in\n // the same frame, destroy can be called twice.\n // Check to make sure removeChild isn't called twice.\n if (document.body.contains(this.element)) {\n document.body.removeChild(this.element);\n }\n\n if (updateState) {\n this.setState({ popper: null });\n }\n }\n\n show(): void {\n this.initPopper();\n\n // Needed to make the animation work\n flushSync(() => {\n this.setState({ show: true });\n });\n }\n\n hide(): void {\n this.setState({ show: false });\n }\n\n scheduleUpdate(): void {\n const { popper } = this.state;\n if (popper) popper.scheduleUpdate();\n }\n\n handleBlur(e: React.FocusEvent): void {\n if (!(e.relatedTarget instanceof HTMLElement)) {\n return;\n }\n if (!this.element.contains(e.relatedTarget)) {\n this.hide();\n }\n }\n\n handleEnter(): void {\n const { onEntered } = this.props;\n onEntered(); // trigger any parent component waiting for enter handler\n }\n\n handleExit(): void {\n const { onExited } = this.props;\n const { show } = this.state;\n if (!show) {\n this.destroyPopper();\n }\n onExited(); // trigger any parent component waiting for exited handler\n }\n\n renderContent(): JSX.Element {\n const { className, children, timeout, interactive, closeOnBlur } =\n this.props;\n const { show } = this.state;\n\n return (\n <SpectrumThemeProvider isPortal>\n <CSSTransition\n in={show}\n timeout={timeout}\n classNames=\"popper-transition\"\n onEntered={this.handleEnter}\n onExited={this.handleExit}\n nodeRef={this.nodeRef}\n >\n <div\n ref={this.nodeRef}\n onClick={e => {\n // stop click events from escaping popper\n e.stopPropagation();\n }}\n onKeyDown={e => {\n if (e.key === 'Escape') this.hide();\n }}\n className={classNames(\n POPPER_CLASS_NAME,\n { interactive },\n className\n )}\n onBlur={closeOnBlur ? this.handleBlur : undefined}\n tabIndex={closeOnBlur ? -1 : undefined}\n role=\"presentation\"\n >\n <div className=\"popper-content\">\n {children}\n {/* eslint-disable-next-line react/no-unknown-property */}\n <div className=\"popper-arrow\" x-arrow=\"\" />\n </div>\n </div>\n </CSSTransition>\n </SpectrumThemeProvider>\n );\n }\n\n render(): JSX.Element {\n const { popper } = this.state;\n const { 'data-testid': dataTestId } = this.props;\n return (\n <div\n className=\"popper-parent-container\"\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n {popper && ReactDOM.createPortal(this.renderContent(), this.element)}\n </div>\n );\n }\n}\n\nexport default Popper;\nexport type { PopperOptions, ReferenceObject };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Popper.js","names":["React","Component","ReactDOM","flushSync","classNames","CSSTransition","PopperJs","ThemeExport","SpectrumThemeProvider","jsx","_jsx","jsxs","_jsxs","POPPER_CLASS_NAME","KEEP_IN_PARENT_OPTIONS","placement","modifiers","preventOverflow","boundariesElement","fn","data","options","_PopperJs$Defaults$mo","_PopperJs$Defaults$mo2","modified","Defaults","call","styles","maxHeight","concat","document","documentElement","clientHeight","offsets","popper","top","padding","flip","enabled","Popper","constructor","props","_defineProperty","createRef","handleEnter","bind","handleExit","handleBlur","element","createElement","className","container","rAF","isShown","state","show","componentDidUpdate","prevProps","cancelAnimationFrame","window","requestAnimationFrame","hide","scheduleUpdate","componentWillUnmount","destroyPopper","getVisibleElement","clientWidth","parentElement","initPopper","_defaultOptions$modif","_optionsProp$modifier","statePopper","closeOnBlur","referenceObject","current","optionsProp","keepInParent","defaultOptions","_objectSpread","body","appendChild","parent","popperEl","querySelector","HTMLElement","contains","activeElement","focus","setState","updateState","arguments","length","undefined","destroy","removeChild","e","onBlur","relatedTarget","onEntered","onExited","renderContent","children","timeout","interactive","isPortal","in","nodeRef","ref","onClick","stopPropagation","onKeyDown","key","tabIndex","role","render","dataTestId","style","display","createPortal","transitionMs"],"sources":["../../src/popper/Popper.tsx"],"sourcesContent":["/**\n * A component for creating popover dialogs. Only requires child element.\n *\n * <Popper\n * options={popperOptions}\n * className=\"whatever\"\n * onEntered={this.handleEnter}\n * onExited={this.handleExit}\n * closeOnBlur // if you want dialog to self close, on click outside\n * interactive // if popper contents will be interactable\n * isShown={variable} // controls if its shown or not,\n * ref={this.popper} // or via ref and this.popper.show() or this.popper.hide()\n * >\n * <ChildContent />\n * </Popper>\n */\n\nimport React, { Component } from 'react';\nimport ReactDOM, { flushSync } from 'react-dom';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport PopperJs, { type PopperOptions, type ReferenceObject } from 'popper.js';\nimport ThemeExport from '../ThemeExport';\nimport './Popper.scss';\nimport { SpectrumThemeProvider } from '../theme/SpectrumThemeProvider';\n\nconst POPPER_CLASS_NAME = 'popper';\n\nconst KEEP_IN_PARENT_OPTIONS: PopperOptions = {\n placement: 'bottom-end',\n modifiers: {\n preventOverflow: {\n boundariesElement: 'scrollParent',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fn: (data, options: any) => {\n const modified = PopperJs.Defaults.modifiers?.preventOverflow?.fn?.(\n data,\n options\n );\n\n if (modified == null) {\n return data;\n }\n\n modified.styles.maxHeight = `${\n document.documentElement.clientHeight -\n data.offsets.popper.top -\n 2 * options.padding // Double padding because there is top and bottom to account for\n }px`;\n return modified ?? data;\n },\n },\n flip: {\n enabled: false,\n },\n },\n};\n\ninterface PopperProps {\n children: React.ReactNode;\n options: PopperOptions;\n className: string;\n timeout: number;\n onEntered: () => void;\n onExited: () => void;\n onBlur: (e: React.FocusEvent) => void;\n isShown: boolean;\n closeOnBlur: boolean;\n interactive: boolean;\n keepInParent: boolean;\n referenceObject: ReferenceObject | null;\n 'data-testid'?: string;\n}\n\ninterface PopperState {\n show: boolean;\n popper: PopperJs | null;\n}\n\nclass Popper extends Component<PopperProps, PopperState> {\n static defaultProps = {\n options: {},\n className: '',\n timeout: ThemeExport.transitionMs,\n onEntered(): void {\n // no-op\n },\n onExited(): void {\n // no-op\n },\n onBlur(): void {\n // no-op\n },\n isShown: false,\n interactive: false,\n closeOnBlur: false,\n keepInParent: false,\n referenceObject: null,\n 'data-testid': undefined,\n };\n\n constructor(props: PopperProps) {\n super(props);\n\n this.handleEnter = this.handleEnter.bind(this);\n this.handleExit = this.handleExit.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.element = document.createElement('div');\n this.element.className = 'popper-container';\n this.container = React.createRef<HTMLDivElement>();\n\n // cancelAnimationFrame does nothing if the handle isn't recognized\n // requestAnimationFrame provides a non-zero number, so 0 as a default should be safe\n this.rAF = 0;\n\n const { isShown } = this.props;\n\n this.state = {\n show: isShown,\n popper: null,\n };\n }\n\n componentDidUpdate(prevProps: PopperProps): void {\n const { isShown } = this.props;\n const { popper } = this.state;\n\n if (prevProps.isShown !== isShown) {\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n if (isShown) {\n this.show();\n } else {\n this.hide();\n }\n });\n }\n\n if (popper) {\n popper.scheduleUpdate();\n }\n }\n\n componentWillUnmount(): void {\n this.destroyPopper(false);\n }\n\n element: HTMLDivElement;\n\n container: React.RefObject<HTMLDivElement>;\n\n nodeRef = React.createRef<HTMLDivElement>();\n\n // This is the request animation frame handle number\n rAF: number;\n\n /** Goes through an element and it's parents until the first visible element is found */\n getVisibleElement(element: HTMLElement | null): HTMLElement | null {\n if (\n element == null ||\n element.clientHeight > 0 ||\n element.clientWidth > 0\n ) {\n return element;\n }\n\n return this.getVisibleElement(element.parentElement);\n }\n\n initPopper(): void {\n const { popper: statePopper } = this.state;\n const { closeOnBlur, referenceObject } = this.props;\n\n if (statePopper) {\n return;\n }\n\n if (this.container.current === null) {\n return;\n }\n\n const { options: optionsProp, keepInParent } = this.props;\n const defaultOptions = keepInParent\n ? KEEP_IN_PARENT_OPTIONS\n : ({\n placement: 'auto',\n modifiers: { preventOverflow: { boundariesElement: 'viewport' } },\n } satisfies PopperOptions);\n\n const options = {\n ...defaultOptions,\n ...optionsProp,\n modifiers: {\n ...defaultOptions.modifiers,\n ...optionsProp.modifiers,\n preventOverflow: {\n ...defaultOptions.modifiers?.preventOverflow,\n ...optionsProp.modifiers?.preventOverflow,\n },\n },\n } satisfies PopperOptions;\n\n document.body.appendChild(this.element);\n\n let parent = this.getVisibleElement(this.container.current);\n if (parent == null) {\n parent = this.container.current;\n }\n\n const popper = new PopperJs(\n referenceObject || parent,\n this.element,\n options\n );\n popper.scheduleUpdate();\n\n // delayed due to scheduleUpdate\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n // If the current focus is not on the .popper or one of its descendants,\n // set the focus to the .popper element. This is necessary for close on\n // blur to work.\n if (closeOnBlur) {\n const popperEl = this.element.querySelector(`.${POPPER_CLASS_NAME}`);\n\n if (\n popperEl instanceof HTMLElement &&\n !popperEl.contains(document.activeElement)\n ) {\n popperEl.focus();\n }\n }\n });\n\n // Needed to make the animation work\n flushSync(() => {\n this.setState({ popper });\n });\n }\n\n destroyPopper(updateState = true): void {\n cancelAnimationFrame(this.rAF);\n\n const { popper } = this.state;\n if (!popper) {\n return;\n }\n\n popper.destroy();\n\n // If component is exiting and unmounted in\n // the same frame, destroy can be called twice.\n // Check to make sure removeChild isn't called twice.\n if (document.body.contains(this.element)) {\n document.body.removeChild(this.element);\n }\n\n if (updateState) {\n this.setState({ popper: null });\n }\n }\n\n show(): void {\n this.initPopper();\n\n // Needed to make the animation work\n flushSync(() => {\n this.setState({ show: true });\n });\n }\n\n hide(): void {\n this.setState({ show: false });\n }\n\n scheduleUpdate(): void {\n const { popper } = this.state;\n if (popper) popper.scheduleUpdate();\n }\n\n handleBlur(e: React.FocusEvent): void {\n const { closeOnBlur, onBlur } = this.props;\n if (!(e.relatedTarget instanceof HTMLElement)) {\n return;\n }\n if (!this.element.contains(e.relatedTarget)) {\n onBlur?.(e);\n if (closeOnBlur) {\n this.hide();\n }\n }\n }\n\n handleEnter(): void {\n const { onEntered } = this.props;\n onEntered(); // trigger any parent component waiting for enter handler\n }\n\n handleExit(): void {\n const { onExited } = this.props;\n const { show } = this.state;\n if (!show) {\n this.destroyPopper();\n }\n onExited(); // trigger any parent component waiting for exited handler\n }\n\n renderContent(): JSX.Element {\n const { className, children, timeout, interactive, closeOnBlur } =\n this.props;\n const { show } = this.state;\n\n return (\n <SpectrumThemeProvider isPortal>\n <CSSTransition\n in={show}\n timeout={timeout}\n classNames=\"popper-transition\"\n onEntered={this.handleEnter}\n onExited={this.handleExit}\n nodeRef={this.nodeRef}\n >\n <div\n ref={this.nodeRef}\n onClick={e => {\n // stop click events from escaping popper\n e.stopPropagation();\n }}\n onKeyDown={e => {\n if (e.key === 'Escape') this.hide();\n }}\n className={classNames(\n POPPER_CLASS_NAME,\n { interactive },\n className\n )}\n onBlur={this.handleBlur}\n tabIndex={closeOnBlur ? -1 : undefined}\n role=\"presentation\"\n >\n <div className=\"popper-content\">\n {children}\n {/* eslint-disable-next-line react/no-unknown-property */}\n <div className=\"popper-arrow\" x-arrow=\"\" />\n </div>\n </div>\n </CSSTransition>\n </SpectrumThemeProvider>\n );\n }\n\n render(): JSX.Element {\n const { popper } = this.state;\n const { 'data-testid': dataTestId } = this.props;\n return (\n <div\n className=\"popper-parent-container\"\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n {popper && ReactDOM.createPortal(this.renderContent(), this.element)}\n </div>\n );\n }\n}\n\nexport default Popper;\nexport type { PopperOptions, ReferenceObject };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--dh-color-loading-spinner-primary: var(--dh-color-accent-bg);--dh-color-loading-spinner-secondary: color-mix( in srgb, var(--dh-color-gray-800) 50%, transparent );--dh-color-quickactions-bg: color-mix( in srgb, var(--dh-color-visual-gray) 90%, transparent );--dh-color-radial-reaction: color-mix( in srgb, var(--dh-color-visual-gray) 60%, transparent );--dh-color-colorpicker-border: color-mix( in srgb, var(--dh-color-visual-gray) 10%, transparent );--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: color-mix( in srgb, var(--dh-color-accent) 8%, transparent );--dh-color-random-area-plot-animation-fg-stroke: color-mix( in srgb, var(--dh-color-accent) 20%, transparent );--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-gray-800);--dh-color-action-active-fg: var(--dh-color-gray-50);--dh-color-action-active-border: var(--dh-color-gray-800);--dh-color-action-active-hover-bg: var(--dh-color-gray-900);--dh-color-action-active-hover-fg: var(--dh-color-gray-50);--dh-color-action-active-hover-border: var(--dh-color-gray-900);--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-75);--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-hover-border);--dh-color-input-focus-border: var(--dh-color-border-focus);--dh-color-search-icon: var(--dh-color-fg);--dh-color-form-control-error: var(--dh-color-visual-negative);--dh-color-form-control-error-shadow: color-mix( in srgb, var(--dh-color-visual-negative) 25%, transparent );--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: var(--dh-color-accent-900);--dh-color-item-list-drop-target-fg: var(--dh-color-white);--dh-color-item-list-keyboard-selected-bg: color-mix( in srgb, var(--dh-color-accent) 50%, transparent );--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-300);--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: color-mix( in srgb, var(--dh-color-visual-gray) 2%, transparent );--dh-color-well-border: color-mix( in srgb, var(--dh-color-visual-gray) 5%, transparent );--dh-toggle-switch-bg: var(--dh-color-gray-500)}/*# sourceMappingURL=theme-dark-components.css.map */
|
|
1
|
+
:root{--dh-color-loading-spinner-primary: var(--dh-color-accent-bg);--dh-color-loading-spinner-secondary: color-mix( in srgb, var(--dh-color-gray-800) 50%, transparent );--dh-color-quickactions-bg: color-mix( in srgb, var(--dh-color-visual-gray) 90%, transparent );--dh-color-radial-reaction: color-mix( in srgb, var(--dh-color-visual-gray) 60%, transparent );--dh-color-colorpicker-border: color-mix( in srgb, var(--dh-color-visual-gray) 10%, transparent );--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: color-mix( in srgb, var(--dh-color-accent) 8%, transparent );--dh-color-random-area-plot-animation-fg-stroke: color-mix( in srgb, var(--dh-color-accent) 20%, transparent );--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-gray-800);--dh-color-action-active-fg: var(--dh-color-gray-50);--dh-color-action-active-border: var(--dh-color-gray-800);--dh-color-action-active-hover-bg: var(--dh-color-gray-900);--dh-color-action-active-hover-fg: var(--dh-color-gray-50);--dh-color-action-active-hover-border: var(--dh-color-gray-900);--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-75);--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-hover-border);--dh-color-input-focus-border: var(--dh-color-border-focus);--dh-color-search-icon: var(--dh-color-fg);--dh-color-form-control-error: var(--dh-color-visual-negative);--dh-color-form-control-error-shadow: color-mix( in srgb, var(--dh-color-visual-negative) 25%, transparent );--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: var(--dh-color-accent-900);--dh-color-item-list-drop-target-fg: var(--dh-color-white);--dh-color-item-list-keyboard-selected-bg: color-mix( in srgb, var(--dh-color-accent) 50%, transparent );--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-300);--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-popover-border: var(--dh-color-gray-400);--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: color-mix( in srgb, var(--dh-color-visual-gray) 2%, transparent );--dh-color-well-border: color-mix( in srgb, var(--dh-color-visual-gray) 5%, transparent );--dh-toggle-switch-bg: var(--dh-color-gray-500)}/*# 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,sGAKA,+FAKA,+FAKA,kGAOA,uCAGA,mDACA,0DACA,mDACA,qDAIA,4GAKA,+GAKA,kEACA,qEAGA,8CACA,2CACA,iDAEA,oDAEA,oDACA,uDACA,6DAEA,sDACA,qDACA,0DAEA,4DACA,2DACA,gEAEA,2CACA,6DACA,4DAGA,6CACA,sDAGA,6CACA,0CACA,gDACA,uDACA,qDACA,0DACA,8CACA,4DACA,4DACA,4DAGA,2CACA,+DACA,6GAOA,gDAGA,gDACA,gDACA,sDACA,uDACA,kEAGA,qCACA,iEACA,+DACA,uDACA,qEACA,mFAGA,oEACA,iEACA,2DAEA,yGAeA,gEACA,yDACA,qEAGA,kDAGA,wCAGA,yDACA,2CAGA,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/theme/theme-dark/theme-dark-components.css"],"names":[],"mappings":"AAEA,MACE,8DACA,sGAKA,+FAKA,+FAKA,kGAOA,uCAGA,mDACA,0DACA,mDACA,qDAIA,4GAKA,+GAKA,kEACA,qEAGA,8CACA,2CACA,iDAEA,oDAEA,oDACA,uDACA,6DAEA,sDACA,qDACA,0DAEA,4DACA,2DACA,gEAEA,2CACA,6DACA,4DAGA,6CACA,sDAGA,6CACA,0CACA,gDACA,uDACA,qDACA,0DACA,8CACA,4DACA,4DACA,4DAGA,2CACA,+DACA,6GAOA,gDAGA,gDACA,gDACA,sDACA,uDACA,kEAGA,qCACA,iEACA,+DACA,uDACA,qEACA,mFAGA,oEACA,iEACA,2DAEA,yGAeA,gEACA,yDACA,qEAGA,kDAGA,wCAGA,yDACA,2CAGA,0CACA,oDAGA,gDACA,0CACA,0DAGA,sFAKA,0FAOA","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: color-mix(\n in srgb,\n var(--dh-color-gray-800) 50%,\n transparent\n );\n --dh-color-quickactions-bg: color-mix(\n in srgb,\n var(--dh-color-visual-gray) 90%,\n transparent\n );\n --dh-color-radial-reaction: color-mix(\n in srgb,\n var(--dh-color-visual-gray) 60%,\n transparent\n );\n --dh-color-colorpicker-border: color-mix(\n in srgb,\n var(--dh-color-visual-gray) 10%,\n transparent\n );\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: color-mix(\n in srgb,\n var(--dh-color-accent) 8%,\n transparent\n );\n --dh-color-random-area-plot-animation-fg-stroke: color-mix(\n in srgb,\n var(--dh-color-accent) 20%,\n transparent\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-gray-800);\n --dh-color-action-active-fg: var(--dh-color-gray-50);\n --dh-color-action-active-border: var(--dh-color-gray-800);\n\n --dh-color-action-active-hover-bg: var(--dh-color-gray-900);\n --dh-color-action-active-hover-fg: var(--dh-color-gray-50);\n --dh-color-action-active-hover-border: var(--dh-color-gray-900);\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-75);\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-hover-border);\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: var(--dh-color-visual-negative);\n --dh-color-form-control-error-shadow: color-mix(\n in srgb,\n var(--dh-color-visual-negative) 25%,\n transparent\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: var(--dh-color-accent-900);\n --dh-color-item-list-drop-target-fg: var(--dh-color-white);\n\n --dh-color-item-list-keyboard-selected-bg: color-mix(\n in srgb,\n var(--dh-color-accent) 50%,\n transparent\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-300);\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 --dh-color-popover-border: var(--dh-color-gray-400);\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: color-mix(\n in srgb,\n var(--dh-color-visual-gray) 2%,\n transparent\n );\n --dh-color-well-border: color-mix(\n in srgb,\n var(--dh-color-visual-gray) 5%,\n transparent\n );\n\n /* Switch */\n --dh-toggle-switch-bg: var(--dh-color-gray-500);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--dh-color-loading-spinner-primary: var(--dh-color-accent-bg);--dh-color-loading-spinner-secondary: color-mix( in srgb, var(--dh-color-gray-800) 50%, transparent );--dh-color-quickactions-bg: color-mix( in srgb, var(--dh-color-visual-gray) 90%, transparent );--dh-color-radial-reaction: color-mix( in srgb, var(--dh-color-visual-gray) 60%, transparent );--dh-color-colorpicker-border: color-mix( in srgb, var(--dh-color-visual-gray) 10%, transparent );--dh-logo-img: var(--dh-logo-light-img);--dh-color-login-form-bg: var(--dh-color-gray-200);--dh-color-login-status-message: var(--dh-color-gray-600);--dh-color-login-logo-bg: var(--dh-color-gray-50);--dh-color-login-footer-fg: var(--dh-color-gray-700);--dh-color-random-area-plot-animation-fg-fill: color-mix( in srgb, var(--dh-color-accent) 8%, transparent );--dh-color-random-area-plot-animation-fg-stroke: color-mix( in srgb, var(--dh-color-accent) 20%, transparent );--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-hover-border);--dh-color-input-focus-border: var(--dh-color-border-focus);--dh-color-search-icon: var(--dh-color-fg);--dh-color-form-control-error: var(--dh-color-visual-negative);--dh-color-form-control-error-shadow: color-mix( in srgb, var(--dh-color-visual-negative) 25%, transparent );--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-300);--dh-color-item-list-selected-border: var(--dh-color-accent-900);--dh-color-item-list-drop-target-fg: var(--dh-color-white);--dh-color-item-list-keyboard-selected-bg: color-mix( in srgb, var(--dh-color-accent) 50%, transparent );--dh-color-golden-layout-tab-header-bg: var(--dh-color-gray-200);--dh-color-golden-layout-tab-bg: var(--dh-color-gray-100);--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-300);--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-gray-50);--dh-color-tooltip-bg: var(--dh-color-gray-50);--dh-color-tooltip-fg: var(--dh-color-fg);--dh-color-tooltip-box-shadow: var(--dh-color-dropshadow);--dh-color-well-bg: color-mix(var(--dh-color-visual-gray) 2%, transparent);--dh-color-well-border: color-mix( in srgb, var(--dh-color-visual-gray) 5%, transparent );--dh-toggle-switch-bg: var(--dh-color-gray-400)}/*# sourceMappingURL=theme-light-components.css.map */
|
|
1
|
+
:root{--dh-color-loading-spinner-primary: var(--dh-color-accent-bg);--dh-color-loading-spinner-secondary: color-mix( in srgb, var(--dh-color-gray-800) 50%, transparent );--dh-color-quickactions-bg: color-mix( in srgb, var(--dh-color-visual-gray) 90%, transparent );--dh-color-radial-reaction: color-mix( in srgb, var(--dh-color-visual-gray) 60%, transparent );--dh-color-colorpicker-border: color-mix( in srgb, var(--dh-color-visual-gray) 10%, transparent );--dh-logo-img: var(--dh-logo-light-img);--dh-color-login-form-bg: var(--dh-color-gray-200);--dh-color-login-status-message: var(--dh-color-gray-600);--dh-color-login-logo-bg: var(--dh-color-gray-50);--dh-color-login-footer-fg: var(--dh-color-gray-700);--dh-color-random-area-plot-animation-fg-fill: color-mix( in srgb, var(--dh-color-accent) 8%, transparent );--dh-color-random-area-plot-animation-fg-stroke: color-mix( in srgb, var(--dh-color-accent) 20%, transparent );--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-hover-border);--dh-color-input-focus-border: var(--dh-color-border-focus);--dh-color-search-icon: var(--dh-color-fg);--dh-color-form-control-error: var(--dh-color-visual-negative);--dh-color-form-control-error-shadow: color-mix( in srgb, var(--dh-color-visual-negative) 25%, transparent );--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-300);--dh-color-item-list-selected-border: var(--dh-color-accent-900);--dh-color-item-list-drop-target-fg: var(--dh-color-white);--dh-color-item-list-keyboard-selected-bg: color-mix( in srgb, var(--dh-color-accent) 50%, transparent );--dh-color-golden-layout-tab-header-bg: var(--dh-color-gray-200);--dh-color-golden-layout-tab-bg: var(--dh-color-gray-100);--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-300);--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-gray-50);--dh-color-popover-border: var(--dh-color-gray-400);--dh-color-tooltip-bg: var(--dh-color-gray-50);--dh-color-tooltip-fg: var(--dh-color-fg);--dh-color-tooltip-box-shadow: var(--dh-color-dropshadow);--dh-color-well-bg: color-mix(var(--dh-color-visual-gray) 2%, transparent);--dh-color-well-border: color-mix( in srgb, var(--dh-color-visual-gray) 5%, transparent );--dh-toggle-switch-bg: var(--dh-color-gray-400)}/*# sourceMappingURL=theme-light-components.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/theme/theme-light/theme-light-components.css"],"names":[],"mappings":"AAEA,MACE,8DACA,sGAKA,+FAKA,+FAKA,kGAOA,wCAGA,mDACA,0DACA,kDACA,qDAIA,4GAKA,+GAKA,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,4DACA,4DAGA,2CACA,+DACA,6GAOA,gDAGA,gDACA,gDACA,sDACA,uDACA,kEAGA,qCACA,iEACA,+DACA,uDACA,qEACA,mFAGA,oEACA,iEACA,2DAEA,yGAeA,iEACA,0DACA,qEAGA,kDAGA,wCAGA,yDACA,2CAGA,+
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/theme/theme-light/theme-light-components.css"],"names":[],"mappings":"AAEA,MACE,8DACA,sGAKA,+FAKA,+FAKA,kGAOA,wCAGA,mDACA,0DACA,kDACA,qDAIA,4GAKA,+GAKA,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,4DACA,4DAGA,2CACA,+DACA,6GAOA,gDAGA,gDACA,gDACA,sDACA,uDACA,kEAGA,qCACA,iEACA,+DACA,uDACA,qEACA,mFAGA,oEACA,iEACA,2DAEA,yGAeA,iEACA,0DACA,qEAGA,kDAGA,wCAGA,yDACA,2CAGA,+CACA,oDAGA,+CACA,0CACA,0DAGA,2EACA,0FAOA","file":"theme-light-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: color-mix(\n in srgb,\n var(--dh-color-gray-800) 50%,\n transparent\n );\n --dh-color-quickactions-bg: color-mix(\n in srgb,\n var(--dh-color-visual-gray) 90%,\n transparent\n );\n --dh-color-radial-reaction: color-mix(\n in srgb,\n var(--dh-color-visual-gray) 60%,\n transparent\n );\n --dh-color-colorpicker-border: color-mix(\n in srgb,\n var(--dh-color-visual-gray) 10%,\n transparent\n );\n\n /* Logo */\n --dh-logo-img: var(--dh-logo-light-img);\n\n /* Login */\n --dh-color-login-form-bg: var(--dh-color-gray-200);\n --dh-color-login-status-message: var(--dh-color-gray-600);\n --dh-color-login-logo-bg: var(--dh-color-gray-50);\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: color-mix(\n in srgb,\n var(--dh-color-accent) 8%,\n transparent\n );\n --dh-color-random-area-plot-animation-fg-stroke: color-mix(\n in srgb,\n var(--dh-color-accent) 20%,\n transparent\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-hover-border);\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: var(--dh-color-visual-negative);\n --dh-color-form-control-error-shadow: color-mix(\n in srgb,\n var(--dh-color-visual-negative) 25%,\n transparent\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-300);\n --dh-color-item-list-selected-border: var(--dh-color-accent-900);\n --dh-color-item-list-drop-target-fg: var(--dh-color-white);\n\n --dh-color-item-list-keyboard-selected-bg: color-mix(\n in srgb,\n var(--dh-color-accent) 50%,\n transparent\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-200);\n --dh-color-golden-layout-tab-bg: var(--dh-color-gray-100);\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-300);\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-gray-50);\n --dh-color-popover-border: var(--dh-color-gray-400);\n\n /* Tooltips */\n --dh-color-tooltip-bg: var(--dh-color-gray-50);\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: color-mix(var(--dh-color-visual-gray) 2%, transparent);\n --dh-color-well-border: color-mix(\n in srgb,\n var(--dh-color-visual-gray) 5%,\n transparent\n );\n\n /* Switch */\n --dh-toggle-switch-bg: var(--dh-color-gray-400);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/components",
|
|
3
|
-
"version": "1.8.1-beta.
|
|
3
|
+
"version": "1.8.1-beta.11+e1c2dc47",
|
|
4
4
|
"description": "Deephaven React component library",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@adobe/react-spectrum": "3.38.0",
|
|
28
|
-
"@deephaven/icons": "^1.8.1-beta.
|
|
29
|
-
"@deephaven/log": "^1.8.1-beta.
|
|
30
|
-
"@deephaven/react-hooks": "^1.8.1-beta.
|
|
31
|
-
"@deephaven/utils": "^1.8.1-beta.
|
|
28
|
+
"@deephaven/icons": "^1.8.1-beta.11+e1c2dc47",
|
|
29
|
+
"@deephaven/log": "^1.8.1-beta.11+e1c2dc47",
|
|
30
|
+
"@deephaven/react-hooks": "^1.8.1-beta.11+e1c2dc47",
|
|
31
|
+
"@deephaven/utils": "^1.8.1-beta.11+e1c2dc47",
|
|
32
32
|
"@fontsource/fira-mono": "5.0.13",
|
|
33
33
|
"@fontsource/fira-sans": "5.0.20",
|
|
34
34
|
"@fortawesome/fontawesome-svg-core": "^6.2.1",
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
"react-is": ">=16.8.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@deephaven/mocks": "^1.8.1-beta.
|
|
66
|
-
"@deephaven/test-utils": "^1.8.1-beta.
|
|
65
|
+
"@deephaven/mocks": "^1.8.1-beta.11+e1c2dc47",
|
|
66
|
+
"@deephaven/test-utils": "^1.8.1-beta.11+e1c2dc47",
|
|
67
67
|
"react-redux": "^7.2.7"
|
|
68
68
|
},
|
|
69
69
|
"files": [
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"publishConfig": {
|
|
79
79
|
"access": "public"
|
|
80
80
|
},
|
|
81
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "e1c2dc475e9303f4ffda5373de403f3a07520baa"
|
|
82
82
|
}
|