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> </h3>
<Tabs value={activePlatform} onValueChange={handleTabChange} className="mb-4"> <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) => { {Object.values(DeploymentPlatformEnum).map((platform, index) => {
const count = stats.sitesByPlatform?.[platform] || 0; const count = stats.sitesByPlatform?.[platform] || 0;
const isLoading = isPlatformLoading(platform); const isLoading = isPlatformLoading(platform);
@@ -364,8 +364,8 @@ export const DeploymentRecordsDialog = memo(({ isOpen, onClose }: DeploymentReco
className={classNames( className={classNames(
'flex-1 relative py-2 px-3 transition-all duration-200', 'flex-1 relative py-2 px-3 transition-all duration-200',
isActive isActive
? 'bg-white dark:bg-gray-800 shadow-sm rounded-md text-upage-elements-textPrimary font-medium' ? 'bg-white dark:bg-gray-800 shadow-sm rounded-md text-upage-elements-textPrimary dark:text-upage-elements-textPrimary font-medium'
: 'hover:bg-gray-100/70 dark:hover:bg-gray-800/30 text-upage-elements-textSecondary', : '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"> <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', 'bg-upage-elements-button-secondary-background',
'hover:bg-upage-elements-button-secondary-backgroundHover', 'hover:bg-upage-elements-button-secondary-backgroundHover',
'disabled:opacity-50 disabled:cursor-not-allowed', 'disabled:opacity-50 disabled:cursor-not-allowed',
'text-upage-elements-textPrimary',
)} )}
> >
{isConnecting ? ( {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', 'bg-upage-elements-button-secondary-background',
'hover:bg-upage-elements-button-secondary-backgroundHover', 'hover:bg-upage-elements-button-secondary-backgroundHover',
'disabled:opacity-50 disabled:cursor-not-allowed', 'disabled:opacity-50 disabled:cursor-not-allowed',
'text-upage-elements-textPrimary',
)} )}
> >
{isConnecting ? ( {isConnecting ? (

View File

@@ -125,7 +125,7 @@ interface FullscreenButtonProps {
const FullscreenButton = memo(({ onClick, isFullscreen }: FullscreenButtonProps) => ( const FullscreenButton = memo(({ onClick, isFullscreen }: FullscreenButtonProps) => (
<button <button
onClick={onClick} 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'} title={isFullscreen ? 'Exit Fullscreen' : 'Enter Fullscreen'}
> >
<div className={isFullscreen ? 'i-ph:corners-in' : 'i-ph:corners-out'} /> <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 <NodeButton
className={classNames('group', { className={classNames('group', {
'text-upage-elements-item-contentDefault': !selected, 'text-upage-elements-item-contentDefault dark:bg-gray-800': !selected,
'text-upage-elements-item-contentAccent': selected, 'text-upage-elements-item-contentAccent dark:bg-gray-800': selected,
})} })}
iconClasses={classNames('i-ph:file-duotone scale-98', { iconClasses={classNames('i-ph:file-duotone scale-98', {
'group-hover:text-upage-elements-item-contentActive': !selected, '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`] = ` exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (0) > onActionClose 1`] = `
{ {
"action": { "action": {
"action": "add",
"content": "npm install", "content": "npm install",
"type": "shell", "domId": "page-index",
"id": "action_1",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
}, },
"actionId": "0", "actionId": "0",
"artifactId": "artifact_1", "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`] = ` exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (0) > onActionOpen 1`] = `
{ {
"action": { "action": {
"action": "add",
"content": "", "content": "",
"type": "shell", "domId": "page-index",
"id": "action_1",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
}, },
"actionId": "0", "actionId": "0",
"artifactId": "artifact_1", "artifactId": "artifact_1",
@@ -28,8 +40,8 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -37,16 +49,22 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (1) > onActionClose 1`] = ` exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (1) > onActionClose 1`] = `
{ {
"action": { "action": {
"action": "add",
"content": "npm install", "content": "npm install",
"type": "shell", "domId": "page-index",
"id": "action_1",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
}, },
"actionId": "0", "actionId": "0",
"artifactId": "artifact_1", "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`] = ` exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (1) > onActionClose 2`] = `
{ {
"action": { "action": {
"content": "some content "action": "update",
", "content": "some content",
"filePath": "index.js", "domId": "section-1",
"type": "file", "id": "action_2",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
}, },
"actionId": "1", "actionId": "1",
"artifactId": "artifact_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`] = ` exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (1) > onActionOpen 1`] = `
{ {
"action": { "action": {
"action": "add",
"content": "", "content": "",
"type": "shell", "domId": "page-index",
"id": "action_1",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
}, },
"actionId": "0", "actionId": "0",
"artifactId": "artifact_1", "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`] = ` exports[`StreamingMessageParser > valid artifacts with actions > should correctly parse chunks and strip out uPage artifacts (1) > onActionOpen 2`] = `
{ {
"action": { "action": {
"action": "update",
"content": "", "content": "",
"filePath": "index.js", "domId": "section-1",
"type": "file", "id": "action_2",
"pageName": "index",
"rootDomId": "section-1",
"sort": undefined,
"validRootDomId": true,
}, },
"actionId": "1", "actionId": "1",
"artifactId": "artifact_1", "artifactId": "artifact_1",
@@ -97,8 +130,8 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -106,8 +139,8 @@ exports[`StreamingMessageParser > valid artifacts with actions > should correctl
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -115,8 +148,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -124,8 +157,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -133,8 +166,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": "bundled",
} }
`; `;
@@ -142,8 +175,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": "bundled",
} }
`; `;
@@ -151,8 +184,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -160,8 +193,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -169,8 +202,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -178,8 +211,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -187,8 +220,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -196,26 +229,26 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
exports[`StreamingMessageParser > valid artifacts without actions > should correctly parse chunks and strip out uPage artifacts (5) > onArtifactClose 1`] = ` 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", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
exports[`StreamingMessageParser > valid artifacts without actions > should correctly parse chunks and strip out uPage artifacts (5) > onArtifactOpen 1`] = ` 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", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -223,8 +256,8 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;
@@ -232,7 +265,7 @@ exports[`StreamingMessageParser > valid artifacts without actions > should corre
{ {
"id": "artifact_1", "id": "artifact_1",
"messageId": "message_1", "messageId": "message_1",
"name": "index",
"title": "Some title", "title": "Some title",
"type": undefined,
} }
`; `;

View File

@@ -36,10 +36,10 @@ describe('StreamingMessageParser', () => {
describe('invalid or incomplete artifacts', () => { describe('invalid or incomplete artifacts', () => {
it.each<[string | string[], ExpectedResult | string]>([ it.each<[string | string[], ExpectedResult | string]>([
['Foo bar <u', 'Foo bar '], ['Foo bar <u', 'Foo bar '],
['Foo bar <uP', 'Foo bar <uP'], ['Foo bar <uP', 'Foo bar '],
['Foo bar <uPa', 'Foo bar '], ['Foo bar <uPa', 'Foo bar '],
['Foo bar <uPag', '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 <uPageA', 'Foo bar '],
['Foo bar <uPageArtifacs></uPageArtifact>', 'Foo bar <uPageArtifacs></uPageArtifact>'], ['Foo bar <uPageArtifacs></uPageArtifact>', 'Foo bar <uPageArtifacs></uPageArtifact>'],
['Before <PageArtfiact>foo</uPageArtifact> After', 'Before <PageArtfiact>foo</uPageArtifact> After'], ['Before <PageArtfiact>foo</uPageArtifact> After', 'Before <PageArtfiact>foo</uPageArtifact> After'],
@@ -140,14 +140,14 @@ describe('StreamingMessageParser', () => {
describe('valid artifacts with actions', () => { describe('valid artifacts with actions', () => {
it.each<[string | string[], ExpectedResult | string]>([ 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', output: 'Before After',
callbacks: { onArtifactOpen: 1, onArtifactClose: 1, onActionOpen: 1, onActionClose: 1 }, 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', output: 'Before After',
callbacks: { onArtifactOpen: 1, onArtifactClose: 1, onActionOpen: 2, onActionClose: 2 }, callbacks: { onArtifactOpen: 1, onArtifactClose: 1, onActionOpen: 2, onActionClose: 2 },