From f31a76c4302b8156b9a15b2b1ad144544035617d Mon Sep 17 00:00:00 2001 From: Brian Ingles Date: Tue, 21 Nov 2023 11:39:04 -0600 Subject: [PATCH] Custom time select caret #1634 --- packages/components/scss/BaseStyleSheet.scss | 10 +++++++++- packages/components/src/CustomTimeSelect.scss | 18 +++++++++++++----- packages/components/src/CustomTimeSelect.tsx | 6 ++---- packages/components/src/theme/theme-svg.scss | 13 ++++++++----- 4 files changed, 32 insertions(+), 15 deletions(-) diff --git a/packages/components/scss/BaseStyleSheet.scss b/packages/components/scss/BaseStyleSheet.scss index 65841b32e1..d0c2d20540 100644 --- a/packages/components/scss/BaseStyleSheet.scss +++ b/packages/components/scss/BaseStyleSheet.scss @@ -461,8 +461,11 @@ form label small { } .custom-select { + $caret-size: 10px 6px; + $error-size: 16px; + background-image: var(--dh-svg-icon-select-indicator); - background-size: 10px 6px; + background-size: $caret-size; &:hover { background-image: var(--dh-svg-icon-select-indicator-hover); @@ -471,9 +474,14 @@ form label small { &.is-invalid, &.is-invalid:focus { border-color: var(--dh-color-form-control-error); + background-size: $caret-size, $error-size; background-image: var(--dh-svg-icon-select-indicator), var(--dh-svg-icon-error); } + &.is-invalid:hover { + background-image: var(--dh-svg-icon-select-indicator-hover), + var(--dh-svg-icon-error); + } &.is-invalid:focus { box-shadow: 0 0 0 0.2rem var(--dh-color-form-control-error-shadow); } diff --git a/packages/components/src/CustomTimeSelect.scss b/packages/components/src/CustomTimeSelect.scss index d723833f64..94a9ded85e 100644 --- a/packages/components/src/CustomTimeSelect.scss +++ b/packages/components/src/CustomTimeSelect.scss @@ -1,4 +1,5 @@ @import '../scss/custom.scss'; +@import '../scss/util.scss'; $cs-option-btn-color: $dropdown-link-color; $cs-option-keyboard-selected-bg: rgba($primary, 0.5); @@ -10,20 +11,27 @@ $cs-option-hover-color: $dropdown-link-hover-color; .cs-dropdown .cs-btn { display: flex; - direction: row; + flex-direction: row; + align-items: center; justify-content: space-between; border-radius: $border-radius; border: $input-border-width solid $input-border-color; min-width: 14rem; .cs-caret { - color: var(--dh-color-selector-fg); - &:hover { - color: var(--dh-color-selector-hover-fg); - } + @include icon-image-mask(var(--dh-svg-icon-selector-caret), 10px 6px); + + background-color: var(--dh-color-selector-fg); + width: 10px; + height: 10px; + margin-right: 4px; } } + .cs-dropdown:hover .cs-btn:not(:disabled) .cs-caret { + background-color: var(--dh-color-selector-hover-fg); + } + .cs-dropdown-invalid .cs-btn-invalid { border-color: $danger; } diff --git a/packages/components/src/CustomTimeSelect.tsx b/packages/components/src/CustomTimeSelect.tsx index ef4baaebd8..3dacf2490a 100644 --- a/packages/components/src/CustomTimeSelect.tsx +++ b/packages/components/src/CustomTimeSelect.tsx @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import { PopperOptions } from 'popper.js'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { vsCheck, dhSort, IconDefinition } from '@deephaven/icons'; +import { vsCheck, IconDefinition } from '@deephaven/icons'; import { TimeUtils } from '@deephaven/utils'; import classNames from 'classnames'; import TimeInput, { TimeInputElement } from './TimeInput'; @@ -515,9 +515,7 @@ class CustomTimeSelect extends Component< > {this.getSelectedText()} - - - +