fix: resolve style issues in dark mode

This commit is contained in:
LIlGG
2025-09-29 12:50:15 +08:00
parent 7fd33183c5
commit 2838a7f923
7 changed files with 76 additions and 41 deletions

View File

@@ -350,7 +350,7 @@ export const DeploymentRecordsDialog = memo(({ isOpen, onClose }: DeploymentReco
</h3>
<Tabs value={activePlatform} onValueChange={handleTabChange} className="mb-4">
<TabsList className="w-full border border-upage-elements-borderColor rounded-md p-1 bg-gray-50 dark:bg-gray-900/20 flex">
<TabsList className="w-full border border-upage-elements-borderColor rounded-md p-1 bg-gray-50 dark:bg-gray-900/50 flex">
{Object.values(DeploymentPlatformEnum).map((platform, index) => {
const count = stats.sitesByPlatform?.[platform] || 0;
const isLoading = isPlatformLoading(platform);
@@ -364,8 +364,8 @@ export const DeploymentRecordsDialog = memo(({ isOpen, onClose }: DeploymentReco
className={classNames(
'flex-1 relative py-2 px-3 transition-all duration-200',
isActive
? 'bg-white dark:bg-gray-800 shadow-sm rounded-md text-upage-elements-textPrimary font-medium'
: 'hover:bg-gray-100/70 dark:hover:bg-gray-800/30 text-upage-elements-textSecondary',
? 'bg-white dark:bg-gray-800 shadow-sm rounded-md text-upage-elements-textPrimary dark:text-upage-elements-textPrimary font-medium'
: 'bg-transparent dark:bg-transparent hover:bg-gray-100/70 dark:hover:bg-gray-800/30 text-upage-elements-textSecondary dark:text-upage-elements-textSecondary',
)}
>
<div className="flex items-center justify-center gap-2">

View File

@@ -618,6 +618,7 @@ export default function NetlifyConnection() {
'bg-upage-elements-button-secondary-background',
'hover:bg-upage-elements-button-secondary-backgroundHover',
'disabled:opacity-50 disabled:cursor-not-allowed',
'text-upage-elements-textPrimary',
)}
>
{isConnecting ? (
@@ -627,7 +628,7 @@ export default function NetlifyConnection() {
</>
) : (
<>
<div className="heroicons:cloud size-4" />
<div className="i-ph:plug-charging size-4" />
</>
)}

View File

@@ -510,6 +510,7 @@ export default function _1PanelConnection({
'bg-upage-elements-button-secondary-background',
'hover:bg-upage-elements-button-secondary-backgroundHover',
'disabled:opacity-50 disabled:cursor-not-allowed',
'text-upage-elements-textPrimary',
)}
>
{isConnecting ? (

View File

@@ -125,7 +125,7 @@ interface FullscreenButtonProps {
const FullscreenButton = memo(({ onClick, isFullscreen }: FullscreenButtonProps) => (
<button
onClick={onClick}
className="ml-4 p-1 rounded hover:bg-upage-elements-background-depth-3 text-upage-elements-textTertiary hover:text-upage-elements-textPrimary transition-colors"
className="ml-4 p-1 rounded hover:bg-upage-elements-background-depth-3 text-upage-elements-textTertiary hover:text-upage-elements-textPrimary transition-colors dark:bg-gray-800"
title={isFullscreen ? 'Exit Fullscreen' : 'Enter Fullscreen'}
>
<div className={isFullscreen ? 'i-ph:corners-in' : 'i-ph:corners-out'} />

View File

@@ -265,8 +265,8 @@ function Page({ page, onClick, selected, unsavedChanges = false }: PageProps) {
>
<NodeButton
className={classNames('group', {
'text-upage-elements-item-contentDefault': !selected,
'text-upage-elements-item-contentAccent': selected,
'text-upage-elements-item-contentDefault dark:bg-gray-800': !selected,
'text-upage-elements-item-contentAccent dark:bg-gray-800': selected,
})}
iconClasses={classNames('i-ph:file-duotone scale-98', {
'group-hover:text-upage-elements-item-contentActive': !selected,

View File

@@ -3,8 +3,14 @@
exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (0) > onActionClose 1`] = `
{
"action": {
"action": "add",
"content": "npm install",
"type": "shell",
"domId": "page-index",
"id": "action_1",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
},
"actionId": "0",
"artifactId": "artifact_1",
@@ -15,8 +21,14 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (0) > onActionOpen 1`] = `
{
"action": {
"action": "add",
"content": "",
"type": "shell",
"domId": "page-index",
"id": "action_1",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
},
"actionId": "0",
"artifactId": "artifact_1",
@@ -28,8 +40,8 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -37,16 +49,22 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (1) > onActionClose 1`] = `
{
"action": {
"action": "add",
"content": "npm install",
"type": "shell",
"domId": "page-index",
"id": "action_1",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
},
"actionId": "0",
"artifactId": "artifact_1",
@@ -57,10 +75,14 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (1) > onActionClose 2`] = `
{
"action": {
"content": "some content
",
"filePath": "index.js",
"type": "file",
"action": "update",
"content": "some content",
"domId": "section-1",
"id": "action_2",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
},
"actionId": "1",
"artifactId": "artifact_1",
@@ -71,8 +93,14 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (1) > onActionOpen 1`] = `
{
"action": {
"action": "add",
"content": "",
"type": "shell",
"domId": "page-index",
"id": "action_1",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
},
"actionId": "0",
"artifactId": "artifact_1",
@@ -83,9 +111,14 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (1) > onActionOpen 2`] = `
{
"action": {
"action": "update",
"content": "",
"filePath": "index.js",
"type": "file",
"domId": "section-1",
"id": "action_2",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
},
"actionId": "1",
"artifactId": "artifact_1",
@@ -97,8 +130,8 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -106,8 +139,8 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -115,8 +148,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -124,8 +157,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -133,8 +166,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": "bundled",
}
`;
@@ -142,8 +175,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": "bundled",
}
`;
@@ -151,8 +184,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -160,8 +193,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -169,8 +202,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -178,8 +211,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -187,8 +220,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -196,26 +229,26 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
exports[`StreamingMessageParser > valid artifacts without actions > should correctly parse chunks and strip out uPage artifacts (5) > onArtifactClose 1`] = `
{
"id": "artifact_1",
"id": "artif name=",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
exports[`StreamingMessageParser > valid artifacts without actions > should correctly parse chunks and strip out uPage artifacts (5) > onArtifactOpen 1`] = `
{
"id": "artifact_1",
"id": "artif name=",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -223,8 +256,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;
@@ -232,7 +265,7 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{
"id": "artifact_1",
"messageId": "message_1",
"name": "index",
"title": "Some title",
"type": undefined,
}
`;

View File

@@ -36,10 +36,10 @@ describe('StreamingMessageParser', () => {
describe('invalid or incomplete artifacts', () => {
it.each<[string | string[], ExpectedResult | string]>([
['Foo bar <u', 'Foo bar '],
['Foo bar <uP', 'Foo bar <uP'],
['Foo bar <uP', 'Foo bar '],
['Foo bar <uPa', 'Foo bar '],
['Foo bar <uPag', 'Foo bar '],
['Foo bar <uPage', 'Foo bar <uPage'],
['Foo bar <uPage', 'Foo bar '],
['Foo bar <uPageA', 'Foo bar '],
['Foo bar <uPageArtifacs></uPageArtifact>', 'Foo bar <uPageArtifacs></uPageArtifact>'],
['Before <PageArtfiact>foo</uPageArtifact> After', 'Before <PageArtfiact>foo</uPageArtifact> After'],
@@ -140,14 +140,14 @@ describe('StreamingMessageParser', () => {
describe('valid artifacts with actions', () => {
it.each<[string | string[], ExpectedResult | string]>([
[
'Before <uPageArtifact title="Some title" id="artifact_1" name="index"><uPageAction type="shell">npm install</uPageAction></uPageArtifact> After',
'Before <uPageArtifact title="Some title" id="artifact_1" name="index"><uPageAction id="action_1" pageName="index" action="add" domId="page-index" rootDomId="section-1">npm install</uPageAction></uPageArtifact> After',
{
output: 'Before After',
callbacks: { onArtifactOpen: 1, onArtifactClose: 1, onActionOpen: 1, onActionClose: 1 },
},
],
[
'Before <uPageArtifact title="Some title" id="artifact_1"><uPageAction type="shell">npm install</uPageAction><uPageAction type="file" filePath="index.js">some content</uPageAction></uPageArtifact> After',
'Before <uPageArtifact title="Some title" id="artifact_1" name="index"><uPageAction id="action_1" pageName="index" action="add" domId="page-index" rootDomId="section-1">npm install</uPageAction><uPageAction id="action_2" pageName="index" action="update" domId="section-1" rootDomId="section-1">some content</uPageAction></uPageArtifact> After',
{
output: 'Before After',
callbacks: { onArtifactOpen: 1, onArtifactClose: 1, onActionOpen: 2, onActionClose: 2 },