diff --git a/assets/stylesheets/App.css b/assets/stylesheets/App.css index 8591ab5f..ef43de58 100644 --- a/assets/stylesheets/App.css +++ b/assets/stylesheets/App.css @@ -357,8 +357,83 @@ code { padding: 0 !important; } -.ant-popover-inner:has(.keyboard-shortcut-tooltip) { - padding: 8px !important; +:root, +.light-mode, +html:has(.light-mode) { + --kbd-color: #363636; + --kbd-bg: #efefef; + --kbd-inset: #e8e8e8; + --kbd-edge: #c3c3c3; + --kbd-ridge: #c9c9c9; + --kbd-drop-shadow: #333333; + --kbd-text-shadow: #f6f6f6; +} + +.dark-mode, +html:has(.dark-mode) { + --kbd-color: #ececec; + --kbd-bg: #3a3a3a; + --kbd-inset: #323232; + --kbd-edge: #1c1c1c; + --kbd-ridge: #141414; + --kbd-drop-shadow: #000000; + --kbd-text-shadow: #111111; +} + +.keyboard-key { + display: inline-block; + color: var(--kbd-color); + text-decoration: none; + text-align: center; + background: var(--kbd-bg); + padding: 3px 7px; + margin: 5px 3px; + border-radius: 4px; + box-shadow: + inset 0 0 25px var(--kbd-inset), + 0 1px 0 var(--kbd-edge), + 0 2px 0 var(--kbd-ridge), + 0 2px 3px var(--kbd-drop-shadow); + text-shadow: 0 1px 0 var(--kbd-text-shadow); +} + +.keyboard-key-md { + padding: 4.5px 10.5px; + margin: 7.5px 3.5px; + font-size: 110%; + border-radius: 6px; + box-shadow: + inset 0 0 37.5px var(--kbd-inset), + 0 1.5px 0 var(--kbd-edge), + 0 3px 0 var(--kbd-ridge), + 0 3px 4.5px var(--kbd-drop-shadow); + text-shadow: 0 1.5px 0 var(--kbd-text-shadow); +} + +.keyboard-key-lg { + padding: 6px 14px; + margin: 10px 6px; + font-size: 200%; + border-radius: 8px; + box-shadow: + inset 0 0 50px var(--kbd-inset), + 0 2px 0 var(--kbd-edge), + 0 4px 0 var(--kbd-ridge), + 0 4px 6px var(--kbd-drop-shadow); + text-shadow: 0 2px 0 var(--kbd-text-shadow); +} + +.keyboard-key-xl { + padding: 9px 21px; + margin: 15px 9px; + font-size: 300%; + border-radius: 12px; + box-shadow: + inset 0 0 75px var(--kbd-inset), + 0 3px 0 var(--kbd-edge), + 0 6px 0 var(--kbd-ridge), + 0 6px 9px var(--kbd-drop-shadow); + text-shadow: 0 3px 0 var(--kbd-text-shadow); } .cursor-tooltip { diff --git a/src/components/Dashboard/common/CursorTooltip.jsx b/src/components/Dashboard/common/CursorTooltip.jsx index 70fb736c..5fa760e7 100644 --- a/src/components/Dashboard/common/CursorTooltip.jsx +++ b/src/components/Dashboard/common/CursorTooltip.jsx @@ -15,17 +15,19 @@ const getTooltipRoot = () => { return root } -const CursorTooltip = ({ content, visible, pointRef }) => { +const CursorTooltip = ({ content, visible, pointRef, hideBorder = false }) => { const tooltipRef = useRef(null) const sizeRef = useRef({ width: 0, height: 0 }) const frameRef = useRef(null) const contentRef = useRef(content) const lastContentRef = useRef(content) + const lastHideBorderRef = useRef(hideBorder) const [root, setRoot] = useState(null) contentRef.current = content if (content != null && content !== false && content !== '') { lastContentRef.current = content + lastHideBorderRef.current = hideBorder } const applyPosition = useCallback(() => { @@ -96,10 +98,28 @@ const CursorTooltip = ({ content, visible, pointRef }) => { if (!root) return null + const tooltipContent = lastHideBorderRef.current ? ( + lastContentRef.current + ) : ( + + {lastContentRef.current} + + ) + return createPortal(
{ willChange: 'transform, opacity' }} > - - {lastContentRef.current} - + {tooltipContent}
, root ) @@ -128,6 +138,7 @@ const CursorTooltip = ({ content, visible, pointRef }) => { CursorTooltip.propTypes = { content: PropTypes.node, visible: PropTypes.bool, + hideBorder: PropTypes.bool, pointRef: PropTypes.shape({ current: PropTypes.shape({ x: PropTypes.number, diff --git a/src/components/Dashboard/common/DashboardSidebar.jsx b/src/components/Dashboard/common/DashboardSidebar.jsx index b88c9b32..46ed81a5 100644 --- a/src/components/Dashboard/common/DashboardSidebar.jsx +++ b/src/components/Dashboard/common/DashboardSidebar.jsx @@ -19,6 +19,7 @@ import SimpleBar from 'simplebar-react' import { useThemeContext } from '../context/ThemeContext' import { filterSidebarItemsByListPermission } from '../../../database/Sidebars' import Tooltip from './Tooltip' +import KeyboardShortcut from './KeyboardShortcut' const { Sider } = Layout const CollapsedItemIcon = ({ className, icon, title }) => { @@ -158,13 +159,21 @@ const DashboardSidebar = ({ -