@puredesktop/puredesktop-ui-bridge 2.1.4 → 2.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +19 -1
- package/src/agents/runtime/mapAgentSnapshot.test.ts +1 -3
- package/src/agents/runtime/mapAgentSnapshot.ts +8 -4
- package/src/agents/runtime/mergeUsageTurn.ts +1 -2
- package/src/agents/runtime/pendingToolCalls.test.ts +1 -3
- package/src/agents/runtime/unresolvedToolCalls.ts +1 -2
- package/src/bridge/agentModelTiers.ts +9 -4
- package/src/bridge/agents.mjs +3 -1
- package/src/bridge/calendarDraftIntent.ts +12 -4
- package/src/bridge/calendarInviteIntent.ts +18 -5
- package/src/bridge/client.mjs +45 -45
- package/src/bridge/dialog.d.mts +8 -8
- package/src/bridge/dialog.mjs +40 -40
- package/src/bridge/dialog.test.ts +73 -73
- package/src/bridge/fs.d.mts +41 -41
- package/src/bridge/fs.mjs +56 -56
- package/src/bridge/fs.test.ts +83 -83
- package/src/bridge/fs.ts +28 -28
- package/src/bridge/googleAuth.ts +3 -1
- package/src/bridge/methods.d.mts +6 -0
- package/src/bridge/methods.mjs +7 -0
- package/src/bridge/network.d.mts +17 -17
- package/src/bridge/network.mjs +22 -22
- package/src/bridge/pureRender/base.css +324 -76
- package/src/bridge/pureRender/compiler.ts +1 -1
- package/src/bridge/pureRender/document.test.ts +2 -2
- package/src/bridge/pureRender/extraction.test.ts +24 -12
- package/src/bridge/pureRender/extraction.ts +10 -7
- package/src/bridge/pureRender/flow.css +17 -3
- package/src/bridge/pureRender/normalize.ts +28 -26
- package/src/bridge/pureRender/presets.ts +7 -7
- package/src/bridge/pureRender/profiles/book.css +122 -19
- package/src/bridge/pureRender/profiles/manuscript.css +57 -11
- package/src/bridge/pureRender/profiles/writer.css +48 -10
- package/src/bridge/pureRender/reset.css +20 -5
- package/src/bridge/pureRender/theme.ts +37 -9
- package/src/bridge/pureRender/tokens/default.css +45 -33
- package/src/bridge/react/usePlatformAgentRunLiveState.tsx +4 -1
- package/src/bridge/react/usePlatformAgentSessionDrive.tsx +13 -4
- package/src/bridge/screenAnnotation.test.ts +4 -1
- package/src/bridge/screenAnnotation.ts +6 -2
- package/src/bridge/storage.d.mts +26 -24
- package/src/bridge/storage.mjs +18 -18
- package/src/bridge/storage.test.ts +45 -45
- package/src/bridge/types.ts +62 -58
- package/src/bridge/window.d.mts +3 -1
- package/src/bridge/workspace.d.mts +7 -0
- package/src/bridge/workspace.mjs +8 -0
- package/src/bridge/workspace.ts +1 -0
- package/src/commitments/commitments.test.ts +10 -3
- package/src/commitments/commitments.ts +18 -4
- package/src/components/accessibility/AccessibilityReviewDialog.tsx +7 -2
- package/src/components/accessibility/accessibilityReview.test.ts +11 -4
- package/src/components/accessibility/accessibilityReview.ts +18 -10
- package/src/components/agent-feedback/ScreenAnnotationAgentDialog.tsx +9 -2
- package/src/components/agents/AgentContextUsageBar.tsx +5 -3
- package/src/components/agents/AgentDrawerPanel.test.tsx +15 -3
- package/src/components/agents/AgentMessageBubble.tsx +1 -3
- package/src/components/agents/AgentQuestionPromptList.tsx +3 -3
- package/src/components/agents/AgentToolApprovalActions.tsx +1 -3
- package/src/components/agents/agentPanelStyles.ts +1 -3
- package/src/components/agents/agentToolDisplay.ts +4 -1
- package/src/components/assets/asset-library/AssetLibraryDialog.tsx +2 -0
- package/src/components/assets/asset-library/AssetLibraryWorkspace.tsx +2 -0
- package/src/components/assets/asset-library/detail/AssetLibraryDetailHeader.test.tsx +40 -0
- package/src/components/assets/asset-library/detail/AssetLibraryDetailHeader.tsx +7 -3
- package/src/components/assets/asset-library/detail/AssetLibraryDetailPreview.tsx +8 -8
- package/src/components/assets/asset-library/hooks/useAssetLibraryDialog.ts +13 -2
- package/src/components/assets/asset-library/hooks/useAssetLibraryMutations.ts +18 -1
- package/src/components/assets/asset-library/sidebar/AssetLibraryListRow.tsx +9 -6
- package/src/components/assets/asset-library/sidebar/AssetLibrarySidebarToolbar.tsx +3 -1
- package/src/components/assets/asset-library/sidebar/AssetListThumbnail.tsx +1 -1
- package/src/components/assets/asset-library/types.ts +6 -0
- package/src/components/chrome/OverlayActionCapsule.tsx +2 -2
- package/src/components/chrome/PanelTabStrip.tsx +3 -2
- package/src/components/chrome/PureAppWordmark.tsx +15 -15
- package/src/components/chrome/WorkspaceTabStrip.tsx +19 -14
- package/src/components/chrome/documentChromePolicy.test.ts +34 -0
- package/src/components/chrome/documentChromePolicy.ts +15 -0
- package/src/components/chrome/index.ts +4 -0
- package/src/components/chrome/workspaceTabTypes.ts +2 -0
- package/src/components/common/buttons/Button.tsx +60 -10
- package/src/components/common/buttons/ChoiceChip.tsx +2 -2
- package/src/components/common/buttons/IconButton.tsx +26 -0
- package/src/components/common/buttons/SegmentedControl.tsx +23 -7
- package/src/components/common/canvas/CanvasElementFrame.tsx +37 -28
- package/src/components/common/canvas/canvasGeometry.test.ts +4 -5
- package/src/components/common/canvas/canvasGeometry.ts +1 -4
- package/src/components/common/canvas/useCanvasDragResize.test.tsx +10 -10
- package/src/components/common/canvas/useCanvasDragResize.ts +1 -4
- package/src/components/common/cards/OpenReviewCard.tsx +6 -6
- package/src/components/common/chat/ChatBox.test.tsx +9 -1
- package/src/components/common/chat/ChatBox.tsx +3 -4
- package/src/components/common/chat/ChatMarkdown.tsx +1 -1
- package/src/components/common/chat/ChatModelMenu.tsx +1 -1
- package/src/components/common/chat/ChatThinkingIndicator.tsx +1 -1
- package/src/components/common/chat/ChatThread.tsx +2 -1
- package/src/components/common/chat/ChatToolRow.tsx +2 -2
- package/src/components/common/chat/ChatUserBubble.tsx +1 -1
- package/src/components/common/connections/ConnectionSetup.tsx +6 -6
- package/src/components/common/containers/AppFrame.test.tsx +37 -36
- package/src/components/common/containers/AppFrame.tsx +15 -0
- package/src/components/common/containers/AppHeader.tsx +6 -3
- package/src/components/common/containers/SurfacePanel.tsx +1 -0
- package/src/components/common/containers/useOpacityPresence.ts +10 -15
- package/src/components/common/context/ContextSelector.tsx +10 -10
- package/src/components/common/desk/CreationDesk.tsx +23 -11
- package/src/components/common/desk/DailyBrief.tsx +18 -7
- package/src/components/common/desk/DeskCard.tsx +11 -6
- package/src/components/common/dropdown/MenuButtonDropdown.tsx +58 -6
- package/src/components/common/dropdown/MenuDropdownItem.tsx +23 -3
- package/src/components/common/dropdown/MenuPanel.tsx +8 -8
- package/src/components/common/dropdown/SelectMenu.tsx +8 -3
- package/src/components/common/dropdown/menuTypes.ts +2 -1
- package/src/components/common/evidence/StructuredEvidenceView.tsx +9 -5
- package/src/components/common/feedback/Badge.tsx +19 -5
- package/src/components/common/feedback/CapabilityPills.tsx +1 -1
- package/src/components/common/feedback/InfoHint.tsx +2 -2
- package/src/components/common/feedback/PlatformChip.tsx +9 -9
- package/src/components/common/feedback/QuietPill.tsx +5 -8
- package/src/components/common/feedback/WorkProgressPanel.tsx +14 -14
- package/src/components/common/files/FileTable.tsx +8 -2
- package/src/components/common/inputs/Checkbox.tsx +1 -1
- package/src/components/common/inputs/EditableSecretField.tsx +1 -3
- package/src/components/common/inputs/InlineComposer.tsx +2 -2
- package/src/components/common/inputs/PaletteDropdown.tsx +33 -23
- package/src/components/common/inputs/SurfacePalettePicker.tsx +1 -1
- package/src/components/common/inputs/ToggleSwitch.tsx +2 -2
- package/src/components/common/inputs/WorkspacePicker.tsx +3 -3
- package/src/components/common/lists/listRowStyles.ts +4 -2
- package/src/components/common/lists/quiet-ledger/index.ts +1 -4
- package/src/components/common/lists/reorderable/DragHandle.tsx +1 -1
- package/src/components/common/lists/reorderable/ReorderableSections.tsx +2 -1
- package/src/components/common/media/ImageReferencePicker.tsx +22 -14
- package/src/components/common/narrative/NarrativeMention.tsx +15 -9
- package/src/components/common/navigation/NavigationCardRow.tsx +2 -2
- package/src/components/common/navigation/UnderlineTabs.tsx +1 -0
- package/src/components/common/overlays/Modal.tsx +52 -3
- package/src/components/common/overlays/ObjectActionStrip.tsx +2 -2
- package/src/components/common/people/AutoUpdateReviewList.tsx +2 -2
- package/src/components/common/people/EntityList.tsx +7 -3
- package/src/components/common/people/EntityPortrait.tsx +6 -1
- package/src/components/common/people/LinkedDossierList.tsx +3 -1
- package/src/components/common/people/RelationshipMap.tsx +3 -9
- package/src/components/common/research/EvidenceDossier.tsx +24 -20
- package/src/components/common/tiles/CatalogCard.tsx +1 -1
- package/src/components/credentials/CredentialsPanel.tsx +2 -6
- package/src/components/data/DataChart.tsx +119 -94
- package/src/components/data/dataTable.ts +4 -1
- package/src/components/editor/DocumentAppChrome.tsx +172 -0
- package/src/components/editor/EditorCommentPromptDialog.tsx +1 -1
- package/src/components/editor/EditorLinkPromptDialog.tsx +1 -1
- package/src/components/print-design/PrintDesignPanel.test.tsx +8 -6
- package/src/components/print-design/PrintDesignPanel.tsx +18 -25
- package/src/components/proofing/PagedProofDialog.tsx +17 -4
- package/src/editor/EditorViewModeToggle.tsx +6 -2
- package/src/editor/index.ts +6 -0
- package/src/theme/ThemeProvider.tsx +5 -2
- package/src/theme/appAccents.test.ts +51 -0
- package/src/theme/appAccents.ts +151 -88
- package/src/theme/appIdentityCss.mjs +256 -0
- package/src/theme/appIdentityCss.ts +256 -0
- package/src/theme/composePlatformTheme.test.ts +43 -14
- package/src/theme/platformFont.d.mts +2 -2
- package/src/theme/platformFont.mjs +4 -3
- package/src/theme/reportsShellChromeSelectors.ts +14 -132
- package/src/theme/surfaceCss.mjs +37 -0
- package/src/theme/surfaceCss.ts +37 -0
- package/src/theme/surfacePalettes.ts +120 -79
- package/src/theme/surfaceRoleSelectors.ts +135 -71
- package/src/theme/themes/dark.ts +44 -43
- package/src/theme/themes/light.ts +40 -38
- package/src/theme/themes/palette.ts +32 -30
- package/src/theme/themes/shared.ts +17 -17
- package/src/theme/utils/GlobalStyles.ts +10 -6
- package/src/theme/utils/appFrameDocumentStyles.mjs +6 -1
- package/src/theme/utils/cssVariables.ts +169 -0
- package/src/writing/DraftAssistantDialog.tsx +85 -85
- package/src/writing/WritingStyleManager.tsx +6 -3
- package/src/writing/draftTextWithAgent.ts +47 -50
- package/src/writing/styleStore.ts +4 -3
- package/src/writing/writingStyle.test.ts +8 -2
- package/src/writing/writingStyle.ts +19 -8
|
@@ -1,113 +1,177 @@
|
|
|
1
1
|
import { css, type RuleSet } from 'styled-components'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Surface role aliases for app chrome (`--{prefix}-ink`, etc.).
|
|
5
5
|
* Responds to `data-platform-*` on an ancestor (AppFrame / documentElement).
|
|
6
6
|
* Does not touch `--platform-colors-*` — the shell bridge owns those on `:root`.
|
|
7
|
+
* Palette ids are still accepted, but each role is derived from the shared
|
|
8
|
+
* factory/platform variables so apps cannot drift into an older color system.
|
|
7
9
|
*/
|
|
8
10
|
export function surfaceRoleSelectors(prefix: string): RuleSet {
|
|
9
11
|
const p = prefix
|
|
10
12
|
return css`
|
|
11
13
|
:not([data-platform-surface-palette]) &,
|
|
12
14
|
[data-platform-surface-palette='ink'] & {
|
|
13
|
-
--${p}-ink:
|
|
14
|
-
--${p}-muted:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
--${p}-
|
|
19
|
-
--${p}-
|
|
15
|
+
--${p}-ink: var(--factory-color-ink, var(--platform-colors-text));
|
|
16
|
+
--${p}-muted: var(
|
|
17
|
+
--factory-color-muted,
|
|
18
|
+
var(--platform-colors-text-secondary)
|
|
19
|
+
);
|
|
20
|
+
--${p}-faint: var(--platform-colors-text-disabled);
|
|
21
|
+
--${p}-accent: var(--factory-color-ink, var(--platform-colors-text));
|
|
22
|
+
--${p}-bg: var(--factory-color-ground, var(--platform-colors-bg));
|
|
23
|
+
--${p}-desk: var(--factory-color-ground, var(--platform-colors-bg));
|
|
24
|
+
--${p}-paper: var(--factory-color-paper, var(--platform-colors-surface));
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
[data-platform-surface-palette='sepia'] & {
|
|
23
|
-
--${p}-ink:
|
|
24
|
-
--${p}-muted:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
--${p}-
|
|
29
|
-
--${p}-
|
|
28
|
+
--${p}-ink: var(--factory-color-ink, var(--platform-colors-text));
|
|
29
|
+
--${p}-muted: var(
|
|
30
|
+
--factory-color-muted,
|
|
31
|
+
var(--platform-colors-text-secondary)
|
|
32
|
+
);
|
|
33
|
+
--${p}-faint: var(--platform-colors-text-disabled);
|
|
34
|
+
--${p}-accent: var(--platform-colors-border-strong);
|
|
35
|
+
--${p}-bg: color-mix(
|
|
36
|
+
in srgb,
|
|
37
|
+
var(--factory-color-ground, var(--platform-colors-bg)) 92%,
|
|
38
|
+
var(--factory-color-ink, var(--platform-colors-text))
|
|
39
|
+
);
|
|
40
|
+
--${p}-desk: var(--${p}-bg);
|
|
41
|
+
--${p}-paper: var(--factory-color-paper, var(--platform-colors-surface));
|
|
30
42
|
}
|
|
31
43
|
|
|
32
44
|
[data-platform-surface-palette='slate'] & {
|
|
33
|
-
--${p}-ink:
|
|
34
|
-
--${p}-muted:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
--${p}-
|
|
39
|
-
--${p}-
|
|
45
|
+
--${p}-ink: var(--factory-color-ink, var(--platform-colors-text));
|
|
46
|
+
--${p}-muted: var(
|
|
47
|
+
--factory-color-muted,
|
|
48
|
+
var(--platform-colors-text-secondary)
|
|
49
|
+
);
|
|
50
|
+
--${p}-faint: var(--platform-colors-text-disabled);
|
|
51
|
+
--${p}-accent: var(--platform-colors-border-strong);
|
|
52
|
+
--${p}-bg: color-mix(
|
|
53
|
+
in srgb,
|
|
54
|
+
var(--factory-color-ground, var(--platform-colors-bg)) 96%,
|
|
55
|
+
var(--platform-colors-border-strong)
|
|
56
|
+
);
|
|
57
|
+
--${p}-desk: var(--${p}-bg);
|
|
58
|
+
--${p}-paper: var(--factory-color-paper, var(--platform-colors-surface));
|
|
40
59
|
}
|
|
41
60
|
|
|
42
61
|
[data-platform-surface-palette='forest'] & {
|
|
43
|
-
--${p}-ink:
|
|
44
|
-
--${p}-muted:
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
--${p}-
|
|
49
|
-
--${p}-
|
|
62
|
+
--${p}-ink: var(--factory-color-ink, var(--platform-colors-text));
|
|
63
|
+
--${p}-muted: var(
|
|
64
|
+
--factory-color-muted,
|
|
65
|
+
var(--platform-colors-text-secondary)
|
|
66
|
+
);
|
|
67
|
+
--${p}-faint: var(--platform-colors-text-disabled);
|
|
68
|
+
--${p}-accent: var(--factory-color-positive, var(--platform-colors-accent));
|
|
69
|
+
--${p}-bg: color-mix(
|
|
70
|
+
in srgb,
|
|
71
|
+
var(--factory-color-ground, var(--platform-colors-bg)) 94%,
|
|
72
|
+
var(--factory-color-positive, var(--platform-colors-accent))
|
|
73
|
+
);
|
|
74
|
+
--${p}-desk: var(--${p}-bg);
|
|
75
|
+
--${p}-paper: var(--factory-color-paper, var(--platform-colors-surface));
|
|
50
76
|
}
|
|
51
77
|
|
|
52
78
|
[data-platform-surface-palette='plum'] & {
|
|
53
|
-
--${p}-ink:
|
|
54
|
-
--${p}-muted:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
--${p}-
|
|
59
|
-
--${p}-
|
|
79
|
+
--${p}-ink: var(--factory-color-ink, var(--platform-colors-text));
|
|
80
|
+
--${p}-muted: var(
|
|
81
|
+
--factory-color-muted,
|
|
82
|
+
var(--platform-colors-text-secondary)
|
|
83
|
+
);
|
|
84
|
+
--${p}-faint: var(--platform-colors-text-disabled);
|
|
85
|
+
--${p}-accent: var(--platform-colors-border-strong);
|
|
86
|
+
--${p}-bg: color-mix(
|
|
87
|
+
in srgb,
|
|
88
|
+
var(--factory-color-ground, var(--platform-colors-bg)) 95%,
|
|
89
|
+
var(--platform-colors-border-strong)
|
|
90
|
+
);
|
|
91
|
+
--${p}-desk: var(--${p}-bg);
|
|
92
|
+
--${p}-paper: var(--factory-color-paper, var(--platform-colors-surface));
|
|
60
93
|
}
|
|
61
94
|
|
|
62
95
|
[data-platform-theme='dark']:not([data-platform-surface-palette]) &,
|
|
63
96
|
[data-platform-theme='dark'][data-platform-surface-palette='ink'] & {
|
|
64
|
-
--${p}-ink:
|
|
65
|
-
--${p}-muted:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
--${p}-
|
|
70
|
-
--${p}-
|
|
97
|
+
--${p}-ink: var(--factory-color-ink, var(--platform-colors-text));
|
|
98
|
+
--${p}-muted: var(
|
|
99
|
+
--factory-color-muted,
|
|
100
|
+
var(--platform-colors-text-secondary)
|
|
101
|
+
);
|
|
102
|
+
--${p}-faint: var(--platform-colors-text-disabled);
|
|
103
|
+
--${p}-accent: var(--factory-color-ink, var(--platform-colors-text));
|
|
104
|
+
--${p}-bg: var(--factory-color-ground, var(--platform-colors-bg));
|
|
105
|
+
--${p}-desk: var(--factory-color-ground, var(--platform-colors-bg));
|
|
106
|
+
--${p}-paper: var(--factory-color-paper, var(--platform-colors-surface));
|
|
71
107
|
}
|
|
72
108
|
|
|
73
109
|
[data-platform-theme='dark'][data-platform-surface-palette='sepia'] & {
|
|
74
|
-
--${p}-ink:
|
|
75
|
-
--${p}-muted:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
--${p}-
|
|
80
|
-
--${p}-
|
|
110
|
+
--${p}-ink: var(--factory-color-ink, var(--platform-colors-text));
|
|
111
|
+
--${p}-muted: var(
|
|
112
|
+
--factory-color-muted,
|
|
113
|
+
var(--platform-colors-text-secondary)
|
|
114
|
+
);
|
|
115
|
+
--${p}-faint: var(--platform-colors-text-disabled);
|
|
116
|
+
--${p}-accent: var(--platform-colors-border-strong);
|
|
117
|
+
--${p}-bg: color-mix(
|
|
118
|
+
in srgb,
|
|
119
|
+
var(--factory-color-ground, var(--platform-colors-bg)) 88%,
|
|
120
|
+
var(--factory-color-ink, var(--platform-colors-text))
|
|
121
|
+
);
|
|
122
|
+
--${p}-desk: var(--${p}-bg);
|
|
123
|
+
--${p}-paper: var(--factory-color-paper, var(--platform-colors-surface));
|
|
81
124
|
}
|
|
82
125
|
|
|
83
126
|
[data-platform-theme='dark'][data-platform-surface-palette='slate'] & {
|
|
84
|
-
--${p}-ink:
|
|
85
|
-
--${p}-muted:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
--${p}-
|
|
90
|
-
--${p}-
|
|
127
|
+
--${p}-ink: var(--factory-color-ink, var(--platform-colors-text));
|
|
128
|
+
--${p}-muted: var(
|
|
129
|
+
--factory-color-muted,
|
|
130
|
+
var(--platform-colors-text-secondary)
|
|
131
|
+
);
|
|
132
|
+
--${p}-faint: var(--platform-colors-text-disabled);
|
|
133
|
+
--${p}-accent: var(--platform-colors-border-strong);
|
|
134
|
+
--${p}-bg: color-mix(
|
|
135
|
+
in srgb,
|
|
136
|
+
var(--factory-color-ground, var(--platform-colors-bg)) 92%,
|
|
137
|
+
var(--platform-colors-border-strong)
|
|
138
|
+
);
|
|
139
|
+
--${p}-desk: var(--${p}-bg);
|
|
140
|
+
--${p}-paper: var(--factory-color-paper, var(--platform-colors-surface));
|
|
91
141
|
}
|
|
92
142
|
|
|
93
143
|
[data-platform-theme='dark'][data-platform-surface-palette='forest'] & {
|
|
94
|
-
--${p}-ink:
|
|
95
|
-
--${p}-muted:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
--${p}-
|
|
100
|
-
--${p}-
|
|
144
|
+
--${p}-ink: var(--factory-color-ink, var(--platform-colors-text));
|
|
145
|
+
--${p}-muted: var(
|
|
146
|
+
--factory-color-muted,
|
|
147
|
+
var(--platform-colors-text-secondary)
|
|
148
|
+
);
|
|
149
|
+
--${p}-faint: var(--platform-colors-text-disabled);
|
|
150
|
+
--${p}-accent: var(--factory-color-positive, var(--platform-colors-accent));
|
|
151
|
+
--${p}-bg: color-mix(
|
|
152
|
+
in srgb,
|
|
153
|
+
var(--factory-color-ground, var(--platform-colors-bg)) 90%,
|
|
154
|
+
var(--factory-color-positive, var(--platform-colors-accent))
|
|
155
|
+
);
|
|
156
|
+
--${p}-desk: var(--${p}-bg);
|
|
157
|
+
--${p}-paper: var(--factory-color-paper, var(--platform-colors-surface));
|
|
101
158
|
}
|
|
102
159
|
|
|
103
160
|
[data-platform-theme='dark'][data-platform-surface-palette='plum'] & {
|
|
104
|
-
--${p}-ink:
|
|
105
|
-
--${p}-muted:
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
--${p}-
|
|
110
|
-
--${p}-
|
|
161
|
+
--${p}-ink: var(--factory-color-ink, var(--platform-colors-text));
|
|
162
|
+
--${p}-muted: var(
|
|
163
|
+
--factory-color-muted,
|
|
164
|
+
var(--platform-colors-text-secondary)
|
|
165
|
+
);
|
|
166
|
+
--${p}-faint: var(--platform-colors-text-disabled);
|
|
167
|
+
--${p}-accent: var(--platform-colors-border-strong);
|
|
168
|
+
--${p}-bg: color-mix(
|
|
169
|
+
in srgb,
|
|
170
|
+
var(--factory-color-ground, var(--platform-colors-bg)) 91%,
|
|
171
|
+
var(--platform-colors-border-strong)
|
|
172
|
+
);
|
|
173
|
+
--${p}-desk: var(--${p}-bg);
|
|
174
|
+
--${p}-paper: var(--factory-color-paper, var(--platform-colors-surface));
|
|
111
175
|
}
|
|
112
176
|
`
|
|
113
177
|
}
|
package/src/theme/themes/dark.ts
CHANGED
|
@@ -1,59 +1,60 @@
|
|
|
1
1
|
import { PlatformTheme } from '../tokens.js'
|
|
2
|
-
import { neutral
|
|
2
|
+
import { neutral } from './palette.js'
|
|
3
3
|
import { createPlatformTheme } from './shared.js'
|
|
4
4
|
|
|
5
|
-
const accent = neutral[
|
|
6
|
-
const danger =
|
|
5
|
+
const accent = neutral[150]
|
|
6
|
+
const danger = '#e0796e'
|
|
7
|
+
const positive = '#57b988'
|
|
7
8
|
|
|
8
9
|
export const darkTheme: PlatformTheme = createPlatformTheme(
|
|
9
10
|
'dark',
|
|
10
11
|
{
|
|
11
|
-
bg:
|
|
12
|
-
surface:
|
|
13
|
-
surfaceHover:
|
|
14
|
-
surfaceActive:
|
|
15
|
-
elevated:
|
|
16
|
-
text:
|
|
17
|
-
textSecondary:
|
|
18
|
-
textDisabled:
|
|
19
|
-
textInverse:
|
|
12
|
+
bg: '#202024',
|
|
13
|
+
surface: '#26262a',
|
|
14
|
+
surfaceHover: '#2c2c30',
|
|
15
|
+
surfaceActive: '#161619',
|
|
16
|
+
elevated: '#26262a',
|
|
17
|
+
text: '#ececef',
|
|
18
|
+
textSecondary: '#c9c9cf',
|
|
19
|
+
textDisabled: '#6e6e74',
|
|
20
|
+
textInverse: '#1b1b1e',
|
|
20
21
|
accent,
|
|
21
|
-
accentHover: neutral[
|
|
22
|
-
accentMuted:
|
|
23
|
-
border:
|
|
24
|
-
borderStrong:
|
|
25
|
-
divider:
|
|
22
|
+
accentHover: neutral[100],
|
|
23
|
+
accentMuted: '#313135',
|
|
24
|
+
border: '#313135',
|
|
25
|
+
borderStrong: '#43434a',
|
|
26
|
+
divider: '#313135',
|
|
26
27
|
danger,
|
|
27
28
|
textDanger: danger,
|
|
28
|
-
warning:
|
|
29
|
-
success:
|
|
30
|
-
info:
|
|
31
|
-
semanticBlue: '#
|
|
32
|
-
semanticBlueText: '#
|
|
33
|
-
semanticBlueMuted: '#
|
|
34
|
-
semanticBlueBorder: '#
|
|
35
|
-
semanticOrange: '#
|
|
36
|
-
semanticOrangeText: '#
|
|
37
|
-
semanticOrangeMuted: '#
|
|
38
|
-
semanticOrangeBorder: '#
|
|
39
|
-
semanticGreen:
|
|
40
|
-
semanticGreenText: '#
|
|
41
|
-
semanticGreenMuted: '#
|
|
42
|
-
semanticGreenBorder: '#
|
|
43
|
-
semanticRed:
|
|
44
|
-
semanticRedText: '#
|
|
45
|
-
semanticRedMuted: '#
|
|
46
|
-
semanticRedBorder: '#
|
|
29
|
+
warning: '#e0b257',
|
|
30
|
+
success: positive,
|
|
31
|
+
info: '#6fa0e0',
|
|
32
|
+
semanticBlue: '#6fa0e0',
|
|
33
|
+
semanticBlueText: '#a8c8f0',
|
|
34
|
+
semanticBlueMuted: '#1c2a3c',
|
|
35
|
+
semanticBlueBorder: '#365373',
|
|
36
|
+
semanticOrange: '#e0b257',
|
|
37
|
+
semanticOrangeText: '#f0ce8a',
|
|
38
|
+
semanticOrangeMuted: '#3a3322',
|
|
39
|
+
semanticOrangeBorder: '#6d5b2f',
|
|
40
|
+
semanticGreen: positive,
|
|
41
|
+
semanticGreenText: '#8fe0b6',
|
|
42
|
+
semanticGreenMuted: '#18342a',
|
|
43
|
+
semanticGreenBorder: '#32684d',
|
|
44
|
+
semanticRed: danger,
|
|
45
|
+
semanticRedText: '#f0a89e',
|
|
46
|
+
semanticRedMuted: '#3a211d',
|
|
47
|
+
semanticRedBorder: '#753f38',
|
|
47
48
|
focus: accent,
|
|
48
|
-
selection:
|
|
49
|
+
selection: '#313135',
|
|
49
50
|
/** Embedded plugin iframe canvas — must stay dark in dark mode */
|
|
50
|
-
appViewport:
|
|
51
|
-
chromeTitlebar:
|
|
52
|
-
chromeTabStrip:
|
|
51
|
+
appViewport: '#202024',
|
|
52
|
+
chromeTitlebar: '#202024',
|
|
53
|
+
chromeTabStrip: '#1b1b1e',
|
|
53
54
|
},
|
|
54
55
|
{
|
|
55
|
-
sm: '
|
|
56
|
-
md: '0
|
|
57
|
-
lg: '0
|
|
56
|
+
sm: 'none',
|
|
57
|
+
md: '0 8px 24px rgba(0, 0, 0, 0.3)',
|
|
58
|
+
lg: '0 18px 44px rgba(0, 0, 0, 0.38)',
|
|
58
59
|
},
|
|
59
60
|
)
|
|
@@ -2,59 +2,61 @@ import { PlatformTheme } from '../tokens.js'
|
|
|
2
2
|
import { neutral, status } from './palette.js'
|
|
3
3
|
import { createPlatformTheme } from './shared.js'
|
|
4
4
|
|
|
5
|
-
const accent = neutral[
|
|
6
|
-
const
|
|
5
|
+
const accent = neutral[900]
|
|
6
|
+
const positive = status.success.light
|
|
7
|
+
const positiveText = '#16683f'
|
|
8
|
+
const positiveBg = '#eef7f1'
|
|
9
|
+
const borderStrong = neutral[175]
|
|
7
10
|
const danger = status.danger.light
|
|
8
|
-
const surface = neutral[0]
|
|
9
11
|
|
|
10
12
|
export const lightTheme: PlatformTheme = createPlatformTheme(
|
|
11
13
|
'light',
|
|
12
14
|
{
|
|
13
|
-
bg: neutral[
|
|
14
|
-
surface,
|
|
15
|
-
surfaceHover: neutral[
|
|
16
|
-
surfaceActive: neutral[
|
|
17
|
-
elevated:
|
|
15
|
+
bg: neutral[25],
|
|
16
|
+
surface: neutral[50],
|
|
17
|
+
surfaceHover: neutral[100],
|
|
18
|
+
surfaceActive: neutral[100],
|
|
19
|
+
elevated: neutral[0],
|
|
18
20
|
text: neutral[900],
|
|
19
|
-
textSecondary: neutral[
|
|
20
|
-
textDisabled:
|
|
21
|
-
textInverse: neutral[
|
|
21
|
+
textSecondary: neutral[700],
|
|
22
|
+
textDisabled: neutral[500],
|
|
23
|
+
textInverse: neutral[0],
|
|
22
24
|
accent,
|
|
23
|
-
accentHover: neutral[
|
|
25
|
+
accentHover: neutral[900],
|
|
24
26
|
accentMuted: neutral[100],
|
|
25
|
-
border: neutral[
|
|
27
|
+
border: neutral[150],
|
|
26
28
|
borderStrong,
|
|
27
|
-
divider: neutral[
|
|
29
|
+
divider: neutral[150],
|
|
28
30
|
danger,
|
|
29
31
|
textDanger: danger,
|
|
30
32
|
warning: status.warning.light,
|
|
31
|
-
success:
|
|
32
|
-
info:
|
|
33
|
-
semanticBlue:
|
|
34
|
-
semanticBlueText: '#
|
|
35
|
-
semanticBlueMuted: '#
|
|
36
|
-
semanticBlueBorder: '#
|
|
37
|
-
semanticOrange:
|
|
38
|
-
semanticOrangeText: '#
|
|
39
|
-
semanticOrangeMuted: '#
|
|
40
|
-
semanticOrangeBorder: '#
|
|
41
|
-
semanticGreen:
|
|
42
|
-
semanticGreenText:
|
|
43
|
-
semanticGreenMuted:
|
|
44
|
-
semanticGreenBorder:
|
|
45
|
-
semanticRed:
|
|
46
|
-
semanticRedText: '#
|
|
47
|
-
semanticRedMuted: '#
|
|
48
|
-
semanticRedBorder: '#
|
|
33
|
+
success: positive,
|
|
34
|
+
info: status.info.light,
|
|
35
|
+
semanticBlue: status.info.light,
|
|
36
|
+
semanticBlueText: '#244f87',
|
|
37
|
+
semanticBlueMuted: '#e8f0fb',
|
|
38
|
+
semanticBlueBorder: '#b9cbe4',
|
|
39
|
+
semanticOrange: status.warning.light,
|
|
40
|
+
semanticOrangeText: '#7a5114',
|
|
41
|
+
semanticOrangeMuted: '#f3e5c8',
|
|
42
|
+
semanticOrangeBorder: '#e3c98f',
|
|
43
|
+
semanticGreen: positive,
|
|
44
|
+
semanticGreenText: positiveText,
|
|
45
|
+
semanticGreenMuted: positiveBg,
|
|
46
|
+
semanticGreenBorder: positive,
|
|
47
|
+
semanticRed: status.danger.light,
|
|
48
|
+
semanticRedText: '#8a2d24',
|
|
49
|
+
semanticRedMuted: '#f4dfdc',
|
|
50
|
+
semanticRedBorder: '#dfb7b1',
|
|
49
51
|
focus: accent,
|
|
50
|
-
selection: neutral[
|
|
52
|
+
selection: neutral[100],
|
|
51
53
|
appViewport: neutral[25],
|
|
52
|
-
chromeTitlebar: neutral[
|
|
53
|
-
chromeTabStrip: neutral[
|
|
54
|
+
chromeTitlebar: neutral[25],
|
|
55
|
+
chromeTabStrip: neutral[75],
|
|
54
56
|
},
|
|
55
57
|
{
|
|
56
|
-
sm: '
|
|
57
|
-
md: '0
|
|
58
|
-
lg: '0
|
|
58
|
+
sm: 'none',
|
|
59
|
+
md: '0 8px 24px rgb(18 18 22 / 0.08)',
|
|
60
|
+
lg: '0 18px 48px rgb(18 18 22 / 0.13)',
|
|
59
61
|
},
|
|
60
62
|
)
|
|
@@ -1,44 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Primitive palette
|
|
3
|
-
*
|
|
2
|
+
* Primitive palette from the Pure design system.
|
|
3
|
+
* Neutral surface ramp, near-black ink, and semantic color used only for meaning.
|
|
4
4
|
*/
|
|
5
5
|
export const neutral = {
|
|
6
|
-
/** Light end — subtle white matrix for layered surfaces */
|
|
7
6
|
0: '#ffffff',
|
|
8
|
-
25: '#
|
|
9
|
-
50: '#
|
|
10
|
-
75: '#
|
|
11
|
-
100: '#
|
|
12
|
-
125: '#
|
|
13
|
-
150: '#
|
|
14
|
-
175: '#
|
|
15
|
-
200: '#
|
|
16
|
-
300: '#
|
|
17
|
-
400: '#
|
|
18
|
-
500: '#
|
|
19
|
-
600: '#
|
|
20
|
-
700: '#
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
900: '#1c1c1c',
|
|
7
|
+
25: '#fbfbfc',
|
|
8
|
+
50: '#f8f8fa',
|
|
9
|
+
75: '#ececef',
|
|
10
|
+
100: '#eaeaee',
|
|
11
|
+
125: '#e8e8ec',
|
|
12
|
+
150: '#e5e5e9',
|
|
13
|
+
175: '#dadade',
|
|
14
|
+
200: '#c9c9cf',
|
|
15
|
+
300: '#b6b6bd',
|
|
16
|
+
400: '#aaaab1',
|
|
17
|
+
500: '#9a9aa0',
|
|
18
|
+
600: '#6a6a70',
|
|
19
|
+
700: '#3a3a3e',
|
|
20
|
+
775: '#313135',
|
|
21
|
+
800: '#2a2a2f',
|
|
22
|
+
825: '#26262a',
|
|
23
|
+
850: '#202024',
|
|
24
|
+
875: '#1b1b1e',
|
|
25
|
+
900: '#1b1b1e',
|
|
28
26
|
} as const
|
|
29
27
|
|
|
30
|
-
/**
|
|
28
|
+
/** Restrained semantic status colors. */
|
|
31
29
|
export const status = {
|
|
32
30
|
danger: {
|
|
33
|
-
light: '#
|
|
34
|
-
dark: '#
|
|
31
|
+
light: '#b23a2e',
|
|
32
|
+
dark: '#d9817d',
|
|
35
33
|
},
|
|
36
34
|
warning: {
|
|
37
|
-
light: '#
|
|
38
|
-
dark: '#
|
|
35
|
+
light: '#c98a2b',
|
|
36
|
+
dark: '#e5ad3e',
|
|
39
37
|
},
|
|
40
38
|
success: {
|
|
41
|
-
light: '#
|
|
42
|
-
dark: '#
|
|
39
|
+
light: '#1f8a55',
|
|
40
|
+
dark: '#58bd80',
|
|
41
|
+
},
|
|
42
|
+
info: {
|
|
43
|
+
light: '#3b6fb0',
|
|
44
|
+
dark: '#8eb4e8',
|
|
43
45
|
},
|
|
44
46
|
} as const
|
|
@@ -10,15 +10,15 @@ export type PlatformThemeShared = Pick<
|
|
|
10
10
|
export const platformThemeShared = {
|
|
11
11
|
typography: {
|
|
12
12
|
fontFamily: PLATFORM_FONT_FAMILY,
|
|
13
|
-
fontFamilyContent:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
fontSizeBase: '
|
|
17
|
-
fontSizeXs: '
|
|
18
|
-
fontSizeSm: '
|
|
19
|
-
fontSizeLg: '
|
|
20
|
-
fontSizeXl: '
|
|
21
|
-
lineHeightBase: 1.
|
|
13
|
+
fontFamilyContent: "'Source Serif 4', Georgia, serif",
|
|
14
|
+
fontFamilyMono:
|
|
15
|
+
"'JetBrains Mono', ui-monospace, monospace",
|
|
16
|
+
fontSizeBase: '14.5px',
|
|
17
|
+
fontSizeXs: '11px',
|
|
18
|
+
fontSizeSm: '13px',
|
|
19
|
+
fontSizeLg: '17px',
|
|
20
|
+
fontSizeXl: '24px',
|
|
21
|
+
lineHeightBase: 1.6,
|
|
22
22
|
lineHeightTight: 1.25,
|
|
23
23
|
fontWeightNormal: 400,
|
|
24
24
|
fontWeightMedium: 500,
|
|
@@ -27,16 +27,16 @@ export const platformThemeShared = {
|
|
|
27
27
|
spacing: {
|
|
28
28
|
xs: '4px',
|
|
29
29
|
sm: '8px',
|
|
30
|
-
md: '
|
|
31
|
-
lg: '
|
|
32
|
-
xl: '
|
|
33
|
-
xxl: '
|
|
30
|
+
md: '12px',
|
|
31
|
+
lg: '16px',
|
|
32
|
+
xl: '24px',
|
|
33
|
+
xxl: '32px',
|
|
34
34
|
},
|
|
35
35
|
radius: {
|
|
36
|
-
sm: '
|
|
37
|
-
md: '
|
|
38
|
-
lg: '
|
|
39
|
-
full: '
|
|
36
|
+
sm: '0px',
|
|
37
|
+
md: '0px',
|
|
38
|
+
lg: '0px',
|
|
39
|
+
full: '999px',
|
|
40
40
|
},
|
|
41
41
|
transition: {
|
|
42
42
|
fast: '120ms ease',
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createGlobalStyle } from 'styled-components'
|
|
2
2
|
import { themeToCssVars } from './cssVariables.js'
|
|
3
|
+
import { appIdentityCss } from '../appIdentityCss.js'
|
|
4
|
+
import { surfaceCss } from '../surfaceCss.js'
|
|
3
5
|
|
|
4
6
|
export const GlobalStyles = createGlobalStyle`
|
|
5
|
-
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Source+Sans+3:ital,wght@0,200..900;1,200..900&display=swap');
|
|
6
|
-
|
|
7
7
|
*,
|
|
8
8
|
*::before,
|
|
9
9
|
*::after {
|
|
@@ -22,6 +22,9 @@ export const GlobalStyles = createGlobalStyle`
|
|
|
22
22
|
${({ theme }) => themeToCssVars(theme)}
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
${appIdentityCss}
|
|
26
|
+
${surfaceCss}
|
|
27
|
+
|
|
25
28
|
body {
|
|
26
29
|
font-family: var(--platform-typography-font-family);
|
|
27
30
|
font-size: var(--platform-typography-font-size-base);
|
|
@@ -35,10 +38,11 @@ export const GlobalStyles = createGlobalStyle`
|
|
|
35
38
|
|
|
36
39
|
::selection {
|
|
37
40
|
background: var(--platform-colors-selection);
|
|
41
|
+
color: var(--platform-colors-text);
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
:focus-visible {
|
|
41
|
-
outline:
|
|
45
|
+
outline: 1px solid var(--platform-colors-focus);
|
|
42
46
|
outline-offset: 2px;
|
|
43
47
|
}
|
|
44
48
|
|
|
@@ -69,8 +73,8 @@ export const GlobalStyles = createGlobalStyle`
|
|
|
69
73
|
}
|
|
70
74
|
|
|
71
75
|
*::-webkit-scrollbar {
|
|
72
|
-
width:
|
|
73
|
-
height:
|
|
76
|
+
width: 10px;
|
|
77
|
+
height: 10px;
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
*::-webkit-scrollbar-track {
|
|
@@ -79,7 +83,7 @@ export const GlobalStyles = createGlobalStyle`
|
|
|
79
83
|
|
|
80
84
|
*::-webkit-scrollbar-thumb {
|
|
81
85
|
background-color: var(--platform-colors-border);
|
|
82
|
-
border-radius:
|
|
86
|
+
border-radius: 0;
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
*::-webkit-scrollbar-thumb:hover {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/** Injected once per iframe document by AppFrame / applyThemeFromHost. */
|
|
2
2
|
import { injectPlatformFontStylesheet } from '../platformFont.mjs'
|
|
3
|
+
import { appIdentityCss } from '../appIdentityCss.mjs'
|
|
4
|
+
import { surfaceCss } from '../surfaceCss.mjs'
|
|
3
5
|
|
|
4
6
|
export const PLATFORM_APP_FRAME_BASE_STYLE_ID = 'platform-app-frame-base'
|
|
5
7
|
|
|
@@ -66,12 +68,15 @@ export const APP_FRAME_DOCUMENT_STYLES_CSS = `
|
|
|
66
68
|
|
|
67
69
|
*::-webkit-scrollbar-thumb {
|
|
68
70
|
background-color: var(--platform-colors-border);
|
|
69
|
-
border-radius:
|
|
71
|
+
border-radius: 0;
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
*::-webkit-scrollbar-thumb:hover {
|
|
73
75
|
background-color: var(--platform-colors-border-strong);
|
|
74
76
|
}
|
|
77
|
+
|
|
78
|
+
${appIdentityCss}
|
|
79
|
+
${surfaceCss}
|
|
75
80
|
`
|
|
76
81
|
|
|
77
82
|
/**
|