Merge branch 'main' into feat/docgen-and-gqldocs-theming

This commit is contained in:
Anoop M D
2026-01-02 22:19:07 +05:30
committed by GitHub
47 changed files with 183 additions and 99 deletions

View File

@@ -55,10 +55,10 @@ const StyledWrapper = styled.div`
}
.cm-variable-valid {
color: green;
color: ${(props) => props.theme.codemirror.variable.valid};
}
.cm-variable-invalid {
color: red;
color: ${(props) => props.theme.codemirror.variable.invalid};
}
`;

View File

@@ -36,12 +36,12 @@ const StyledWrapper = styled.div`
/* Style line numbers when there's a lint issue */
.CodeMirror-lint-line-error .CodeMirror-linenumber {
color: #d32f2f !important;
color: ${(props) => props.theme.colors.text.danger} !important;
text-decoration: underline;
}
.CodeMirror-lint-line-warning .CodeMirror-linenumber {
color: #f57c00 !important;
color: ${(props) => props.theme.colors.text.warning} !important;
text-decoration: underline;
}
@@ -138,10 +138,10 @@ const StyledWrapper = styled.div`
/* Variable validation colors */
.cm-variable-valid {
color: #5fad89 !important; /* Soft sage */
color: ${(props) => props.theme.codemirror.variable.valid} !important;
}
.cm-variable-invalid {
color: #d17b7b !important; /* Soft coral */
color: ${(props) => props.theme.codemirror.variable.invalid} !important;
}
.CodeMirror-search-hint {

View File

@@ -83,7 +83,6 @@ const StyledWrapper = styled.div`
}
.tooltip-mod {
font-size: 11px !important;
max-width: 200px !important;
}

View File

@@ -76,7 +76,6 @@ const Wrapper = styled.div`
}
.tooltip-mod {
font-size: 11px !important;
max-width: 200px !important;
}

View File

@@ -4,6 +4,8 @@ const StyledWrapper = styled.div`
display: flex;
align-items: center;
width: 100%;
overflow: hidden;
min-width: 0;
.file-picker-btn {
display: flex;
@@ -18,6 +20,9 @@ const StyledWrapper = styled.div`
transition: color 0.15s ease;
font-size: 12px;
white-space: nowrap;
overflow: hidden;
min-width: 0;
max-width: 100%;
&:hover {
color: ${(props) => props.theme.text} !important;
@@ -30,6 +35,7 @@ const StyledWrapper = styled.div`
&.icon-only {
padding: 4px;
flex-shrink: 0;
}
&.icon-right {
@@ -39,6 +45,9 @@ const StyledWrapper = styled.div`
span {
line-height: 1;
overflow: hidden;
text-overflow: ellipsis;
min-width: 0;
}
.label {

View File

@@ -14,6 +14,7 @@ import DeleteWorkspace from './DeleteWorkspace';
import StyledWrapper from './StyledWrapper';
import MenuDropdown from 'ui/MenuDropdown/index';
import Button from 'ui/Button';
import { getRevealInFolderLabel } from 'utils/common/platform';
const ManageWorkspace = () => {
const dispatch = useDispatch();
@@ -133,7 +134,7 @@ const ManageWorkspace = () => {
onClick={() => handleShowInFolder(workspace)}
>
<IconFolder size={14} strokeWidth={1.5} />
<span>Show in folder</span>
<span>{getRevealInFolderLabel()}</span>
</button>
)}
{!isDefault && (

View File

@@ -19,18 +19,18 @@ const StyledWrapper = styled.div`
border: none !important;
border-bottom: none !important;
margin-right: 0;
&:hover {
background-color: ${(props) => rgba(props.theme.primary.solid, 0.1)};
}
&.active {
background-color: ${(props) => {
return props.theme.mode === 'dark'
? rgba(props.theme.primary.solid, 0.2)
: rgba(props.theme.primary.solid, 0.1);
}};
color: ${(props) => props.theme.primary.solid} !important;
color: ${(props) => props.theme.primary.text} !important;
border-bottom: none !important;
font-weight: normal !important;
}
@@ -57,7 +57,7 @@ const StyledWrapper = styled.div`
padding: 6px 10px;
}
}
.additional-parameter-sends-in-selector {
select {
height: 32px;
@@ -65,14 +65,14 @@ const StyledWrapper = styled.div`
border: 1px solid ${(props) => props.theme.input.border};
border-radius: 4px;
padding: 0 8px;
&:focus {
outline: none;
border-color: ${(props) => props.theme.primary.solid};
}
}
}
.add-additional-param-actions {
&:hover {
color: ${(props) => props.theme.primary.solid};

View File

@@ -7,7 +7,7 @@ const Wrapper = styled.div`
}
.oauth2-icon {
color: ${(props) => props.theme.primary.solid};
color: ${(props) => props.theme.primary.text};
}
label {

View File

@@ -7,7 +7,7 @@ const Wrapper = styled.div`
}
.oauth2-icon {
color: ${(props) => props.theme.primary.solid};
color: ${(props) => props.theme.primary.text};
}
label {

View File

@@ -7,7 +7,7 @@ const Wrapper = styled.div`
}
.oauth2-icon {
color: ${(props) => props.theme.primary.solid};
color: ${(props) => props.theme.primary.text};
}
font-size: ${(props) => props.theme.font.size.base};

View File

@@ -7,7 +7,7 @@ const Wrapper = styled.div`
}
.oauth2-icon {
color: ${(props) => props.theme.primary.solid};
color: ${(props) => props.theme.primary.text};
}
label {
@@ -62,7 +62,7 @@ const Wrapper = styled.div`
padding: 0.2rem 0.6rem !important;
}
}
.checkbox-label {
color: ${(props) => props.theme.colors.text.primary};
user-select: none;

View File

@@ -133,7 +133,7 @@ const Oauth2ActionButtons = ({ item, request, collection, url: accessTokenUrl, c
};
return (
<div className="flex flex-row gap-4 mt-4">
<div className="flex flex-row gap-2 mt-4">
<Button
size="sm"
color="secondary"
@@ -171,6 +171,7 @@ const Oauth2ActionButtons = ({ item, request, collection, url: accessTokenUrl, c
<Button
size="sm"
color="secondary"
variant="ghost"
onClick={handleClearCache}
>
Clear Cache

View File

@@ -7,7 +7,7 @@ const Wrapper = styled.div`
}
.oauth2-icon {
color: ${(props) => props.theme.primary.solid};
color: ${(props) => props.theme.primary.text};
}
label {

View File

@@ -20,6 +20,7 @@ import GraphQLSchemaActions from '../GraphQLSchemaActions/index';
import HeightBoundContainer from 'ui/HeightBoundContainer';
import Settings from 'components/RequestPane/Settings';
import ResponsiveTabs from 'ui/ResponsiveTabs';
import AuthMode from '../Auth/AuthMode/index';
const TAB_CONFIG = [
{ key: 'query', label: 'Query' },
@@ -134,11 +135,15 @@ const GraphQLRequestPane = ({ item, collection, onSchemaLoad, toggleDocs, handle
return <div className="pb-4 px-4">An error occurred!</div>;
}
const rightContent = (
const rightContent = requestPaneTab === 'auth' ? (
<div ref={schemaActionsRef} className="flex flex-grow justify-start items-center">
<AuthMode item={item} collection={collection} />
</div>
) : requestPaneTab === 'query' ? (
<div ref={schemaActionsRef}>
<GraphQLSchemaActions item={item} collection={collection} onSchemaLoad={setSchema} toggleDocs={toggleDocs} />
</div>
);
) : null;
return (
<div className="flex flex-col h-full relative">
@@ -147,7 +152,7 @@ const GraphQLRequestPane = ({ item, collection, onSchemaLoad, toggleDocs, handle
activeTab={requestPaneTab}
onTabSelect={selectTab}
rightContent={rightContent}
rightContentRef={schemaActionsRef}
rightContentRef={rightContent ? schemaActionsRef : null}
/>
<section className={classnames('flex w-full flex-1 mt-4')}>

View File

@@ -150,7 +150,7 @@ const ProtoFileDropdown = ({
<div className="proto-file-dropdown-mode-controls">
<span>Mode</span>
<div className="proto-file-dropdown-mode-options">
<span className={`proto-file-dropdown-mode-option ${!isReflectionMode ? 'proto-file-dropdown-mode-option--active' : ''}`} style={{ color: !isReflectionMode ? theme.primary.solid : undefined }}>
<span className={`proto-file-dropdown-mode-option ${!isReflectionMode ? 'proto-file-dropdown-mode-option--active' : ''}`} style={{ color: !isReflectionMode ? theme.primary.text : undefined }}>
Proto File
</span>
<ToggleSwitch
@@ -159,7 +159,7 @@ const ProtoFileDropdown = ({
size="2xs"
activeColor={theme.primary.solid}
/>
<span className={`proto-file-dropdown-mode-option ${isReflectionMode ? 'proto-file-dropdown-mode-option--active' : ''}`} style={{ color: isReflectionMode ? theme.primary.solid : undefined }}>
<span className={`proto-file-dropdown-mode-option ${isReflectionMode ? 'proto-file-dropdown-mode-option--active' : ''}`} style={{ color: isReflectionMode ? theme.primary.text : undefined }}>
Reflection
</span>
</div>

View File

@@ -60,10 +60,10 @@ const StyledWrapper = styled.div`
/* Variable validation colors */
.cm-variable-valid {
color: #5fad89 !important; /* Soft sage */
color: ${(props) => props.theme.codemirror.variable.valid};
}
.cm-variable-invalid {
color: #d17b7b !important; /* Soft coral */
color: ${(props) => props.theme.codemirror.variable.invalid};
}

View File

@@ -13,7 +13,6 @@ const StyledWrapper = styled.div`
}
.tooltip-mod {
font-size: ${(props) => props.theme.font.size.xs} !important;
width: 150px !important;
& ul {

View File

@@ -41,6 +41,7 @@ const QueryResponse = ({
setSelectedTab((prev) => prev === 'editor' ? 'preview' : 'editor');
}}
selectedTab={selectedTab}
isActiveTab={true}
/>
</div>
)}

View File

@@ -19,7 +19,7 @@ const StyledWrapper = styled.div`
}
.active {
color: ${(props) => props.theme.colors.text.yellow};
color: ${(props) => props.theme.primary.text};
}
.icon-muted {

View File

@@ -77,7 +77,7 @@ const StyledWrapper = styled.div`
&--active {
color: ${(props) => props.theme.tabs.active.color};
&:after {
content: '';
position: absolute;
@@ -104,7 +104,7 @@ const StyledWrapper = styled.div`
.section-header {
cursor: pointer;
pre {
color: ${(props) => rgba(props.theme.primary.solid, 0.8)};
color: ${(props) => rgba(props.theme.primary.text, 0.8)};
}
}
}

View File

@@ -87,7 +87,7 @@ const StyledWrapper = styled.div`
background-color: ${(props) => props.theme.sidebar.bg};
border: 1px dashed ${(props) => props.theme.sidebar.dragbar};
transform: scale(0.98);
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12);
box-shadow: ${(props) => props.theme.shadow.md};
z-index: 5;
}

View File

@@ -2,7 +2,6 @@ import styled from 'styled-components';
const Wrapper = styled.div`
.textbox {
border: 1px solid #ccc;
padding: 0.2rem 0.5rem;
box-shadow: none;
border-radius: 0px;
@@ -49,6 +48,28 @@ const Wrapper = styled.div`
color: ${(props) => props.theme.colors.text.muted};
}
.text-muted {
color: ${(props) => props.theme.colors.text.muted};
}
.text-green {
color: ${(props) => props.theme.colors.text.green};
}
.text-subtext0 {
color: ${(props) => props.theme.colors.text.subtext0};
}
.text-subtext1 {
color: ${(props) => props.theme.colors.text.subtext1};
}
.hover-bg-surface {
&:hover {
background-color: ${(props) => props.theme.background.surface1};
}
}
.button-sm {
font-size: ${(props) => props.theme.font.size.sm};
}
@@ -60,7 +81,7 @@ const Wrapper = styled.div`
.filter-bar {
display: flex;
align-items: stretch;
border-radius: ${(props) => props.theme.border.radius.lg};
border-radius: ${(props) => props.theme.border.radius.base};
border: 1px solid ${(props) => props.theme.border.border0};
max-height: 35px;
flex-shrink: 0;
@@ -70,15 +91,15 @@ const Wrapper = styled.div`
display: flex;
align-items: center;
padding: 0.5rem 0.75rem;
border-top-left-radius: ${(props) => props.theme.border.radius.lg};
border-bottom-left-radius: ${(props) => props.theme.border.radius.lg};
background-color: ${(props) => props.theme.background.surface0};
border-top-left-radius: ${(props) => props.theme.border.radius.base};
border-bottom-left-radius: ${(props) => props.theme.border.radius.base};
background-color: ${(props) => props.theme.background.mantle};
span {
font-family: Inter, sans-serif;
font-weight: 400;
font-size: ${(props) => props.theme.font.size.sm};
color: ${(props) => props.theme.colors.text.subtext1};
color: ${(props) => props.theme.colors.text.text};
}
}
@@ -87,8 +108,8 @@ const Wrapper = styled.div`
align-items: center;
gap: 1.25rem;
padding: 0.5rem 0.75rem 0 0.75rem;
border-top-right-radius: ${(props) => props.theme.border.radius.lg};
border-bottom-right-radius: ${(props) => props.theme.border.radius.lg};
border-top-right-radius: ${(props) => props.theme.border.radius.base};
border-bottom-right-radius: ${(props) => props.theme.border.radius.base};
background: transparent;
}
}

View File

@@ -269,7 +269,7 @@ export default function RunnerResults({ collection }) {
<div className="mt-6">
You have <span className="font-medium">{totalRequestsInCollection}</span> requests in this collection.
{isCollectionLoading && (
<span className="ml-2 text-gray-500">
<span className="ml-2 text-muted">
(Loading...)
</span>
)}
@@ -403,10 +403,10 @@ export default function RunnerResults({ collection }) {
<div className="pb-2 text-xs flex flex-row gap-1">
Tags:
<div className="flex flex-row items-center gap-x-2">
<div className="text-green-500">
<div className="text-green">
{tags.include.join(', ')}
</div>
<div className="text-gray-500">
<div className="text-muted">
{tags.exclude.join(', ')}
</div>
</div>
@@ -458,7 +458,7 @@ export default function RunnerResults({ collection }) {
)}
</div>
{tagsEnabled && areTagsAdded && item?.tags?.length > 0 && (
<div className="pl-7 text-xs text-gray-500">
<div className="pl-7 text-xs text-muted">
Tags: {item.tags.filter((t) => tags.include.includes(t)).join(', ')}
</div>
)}
@@ -571,7 +571,7 @@ export default function RunnerResults({ collection }) {
</div>
<button
onClick={() => setSelectedItem(null)}
className="p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors cursor-pointer flex items-center justify-center"
className="p-1 rounded hover-bg-surface transition-colors cursor-pointer flex items-center justify-center"
title="Close"
aria-label="Close response view"
>
@@ -584,10 +584,10 @@ export default function RunnerResults({ collection }) {
) : (
<div className="flex flex-1 w-[50%] overflow-y-auto">
<div className="flex flex-col w-full h-full items-center justify-center text-center">
<div className="mb-4 text-gray-400 dark:text-gray-500">
<div className="mb-4 text-subtext0">
<IconExternalLink size={64} strokeWidth={1.5} />
</div>
<p className="text-gray-600 dark:text-gray-400">
<p className="text-subtext1">
Click on the status code to view the response
</p>
</div>

View File

@@ -2,7 +2,6 @@ import styled from 'styled-components';
const Wrapper = styled.div`
.tooltip-mod {
font-size: ${(props) => props.theme.font.size.xs} !important;
width: 150px !important;
}

View File

@@ -49,6 +49,7 @@ import { isTabForItemActive as isTabForItemActiveSelector, isTabForItemPresent a
import { isEqual } from 'lodash';
import { calculateDraggedItemNewPathname, getInitialExampleName, findParentItemInCollection } from 'utils/collections/index';
import { sortByNameThenSequence } from 'utils/common/index';
import { getRevealInFolderLabel } from 'utils/common/platform';
import CreateExampleModal from 'components/ResponseExample/CreateExampleModal';
import { openDevtoolsAndSwitchToTerminal } from 'utils/terminal';
import ActionIcon from 'ui/ActionIcon';
@@ -345,12 +346,6 @@ const CollectionItem = ({ item, collectionUid, collectionPathname, searchText })
leftSection: IconEdit,
label: 'Rename',
onClick: () => setRenameItemModalOpen(true)
},
{
id: 'show-in-folder',
leftSection: IconFolder,
label: 'Show in Folder',
onClick: handleShowInFolder
}
);
if (!isFolder && isItemARequest(item) && !(item.type === 'http-request' || item.type === 'graphql-request')) {
@@ -382,6 +377,15 @@ const CollectionItem = ({ item, collectionUid, collectionPathname, searchText })
});
}
items.push(
{
id: 'show-in-folder',
leftSection: IconFolder,
label: getRevealInFolderLabel(),
onClick: handleShowInFolder
}
);
items.push({ id: 'separator-1', type: 'divider' });
items.push({

View File

@@ -44,6 +44,7 @@ import ShareCollection from 'components/ShareCollection/index';
import GenerateDocumentation from './GenerateDocumentation';
import { CollectionItemDragPreview } from './CollectionItem/CollectionItemDragPreview/index';
import { sortByNameThenSequence } from 'utils/common/index';
import { getRevealInFolderLabel } from 'utils/common/platform';
import { openDevtoolsAndSwitchToTerminal } from 'utils/terminal';
import ActionIcon from 'ui/ActionIcon';
import MenuDropdown from 'ui/MenuDropdown';
@@ -360,7 +361,7 @@ const Collection = ({ collection, searchText }) => {
{
id: 'show-in-folder',
leftSection: IconFolder,
label: 'Show in File Explorer',
label: getRevealInFolderLabel(),
onClick: handleShowInFolder
},
{

View File

@@ -10,6 +10,7 @@ import { isWSDLCollection } from 'utils/importers/wsdl-collection';
import { isBrunoCollection } from 'utils/importers/bruno-collection';
import { isOpenCollection } from 'utils/importers/opencollection';
import FullscreenLoader from './FullscreenLoader/index';
import { useTheme } from 'providers/Theme';
const convertFileToObject = async (file) => {
const text = await file.text();
@@ -35,6 +36,7 @@ const convertFileToObject = async (file) => {
};
const ImportCollection = ({ onClose, handleSubmit }) => {
const { theme } = useTheme();
const [isLoading, setIsLoading] = useState(false);
const [dragActive, setDragActive] = useState(false);
const fileInputRef = useRef(null);
@@ -155,8 +157,9 @@ const ImportCollection = ({ onClose, handleSubmit }) => {
<p className="text-gray-600 dark:text-gray-300 mb-2">
Drop file to import or{' '}
<button
className="text-blue-500 underline cursor-pointer"
className="underline cursor-pointer"
onClick={handleBrowseFiles}
style={{ color: theme.textLink }}
>
choose a file
</button>

View File

@@ -163,7 +163,7 @@ const ImportCollectionLocation = ({ onClose, handleSubmit, rawData, format }) =>
return (
<StyledWrapper>
<Modal
size="sm"
size="md"
title="Import Collection"
confirmText="Import"
handleConfirm={onSubmit}

View File

@@ -0,0 +1,37 @@
import styled from 'styled-components';
const StyledWrapper = styled.div`
.tabs-list {
display: inline-flex;
height: 2rem;
width: fit-content;
justify-content: center;
gap: 0.25rem;
}
.tab-trigger {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 4px;
padding: 8px;
font-size: 0.75rem;
white-space: nowrap;
cursor: pointer;
border: 1px solid transparent;
background: transparent;
color: ${(props) => props.theme.tabs.secondary.inactive.color};
transition: all 0.15s ease;
&:hover {
background: ${(props) => props.theme.tabs.secondary.inactive.bg};
}
&.active {
background: ${(props) => props.theme.tabs.secondary.active.bg};
color: ${(props) => props.theme.tabs.secondary.active.color};
}
}
`;
export default StyledWrapper;

View File

@@ -1,42 +1,29 @@
import React, { createContext, useContext } from 'react';
import { useTheme } from 'providers/Theme';
import classnames from 'classnames';
import StyledWrapper from './StyledWrapper';
const TabsContext = createContext();
export const Tabs = ({ value, onValueChange, children, className = '' }) => {
return (
<TabsContext.Provider value={{ value, onValueChange }}>
<div className={`flex flex-col h-full flex-1 ${className}`}>{children}</div>
<StyledWrapper className={`flex flex-col h-full flex-1 ${className}`}>{children}</StyledWrapper>
</TabsContext.Provider>
);
};
export const TabsList = ({ children, className = '' }) => {
const { theme } = useTheme();
return (
<div
className={`inline-flex h-8 w-fit justify-center rounded-md p-0.5 gap-[2px] ${className}`}
style={{ background: theme.tabs.secondary.inactive.bg }}
>
{children}
</div>
);
return <div className={`tabs-list ${className}`}>{children}</div>;
};
export const TabsTrigger = ({ value: triggerValue, children, className = '' }) => {
const { value, onValueChange } = useContext(TabsContext);
const { theme } = useTheme();
const isActive = value === triggerValue;
return (
<button
onClick={() => onValueChange(triggerValue)}
className={`inline-flex items-center justify-center rounded-[4px] p-[8px] text-xs whitespace-nowrap transition-all cursor-pointer border border-transparent hover:opacity-90 ${className}`}
style={{
background: isActive ? theme.tabs.secondary.active.bg : 'transparent',
color: isActive ? theme.tabs.secondary.active.color : theme.tabs.secondary.inactive.color
}}
className={classnames('tab-trigger', className, { active: isActive })}
>
{children}
</button>

View File

@@ -75,7 +75,6 @@ const Wrapper = styled.div`
}
.tooltip-mod {
font-size: 11px !important;
max-width: 200px !important;
}

View File

@@ -10,6 +10,7 @@ import WorkspaceEnvironments from './WorkspaceEnvironments';
import WorkspaceTabs from 'components/WorkspaceTabs';
import StyledWrapper from './StyledWrapper';
import Dropdown from 'components/Dropdown';
import { getRevealInFolderLabel } from 'utils/common/platform';
const WorkspaceHome = () => {
const dispatch = useDispatch();
@@ -225,7 +226,7 @@ const WorkspaceHome = () => {
</div>
<div className="dropdown-item" onClick={handleShowInFolder}>
<IconFolder size={16} strokeWidth={1.5} />
<span>Show in Folder</span>
<span>{getRevealInFolderLabel()}</span>
</div>
<div className="dropdown-item" onClick={handleExportWorkspace}>
<IconUpload size={16} strokeWidth={1.5} />

View File

@@ -19,6 +19,18 @@ const GlobalStyle = createGlobalStyle`
color: ${(props) => props.theme.colors.text.muted};
}
.tooltip-mod {
background-color: ${(props) => props.theme.infoTip.bg} !important;
color: ${(props) => props.theme.text} !important;
border: 1px solid ${(props) => props.theme.infoTip.border} !important;
box-shadow: ${(props) => props.theme.infoTip.boxShadow} !important;
font-size: ${(props) => props.theme.font.size.xs} !important;
padding: 4px 8px !important;
border-radius: 4px !important;
opacity: 1 !important;
z-index: 9999 !important;
}
.btn {
text-align: center;
white-space: nowrap;

View File

@@ -370,7 +370,7 @@ const catppuccinFrappeTheme = {
color: colors.TEXT
},
inactive: {
bg: colors.SURFACE1,
bg: colors.SURFACE0,
color: colors.SUBTEXT0
}
}

View File

@@ -370,7 +370,7 @@ const catppuccinMacchiatoTheme = {
color: colors.TEXT
},
inactive: {
bg: colors.SURFACE1,
bg: colors.SURFACE0,
color: colors.SUBTEXT0
}
}

View File

@@ -370,7 +370,7 @@ const catppuccinMochaTheme = {
color: colors.TEXT
},
inactive: {
bg: colors.SURFACE1,
bg: colors.SURFACE0,
color: colors.SUBTEXT0
}
}

View File

@@ -353,12 +353,12 @@ const darkMonochromeTheme = {
},
secondary: {
active: {
bg: '#2D2D2D',
bg: '#3F3F3F',
color: '#CCCCCC'
},
inactive: {
bg: '#3F3F3F',
color: '#CCCCCC'
color: '#999999'
}
}
},

View File

@@ -374,7 +374,7 @@ const darkPastelTheme = {
color: colors.TEXT
},
inactive: {
bg: colors.GRAY_4,
bg: colors.GRAY_3,
color: colors.TEXT_MUTED
}
}

View File

@@ -398,12 +398,12 @@ const darkTheme = {
},
secondary: {
active: {
bg: '#2D2D2D',
color: '#CCCCCC'
bg: palette.background.SURFACE0,
color: palette.text.BASE
},
inactive: {
bg: '#3F3F3F',
color: '#CCCCCC'
bg: palette.background.SURFACE0,
color: palette.text.SUBTEXT1
}
}
},

View File

@@ -373,7 +373,7 @@ const nordTheme = {
color: colors.NORD4
},
inactive: {
bg: colors.NORD3,
bg: colors.NORD2,
color: colors.NORD4
}
}

View File

@@ -79,7 +79,7 @@ const vscodeDarkTheme = {
primary: {
solid: colors.BRAND,
text: colors.TEXT_LINK,
text: colors.BRAND_TEXT,
strong: '#0098ff',
subtle: '#005a9e'
},
@@ -376,7 +376,7 @@ const vscodeDarkTheme = {
color: colors.TEXT
},
inactive: {
bg: colors.GRAY_4,
bg: colors.GRAY_3,
color: colors.TEXT_MUTED
}
}

View File

@@ -363,7 +363,7 @@ const catppuccinLatteTheme = {
},
secondary: {
active: {
bg: colors.BASE,
bg: colors.SURFACE0,
color: colors.TEXT
},
inactive: {

View File

@@ -351,7 +351,7 @@ const lightMonochromeTheme = {
},
secondary: {
active: {
bg: '#FFFFFF',
bg: '#ECECEE',
color: '#343434'
},
inactive: {

View File

@@ -367,7 +367,7 @@ const lightPastelTheme = {
},
secondary: {
active: {
bg: colors.WHITE,
bg: colors.GRAY_2,
color: colors.TEXT
},
inactive: {

View File

@@ -387,12 +387,12 @@ const lightTheme = {
},
secondary: {
active: {
bg: palette.background.BASE,
bg: palette.background.SURFACE1,
color: palette.text.BASE
},
inactive: {
bg: palette.background.SURFACE1,
color: palette.text.BASE
bg: palette.background.SURFACE0,
color: palette.text.SUBTEXT1
}
}
},

View File

@@ -371,7 +371,7 @@ const vscodeLightTheme = {
},
secondary: {
active: {
bg: colors.WHITE,
bg: colors.GRAY_2,
color: colors.TEXT
},
inactive: {

View File

@@ -40,6 +40,12 @@ export const isLinuxOS = () => {
return osFamily.includes('linux') || osFamily.includes('ubuntu') || osFamily.includes('debian') || osFamily.includes('fedora') || osFamily.includes('centos') || osFamily.includes('arch');
};
export const getRevealInFolderLabel = () => {
if (isMacOS()) return 'Reveal in Finder';
if (isWindowsOS()) return 'Reveal in File Explorer';
return 'Reveal in File Manager';
};
export const getAppInstallDate = () => {
let dateString = localStorage.getItem('bruno.installedOn');