diff --git a/apps/design-system/src/AppRouterProvider.tsx b/apps/design-system/src/AppRouterProvider.tsx index 378d850bc6..6dfd15f883 100644 --- a/apps/design-system/src/AppRouterProvider.tsx +++ b/apps/design-system/src/AppRouterProvider.tsx @@ -10,7 +10,8 @@ import { useSearchParams } from 'react-router-dom' -import { RouterContextProvider } from '@harnessio/ui/context' +import { Button, SplitButton } from '@harnessio/ui/components' +import { ComponentProvider, RouterContextProvider } from '@harnessio/ui/context' const AppRouterProvider: FC = () => { const navigate = useNavigate() @@ -27,7 +28,9 @@ const AppRouterProvider: FC = () => { useMatches={useMatches} useParams={useParams} > - + + + ) } diff --git a/apps/design-system/src/pages/view-preview/commit-details-diff-view-wrapper.tsx b/apps/design-system/src/pages/view-preview/commit-details-diff-view-wrapper.tsx index 0221155fab..40721e02ad 100644 --- a/apps/design-system/src/pages/view-preview/commit-details-diff-view-wrapper.tsx +++ b/apps/design-system/src/pages/view-preview/commit-details-diff-view-wrapper.tsx @@ -1,24 +1,33 @@ -import { FC, useCallback } from 'react' +import { FC, useCallback, useRef, useState } from 'react' import { commitDetailsStore } from '@subjects/views/commit-details/commit-details-store' import { repoFilesStore } from '@subjects/views/repo-files/components/repo-files-store' import { renderEntries } from '@utils/fileViewUtils' import { noop } from '@utils/viewUtils' -import { FileExplorer } from '@harnessio/ui/components' -import { CommitDiff, CommitSidebar, ICommitDetailsStore } from '@harnessio/ui/views' +import { FileExplorer, Layout } from '@harnessio/ui/components' +import { + CommitDiff, + CommitSidebar, + DraggableSidebarDivider, + ICommitDetailsStore, + SIDEBAR_MIN_WIDTH +} from '@harnessio/ui/views' export const CommitDetailsDiffViewWrapper: FC = () => { const useCommitDetailsStore = useCallback((): ICommitDetailsStore => commitDetailsStore, []) + const [sidebarWidth, setSidebarWidth] = useState(SIDEBAR_MIN_WIDTH) + const containerRef = useRef(null) return ( - <> - {}} filesList={repoFilesStore.filesList}> + + {}} filesList={repoFilesStore.filesList} sidebarWidth={sidebarWidth}> {renderEntries(repoFilesStore.filesTreeData, '')} + - + ) } diff --git a/apps/design-system/src/pages/view-preview/repo-files-view-wrapper.tsx b/apps/design-system/src/pages/view-preview/repo-files-view-wrapper.tsx index fd20b4fb2d..c42f47329f 100644 --- a/apps/design-system/src/pages/view-preview/repo-files-view-wrapper.tsx +++ b/apps/design-system/src/pages/view-preview/repo-files-view-wrapper.tsx @@ -1,39 +1,59 @@ -import { FC, HTMLAttributes, PropsWithChildren } from 'react' +import { FC, HTMLAttributes, PropsWithChildren, useRef, useState } from 'react' import { repoFilesStore } from '@subjects/views/repo-files/components/repo-files-store' import { renderEntries } from '@utils/fileViewUtils' import { noop } from '@utils/viewUtils' -import { FileExplorer } from '@harnessio/ui/components' -import { BranchSelectorV2, RepoSidebar as RepoSidebarView } from '@harnessio/ui/views' +import { FileExplorer, Layout } from '@harnessio/ui/components' +import { + BranchSelectorV2, + DraggableSidebarDivider, + RepoSidebar as RepoSidebarView, + SIDEBAR_MAX_WIDTH, + SIDEBAR_MIN_WIDTH +} from '@harnessio/ui/views' export const RepoFilesViewWrapper: FC>> = ({ children }) => { + const [sidebarWidth, setSidebarWidth] = useState(SIDEBAR_MIN_WIDTH) + const containerRef = useRef(null) + return ( -
- ( - - )} + +
- - {renderEntries(repoFilesStore.filesTreeData, '')} - - -
{children}
-
+ ( + + )} + > + + {renderEntries(repoFilesStore.filesTreeData, '')} + + +
+ + + {children} + ) } diff --git a/apps/design-system/src/subjects/views/commit-details/commit-details-store.ts b/apps/design-system/src/subjects/views/commit-details/commit-details-store.ts index a1da6c870d..f6fdfed9a1 100644 --- a/apps/design-system/src/subjects/views/commit-details/commit-details-store.ts +++ b/apps/design-system/src/subjects/views/commit-details/commit-details-store.ts @@ -3,6 +3,8 @@ import { noop } from '@utils/viewUtils' import { DiffFileEntry, ICommitDetailsStore } from '@harnessio/ui/views' export const commitDetailsStore: ICommitDetailsStore = { + commitSHA: '', + setCommitSHA: noop, diffs: [ { blocks: [ diff --git a/apps/design-system/src/subjects/views/labels/project-labels-list.tsx b/apps/design-system/src/subjects/views/labels/project-labels-list.tsx index 0eb5cee527..059b7498b2 100644 --- a/apps/design-system/src/subjects/views/labels/project-labels-list.tsx +++ b/apps/design-system/src/subjects/views/labels/project-labels-list.tsx @@ -4,16 +4,15 @@ import { LabelsListStore } from '@subjects/stores/labels-store' import { noop } from '@utils/viewUtils' import { DeleteAlertDialog } from '@harnessio/ui/components' -import { LabelsListPage } from '@harnessio/ui/views' +import { LabelsListPage, SandboxLayout } from '@harnessio/ui/views' export const ProjectLabelsList = () => { const [openAlertDeleteDialog, setOpenAlertDeleteDialog] = useState(false) return ( - <> + setOpenAlertDeleteDialog(true) }} @@ -26,6 +25,6 @@ export const ProjectLabelsList = () => { deleteFn={noop} isLoading={false} /> - + ) } diff --git a/apps/design-system/src/subjects/views/labels/repo-labels-list.tsx b/apps/design-system/src/subjects/views/labels/repo-labels-list.tsx index c834b2ef0f..c628cc706c 100644 --- a/apps/design-system/src/subjects/views/labels/repo-labels-list.tsx +++ b/apps/design-system/src/subjects/views/labels/repo-labels-list.tsx @@ -13,7 +13,6 @@ export const RepoLabelsList = () => { <> > = prop isDeleted: false, filePath: 'bot.txt', diffData: { - fileId: 'some-id', containerId: 'some-container-id', contentId: 'some-content-id', isCombined: false, @@ -52,7 +51,8 @@ const PullRequestCompareWrapper: FC> = prop language: 'txt', blocks: [], oldName: 'bot.txt', - newName: 'bot.txt' + newName: 'bot.txt', + isRename: false } } ]} diff --git a/apps/design-system/src/subjects/views/pull-request-conversation/pull-request-conversation.tsx b/apps/design-system/src/subjects/views/pull-request-conversation/pull-request-conversation.tsx index 3f515114b4..92081068f4 100644 --- a/apps/design-system/src/subjects/views/pull-request-conversation/pull-request-conversation.tsx +++ b/apps/design-system/src/subjects/views/pull-request-conversation/pull-request-conversation.tsx @@ -98,6 +98,7 @@ const PullRequestConversation: FC = ({ state }) => panelProps={{ handleRebaseBranch, handlePrState, + handleViewUnresolvedComments: noop, changesInfo: { header: changesInfo.title, content: changesInfo.statusMessage, diff --git a/apps/design-system/src/subjects/views/pull-request-list/pull-request-list-store.ts b/apps/design-system/src/subjects/views/pull-request-list/pull-request-list-store.ts index f947f852f2..bbb4f398e0 100644 --- a/apps/design-system/src/subjects/views/pull-request-list/pull-request-list-store.ts +++ b/apps/design-system/src/subjects/views/pull-request-list/pull-request-list-store.ts @@ -36,6 +36,7 @@ export const pullRequestListStore: PullRequestListStore = { page: 1, openPullReqs: 1, closedPullReqs: 0, + mergedPullReqs: 0, setPage: noop, setLabelsQuery: noop, prState: ['open'], diff --git a/apps/design-system/src/subjects/views/repo-branches/index.tsx b/apps/design-system/src/subjects/views/repo-branches/index.tsx index ea6448e4f8..0c3d57239e 100644 --- a/apps/design-system/src/subjects/views/repo-branches/index.tsx +++ b/apps/design-system/src/subjects/views/repo-branches/index.tsx @@ -7,25 +7,20 @@ import { IBranchSelectorStore, RepoBranchListView } from '@harnessio/ui/views' import { repoBranchesStore } from './repo-branches-store' export function RepoBranchesView() { - const [isCreateBranchDialogOpen, setCreateBranchDialogOpen] = useState(false) + const [_isCreateBranchDialogOpen, setCreateBranchDialogOpen] = useState(false) const useRepoBranchesStore = useCallback((): IBranchSelectorStore => repoBranchesStore, []) return ( {}} useRepoBranchesStore={useRepoBranchesStore} - isCreateBranchDialogOpen={isCreateBranchDialogOpen} setCreateBranchDialogOpen={setCreateBranchDialogOpen} searchQuery={''} setSearchQuery={noop} - createBranchError={undefined} toPullRequest={() => ''} toBranchRules={() => ''} toPullRequestCompare={() => ''} onDeleteBranch={noop} - setCreateBranchSearchQuery={noop} /> ) } diff --git a/apps/design-system/src/subjects/views/repo-branches/repo-branches-store.ts b/apps/design-system/src/subjects/views/repo-branches/repo-branches-store.ts index c7312144fa..e2e653c436 100644 --- a/apps/design-system/src/subjects/views/repo-branches/repo-branches-store.ts +++ b/apps/design-system/src/subjects/views/repo-branches/repo-branches-store.ts @@ -73,7 +73,19 @@ export const repoBranchesStore: IBranchSelectorStore = { running: 1, success: 1 } - } + }, + pullRequests: [ + { + number: 3, + updated: 1737045212396, + state: 'merged', + is_draft: false, + merged: 1737045212397, + timestamp: 'Jan 13, 2025', + reviewRequired: false, + labels: [] + } + ] }, { id: 2, diff --git a/apps/design-system/src/subjects/views/repo-create-rule.tsx b/apps/design-system/src/subjects/views/repo-create-rule.tsx index b3bfc37016..7a161f13bf 100644 --- a/apps/design-system/src/subjects/views/repo-create-rule.tsx +++ b/apps/design-system/src/subjects/views/repo-create-rule.tsx @@ -2,7 +2,7 @@ import { useCallback, useEffect, useState } from 'react' import { useRepoRulesStore } from '@subjects/views/repo-general-settings/use-repo-rules-store' -import { SkeletonForm } from '@harnessio/ui/components' +import { Skeleton } from '@harnessio/ui/components' import { RepoBranchSettingsRulesPage } from '@harnessio/ui/views' const errors = { @@ -36,7 +36,7 @@ export const RepoCreateRule = () => { }, []) if (!loaded) { - return + return } return ( diff --git a/apps/design-system/src/subjects/views/repo-files/components/repo-file-edit.tsx b/apps/design-system/src/subjects/views/repo-files/components/repo-file-edit.tsx index cbfea8c25d..b9d0623b84 100644 --- a/apps/design-system/src/subjects/views/repo-files/components/repo-file-edit.tsx +++ b/apps/design-system/src/subjects/views/repo-files/components/repo-file-edit.tsx @@ -73,7 +73,7 @@ export const RepoFileEdit = () => { /> onChangeView(val as EditViewTypeValue)} > diff --git a/apps/design-system/src/subjects/views/repo-files/components/repo-files-wrapper.tsx b/apps/design-system/src/subjects/views/repo-files/components/repo-files-wrapper.tsx index e3b720fe84..d6d2af88b5 100644 --- a/apps/design-system/src/subjects/views/repo-files/components/repo-files-wrapper.tsx +++ b/apps/design-system/src/subjects/views/repo-files/components/repo-files-wrapper.tsx @@ -38,7 +38,6 @@ export const RepoFilesWrapper: FC = ({ codeMode, isDir, i { const [openCreateTagDialog, setOpenCreateTagDialog] = useState(false) const [openCreateBranchDialog, setOpenCreateBranchDialog] = useState(false) - const [selectedTagInList, setSelectedTagInList] = useState(null) + const [selectedTagInList, setSelectedTagInList] = useState() const [preSelectedTab, setPreSelectedTab] = useState(BranchSelectorTab.BRANCHES) const [openDeleteTagDialog, setOpenDeleteTagDialog] = useState(false) @@ -60,7 +60,9 @@ export const RepoTagsList = () => { onSubmit={noop} isLoading={false} error="" - selectedBranchOrTag={null} + violation={false} + bypassable={false} + resetViolation={noop} branchSelectorRenderer={() => ( { preSelectedTab={preSelectedTab} /> )} + violation={false} + bypassable={false} + resetViolation={noop} /> { return ( '#'} searchQuery={searchQuery} regexEnabled={regexEnabled} setRegexEnabled={setRegexEnabled} @@ -25,6 +26,8 @@ export const SearchPagePreview = () => { onLanguageSelect={() => {}} onClearFilters={() => {}} isRepoScope={true} + onRecursiveToggle={() => {}} + scope={{ accountId: '1', orgIdentifier: '2', projectIdentifier: '3' }} /> ) } diff --git a/apps/design-system/src/subjects/views/templates/view-only.tsx b/apps/design-system/src/subjects/views/templates/view-only.tsx index e21ecc70ca..c644a9ef0d 100644 --- a/apps/design-system/src/subjects/views/templates/view-only.tsx +++ b/apps/design-system/src/subjects/views/templates/view-only.tsx @@ -72,10 +72,10 @@ const dataMock: ViewOnlyProps[] = [ value: (
- delegate-1 + delegate-1
- delegate-2 + delegate-2
) diff --git a/apps/gitness/package.json b/apps/gitness/package.json index 666f23bd50..d342a31c3a 100644 --- a/apps/gitness/package.json +++ b/apps/gitness/package.json @@ -52,7 +52,7 @@ }, "devDependencies": { "@eslint/js": "^9.9.0", - "@git-diff-view/react": "^0.0.16", + "@git-diff-view/react": "^0.0.30", "@swc/core": "^1.12.1", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^12.1.5", diff --git a/apps/gitness/src/AppMFE.tsx b/apps/gitness/src/AppMFE.tsx index 59d298b709..d316df366e 100644 --- a/apps/gitness/src/AppMFE.tsx +++ b/apps/gitness/src/AppMFE.tsx @@ -1,6 +1,6 @@ -import { useEffect, useMemo, useRef } from 'react' +import { useEffect, useRef } from 'react' import { I18nextProvider } from 'react-i18next' -import { createBrowserRouter, matchPath, RouterProvider, useLocation, useNavigate } from 'react-router-dom' +import { createBrowserRouter, RouterProvider } from 'react-router-dom' import { QueryClientProvider } from '@tanstack/react-query' @@ -10,70 +10,18 @@ import { PortalProvider, TranslationProvider } from '@harnessio/ui/context' import ShadowRootWrapper from './components-v2/shadow-root-wrapper' import { ExitConfirmProvider } from './framework/context/ExitConfirmContext' -import { IMFEContext, MFEContext } from './framework/context/MFEContext' +import { MFEContext, MFEContextProps } from './framework/context/MFEContext' import { NavigationProvider } from './framework/context/NavigationContext' import { ThemeProvider, useThemeStore } from './framework/context/ThemeContext' import { queryClient } from './framework/queryClient' -import { extractRedirectRouteObjects } from './framework/routing/utils' import { useLoadMFEStyles } from './hooks/useLoadMFEStyles' import i18n from './i18n/i18n' import { useTranslationStore } from './i18n/stores/i18n-store' -import { mfeRoutes, repoRoutes } from './routes' -import { decodeURIComponentIfValid } from './utils/path-utils' +import { getMFERoutes } from './routes' -export interface MFERouteRendererProps { - renderUrl: string - parentLocationPath: string - onRouteChange: (updatedLocationPathname: string) => void -} - -const filteredRedirectRoutes = extractRedirectRouteObjects(repoRoutes) -const isRouteNotMatchingRedirectRoutes = (pathToValidate: string) => { - return filteredRedirectRoutes.every(route => !matchPath(`/${route.path}` as string, pathToValidate)) -} - -function MFERouteRenderer({ renderUrl, parentLocationPath, onRouteChange }: MFERouteRendererProps) { - const navigate = useNavigate() - const location = useLocation() - const parentPath = parentLocationPath.replace(renderUrl, '') - const isNotRedirectPath = isRouteNotMatchingRedirectRoutes(location.pathname) - - /** - * renderUrl ==> base URL of parent application - * parentPath ==> path name of parent application after base URL - * location.pathname ==> path name of MFE - * isNotRedirectPath ==> check if the current path is not a redirect path - */ - const canNavigate = useMemo( - () => - renderUrl && - decodeURIComponentIfValid(parentPath) !== decodeURIComponentIfValid(location.pathname) && - isNotRedirectPath, - [isNotRedirectPath, location.pathname, parentPath, renderUrl] - ) - - // Handle location change detected from parent route - useEffect(() => { - if (canNavigate) { - navigate(decodeURIComponentIfValid(parentPath), { replace: true }) - } - }, [parentPath]) - - // Notify parent about route change - useEffect(() => { - if (canNavigate) { - onRouteChange?.(decodeURIComponentIfValid(`${renderUrl}${location.pathname}`)) - } - }, [location.pathname]) - - return null -} - -interface AppMFEProps extends IMFEContext { +interface AppMFEProps extends MFEContextProps { on401?: () => void useMFEThemeContext: () => { theme: string; setTheme: (newTheme: string) => void } - parentLocationPath: string - onRouteChange: (updatedLocationPathname: string) => void } function decode(arg: string): T { @@ -91,6 +39,7 @@ export default function AppMFE({ customHooks, customUtils, routes, + routeUtils, hooks }: AppMFEProps) { new CodeServiceAPIClient({ @@ -137,16 +86,13 @@ export default function AppMFE({ // Router Configuration const basename = `/ng${renderUrl}` - const routesToRender = mfeRoutes( - scope.projectIdentifier, - - ) + const mfeRoutes = getMFERoutes(scope.projectIdentifier) - const router = createBrowserRouter(routesToRender, { basename }) + const router = createBrowserRouter(mfeRoutes, { basename }) const { t } = useTranslationStore() return ( -
+
{/* Radix UI elements need to be rendered inside the following div with the theme class */}
@@ -163,8 +109,11 @@ export default function AppMFE({ customHooks, customUtils, routes, + routeUtils, hooks, - setMFETheme + setMFETheme, + parentLocationPath, + onRouteChange }} > @@ -174,7 +123,7 @@ export default function AppMFE({ - + diff --git a/apps/gitness/src/MFERouteRenderer.tsx b/apps/gitness/src/MFERouteRenderer.tsx new file mode 100644 index 0000000000..2700fb4e26 --- /dev/null +++ b/apps/gitness/src/MFERouteRenderer.tsx @@ -0,0 +1,52 @@ +import { useEffect, useMemo } from 'react' +import { matchPath, useLocation, useNavigate } from 'react-router-dom' + +import { useMFEContext } from './framework/hooks/useMFEContext' +import { extractRedirectRouteObjects } from './framework/routing/utils' +import { repoRoutes } from './routes' +import { decodeURIComponentIfValid } from './utils/path-utils' + +export const MFERouteRenderer: React.FC = () => { + const navigate = useNavigate() + const location = useLocation() + const { renderUrl, parentLocationPath, onRouteChange } = useMFEContext() + const parentPath = parentLocationPath.replace(renderUrl, '') + + const filteredRedirectRoutes = extractRedirectRouteObjects(repoRoutes) + + const isRouteNotMatchingRedirectRoutes = (pathToValidate: string) => { + return filteredRedirectRoutes.every(route => !matchPath(`/${route.path}` as string, pathToValidate)) + } + + const isNotRedirectPath = isRouteNotMatchingRedirectRoutes(location.pathname) + + /** + * renderUrl ==> base URL of parent application + * parentPath ==> path name of parent application after base URL + * location.pathname ==> path name of MFE + * isNotRedirectPath ==> check if the current path is not a redirect path + */ + const canNavigate = useMemo( + () => + renderUrl && + decodeURIComponentIfValid(parentPath) !== decodeURIComponentIfValid(location.pathname) && + isNotRedirectPath, + [isNotRedirectPath, location.pathname, parentPath, renderUrl] + ) + + // Handle location change detected from parent route + useEffect(() => { + if (canNavigate) { + navigate(decodeURIComponentIfValid(parentPath), { replace: true }) + } + }, [parentPath]) + + // Notify parent about route change + useEffect(() => { + if (canNavigate) { + onRouteChange?.(decodeURIComponentIfValid(`${renderUrl}${location.pathname}${location.search}`)) + } + }, [location.pathname]) + + return null +} diff --git a/apps/gitness/src/components-v2/FileExplorer.tsx b/apps/gitness/src/components-v2/FileExplorer.tsx index 3570354bf7..7912acb814 100644 --- a/apps/gitness/src/components-v2/FileExplorer.tsx +++ b/apps/gitness/src/components-v2/FileExplorer.tsx @@ -4,7 +4,7 @@ import { useLocation, useParams } from 'react-router-dom' import { useQuery, useQueryClient } from '@tanstack/react-query' import { getContent, OpenapiContentInfo, OpenapiGetContentOutput } from '@harnessio/code-service-client' -import { Alert, FileExplorer, IconV2 } from '@harnessio/ui/components' +import { Alert, FileExplorer, SkeletonFileExplorer } from '@harnessio/ui/components' import { useOpenFolderPaths } from '../framework/context/ExplorerPathsContext' import { useRoutes } from '../framework/context/NavigationContext' @@ -16,6 +16,7 @@ import { normalizeGitRef } from '../utils/git-utils' interface ExplorerProps { selectedBranch?: string repoDetails: OpenapiGetContentOutput + isLoading?: boolean } const sortEntriesByType = (entries: OpenapiContentInfo[]): OpenapiContentInfo[] => { @@ -32,7 +33,7 @@ const sortEntriesByType = (entries: OpenapiContentInfo[]): OpenapiContentInfo[] /** * TODO: This code was migrated from V2 and needs to be refactored. */ -export default function Explorer({ selectedBranch, repoDetails }: ExplorerProps) { +export default function Explorer({ selectedBranch, repoDetails, isLoading: isLoadingProp }: ExplorerProps) { const repoRef = useGetRepoRef() const { spaceId, repoId } = useParams() const { fullGitRef, fullResourcePath } = useCodePathDetails() @@ -148,7 +149,7 @@ export default function Explorer({ selectedBranch, repoDetails }: ExplorerProps) } if (isLoading) { - return + return } if (error) { @@ -240,8 +241,8 @@ export default function Explorer({ selectedBranch, repoDetails }: ExplorerProps) }} value={openFolderPaths} > - {isRootLoading ? ( - + {isRootLoading || isLoadingProp ? ( + ) : rootError ? ( Error loading root folder diff --git a/apps/gitness/src/components-v2/GitBlame.tsx b/apps/gitness/src/components-v2/GitBlame.tsx index ce96200536..f3f6553671 100644 --- a/apps/gitness/src/components-v2/GitBlame.tsx +++ b/apps/gitness/src/components-v2/GitBlame.tsx @@ -3,10 +3,11 @@ import { useEffect, useState } from 'react' import { uniqWith } from 'lodash-es' import { useGetBlameQuery } from '@harnessio/code-service-client' -import { Layout } from '@harnessio/ui/components' -import { getInitials } from '@harnessio/ui/utils' +import { Avatar, Layout, Text } from '@harnessio/ui/components' +import { useRouterContext } from '@harnessio/ui/context' +import { formatDistanceToNow, getInitials } from '@harnessio/ui/utils' import { Contributors } from '@harnessio/ui/views' -import { BlameEditor, BlameEditorProps, ThemeDefinition } from '@harnessio/yaml-editor' +import { BlameEditorV2, BlameEditorV2Props, ThemeDefinition } from '@harnessio/yaml-editor' import { BlameItem } from '@harnessio/yaml-editor/dist/types/blame' import { useThemeStore } from '../framework/context/ThemeContext' @@ -18,11 +19,14 @@ interface GitBlameProps { themeConfig: { rootElementSelector?: string; defaultTheme?: string; themes?: ThemeDefinition[] } codeContent: string language: string - height?: BlameEditorProps['height'] + height?: BlameEditorV2Props['height'] + toCommitDetails: ({ sha }: { sha: string }) => string } -export default function GitBlame({ themeConfig, codeContent, language, height }: GitBlameProps) { +export default function GitBlame({ themeConfig, codeContent, language, height, toCommitDetails }: GitBlameProps) { const repoRef = useGetRepoRef() + const { navigate } = useRouterContext() + const { fullGitRef, fullResourcePath } = useCodePathDetails() const [blameBlocks, setBlameBlocks] = useState([]) @@ -55,10 +59,34 @@ export default function GitBlame({ themeConfig, codeContent, language, height }: author: authorInfo || {} } + const { name, email } = commitInfo.author?.identity || { name: '', email: '' } + blameData.push({ fromLineNumber, toLineNumber, - commitInfo: commitInfo + commitInfo: commitInfo, + infoContent: ( + /* IMPORTANT: itemContent accepts only atomic component that are not depends on external state (e.g. context provider) */ + + + {formatDistanceToNow(commitInfo.author?.when)} + + + + { + navigate(toCommitDetails({ sha: commitInfo.sha })) + }} + > + {commitInfo.title} + + + + ) }) fromLineNumber = toLineNumber + 1 @@ -71,17 +99,19 @@ export default function GitBlame({ themeConfig, codeContent, language, height }: setBlameBlocks(blameData) setContributors(uniqWith(authors, (a, b) => a.email === b.email)) } - }, [gitBlame]) + }, [gitBlame, toCommitDetails, navigate]) const { theme } = useThemeStore() const monacoTheme = (theme ?? '').startsWith('dark') ? 'dark' : 'light' - return !isFetching && blameBlocks.length ? ( + if (isFetching || !blameBlocks.length) return null + + return ( -
+ -
- +
- ) : ( - <> ) } diff --git a/apps/gitness/src/components-v2/branch-selector-container.tsx b/apps/gitness/src/components-v2/branch-selector-container.tsx index ff55a51570..6a90517af6 100644 --- a/apps/gitness/src/components-v2/branch-selector-container.tsx +++ b/apps/gitness/src/components-v2/branch-selector-container.tsx @@ -10,7 +10,7 @@ import { PathParams } from '../RouteDefinitions' import { orderSortDate } from '../types' interface BranchSelectorContainerProps { - selectedBranch?: BranchSelectorListItem | null + selectedBranch?: BranchSelectorListItem onSelectBranchorTag: (branchTag: BranchSelectorListItem, type: BranchSelectorTab) => void isBranchOnly?: boolean dynamicWidth?: boolean @@ -22,6 +22,7 @@ interface BranchSelectorContainerProps { branchPrefix?: string isUpdating?: boolean disabled?: boolean + autoSelectDefaultBranch?: boolean } export const BranchSelectorContainer: React.FC = ({ selectedBranch, @@ -35,7 +36,8 @@ export const BranchSelectorContainer: React.FC = ( branchPrefix, className, isUpdating, - disabled + disabled, + autoSelectDefaultBranch = true }) => { const repoRef = useGetRepoRef() const { spaceId, repoId } = useParams() @@ -71,7 +73,7 @@ export const BranchSelectorContainer: React.FC = ( useEffect(() => { // Only auto-select default branch if no branch is currently selected // This prevents the flakiness when the form is being updated - if (repository && !selectedBranch?.name && !isUpdating) { + if (repository && !selectedBranch?.name && !isUpdating && autoSelectDefaultBranch) { const defaultBranch = branches?.find(branch => branch.name === repository.default_branch) onSelectBranchorTag( @@ -79,7 +81,7 @@ export const BranchSelectorContainer: React.FC = ( BranchSelectorTab.BRANCHES ) } - }, [repository, selectedBranch?.name, branches, onSelectBranchorTag, isUpdating]) + }, [repository, selectedBranch?.name, branches, onSelectBranchorTag, isUpdating, autoSelectDefaultBranch]) useEffect(() => { refetchBranches() @@ -112,7 +114,7 @@ export const BranchSelectorContainer: React.FC = ( className={className} branchList={branchList} tagList={tagList} - selectedBranchorTag={selectedBranch ?? { name: '', sha: '', default: false }} + selectedBranchorTag={selectedBranch} repoId={repoId ?? ''} spaceId={spaceId ?? ''} searchQuery={branchTagQuery ?? ''} diff --git a/apps/gitness/src/components-v2/breadcrumbs/breadcrumbs.tsx b/apps/gitness/src/components-v2/breadcrumbs/breadcrumbs.tsx index 6cf145d347..e7075767a7 100644 --- a/apps/gitness/src/components-v2/breadcrumbs/breadcrumbs.tsx +++ b/apps/gitness/src/components-v2/breadcrumbs/breadcrumbs.tsx @@ -2,7 +2,6 @@ import { UIMatch } from 'react-router-dom' import { Breadcrumb, IconV2, Separator, Sidebar, Topbar } from '@harnessio/ui/components' import { useRouterContext } from '@harnessio/ui/context' -import { cn } from '@harnessio/ui/utils' import { CustomHandle } from '../../framework/routing/types' @@ -24,16 +23,12 @@ export const Breadcrumbs = ({ if (!breadcrumbs.length) return null return ( - + {withMobileSidebarToggle && isMobile && ( <> - - + + )} }> diff --git a/apps/gitness/src/components-v2/commit-suggestions-dialog.tsx b/apps/gitness/src/components-v2/commit-suggestions-dialog.tsx index f909b69dbc..da73791f3c 100644 --- a/apps/gitness/src/components-v2/commit-suggestions-dialog.tsx +++ b/apps/gitness/src/components-v2/commit-suggestions-dialog.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react' +import { useEffect, useState } from 'react' import { CommentApplySuggestionsOkResponse, @@ -36,6 +36,13 @@ export default function CommitSuggestionsDialog({ const commitTitlePlaceholder = 'Apply suggestion from code review' + // Clear error when dialog closes + useEffect(() => { + if (!open) { + setError(undefined) + } + }, [open]) + const onSubmit = async (formValues: CommitSuggestionsFormType) => { const { message, title } = formValues const data = { diff --git a/apps/gitness/src/components-v2/create-branch-dialog.tsx b/apps/gitness/src/components-v2/create-branch-dialog.tsx index a35193c833..643aad802f 100644 --- a/apps/gitness/src/components-v2/create-branch-dialog.tsx +++ b/apps/gitness/src/components-v2/create-branch-dialog.tsx @@ -1,6 +1,6 @@ import { useCallback, useEffect, useState } from 'react' -import { useCreateBranchMutation } from '@harnessio/code-service-client' +import { useCreateBranchMutation, UsererrorError } from '@harnessio/code-service-client' import { BranchSelectorListItem, BranchSelectorTab, @@ -9,6 +9,7 @@ import { } from '@harnessio/ui/views' import { useGetRepoRef } from '../framework/hooks/useGetRepoPath' +import { useRuleViolationCheck } from '../framework/hooks/useRuleViolationCheck' import { BranchSelectorContainer } from './branch-selector-container' interface CreateBranchDialogProps { @@ -31,43 +32,65 @@ export const CreateBranchDialog = ({ onBranchQueryChange }: CreateBranchDialogProps) => { const repo_ref = useGetRepoRef() + const [error, setError] = useState() + const [selectedBranchOrTag, setSelectedBranchOrTag] = useState() + const { violation, bypassable, bypassed, setAllStates, resetViolation } = useRuleViolationCheck() - const [selectedBranchOrTag, setSelectedBranchOrTag] = useState(null) - - const selectBranchOrTag = useCallback((branchTagName: BranchSelectorListItem) => { + const selectBranchOrTag = useCallback((branchTagName: BranchSelectorListItem, _type: BranchSelectorTab) => { setSelectedBranchOrTag(branchTagName) }, []) + const handleMutationSuccess = useCallback(() => { + setError(undefined) + resetViolation() + onClose() + onSuccess?.() + }, [onClose, onSuccess, resetViolation]) + + const handleMutationError = useCallback( + (err: any) => { + if (err?.violations?.length > 0) { + setAllStates({ + violation: true, + bypassed: true, + bypassable: err?.violations[0]?.bypassable + }) + } else { + setError(err as UsererrorError) + } + }, + [setAllStates] + ) + const { mutateAsync: createBranch, - error: createBranchError, isLoading: isCreatingBranch, reset: resetBranchMutation - } = useCreateBranchMutation( - {}, - { - onSuccess: () => { - onClose() - onSuccess?.() - } - } - ) + } = useCreateBranchMutation({}, { onSuccess: handleMutationSuccess, onError: handleMutationError }) const handleCreateBranch = async (data: CreateBranchFormFields) => { onBranchQueryChange?.(data.name) + setError(undefined) + resetViolation() await createBranch({ repo_ref, body: { - ...data + ...data, + bypass_rules: bypassed } }) } useEffect(() => { - if (!open) { + if (open) { + setError(undefined) + resetViolation() + } else { resetBranchMutation() + setError(undefined) + resetViolation() } - }, [open, resetBranchMutation]) + }, [open]) useEffect(() => { if (preselectedBranchOrTag) { @@ -82,11 +105,15 @@ export const CreateBranchDialog = ({ selectedBranchOrTag={selectedBranchOrTag} onSubmit={handleCreateBranch} isCreatingBranch={isCreatingBranch} - error={createBranchError?.message} + error={error?.message} prefilledName={prefilledName} + violation={violation} + bypassable={bypassable} + resetViolation={resetViolation} renderProp={ { return getIsMarkdown(language) ? 'preview' : 'code' } +type RenameHistorySectionProps = { + titlePath: string + repoRef: string + spaceId: string + repoId: string + routes: any + gitRef: string +} + +const RenameHistorySection: React.FC = ({ + titlePath, + repoRef, + spaceId, + repoId, + routes, + gitRef +}) => { + const [accordionValue, setAccordionValue] = useState(undefined) + const { data, isFetching } = useListCommitsQuery({ + repo_ref: repoRef, + queryParams: { + git_ref: gitRef, + path: titlePath || '', + limit: 20 + } + }) + + return ( +
+ setAccordionValue(Array.isArray(value) ? value[0] : value)} + > + + +
+ + + + Renamed from {titlePath} - {accordionValue ? 'Hide History' : 'Show History'} + +
+
+ +
+ {isFetching ? ( + + ) : data?.body?.commits?.length ? ( + + routes.toRepoCommitDetails({ spaceId, repoId, commitSHA: sha }) + } + toCode={({ sha }: { sha: string }) => `${routes.toRepoFiles({ spaceId, repoId })}/${sha}`} + data={data.body.commits.map((item: TypesCommit) => ({ + sha: item.sha, + parent_shas: item.parent_shas, + title: item.title, + message: item.message, + author: item.author, + committer: item.committer + }))} + /> + ) : ( + + + No previous commits found + + + )} +
+
+
+
+
+ ) +} + +interface RenameHistoryDetectorProps { + repoRef: string + spaceId: string + repoId: string + routes: any + currentPath: string + gitRef: string +} + +const RenameHistoryDetector: React.FC = ({ + repoRef, + spaceId, + repoId, + routes, + currentPath, + gitRef +}) => { + const [oldPath, setOldPath] = useState(null) + + // Try to detect if this file was renamed by looking at the first commit + const { data: firstCommit } = useListCommitsQuery({ + repo_ref: repoRef, + queryParams: { + git_ref: gitRef, + path: currentPath, + limit: 1 + } + }) + + const { data: renameInfo } = useListCommitsQuery( + { + repo_ref: repoRef, + queryParams: { + git_ref: firstCommit?.body?.commits?.[0]?.sha || '', + path: currentPath, + limit: 1 + } + }, + { enabled: !!firstCommit?.body?.commits?.[0]?.sha } + ) + + useEffect(() => { + if (renameInfo?.body?.rename_details && renameInfo.body.rename_details.length > 0) { + const renameDetail = renameInfo.body.rename_details[0] + if (renameDetail.old_path && renameDetail.commit_sha_before) { + setOldPath(renameDetail.old_path) + } + } + }, [renameInfo]) + + if (!oldPath) return null + + return ( + + ) +} + interface FileContentViewerProps { repoContent?: OpenapiGetContentOutput + loading?: boolean } /** * TODO: This code was migrated from V2 and needs to be refactored. */ -export default function FileContentViewer({ repoContent }: FileContentViewerProps) { +export default function FileContentViewer({ repoContent, loading }: FileContentViewerProps) { const routes = useRoutes() const { spaceId, repoId } = useParams() const fileName = repoContent?.name || '' const language = filenameToLanguage(fileName) || '' const fileContent = decodeGitContent(repoContent?.content?.data) + const isGitLfsObject = repoContent?.content?.lfs_object_id !== undefined const repoRef = useGetRepoRef() const { fullGitRef, fullResourcePath } = useCodePathDetails() - const parentPath = fullResourcePath?.split(FILE_SEPERATOR).slice(0, -1).join(FILE_SEPERATOR) const downloadFile = useDownloadRawFile() const navigate = useNavigate() const apiPath = useAPIPath() @@ -65,9 +217,14 @@ export default function FileContentViewer({ repoContent }: FileContentViewerProp const { selectedBranchTag, selectedRefType } = useRepoBranchesStore() const [page, _setPage] = useQueryState('page', parseAsInteger.withDefault(1)) const { theme } = useThemeStore() + const { selectedLine, setSelectedLine } = useCodeEditorSelectionState() const { gitRefName } = useGitRef() + const { useSearchParams } = useRouterContext() + const [searchParams] = useSearchParams() + const keyword = searchParams.get('keyword') + const fileError = !repoContent || !repoContent.content || !repoContent.content.data const { data: { body: commitData, headers } = {}, isFetching: isFetchingCommits } = useListCommitsQuery({ @@ -79,6 +236,19 @@ export default function FileContentViewer({ repoContent }: FileContentViewerProp } }) + const [cachedRenameDetails, setCachedRenameDetails] = useState(null) + + useEffect(() => { + if (commitData?.rename_details && commitData.rename_details.length > 0) { + setCachedRenameDetails(commitData.rename_details) + } + }, [commitData?.rename_details]) + + const renameDetailsToRender = useMemo(() => { + if (commitData?.rename_details && commitData.rename_details.length > 0) return commitData.rename_details + return cachedRenameDetails || null + }, [commitData?.rename_details, cachedRenameDetails]) + // TODO: temporary solution for matching themes const monacoTheme = (theme ?? '').startsWith('dark') ? 'dark' : 'light' @@ -113,6 +283,13 @@ export default function FileContentViewer({ repoContent }: FileContentViewerProp [monacoTheme] ) + const codeRevision = useMemo( + () => ({ + code: fileContent + }), + [fileContent] + ) + const handleDownloadFile = () => { downloadFile({ repoRef, @@ -138,6 +315,12 @@ export default function FileContentViewer({ repoContent }: FileContentViewerProp navigate(`${routes.toRepoFiles({ spaceId, repoId })}/edit/${fullGitRef}/~/${fullResourcePath}`) } + const Loader = () => ( + + + + ) + return ( <> { if (!isNewBranch) { - navigate(`${routes.toRepoFiles({ spaceId, repoId })}${parentPath ? `/~/${parentPath}` : ''}`) + // Navigate to files view in the same branch after deletion + navigate(`${routes.toRepoFiles({ spaceId, repoId })}/${fullGitRef}`) } else { navigate( routes.toPullRequestCompare({ @@ -163,9 +347,12 @@ export default function FileContentViewer({ repoContent }: FileContentViewerProp isNew={false} /> onChangeView(val as ViewTypeValue)} + onValueChange={val => { + setSelectedLine(undefined) + onChangeView(val as ViewTypeValue) + }} > handleToggleDeleteDialog(true)} refType={selectedRefType} + isGitLfsObject={isGitLfsObject} /> - - {fileError && ( -
- {}} className="my-0 h-full rounded-t-none border-t-0" /> -
+ + {loading && } + + {!loading && ( + <> + {fileError && ( +
+ {}} className="my-0 h-full rounded-t-none border-t-0" /> +
+ )} + + {!fileError && getIsMarkdown(language) && ( + + + + )} + + {!fileError && !getIsMarkdown(language) && ( + + + + )} + )} +
- {!fileError && getIsMarkdown(language) && } + + {loading && } - {!fileError && !getIsMarkdown(language) && ( + {!loading && ( undefined} + codeRevision={codeRevision} themeConfig={themeConfig} - options={{ - readOnly: true - }} + options={{ readOnly: true }} theme={monacoTheme} + enableLinesSelection={true} + onSelectedLineChange={setSelectedLine} + selectedLine={selectedLine} + highlightKeyword={!isNull(keyword) ? keyword : undefined} /> )} - - undefined} - themeConfig={themeConfig} - options={{ - readOnly: true - }} - theme={monacoTheme} - /> - - - + {loading && } + + {!loading && ( + { + return routes.toRepoCommitDetails({ spaceId, repoId, commitSHA: sha }) + }} + /> + )} - + {isFetchingCommits ? ( - + ) : ( - <> + @@ -243,6 +460,41 @@ export default function FileContentViewer({ repoContent }: FileContentViewerProp committer: item.committer }))} /> + + {/* Show rename history if available */} + {renameDetailsToRender && renameDetailsToRender.length > 0 && ( + + {renameDetailsToRender.map((detail, index) => { + if (!detail.old_path) return null + return ( + + ) + })} + + )} + + {/* Always show rename history if we know the file was renamed, even without rename_details */} + {!renameDetailsToRender && fullResourcePath && ( + + + + )} + 0} @@ -250,7 +502,7 @@ export default function FileContentViewer({ repoContent }: FileContentViewerProp getPrevPageLink={getPrevPageLink} getNextPageLink={getNextPageLink} /> - + )}
diff --git a/apps/gitness/src/components-v2/file-editor.tsx b/apps/gitness/src/components-v2/file-editor.tsx index 4faff1f1de..39f868a179 100644 --- a/apps/gitness/src/components-v2/file-editor.tsx +++ b/apps/gitness/src/components-v2/file-editor.tsx @@ -2,40 +2,52 @@ import { FC, useCallback, useEffect, useMemo, useState } from 'react' import { useNavigate, useParams } from 'react-router-dom' import { OpenapiGetContentOutput } from '@harnessio/code-service-client' -import { EditViewTypeValue, FileEditorControlBar, getIsMarkdown, MarkdownViewer, Tabs } from '@harnessio/ui/components' +import { + EditViewTypeValue, + FileEditorControlBar, + getIsMarkdown, + IconV2, + Layout, + MarkdownViewer, + Tabs +} from '@harnessio/ui/components' +import { cn } from '@harnessio/ui/utils' import { monacoThemes, PathActionBar } from '@harnessio/ui/views' -import { CodeDiffEditor, CodeEditor } from '@harnessio/yaml-editor' +import { CodeDiffEditor, CodeEditor, CodeEditorProps } from '@harnessio/yaml-editor' import GitCommitDialog from '../components-v2/git-commit-dialog' import { useRoutes } from '../framework/context/NavigationContext' import { useThemeStore } from '../framework/context/ThemeContext' -import { useExitConfirm } from '../framework/hooks/useExitConfirm' +import { useExitPrompt } from '../framework/hooks/useExitPrompt' import useCodePathDetails from '../hooks/useCodePathDetails' import { useRepoBranchesStore } from '../pages-v2/repo/stores/repo-branches-store' import { PathParams } from '../RouteDefinitions' -import { decodeGitContent, FILE_SEPERATOR, filenameToLanguage, GitCommitAction, PLAIN_TEXT } from '../utils/git-utils' +import { decodeGitContent, FILE_SEPARATOR, filenameToLanguage, GitCommitAction, PLAIN_TEXT } from '../utils/git-utils' import { splitPathWithParents } from '../utils/path-utils' export interface FileEditorProps { repoDetails?: OpenapiGetContentOutput defaultBranch: string + loading?: boolean } -export const FileEditor: FC = ({ repoDetails, defaultBranch }) => { +export const FileEditor: FC = ({ repoDetails, defaultBranch, loading }) => { const routes = useRoutes() const navigate = useNavigate() const { codeMode, fullGitRef, gitRefName, fullResourcePath } = useCodePathDetails() const { repoId, spaceId } = useParams() - const { show } = useExitConfirm() const repoPath = `${routes.toRepoFiles({ spaceId, repoId })}/${fullGitRef}` const [fileName, setFileName] = useState('') const [language, setLanguage] = useState('') const [originalFileContent, setOriginalFileContent] = useState('') - const [contentRevision, setContentRevision] = useState({ code: originalFileContent }) + const [contentRevision, setContentRevision] = useState['codeRevision']>({ + code: originalFileContent + }) const [view, setView] = useState('edit') const [dirty, setDirty] = useState(false) const [isCommitDialogOpen, setIsCommitDialogOpen] = useState(false) + useExitPrompt({ isDirty: dirty && !isCommitDialogOpen }) const { selectedBranchTag, selectedRefType } = useRepoBranchesStore() const { theme } = useThemeStore() // TODO: temporary solution for matching themes @@ -51,26 +63,34 @@ export const FileEditor: FC = ({ repoDetails, defaultBranch }) const isNew = useMemo(() => !repoDetails || repoDetails?.type === 'dir', [repoDetails]) const [parentPath, setParentPath] = useState( - isNew ? fullResourcePath : fullResourcePath?.split(FILE_SEPERATOR).slice(0, -1).join(FILE_SEPERATOR) + isNew ? fullResourcePath : fullResourcePath?.split(FILE_SEPARATOR).slice(0, -1).join(FILE_SEPARATOR) ) const fileResourcePath = useMemo( - () => [(parentPath || '').trim(), (fileName || '').trim()].filter(p => !!p.trim()).join(FILE_SEPERATOR), + () => [(parentPath || '').trim(), (fileName || '').trim()].filter(p => !!p.trim()).join(FILE_SEPARATOR), [parentPath, fileName] ) + const isShowPreview = () => !isNew || getIsMarkdown(language) + const [showPreview, setShowPreview] = useState(isShowPreview()) const pathToSplit = useMemo(() => { if (isNew) { - // When in new file mode, use fullResourcePath to ensure we maintain the directory structure - if (fullResourcePath && parentPath !== fullResourcePath) { - // Update parentPath to match fullResourcePath when in new file mode - setParentPath(fullResourcePath) - } return fullResourcePath || parentPath } else if (parentPath?.length && fileName.length) { - return [parentPath, fileName].join(FILE_SEPERATOR) + return [parentPath, fileName].join(FILE_SEPARATOR) } return parentPath?.length ? parentPath : fileName - }, [isNew, parentPath, fileName, fullResourcePath, setParentPath]) + }, [isNew, parentPath, fileName, fullResourcePath]) + + useEffect(() => { + if (isNew && fullResourcePath && parentPath !== fullResourcePath) { + setParentPath(fullResourcePath) + } + }, [isNew, fullResourcePath, parentPath]) + + useEffect(() => { + setLanguage(filenameToLanguage(fileName) || '') + setShowPreview(isShowPreview()) + }, [fileName, isNew, language]) const pathParts = useMemo( () => [ @@ -93,30 +113,27 @@ export const FileEditor: FC = ({ repoDetails, defaultBranch }) const currentFileName = isNew ? '' : repoDetails?.name || '' setFileName(currentFileName) setLanguage(filenameToLanguage(currentFileName) || '') - setOriginalFileContent(decodeGitContent(repoDetails?.content?.data)) + const decodedContent = decodeGitContent(repoDetails?.content?.data) + setOriginalFileContent(decodedContent) + setContentRevision({ code: decodedContent }) }, [isNew, repoDetails]) useEffect(() => { setDirty(!(!fileName || (isUpdate && contentRevision.code === originalFileContent))) }, [fileName, isUpdate, contentRevision, originalFileContent]) - useEffect(() => { - setContentRevision({ code: originalFileContent }) - }, [originalFileContent]) - const toggleOpenCommitDialog = (value: boolean) => { setIsCommitDialogOpen(value) } const rebuildPaths = useCallback(() => { - const _tokens = fileName?.split(FILE_SEPERATOR).filter(part => !!part.trim()) - const _fileName = ((_tokens?.pop() as string) || '').trim() - const _parentPath = parentPath - ?.split(FILE_SEPERATOR) - .concat(_tokens || '') + const _tokens = fileName?.split(FILE_SEPARATOR).filter(part => !!part.trim()) || [] + const _fileName = (_tokens.pop() || '').trim() + const _parentPath = (parentPath?.split(FILE_SEPARATOR) || []) + .concat(_tokens) .map(p => p.trim()) .filter(part => !!part.trim()) - .join(FILE_SEPERATOR) + .join(FILE_SEPARATOR) if (_fileName) { const normalizedFilename = _fileName.trim() @@ -137,26 +154,11 @@ export const FileEditor: FC = ({ repoDetails, defaultBranch }) /** * Navigate to file view route */ - const onExitConfirm = useCallback(() => { + const handleCancelFileEdit = useCallback(() => { const navigateTo = `${routes.toRepoFiles({ spaceId, repoId })}/${fullGitRef}/${fullResourcePath ? `~/${fullResourcePath}` : ''}` navigate(navigateTo) }, [fullGitRef, fullResourcePath, navigate, repoId, spaceId, routes]) - /** - * Cancel edit handler - * - if dirty - open confirm exit dialog via context - * - if !dirty - call navigate fnc - */ - const handleCancelFileEdit = useCallback(() => { - if (dirty) { - show({ - onConfirm: () => onExitConfirm() - }) - } else { - onExitConfirm() - } - }, [dirty, onExitConfirm, show]) - /** * Change view handler * @param value @@ -165,6 +167,12 @@ export const FileEditor: FC = ({ repoDetails, defaultBranch }) setView(value) } + const Loader = () => ( + + + + ) + return ( <> = ({ repoDetails, defaultBranch }) /> onChangeView(val as EditViewTypeValue)} > - + - setContentRevision(valueRevision ?? { code: '' })} - themeConfig={themeConfig} - theme={monacoTheme} - options={{ - readOnly: false - }} - /> + {loading && } + + {!loading && !isNew && !contentRevision.code && } + {!loading && (isNew || contentRevision.code) && ( + setContentRevision(valueRevision ?? { code: '' })} + themeConfig={themeConfig} + theme={monacoTheme} + options={{ readOnly: false }} + /> + )} - - {getIsMarkdown(language) ? ( - - ) : ( + + {loading && } + + {!loading && getIsMarkdown(language) && ( + + )} + + {!loading && !getIsMarkdown(language) && ( = ({ repoDetails, defaultBranch }) modified={contentRevision.code} themeConfig={themeConfig} theme={monacoTheme} - options={{ - readOnly: true - }} + options={{ readOnly: true }} /> )} diff --git a/apps/gitness/src/components-v2/git-commit-dialog.tsx b/apps/gitness/src/components-v2/git-commit-dialog.tsx index db773da91d..230fafc3d1 100644 --- a/apps/gitness/src/components-v2/git-commit-dialog.tsx +++ b/apps/gitness/src/components-v2/git-commit-dialog.tsx @@ -16,7 +16,7 @@ import { import { useGetRepoRef } from '../framework/hooks/useGetRepoPath' import { useRuleViolationCheck } from '../framework/hooks/useRuleViolationCheck' -import { GitCommitAction } from '../utils/git-utils' +import { deNormalizeGitRef, GitCommitAction } from '../utils/git-utils' export type CommitDialogOnSuccess = ( response: TypesCommitFilesResponse, @@ -133,7 +133,7 @@ export default function GitCommitDialog({ sha } ], - branch: gitRef, + branch: deNormalizeGitRef(gitRef), new_branch: '', title: '', message: '', @@ -182,7 +182,7 @@ export default function GitCommitDialog({ dryRun={dryRun} violation={violation} bypassable={bypassable} - currentBranch={currentBranch || 'Master'} + currentBranch={currentBranch.replace('refs/heads/', '')} isFileNameRequired={isNew && resourcePath?.length < 1} setAllStates={setAllStates} // TODO: Add a loading state for submission diff --git a/apps/gitness/src/components-v2/mfe/app-shell.tsx b/apps/gitness/src/components-v2/mfe/app-shell.tsx index 716380d619..08827b4968 100644 --- a/apps/gitness/src/components-v2/mfe/app-shell.tsx +++ b/apps/gitness/src/components-v2/mfe/app-shell.tsx @@ -4,17 +4,22 @@ import { Outlet } from 'react-router-dom' import { Toaster } from '@harnessio/ui/components' import { MainContentLayout } from '@harnessio/ui/views' -import { useRepoImportEvents } from '../../framework/hooks/useRepoImportEvent' +import { useGetSpaceURLParam } from '../../framework/hooks/useGetSpaceParam' +import useSpaceSSEWithPubSub from '../../framework/hooks/useSpaceSSEWithPubSub' import { Breadcrumbs } from '../breadcrumbs/breadcrumbs' import { useGetBreadcrumbs } from '../breadcrumbs/useGetBreadcrumbs' export const AppShellMFE = memo(() => { - useRepoImportEvents() const { breadcrumbs } = useGetBreadcrumbs() + const spaceURL = useGetSpaceURLParam() + + useSpaceSSEWithPubSub({ + space: spaceURL ?? '' + }) return ( <> - + 0}> diff --git a/apps/gitness/src/components-v2/project-dropdown.tsx b/apps/gitness/src/components-v2/project-dropdown.tsx index ea063fba94..97c158a9db 100644 --- a/apps/gitness/src/components-v2/project-dropdown.tsx +++ b/apps/gitness/src/components-v2/project-dropdown.tsx @@ -16,7 +16,7 @@ function ProjectDropdown(): JSX.Element { {spaceId ?? 'Select project'} - + {spaces.map(({ identifier }) => ( diff --git a/apps/gitness/src/components-v2/standalone/app-shell.tsx b/apps/gitness/src/components-v2/standalone/app-shell.tsx index 94bd3e4830..0bc90bfe2f 100644 --- a/apps/gitness/src/components-v2/standalone/app-shell.tsx +++ b/apps/gitness/src/components-v2/standalone/app-shell.tsx @@ -8,9 +8,10 @@ import { MainContentLayout } from '@harnessio/ui/views' import { getNavbarMenuData } from '../../data/navbar-menu-data' import { getPinnedMenuItemsData } from '../../data/pinned-items' import { useRoutes } from '../../framework/context/NavigationContext' +import { useGetSpaceURLParam } from '../../framework/hooks/useGetSpaceParam' import { useLocationChange } from '../../framework/hooks/useLocationChange' -import { useRepoImportEvents } from '../../framework/hooks/useRepoImportEvent' import { useSelectedSpaceId } from '../../framework/hooks/useSelectedSpaceId' +import useSpaceSSEWithPubSub from '../../framework/hooks/useSpaceSSEWithPubSub' import { PathParams } from '../../RouteDefinitions' import { Breadcrumbs } from '../breadcrumbs/breadcrumbs' import { useGetBreadcrumbs } from '../breadcrumbs/useGetBreadcrumbs' @@ -28,6 +29,7 @@ export const AppShell: FC = () => { const { isMobile } = useSidebar() const routes = useRoutes() const { spaceId } = useParams() + const spaceURL = useGetSpaceURLParam() ?? '' const { pinnedMenu, setRecent, setNavLinks } = useNav() const { t } = useTranslation() const selectedSpaceId = useSelectedSpaceId(spaceId) @@ -64,13 +66,15 @@ export const AppShell: FC = () => { } }, [spaceIdPathParam]) - useRepoImportEvents() + useSpaceSSEWithPubSub({ + space: spaceURL + }) return ( <> - 0} enableInset> + 0}> diff --git a/apps/gitness/src/framework/context/AppRouterProvider.tsx b/apps/gitness/src/framework/context/AppRouterProvider.tsx index d04a6a1e08..530c2add6e 100644 --- a/apps/gitness/src/framework/context/AppRouterProvider.tsx +++ b/apps/gitness/src/framework/context/AppRouterProvider.tsx @@ -12,6 +12,8 @@ import { import { RouterContextProvider } from '@harnessio/ui/context' +import { MFERouteRenderer } from '../../MFERouteRenderer' + interface AppRouterProviderProps { children: ReactNode } @@ -21,18 +23,21 @@ const AppRouterProvider: FC = ({ children }) => { const location = useLocation() return ( - - {children} - + <> + + + {children} + + ) } diff --git a/apps/gitness/src/framework/context/ExplorerPathsContext.tsx b/apps/gitness/src/framework/context/ExplorerPathsContext.tsx index 9a89665af7..34870eaa02 100644 --- a/apps/gitness/src/framework/context/ExplorerPathsContext.tsx +++ b/apps/gitness/src/framework/context/ExplorerPathsContext.tsx @@ -8,9 +8,7 @@ interface ExplorerPathsContextType { openFolderPaths: string[] setOpenFolderPaths: React.Dispatch> } - const ExplorerPathsContext = createContext(undefined) - export const useOpenFolderPaths = () => { const context = useContext(ExplorerPathsContext) if (!context) { @@ -18,27 +16,58 @@ export const useOpenFolderPaths = () => { } return context } - +export const STORAGE_KEY = '_explorer_paths' +// Helper functions for localStorage +const getStorageKey = (repoRef: string, gitRef: string | undefined) => + `${STORAGE_KEY}_${repoRef}_${gitRef || 'default'}` +const getPathsFromStorage = (key: string): string[] => { + try { + const stored = localStorage.getItem(key) + return stored ? JSON.parse(stored) : [] + } catch (error) { + console.error('Error reading from localStorage:', error) + return [] + } +} +const savePathsToStorage = (key: string, paths: string[]): void => { + try { + localStorage.setItem(key, JSON.stringify(paths)) + } catch (error) { + console.error('Error writing to localStorage:', error) + } +} interface ExplorerPathsProviderProps { children: React.ReactNode } - export const ExplorerPathsProvider: React.FC = ({ children }) => { const repoRef = useGetRepoRef() const { gitRef } = useParams() - const [openFolderPaths, setOpenFolderPaths] = useState([]) - + const storageKey = getStorageKey(repoRef, gitRef) + // Initialize from localStorage + const [openFolderPaths, setOpenFolderPathsState] = useState(() => { + return getPathsFromStorage(storageKey) + }) const prevRepoRef = useRef(repoRef) const prevGitRef = useRef(gitRef) - + // Custom setter that updates both state and localStorage + const setOpenFolderPaths = (newPathsOrUpdater: React.SetStateAction) => { + setOpenFolderPathsState(currentPaths => { + const newPaths = typeof newPathsOrUpdater === 'function' ? newPathsOrUpdater(currentPaths) : newPathsOrUpdater + // Save to localStorage + savePathsToStorage(storageKey, newPaths) + return newPaths + }) + } + // Reset paths when repo or git ref changes useEffect(() => { if (prevRepoRef.current !== repoRef || prevGitRef.current !== gitRef) { - setOpenFolderPaths([]) + const newKey = getStorageKey(repoRef, gitRef) + const savedPaths = getPathsFromStorage(newKey) + setOpenFolderPathsState(savedPaths) prevRepoRef.current = repoRef prevGitRef.current = gitRef } }, [repoRef, gitRef]) - return ( {children} diff --git a/apps/gitness/src/framework/context/MFEContext.tsx b/apps/gitness/src/framework/context/MFEContext.tsx index 3998c477a1..3bec9cbea6 100644 --- a/apps/gitness/src/framework/context/MFEContext.tsx +++ b/apps/gitness/src/framework/context/MFEContext.tsx @@ -2,6 +2,8 @@ import { Context, createContext } from 'react' import { noop } from 'lodash-es' +import { PermissionsRequest } from '@harnessio/ui/components' + /** * @todo import from '@harness/microfrontends' * Currently, unable to do so due to npm access issues. @@ -52,15 +54,18 @@ export interface UseLogoutReturn { export declare const useLogout: () => UseLogoutReturn +export declare const usePermission: (permissionsRequest?: PermissionsRequest, deps?: Array) => Array + export interface Hooks { useLogout?: typeof useLogout + usePermission?: typeof usePermission } /**************/ export type Unknown = any -export interface IMFEContext { +export interface MFEContextProps { /** * Scope will be later referred from "Scope" from @harness/microfrontends * */ @@ -80,11 +85,27 @@ export interface IMFEContext { toOrgSettings: () => string toProjectSettings: () => string }> + routeUtils: Partial<{ + toCODERepository: ({ repoPath }: { repoPath: string }) => void + toCODEPullRequest: ({ repoPath, pullRequestId }: { repoPath: string; pullRequestId: string }) => void + toCODERule: ({ repoPath, ruleId }: { repoPath: string; ruleId: string }) => void + toCODEManageRepositories: ({ + space, + ruleId, + settingSection + }: { + space: string + ruleId: string + settingSection: string + }) => void + }> hooks: Hooks setMFETheme: (newTheme: string) => void + parentLocationPath: string + onRouteChange: (updatedLocationPathname: string) => void } -export const MFEContext = createContext({ +export const MFEContext = createContext({ scope: { accountId: '' }, parentContextObj: { appStoreContext: createContext({ @@ -97,6 +118,9 @@ export const MFEContext = createContext({ customHooks: {}, customUtils: {}, routes: {}, + routeUtils: {}, hooks: {}, - setMFETheme: noop + setMFETheme: noop, + parentLocationPath: '', + onRouteChange: noop }) diff --git a/apps/gitness/src/framework/context/PageTitleContext.tsx b/apps/gitness/src/framework/context/PageTitleContext.tsx new file mode 100644 index 0000000000..70eb5d4735 --- /dev/null +++ b/apps/gitness/src/framework/context/PageTitleContext.tsx @@ -0,0 +1,21 @@ +import { createContext, useContext, useState } from 'react' + +/** + * Provides a context for managing the application's page title dynamically. + * This context takes precedence over titles defined in route configurations (routes.ts). + */ +export const PageTitleContext = createContext<{ + pageTitle?: string + setPageTitle: (title?: string) => void +}>({ + pageTitle: undefined, + setPageTitle: () => {} +}) + +export const PageTitleProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { + const [pageTitle, setPageTitle] = useState() + + return {children} +} + +export const usePageTitleContext = () => useContext(PageTitleContext) diff --git a/apps/gitness/src/framework/event/EventManager.ts b/apps/gitness/src/framework/event/EventManager.ts new file mode 100644 index 0000000000..04c2f2da24 --- /dev/null +++ b/apps/gitness/src/framework/event/EventManager.ts @@ -0,0 +1,51 @@ +type Callback = (data: any) => void + +class EventManager { + private listeners: Record = {} + + /** + * Check if a callback is already subscribed to an event type + */ + isSubscribed(eventType: string, callback: Callback): boolean { + if (!this.listeners[eventType]) { + return false + } + return this.listeners[eventType].includes(callback) + } + + /** + * Subscribe a callback to an event type if not already subscribed + */ + subscribe(eventType: string, callback: Callback) { + if (!this.listeners[eventType]) { + this.listeners[eventType] = [] + } + + // Only add the callback if it's not already subscribed + if (!this.isSubscribed(eventType, callback)) { + this.listeners[eventType].push(callback) + } + + return () => { + this.listeners[eventType] = this.listeners[eventType].filter(cb => cb !== callback) + } + } + + publish(eventType: string, data: any) { + if (this.listeners[eventType]) { + for (const callback of this.listeners[eventType]) { + callback(data) + } + } + } + + clear(eventType?: string) { + if (eventType) { + delete this.listeners[eventType] + } else { + this.listeners = {} + } + } +} + +export const eventManager = new EventManager() diff --git a/apps/gitness/src/framework/hooks/usePageTitle.ts b/apps/gitness/src/framework/hooks/usePageTitle.ts index 0a5d42e502..1192020c0f 100644 --- a/apps/gitness/src/framework/hooks/usePageTitle.ts +++ b/apps/gitness/src/framework/hooks/usePageTitle.ts @@ -3,11 +3,13 @@ import { useMatches } from 'react-router-dom' import { useTranslation } from '@harnessio/ui/context' +import { usePageTitleContext } from '../context/PageTitleContext' import { CustomHandle } from '../routing/types' const usePageTitle = () => { const { t } = useTranslation() const matches = useMatches() + const { pageTitle: dynamicTitle } = usePageTitleContext() useEffect(() => { const fullPageTitle = matches @@ -22,8 +24,8 @@ const usePageTitle = () => { }, []) .join(' | ') - document.title = fullPageTitle || t('views:app.harnessOpenSource', 'Harness Open Source') - }, [matches, t]) + document.title = dynamicTitle || fullPageTitle || t('views:app.harnessOpenSource', 'Harness Open Source') + }, [matches, t, dynamicTitle]) } export default usePageTitle diff --git a/apps/gitness/src/framework/hooks/useQueryState.ts b/apps/gitness/src/framework/hooks/useQueryState.ts index d6e24b5b91..28f314777a 100644 --- a/apps/gitness/src/framework/hooks/useQueryState.ts +++ b/apps/gitness/src/framework/hooks/useQueryState.ts @@ -1,5 +1,6 @@ import { useCallback } from 'react' -import { useSearchParams } from 'react-router-dom' + +import { useRouterContext } from '@harnessio/ui/context' interface Parser { parse: (value: string | null) => T @@ -10,6 +11,7 @@ const useQueryState = ( key: string, parser: Parser = parseAsString as unknown as Parser // Default parser is for strings ): [T, (value: T | null) => void] => { + const { useSearchParams } = useRouterContext() const [searchParams, setSearchParams] = useSearchParams() // Parse the current value or fallback to the default value @@ -25,7 +27,7 @@ const useQueryState = ( } else { newParams.set(key, String(newValue)) } - setSearchParams(newParams) + setSearchParams(newParams, { replace: true }) }, [key, setSearchParams] ) diff --git a/apps/gitness/src/framework/hooks/useRepoImportEvent.tsx b/apps/gitness/src/framework/hooks/useRepoImportEvent.tsx deleted file mode 100644 index 475d69a905..0000000000 --- a/apps/gitness/src/framework/hooks/useRepoImportEvent.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import { useCallback, useMemo } from 'react' -import { useParams } from 'react-router-dom' - -import { RepoRepositoryOutput } from '@harnessio/code-service-client' -import { Link, useToast } from '@harnessio/ui/components' - -import { useRepoStore } from '../../pages-v2/repo/stores/repo-list-store' -import { transformRepoList } from '../../pages-v2/repo/transform-utils/repo-list-transform' -import { PathParams } from '../../RouteDefinitions' -import { SSEEvent } from '../../types' -import { useRoutes } from '../context/NavigationContext' -import { useGetSpaceURLParam } from './useGetSpaceParam' -import useSpaceSSE from './useSpaceSSE' - -export const useRepoImportEvents = () => { - const { update } = useToast() - const routes = useRoutes() - const { importToastId, importRepoIdentifier, setImportRepoIdentifier, setImportToastId, updateRepository } = - useRepoStore() - const spaceURL = useGetSpaceURLParam() ?? '' - const { spaceId } = useParams() - - const onEvent = useCallback( - (eventData: RepoRepositoryOutput) => { - update({ - id: importToastId ?? '', - title: 'Successfully imported', - description: ( - {importRepoIdentifier} - ), - action: null, - duration: 5000, - variant: 'success' - }) - const transformedRepo = transformRepoList([eventData]) - updateRepository(transformedRepo[0]) - setImportRepoIdentifier(null) - setImportToastId(null) - }, - [importToastId] - ) - const onError = useCallback(() => { - update({ - id: importToastId ?? '', - title: 'Import failed', - variant: 'failed', - action: null - }) - }, [importToastId]) - const events = useMemo(() => [SSEEvent.REPO_IMPORTED], []) - - useSpaceSSE({ - space: spaceURL, - events, - onEvent, - onError, - shouldRun: true - }) -} diff --git a/apps/gitness/src/framework/hooks/useRepoImportWithPubSub.tsx b/apps/gitness/src/framework/hooks/useRepoImportWithPubSub.tsx new file mode 100644 index 0000000000..0fe786448f --- /dev/null +++ b/apps/gitness/src/framework/hooks/useRepoImportWithPubSub.tsx @@ -0,0 +1,76 @@ +import { useCallback, useEffect } from 'react' +import { useParams } from 'react-router-dom' + +import { RepoRepositoryOutput } from '@harnessio/code-service-client' +import { Link, useToast } from '@harnessio/ui/components' + +import { useRepoStore } from '../../pages-v2/repo/stores/repo-list-store' +import { transformRepoList } from '../../pages-v2/repo/transform-utils/repo-list-transform' +import { PathParams } from '../../RouteDefinitions' +import { SSEEvent } from '../../types' +import { useRoutes } from '../context/NavigationContext' +import { eventManager } from '../event/EventManager' + +export const useRepoImportWithPubSub = () => { + const { update, toast } = useToast() + const routes = useRoutes() + const { spaceId } = useParams() + + const handleImportEvent = useCallback( + (eventData: RepoRepositoryOutput) => { + const { importToastId, importRepoIdentifier, setImportRepoIdentifier, setImportToastId, updateRepository } = + useRepoStore.getState() + + if (importToastId && importRepoIdentifier && importRepoIdentifier === eventData.identifier) { + try { + update({ + id: importToastId, + open: false + }) + } catch (error) { + console.error('No toast to dismiss:', error) + } + + toast({ + title: 'Successfully imported', + description: ( + {importRepoIdentifier} + ), + action: null, + duration: 5000, + variant: 'success' + }) + + const transformedRepo = transformRepoList([eventData]) + updateRepository(transformedRepo[0]) + + setImportRepoIdentifier(null) + setImportToastId(null) + } + }, + [routes, spaceId, toast, update] + ) + + const handleError = useCallback(() => { + const { importToastId } = useRepoStore.getState() + + if (importToastId) { + update({ + id: importToastId, + title: 'Import failed', + variant: 'failed', + action: null + }) + } + }, [update]) + + useEffect(() => { + eventManager.subscribe(SSEEvent.REPO_IMPORTED, handleImportEvent) + eventManager.subscribe('error', handleError) + + // We're not unsubscribing because we want these handlers to persist across navigation + // This aligns with the provider-based architecture for SSE connections where the + // EventManager singleton handles pub-sub event distribution independently of component lifecycle + return undefined + }, [handleImportEvent, handleError]) +} diff --git a/apps/gitness/src/framework/hooks/useRuleViolationCheck.ts b/apps/gitness/src/framework/hooks/useRuleViolationCheck.ts index 924ce49f34..08e71a7718 100644 --- a/apps/gitness/src/framework/hooks/useRuleViolationCheck.ts +++ b/apps/gitness/src/framework/hooks/useRuleViolationCheck.ts @@ -1,4 +1,4 @@ -import { useReducer } from 'react' +import { useCallback, useReducer } from 'react' enum ActionTypes { SET_VIOLATION = 'SET_VIOLATION', @@ -30,9 +30,9 @@ const reducer = (state: ViolationState, action: ViolationAction): ViolationState case ActionTypes.SET_VIOLATION: return { ...state, violation: action.payload } case ActionTypes.SET_BYPASSABLE: - return { ...state, bypassed: action.payload } - case ActionTypes.SET_BYPASSED: return { ...state, bypassable: action.payload } + case ActionTypes.SET_BYPASSED: + return { ...state, bypassed: action.payload } case ActionTypes.SET_ALL_STATES: return { ...state, @@ -47,13 +47,37 @@ const reducer = (state: ViolationState, action: ViolationAction): ViolationState export const useRuleViolationCheck = () => { const [state, dispatch] = useReducer(reducer, initialState) - const setViolation = (value: boolean) => dispatch({ type: ActionTypes.SET_VIOLATION, payload: value }) - const setBypassable = (value: boolean) => dispatch({ type: ActionTypes.SET_BYPASSABLE, payload: value }) - const setBypassed = (value: boolean) => dispatch({ type: ActionTypes.SET_BYPASSED, payload: value }) - const setAllStates = (payload: Partial) => { - dispatch({ type: ActionTypes.SET_ALL_STATES, payload }) - } - const resetViolation = () => setAllStates({ violation: false, bypassable: false, bypassed: false }) + const setViolation = useCallback( + (value: boolean) => { + dispatch({ type: ActionTypes.SET_VIOLATION, payload: value }) + }, + [dispatch] + ) + + const setBypassable = useCallback( + (value: boolean) => { + dispatch({ type: ActionTypes.SET_BYPASSABLE, payload: value }) + }, + [dispatch] + ) + + const setBypassed = useCallback( + (value: boolean) => { + dispatch({ type: ActionTypes.SET_BYPASSED, payload: value }) + }, + [dispatch] + ) + + const setAllStates = useCallback( + (payload: Partial) => { + dispatch({ type: ActionTypes.SET_ALL_STATES, payload }) + }, + [dispatch] + ) + + const resetViolation = useCallback(() => { + dispatch({ type: ActionTypes.SET_ALL_STATES, payload: { violation: false, bypassable: false, bypassed: false } }) + }, [dispatch]) return { violation: state.violation, diff --git a/apps/gitness/src/framework/hooks/useSpaceSSE.tsx b/apps/gitness/src/framework/hooks/useSpaceSSE.tsx deleted file mode 100644 index f1b0901969..0000000000 --- a/apps/gitness/src/framework/hooks/useSpaceSSE.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import { useEffect, useRef, useState } from 'react' - -import { EventSourcePolyfill } from 'event-source-polyfill' -import { isEqual } from 'lodash-es' - -import { useAPIPath } from '../../hooks/useAPIPath' - -type UseSpaceSSEProps = { - space: string - events: string[] - // eslint-disable-next-line @typescript-eslint/no-explicit-any - onEvent: (data: any, type: string) => void - onError?: (event: Event) => void - shouldRun?: boolean -} - -const useSpaceSSE = ({ space, events: _events, onEvent, onError, shouldRun = true }: UseSpaceSSEProps) => { - // const { standalone, routingId, hooks } = useAppContext() - const apiPath = useAPIPath() - - const [events, setEvents] = useState(_events) - const eventSourceRef = useRef(null) - useEffect(() => { - if (!isEqual(events, _events)) { - setEvents(_events) - } - }, [_events, setEvents, events]) - - useEffect(() => { - // Conditionally establish the event stream - don't want to open on a finished execution - if (shouldRun && events.length > 0) { - if (!eventSourceRef.current) { - const pathAndQuery = apiPath(`/api/v1/spaces/${space}/+/events`) - - const options: { heartbeatTimeout: number; headers?: { Authorization?: string } } = { - heartbeatTimeout: 999999999 - } - - eventSourceRef.current = new EventSourcePolyfill(pathAndQuery, options) - const handleMessage = (event: MessageEvent) => { - const data = JSON.parse(event.data) - onEvent(data, event.type) - } - - const handleError = (event: Event) => { - if (onError) onError(event) - eventSourceRef?.current?.close() - } - - // always register error - eventSourceRef?.current?.addEventListener('error', handleError) - - // register requested events - for (const i in events) { - const eventType = events[i] - eventSourceRef?.current?.addEventListener(eventType, handleMessage) - } - - return () => { - eventSourceRef.current?.removeEventListener('error', handleError) - for (const i in events) { - const eventType = events[i] - eventSourceRef.current?.removeEventListener(eventType, handleMessage) - } - eventSourceRef.current?.close() - eventSourceRef.current = null - } - } - } else { - // If shouldRun is false, close and cleanup any existing stream - if (eventSourceRef.current) { - eventSourceRef.current.close() - eventSourceRef.current = null - } - } - }, [space, events, shouldRun, onEvent, onError]) -} - -export default useSpaceSSE diff --git a/apps/gitness/src/framework/hooks/useSpaceSSEWithPubSub.tsx b/apps/gitness/src/framework/hooks/useSpaceSSEWithPubSub.tsx new file mode 100644 index 0000000000..3a8cef197c --- /dev/null +++ b/apps/gitness/src/framework/hooks/useSpaceSSEWithPubSub.tsx @@ -0,0 +1,74 @@ +import { useEffect, useRef } from 'react' + +import { EventSourcePolyfill } from 'event-source-polyfill' + +import { useAPIPath } from '../../hooks/useAPIPath' +import { SSEEvent } from '../../types' +import { eventManager } from '../event/EventManager' + +type UseSpaceSSEProps = { + space: string +} + +/** + * Hook that establishes a single SSE connection and publishes all events to the EventManager + * regardless of the events array + */ +const useSpaceSSEWithPubSub = ({ space }: UseSpaceSSEProps) => { + const apiPath = useAPIPath() + const eventSourceRef = useRef(null) + + // Get all event types from the SSEEvent enum + const allEventTypes = Object.values(SSEEvent) + + useEffect(() => { + // Conditionally establish the event stream + if (!eventSourceRef.current) { + const pathAndQuery = apiPath(`/api/v1/spaces/${space}/+/events`) + + const options: { heartbeatTimeout: number; headers?: { Authorization?: string } } = { + heartbeatTimeout: 999999999 + } + + eventSourceRef.current = new EventSourcePolyfill(pathAndQuery, options) + + // Handle messages by publishing to the EventManager + const handleMessage = (event: MessageEvent) => { + try { + const data = JSON.parse(event.data) + eventManager.publish(event.type, data) + } catch (error) { + console.error('Error parsing event data:', error) + } + } + + // Handle errors + const handleError = (event: Event) => { + eventManager.publish('error', event) + eventSourceRef?.current?.close() + } + + // Register error handler + eventSourceRef?.current?.addEventListener('error', handleError) + + // Register listeners for all event types from the SSEEvent enum + for (const eventType of allEventTypes) { + eventSourceRef?.current?.addEventListener(eventType, handleMessage) + } + + return () => { + eventSourceRef.current?.removeEventListener('error', handleError) + + // Remove all event type listeners + for (const eventType of allEventTypes) { + eventSourceRef.current?.removeEventListener(eventType, handleMessage) + } + + eventSourceRef.current?.close() + eventSourceRef.current = null + } + } + }, [space]) +} + +export default useSpaceSSEWithPubSub diff --git a/apps/gitness/src/framework/rbac/rbac-button.tsx b/apps/gitness/src/framework/rbac/rbac-button.tsx new file mode 100644 index 0000000000..bd2271ab9d --- /dev/null +++ b/apps/gitness/src/framework/rbac/rbac-button.tsx @@ -0,0 +1,28 @@ +import { Button, RbacButtonProps, Resource, Tooltip } from '@harnessio/ui/components' + +import { useMFEContext } from '../hooks/useMFEContext' + +export const RbacButton = ({ rbac, tooltip, ...rest }: RbacButtonProps) => { + const { hooks } = useMFEContext() + + /** + * Enable the button only if the user has at least one required permission; otherwise, disable it. + */ + const hasPermission = + hooks + .usePermission?.({ + resource: rbac?.resource ?? ({} as Resource), + permissions: rbac?.permissions ?? [] + }) + ?.some(Boolean) ?? true + + const button =
`} /> +## Secondary Button with Themes + +Secondary buttons can be styled with different themes for various contexts. + + +
+ + + +
+ +
+ +

Secondary Button Themes with Sizes

+ +
+
+ + + +
+ +
+ + + +
+
+ +
+ +

Secondary Button Themes with States

+ +
+
+ + +
+ +
+ + +
+
+
`} +/> + ## Outline Button Outline buttons have a transparent background with a visible border. @@ -371,10 +440,22 @@ Transparent buttons have no background or border and don't accept theme props. + - + + +
@@ -484,9 +565,10 @@ This ensures type safety and provides proper development-time feedback on invali }, { name: "size", - description: "Size of the button.", + description: + "Size of the button. '2xs' and '3xs' set iconOnly props to true.", required: false, - value: "'md' | 'sm' | 'xs'", + value: "'md' | 'sm' | 'xs' | '2xs' | '3xs'", defaultValue: "'md'", }, { diff --git a/apps/portal/src/content/docs/components/counter-badge.mdx b/apps/portal/src/content/docs/components/counter-badge.mdx index 9c3a09fa29..5a756dbe53 100644 --- a/apps/portal/src/content/docs/components/counter-badge.mdx +++ b/apps/portal/src/content/docs/components/counter-badge.mdx @@ -39,6 +39,69 @@ import { CounterBadge } from '@harnessio/ui/components' 99+ ``` +## Variants + +The `CounterBadge` component supports two variants: `outline` (default) and `secondary`. + +### Outline Variant + +The outline variant provides a subtle border-based appearance, ideal for secondary information display. + + + 1 + 42 + +2345 + -123 + +`} +/> + +### Secondary Variant + +The secondary variant uses a soft background appearance for more prominent display while maintaining subtlety. + + + 1 + 42 + +2345 + -123 + +`} +/> + +### Variant Comparison + +Compare both variants side by side to see the visual differences: + + +
+ Outline: +
+ 12 + 42 + +99 + -5 +
+
+
+ Secondary: +
+ 12 + 42 + +99 + -5 +
+
+ +`} +/> + ## Themes The `CounterBadge` component supports four color themes that can be categorized into different groups based on their semantic meaning. @@ -79,6 +142,13 @@ The `CounterBadge` component has the following props to control its appearance: ; + +function FormWithZodAndReactHookForm() { + /** 3️⃣ Initialize react-hook-form with zod resolver */ + const formMethods = useForm({ + resolver: zodResolver(formSchema), + defaultValues: { + name: "John doe" + }, + }); + + /** 4️⃣ Extract register and handleSubmit from formMethods */ + const { register, handleSubmit } = formMethods; + + /** 6️⃣ Handle form submission */ + const onSubmit = (data: FormValuesType) => { + // ... + }; + + /** 5️⃣ Use FormWrapper with formMethods and onSubmit */ + return ( + + + + + + + + Form + + + + + + + + + + Cancel + + + + + ); +} +``` diff --git a/apps/portal/src/content/docs/components/logo.mdx b/apps/portal/src/content/docs/components/logo.mdx index 2f3c4ed5e0..1686a5ab2d 100644 --- a/apps/portal/src/content/docs/components/logo.mdx +++ b/apps/portal/src/content/docs/components/logo.mdx @@ -29,6 +29,7 @@ The `LogoV2` component can be sized using the `size` prop. client:only code={` + @@ -64,7 +65,7 @@ The following logos are available: name: "size", description: "Size variant of the logo", required: false, - value: "'sm' | 'md' | 'lg'", + value: " 'xs' |'sm' | 'md' | 'lg'", defaultValue: "'lg'", }, { diff --git a/apps/portal/src/content/docs/components/skeleton.mdx b/apps/portal/src/content/docs/components/skeleton.mdx new file mode 100644 index 0000000000..dcc8ddd738 --- /dev/null +++ b/apps/portal/src/content/docs/components/skeleton.mdx @@ -0,0 +1,420 @@ +--- +title: Skeleton +description: Skeleton component for displaying loading states +--- + +import { DocsPage } from "@/components/docs-page"; + +The `Skeleton` component is a placeholder UI element that represents the loading state of a component. It can be used to indicate that content is being loaded or processed, providing a visual cue to users. + + + + `} +/> + +## Usage + +```typescript jsx +import { Skeleton } from "@harnessio/ui/components"; + +//... + +return ( + +) +``` + +## Anatomy + +### Skeleton Box + +The `Skeleton.Box` component is a simple, flexible rectangular placeholder that can be used to indicate loading states for various UI elements. +It is a free-form box — you can specify its width and height to match the shape of the content being loaded. + + + + + `} +/> + +### Skeleton Avatar + +The `Skeleton.Avatar` component is a placeholder for user profile images or icons. It can be used to indicate loading states for avatar images. + + +
+ + +
+
+ + +
+
+ + +
+ `} +/> + +### Skeleton Icon + +The `Skeleton.Icon` component is a placeholder for icons. It can be used to indicate loading states for icon-based UI elements. + + +
+ + + + + + +
+ `} +/> + +### Skeleton Logo + +The `Skeleton.Logo` component is a placeholder for logos. It can be used to indicate loading states for logo images. + + +
+ + + +
+ `} +/> + +### Skeleton Typography + +The `Skeleton.Typography` component is a placeholder for text elements. It can be used to indicate loading states for text content. Variants include different text styles such as headings, body text, and captions. + + + Typography +
+ Heading +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ Body +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ Caption +
+ +
+
+ +
+
+ + `} +/> + +### Skeleton Form + +The `Skeleton.Form` component is a placeholder for form elements. It can be used to indicate loading states for input fields, labels, and other form controls. Orientation variants include vertical and horizontal layouts. `linesCount` can be used to specify the number of lines in the skeleton form item. + + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ `} +/> + +### Skeleton List + +The `Skeleton.List` component is a placeholder for list items. It can be used to indicate loading states for list content. `linesCount` can be used to specify the number of lines in the skeleton list item. The `hasActions` prop can be used to indicate that the list items have action buttons. + + +
+ +
+
+ +
+ `} +/> + +### Skeleton Table + +The `Skeleton.Table` component is a placeholder for table elements. It can be used to indicate loading states for table content. `countRows` can be used to specify the number of rows in the skeleton table. `countColumns` can be used to specify the number of columns in the skeleton table. +`showHeader` can be used to indicate that the table has a header row. + + +
+ +
+ `} +/> + +## API Reference + +### `Skeleton.Box` + + + +### `Skeleton.Avatar` + + + +### `Skeleton.Icon` + + + +### `Skeleton.Logo` + + + +### `Skeleton.Typography` + + + +### `Skeleton.Form` + + + +### `Skeleton.List` + + + +### `Skeleton.Table` + + diff --git a/apps/portal/src/content/docs/components/split-button.mdx b/apps/portal/src/content/docs/components/split-button.mdx index ab39d1cab5..a22f1c9670 100644 --- a/apps/portal/src/content/docs/components/split-button.mdx +++ b/apps/portal/src/content/docs/components/split-button.mdx @@ -26,51 +26,149 @@ import { Aside } from "@astrojs/starlight/components"; {/* Variants and Themes */}
Variants and Themes
-
- {/* Primary variant with Default theme */} - {}} - options={[ - { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, - { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, - ]} - handleOptionChange={() => {}} - > - Primary + Default - + + {/* Primary Variant */} +
+
Primary Variant
+
+ {}} + options={[ + { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, + { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, + ]} + handleOptionChange={() => {}} + > + Primary + Default + - {/* Outline variant with Success theme */} - {}} - options={[ - { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, - { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, - ]} - handleOptionChange={() => {}} - > - Outline + Success - + {}} + options={[ + { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, + { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, + ]} + handleOptionChange={() => {}} + > + Primary + Success + - {/* Outline variant with Danger theme */} - {}} - options={[ - { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, - { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, - ]} - handleOptionChange={() => {}} - > - Outline + Danger - + {}} + options={[ + { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, + { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, + ]} + handleOptionChange={() => {}} + > + Primary + Danger + +
+
+ + {/* Secondary Variant */} +
+
Secondary Variant
+
+ {}} + options={[ + { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, + { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, + ]} + handleOptionChange={() => {}} + > + Secondary + Default + + + {}} + options={[ + { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, + { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, + ]} + handleOptionChange={() => {}} + > + Secondary + Success + + + {}} + options={[ + { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, + { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, + ]} + handleOptionChange={() => {}} + > + Secondary + Danger + +
+
+ + {/* Outline Variant */} +
+
Outline Variant
+
+ {}} + options={[ + { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, + { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, + ]} + handleOptionChange={() => {}} + > + Outline + Default + + + {}} + options={[ + { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, + { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, + ]} + handleOptionChange={() => {}} + > + Outline + Success + + + {}} + options={[ + { value: 'option1', label: 'Option 1', description: 'Description for option 1' }, + { value: 'option2', label: 'Option 2', description: 'Description for option 2' }, + ]} + handleOptionChange={() => {}} + > + Outline + Danger + +
@@ -297,7 +395,7 @@ return ( description: "Visual style of the button. Allowed combinations: primary+default, or outline+(default|success|danger).", required: false, - value: "'primary' | 'outline'", + value: "'primary' | 'outline' | 'secondary'", defaultValue: "'primary'", }, { diff --git a/apps/portal/src/content/docs/components/tag.mdx b/apps/portal/src/content/docs/components/tag.mdx index 6812a41ced..b7fc555ac6 100644 --- a/apps/portal/src/content/docs/components/tag.mdx +++ b/apps/portal/src/content/docs/components/tag.mdx @@ -59,6 +59,15 @@ import { DocsPage } from "@/components/docs-page";
+ + alert("Reset clicked")} + />
@@ -90,8 +99,8 @@ import { DocsPage } from "@/components/docs-page"; value="Reset" variant="secondary" theme="orange" - showReset - onReset={() => alert("Reset clicked")} + actionIcon="xmark" + onActionClick={() => alert("Reset clicked")} /> @@ -166,31 +175,32 @@ import { DocsPage } from "@/components/docs-page"; alert("Reset clicked")} + actionIcon="xmark" + onActionClick={() => alert("Reset clicked")} theme="blue" /> alert("Reset clicked")} + icon="label" + actionIcon="xmark" + onActionClick={() => alert("Reset clicked")} theme="green" /> alert("Reset clicked")} + actionIcon="xmark" + onActionClick={() => alert("Reset clicked")} theme="purple" /> alert("Reset clicked")} + actionIcon="xmark" + onActionClick={() => alert("Reset clicked")} theme="red" /> @@ -205,16 +215,16 @@ import { DocsPage } from "@/components/docs-page"; value="Outline Icon Reset" variant="outline" showIcon - showReset - onReset={() => alert("Reset clicked")} + actionIcon="xmark" + onActionClick={() => alert("Reset clicked")} theme="yellow" /> alert("Reset clicked")} + actionIcon="xmark" + onActionClick={() => alert("Reset clicked")} theme="violet" /> alert("Reset clicked")} + actionIcon="xmark" + onActionClick={() => alert("Reset clicked")} theme="brown" /> alert("Reset clicked")} + onClick={() => alert("Tag clicked")} + actionIcon="xmark" + onActionClick={() => alert("Reset clicked")} theme="indigo" /> @@ -291,8 +302,8 @@ import { Tag } from '@harnessio/ui/components' alert('Reset clicked')} + actionIcon="xmark" + onActionClick={() => alert('Reset clicked')} theme="blue" /> @@ -301,8 +312,8 @@ import { Tag } from '@harnessio/ui/components' value="Outline Icon Reset" variant="outline" showIcon - showReset - onReset={() => alert('Reset clicked')} + actionIcon="xmark" + onActionClick={() => alert('Reset clicked')} theme="yellow" /> ``` @@ -346,21 +357,14 @@ import { Tag } from '@harnessio/ui/components' value: "string", }, { - name: "showIcon", - description: "If true, displays the icon.", - required: false, - value: "boolean", - defaultValue: "false", - }, - { - name: "showReset", + name: "actionIcon", description: "If true, displays a reset (close) icon.", required: false, - value: "boolean", + value: "IconV2Name", defaultValue: "false", }, { - name: "onReset", + name: "onActionClick", description: "Callback function triggered when the reset icon is clicked.", required: false, diff --git a/apps/portal/src/content/docs/components/time-ago-card.mdx b/apps/portal/src/content/docs/components/time-ago-card.mdx index 59b1863982..de80cf1b55 100644 --- a/apps/portal/src/content/docs/components/time-ago-card.mdx +++ b/apps/portal/src/content/docs/components/time-ago-card.mdx @@ -90,5 +90,17 @@ return ( required: false, value: "'TextProps'", }, + { + name: "triggerClassName", + description: "Class names for the trigger element.", + required: false, + value: "'string'", + }, + { + name: "contentClassName", + description: "Class names for the content element.", + required: false, + value: "'string'", + }, ]} /> diff --git a/apps/portal/src/content/docs/components/tooltip.mdx b/apps/portal/src/content/docs/components/tooltip.mdx index 39dd12300e..4823479c2f 100644 --- a/apps/portal/src/content/docs/components/tooltip.mdx +++ b/apps/portal/src/content/docs/components/tooltip.mdx @@ -16,7 +16,7 @@ import { DocsPage } from "../../../components/docs-page"; content="A comprehensive approach to building applications that covers both front-end and back-end technologies." > - + `} /> @@ -159,6 +159,12 @@ The provider component that manages tooltips. Typically wrapped around the entir required: true, value: "ReactNode", }, + { + name: "className", + description: "Custom class name for the tooltip content.", + required: false, + value: "string", + }, { name: "title", description: "String to use as the title of the tooltip.", diff --git a/apps/portal/src/styles.css b/apps/portal/src/styles.css index 1d764506ea..4eb25c1d72 100644 --- a/apps/portal/src/styles.css +++ b/apps/portal/src/styles.css @@ -22,7 +22,7 @@ main { } code { - @apply bg-cn-background-11 !important; + @apply bg-cn-background-softgray !important; } .content-panel { diff --git a/packages/core-design-system/design-tokens/$themes.json b/packages/core-design-system/design-tokens/$themes.json index 680af808ed..9a164f8df9 100644 --- a/packages/core-design-system/design-tokens/$themes.json +++ b/packages/core-design-system/design-tokens/$themes.json @@ -434,6 +434,233 @@ "pink.1000": "S:b44becf897db84ca9893e7bc6ee876d8047170b6," }, "$figmaVariableReferences": { + "pure.white": "52c419632539f17ba925c9feb62dd0997fb92fdd", + "pure.black": "03d57544487860db5ec0cbbd99a53328c00ec7ad", + "chrome.25": "ae6075847edad28383965a55fe01310f358fed19", + "chrome.50": "d5c9b8b55f8c02ce6a07a14015e8b0b7e8103009", + "chrome.100": "35fd77f7d38bd8f0bfb0fc0d4f7f3a62883f6902", + "chrome.150": "18e50f49838e2d1bca0d5098fdf2cfc0d353ab43", + "chrome.200": "ec6ebd01f3e71b5b64c2997a7f3966e96bb40368", + "chrome.300": "caea18adb5e2e77045ec70e30b16e2d1374bd424", + "chrome.400": "fc64ac62920f35141ae56bfb9b4e81435af83437", + "chrome.500": "3b19aeb3cc769350bf4d8da48ac08c11a4fb228b", + "chrome.600": "54f13a9fea5dcaf3292063ca0bd27f5f4c42755a", + "chrome.700": "1927e92c65fa54443f8aec6dfac17a4451ece999", + "chrome.800": "540d1b73bf1e2238ddcefe5ea1b4a64742dc1fb7", + "chrome.850": "dc5318382387623637702462cf86f13e87e54dc0", + "chrome.900": "1a87807bf31cb48a8fea896cb7766137620337d2", + "chrome.950": "085f3c57219e29a1ef1bb252ce87b9760cda4761", + "chrome.1000": "22e930b4e96b1fffc17e5ecff5ba135653c4ba60", + "tuna.25": "6a82de04c92085d5949b469d7b6540b97d403388", + "tuna.50": "1139e72428551ec9fb58fa048203f3ab0158aa4c", + "tuna.100": "18b570d191dccd950a51b94280ebd5a0cfcbea06", + "tuna.150": "a6c45b08225005b71fcf42fbeed5e929771c5eb2", + "tuna.200": "74b3a5036521b6a4f581a9cdd6fbbbeda243727e", + "tuna.300": "4262b86575bcb4b705617ab19c4a105dc6c241f6", + "tuna.400": "b9668eb88ae86e1bbc37f3096e9e167f5cc14af9", + "tuna.500": "b7e99072fbc2757a368b3b076446774656e7789d", + "tuna.600": "cab7e23cfbeb3799bb6d6d8b03e649c08c312ce8", + "tuna.700": "88e86ad8f6e636323c91ceb0381061bbf0e4ff7a", + "tuna.800": "ab6a7f877a89243eb6a3a961790d50b8db8ff409", + "tuna.850": "a6e2ed9ce51e598027a181a0c0547baf4cef3eb5", + "tuna.900": "289f6483bc124922a485a0713ab6f6b4ce12a975", + "tuna.950": "3115fb19229118ed67a6bc76f06bc76cff8b3e6c", + "tuna.1000": "984daddf01ded58576f307343b3e2e0d113c9f43", + "red.25": "17c655b51f23e51e69564d2b6661f87e089e9818", + "red.50": "ee865b781af07bf8af70c0d946c74a2fd77efd88", + "red.100": "8d5b8a7c2fa0a4ff5f355444fab407e5a0179c27", + "red.150": "11fef18b50abf2c07d0c9d464231ee1b5cbd2761", + "red.200": "91c2a849a54c0cb275dd7d855ea1b83d7459ba02", + "red.300": "18e3cda9bd86088ed7b36e5db8642300485da5db", + "red.400": "3daef62441eaa8589cbfbcfa9a4ab8d22c031837", + "red.500": "b9b564018ff89df47cd3e82e2e88353372578616", + "red.600": "8c6b1b1be04a82c3e34b76e74bbd0f06c5795388", + "red.700": "fdd4ac7069ab48f53a908395325b72cd73e54042", + "red.800": "3d1a9fa3142b23fb4e4910177767c2f24cc201ea", + "red.850": "bc2cb2368446ba6be5815998f75e5dfe98a22f23", + "red.900": "29707ae5fa9b5b5cc9f9bbd4748f34d4ead427bc", + "red.950": "50f3f7ab39a0ed99b704e6150d1224d604d5dca0", + "red.1000": "264873e81ee4404869340551cc58dbafbd8558aa", + "orange.25": "d74497ccb428fe8318a33089128af3d17314608e", + "orange.50": "9c7c6517d1149508022cf8e28ecc6596a89851f0", + "orange.100": "e357859b43127b3c501a2efdb6d78e89f2a5db40", + "orange.150": "e9432a330b9ac803f10a872efd86c18259ea5a91", + "orange.200": "bed4af9d2082e10c565a68768bfe118b778c1247", + "orange.300": "6db41aa7ca3db159c47fb098bed9696cb54d5d02", + "orange.400": "b1b5736e48f38698762bcc87c9d6ce7914f0227e", + "orange.500": "f1eaa5dce2008cf63ac67ed7f9e31dbbefb30858", + "orange.600": "8b0df950915030160fcb6d3c6a839657fef7984f", + "orange.700": "cb5d9b4dc173b9808189489e3367fdd37b891cfb", + "orange.800": "44e31ee98bbf00ea77a6ed03f3e0535d3ac6871b", + "orange.850": "98b0baa975b0e404b25e9c65244fc2835a320cfa", + "orange.900": "f0dd14c74d4fafcf96edb92a504e58d09440dc1e", + "orange.950": "fa7a2bc3309a27c7d67569ebd797faa0f1f3cc6e", + "orange.1000": "4020415b5c2548f65855cdd25ad7402ab5d06ca7", + "brown.25": "2f5421e4628a010bd1af219d1eb3f45cf7170f8a", + "brown.50": "a7438c1abdd3aa259800d7c72a8e5174069ec121", + "brown.100": "87e214b895a19d4908ca0531f4caad0ca611346d", + "brown.150": "ccd3c3c50e7f9220a5b6373215cc38253cb05318", + "brown.200": "4afecb32c9ea6d147d0afa04b329dc42392d23bb", + "brown.300": "11a9498015fe04a20a7fff44421d6bfe2725a2c5", + "brown.400": "c7d1a583e3ec749862bf63e3162c9c6525977be9", + "brown.500": "ec2c3b1f04279fad57a2300ba407b3fabe929a93", + "brown.600": "a756bdad7afcddc2b16c6e745953ad5b3483bdfd", + "brown.700": "1ee63f3d0a3cf73c6c6ee9adf2b5099cc7052a69", + "brown.800": "4c7fd08f3cf67434b0a59331b85a0277ddeff221", + "brown.850": "8bc8ba921283b61724734b63acf08adafde0e83f", + "brown.900": "85997ac2ef10e6bcfd0a28962b36fab626ade98f", + "brown.950": "f5225be85bdc6cfb1881e0d02733efb531865c3a", + "brown.1000": "ebe4198d367273095adc2b51f7b55791567fbe39", + "yellow.25": "615cc0fd884869bb0c4908bea5dfa0ea044442fd", + "yellow.50": "ce5a03b7528299c9644ac6e4a0af13ae1346034c", + "yellow.100": "c2781d47620e8d9495d8538522412298cf243dba", + "yellow.150": "05e75c4f99a6b2aad1d17bbd0cb1374266a44fdb", + "yellow.200": "94f7015cf02355ed76ea058c77499152584a8ee6", + "yellow.300": "d4382d055c2e852f8ae0da3f9d74c911ec6eab1c", + "yellow.400": "f2e254f2a6105258427de2e5069daf6c0ccf3b3d", + "yellow.500": "495773adfceb425fd8ba7a912b031b6efa04ca84", + "yellow.600": "87d2fb0a8e2233cb6140722c058ef28794fd4ced", + "yellow.700": "8043126913f3e0d37854f5ed2481740368e2da0f", + "yellow.800": "600acbdf53893938243d76b8a9ce2090c094f679", + "yellow.850": "96f599d0f4c767421daa05e71a971b0f5cd7b4f9", + "yellow.900": "73c7a35ba8ef4277b255fab8e9f07ae6dc1cce4d", + "yellow.950": "a4b61e2e0fbe2861783ef0d16416aca97fbbe132", + "yellow.1000": "b9f8494231ac1d9e91064e6d52ce87bf0723bb44", + "lime.25": "27a61fe5896c46b1985743f1866d77bfabb95f3b", + "lime.50": "584bde3b77c10df6796fe385b8e357371d4157ee", + "lime.100": "8c40e0ca2d0c8be80a4f5cc2137c1e08228cf72f", + "lime.150": "21a3fd5ddf458f90a5779c51d52ee033654bdb4f", + "lime.200": "911743949e8734bbc078108dcbd389de23bc4f18", + "lime.300": "cc124a400e33c863e8a576ec87f2ab84791dae40", + "lime.400": "4dc27066f3e9cbdd92cfecd5295d305c583875ac", + "lime.500": "addef49d2848e49a8c0cf8548d46acda77727cde", + "lime.600": "da4a480b93c186e7c746deeb93101a880eb6f447", + "lime.700": "7d555b4d2093ea48defe28a9000c7074bd05c826", + "lime.800": "288dbc58bd3d47fd0df277283ae2464d721fc4e0", + "lime.850": "ac695e942871a7d612a71334a0d8112da37936f9", + "lime.900": "794d87abada0ab221f2a891866c96c7920e68d10", + "lime.950": "297faded2a9ceef113e65b20673ee42bb42546c5", + "lime.1000": "dd60d1e7f143b0f184fe9bd2daa974a56b5121b3", + "green.25": "4f5369e88dcd18499a57f3e303c6df4822930e96", + "green.50": "49b322942e36d7ba52e57317f3327ce138a1c39c", + "green.100": "287c9d42d059eb3183ab06cc6ae86910b0a4696a", + "green.150": "f7eb50c3206deff113b611d1bed49310e120f314", + "green.200": "72f009263fdfbac45d18bfc23d2d2213e60449cd", + "green.300": "389857ed2b1063b6e9bbeecbe94de5cc2bb80c69", + "green.400": "b6e88cadfdfc0589eeb903be96e85a574967be0a", + "green.500": "cbd21f4e50e6424ab059526e24ae26afa0507873", + "green.600": "7d1d5003c21d0aa3b830249bfa298c629eb2b946", + "green.700": "a5226a1a03509c7ec8b9e35dba560635d323f234", + "green.800": "0a440f3617bf6a220225cdb5eefe8f7773d9e58b", + "green.850": "e85bfbcd546bbc08117fe89168946d2c585358a4", + "green.900": "e9e6bde7281bc9ea3cba48381c737ed758642a01", + "green.950": "7dbfc135f577e06404e010e398c1bae432d27ba9", + "green.1000": "e54fe7dfee1adead2c9c57de4aa3bcbfd368bbef", + "mint.25": "8bc6e19bbc96027797f74e51e8883d10a367fc93", + "mint.50": "29b96a5cea546c325f2c606935b94c748a6f418e", + "mint.100": "f1cbb72faaa2657d0739e2adf9072895a035fa38", + "mint.150": "2fd9d90231b1c59330096a815d61ff5a2293597f", + "mint.200": "99816b33171677e356a5718472377aae0c8eedc3", + "mint.300": "fbf3c59c4bfc0eec140057acfb9d01c479360bd9", + "mint.400": "d2bad453c669644d6317cbd787fb0c73838fdc02", + "mint.500": "7b607cb783a3b7de4244967b75e1c5852892232b", + "mint.600": "3d96cea7e8afb5e71cccbf8da155e538f57fa723", + "mint.700": "064cfd76590efe94233025e7b987d4b7acd353c6", + "mint.800": "2970b04365ab3da79c6abea3c54fc3d93a19cd74", + "mint.850": "c62bc5c3ea557c6aff3fd459e8b7c206f69953c2", + "mint.900": "93791a60a4690583ee078c1000ec178a149f8166", + "mint.950": "8d5368a28e6cd570585a1b18d3b29e4cce5c4637", + "mint.1000": "052855abdb01a20fd2201d1e91e04961a807cc16", + "cyan.25": "80c66267eee8a1cf333777cd4e42d9f2f6c02c0d", + "cyan.50": "2b2026ebaf7f15ed22f94ff8ad3ef1ef1f96c45c", + "cyan.100": "2adce54539ab28bb59ffe29c590f5d916213f558", + "cyan.150": "13c216fd468b3ba99c4b9c16f2c8acbb3883b1cc", + "cyan.200": "b5ca8c60e9e1129ff5077021ba8fa984a1a554e2", + "cyan.300": "be90471edbd4b6b74c9055e943f87bb53edc1a4f", + "cyan.400": "72fa9b2705a897568137bdb6e6a0f8e989e435d1", + "cyan.500": "4ea0b57db820a98091ecf6b11eb9e786029c80fe", + "cyan.600": "193ad7acd91b9a395612c9347f427c69f5c6a8fa", + "cyan.700": "4870a7aaba985d3052a60ddc42e42967c24c3e9e", + "cyan.800": "303defae08dc5bfbe9ec7dd691d7d63279a5187a", + "cyan.850": "5f338a5cf7030e423a9953e0a16faf2186b68f62", + "cyan.900": "0ec252ce704a02d1ec23d67661ad5e79bffc78db", + "cyan.950": "4c92bbeba1399f32cf1462094d7c77c880433c85", + "cyan.1000": "b811bb7e67229e269ee2b008b4e74c0acda7f541", + "blue.25": "5bebd07be28abcd21ce5f709920462be046e73d2", + "blue.50": "175691dbe40e01ccca8fdc32f9de1a42fe5d42fb", + "blue.100": "ecff2aa2eb0e6f3bc415c22cd9fbbcc8d5bf3d6f", + "blue.150": "2bc1b619fb278635382d039c4265aed5495d5c28", + "blue.200": "cb39037aa29172548515c777d14c40e3cd227484", + "blue.300": "f275014cc2011b1b9d77add7e714ac7738e6437f", + "blue.400": "83ad2125d830e88a209ca53b4423a8b26f644347", + "blue.500": "29a6c808a0f2a8dc33a17bec98f1bc075d58dac7", + "blue.600": "22ab20a552ed0bcd389c6705691a2bbe5f5aac67", + "blue.700": "0de869eca72b7fd1f73e0ee4c16e52a0fd9f39c2", + "blue.800": "4a172a17dee033863e840383d457653373b33fb6", + "blue.850": "c60af7ec9079c2a77239206898258fee0cd3ee7a", + "blue.900": "4676fdd02afd3ba152791afa3091b62af5d637b2", + "blue.950": "bc7463470e6ca5aa8d19f5f0832bb4087b8baea1", + "blue.1000": "39ca1df083667500db20f8dc6230de94a7173544", + "indigo.25": "1e051bd0d732caaa50fbe7b75055700c580965f7", + "indigo.50": "fb791a853aea1cf642282a20ea4a5118d1b037ee", + "indigo.100": "9f2643f6b2d70043ec08e6200f38ed7ed0ac8d3a", + "indigo.150": "aa3b35c4c28e0b234283764a94cc2083633fae76", + "indigo.200": "e77538637ad0870ff33bb7b5b754785e68ae06b1", + "indigo.300": "0cae97737cff14e000f3af46f23cc82e51312c79", + "indigo.400": "50223f1cb0f4e063c39907e33ea876f13a90a21d", + "indigo.500": "bf2e7cbced6172b78240ee9bc19dca13cef6e024", + "indigo.600": "9d0546f9c3d853e4bb9e53ad8fd99df9c5b9a45e", + "indigo.700": "0b3aae4e6d3a68c186acf0b16c4d321df02e8e3b", + "indigo.800": "c7aa16a29ca72984fa45999023717dda9e3d7529", + "indigo.850": "e1475f7aece07066c52140fb5e9ef4e47bfbf0a5", + "indigo.900": "26171e1ce82ac4d9a52c9ce8368a7d3daf9377b3", + "indigo.950": "f936b4a324ae56d07eb1dbc5c1741cc1b7424816", + "indigo.1000": "97a6cf884f01108046c3a10d3df521735e63c19e", + "violet.25": "5ab6cadd99e8ad463b349fb3f44386190d189cbe", + "violet.50": "e8bd5e618a46288cba10d3203293282e51a14158", + "violet.100": "60be982137a2bc497b65c8165d22ae9fa5043aae", + "violet.150": "5fdbcdf5a514e36723e1ef4233dded1eb6224523", + "violet.200": "1c57509f90900a359e0d12715caadea557490a6a", + "violet.300": "366751b76bcf8225ddaac2b746e8a163cf73e107", + "violet.400": "fa48b4b4d08e6f3883d357f2fc1e8e935399cf5d", + "violet.500": "fbd10981f0011e1cb0e5381b303eb4f74cd05e38", + "violet.600": "856451fe5b78f2c91aa68d3877aa2363c96213b6", + "violet.700": "647aa7a0410681b5947b939811151986b366a569", + "violet.800": "83245630b05e00340f2b79b8ae657e84b4656e73", + "violet.850": "8eb811f9cb1343531188f13950b5441d87158a0b", + "violet.900": "c01e954cc5c4e02c0f393bf204d4b878339c96c5", + "violet.950": "563aaa6e790164e390d3efcc15683700b993caf4", + "violet.1000": "6e31be4e73c4a42d180ee3fa4400f8d3e9d84368", + "purple.25": "3c01fe86e00f7fdf4bae7b1e16fcb5fc577e0a6e", + "purple.50": "e5482729116aa33b7dc90c26affc41eda96d6254", + "purple.100": "b8e1251c10c59df03a0acbd86903d65e1aacea2e", + "purple.150": "d8543758d19b266f44ed1bda954d52bd11ecd7eb", + "purple.200": "f8c593dc66783834ca84fe5032a836a7b1629ac4", + "purple.300": "adcb86070805e30319da1dfc68dca5517df70698", + "purple.400": "2922c142b1b6b4daa996c960dcbc24c5491c6e31", + "purple.500": "a020b1555bfc43dd729add3dd0f5caa45543707b", + "purple.600": "b7a8e2168f0b3409bfa976cdc85ac8d6792ca8a0", + "purple.700": "8bb3dcca42187beefb63712f07a704f4674198cf", + "purple.800": "c91502a1eb6c71020a0eb7a34b02aed24dd3d394", + "purple.850": "e7d9c6583abd9dc75e57eb51e3eaba3e193fab08", + "purple.900": "1ad941b48b9094ed09c6be2e69c593684025a5a6", + "purple.950": "9369acb40c83d4736cb0b242a608c72f61a47cdf", + "purple.1000": "2a96f0b360020f9f2a5ac3850a4b4b70e573763b", + "pink.25": "dddb9184ceb0bad0802db6eea54ebbedc5766f97", + "pink.50": "30c1a44af586a37fb76487302c201faa14165fa3", + "pink.100": "967ab963ee121f583127d7883cb37d9786ca7513", + "pink.150": "fee1bd84251922a49cc56fee2fcb1a22cf2489dc", + "pink.200": "d089f0d3f1268c46a860a9aa94fd7cf5964db462", + "pink.300": "e0bf8fb2d47ac0b5fd9428d8838de930d96cf453", + "pink.400": "986ccdd3f8b6a1c49f6a814d1cb117f08b94740a", + "pink.500": "8e8985665e6cff8801c4cf5a92fc05eea9269e6c", + "pink.600": "bb1acef38ec709d904bde91b2199e93e9c5ee2b7", + "pink.700": "803753fce87431ee9b1253134f9b3846dc55aa2e", + "pink.800": "abc92f7976b2e203998bab8482b1546c2a52523b", + "pink.850": "cfa2549e67a4e08db21c5f636f55062c20b6a30c", + "pink.900": "9751ce3d9877a74e0415e9f00274f845cc07bc57", + "pink.950": "24ddde3769d7b6e2355ac7c78ac21d64c54e38e4", + "pink.1000": "b8754e7ebf99dacdff9db965273e9aa8342714b1", "tracking.tighter": "a612b42a1649449f70026a485256dbbf92da6d92", "tracking.tight": "7a7825cb0165113837002059584dbce83e75a03f", "tracking.normal": "167b6fa66855f1546669aff796686de35514edd0", @@ -578,7 +805,123 @@ "lineHeight.multiplier.snug": "93bed03a85ad34fdee0d5bb86de4126a9ed08d20", "lineHeight.multiplier.normal": "a502673b02d83b87750c4e71c3091c317607e645", "lineHeight.multiplier.relaxed": "d8300d3cdd380169018f2db9feb5c1461dc098b3", - "lineHeight.multiplier.loose": "9216601ab3d5ad551db5e2da00a7eb5a11b0c7b1" + "lineHeight.multiplier.loose": "9216601ab3d5ad551db5e2da00a7eb5a11b0c7b1", + "spacing.0": "475f43f27d46745efb1151d34181ca93e485c323", + "spacing.1": "a88d7f7fa50cfde706a203262c7981abf2275b7d", + "spacing.2": "15d295c3581f15a4b4cc29bc3b2c9c4f02e88009", + "spacing.3": "a6fc69939f4e101df0846ffd8b244aa7f02b5b17", + "spacing.4": "d3e5a4611b45e280bf565885815d34b4f35b341f", + "spacing.5": "647b25f3b73bba5e0e7cad5197964902c3172271", + "spacing.6": "77538eb6f928a531f96653e917be0b3f0b04f1b2", + "spacing.7": "eabc95bcaec14d0cf6221b477c47891a1304c2d6", + "spacing.8": "559997e9c6f60fdd365bf970c84053807f2913ad", + "spacing.9": "4ca8e5e378ea054ccd38f617af4ec9db95487a17", + "spacing.10": "ca471ca65f9c794ddad2490cfb1e0e7e7467571d", + "spacing.11": "efe2a2a5b2a60d05c078a1c7a7950588a3a030c6", + "spacing.12": "ef37fcfa576beb8e91c51010ec3329ddbe985742", + "spacing.14": "1ae0ed4cd0c32b858ff791415edad283ef1c2af5", + "spacing.15": "7d0c7fdfa257a4833bb391e8197069da34dfc08b", + "spacing.16": "0d515ad8f73ae192356bd3fce04347ff8914bfa5", + "spacing.17": "ee98a1e0f71b564a1ccc117d34065908173dba1e", + "spacing.20": "8b4d19c935a89483725be041ce3e19182d81638b", + "spacing.24": "7b33d80680ee7f444bc05e404bf74b2fa7caac3b", + "spacing.28": "9e4816803f1f3739c0321eb5d351764da7ba9465", + "spacing.32": "f4344da90bf121d27d8fa80ddceeaa8d7c3e0f8e", + "spacing.36": "0127ed64e28cefa0e9b851a33c4eadc7ab340b30", + "spacing.40": "51e40236139d4fb0f3ef7d0e977093002253bc61", + "spacing.44": "648106e96c726104a5e737698f73f8f4dc85c150", + "spacing.48": "95524ca9ea66ebf7d20704e37d6672cbf39853b0", + "spacing.52": "dbf3f8ffb198ed478221f41f596efece5b17c59d", + "spacing.56": "3a73be8db57fa234fe23fb6c3debdc70e638ea55", + "spacing.60": "152dc4ff6aa1872e7691165d5769dbf8a4a45834", + "spacing.64": "b0478a9dae383d519e21253c882dfc85f702beb1", + "spacing.72": "c88ec41927fa21f2e77b259b95fdb95c420f60fe", + "spacing.80": "ec7856d13178d1e67c332ca681f3f8b407efecef", + "spacing.96": "bb4095e6118ca10fbb01085092263e8969247eba", + "spacing.px": "16fe4e3bc0b07f7f3d861c3fdee494d9d6d763e3", + "spacing.half": "ecfb730316867f575ec291afc3da55c32d57e10f", + "spacing.1-half": "ce6ffd93850926f8eb936f880fd2e006cf31c390", + "spacing.2-half": "0c948ab41410d710ba691e61e04d7523ebe2598e", + "spacing.3-half": "4e6064233484460281223f420b5015d31aeb5efc", + "spacing.4-half": "aca636954fe21b24a18ac1e2641cab71b2fce9a8", + "rounded.1": "4c8e9b29af661054f065ecfb517ffbf725d128ae", + "rounded.2": "5c9a222659e74e39ecb528719f03049f267ba7b6", + "rounded.3": "546448f107049e61fca518fd32468633bba50a51", + "rounded.4": "8355a7d82d6f8643701db782be4fb5cc61e0fe2a", + "rounded.5": "babea9851a66e652c1b014b1b4e5ae3703efb06a", + "rounded.6": "00e5a4d652385f2496ba39014f6c1daca0e26736", + "rounded.7": "f36f7c646daf87ab3f745e9f73c885a957b414e8", + "rounded.px": "3c023b948516d2071836e07348eb83cbba78a0e9", + "rounded.none": "dee9b0b76ac1ec8e902c7f542c80e776ce9fee0f", + "rounded.full": "4691cfbd097fadbf1bcc96d2f48a40f9852cc7bf", + "size.0": "995df3a4b1b9b4f63001434f1d6725f9b299eac0", + "size.1": "c84e4d0afc5158ef9686053a2bd5d6de68929ed9", + "size.2": "2d22b5c7aa2af1b3c275a61921eedea63b897388", + "size.3": "9f9e971446627d49af5f282dde4d32278b01e4ea", + "size.4": "7ec1913fa9d0ba99a9c9ab479c214d2134048880", + "size.5": "8735292eb38dbebd85dc8ee43f2d23ec7b42d283", + "size.6": "52822e56506b18300e0fbbdf2bb7e365e7bf7ff2", + "size.7": "6e063a94e51cebd7c9a219d176c7d787ca821d47", + "size.8": "a49fe5980cf079c97127f5438130dd0c5849570d", + "size.9": "9538fa61069ecb323a822444b1a50c5c31cc9a76", + "size.10": "58d1040e7172436e7ee0e20affe14526f17cdb1d", + "size.11": "a09585144f13eeed9212adba9567769b0f50fe0f", + "size.12": "e6dd420d85cc30a8bac1788e21d7b6572f069cde", + "size.14": "827d8aab20a4c2491204ab2667997e5290363d01", + "size.15": "62e1e9eb74ab5b4f461acfe135981095568e6e63", + "size.16": "5b7b04b1ade9b423f1d5b9720898fd4776956a36", + "size.17": "9d66ea8b44421a613827b5efb3a3dbbac30bdaef", + "size.20": "51754ed1d031bdf73b871a0194e054b6bcdb99d2", + "size.24": "c9ff66a843bc50465f8632bd973a3805f551c773", + "size.25": "7ed72372fd133e223724d79ceb68252f04f444c4", + "size.28": "3d67fc88f56362f7cf66ac51f2f88cd9bb61385c", + "size.32": "3f3df7e30c35ec68258af2b3cf03322b3c12fccd", + "size.36": "0a36770ba6fc4a8dfad5e6ef9cea63dd3922547b", + "size.40": "4c98adca6ab6f590dcc5dcb8a25d8b32a8b9cffd", + "size.44": "19cc767ac465f9c37655b12bcd8a66ce8be013b0", + "size.48": "442e1202060ff89b13c597f3ec9a29ddf3eaf839", + "size.52": "662fff88f39d26ffe3870ec41daeb3759e47163d", + "size.56": "e2bc8e5ee61c219b9e4ba8b4183d693867bbe248", + "size.60": "6f80ba41ca6c5d047a9d4ce27d1bfe05846ff2f6", + "size.64": "1c15ed3b9ec4bf2bdc3ff99093f7ec93633b944e", + "size.72": "c49f20e7589d9e10bb30c4b7ad45440a9a789d01", + "size.80": "f0e6046ee68bb26d971366e664771f36ffd3964f", + "size.90": "71e16ac59f8643ff6056f04a8628df44751a621b", + "size.96": "481530a9303c4b3abe4882fc4b13c01e82d6d32f", + "size.5-half": "02cdcd540dc35d36541a458b41b6570be8c77863", + "size.6-half": "8f662f722e060dd67f978dcbb70aca99c4e96042", + "size.11-half": "9a980f6bceb28276332e8cfc9e9f979914fd5419", + "size.px": "facc62d09b9290c8ae5a39e684e076f0078cce60", + "size.half": "a18c6726902f0dd03d09fda796c7793f1e5a3be9", + "size.1-half": "84a71e411cbd12832d0ab8d7d4581fcf24fa8f45", + "size.2-half": "a1e7743b917f7797d104b2a158c78db905590160", + "size.3-half": "ce599118fc3730b354fa05d449bc8f9b99f91720", + "size.4-half": "59175fbc6ac90d7b1bb49c2dd7adc7008266738e", + "borderWidth.0": "950d5f6e9b3fed7b192e5a150f74927b462bca29", + "borderWidth.1": "554d33ab7c952fbe9558f3c9562483abda105891", + "borderWidth.2": "c259dae921de08038e1efb5f295d8ab4be540990", + "borderWidth.4": "4f4280b0a24f816e2dfb5ba5a39199c24d7c4b61", + "borderWidth.8": "c1632660a255d86cde0647e810c28fb8bb6e8f65", + "iconSize.2xs": "7094639967ebfc8bd85f38a38d26f021655fec1a", + "iconSize.xs": "60a419ef3a3707069d4332226fd5de5026262723", + "iconSize.sm": "f857bc614dc0f9dafc613bf5f04eb305d194fe36", + "iconSize.md": "30dfaa7e6c403c1b81191920634c612f67662aea", + "iconSize.lg": "451a4646eb5faf5fc5ef43f979672417d5f019fd", + "iconSize.xl": "1da69111eca3d6355427d1523736d7ef13fb460c", + "opacity.5": "fba99779f0643e77980a4d90e7a48e8c8f093392", + "opacity.10": "c8297f2efa59795f049fc78e7e8393c4c3d42db5", + "opacity.20": "325ce676a14c53488a2fa61c8c44e04e269f9737", + "opacity.30": "a638aefcf451b8d97245893c7aa59869e7a82243", + "opacity.40": "370944b9142b1bacefa0312e20861cf9abefc775", + "opacity.50": "9ec5475265d5784de6162cb26dc9846f49f84bac", + "opacity.60": "24a25f920c1de8559e48a5828b4c982bcccf75c0", + "opacity.70": "24e70506912d5e69d78083757e230896de95107a", + "opacity.80": "33302799180ddad5fc64a467c05b838de900cbe4", + "opacity.90": "2e5e5354d12c683fe7425b9893eee79eaa1f8f42", + "opacity.100": "5481fb438b0a55df0a75453db8621b3b883468c2", + "logoSize.sm": "dc9f868330a7dca4cb948c8e0f5539426331ac14", + "logoSize.md": "c32145ffe89c63f259d9a9b73f7b945eb5c04969", + "logoSize.lg": "5abef04efe31ce7124dc51738ee7f70dc5f35ba9" }, "$figmaCollectionId": "VariableCollectionId:426:491161", "$figmaModeId": "426:0", @@ -1500,8 +1843,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -1515,6 +1858,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -1528,7 +1872,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -1682,6 +2025,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -1702,6 +2046,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -1754,7 +2108,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -1768,6 +2121,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -1847,9 +2202,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "$figmaCollectionId": "VariableCollectionId:1340:156918", "$figmaModeId": "1340:3", @@ -2462,8 +2815,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -2477,6 +2830,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -2490,7 +2844,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -2505,7 +2858,6 @@ "set.ai.surface.text": "52ddfa5ea6aed729c40dadc69f5327434231ea59", "set.ai.surface.bg": "47707bcec328fb320335ca0cb8fc19628a812889", "set.ai.surface.bg-hover": "739c62c4ef008e2fcfcb7300cf46c96627e102d0", - "set.ai.surface.bg-selected": "e999fe279257851c15203f3cb36db3c5f0a3757d", "set.gray.solid.text": "5087347f06426c2415ddea934d3641d1120f3662", "set.gray.solid.bg": "498d5985cbe806febb13511b25ff1a0dd690ee0e", "set.gray.solid.bg-hover": "6bc718204cea97279f9c3aab5a09373ecdab477f", @@ -2644,6 +2996,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -2664,6 +3017,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -2716,7 +3079,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -2730,6 +3092,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -2809,9 +3173,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -3423,8 +3785,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -3438,6 +3800,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -3451,7 +3814,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -3605,6 +3967,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -3625,6 +3988,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -3677,7 +4050,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -3691,6 +4063,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -3770,9 +4144,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -4383,8 +4755,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -4398,6 +4770,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -4411,7 +4784,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -4565,6 +4937,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -4585,6 +4958,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -4637,7 +5020,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -4651,6 +5033,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -4730,9 +5114,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -5344,8 +5726,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -5359,6 +5741,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -5372,7 +5755,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -5526,6 +5908,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -5546,6 +5929,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -5598,7 +5991,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -5612,6 +6004,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -5691,9 +6085,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -6305,8 +6697,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -6320,6 +6712,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -6333,7 +6726,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -6487,6 +6879,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -6507,6 +6900,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -6559,7 +6962,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -6573,6 +6975,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -6652,9 +7056,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -7266,8 +7668,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -7281,6 +7683,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -7294,7 +7697,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -7448,6 +7850,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -7468,6 +7871,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -7520,7 +7933,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -7534,6 +7946,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -7613,9 +8027,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -8227,8 +8639,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -8242,6 +8654,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -8255,7 +8668,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -8409,6 +8821,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -8429,6 +8842,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -8481,7 +8904,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -8495,6 +8917,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -8574,9 +8998,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -9188,8 +9610,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -9203,6 +9625,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -9216,7 +9639,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -9370,6 +9792,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -9390,6 +9813,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -9442,7 +9875,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -9456,6 +9888,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -9535,9 +9969,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -10149,8 +10581,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -10164,6 +10596,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -10177,7 +10610,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -10331,6 +10763,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -10351,6 +10784,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -10403,7 +10846,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -10417,6 +10859,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -10496,9 +10940,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -11110,8 +11552,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -11125,6 +11567,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -11138,7 +11581,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -11292,6 +11734,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -11312,6 +11755,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -11364,7 +11817,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -11378,6 +11830,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -11457,9 +11911,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -12071,8 +12523,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -12086,6 +12538,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -12099,7 +12552,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -12253,6 +12705,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -12273,6 +12726,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -12325,7 +12788,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -12339,6 +12801,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -12418,9 +12882,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -13032,8 +13494,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -13047,6 +13509,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -13060,7 +13523,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -13214,6 +13676,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -13234,6 +13697,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -13286,7 +13759,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -13300,6 +13772,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -13379,9 +13853,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -13992,8 +14464,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -14007,6 +14479,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -14020,7 +14493,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -14174,6 +14646,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -14194,6 +14667,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -14246,7 +14729,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -14260,6 +14742,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -14339,9 +14823,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -14952,8 +15434,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -14967,6 +15449,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -14980,7 +15463,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -15134,6 +15616,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -15154,6 +15637,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -15206,7 +15699,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -15220,6 +15712,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -15299,9 +15793,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -15912,8 +16404,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -15927,6 +16419,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -15940,7 +16433,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -16094,6 +16586,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -16114,6 +16607,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -16166,7 +16669,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -16180,6 +16682,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -16259,9 +16763,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -16872,8 +17374,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -16887,6 +17389,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -16900,7 +17403,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -17054,6 +17556,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -17074,6 +17577,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -17126,7 +17639,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -17140,6 +17652,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -17219,9 +17733,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -17832,8 +18344,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -17847,6 +18359,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -17860,7 +18373,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -18014,6 +18526,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -18034,6 +18547,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -18086,7 +18609,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -18100,6 +18622,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -18179,9 +18703,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -18792,8 +19314,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -18807,6 +19329,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -18820,7 +19343,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -18974,6 +19496,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -18994,6 +19517,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -19046,7 +19579,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -19060,6 +19592,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -19139,9 +19673,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -19776,8 +20308,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -19791,6 +20323,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -19804,7 +20337,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -19958,6 +20490,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -19978,6 +20511,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -20030,7 +20573,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -20044,6 +20586,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -20123,9 +20667,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -20736,8 +21278,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -20751,6 +21293,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -20764,7 +21307,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -20918,6 +21460,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -20938,6 +21481,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -20990,7 +21543,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -21004,6 +21556,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -21083,9 +21637,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -21696,8 +22248,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -21711,6 +22263,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -21724,7 +22277,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -21878,6 +22430,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -21898,6 +22451,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -21950,7 +22513,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -21964,6 +22526,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -22043,9 +22607,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -22656,8 +23218,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -22671,6 +23233,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -22684,7 +23247,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -22838,6 +23400,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -22858,6 +23421,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -22910,7 +23483,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -22924,6 +23496,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -23003,9 +23577,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -23616,8 +24188,8 @@ "iconStrokeWidth.xs": "e445b22e1f18af07002a1dc76f900dada5477383", "iconStrokeWidth.sm": "4377ec04d21e3851d7f71914a0051ed09daad5fb", "iconStrokeWidth.md": "580043ec5bcae9c2097bff41e3e24e49883451c9", - "iconStrokeWidth.lg": "e72029e275f9e020f7d772662521389ea67a279a", - "iconStrokeWidth.xl": "1e5cea2de7cba95cc1db412bd516dc72776136c0", + "iconStrokeWidth.lg": "f29dd93a5c1e0ef5552fe49e12b89a3e5dbde9ea", + "iconStrokeWidth.xl": "e72029e275f9e020f7d772662521389ea67a279a", "bg.0": "33d211d40bf9cb2b44b39504224ce89c82ce1a04", "bg.1": "633e5f77aa1bd1bd133852d8372b9c9f1231a9e4", "bg.2": "14e8d4b56cc273b508af8a2c58cb00e99e08d1d3", @@ -23631,6 +24203,7 @@ "border.1": "5ad2231a611605964ba70f80e7aabb48f04bc704", "border.2": "9084bef359e38136e0dddac25a464896456a9b1a", "border.3": "5ff5d5233f7cb0233ce7634bc480026668c818f6", + "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", "border.success": "b13758973865eab0b4d79028a48e457eae8bec47", "border.danger": "33d53c1486021bb3c9edce4123b484a2aabc8de0", "border.warning": "027e57e08a1edcaaa7fbe033902bb3f65497abb4", @@ -23644,7 +24217,6 @@ "state.disabled.border-selected": "8bbb21952895e6137414c772a2a0b2dbcb75cfac", "set.brand.solid.text": "e54daf32b7e60abb7f4e78b7887897cdf7d62428", "set.brand.solid.bg": "b746eae610b23bc0492a1eb3509d04f29ed1fa54", - "set.brand.solid.separator": "a1484aaa6f00f4cb6a4ed1f593e3b176e2f2165c", "set.brand.solid.bg-hover": "7c2295b132267c53472f5dfb2bad5e2e8c26d387", "set.brand.solid.bg-selected": "02875959232fdcd16e8e1a9399124ff10644d9bc", "set.brand.soft.text": "519f1ce4e3b4335412eea24e63166cb7312b344e", @@ -23798,6 +24370,7 @@ "set.violet.surface.bg": "5c87a91673aceb3fe3aeb32786b71743e9ab72a0", "set.violet.surface.border": "2948d30bd8e42511bbb7c6a9f3c703c4eb9237d3", "set.violet.surface.bg-hover": "0947d26c3e42ab66f47a78a6fa4c27110a47d005", + "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa", "comp.chat.ai-icon": "eb739da4d92fa16ad32a953f2d487fd33de4ae09", "comp.dialog.backdrop": "893e60ed671f891241a3084707057185398446ed", "comp.dialog.backdrop-nested": "4d6dd58029a86c9031f029656bab6dbc55f4db66", @@ -23818,6 +24391,16 @@ "comp.diff.hunk-lineNumber": "bccfad80b84e35edf4b47af2ca30057eba2b2ebf", "comp.diff.hunk-content-color": "68c5d6a95d475f7275062e3eb58dba464df3d059", "comp.diff.expand-content": "1f0c136f21d9abc2ce4a585f7750043932bfc30f", + "comp.diff.hljs": "a5aa8887c6d36068ead6b622ca75806a9e21d48a", + "comp.diff.hljs-comment": "ba54ebdd4f060185050bc73c1f28c69975f6ff2d", + "comp.diff.hljs-keyword": "2ad396c7b8ef99b8154ac874f2e2043f7dff07aa", + "comp.diff.hljs-title-class": "fda84cacdafc8b1157c1fbaad621abd0af2d645f", + "comp.diff.hljs-string": "e992ac0c70cf1c867272bd82fff804c6f2b06d40", + "comp.diff.hljs-title-function": "1d9ffc9e11db82a5d9b99fe181c4e6bcdd3e014d", + "comp.diff.hljs-name": "b2aae58649e3aed5a0d76b9d89ad48e31bc871c0", + "comp.diff.hljs-literal": "bcbc594088038f7fb703cfca2201b1db438e7d0d", + "comp.diff.hljs-attr": "c36b0c9b3d68bde0a73429136aef6e61fec35791", + "comp.input.bg": "baa07e89fb941a827a073f593cc94e73c4c86c73", "comp.link.text": "e387bb4185d01d8a3a7d52b15f3868ba40b31ec9", "comp.link.text-hover": "73352dab8131667fad74ea687f74d6673f7d04dc", "comp.pipeline.arrow.border": "e2beaac31e79580c5cb1d64e29cb8bffec601ad6", @@ -23870,7 +24453,6 @@ "shadow-color.4": "2b2e0307d252bdc6db53a23ce2cc2e9bb4f6b914", "shadow-color.5": "5a6c707240bab54cb4403f47262abfe0756efc9a", "shadow-color.6": "928283d00759150575a8f155da90180a582be438", - "shadow-color.inner": "6cb5a98fba0b13e952859b9f023259b5c06cfd1a", "gradient.ai.gradient-stop-1": "8db516caa68afc5b8fdd6fc6e5a9bad7715c5f26", "gradient.ai.gradient-stop-2": "33930f41665251a281973a37847f357480aedca3", "gradient.ai.gradient-stop-3": "c9e14c3db8e622b10b1cd3e860115cd6f876ae49", @@ -23884,6 +24466,8 @@ "gradient.skeleton.gradient-stop-1": "5427016b990b75f0d1ce60eef8cb9b96d75fbde2", "gradient.skeleton.gradient-stop-2": "01442c311e6da751c30c3518fc32970306767274", "gradient.skeleton.gradient-stop-3": "7fda4c834a3daf0c56bb59777c525670ae2dee3e", + "gradient.skeleton.mask.from": "a488b25a1290fe3c971b7cf2f3ff37dc26d01492", + "gradient.skeleton.mask.to": "d470f119c7ab311dc64d72594c91b38f681cd2c4", "gradient.pipeline.running.gradient-stop-1": "0c187d1ebb015ec66bac356009795316f84807ae", "gradient.pipeline.running.gradient-stop-2": "d1251f86c91bd0f29d8ac8cfa01056bc307156b4", "gradient.pipeline.running.gradient-stop-3": "b09bdab234cdf7c204cb153ec94ea0a9b2bb4976", @@ -23963,9 +24547,7 @@ "flow.onboard.ellipse-t-2.default": "dcf39668c229dd78326b87e66f3187c3575f2376", "flow.onboard.ellipse-t-2.danger": "5c480adf9a3351f8f66fe42722729fca8a4ec0da", "flow.onboard.ellipse-b.default": "d527a05727ae29b8d86af64efc7f7a26b01f22ea", - "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01", - "border.brand": "8db219e896acc4d828aaaf4add646d96540a84ea", - "comp.avatar.shadow": "2eb8cc124f0bea395b5584e42732709a8967bfaa" + "flow.onboard.ellipse-b.danger": "18261f1dee39801e11bab7001f53775aa48f8e01" }, "group": "mode" }, @@ -24144,7 +24726,6 @@ "btn.py.md": "dbadfa238e54880a13fdd4fc66f14dc44afab1b3", "link.gap.sm": "e63b120b0015804d7581ad9bdcde168886bf350c", "link.gap.md": "dd3aa27e1885fd22d4ab02fd4055d911d46d075c", - "btn.chevron.pr.md": "c0f76918843361ce010b1484e44d81b4ae507bc5", "badge.size.sm": "2aaf247c1dcb25b9744e4a10e2c0315c096468fe", "badge.size.md": "2b7170084780c9924660ee2aa997511f778b83ee", "badge.md.gap": "0c5418b2e9318e1ce2963748e72056c7c6736142", @@ -24326,6 +24907,7 @@ "sidebar.header.pb": "dd685714f9bf81e8ee56b25ed42aada8210d29e1", "sidebar.header.gap": "3e73971df988bc4709a9b8fa8980c6daee936b31", "sidebar.footer.pt": "bf7fc9113c8ec0482689d927fdc10c6e1e63254f", + "sidebar.footer.pb": "b323133a58c015571502a3033278dd07edbd776b", "sidebar.footer.gap": "b8b62cd2a9444c08200f639d58aabc01b09eb112", "sidebar.sub-item.px": "a00f03298d388a5a3f882408649cc2a591739981", "sidebar.sub-item.py": "074bac9719bce28e4f9ba9f41715a41b042c7d0a", diff --git a/packages/core-design-system/design-tokens/components/desktop/base/alert.json b/packages/core-design-system/design-tokens/components/desktop/base/alert.json index 2e293bf2ac..1012b9d3a3 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/alert.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/alert.json @@ -18,7 +18,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.3}" }, "min-width": { "$type": "sizing", diff --git a/packages/core-design-system/design-tokens/components/desktop/base/avatar.json b/packages/core-design-system/design-tokens/components/desktop/base/avatar.json index cdf7e86787..27a473f96b 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/avatar.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/avatar.json @@ -17,7 +17,7 @@ "radius": { "default": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.3}" }, "rounded": { "$type": "borderRadius", diff --git a/packages/core-design-system/design-tokens/components/desktop/base/badge.json b/packages/core-design-system/design-tokens/components/desktop/base/badge.json index 1853fbc1c3..29487f9d8e 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/badge.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/badge.json @@ -26,7 +26,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.3}" }, "border": { "$type": "borderWidth", @@ -70,7 +70,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.3}" } }, "badge-indicator": { diff --git a/packages/core-design-system/design-tokens/components/desktop/base/btn.json b/packages/core-design-system/design-tokens/components/desktop/base/btn.json index 470528ba7d..8930fdb7f9 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/btn.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/btn.json @@ -41,13 +41,13 @@ }, "md": { "$type": "spacing", - "$value": "{spacing.2}" + "$value": "{spacing.1-half}" } }, "default": { "radius": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.3}" } }, "rounded": { diff --git a/packages/core-design-system/design-tokens/components/desktop/base/calendar.json b/packages/core-design-system/design-tokens/components/desktop/base/calendar.json index 87eece7311..8e2ad09c30 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/calendar.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/calendar.json @@ -8,7 +8,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.3}" }, "padding": { "$type": "spacing", diff --git a/packages/core-design-system/design-tokens/components/desktop/base/card.json b/packages/core-design-system/design-tokens/components/desktop/base/card.json index 86b94b85a7..fbfe8609f7 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/card.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/card.json @@ -11,7 +11,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.4}" + "$value": "{rounded.5}" } }, "md": { @@ -25,7 +25,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.3}" + "$value": "{rounded.4}" } }, "sm": { @@ -39,7 +39,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.3}" + "$value": "{rounded.4}" } }, "border": { diff --git a/packages/core-design-system/design-tokens/components/desktop/base/dialog.json b/packages/core-design-system/design-tokens/components/desktop/base/dialog.json index bbe1a30c1e..5d5271d3a0 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/dialog.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/dialog.json @@ -22,7 +22,7 @@ }, "py": { "$type": "spacing", - "$value": "{spacing.4}" + "$value": "{spacing.3-half}" }, "border": { "$type": "borderWidth", @@ -30,7 +30,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.4}" + "$value": "{rounded.5}" }, "safezone": { "$type": "spacing", diff --git a/packages/core-design-system/design-tokens/components/desktop/base/dropdown.json b/packages/core-design-system/design-tokens/components/desktop/base/dropdown.json index 07a166494a..fb96561916 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/dropdown.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/dropdown.json @@ -15,7 +15,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.1}" + "$value": "{rounded.2}" } }, "container": { @@ -25,7 +25,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.4}" }, "min-width": { "$type": "sizing", diff --git a/packages/core-design-system/design-tokens/components/desktop/base/input.json b/packages/core-design-system/design-tokens/components/desktop/base/input.json index a5fe6c24f0..d58807c05e 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/input.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/input.json @@ -14,7 +14,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.2}", + "$value": "{rounded.3}", "$description": "6px" }, "md": { diff --git a/packages/core-design-system/design-tokens/components/desktop/base/popover.json b/packages/core-design-system/design-tokens/components/desktop/base/popover.json index 4944f8dcf7..cfefcb1a54 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/popover.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/popover.json @@ -2,7 +2,7 @@ "popover": { "radius": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.3}" }, "py": { "$type": "spacing", diff --git a/packages/core-design-system/design-tokens/components/desktop/base/sidebar.json b/packages/core-design-system/design-tokens/components/desktop/base/sidebar.json index 294f1f2e70..51aecd457f 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/sidebar.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/sidebar.json @@ -15,17 +15,17 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.4}" }, "min": { "$type": "sizing", - "$value": "{size.8}" + "$value": "{size.9}" } }, "group": { "py": { "$type": "spacing", - "$value": "{spacing.2-half}" + "$value": "{spacing.1-half}" }, "gap": { "$type": "spacing", @@ -35,15 +35,15 @@ "container": { "py": { "$type": "spacing", - "$value": "{spacing.2-half}" + "$value": "{spacing.1-half}" }, "px": { "$type": "spacing", - "$value": "{spacing.2-half}" + "$value": "{spacing.3}" }, "full-width": { "$type": "sizing", - "$value": "{size.56}" + "$value": "{size.58}" } }, "header": { @@ -65,6 +65,10 @@ "$type": "spacing", "$value": "{spacing.1}" }, + "pb": { + "$type": "spacing", + "$value": "{spacing.1-half}" + }, "gap": { "$type": "spacing", "$value": "{spacing.2-half}" diff --git a/packages/core-design-system/design-tokens/components/desktop/base/tabs.json b/packages/core-design-system/design-tokens/components/desktop/base/tabs.json index 4bb92ee097..13b4f48d95 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/tabs.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/tabs.json @@ -27,7 +27,7 @@ }, "radius": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.3}" } }, "item-overlined": { @@ -53,7 +53,7 @@ }, "rt": { "$type": "borderRadius", - "$value": "{rounded.3}" + "$value": "{rounded.4}" }, "rb": { "$type": "borderRadius", @@ -94,7 +94,7 @@ }, "container-radius": { "$type": "borderRadius", - "$value": "{rounded.3}" + "$value": "{rounded.4}" } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/components/desktop/base/tag.json b/packages/core-design-system/design-tokens/components/desktop/base/tag.json index bfda0e14af..ae1146904f 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/tag.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/tag.json @@ -25,7 +25,7 @@ "radius": { "default": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.3}" }, "full": { "$type": "borderRadius", diff --git a/packages/core-design-system/design-tokens/components/desktop/base/toast.json b/packages/core-design-system/design-tokens/components/desktop/base/toast.json index 9abe9ad65a..92e6e8fc05 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/toast.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/toast.json @@ -2,7 +2,7 @@ "toast": { "radius": { "$type": "borderRadius", - "$value": "{rounded.3}" + "$value": "{rounded.4}" }, "gap": { "$type": "spacing", diff --git a/packages/core-design-system/design-tokens/components/desktop/base/tooltip.json b/packages/core-design-system/design-tokens/components/desktop/base/tooltip.json index 5f13a522dd..8c86ce4e09 100644 --- a/packages/core-design-system/design-tokens/components/desktop/base/tooltip.json +++ b/packages/core-design-system/design-tokens/components/desktop/base/tooltip.json @@ -2,7 +2,7 @@ "tooltip": { "radius": { "$type": "borderRadius", - "$value": "{rounded.2}" + "$value": "{rounded.3}" }, "py": { "$type": "spacing", diff --git a/packages/core-design-system/design-tokens/core/colors_hex.json b/packages/core-design-system/design-tokens/core/colors_hex.json index e80e24d3d1..fd5182cb60 100644 --- a/packages/core-design-system/design-tokens/core/colors_hex.json +++ b/packages/core-design-system/design-tokens/core/colors_hex.json @@ -10,13 +10,13 @@ }, "chrome": { "25": { - "$value": "#f9f9f9" + "$value": "#fbfbfb" }, "50": { - "$value": "#efeff1" + "$value": "#f6f6f7" }, "100": { - "$value": "#e7e7e9" + "$value": "#e9e9eb" }, "150": { "$value": "#dadadc" @@ -31,28 +31,28 @@ "$value": "#94949c" }, "500": { - "$value": "#87878f" + "$value": "#8a8a91" }, "600": { - "$value": "#74747d" + "$value": "#71717a" }, "700": { "$value": "#63636b" }, "800": { - "$value": "#47474d" + "$value": "#46464c" }, "850": { - "$value": "#313135" + "$value": "#333339" }, "900": { - "$value": "#232327" + "$value": "#27272c" }, "950": { - "$value": "#18181b" + "$value": "#222226" }, "1000": { - "$value": "#141416" + "$value": "#18181b" }, "$type": "color" }, @@ -73,7 +73,7 @@ "$value": "#cacbde" }, "300": { - "$value": "#b3b5cd" + "$value": "#b7b9d0" }, "400": { "$value": "#9193ab" @@ -106,118 +106,118 @@ }, "blue": { "25": { - "$value": "#f6fbfe" + "$value": "#f9faff" }, "50": { - "$value": "#dcebfe" + "$value": "#e9edff" }, "100": { - "$value": "#b4d4f9" + "$value": "#c5cffa" }, "150": { - "$value": "#9dc8fb" + "$value": "#b3c2fc" }, "200": { - "$value": "#7cb6f8" + "$value": "#99aff8" }, "300": { - "$value": "#54a1ff" + "$value": "#7a9afe" }, "400": { - "$value": "#2c93fa" + "$value": "#5d8cfe" }, "500": { - "$value": "#0085eb" + "$value": "#4d81f4" }, "600": { - "$value": "#1276d4" + "$value": "#2b71e6" }, "700": { - "$value": "#0e65b5" + "$value": "#1664d2" }, "800": { - "$value": "#06559a" + "$value": "#1952ac" }, "850": { - "$value": "#134276" + "$value": "#2a3f75" }, "900": { - "$value": "#203556" + "$value": "#272f4f" }, "950": { - "$value": "#162740" + "$value": "#1d233a" }, "1000": { - "$value": "#111a29" + "$value": "#151929" }, "$type": "color" }, "cyan": { "25": { - "$value": "#f2fcfd" + "$value": "#f3fcff" }, "50": { - "$value": "#d0eff7" + "$value": "#daecff" }, "100": { - "$value": "#aaddf3" + "$value": "#b7d9fa" }, "150": { - "$value": "#7ed4f5" + "$value": "#90d0ff" }, "200": { - "$value": "#42c5f2" + "$value": "#6abfff" }, "300": { - "$value": "#1caad6" + "$value": "#32a6ee" }, "400": { - "$value": "#049bcd" + "$value": "#2d98da" }, "500": { - "$value": "#068eb9" + "$value": "#238bc9" }, "600": { - "$value": "#017ba4" + "$value": "#0e79b2" }, "700": { - "$value": "#01698e" + "$value": "#01679a" }, "800": { - "$value": "#00597a" + "$value": "#18577f" }, "850": { - "$value": "#17465e" + "$value": "#1a4563" }, "900": { "$value": "#153851" }, "950": { - "$value": "#152839" + "$value": "#142839" }, "1000": { - "$value": "#0c1a30" + "$value": "#0d1a25" }, "$type": "color" }, "red": { "25": { - "$value": "#fffafa" + "$value": "#fff5f5" }, "50": { "$value": "#fee3e3" }, "100": { - "$value": "#fecaca" + "$value": "#ffd5d5" }, "150": { - "$value": "#fbb4b4" + "$value": "#ffc1c1" }, "200": { - "$value": "#ff9393" + "$value": "#ff9696" }, "300": { - "$value": "#ff7e7c" + "$value": "#ff817e" }, "400": { "$value": "#f95a5a" @@ -226,13 +226,13 @@ "$value": "#e44646" }, "600": { - "$value": "#d02f2f" + "$value": "#ca3934" }, "700": { - "$value": "#b42727" + "$value": "#be292a" }, "800": { - "$value": "#9a2020" + "$value": "#9d2624" }, "850": { "$value": "#6f2a2a" @@ -301,7 +301,7 @@ "$value": "#fdfbee" }, "50": { - "$value": "#f9ecb1" + "$value": "#fff2b6" }, "100": { "$value": "#f4d55e" @@ -319,16 +319,16 @@ "$value": "#d57919" }, "500": { - "$value": "#bd6a1d" + "$value": "#bf6914" }, "600": { - "$value": "#a25918" + "$value": "#aa5814" }, "700": { - "$value": "#8d511c" + "$value": "#964b0a" }, "800": { - "$value": "#73461f" + "$value": "#7b4218" }, "850": { "$value": "#5f391f" @@ -448,10 +448,10 @@ "$value": "#d0f2d5" }, "100": { - "$value": "#a9e4b5" + "$value": "#bbebc4" }, "150": { - "$value": "#55e284" + "$value": "#60ec8d" }, "200": { "$value": "#42cf6d" @@ -466,7 +466,7 @@ "$value": "#0f944b" }, "600": { - "$value": "#0B7C42" + "$value": "#0b7c42" }, "700": { "$value": "#196e40" @@ -493,19 +493,19 @@ "$value": "#f2fdfa" }, "50": { - "$value": "#cef1e7" + "$value": "#d7f4ec" }, "100": { - "$value": "#a1e3d3" + "$value": "#c7eae1" }, "150": { "$value": "#61ddc2" }, "200": { - "$value": "#36c9ab" + "$value": "#40d0b2" }, "300": { - "$value": "#00b397" + "$value": "#14b89c" }, "400": { "$value": "#02a48b" @@ -514,7 +514,7 @@ "$value": "#00937d" }, "600": { - "$value": "#00806a" + "$value": "#027d68" }, "700": { "$value": "#016e5c" @@ -538,46 +538,46 @@ }, "lime": { "25": { - "$value": "#f7fcf2" + "$value": "#f0fde9" }, "50": { - "$value": "#e2eec7" + "$value": "#d9f1cc" }, "100": { - "$value": "#bce0a3" + "$value": "#c3ebaf" }, "150": { - "$value": "#8edd5a" + "$value": "#addf96" }, "200": { - "$value": "#7cc933" + "$value": "#82d560" }, "300": { - "$value": "#6bb125" + "$value": "#5fba3d" }, "400": { - "$value": "#64a128" + "$value": "#52a334" }, "500": { - "$value": "#5f8f2c" + "$value": "#4f9136" }, "600": { - "$value": "#547b2d" + "$value": "#438428" }, "700": { - "$value": "#49692b" + "$value": "#3d7328" }, "800": { - "$value": "#41572a" + "$value": "#3b582e" }, "850": { - "$value": "#33481f" + "$value": "#2e4922" }, "900": { - "$value": "#2b391d" + "$value": "#273a1f" }, "950": { - "$value": "#1e2817" + "$value": "#1d2818" }, "1000": { "$value": "#131b0e" diff --git a/packages/core-design-system/design-tokens/core/colors_lch.json b/packages/core-design-system/design-tokens/core/colors_lch.json index 854a5d60ba..b2df17d7b0 100644 --- a/packages/core-design-system/design-tokens/core/colors_lch.json +++ b/packages/core-design-system/design-tokens/core/colors_lch.json @@ -11,13 +11,13 @@ }, "chrome": { "25": { - "$value": "lch(97.93% 0 134.54)" + "$value": "lch(98.5% 0.1 249.94)" }, "50": { - "$value": "lch(94.5% 1 285.31)" + "$value": "lch(97% 0.5 265)" }, "100": { - "$value": "lch(91.69% 1.01 285.32)" + "$value": "lch(92.5% 1.01 285.32)" }, "150": { "$value": "lch(87.09% 1.02 285.32)" @@ -32,28 +32,28 @@ "$value": "lch(61.5% 4.34 285.64)" }, "500": { - "$value": "lch(56.51% 4.47 285.69)" + "$value": "lch(57.5% 4 285.69)" }, "600": { - "$value": "lch(49% 5.19 285.84)" + "$value": "lch(48% 5.19 285.84)" }, "700": { "$value": "lch(42% 4.8 285.89)" }, "800": { - "$value": "lch(30.32% 3.75 285.83)" + "$value": "lch(30% 3.75 285.83)" }, "850": { - "$value": "lch(20.5% 2.62 285.74)" + "$value": "lch(21.5% 3.75 285.83)" }, "900": { - "$value": "lch(14% 2.73 285.86)" + "$value": "lch(16% 3 285.74)" }, "950": { - "$value": "lch(8.35% 2.2 285.9)" + "$value": "lch(13.5% 2.73 285.86)" }, "1000": { - "$value": "lch(6.38% 1.34 285.25)" + "$value": "lch(8.35% 2.2 285.9)" }, "$type": "color" }, @@ -62,7 +62,7 @@ "$value": "lch(98.4% 0.4 284)" }, "50": { - "$value": "lch(92.5% 2.2 284)" + "$value": "lch(92.5% 2.5 285.5)" }, "100": { "$value": "lch(89% 4.8 284)" @@ -74,7 +74,7 @@ "$value": "lch(82% 10.12 284)" }, "300": { - "$value": "lch(74% 13.1 283)" + "$value": "lch(75.5% 12.5 283)" }, "400": { "$value": "lch(61.5% 13 283)" @@ -107,22 +107,22 @@ }, "red": { "25": { - "$value": "lch(98.66% 1.83 19.82)" + "$value": "lch(97.5% 4.4 19.82)" }, "50": { "$value": "lch(92.5% 10.21 20.43)" }, "100": { - "$value": "lch(85.99% 20.39 21.3)" + "$value": "lch(89% 16 21.3)" }, "150": { - "$value": "lch(80.15% 28.7 22.17)" + "$value": "lch(84% 25 22.17)" }, "200": { - "$value": "lch(74% 48.92 24.8)" + "$value": "lch(75% 48.92 24.8)" }, "300": { - "$value": "lch(68.4% 56 27.32)" + "$value": "lch(69.5% 56 27.32)" }, "400": { "$value": "lch(60.8% 70.74 29.41)" @@ -131,13 +131,13 @@ "$value": "lch(54.05% 71.9 31.04)" }, "600": { - "$value": "lch(47.29% 74.8 33.74)" + "$value": "lch(47.29% 69 33.74)" }, "700": { - "$value": "lch(40.79% 67.3 33.8)" + "$value": "lch(43% 70 33.8)" }, "800": { - "$value": "lch(34.63% 59.93 33.77)" + "$value": "lch(36% 59 33.77)" }, "850": { "$value": "lch(27.67% 35.3 27.82)" @@ -254,7 +254,7 @@ "$value": "lch(98.51% 6.57 98.39)" }, "50": { - "$value": "lch(93.5% 30.5 93.5)" + "$value": "lch(95.4% 30.5 93.5)" }, "100": { "$value": "lch(86.14% 60.99 88.5)" @@ -272,16 +272,16 @@ "$value": "lch(60.31% 70.07 62.5)" }, "500": { - "$value": "lch(53.72% 61.73 61)" + "$value": "lch(53.72% 65.5 61)" }, "600": { - "$value": "lch(46% 55 60)" + "$value": "lch(47% 59.5 58.5)" }, "700": { - "$value": "lch(40.93% 46.26 60.5)" + "$value": "lch(40.93% 56 58.5)" }, "800": { - "$value": "lch(34.64% 35.72 61.5)" + "$value": "lch(34.64% 42 57)" }, "850": { "$value": "lch(28.18% 27.83 56)" @@ -299,49 +299,49 @@ }, "lime": { "25": { - "$value": "lch(98.38% 5.17 125.66)" + "$value": "lch(98% 10.5 131)" }, "50": { - "$value": "lch(92.5% 19.66 117.34)" + "$value": "lch(92.5% 19.66 131)" }, "100": { - "$value": "lch(85.43% 32.93 128.12)" + "$value": "lch(89% 32.5 131)" }, "150": { - "$value": "lch(81% 68.86 127.38)" + "$value": "lch(84% 40.5 131)" }, "200": { - "$value": "lch(73.91% 74.97 124.29)" + "$value": "lch(78% 64 131)" }, "300": { - "$value": "lch(65.67% 70.28 123.94)" + "$value": "lch(68% 69 131)" }, "400": { - "$value": "lch(60.35% 63.02 123.93)" + "$value": "lch(60.35% 63.02 131)" }, "500": { - "$value": "lch(54.44% 53.6 123.09)" + "$value": "lch(54.44% 53.6 131)" }, "600": { - "$value": "lch(47.41% 44.32 123.68)" + "$value": "lch(49.5% 54 130.5)" }, "700": { - "$value": "lch(40.83% 36.77 124.36)" + "$value": "lch(43.5% 45.5 131)" }, "800": { - "$value": "lch(34.29% 27.73 123.53)" + "$value": "lch(34.29% 27.73 131)" }, "850": { - "$value": "lch(28.02% 26.12 124.33)" + "$value": "lch(28.02% 26.12 131)" }, "900": { - "$value": "lch(22.11% 18.67 124.14)" + "$value": "lch(22.11% 18.67 131)" }, "950": { - "$value": "lch(14.75% 12.31 127.78)" + "$value": "lch(14.75% 12.31 131)" }, "1000": { - "$value": "lch(8.63% 9.15 132.21)" + "$value": "lch(8.63% 9.15 131)" }, "$type": "color" }, @@ -353,10 +353,10 @@ "$value": "lch(92.5% 18.45 146.75)" }, "100": { - "$value": "lch(85.63% 31.28 147.73)" + "$value": "lch(89% 26 147.73)" }, "150": { - "$value": "lch(80.71% 64.76 148.08)" + "$value": "lch(84% 64.76 148.08)" }, "200": { "$value": "lch(74% 66 146.02)" @@ -398,19 +398,19 @@ "$value": "lch(98.42% 4.14 178.34)" }, "50": { - "$value": "lch(92.5% 13.19 176.43)" + "$value": "lch(94% 11 176.43)" }, "100": { - "$value": "lch(85.48% 24.15 178.07)" + "$value": "lch(90% 13 178)" }, "150": { "$value": "lch(80.61% 41.17 176.79)" }, "200": { - "$value": "lch(73% 45.21 175.62)" + "$value": "lch(75.5% 45.21 175.62)" }, "300": { - "$value": "lch(65.11% 45.18 176.28)" + "$value": "lch(67% 45.18 176.28)" }, "400": { "$value": "lch(60.06% 42.07 176.82)" @@ -419,7 +419,7 @@ "$value": "lch(54.2% 38.75 177.33)" }, "600": { - "$value": "lch(47.43% 35.71 175.08)" + "$value": "lch(46.5% 35 175.08)" }, "700": { "$value": "lch(40.95% 31.64 176.23)" @@ -443,97 +443,97 @@ }, "cyan": { "25": { - "$value": "lch(98.23% 3.67 207.25)" + "$value": "lch(98.23% 3.67 227.2)" }, "50": { - "$value": "lch(92.5% 11.87 218.88)" + "$value": "lch(92.5% 11.87 252.5)" }, "100": { - "$value": "lch(85.1% 21.1 231.13)" + "$value": "lch(85.1% 21.1 253)" }, "150": { - "$value": "lch(80.39% 32.22 230.4)" + "$value": "lch(80.39% 32.22 248.6)" }, "200": { - "$value": "lch(74% 42 232)" + "$value": "lch(74% 42 252.2)" }, "300": { - "$value": "lch(64.28% 41.18 233.22)" + "$value": "lch(64.28% 48 253)" }, "400": { - "$value": "lch(59.18% 41.74 239.34)" + "$value": "lch(59.18% 45 253)" }, "500": { - "$value": "lch(54.42% 38.19 237.03)" + "$value": "lch(54.42% 43 253)" }, "600": { - "$value": "lch(47.57% 35.48 239.65)" + "$value": "lch(47.57% 40.5 253)" }, "700": { - "$value": "lch(40.85% 32.12 241.01)" + "$value": "lch(40.85% 37 253)" }, "800": { - "$value": "lch(34.68% 28.97 241.99)" + "$value": "lch(34.68% 30 253)" }, "850": { - "$value": "lch(27.46% 21.44 243.5)" + "$value": "lch(27.46% 23.5 253)" }, "900": { - "$value": "lch(21.95% 20.15 253.18)" + "$value": "lch(21.95% 20.15 253)" }, "950": { - "$value": "lch(15.15% 13.97 256.02)" + "$value": "lch(15.15% 13.97 253)" }, "1000": { - "$value": "lch(9% 16.8 272)" + "$value": "lch(8.65% 9.95 253)" }, "$type": "color" }, "blue": { "25": { - "$value": "lch(98.3% 2.43 237.48)" + "$value": "lch(98.3% 2.43 280)" }, "50": { - "$value": "lch(92.5% 11.26 257.83)" + "$value": "lch(93.9% 10 278)" }, "100": { - "$value": "lch(83.49% 22.44 257.6)" + "$value": "lch(83.49% 22.44 278)" }, "150": { - "$value": "lch(78.9% 30.56 259.89)" + "$value": "lch(78.9% 30.56 278)" }, "200": { - "$value": "lch(72.03% 39.64 261.54)" + "$value": "lch(72.03% 39.64 278)" }, "300": { - "$value": "lch(64.63% 54.74 268.18)" + "$value": "lch(64.63% 54.74 280)" }, "400": { - "$value": "lch(59.19% 60.71 269)" + "$value": "lch(59.19% 64 280)" }, "500": { - "$value": "lch(53.78% 61 269.4)" + "$value": "lch(55% 65 280)" }, "600": { - "$value": "lch(48.5% 56.5 270.6)" + "$value": "lch(48.5% 68 280)" }, "700": { - "$value": "lch(41.5% 50 270.3)" + "$value": "lch(43% 65.5 280)" }, "800": { - "$value": "lch(35% 44.5 270)" + "$value": "lch(35.5% 55.5 280)" }, "850": { - "$value": "lch(27.23% 34.85 270)" + "$value": "lch(27.23% 34.85 280)" }, "900": { - "$value": "lch(21.78% 22.8 270)" + "$value": "lch(20% 21 280)" }, "950": { - "$value": "lch(15.04% 18.61 270)" + "$value": "lch(14% 16 280)" }, "1000": { - "$value": "lch(8.79% 12.01 270)" + "$value": "lch(8.79% 12.01 280)" }, "$type": "color" }, diff --git a/packages/core-design-system/design-tokens/core/dimensions.json b/packages/core-design-system/design-tokens/core/dimensions.json index 31eb0e0f49..7778787f89 100644 --- a/packages/core-design-system/design-tokens/core/dimensions.json +++ b/packages/core-design-system/design-tokens/core/dimensions.json @@ -315,6 +315,10 @@ "$type": "sizing", "$value": "224px" }, + "58": { + "$type": "sizing", + "$value": "230px" + }, "60": { "$type": "sizing", "$value": "240px" @@ -339,6 +343,10 @@ "$type": "sizing", "$value": "384px" }, + "5-half": { + "$type": "sizing", + "$value": "22px" + }, "6-half": { "$type": "sizing", "$value": "26px" @@ -419,15 +427,15 @@ }, "md": { "$type": "sizing", - "$value": "{size.5}" + "$value": "{size.4-half}" }, "lg": { "$type": "sizing", - "$value": "{size.8}" + "$value": "{size.5-half}" }, "xl": { "$type": "sizing", - "$value": "{size.10}" + "$value": "{size.8}" } }, "opacity": { @@ -477,10 +485,14 @@ } }, "logoSize": { - "sm": { + "xs": { "$type": "sizing", "$value": "{size.5}" }, + "sm": { + "$type": "sizing", + "$value": "{size.6}" + }, "md": { "$type": "sizing", "$value": "{size.8}" diff --git a/packages/core-design-system/design-tokens/core/typography.json b/packages/core-design-system/design-tokens/core/typography.json index 09a0ce9284..6c35e8b6ca 100644 --- a/packages/core-design-system/design-tokens/core/typography.json +++ b/packages/core-design-system/design-tokens/core/typography.json @@ -44,7 +44,7 @@ }, "300": { "$type": "fontWeights", - "$value": "Light" + "$value": "350" }, "400": { "$type": "fontWeights", @@ -176,11 +176,18 @@ "fontFamily": { "default": { "$type": "fontFamilies", - "$value": "Inter" + "$value": [ + "Inter", + "system-ui", + "sans-serif" + ] }, "mono": { "$type": "fontFamilies", - "$value": "JetBrains Mono" + "$value": [ + "JetBrains Mono", + "monospace" + ] } }, "textDecoration": { diff --git a/packages/core-design-system/design-tokens/mode/dark/default-deuteranopia.json b/packages/core-design-system/design-tokens/mode/dark/default-deuteranopia.json index 803720782f..134886b356 100644 --- a/packages/core-design-system/design-tokens/mode/dark/default-deuteranopia.json +++ b/packages/core-design-system/design-tokens/mode/dark/default-deuteranopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.50}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.1000}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.150}", @@ -268,13 +258,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.800}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -355,61 +357,71 @@ "solid": { "text": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{cyan.300}", + "$value": "{mint.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{mint.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{mint.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{cyan.200}", + "$value": "{mint.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{cyan.200}", + "$value": "{mint.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Selected state background color for active green items." } } @@ -418,12 +430,22 @@ "solid": { "text": { "$type": "color", - "$value": "{orange.950}", + "$value": "{red.1000}", "$description": "Text color for high-contrast red surfaces." }, "bg": { "$type": "color", - "$value": "{orange.300}", + "$value": "{red.300}", + "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", "$description": "Background color for prominent red surfaces." } }, @@ -1095,6 +1117,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1140,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1820,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1934,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2087,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2230,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.850}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2693,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2813,5 +2806,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/dark/default-protanopia.json b/packages/core-design-system/design-tokens/mode/dark/default-protanopia.json index 6797a63e87..3a29f31802 100644 --- a/packages/core-design-system/design-tokens/mode/dark/default-protanopia.json +++ b/packages/core-design-system/design-tokens/mode/dark/default-protanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.50}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.1000}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.150}", @@ -268,13 +258,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.800}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -355,61 +357,71 @@ "solid": { "text": { "$type": "color", - "$value": "{blue.950}", + "$value": "{mint.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{blue.300}", + "$value": "{mint.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{mint.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{mint.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{blue.200}", + "$value": "{mint.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{blue.900}", + "$value": "{mint.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{blue.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{blue.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{blue.200}", + "$value": "{mint.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{blue.950}", + "$value": "{mint.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{blue.800}", + "$value": "{mint.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{blue.900}", + "$value": "{mint.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{blue.800}", + "$value": "{mint.900}", "$description": "Selected state background color for active green items." } } @@ -418,13 +430,23 @@ "solid": { "text": { "$type": "color", - "$value": "{red.950}", + "$value": "{red.1000}", "$description": "Text color for high-contrast red surfaces." }, "bg": { "$type": "color", "$value": "{red.300}", "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." } }, "soft": { @@ -1095,6 +1117,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1140,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1820,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1934,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2087,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2230,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.850}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2693,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2813,5 +2806,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/dark/default-tritanopia.json b/packages/core-design-system/design-tokens/mode/dark/default-tritanopia.json index 414027cd45..62929c1ba3 100644 --- a/packages/core-design-system/design-tokens/mode/dark/default-tritanopia.json +++ b/packages/core-design-system/design-tokens/mode/dark/default-tritanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.50}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.1000}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.150}", @@ -268,13 +258,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.800}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -355,61 +357,71 @@ "solid": { "text": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{cyan.300}", + "$value": "{mint.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{mint.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{mint.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{cyan.200}", + "$value": "{mint.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{cyan.200}", + "$value": "{mint.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Selected state background color for active green items." } } @@ -418,13 +430,23 @@ "solid": { "text": { "$type": "color", - "$value": "{red.950}", + "$value": "{red.1000}", "$description": "Text color for high-contrast red surfaces." }, "bg": { "$type": "color", "$value": "{red.300}", "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." } }, "soft": { @@ -1095,6 +1117,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1140,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1820,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1934,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2087,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2230,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.850}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2693,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2813,5 +2806,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/dark/default.json b/packages/core-design-system/design-tokens/mode/dark/default.json index f837d63453..511c3c7bf6 100644 --- a/packages/core-design-system/design-tokens/mode/dark/default.json +++ b/packages/core-design-system/design-tokens/mode/dark/default.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{cyan.200}" } }, "border": { @@ -165,28 +169,14 @@ "$value": "{blue.600}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", - "$value": "{blue.700}", + "$value": "{blue.500}", "$description": "Hover state background color for interactive brand surfaces." }, "bg-selected": { "$type": "color", - "$value": "{blue.800}", + "$value": "{blue.500}", "$description": "Selected state background color for active brand items." } }, @@ -259,13 +249,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.900}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.900}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -346,61 +348,71 @@ "solid": { "text": { "$type": "color", - "$value": "{green.1000}", + "$value": "{lime.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{green.200}", + "$value": "{lime.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{lime.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{lime.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{green.150}", + "$value": "{lime.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{green.950}", + "$value": "{lime.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{green.900}", + "$value": "{lime.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{green.900}", + "$value": "{lime.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{green.150}", + "$value": "{lime.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{green.1000}", + "$value": "{lime.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{green.900}", + "$value": "{lime.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{green.950}", + "$value": "{lime.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{green.900}", + "$value": "{lime.900}", "$description": "Selected state background color for active green items." } } @@ -416,6 +428,16 @@ "$type": "color", "$value": "{red.300}", "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." } }, "soft": { @@ -1086,6 +1108,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1105,12 +1131,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1360,12 +1380,12 @@ "link": { "text": { "$type": "color", - "$value": "{blue.300}", + "$value": "{cyan.200}", "$description": "Default color for text links. Creates distinct visual identification of interactive text elements." }, "text-hover": { "$type": "color", - "$value": "{blue.200}", + "$value": "{cyan.150}", "$description": "Hover color for text links. " } }, @@ -1782,18 +1802,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1807,6 +1815,19 @@ "type": "innerShadow" } } + }, + "ai": { + "inner": { + "$type": "boxShadow", + "$value": { + "x": "0", + "y": "7", + "blur": "16", + "spread": "0", + "color": "{set.ai.surface.inner}", + "type": "innerShadow" + } + } } } }, @@ -1908,45 +1929,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2097,6 +2082,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2218,16 +2216,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.900}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2691,6 +2679,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2786,5 +2792,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{mint.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/dark/dimmer-deuteranopia.json b/packages/core-design-system/design-tokens/mode/dark/dimmer-deuteranopia.json index e732ce2d52..ff0d5b182c 100644 --- a/packages/core-design-system/design-tokens/mode/dark/dimmer-deuteranopia.json +++ b/packages/core-design-system/design-tokens/mode/dark/dimmer-deuteranopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -165,20 +169,6 @@ "$value": "{chrome.50}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.1000}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.150}", @@ -259,13 +249,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.800}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -346,61 +348,71 @@ "solid": { "text": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{cyan.300}", + "$value": "{mint.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{mint.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{mint.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{cyan.200}", + "$value": "{mint.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{cyan.200}", + "$value": "{mint.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Selected state background color for active green items." } } @@ -409,12 +421,22 @@ "solid": { "text": { "$type": "color", - "$value": "{orange.950}", + "$value": "{red.1000}", "$description": "Text color for high-contrast red surfaces." }, "bg": { "$type": "color", - "$value": "{orange.300}", + "$value": "{red.300}", + "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", "$description": "Background color for prominent red surfaces." } }, @@ -1086,6 +1108,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1105,12 +1131,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1791,18 +1811,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1917,45 +1925,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2106,6 +2078,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2236,16 +2221,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.850}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2709,6 +2684,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2804,5 +2797,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/dark/dimmer-protanopia.json b/packages/core-design-system/design-tokens/mode/dark/dimmer-protanopia.json index 35eab46470..19b1aa6842 100644 --- a/packages/core-design-system/design-tokens/mode/dark/dimmer-protanopia.json +++ b/packages/core-design-system/design-tokens/mode/dark/dimmer-protanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -165,20 +169,6 @@ "$value": "{chrome.50}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.1000}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.150}", @@ -259,13 +249,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.800}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -346,61 +348,71 @@ "solid": { "text": { "$type": "color", - "$value": "{blue.950}", + "$value": "{mint.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{blue.300}", + "$value": "{mint.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{mint.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{mint.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{blue.200}", + "$value": "{mint.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{blue.900}", + "$value": "{mint.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{blue.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{blue.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{blue.200}", + "$value": "{mint.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{blue.950}", + "$value": "{mint.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{blue.800}", + "$value": "{mint.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{blue.900}", + "$value": "{mint.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{blue.800}", + "$value": "{mint.900}", "$description": "Selected state background color for active green items." } } @@ -409,13 +421,23 @@ "solid": { "text": { "$type": "color", - "$value": "{red.950}", + "$value": "{red.1000}", "$description": "Text color for high-contrast red surfaces." }, "bg": { "$type": "color", "$value": "{red.300}", "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." } }, "soft": { @@ -1086,6 +1108,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1105,12 +1131,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1791,18 +1811,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1917,45 +1925,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2106,6 +2078,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2236,16 +2221,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.850}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2709,6 +2684,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2804,5 +2797,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/dark/dimmer-tritanopia.json b/packages/core-design-system/design-tokens/mode/dark/dimmer-tritanopia.json index 1d79ea42e2..545397661f 100644 --- a/packages/core-design-system/design-tokens/mode/dark/dimmer-tritanopia.json +++ b/packages/core-design-system/design-tokens/mode/dark/dimmer-tritanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -165,20 +169,6 @@ "$value": "{chrome.50}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.1000}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.150}", @@ -259,13 +249,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.800}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -346,61 +348,71 @@ "solid": { "text": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{cyan.300}", + "$value": "{mint.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{mint.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{mint.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{cyan.200}", + "$value": "{mint.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{cyan.200}", + "$value": "{mint.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Selected state background color for active green items." } } @@ -409,13 +421,23 @@ "solid": { "text": { "$type": "color", - "$value": "{red.950}", + "$value": "{red.1000}", "$description": "Text color for high-contrast red surfaces." }, "bg": { "$type": "color", "$value": "{red.300}", "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." } }, "soft": { @@ -1086,6 +1108,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1105,12 +1131,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1791,18 +1811,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1917,45 +1925,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2106,6 +2078,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2236,16 +2221,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.850}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2709,6 +2684,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2804,5 +2797,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/dark/dimmer.json b/packages/core-design-system/design-tokens/mode/dark/dimmer.json index e0b1be69b9..770ffcc132 100644 --- a/packages/core-design-system/design-tokens/mode/dark/dimmer.json +++ b/packages/core-design-system/design-tokens/mode/dark/dimmer.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -165,20 +169,6 @@ "$value": "{chrome.50}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.1000}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.150}", @@ -259,13 +249,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.800}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -346,61 +348,71 @@ "solid": { "text": { "$type": "color", - "$value": "{green.950}", + "$value": "{mint.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{green.300}", + "$value": "{mint.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{mint.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{mint.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{green.200}", + "$value": "{mint.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{green.900}", + "$value": "{mint.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{green.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{green.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{green.200}", + "$value": "{mint.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{green.950}", + "$value": "{mint.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{green.800}", + "$value": "{mint.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{green.900}", + "$value": "{mint.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{green.800}", + "$value": "{mint.900}", "$description": "Selected state background color for active green items." } } @@ -409,13 +421,23 @@ "solid": { "text": { "$type": "color", - "$value": "{red.950}", + "$value": "{red.1000}", "$description": "Text color for high-contrast red surfaces." }, "bg": { "$type": "color", "$value": "{red.300}", "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." } }, "soft": { @@ -1086,6 +1108,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1105,12 +1131,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1791,18 +1811,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1917,45 +1925,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2106,6 +2078,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2236,16 +2221,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.850}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2709,6 +2684,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2804,5 +2797,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/dark/figma-icon-stroke-width.json b/packages/core-design-system/design-tokens/mode/dark/figma-icon-stroke-width.json index b5fbaf9ae3..e794e046bd 100644 --- a/packages/core-design-system/design-tokens/mode/dark/figma-icon-stroke-width.json +++ b/packages/core-design-system/design-tokens/mode/dark/figma-icon-stroke-width.json @@ -18,7 +18,7 @@ }, "lg": { "$type": "borderWidth", - "$value": "2" + "$value": "1.2" }, "xl": { "$type": "borderWidth", diff --git a/packages/core-design-system/design-tokens/mode/dark/high-contrast-deuteranopia.json b/packages/core-design-system/design-tokens/mode/dark/high-contrast-deuteranopia.json index c6ee19bef2..facd0ea01b 100644 --- a/packages/core-design-system/design-tokens/mode/dark/high-contrast-deuteranopia.json +++ b/packages/core-design-system/design-tokens/mode/dark/high-contrast-deuteranopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.50}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.1000}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.150}", @@ -268,13 +258,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.800}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -355,61 +357,71 @@ "solid": { "text": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{cyan.300}", + "$value": "{mint.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{mint.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{mint.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{cyan.200}", + "$value": "{mint.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{cyan.100}", + "$value": "{mint.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{cyan.500}", + "$value": "{mint.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Selected state background color for active green items." } } @@ -418,12 +430,22 @@ "solid": { "text": { "$type": "color", - "$value": "{orange.950}", + "$value": "{red.1000}", "$description": "Text color for high-contrast red surfaces." }, "bg": { "$type": "color", - "$value": "{orange.300}", + "$value": "{red.300}", + "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", "$description": "Background color for prominent red surfaces." } }, @@ -1095,6 +1117,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1140,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1820,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1934,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2087,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2230,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.850}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2693,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2813,5 +2806,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/dark/high-contrast-protanopia.json b/packages/core-design-system/design-tokens/mode/dark/high-contrast-protanopia.json index f34f3fa087..dd149ff777 100644 --- a/packages/core-design-system/design-tokens/mode/dark/high-contrast-protanopia.json +++ b/packages/core-design-system/design-tokens/mode/dark/high-contrast-protanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.50}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.1000}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.150}", @@ -268,13 +258,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.800}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -355,61 +357,71 @@ "solid": { "text": { "$type": "color", - "$value": "{blue.950}", + "$value": "{mint.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{blue.300}", + "$value": "{mint.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{mint.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{mint.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{blue.200}", + "$value": "{mint.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{blue.900}", + "$value": "{mint.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{blue.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{blue.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{blue.100}", + "$value": "{mint.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{blue.950}", + "$value": "{mint.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{blue.500}", + "$value": "{mint.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{blue.900}", + "$value": "{mint.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{blue.800}", + "$value": "{mint.900}", "$description": "Selected state background color for active green items." } } @@ -418,13 +430,23 @@ "solid": { "text": { "$type": "color", - "$value": "{red.950}", + "$value": "{red.1000}", "$description": "Text color for high-contrast red surfaces." }, "bg": { "$type": "color", "$value": "{red.300}", "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." } }, "soft": { @@ -1095,6 +1117,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1140,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1820,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1934,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2087,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2230,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.850}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2693,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2813,5 +2806,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/dark/high-contrast-tritanopia.json b/packages/core-design-system/design-tokens/mode/dark/high-contrast-tritanopia.json index 601866b827..7aa6ddcbff 100644 --- a/packages/core-design-system/design-tokens/mode/dark/high-contrast-tritanopia.json +++ b/packages/core-design-system/design-tokens/mode/dark/high-contrast-tritanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.50}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.1000}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.150}", @@ -268,13 +258,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.800}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -355,61 +357,71 @@ "solid": { "text": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{cyan.300}", + "$value": "{mint.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{mint.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{mint.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{cyan.200}", + "$value": "{mint.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{cyan.100}", + "$value": "{mint.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{cyan.950}", + "$value": "{mint.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{cyan.500}", + "$value": "{mint.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{cyan.900}", + "$value": "{mint.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{cyan.800}", + "$value": "{mint.900}", "$description": "Selected state background color for active green items." } } @@ -418,13 +430,23 @@ "solid": { "text": { "$type": "color", - "$value": "{red.950}", + "$value": "{red.1000}", "$description": "Text color for high-contrast red surfaces." }, "bg": { "$type": "color", "$value": "{red.300}", "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." } }, "soft": { @@ -1095,6 +1117,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1140,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1820,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1934,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2087,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2230,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.850}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2693,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2813,5 +2806,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/dark/high-contrast.json b/packages/core-design-system/design-tokens/mode/dark/high-contrast.json index f034d19905..e296885b64 100644 --- a/packages/core-design-system/design-tokens/mode/dark/high-contrast.json +++ b/packages/core-design-system/design-tokens/mode/dark/high-contrast.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.50}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.1000}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.150}", @@ -268,13 +258,25 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{purple.950}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.800}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0.35", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{blue.600}" } } }, @@ -355,61 +357,71 @@ "solid": { "text": { "$type": "color", - "$value": "{green.950}", + "$value": "{mint.1000}", "$description": "Text color for high-contrast green surfaces." }, "bg": { "$type": "color", - "$value": "{green.300}", + "$value": "{mint.300}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{mint.200}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{mint.200}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{green.200}", + "$value": "{mint.150}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{green.900}", + "$value": "{mint.950}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{green.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{green.800}", + "$value": "{mint.900}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{green.100}", + "$value": "{mint.150}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{green.950}", + "$value": "{mint.1000}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{green.500}", + "$value": "{mint.900}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{green.900}", + "$value": "{mint.950}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{green.800}", + "$value": "{mint.900}", "$description": "Selected state background color for active green items." } } @@ -418,13 +430,23 @@ "solid": { "text": { "$type": "color", - "$value": "{red.950}", + "$value": "{red.1000}", "$description": "Text color for high-contrast red surfaces." }, "bg": { "$type": "color", "$value": "{red.300}", "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.200}", + "$description": "Background color for prominent red surfaces." } }, "soft": { @@ -1095,6 +1117,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1140,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1820,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1934,9 @@ "$type": "color", "$value": "{pure.black}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2087,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2230,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{chrome.850}" - }, - "to": { - "$type": "color", - "$value": "{chrome.950}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2693,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.800}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{purple.850}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{violet.900}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{blue.900}" + } } }, "disabled": { @@ -2813,5 +2806,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.200}" + }, + "testing": { + "$type": "color", + "$value": "{orange.200}" + }, + "security": { + "$type": "color", + "$value": "{blue.400}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.200}" + }, + "platform": { + "$type": "color", + "$value": "{purple.300}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/default-deuteranopia.json b/packages/core-design-system/design-tokens/mode/light/default-deuteranopia.json index 27c572ed8a..3e919510cb 100644 --- a/packages/core-design-system/design-tokens/mode/light/default-deuteranopia.json +++ b/packages/core-design-system/design-tokens/mode/light/default-deuteranopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.950}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.50}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.900}", @@ -268,13 +258,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{purple.50}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.100}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -1095,6 +1088,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1111,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1791,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1905,9 @@ "$type": "color", "$value": "{chrome.900}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2058,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2201,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2664,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{yellow.25}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2813,5 +2777,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.500}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.500}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/default-protanopia.json b/packages/core-design-system/design-tokens/mode/light/default-protanopia.json index 476040c9a0..21878f1a3d 100644 --- a/packages/core-design-system/design-tokens/mode/light/default-protanopia.json +++ b/packages/core-design-system/design-tokens/mode/light/default-protanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.950}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.50}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.900}", @@ -268,13 +258,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{purple.50}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.100}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -1095,6 +1088,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1111,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1791,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1905,9 @@ "$type": "color", "$value": "{chrome.900}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2058,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2201,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2664,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{yellow.25}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2813,5 +2777,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.500}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.500}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/default-tritanopia.json b/packages/core-design-system/design-tokens/mode/light/default-tritanopia.json index cc4ac2f356..27361a37b6 100644 --- a/packages/core-design-system/design-tokens/mode/light/default-tritanopia.json +++ b/packages/core-design-system/design-tokens/mode/light/default-tritanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.950}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.50}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.900}", @@ -268,13 +258,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{purple.50}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.100}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -1095,6 +1088,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1111,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1791,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1905,9 @@ "$type": "color", "$value": "{chrome.900}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2058,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2201,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2664,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{yellow.25}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2813,5 +2777,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.500}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.500}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/default.json b/packages/core-design-system/design-tokens/mode/light/default.json index 16157ba40f..fdc55ddc95 100644 --- a/packages/core-design-system/design-tokens/mode/light/default.json +++ b/packages/core-design-system/design-tokens/mode/light/default.json @@ -24,17 +24,17 @@ "text": { "1": { "$type": "color", - "$value": "{chrome.1000}", + "$value": "{pure.black}", "$description": "Highest contrast color for text and icons in important content. Creates maximum readability and emphasis for key information.\n\nCommon uses: Headings, labels, emphasized text." }, "2": { "$type": "color", - "$value": "{chrome.800}", + "$value": "{tuna.850}", "$description": "Primary color for text and icons in general content. Provides optimal readability for extended reading while reducing visual strain.\n\nCommon uses: Body text, primary content, default icons, form inputs." }, "3": { "$type": "color", - "$value": "{chrome.700}", + "$value": "{tuna.700}", "$description": "Reduced emphasis color for text and icons in secondary information. Creates visual hierarchy through lower contrast.\n\nCommon uses: Supporting text, metadata, secondary information, placeholders." }, "success": { @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.600}" } }, "border": { @@ -102,7 +106,7 @@ } }, "$type": "color", - "$value": "{chrome.300}", + "$value": "{tuna.300}", "$description": "Light overlay for gentle interactive effects. Creates subtle visual feedback during user interaction.\n\nCommon uses: Button hover states, link hover states, soft interactions, menu items." }, "selected": { @@ -110,13 +114,13 @@ "studio.tokens": { "modify": { "type": "alpha", - "value": "0.22", + "value": "0.14", "space": "lch" } } }, "$type": "color", - "$value": "{chrome.300}", + "$value": "{tuna.300}", "$description": "Strong overlay for emphasized selection states. Creates distinct visual indication of active or selected elements.\n\nCommon uses: Selected list items, active tabs, chosen options, current navigation item." }, "disabled": { @@ -165,20 +169,6 @@ "$value": "{blue.600}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{blue.700}", @@ -186,7 +176,7 @@ }, "bg-selected": { "$type": "color", - "$value": "{blue.800}", + "$value": "{blue.700}", "$description": "Selected state background color for active brand items." } }, @@ -244,12 +234,12 @@ "surface": { "text": { "$type": "color", - "$value": "{chrome.1000}", + "$value": "{pure.black}", "$description": "Primary text color for AI-related content with optimal readability." }, "bg": { "$type": "color", - "$value": "{pure.white}", + "$value": "{purple.50}", "$description": "Base background color for AI-related surfaces." }, "border": { @@ -259,13 +249,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.50}", + "$value": "{purple.100}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.50}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -278,51 +271,51 @@ }, "bg": { "$type": "color", - "$value": "{chrome.300}", + "$value": "{tuna.150}", "$description": "Background color for prominent gray surfaces." }, "bg-hover": { "$type": "color", - "$value": "{chrome.400}", + "$value": "{tuna.200}", "$description": "Hover state background color for prominent gray surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.400}", + "$value": "{tuna.200}", "$description": "Selected state background color for prominent gray surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{chrome.850}", + "$value": "{tuna.850}", "$description": "Text color for subtle gray surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{tuna.50}", "$description": "Background color for subdued gray surfaces." }, "bg-hover": { "$type": "color", - "$value": "{chrome.150}", + "$value": "{tuna.100}", "$description": "Hover state background color for interactive soft gray surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.150}", + "$value": "{tuna.100}", "$description": "Selected state background color for active soft gray items." } }, "surface": { "text": { "$type": "color", - "$value": "{chrome.800}", + "$value": "{tuna.850}", "$description": "Standard text color for gray surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{chrome.25}", + "$value": "{tuna.25}", "$description": "Base background color for gray surfaces in default states." }, "border": { @@ -332,12 +325,12 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.50}", + "$value": "{tuna.50}", "$description": "Hover state background color for interactive gray surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{tuna.50}", "$description": "Selected state background color for active gray items." } } @@ -351,56 +344,66 @@ }, "bg": { "$type": "color", - "$value": "{green.600}", + "$value": "{lime.600}", + "$description": "Background color for prominent green surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{lime.700}", + "$description": "Background color for prominent green surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{lime.700}", "$description": "Background color for prominent green surfaces." } }, "soft": { "text": { "$type": "color", - "$value": "{green.600}", + "$value": "{lime.700}", "$description": "Text color for subtle green surfaces with good contrast." }, "bg": { "$type": "color", - "$value": "{green.50}", + "$value": "{lime.50}", "$description": "Background color for subdued green surfaces." }, "bg-hover": { "$type": "color", - "$value": "{green.100}", + "$value": "{lime.100}", "$description": "Background color for subdued green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{green.100}", + "$value": "{lime.100}", "$description": "Background color for subdued green surfaces." } }, "surface": { "text": { "$type": "color", - "$value": "{green.800}", + "$value": "{lime.700}", "$description": "Standard text color for green surfaces with balanced readability." }, "bg": { "$type": "color", - "$value": "{green.25}", + "$value": "{lime.25}", "$description": "Base background color for green surfaces in default states." }, "border": { "$type": "color", - "$value": "{green.100}", + "$value": "{lime.150}", "$description": "Border color for standard green boundaries." }, "bg-hover": { "$type": "color", - "$value": "{green.50}", + "$value": "{lime.50}", "$description": "Hover state background color for interactive green surfaces." }, "bg-selected": { "$type": "color", - "$value": "{green.100}", + "$value": "{lime.50}", "$description": "Selected state background color for active green items." } } @@ -416,6 +419,16 @@ "$type": "color", "$value": "{red.600}", "$description": "Background color for prominent red surfaces." + }, + "bg-hover": { + "$type": "color", + "$value": "{red.700}", + "$description": "Background color for prominent red surfaces." + }, + "bg-selected": { + "$type": "color", + "$value": "{red.700}", + "$description": "Background color for prominent red surfaces." } }, "soft": { @@ -443,7 +456,7 @@ "surface": { "text": { "$type": "color", - "$value": "{red.800}", + "$value": "{red.700}", "$description": "Standard text color for red surfaces with balanced readability." }, "bg": { @@ -453,7 +466,7 @@ }, "border": { "$type": "color", - "$value": "{red.100}", + "$value": "{red.150}", "$description": "Border color for standard red boundaries." }, "bg-hover": { @@ -463,7 +476,7 @@ }, "bg-selected": { "$type": "color", - "$value": "{red.100}", + "$value": "{red.50}", "$description": "Selected state background color for active red items." } } @@ -506,7 +519,7 @@ "surface": { "text": { "$type": "color", - "$value": "{yellow.800}", + "$value": "{yellow.700}", "$description": "Standard text color for yellow surfaces with balanced readability." }, "bg": { @@ -1086,6 +1099,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1105,12 +1122,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1123,13 +1134,13 @@ "studio.tokens": { "modify": { "type": "alpha", - "value": "0.55", + "value": "0.2", "space": "lch" } } }, "$type": "color", - "$value": "{chrome.900}", + "$value": "{tuna.800}", "$description": "Overlay color behind dialog components. Creates focus on the dialog by dimming content underneath." }, "backdrop-nested": { @@ -1137,13 +1148,13 @@ "studio.tokens": { "modify": { "type": "alpha", - "value": "0.15", + "value": "0.1", "space": "lch" } } }, "$type": "color", - "$value": "{chrome.900}", + "$value": "{tuna.800}", "$description": "Overlay color behind dialog components. Creates focus on the dialog by dimming content underneath." }, "fade-start": { @@ -1166,13 +1177,13 @@ "studio.tokens": { "modify": { "type": "alpha", - "value": "0.1", + "value": "0.15", "space": "lch" } } }, "$type": "color", - "$value": "{green.200}", + "$value": "{lime.200}", "$description": "Green background highlighting newly added code lines while maintaining readability." }, "add-lineNumber": { @@ -1180,13 +1191,13 @@ "studio.tokens": { "modify": { "type": "alpha", - "value": "0.2", + "value": "0.4", "space": "lch" } } }, "$type": "color", - "$value": "{green.200}", + "$value": "{lime.200}", "$description": "Background for line numbers of added code, providing visual connection to added content." }, "add-content-highlight": { @@ -1194,13 +1205,13 @@ "studio.tokens": { "modify": { "type": "alpha", - "value": "0.25", + "value": "0.4", "space": "lch" } } }, "$type": "color", - "$value": "{green.200}", + "$value": "{lime.200}", "$description": "Stronger emphasis color for specific character changes within added lines." }, "add-widget": { @@ -1218,7 +1229,7 @@ "studio.tokens": { "modify": { "type": "alpha", - "value": "0.1", + "value": "0.15", "space": "lch" } } @@ -1232,7 +1243,7 @@ "studio.tokens": { "modify": { "type": "alpha", - "value": "0.2", + "value": "0.4", "space": "lch" } } @@ -1246,7 +1257,7 @@ "studio.tokens": { "modify": { "type": "alpha", - "value": "0.25", + "value": "0.4", "space": "lch" } } @@ -1294,7 +1305,7 @@ "studio.tokens": { "modify": { "type": "alpha", - "value": "0.22", + "value": "0.4", "space": "lch" } } @@ -1332,7 +1343,7 @@ }, "hljs-string": { "$type": "color", - "$value": "{green.700}" + "$value": "{mint.700}" }, "hljs-title-function": { "$type": "color", @@ -1360,12 +1371,12 @@ "link": { "text": { "$type": "color", - "$value": "{blue.600}", + "$value": "{blue.700}", "$description": "Default color for text links. Creates distinct visual identification of interactive text elements." }, "text-hover": { "$type": "color", - "$value": "{blue.700}", + "$value": "{blue.800}", "$description": "Hover color for text links." } }, @@ -1556,7 +1567,7 @@ "track": { "base": { "$type": "color", - "$value": "{chrome.150}", + "$value": "{tuna.50}", "$description": "Background color for slider tracks. Represents the full range of available values in an unselected state." }, "progress": { @@ -1791,18 +1802,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1816,6 +1815,19 @@ "type": "innerShadow" } } + }, + "ai": { + "inner": { + "$type": "boxShadow", + "$value": { + "x": "0", + "y": "7", + "blur": "16", + "spread": "0", + "color": "{set.ai.surface.inner}", + "type": "innerShadow" + } + } } } }, @@ -1831,7 +1843,7 @@ } }, "$type": "color", - "$value": "{chrome.900}", + "$value": "{tuna.800}", "$description": "Transparent shadow color. Used when no shadow effect is desired." }, "1": { @@ -1845,7 +1857,7 @@ } }, "$type": "color", - "$value": "{chrome.900}", + "$value": "{tuna.800}", "$description": "Light shadow color. Creates subtle depth for small UI elements." }, "2": { @@ -1859,7 +1871,7 @@ } }, "$type": "color", - "$value": "{chrome.900}", + "$value": "{tuna.800}", "$description": "Medium shadow color with 60% opacity. Provides balanced depth for common UI components." }, "3": { @@ -1873,7 +1885,7 @@ } }, "$type": "color", - "$value": "{chrome.900}", + "$value": "{tuna.800}", "$description": "Medium shadow color. Creates moderate depth for elevated components." }, "4": { @@ -1887,7 +1899,7 @@ } }, "$type": "color", - "$value": "{chrome.900}", + "$value": "{tuna.800}", "$description": "Deep shadow color. Provides significant depth for floating elements." }, "5": { @@ -1895,13 +1907,13 @@ "studio.tokens": { "modify": { "type": "alpha", - "value": "0.1", + "value": "0.07", "space": "lch" } } }, "$type": "color", - "$value": "{chrome.900}", + "$value": "{tuna.800}", "$description": "Very deep shadow color. Creates dramatic elevation for modal content." }, "6": { @@ -1915,47 +1927,11 @@ } }, "$type": "color", - "$value": "{chrome.900}", + "$value": "{tuna.800}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2106,6 +2082,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2236,16 +2225,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2709,6 +2688,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{orange.50}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2804,5 +2801,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{mint.400}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.400}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/dimmer-deuteranopia.json b/packages/core-design-system/design-tokens/mode/light/dimmer-deuteranopia.json index 461a120437..09fcfd03ad 100644 --- a/packages/core-design-system/design-tokens/mode/light/dimmer-deuteranopia.json +++ b/packages/core-design-system/design-tokens/mode/light/dimmer-deuteranopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -183,20 +187,6 @@ "$value": "{chrome.950}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.50}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.900}", @@ -277,13 +267,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{purple.50}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.100}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -1104,6 +1097,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1123,12 +1120,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1809,18 +1800,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1935,45 +1914,9 @@ "$type": "color", "$value": "{chrome.900}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2124,6 +2067,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2254,16 +2210,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2727,6 +2673,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{yellow.25}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2822,5 +2786,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.500}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.500}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/dimmer-protanopia.json b/packages/core-design-system/design-tokens/mode/light/dimmer-protanopia.json index 8f305c1eae..16548b1795 100644 --- a/packages/core-design-system/design-tokens/mode/light/dimmer-protanopia.json +++ b/packages/core-design-system/design-tokens/mode/light/dimmer-protanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -183,20 +187,6 @@ "$value": "{chrome.950}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.50}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.900}", @@ -277,13 +267,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{purple.50}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.100}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -1104,6 +1097,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1123,12 +1120,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1809,18 +1800,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1935,45 +1914,9 @@ "$type": "color", "$value": "{chrome.900}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2124,6 +2067,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2254,16 +2210,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2727,6 +2673,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{yellow.25}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2822,5 +2786,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.500}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.500}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/dimmer-tritanopia.json b/packages/core-design-system/design-tokens/mode/light/dimmer-tritanopia.json index 06aa9acd5f..3069d7c5f5 100644 --- a/packages/core-design-system/design-tokens/mode/light/dimmer-tritanopia.json +++ b/packages/core-design-system/design-tokens/mode/light/dimmer-tritanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -183,20 +187,6 @@ "$value": "{chrome.950}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.50}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.900}", @@ -277,13 +267,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{purple.50}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.100}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -1104,6 +1097,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1123,12 +1120,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1809,18 +1800,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1935,45 +1914,9 @@ "$type": "color", "$value": "{chrome.900}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2124,6 +2067,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2254,16 +2210,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2727,6 +2673,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{yellow.25}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2822,5 +2786,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.500}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.500}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/dimmer.json b/packages/core-design-system/design-tokens/mode/light/dimmer.json index 59fa9b6f0a..d50fcfd94c 100644 --- a/packages/core-design-system/design-tokens/mode/light/dimmer.json +++ b/packages/core-design-system/design-tokens/mode/light/dimmer.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -165,20 +169,6 @@ "$value": "{pure.black}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{pure.white}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.850}", @@ -259,13 +249,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.50}", + "$value": "{purple.50}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.50}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -1086,6 +1079,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1105,12 +1102,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1791,18 +1782,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1917,45 +1896,9 @@ "$type": "color", "$value": "{chrome.900}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2106,6 +2049,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2236,16 +2192,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2709,6 +2655,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{yellow.25}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2804,5 +2768,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.500}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.500}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/figma-icon-stroke-width.json b/packages/core-design-system/design-tokens/mode/light/figma-icon-stroke-width.json index 63f49c3398..0cd2bb9a38 100644 --- a/packages/core-design-system/design-tokens/mode/light/figma-icon-stroke-width.json +++ b/packages/core-design-system/design-tokens/mode/light/figma-icon-stroke-width.json @@ -18,7 +18,7 @@ }, "lg": { "$type": "borderWidth", - "$value": "2" + "$value": "1.2" }, "xl": { "$type": "borderWidth", diff --git a/packages/core-design-system/design-tokens/mode/light/high-contrast-deuteranopia.json b/packages/core-design-system/design-tokens/mode/light/high-contrast-deuteranopia.json index 3298c6b06c..e9a78ce96c 100644 --- a/packages/core-design-system/design-tokens/mode/light/high-contrast-deuteranopia.json +++ b/packages/core-design-system/design-tokens/mode/light/high-contrast-deuteranopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.950}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.50}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.900}", @@ -268,13 +258,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{purple.50}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.100}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -1095,6 +1088,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1111,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1791,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1905,9 @@ "$type": "color", "$value": "{chrome.900}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2058,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2201,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2664,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{yellow.25}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2813,5 +2777,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.500}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.500}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/high-contrast-protanopia.json b/packages/core-design-system/design-tokens/mode/light/high-contrast-protanopia.json index 6a4c7b7a12..3a3fe438b1 100644 --- a/packages/core-design-system/design-tokens/mode/light/high-contrast-protanopia.json +++ b/packages/core-design-system/design-tokens/mode/light/high-contrast-protanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.950}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.50}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.900}", @@ -268,13 +258,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{purple.50}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.100}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -1095,6 +1088,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1111,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1791,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1905,9 @@ "$type": "color", "$value": "{chrome.900}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2058,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2201,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2664,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{yellow.25}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2813,5 +2777,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.500}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.500}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/high-contrast-tritanopia.json b/packages/core-design-system/design-tokens/mode/light/high-contrast-tritanopia.json index fe3f2c8c59..59295cd643 100644 --- a/packages/core-design-system/design-tokens/mode/light/high-contrast-tritanopia.json +++ b/packages/core-design-system/design-tokens/mode/light/high-contrast-tritanopia.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.950}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.50}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.900}", @@ -268,13 +258,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{purple.50}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.100}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -1095,6 +1088,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1111,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1791,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1905,9 @@ "$type": "color", "$value": "{chrome.900}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2058,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2201,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2664,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{yellow.25}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2813,5 +2777,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.500}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.500}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/high-contrast.json b/packages/core-design-system/design-tokens/mode/light/high-contrast.json index d574a2f211..4ed5861dd5 100644 --- a/packages/core-design-system/design-tokens/mode/light/high-contrast.json +++ b/packages/core-design-system/design-tokens/mode/light/high-contrast.json @@ -51,6 +51,10 @@ "$type": "color", "$value": "{set.yellow.soft.text}", "$description": "Primary color for text and icons in warning content. Communicates caution and potential issues requiring attention.\n\nCommon uses: Warning message text, alert text, important notifications." + }, + "brand": { + "$type": "color", + "$value": "{blue.300}" } }, "border": { @@ -174,20 +178,6 @@ "$value": "{chrome.950}", "$description": "Background color for primary brand items with strong emphasis." }, - "separator": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.25", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.50}", - "$description": "Separator color for dividing brand areas." - }, "bg-hover": { "$type": "color", "$value": "{chrome.900}", @@ -268,13 +258,16 @@ }, "bg-hover": { "$type": "color", - "$value": "{chrome.100}", + "$value": "{purple.50}", "$description": "Hover state background color for interactive AI surfaces." }, "bg-selected": { "$type": "color", - "$value": "{chrome.100}", - "$description": "Selected state background color for active AI items." + "$value": "linear-gradient(102deg, {gradient.ai-subtle.gradient-stop-1} 8%, {gradient.ai-subtle.gradient-stop-2} 35%, {gradient.ai-subtle.gradient-stop-3} 65%, {gradient.ai-subtle.gradient-stop-4} 87%)" + }, + "inner": { + "$type": "color", + "$value": "{pure.white}" } } }, @@ -1095,6 +1088,10 @@ "warning": { "$type": "color", "$value": "linear-gradient(0deg, {set.yellow.soft.bg} 42%, {gradient.alert.fade-warning} 100%)" + }, + "success": { + "$type": "color", + "$value": "linear-gradient(0deg, {set.green.soft.bg} 42%, {gradient.alert.fade-success} 100%)" } } }, @@ -1114,12 +1111,6 @@ "$description": "Inset border color for avatars. Creates subtle definition inside the avatar element." } }, - "card": { - "gradient": { - "$type": "color", - "$value": "linear-gradient(180deg, {gradient.card.from} 0%, {gradient.card.to} 100%);" - } - }, "chat": { "ai-icon": { "$type": "color", @@ -1800,18 +1791,6 @@ }, "$description": "Extra extra large shadow.\nCommon uses: This aggressive shadow is typically used sparingly in UI design, primarily for elements that need maximum visual emphasis and elevation." }, - "inner": { - "$type": "boxShadow", - "$value": { - "x": "0", - "y": "2", - "blur": "4", - "spread": "0", - "color": "{shadow-color.inner}", - "type": "innerShadow" - }, - "$description": "Inner shadow. \nCommon uses: Pressed buttons, selected states, inset form fields." - }, "comp": { "avatar": { "inner": { @@ -1926,45 +1905,9 @@ "$type": "color", "$value": "{chrome.900}", "$description": "Extremely deep shadow color. Provides maximum depth for highly elevated elements." - }, - "inner": { - "$extensions": { - "studio.tokens": { - "modify": { - "type": "alpha", - "value": "0.1", - "space": "lch" - } - } - }, - "$type": "color", - "$value": "{chrome.900}", - "$description": "Subtle inner shadow color. Creates inset effect for pressed or focused states." } }, "ring": { - "focus": { - "$type": "boxShadow", - "$value": [ - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "0.8", - "color": "{bg.1}", - "type": "dropShadow" - }, - { - "x": "0", - "y": "0", - "blur": "0", - "spread": "2", - "color": "{border.brand}", - "type": "dropShadow" - } - ], - "$description": "Focus ring effect with background offset and accent border." - }, "danger": { "$type": "boxShadow", "$value": { @@ -2115,6 +2058,19 @@ }, "$type": "color", "$value": "{set.yellow.soft.bg}" + }, + "fade-success": { + "$extensions": { + "studio.tokens": { + "modify": { + "type": "alpha", + "value": "0", + "space": "lch" + } + } + }, + "$type": "color", + "$value": "{set.green.soft.bg}" } }, "skeleton": { @@ -2245,16 +2201,6 @@ } } }, - "card": { - "from": { - "$type": "color", - "$value": "{pure.white}" - }, - "to": { - "$type": "color", - "$value": "{chrome.25}" - } - }, "dialog": { "fade": { "$extensions": { @@ -2718,6 +2664,24 @@ } } } + }, + "ai-subtle": { + "gradient-stop-1": { + "$type": "color", + "$value": "{yellow.25}" + }, + "gradient-stop-2": { + "$type": "color", + "$value": "{pink.50}" + }, + "gradient-stop-3": { + "$type": "color", + "$value": "{purple.50}" + }, + "gradient-stop-4": { + "$type": "color", + "$value": "{cyan.50}" + } } }, "disabled": { @@ -2813,5 +2777,35 @@ } } } + }, + "icon": { + "devops": { + "$type": "color", + "$value": "{lime.500}" + }, + "testing": { + "$type": "color", + "$value": "{orange.400}" + }, + "security": { + "$type": "color", + "$value": "{blue.500}" + }, + "efficiency": { + "$type": "color", + "$value": "{cyan.400}" + }, + "platform": { + "$type": "color", + "$value": "{purple.500}" + } + }, + "focus": { + "$type": "border", + "$value": { + "color": "{border.brand}", + "width": "{borderWidth.2}", + "style": "solid" + } } } \ No newline at end of file diff --git a/packages/core-design-system/design-tokens/mode/light/icon-stroke-width.json b/packages/core-design-system/design-tokens/mode/light/icon-stroke-width.json index bfd5f87e3d..6a7f363b36 100644 --- a/packages/core-design-system/design-tokens/mode/light/icon-stroke-width.json +++ b/packages/core-design-system/design-tokens/mode/light/icon-stroke-width.json @@ -6,19 +6,19 @@ }, "xs": { "$type": "borderWidth", - "$value": "1.3" + "$value": "1.22" }, "sm": { "$type": "borderWidth", - "$value": "1.3" + "$value": "1.2" }, "md": { "$type": "borderWidth", - "$value": "1.1" + "$value": "1.2" }, "lg": { "$type": "borderWidth", - "$value": "1" + "$value": "1.1" }, "xl": { "$type": "borderWidth", diff --git a/packages/filters/src/Filter.tsx b/packages/filters/src/Filter.tsx index fce31f3af3..7f0d0938f1 100644 --- a/packages/filters/src/Filter.tsx +++ b/packages/filters/src/Filter.tsx @@ -19,6 +19,7 @@ export interface FilterProps, K extends keyof value?: Parser extends undefined ? string : T[K] removeFilter: (filterKey?: K) => void }) => React.ReactNode + defaultValue?: T[K] parser?: SpreadParser sticky?: boolean className?: string diff --git a/packages/filters/src/Filters.tsx b/packages/filters/src/Filters.tsx index ea8fafcf20..273ad9cdb2 100644 --- a/packages/filters/src/Filters.tsx +++ b/packages/filters/src/Filters.tsx @@ -59,7 +59,7 @@ const Filters = forwardRef(function Filters>( } }) const mergedParams = mergeURLSearchParams(paramsOtherthanFilters, params) - routerUpdateURL(mergedParams) + routerUpdateURL(mergedParams, true) } const setFiltersMapTrigger = (filtersMap: Record) => { @@ -162,7 +162,7 @@ const Filters = forwardRef(function Filters>( } config[key] = { - defaultValue: serializedDefaultValue, + defaultValue: defaultValue, parser: initialFiltersConfig[key].parser, isSticky: isStickyFilter } @@ -201,7 +201,10 @@ const Filters = forwardRef(function Filters>( const query = createQueryString(newFiltersOrder, map) debug('Updating URL with query: %s', query) - updateURL(new URLSearchParams(query)) + + if (query) { + updateURL(new URLSearchParams(query)) + } // remove setVisibleFilters initialFiltersRef.current = map @@ -302,7 +305,7 @@ const Filters = forwardRef(function Filters>( Object.keys(updatedFiltersMap).forEach(key => { const isSticky = filtersConfig[key as FilterKeys]?.isSticky const defaultValue = filtersConfig[key as FilterKeys]?.defaultValue - const serializedDefaultValue = defaultValue + const serializedDefaultValue = filtersConfig[key as FilterKeys]?.parser?.serialize(defaultValue) ?? defaultValue const resetCurrentFilter = resetAllFilters || filters?.includes(key) let filterState = isSticky ? FilterStatus.VISIBLE : FilterStatus.HIDDEN diff --git a/packages/forms/package.json b/packages/forms/package.json index 34b7b7b99f..968ee1d5ef 100644 --- a/packages/forms/package.json +++ b/packages/forms/package.json @@ -1,6 +1,6 @@ { "name": "@harnessio/forms", - "version": "0.0.11", + "version": "0.0.12", "description": "Harness Forms Library", "scripts": { "playground": "vite dev --config vite.config.playground.ts", diff --git a/packages/forms/src/core/factory/InputFactory.ts b/packages/forms/src/core/factory/InputFactory.ts index 524e43849e..e72201c698 100644 --- a/packages/forms/src/core/factory/InputFactory.ts +++ b/packages/forms/src/core/factory/InputFactory.ts @@ -50,4 +50,21 @@ export class InputFactory { listRegisteredComponents(): string[] { return Array.from(this.componentBank.keys()) } + + /** + * Clone factory with all registered input components + * + * @returns new input factory + */ + clone() { + const cloneFactory = new InputFactory({ + allowOverride: this.allowOverride + }) + + this.listRegisteredComponents().forEach(inputType => { + cloneFactory.registerComponent(this.componentBank.get(inputType) as InputComponent) + }) + + return cloneFactory + } } diff --git a/packages/ui/locales/en/component.json b/packages/ui/locales/en/component.json index 9635d8b7b7..dd708d0e08 100644 --- a/packages/ui/locales/en/component.json +++ b/packages/ui/locales/en/component.json @@ -77,11 +77,19 @@ "account": "Account" }, "deleteDialog": { - "descriptionWithType": "This will permanently delete your {{type}} and remove all data. This action cannot be undone.", + "descriptionWithType": "This will permanently delete your {{type}} {{identifier}} and remove all data. This action cannot be undone.", "description": "This will permanently remove all data. This action cannot be undone.", "title": "Are you sure?", "inputLabel": "To confirm, type", - "cancel": "Cancel" + "validation": { + "mismatch": "" + }, + "violationMessages": { + "bypassed": "Some rules will be bypassed while deleting {{type}}", + "notAllow": "Some rules don't allow you to delete {{type}}" + }, + "cancel": "Cancel", + "bypassButton": "Bypass rule and confirm delete" }, "dropdownMenu": { "noOptions": "No options available" @@ -139,7 +147,7 @@ }, "radioGroup": { "directly": { - "labelFirst": "Commit directly to the", + "labelFirst": "Commit directly to", "labelSecond": "branch" }, "new": { @@ -196,6 +204,35 @@ "pullRequests": "Pull Requests", "title": "Title" }, + "branchDialog": { + "violationMessages": { + "bypassed": "Some rules will be bypassed while creating branch", + "notAllow": "Some rules don't allow creating branch " + }, + "loading": "Creating branch...", + "notAllowed": "Cannot create branch", + "default": "Create branch", + "bypassButton": "Bypass rules and create branch", + "title": "Create a branch", + "form": { + "name": { + "label": "Branch name", + "placeholder": "Add a branch name" + }, + "target": { + "label": "Based on", + "placeholder": "Add a branch name" + } + } + }, + "tagDialog": { + "violationMessages": { + "bypassed": "Some rules will be bypassed while creating tag", + "notAllow": "Some rules don't allow you to create tag" + }, + "notAllowed": "Cannot create tag", + "bypassButton": "Bypass rules and create tag" + }, "layout": { "table": "Table", "list": "List" diff --git a/packages/ui/locales/en/views.json b/packages/ui/locales/en/views.json index 138c208705..6e85834fcd 100644 --- a/packages/ui/locales/en/views.json +++ b/packages/ui/locales/en/views.json @@ -1,17 +1,22 @@ { "repos": { - "create-file": "Create file", - "upload-files": "Upload files", + "createFile": "Create File", + "uploadFiles": "Upload Files", "summary": "Summary", "files": "Files", "pipelines": "Pipelines", "commits": "Commits", "tags": "Tags", - "pull-requests": "Pull requests", - "branches": "Branches", + "pullRequests": "Pull requests", + "branches": { + "title": "Branches", + "commitsBehind": "commits behind", + "commitsAhead": "commits ahead", + "createBranch": "Create Branch" + }, "search": "Search", "settings": "Settings", - "descriptionPlaceholder": "Enter a short description for the label", + "descriptionPlaceholder": "Enter a description", "description": "Description", "error": "Error:", "saving": "Saving…", @@ -26,6 +31,7 @@ "compareAndPullRequest": "Compare & pull request", "dismiss": "Dismiss", "compareBranchesToSeeChanges": "Compare branches to see your changes.", + "noNewCommits": "No new commits yet", "default": "Default", "viewAll": "View all {{type}}", "branchesLowercase": "branches", @@ -70,6 +76,7 @@ "label": "Label by" } }, + "createPullReq": "Create Pull Request", "BlockBranchCreation": "Block branch creation", "BlockBranchCreationDescription": "Only allow users with bypass permission to create matching branches", "BlockBranchDeletion": "Block branch deletion", @@ -86,8 +93,8 @@ "RequireMinimumDefaultReviewerCountDescription": "Require a minimum number of default reviewers", "RequireCodeReview": "Require a minimum number of reviewers", "RequireCodeReviewDescription": "Require approval on pull requests from a minimum number of reviewers", - "AutoAddCodeOwners": "Add Code Owners as reviewers", - "AutoAddCodeOwnersDescription": "Automatically add relevant Code Owners as reviewers", + "AutoAddCodeOwners": "Add code owners as reviewers", + "AutoAddCodeOwnersDescription": "Automatically add relevant code owners as reviewers", "RequireCodeOwners": "Require review from code owners", "RequireCodeOwnersDescription": "Require approval on pull requests from one reviewer for each Code Owner rule", "RequestApprovalRule": "Request approval of new changes", @@ -127,20 +134,18 @@ "enterMinDefaultReviewers": "Enter minimum number of default reviewers", "enterMinReviewers": "Enter minimum number of reviewers", "updateBranchRule": "Update branch rule", - "CreateRule": "Create a branch rule", - "updateRule": "Update rule", - "createRuleButton": "Create rule", - "updatingRule": "Updating rule...", - "creatingRuleButton": "Creating rule...", - "createBranch": "Create branch", + "createBranchRule": "Create branch rule", + "updateRuleButton": "Update Rule", + "createRuleButton": "Create Rule", + "updatingRuleButton": "Updating Rule...", + "creatingRuleButton": "Creating Rule...", "branch": "Branch", "update": "Updated", "checkStatus": "Check status", "behind": "Behind", "ahead": "Ahead", "pullRequest": "Pull Request", - "newPullReq": "New pull request", - "viewRules": "View Rules", + "compare": "Compare", "browse": "Browse", "deleteBranch": "Delete Branch", "createBranchDialog": { @@ -151,7 +156,6 @@ } }, "createBranchTitle": "Create a branch", - "createBranchButton": "Create branch", "createNewRepo": "Create a new repository", "repoContains": "A repository contains all project files, including the revision history. Already have a project repository elsewhere?", "importRepo": "Import a repository", @@ -165,9 +169,9 @@ "label": "Description" }, "gitignore": { - "placeholder": "Select", "label": "Add a .gitignore", - "caption": "Choose which files not to track from a list of templates." + "caption": "Choose which files not to track from a list of templates.", + "placeholder": "Select" }, "defaultBranchDialog": { "startLabel": "Your repository will be initialized with a", @@ -181,9 +185,9 @@ } }, "repositories": "Repositories", - "new-repository": "New repository", - "import-repository": "Import repository", - "import-repositories": "Import repositories", + "createRepository": "Create Repository", + "importRepository": "Import Repository", + "importRepositories": "Import Repositories", "importing": "Importing…", "updated": "Updated", "unarchiveRepo": "Unarchive this repository", @@ -192,11 +196,11 @@ "archiveRepoDescription": "Set this repository to archived and restrict it to read-only access.", "unarchiving": "Unarchiving...", "archiving": "Archiving...", - "unarchiveRepoButton": "Unarchive repository", - "archiveRepoButton": "Archive repository", + "unarchiveRepoButton": "Unarchive Repository", + "archiveRepoButton": "Archive Repository", "deleteRepo": "Delete this repository", "deleteRepoDescription": "This will permanently delete this repository, and everything contained in it.", - "deleteRepoButton": "Delete repository", + "deleteRepoButton": "Delete Repository", "settingsToolTip": "Cannot change settings while loading or updating.", "features": "Features", "gitLfs": "Git LFS", @@ -213,8 +217,8 @@ "allRules": "All Rules", "branchRules": "Branch Rules", "tagRules": "Tag Rules", - "newTagRule": "New tag rule", - "createBranchRule": "New branch rule", + "createTagRuleButton": "Create Tag Rule", + "createBranchRuleButton": "Create Branch Rule", "security": "Security", "secretScanning": "Secret scanning", "secretScanningDescription": "Block commits containing secrets like passwords, API keys and tokens.", @@ -242,14 +246,14 @@ "0": "We recommend every repository include a", "1": "README, LICENSE, and .gitignrore." }, - "createFile": "New file" + "createFile": "Create File" }, "cloneInstructions": { "title": "Please generate git credentials if it’s your first time cloning the repository", "subTitle": "Git clone URL", "http": "HTTP", "ssh": "SSH", - "generateButton": "Generate clone credential", + "generateButton": "Generate Clone Credential", "manageCredentials": { "0": "You can also manage your git credential", "1": "here" @@ -257,7 +261,7 @@ "pushRepository": { "0": "You might need to", "1": "create an API token", - "2": "In order to pull from or push into this repository" + "2": "in order to pull from or push into this repository" } }, "initialCommit": "Then push some content into it", @@ -275,7 +279,7 @@ "BlockTagUpdate": "Block tag update", "BlockTagUpdateDescription": "Only allow users with bypass permission to update matching tags", "updateTagRule": "Update tag rule", - "CreateTagRule": "Create a tag rule", + "createTagRule": "Create tag rule", "createTagTitle": "Create a tag", "repoTagDescriptionPlaceholder": "Enter tag description here", "creatingTagButton": "Creating tag...", @@ -299,7 +303,7 @@ "commit": "Commit", "tagger": "Tagger", "creationDate": "Creation date", - "newTag": "New Tag", + "createTag": "Create Tag", "enableWebhookToggle": "Enable the webhook", "toggleDescription": "We will deliver event details when this hook is triggered", "urlPlaceholder": "https://example.com/harness", @@ -319,6 +323,11 @@ "creatingWebhook": "Creating webhook...", "updateWebhook": "Update webhook", "createWebhook": "Create webhook", + "updateRule": "Update rule", + "updatingRule": "Updating rule...", + "createBranchButton": "Create branch", + "newPullReq": "New pull request", + "viewRules": "View Rules", "newBranch": "New branch", "emptyRepo": "This repository is empty.", "afterComparingOpenPullRequest": "After comparing changes, you may open a pull request to contribute your changes upstream.", @@ -355,7 +364,7 @@ "configuration": "Configuration", "references": "References", "activityHistory": "Activity history", - "createNew": "Create new connector", + "createNew": "Create Connector", "errorEncountered": "Error Encountered", "viewDetails": "View Details", "id": "Connector ID", @@ -395,24 +404,32 @@ "noCommitsYetDescription": "Your commits will appear here once they're made. Start committing to see your changes reflected.", "compareChanges": "Compare and review just about anything", "compareChangesDescription": "Branches and commit ranges can be reviewed within the same repository.", + "title": { + "noOpenPullRequests": "No open pull requests yet", + "noClosedPullRequests": "No closed pull requests yet", + "noMergedPullRequests": "No merged pull requests yet" + }, "noOpenPullRequests": "There are no open pull requests in this project yet.", - "createNewPullRequest": "Create a new pull request.", "noClosedPullRequests": "There are no closed pull requests in this project yet.", - "clearFilters": "Clear filters", - "noPullRequestsInRepo": "Start your contribution journey by creating a new pull request draft.", + "noMergedPullRequests": "There are no merged pull requests in this project yet.", + "button": { + "createPullRequest": "Create Pull Request" + }, + "noPullRequestsInRepo": "Start your contribution journey by creating a new pull request.", "noPullRequestsInProject": "There are no pull requests in this project yet.", "noBranches": "No branches yet", "createBranchDescription": "Your branches will appear here once they're created.", "startBranchDescription": "Start branching to see your work organized.", "noCommitsHistory": "No commits history", "noCommitsHistoryDescription": "There isn't any commit history to show here for the selected user, time range, or current page.", + "clearFilters": "Clear Filters", "noRepos": "No repositories yet", "noReposProject": "There are no repositories in this project yet.", "createOrImportRepos": "Create new or import an existing repository.", "noRulesDescription": "There are no rules in this project. Click on the button below to start adding rules.", "noTags": "No tags yet", "noTagsDescription": "Your tags will appear here once they're created. Start creating tags to see your work organized.", - "createNewTag": "Create tag", + "createNewTag": "Create Tag", "noWebhookExecution": "No webhook executions yet", "noWebhookExecutionsDescription": "Your webhook executions will appear here once they're completed. Trigger your webhook to see the results.", "noWebhooks": "No webhooks yet", @@ -421,8 +438,10 @@ "createSecret": "Create new secret.", "noUsers": "No Users Found", "noUsersDescription": "There are no users in this scope. Click on the button below to start adding them.", - "createBranch": "Create new branch", - "createConnector": "Create new connector.", + "createTagRuleButton": "Create Tag Rule", + "createTagRule": "Create Tag Rule", + "createBranch": "Create New Branch", + "createConnector": "Create New Connector.", "noConnectorsProject": "There are no connectors in this project yet.", "noSecretsProject": "There are no secrets in this project yet.", "commit": "Commit", @@ -430,7 +449,7 @@ "noLabelsDescription": "Use labels to organize, prioritize, and categorize tasks efficiently." }, "notFound": { - "button": "Reload page", + "button": "Reload Page", "title": "Something went wrong…", "descriptionWithType": "The requested page is not found. You can go back to view all {{type}} and manage your settings.", "description": "The requested page is not found." @@ -510,15 +529,16 @@ "created": "Created in", "description": "Description" }, - "edit": "Edit label", - "delete": "Delete label", + "edit": "Edit Label", + "delete": "Delete Label", "title": "Labels", "showParentLabels": "Show labels from parent scopes", - "newLabel": "New label", - "create": "Create labels" + "createLabel": "Create Label", + "newLabel": "Create Label", + "create": "Create Labels" }, "projectSettings": { - "newLabels": "Create label", + "newLabels": "Create Label", "general": { "mainTitle": "General settings", "projectNamePlaceholder": "Enter project name", @@ -527,13 +547,13 @@ "projectDescriptionLabel": "Description", "formSubmitButton": { "savingState": "Saving...", - "defaultState": "Save changes", + "defaultState": "Save Changes", "savedState": "Saved" }, "formCancelButton": "Cancel", "deleteProjectTitle": "Delete project", "deleteProjectDescription": "This will permanently delete this project, and everything contained in it. All repositories in it will also be deleted.", - "deleteProjectButton": "Delete project" + "deleteProjectButton": "Delete Project" }, "newMember": "New member", "member": "Member", @@ -570,11 +590,11 @@ "changes": "Changes", "noCommitsYet": "No commits yet", "noCommitDataDescription": "There are no commits yet.", - "compareChangesCreateTitle": "Create pull request", + "compareChangesCreateTitle": "Create Pull Request", "compareChangesCreateDescription": "Open pull request that is ready for review.", - "compareChangesDraftTitle": "Create draft pull request", + "compareChangesDraftTitle": "Create Draft Pull request", "compareChangesDraftDescription": "Does not request code reviews and cannot be merged.", - "compareChangesCreatedButton": "Pull request created", + "compareChangesCreatedButton": "Pull Request Created", "compareChangesFormTitleLabel": "Add a title", "compareChangesFormTitlePlaceholder": "Enter pull request title", "compareChangesFormDescriptionHeading": "Add a description", @@ -607,6 +627,7 @@ "searchLabels": "Search", "noLabels": "No labels found", "editLabels": "Edit labels", + "changedSinceLastView": "Changed since last viewed", "markViewed": "Viewed", "deletedComment": "This comment was deleted.", "reviewers": "Reviewers", @@ -616,6 +637,13 @@ "changereq": "Changes Requested", "split": "Split", "unified": "Unified", + "comments": { + "suggestionApplied": "Suggestion applied", + "codeSuggestion": "Code suggestion", + "commitSuggestion": "Commit suggestion", + "removeSuggestion": "Remove suggestion from batch", + "addSuggestion": "Add suggestion to batch" + }, "deleted": "Deleted", "searchUsers": "Search users", "compareChangesFormDescriptionLabel": "Description", @@ -626,10 +654,10 @@ "compareChangesDiffLink": "learn more about diff comparisons", "compareChangesFormTitle": "Add a title", "compareChangesFormDescription": "Add a description", - "compareChangesCreateButton": "Create pull request", - "compareChangesCreateButtonLoading": "Creating pull request...", - "compareChangesDraftButton": "Draft pull request", - "compareChangesDraftButtonLoading": "Drafting pull request...", + "compareChangesCreateButton": "Create Pull Request", + "compareChangesCreateButtonLoading": "Creating Pull Request...", + "compareChangesDraftButton": "Draft Pull Request", + "compareChangesDraftButtonLoading": "Drafting Pull Request...", "replyHere": "Reply here", "showDiff": "Show Diff", "deletedFileDiff": "This file was deleted.", @@ -656,9 +684,9 @@ "select": "Select", "tokenExpiryNone": "Token will never expire", "tokenExpiryDate": " Token will expire on", - "gotItButton": "Got it", - "generateTokenButton": "Generate token", - "generatingTokenButton": "Generating token...", + "gotItButton": "Got It", + "generateTokenButton": "Generate Token", + "generatingTokenButton": "Generating Token...", "tokenTableHeader": "Token", "statusTableHeader": "Status", "expirationDateTableHeader": "Expiration date", @@ -685,7 +713,7 @@ "enterUsernameCaption": "This username will be shown across the platform.", "accountEmail": "Account email", "updatingProfileButton": "Updating...", - "updateProfileButton": "Update profile", + "updateProfileButton": "Update Profile", "updatedButton": "Updated", "passwordSettingsTitle": "Password settings", "passwordSettingsDesc": "Minimum of 6 characters long containing at least one number and a mixture of uppercase and lowercase letters.", @@ -733,8 +761,8 @@ }, "rules": { "showParentRules": "Show rules from parent scopes", - "edit": "Edit rule", - "delete": "Delete rule", + "edit": "Edit Rule", + "delete": "Delete Rule", "exclude": "Exclude", "include": "Include" }, @@ -745,16 +773,26 @@ "accountOnly": "Account only", "label": "Scope" }, + "repo": { + "components": { + "commitDetailsDiffShowing": "Showing", + "commitDetailsDiffChangedFiles": "changed files", + "commitDetailsDiffWith": "with", + "commitDetailsDiffAdditionsAnd": "additions and", + "commitDetailsDiffDeletions": "deletions" + } + }, "commits": { + "commitDetailsTitle": "Commit", + "browseFiles": "Browse Files", + "commitDetailsAuthored": "authored", + "createCommit": "Create commit", + "createNewCommit": "Create commit", "commitDetailsDiffShowing": "Showing", "commitDetailsDiffChangedFiles": "changed files", "commitDetailsDiffWith": "with", "commitDetailsDiffAdditionsAnd": "additions and", "commitDetailsDiffDeletions": "deletions", - "commitDetailsTitle": "Commit", - "browseFiles": "Browse files", - "createNewCommit": "Create new commit", - "commitDetailsAuthored": "authored", "verified": "Verified" }, "createTagDialog": { @@ -780,12 +818,12 @@ "prCommentUpdated": "PR comment updated", "prReviewSubmitted": "PR review submitted", "prLabelAssigned": "PR label assigned", - "create": "Create webhook", - "edit": "Edit webhook", - "delete": "Delete webhook" + "create": "Create Webhook", + "edit": "Edit Webhook", + "delete": "Delete Webhook" }, "secrets": { - "createNew": "Create new secret", + "createNew": "Create Secret", "delete": "Delete Secret", "secretsTitle": "Secrets" }, @@ -849,7 +887,7 @@ "confirm": "Confirm" }, "close": "Close", - "newUserButton": "New user", + "newUserButton": "Create User", "searchPlaceholder": "Search", "usersHeader": "Users", "tabs": { diff --git a/packages/ui/locales/fr/component.json b/packages/ui/locales/fr/component.json index cbe9bb3626..3204e9aeeb 100644 --- a/packages/ui/locales/fr/component.json +++ b/packages/ui/locales/fr/component.json @@ -77,10 +77,17 @@ "account": "Compte" }, "deleteDialog": { - "descriptionWithType": "This will permanently delete your {{type}} and remove all data. This action cannot be undone.", + "descriptionWithType": "This will permanently delete your {{type}} {{identifier}} and remove all data. This action cannot be undone.", "description": "This will permanently remove all data. This action cannot be undone.", "title": "Êtes-vous sûr ?", "inputLabel": "To confirm, type", + "validation": { + "mismatch": "" + }, + "violationMessages": { + "bypassed": "", + "notAllow": "" + }, "cancel": "Annuler" }, "dropdownMenu": { @@ -139,7 +146,7 @@ }, "radioGroup": { "directly": { - "labelFirst": "Commit directly to the", + "labelFirst": "Commit directly to", "labelSecond": "branch" }, "new": { @@ -197,6 +204,35 @@ "pullRequests": "Demandes de fusion", "title": "Titre" }, + "branchDialog": { + "violationMessages": { + "bypassed": "Some rules will be bypassed while creating branch", + "notAllow": "Some rules don't allow creating branch " + }, + "loading": "Creating branch...", + "notAllowed": "Cannot create branch", + "default": "Create branch", + "bypassButton": "Bypass rules and create branch", + "title": "Create a branch", + "form": { + "name": { + "label": "Branch name", + "placeholder": "Add a branch name" + }, + "target": { + "label": "Based on", + "placeholder": "Add a branch name" + } + } + }, + "tagDialog": { + "violationMessages": { + "bypassed": "Some rules will be bypassed while creating tag", + "notAllow": "Some rules don't allow you to create tag" + }, + "notAllowed": "Cannot create tag", + "bypassButton": "Bypass rules and create tag" + }, "layout": { "table": "Table", "list": "List" diff --git a/packages/ui/locales/fr/views.json b/packages/ui/locales/fr/views.json index 7842e1b6be..b5499e1cee 100644 --- a/packages/ui/locales/fr/views.json +++ b/packages/ui/locales/fr/views.json @@ -1,14 +1,19 @@ { "repos": { - "create-file": "Create file", - "upload-files": "Télécharger des fichiers", + "createFile": "Create File", + "uploadFiles": "Télécharger des fichiers", "summary": "Résumé", "files": "Fichiers", "pipelines": "Pipelines", "commits": "Commits", "tags": "Étiquettes", - "pull-requests": "Requêtes de tirage", - "branches": "Branches", + "pullRequests": "Pull requests", + "branches": { + "title": "Branches", + "commitsBehind": "commits en retard", + "commitsAhead": "commits en avance", + "createBranch": "Create Branch" + }, "search": "Rechercher", "settings": "Paramètres", "descriptionPlaceholder": "Enter a description", @@ -26,6 +31,7 @@ "compareAndPullRequest": "Comparez et ouvrez une requête de tirage", "dismiss": "Dismiss", "compareBranchesToSeeChanges": "Comparez les branches pour voir vos changements.", + "noNewCommits": "Pas encore de nouveaux commits", "default": "Par défaut", "viewAll": "Voir tous les {{type}}", "branchesLowercase": "branches", @@ -70,6 +76,7 @@ "label": "Label by" } }, + "createPullReq": "Créer une requête de tirage.", "BlockBranchCreation": "Bloquer la création de branches", "BlockBranchCreationDescription": "Autoriser uniquement les utilisateurs ayant des permissions spécifiques à créer ces branches", "BlockBranchDeletion": "Bloquer la suppression de branches", @@ -127,20 +134,18 @@ "enterMinDefaultReviewers": "Entrer le nombre minimal de réviseurs par défaut", "enterMinReviewers": "Entrer le nombre minimal de réviseurs", "updateBranchRule": "Mettre à jour la règle de branche", - "CreateRule": "Créer une règle", - "updateRule": "Mettre à jour la règle", - "createRuleButton": "Créer la règle", - "updatingRule": "Mise à jour de la règle...", + "createBranchRule": "Create branch rule", + "updateRuleButton": "Mettre à jour la règle", + "createRuleButton": "Créer une règle de branche", + "updatingRuleButton": "Mise à jour de la règle...", "creatingRuleButton": "Création de la règle...", - "createBranch": "Create branch", "branch": "Branche", "update": "Mettre à jour", "checkStatus": "Vérifier le statut", - "behind": "En retard", + "behind": "Behind", "ahead": "En avance", "pullRequest": "Pull Request", - "newPullReq": "Nouvelle requête de tirage", - "viewRules": "Voir les règles", + "compare": "Compare", "browse": "Browse", "deleteBranch": "Delete Branch", "createBranchDialog": { @@ -151,7 +156,6 @@ } }, "createBranchTitle": "Créer une branche", - "createBranchButton": "Créer une branche", "createNewRepo": "Create a new repository", "repoContains": "A repository contains all project files, including the revision history. Already have a project repository elsewhere?", "importRepo": "Import a repository", @@ -165,9 +169,9 @@ "label": "Description" }, "gitignore": { - "placeholder": "Select", "label": "Add a .gitignore", - "caption": "Choose which files not to track from a list of templates." + "caption": "Choose which files not to track from a list of templates.", + "placeholder": "Select" }, "defaultBranchDialog": { "startLabel": "Your repository will be initialized with a", @@ -181,9 +185,9 @@ } }, "repositories": "Dépôts", - "new-repository": "Créer un dépôt", - "import-repository": "Importer un dépôt", - "import-repositories": "Import repositories", + "createRepository": "Créer un dépôt", + "importRepository": "Importer un dépôt", + "importRepositories": "Import repositories", "importing": "Importing…", "updated": "Mis à jour", "unarchiveRepo": "Unarchive Repository", @@ -213,8 +217,8 @@ "allRules": "All Rules", "branchRules": "Branch Rules", "tagRules": "Tag Rules", - "newTagRule": "New tag rule", - "createBranchRule": "New branch rule", + "createTagRuleButton": "Create tag rule", + "createBranchRuleButton": "Create Branch rule", "security": "Sécurité", "secretScanning": "Analyse des secrets", "secretScanningDescription": "Empêcher les commits contenant des secrets comme les mots de passe ou jetons API.", @@ -242,7 +246,7 @@ "0": "We recommend every repository include a", "1": "README, LICENSE, and .gitignrore." }, - "createFile": "New file" + "createFile": "Créer un fichier" }, "cloneInstructions": { "title": "Please generate git credentials if it’s your first time cloning the repository", @@ -257,7 +261,7 @@ "pushRepository": { "0": "You might need to", "1": "create an API token", - "2": "In order to pull from or push into this repository" + "2": "pour pouvoir tirer ou pousser dans ce dépôt" } }, "initialCommit": "Then push some content into it", @@ -275,7 +279,7 @@ "BlockTagUpdate": "Block tag update", "BlockTagUpdateDescription": "Only allow users with bypass permission to update matching tags", "updateTagRule": "Update tag rule", - "CreateTagRule": "Create a tag rule", + "createTagRule": "Create tag rule", "createTagTitle": "Create a tag", "repoTagDescriptionPlaceholder": "Enter a description of this tag...", "creatingTagButton": "Creating tag...", @@ -293,7 +297,7 @@ "commit": "Commit", "tagger": "Tagger", "creationDate": "Creation date", - "newTag": "New Tag", + "createTag": "Créer une balise", "enableWebhookToggle": "Activer le webhook", "toggleDescription": "Nous enverrons les détails lorsque ce webhook sera déclenché", "urlPlaceholder": "https://example.com/harness", @@ -313,6 +317,9 @@ "creatingWebhook": "Creating webhook...", "updateWebhook": "Update webhook", "createWebhook": "Create webhook", + "newPullReq": "Nouvelle requête de tirage", + "createBranchButton": "Créer une branche", + "viewRules": "Voir les règles", "newBranch": "Nouvelle branche", "emptyRepo": "Ce référentiel est vide.", "afterComparingOpenPullRequest": "Après avoir comparé les modifications, vous pouvez ouvrir une demande d'extraction pour contribuer à vos modifications en amont.", @@ -347,7 +354,7 @@ "configuration": "Configuration", "references": "Références", "activityHistory": "Historique des activités", - "createNew": "Créer un nouveau connecteur", + "createNew": "Créer un connecteur", "errorEncountered": "Erreur rencontrée", "viewDetails": "Voir les détails", "id": "ID du connecteur", @@ -387,10 +394,17 @@ "noCommitsYetDescription": "Your commits will appear here once they're made. Start committing to see your changes reflected.", "compareChanges": "Comparez et révisez pratiquement tout", "compareChangesDescription": "Branches, tags, plages de commits et périodes. Dans le même dépôt et entre les forks.", + "title": { + "noOpenPullRequests": "Il n'y a pas encore de demandes de tirage ouvertes", + "noClosedPullRequests": "Il n'y a pas encore de demandes de tirage fermées", + "noMergedPullRequests": "Il n'y a pas encore de demandes de tirage fusionnées" + }, "noOpenPullRequests": "Il n'y a pas encore de demandes de tirage ouvertes dans ce projet.", - "createNewPullRequest": "Créez une nouvelle demande de tirage.", "noClosedPullRequests": "Il n'y a pas encore de demandes de tirage fermées dans ce projet.", - "clearFilters": "Effacer les filtres", + "noMergedPullRequests": "Il n'y a pas encore de demandes de tirage fusionnées dans ce projet.", + "button": { + "createPullRequest": "Créer une demande de tirage" + }, "noPullRequestsInRepo": "Commencez votre parcours de contribution en créant un brouillon de demande de tirage.", "noPullRequestsInProject": "There are no pull requests in this project yet.", "noBranches": "Pas encore de branches", @@ -398,6 +412,7 @@ "startBranchDescription": "Commencez à créer des branches pour voir votre travail organisé.", "noCommitsHistory": "No commits history", "noCommitsHistoryDescription": "There isn't any commit history to show here for the selected user, time range, or current page.", + "clearFilters": "Effacer les filtres", "noRepos": "Pas encore de dépôts", "noReposProject": "Il n'y a pas encore de dépôts dans ce projet.", "createOrImportRepos": "Créer un nouveau dépôt ou importer un dépôt existant.", @@ -413,6 +428,8 @@ "createSecret": "Créer un nouveau secret.", "noUsers": "Aucun utilisateur trouvé", "noUsersDescription": "Il n'y a aucun utilisateur dans ce périmètre. Cliquez sur le bouton ci-dessous pour commencer à les ajouter.", + "createTagRuleButton": "Create Tag rule", + "createTagRule": "Create Tag rule", "createBranch": "Créer une nouvelle branche", "noPullRequests": "Il n'y a pas encore de demandes de tirage dans ce projet.", "createConnector": "Créez un nouveau connecteur.", @@ -506,7 +523,8 @@ "delete": "Delete label", "title": "Labels", "showParentLabels": "Show labels from parent scopes", - "newLabel": "New label", + "createLabel": "Create label", + "newLabel": "Create Label", "create": "Create labels" }, "projectSettings": { @@ -599,6 +617,7 @@ "searchLabels": "Rechercher des étiquettes..", "noLabels": "No labels found", "editLabels": "Edit labels", + "changedSinceLastView": "Modifié depuis la dernière consultation", "markViewed": "Vue", "deletedComment": "Ce commentaire a été supprimé.", "reviewers": "Réviseurs", @@ -608,6 +627,13 @@ "changereq": "Changement Demandé", "split": "Diviser", "unified": "Unifié", + "comments": { + "suggestionApplied": "Suggestion applied", + "codeSuggestion": "Code suggestion", + "commitSuggestion": "Commit suggestion", + "removeSuggestion": "Remove suggestion from batch", + "addSuggestion": "Add suggestion to batch" + }, "deleted": "Supprimé", "searchUsers": "Rechercher des utilisateurs", "compareChangesFormDescriptionLabel": "Description", @@ -732,16 +758,26 @@ "label": "Périmètre", "account": "Compte" }, + "repo": { + "components": { + "commitDetailsDiffShowing": "Affichage de", + "commitDetailsDiffChangedFiles": "fichiers modifiés", + "commitDetailsDiffWith": "avec", + "commitDetailsDiffAdditionsAnd": "ajouts et", + "commitDetailsDiffDeletions": "suppressions" + } + }, "commits": { + "commitDetailsTitle": "Commit", + "browseFiles": "Parcourir les fichiers", + "commitDetailsAuthored": "créé par", + "createCommit": "Créer un commit", + "createNewCommit": "Créer un commit", "commitDetailsDiffShowing": "Affichage de", "commitDetailsDiffChangedFiles": "fichiers modifiés", "commitDetailsDiffWith": "avec", "commitDetailsDiffAdditionsAnd": "ajouts et", "commitDetailsDiffDeletions": "suppressions", - "commitDetailsTitle": "Commit", - "browseFiles": "Parcourir les fichiers", - "createNewCommit": "Créer un nouveau commit", - "commitDetailsAuthored": "créé par", "verified": "Vérifié" }, "createTagDialog": { @@ -772,7 +808,7 @@ "delete": "Delete webhook" }, "secrets": { - "createNew": "Créer un nouveau secret", + "createNew": "Créer un secret", "delete": "Supprimer le secret", "secretsTitle": "Secrets" }, @@ -836,7 +872,7 @@ "confirm": "Confirmer" }, "close": "Fermer", - "newUserButton": "Nouvel utilisateur", + "newUserButton": "Créer utilisateur", "searchPlaceholder": "Rechercher", "usersHeader": "Utilisateurs", "tabs": { diff --git a/packages/ui/package.json b/packages/ui/package.json index 9a39284904..cb772b7e0f 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,7 +1,7 @@ { "name": "@harnessio/ui", "description": "Harness Canary UI component library", - "version": "0.0.97", + "version": "0.0.99", "private": false, "type": "module", "main": "./dist/index.js", diff --git a/packages/ui/src/components/accordion/accordion.tsx b/packages/ui/src/components/accordion/accordion.tsx index 9c80d8528f..6f43e595fa 100644 --- a/packages/ui/src/components/accordion/accordion.tsx +++ b/packages/ui/src/components/accordion/accordion.tsx @@ -1,4 +1,13 @@ -import { ComponentPropsWithoutRef, createContext, ElementRef, forwardRef, ReactNode, useContext } from 'react' +import { + ComponentPropsWithoutRef, + createContext, + ElementRef, + forwardRef, + Fragment, + PropsWithoutRef, + ReactNode, + useContext +} from 'react' import { Card } from '@components/card' import { IconPropsV2, IconV2 } from '@components/icon-v2' @@ -78,7 +87,7 @@ const AccordionItem = forwardRef, Acc if (variant === 'card') { return ( - + ) @@ -93,12 +102,12 @@ AccordionItem.displayName = 'AccordionItem' type AccordionTriggerProps = ComponentPropsWithoutRef & { prefix?: ReactNode suffix?: ReactNode - indicatorProps?: Omit + indicatorProps?: PropsWithoutRef> headerClassName?: string } const AccordionTrigger = forwardRef, AccordionTriggerProps>( - ({ className, children, suffix, prefix, indicatorProps, headerClassName, ...props }, ref) => { + ({ className, children, suffix, prefix, indicatorProps, headerClassName, asChild, ...props }, ref) => { const { indicatorPosition } = useContext(AccordionContext) const Indicator = () => ( @@ -110,16 +119,25 @@ const AccordionTrigger = forwardRef ) + const Wrapper = asChild ? 'div' : Fragment + return ( - - {indicatorPosition === 'left' && } - - {!!prefix && {prefix}} - {children} - {!!suffix && {suffix}} - - {indicatorPosition === 'right' && } + + + {indicatorPosition === 'left' && } + + {!!prefix && {prefix}} + {children} + {!!suffix && {suffix}} + + {indicatorPosition === 'right' && } + ) diff --git a/packages/ui/src/components/alert-dialog.tsx b/packages/ui/src/components/alert-dialog.tsx index 27016d8d51..880bf14200 100644 --- a/packages/ui/src/components/alert-dialog.tsx +++ b/packages/ui/src/components/alert-dialog.tsx @@ -1,4 +1,4 @@ -import { Children, createContext, isValidElement, ReactNode, useContext } from 'react' +import { Children, createContext, forwardRef, isValidElement, ReactNode, useContext } from 'react' import { Button, ButtonLayout, IconV2NamesType } from '@/components' @@ -53,7 +53,7 @@ interface ContentProps { children?: ReactNode } -const Content = ({ title, children }: ContentProps) => { +const Content = forwardRef(({ title, children }, ref) => { const context = useContext(AlertDialogContext) if (!context) throw new Error('AlertDialog.Content must be used within AlertDialog.Root') @@ -77,7 +77,7 @@ const Content = ({ title, children }: ContentProps) => { }) return ( - + event.preventDefault()} ref={ref}> { ) -} +}) +Content.displayName = 'AlertDialog.Content' -const Cancel = ({ children = 'Cancel', ...props }: { children?: ReactNode }) => { +const Cancel = forwardRef(({ children = 'Cancel', ...props }, ref) => { const context = useContext(AlertDialogContext) if (!context) throw new Error('AlertDialog.Cancel must be used within AlertDialog.Root') return ( - ) -} +}) Cancel.displayName = 'AlertDialog.Cancel' -const Confirm = ({ children = 'Confirm', ...props }: { children?: ReactNode }) => { - const context = useContext(AlertDialogContext) - if (!context) throw new Error('AlertDialog.Confirm must be used within AlertDialog.Root') - - return ( - - ) -} +const Confirm = forwardRef( + ({ children = 'Confirm', ...props }, ref) => { + const context = useContext(AlertDialogContext) + if (!context) throw new Error('AlertDialog.Confirm must be used within AlertDialog.Root') + + return ( + + ) + } +) Confirm.displayName = 'AlertDialog.Confirm' export const AlertDialog = { diff --git a/packages/ui/src/components/alert/AlertLink.tsx b/packages/ui/src/components/alert/AlertLink.tsx index 41f3490831..e61d370451 100644 --- a/packages/ui/src/components/alert/AlertLink.tsx +++ b/packages/ui/src/components/alert/AlertLink.tsx @@ -25,7 +25,7 @@ export const AlertLink = forwardRef(
['theme']>, keyof typeof IconNameMapV2> = { info: 'info-circle', danger: 'xmark-circle', - warning: 'warning-triangle' + warning: 'warning-triangle', + success: 'check-circle' } const MAX_HEIGHT = 138 diff --git a/packages/ui/src/components/avatar.tsx b/packages/ui/src/components/avatar.tsx index d758dedbfb..8a266699c6 100644 --- a/packages/ui/src/components/avatar.tsx +++ b/packages/ui/src/components/avatar.tsx @@ -8,7 +8,7 @@ import { cva, type VariantProps } from 'class-variance-authority' import { IconV2 } from './icon-v2' import { Tooltip, TooltipProps } from './tooltip' -const avatarVariants = cva('cn-avatar', { +export const avatarVariants = cva('cn-avatar', { variants: { size: { md: '', diff --git a/packages/ui/src/components/branch-tag.tsx b/packages/ui/src/components/branch-tag.tsx new file mode 100644 index 0000000000..3862e9b9a7 --- /dev/null +++ b/packages/ui/src/components/branch-tag.tsx @@ -0,0 +1,41 @@ +import { CopyTag } from '@/components' +import { useRouterContext } from '@/context' + +import type { TagProps } from './tag' + +interface BranchTagProps { + branchName: string + spaceId?: string + repoId?: string + hideBranchIcon?: boolean + theme?: TagProps['theme'] + variant?: TagProps['variant'] + size?: TagProps['size'] +} + +const BranchTag: React.FC = ({ + branchName, + spaceId, + repoId, + hideBranchIcon, + theme = 'gray', + variant = 'secondary', + size = 'md' +}) => { + const { Link } = useRouterContext() + + return ( + + + + ) +} + +BranchTag.displayName = 'BranchTag' +export { BranchTag } diff --git a/packages/ui/src/components/breadcrumb.tsx b/packages/ui/src/components/breadcrumb.tsx index 05f4faca32..d2f50bf8d8 100644 --- a/packages/ui/src/components/breadcrumb.tsx +++ b/packages/ui/src/components/breadcrumb.tsx @@ -79,12 +79,12 @@ BreadcrumbSeparator.displayName = 'BreadcrumbSeparator' type BreadcrumbEllipsisProps = ComponentProps<'span'> -const BreadcrumbEllipsis = ({ className, ...props }: BreadcrumbEllipsisProps) => ( -