@puredesktop/puredesktop-ui-bridge 2.1.4 → 2.1.6
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 +27 -27
- package/src/bridge/storage.mjs +18 -18
- package/src/bridge/storage.test.ts +49 -49
- 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 -1
- 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
|
@@ -223,9 +223,14 @@ const StyledItem = styled.button<{
|
|
|
223
223
|
min-height: var(--platform-select-menu-item-height, 30px);
|
|
224
224
|
padding: var(--platform-select-menu-item-padding, 5px 8px);
|
|
225
225
|
border: none;
|
|
226
|
-
border-radius: var(
|
|
226
|
+
border-radius: var(
|
|
227
|
+
--platform-select-menu-item-radius,
|
|
228
|
+
var(--platform-radius-sm)
|
|
229
|
+
);
|
|
227
230
|
background: ${({ $selected }) =>
|
|
228
|
-
$selected
|
|
231
|
+
$selected
|
|
232
|
+
? 'var(--platform-colors-surface-hover, #f0ede7)'
|
|
233
|
+
: 'transparent'};
|
|
229
234
|
color: ${({ $tone }) =>
|
|
230
235
|
$tone === 'danger'
|
|
231
236
|
? 'var(--platform-colors-text-danger, #b42318)'
|
|
@@ -241,6 +246,6 @@ const StyledItem = styled.button<{
|
|
|
241
246
|
opacity: ${({ disabled }) => (disabled ? 0.45 : 1)};
|
|
242
247
|
|
|
243
248
|
&:hover:not(:disabled) {
|
|
244
|
-
background: var(--platform-colors-surface-hover, #
|
|
249
|
+
background: var(--platform-colors-surface-hover, #f0ede7);
|
|
245
250
|
}
|
|
246
251
|
`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RefObject } from 'react'
|
|
1
|
+
import type { ReactNode, RefObject } from 'react'
|
|
2
2
|
import type { MenuWidthMode } from './menuViewportPosition.js'
|
|
3
3
|
import type { MenuPlacement } from './useMenuAnchorPosition.js'
|
|
4
4
|
|
|
@@ -10,6 +10,7 @@ export interface MenuActionItem {
|
|
|
10
10
|
type?: 'action'
|
|
11
11
|
id: string
|
|
12
12
|
label: string
|
|
13
|
+
icon?: ReactNode
|
|
13
14
|
disabled?: boolean
|
|
14
15
|
tone?: MenuActionTone
|
|
15
16
|
/** Display only until shell wires shortcuts */
|
|
@@ -72,7 +72,7 @@ const MetricCard = styled.div`
|
|
|
72
72
|
min-width: 0;
|
|
73
73
|
padding: 10px 12px;
|
|
74
74
|
border: 1px solid currentColor;
|
|
75
|
-
border-radius:
|
|
75
|
+
border-radius: var(--platform-radius-sm, 0px);
|
|
76
76
|
background: color-mix(in srgb, currentColor 7%, transparent);
|
|
77
77
|
`
|
|
78
78
|
|
|
@@ -106,7 +106,7 @@ const ChartRow = styled.div`
|
|
|
106
106
|
const ChartTrack = styled.div`
|
|
107
107
|
height: 8px;
|
|
108
108
|
overflow: hidden;
|
|
109
|
-
border-radius:
|
|
109
|
+
border-radius: var(--platform-radius-sm);
|
|
110
110
|
background: color-mix(in srgb, currentColor 16%, transparent);
|
|
111
111
|
`
|
|
112
112
|
|
|
@@ -150,7 +150,7 @@ const ClaimProofCell = styled.div`
|
|
|
150
150
|
min-width: 0;
|
|
151
151
|
padding: 10px;
|
|
152
152
|
border: 1px solid color-mix(in srgb, currentColor 20%, transparent);
|
|
153
|
-
border-radius:
|
|
153
|
+
border-radius: var(--platform-radius-sm, 0px);
|
|
154
154
|
background: color-mix(in srgb, currentColor 6%, transparent);
|
|
155
155
|
font-size: 0.56em;
|
|
156
156
|
line-height: 1.2;
|
|
@@ -169,8 +169,12 @@ const FigureCallout = styled.div<{
|
|
|
169
169
|
min-height: ${({ $h }) => `${$h * 100}%`};
|
|
170
170
|
padding: 5px 7px;
|
|
171
171
|
border: 1px solid currentColor;
|
|
172
|
-
border-radius:
|
|
173
|
-
background: color-mix(
|
|
172
|
+
border-radius: var(--platform-radius-sm, 0px);
|
|
173
|
+
background: color-mix(
|
|
174
|
+
in srgb,
|
|
175
|
+
var(--slides-panel, var(--platform-colors-surface, #ffffff)) 82%,
|
|
176
|
+
transparent
|
|
177
|
+
);
|
|
174
178
|
color: inherit;
|
|
175
179
|
font-size: 10px;
|
|
176
180
|
font-weight: 720;
|
|
@@ -11,16 +11,26 @@ export interface BadgeProps {
|
|
|
11
11
|
//#region styled-components
|
|
12
12
|
|
|
13
13
|
const StyledBadge = styled.span<{ $tone: BadgeTone }>`
|
|
14
|
+
display: inline-flex;
|
|
15
|
+
align-items: center;
|
|
16
|
+
min-height: 22px;
|
|
14
17
|
padding: 2px var(--platform-spacing-sm);
|
|
15
|
-
border
|
|
16
|
-
|
|
18
|
+
border: 1px solid
|
|
19
|
+
${({ $tone }) =>
|
|
20
|
+
$tone === 'accent'
|
|
21
|
+
? 'var(--platform-colors-semantic-green-border)'
|
|
22
|
+
: 'var(--platform-colors-border)'};
|
|
23
|
+
border-radius: var(--platform-radius-full, 999px);
|
|
24
|
+
font-family: var(--platform-typography-font-family-mono);
|
|
25
|
+
font-size: var(--platform-typography-font-size-xs);
|
|
26
|
+
letter-spacing: 0.06em;
|
|
17
27
|
background: ${({ $tone }) =>
|
|
18
28
|
$tone === 'accent'
|
|
19
|
-
? 'var(--platform-colors-
|
|
29
|
+
? 'var(--platform-colors-semantic-green-muted)'
|
|
20
30
|
: 'var(--platform-colors-surface-hover)'};
|
|
21
31
|
color: ${({ $tone }) =>
|
|
22
32
|
$tone === 'accent'
|
|
23
|
-
? '
|
|
33
|
+
? 'var(--platform-colors-semantic-green-text)'
|
|
24
34
|
: 'var(--platform-colors-text-secondary)'};
|
|
25
35
|
`
|
|
26
36
|
|
|
@@ -31,5 +41,9 @@ export function Badge({
|
|
|
31
41
|
className,
|
|
32
42
|
children,
|
|
33
43
|
}: BadgeProps): React.ReactElement {
|
|
34
|
-
return
|
|
44
|
+
return (
|
|
45
|
+
<StyledBadge className={className} $tone={tone}>
|
|
46
|
+
{children}
|
|
47
|
+
</StyledBadge>
|
|
48
|
+
)
|
|
35
49
|
}
|
|
@@ -15,7 +15,7 @@ const StyledList = styled.div`
|
|
|
15
15
|
|
|
16
16
|
const StyledPill = styled.span`
|
|
17
17
|
padding: 2px var(--platform-spacing-sm);
|
|
18
|
-
border-radius: var(--platform-radius-
|
|
18
|
+
border-radius: var(--platform-radius-sm);
|
|
19
19
|
background: var(--platform-colors-surface-active);
|
|
20
20
|
color: var(--platform-colors-text-secondary);
|
|
21
21
|
font-size: var(--platform-typography-font-size-sm);
|
|
@@ -23,7 +23,7 @@ const StyledWrap = styled.span`
|
|
|
23
23
|
const StyledButton = styled.button`
|
|
24
24
|
width: 26px;
|
|
25
25
|
height: 26px;
|
|
26
|
-
border: 1px solid var(--platform-colors-border, #
|
|
26
|
+
border: 1px solid var(--platform-colors-border, #e7e4dd);
|
|
27
27
|
border-radius: var(--platform-radius-full, 999px);
|
|
28
28
|
background: var(--platform-colors-surface, #ffffff);
|
|
29
29
|
color: var(--platform-colors-text-secondary, #6d7680);
|
|
@@ -44,7 +44,7 @@ const StyledPopover = styled.div<{ $align: 'left' | 'right' }>`
|
|
|
44
44
|
background: var(--platform-colors-elevated, #ffffff);
|
|
45
45
|
box-shadow: var(--platform-shadow-md, 0 18px 44px rgb(38 46 55 / 16%));
|
|
46
46
|
padding: 12px 14px;
|
|
47
|
-
color: var(--platform-colors-text, #
|
|
47
|
+
color: var(--platform-colors-text, #1c1a17);
|
|
48
48
|
opacity: 0;
|
|
49
49
|
pointer-events: none;
|
|
50
50
|
transform: translateY(-4px);
|
|
@@ -42,14 +42,14 @@ const toneMap: Record<
|
|
|
42
42
|
border: 'var(--platform-colors-semantic-red-border, #ebcac8)',
|
|
43
43
|
},
|
|
44
44
|
neutral: {
|
|
45
|
-
bg: 'var(--platform-colors-surface-hover, #
|
|
46
|
-
fg: 'var(--platform-colors-text-secondary, #
|
|
47
|
-
border: 'var(--platform-colors-border, #
|
|
45
|
+
bg: 'var(--platform-colors-surface-hover, #f0ede7)',
|
|
46
|
+
fg: 'var(--platform-colors-text-secondary, #6b665e)',
|
|
47
|
+
border: 'var(--platform-colors-border, #e7e4dd)',
|
|
48
48
|
},
|
|
49
49
|
meta: {
|
|
50
|
-
bg: '#
|
|
51
|
-
fg: 'var(--platform-colors-text-secondary, #
|
|
52
|
-
border: 'var(--platform-colors-border-soft, #
|
|
50
|
+
bg: 'var(--platform-colors-surface-subtle, #fbfbfc)',
|
|
51
|
+
fg: 'var(--platform-colors-text-secondary, #6b665e)',
|
|
52
|
+
border: 'var(--platform-colors-border-soft, #f0ede7)',
|
|
53
53
|
},
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -61,7 +61,7 @@ const StyledChip = styled.span<{ $tone: PlatformChipTone }>`
|
|
|
61
61
|
min-height: 20px;
|
|
62
62
|
padding: 0 8px;
|
|
63
63
|
border: 1px solid ${({ $tone }) => toneMap[$tone].border};
|
|
64
|
-
border-radius:
|
|
64
|
+
border-radius: var(--platform-radius-full, 999px);
|
|
65
65
|
background: ${({ $tone }) => toneMap[$tone].bg};
|
|
66
66
|
color: ${({ $tone }) => toneMap[$tone].fg};
|
|
67
67
|
font-size: var(--platform-typography-font-size-sm);
|
|
@@ -76,7 +76,7 @@ const StyledChip = styled.span<{ $tone: PlatformChipTone }>`
|
|
|
76
76
|
`
|
|
77
77
|
|
|
78
78
|
const StyledMetaLabel = styled.span`
|
|
79
|
-
color: #
|
|
79
|
+
color: var(--platform-colors-text-tertiary, #8f897f);
|
|
80
80
|
font-size: 10px;
|
|
81
81
|
font-weight: var(--platform-typography-font-weight-bold);
|
|
82
82
|
letter-spacing: 0.04em;
|
|
@@ -84,7 +84,7 @@ const StyledMetaLabel = styled.span`
|
|
|
84
84
|
`
|
|
85
85
|
|
|
86
86
|
const StyledMetaValue = styled.span`
|
|
87
|
-
color: #
|
|
87
|
+
color: var(--platform-colors-text-secondary, #6b665e);
|
|
88
88
|
`
|
|
89
89
|
|
|
90
90
|
//#endregion
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import type { ReactNode } from 'react'
|
|
2
2
|
import { styled } from 'styled-components'
|
|
3
3
|
|
|
4
|
-
export type QuietPillTone =
|
|
5
|
-
| 'accent'
|
|
6
|
-
| 'danger'
|
|
7
|
-
| 'gold'
|
|
8
|
-
| 'neutral'
|
|
9
|
-
| 'success'
|
|
4
|
+
export type QuietPillTone = 'accent' | 'danger' | 'gold' | 'neutral' | 'success'
|
|
10
5
|
|
|
11
6
|
export interface QuietPillProps {
|
|
12
7
|
tone?: QuietPillTone
|
|
@@ -34,7 +29,7 @@ const StyledPill = styled.span<{ $tone: QuietPillTone }>`
|
|
|
34
29
|
: $tone === 'success'
|
|
35
30
|
? 'rgb(from var(--platform-colors-success) r g b / 42%)'
|
|
36
31
|
: 'var(--platform-colors-border)'};
|
|
37
|
-
border-radius: var(--platform-radius-full);
|
|
32
|
+
border-radius: var(--platform-radius-full, 999px);
|
|
38
33
|
background: ${({ $tone }) =>
|
|
39
34
|
$tone === 'accent'
|
|
40
35
|
? 'rgb(from var(--quiet-accent, var(--platform-colors-accent)) r g b / 10%)'
|
|
@@ -52,7 +47,9 @@ const StyledPill = styled.span<{ $tone: QuietPillTone }>`
|
|
|
52
47
|
? 'var(--platform-colors-success)'
|
|
53
48
|
: 'var(--platform-colors-text-secondary)'};
|
|
54
49
|
font-size: var(--platform-typography-font-size-xs);
|
|
55
|
-
font-
|
|
50
|
+
font-family: var(--platform-typography-font-family-mono);
|
|
51
|
+
font-weight: var(--platform-typography-font-weight-medium);
|
|
52
|
+
letter-spacing: 0.06em;
|
|
56
53
|
transition: border-color var(--platform-transition-base),
|
|
57
54
|
background var(--platform-transition-base),
|
|
58
55
|
color var(--platform-transition-base),
|
|
@@ -15,9 +15,9 @@ export interface WorkProgressPanelProps {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
const Panel = styled.div`
|
|
18
|
-
border: 1px solid
|
|
19
|
-
border-radius:
|
|
20
|
-
background:
|
|
18
|
+
border: 1px solid var(--platform-colors-border);
|
|
19
|
+
border-radius: var(--platform-radius-sm);
|
|
20
|
+
background: var(--platform-colors-surface);
|
|
21
21
|
padding: 22px;
|
|
22
22
|
display: grid;
|
|
23
23
|
gap: 18px;
|
|
@@ -31,7 +31,7 @@ const Top = styled.div`
|
|
|
31
31
|
`
|
|
32
32
|
|
|
33
33
|
const Title = styled.div`
|
|
34
|
-
color:
|
|
34
|
+
color: var(--platform-colors-text);
|
|
35
35
|
font-size: 18px;
|
|
36
36
|
font-weight: 800;
|
|
37
37
|
line-height: 1.2;
|
|
@@ -39,7 +39,7 @@ const Title = styled.div`
|
|
|
39
39
|
|
|
40
40
|
const Note = styled.div`
|
|
41
41
|
margin-top: 5px;
|
|
42
|
-
color:
|
|
42
|
+
color: var(--platform-colors-text-secondary);
|
|
43
43
|
font-size: 13px;
|
|
44
44
|
line-height: 1.45;
|
|
45
45
|
`
|
|
@@ -48,9 +48,9 @@ const Pulse = styled.div`
|
|
|
48
48
|
width: 42px;
|
|
49
49
|
height: 42px;
|
|
50
50
|
flex: 0 0 auto;
|
|
51
|
-
border-radius:
|
|
52
|
-
border: 2px solid
|
|
53
|
-
border-top-color:
|
|
51
|
+
border-radius: var(--platform-radius-sm);
|
|
52
|
+
border: 2px solid var(--platform-colors-border);
|
|
53
|
+
border-top-color: var(--platform-colors-accent);
|
|
54
54
|
animation: work-progress-spin 1.1s linear infinite;
|
|
55
55
|
|
|
56
56
|
@keyframes work-progress-spin {
|
|
@@ -74,9 +74,9 @@ const Metrics = styled.div<{ $count: number }>`
|
|
|
74
74
|
`
|
|
75
75
|
|
|
76
76
|
const Metric = styled.div`
|
|
77
|
-
border-top: 1px solid
|
|
77
|
+
border-top: 1px solid var(--platform-colors-border);
|
|
78
78
|
padding-top: 9px;
|
|
79
|
-
color:
|
|
79
|
+
color: var(--platform-colors-text-tertiary);
|
|
80
80
|
font-size: 11px;
|
|
81
81
|
font-weight: 800;
|
|
82
82
|
letter-spacing: 0.05em;
|
|
@@ -84,7 +84,7 @@ const Metric = styled.div`
|
|
|
84
84
|
|
|
85
85
|
strong {
|
|
86
86
|
display: block;
|
|
87
|
-
color:
|
|
87
|
+
color: var(--platform-colors-text);
|
|
88
88
|
font-size: 22px;
|
|
89
89
|
line-height: 1;
|
|
90
90
|
letter-spacing: 0;
|
|
@@ -94,7 +94,7 @@ const Metric = styled.div`
|
|
|
94
94
|
const Activity = styled.div`
|
|
95
95
|
display: grid;
|
|
96
96
|
gap: 7px;
|
|
97
|
-
color:
|
|
97
|
+
color: var(--platform-colors-text-secondary);
|
|
98
98
|
font-size: 12px;
|
|
99
99
|
line-height: 1.35;
|
|
100
100
|
`
|
|
@@ -109,8 +109,8 @@ const ActivityItem = styled.div`
|
|
|
109
109
|
content: '';
|
|
110
110
|
width: 6px;
|
|
111
111
|
height: 6px;
|
|
112
|
-
border-radius:
|
|
113
|
-
background:
|
|
112
|
+
border-radius: 0;
|
|
113
|
+
background: var(--platform-colors-accent);
|
|
114
114
|
transform: translateY(-1px);
|
|
115
115
|
}
|
|
116
116
|
`
|
|
@@ -29,7 +29,7 @@ export interface FileTableProps {
|
|
|
29
29
|
const StyledFileTable = styled.div`
|
|
30
30
|
min-width: 0;
|
|
31
31
|
border: 1px solid var(--platform-colors-border);
|
|
32
|
-
border-radius:
|
|
32
|
+
border-radius: var(--platform-radius-sm);
|
|
33
33
|
background: var(--platform-colors-surface);
|
|
34
34
|
overflow: hidden;
|
|
35
35
|
`
|
|
@@ -172,7 +172,13 @@ function formatBytes(byteLength?: number): string {
|
|
|
172
172
|
|
|
173
173
|
function formatDate(value?: string): string {
|
|
174
174
|
if (!value) return '—'
|
|
175
|
-
|
|
175
|
+
const date = new Date(value)
|
|
176
|
+
if (Number.isNaN(date.getTime())) return '—'
|
|
177
|
+
return new Intl.DateTimeFormat('en-US', {
|
|
178
|
+
month: 'short',
|
|
179
|
+
day: 'numeric',
|
|
180
|
+
year: 'numeric',
|
|
181
|
+
}).format(date)
|
|
176
182
|
}
|
|
177
183
|
|
|
178
184
|
export function FileTable({
|
|
@@ -245,9 +245,7 @@ export function EditableSecretField({
|
|
|
245
245
|
size="sm"
|
|
246
246
|
variant="dangerHover"
|
|
247
247
|
disabled={locked}
|
|
248
|
-
aria-label={
|
|
249
|
-
ariaLabel ? `Remove ${ariaLabel}` : 'Remove key'
|
|
250
|
-
}
|
|
248
|
+
aria-label={ariaLabel ? `Remove ${ariaLabel}` : 'Remove key'}
|
|
251
249
|
onClick={handleDelete}
|
|
252
250
|
>
|
|
253
251
|
<PlatformIcon icon={Trash2} size={14} strokeWidth={1.9} />
|
|
@@ -106,7 +106,7 @@ export const InlineSuggestions = styled.div`
|
|
|
106
106
|
right: 0;
|
|
107
107
|
overflow: hidden;
|
|
108
108
|
border: 1px solid var(--platform-colors-divider);
|
|
109
|
-
border-radius:
|
|
109
|
+
border-radius: var(--platform-radius-sm);
|
|
110
110
|
background: var(--platform-colors-surface);
|
|
111
111
|
box-shadow: var(--platform-shadow-lg, 0 12px 24px rgb(0 0 0 / 14%));
|
|
112
112
|
`
|
|
@@ -172,7 +172,7 @@ const ComposerInput = styled.input`
|
|
|
172
172
|
`
|
|
173
173
|
|
|
174
174
|
const GhostAction = styled(CleanButton)`
|
|
175
|
-
border-radius:
|
|
175
|
+
border-radius: var(--platform-radius-sm);
|
|
176
176
|
color: var(--platform-colors-text-secondary);
|
|
177
177
|
font-family: var(--platform-typography-font-family, inherit);
|
|
178
178
|
font-size: var(--platform-typography-font-size-xs, 11px);
|
|
@@ -62,12 +62,17 @@ const StyledTrigger = styled.button<{ $variant: 'field' | 'circle' }>`
|
|
|
62
62
|
? '28px'
|
|
63
63
|
: 'var(--platform-palette-dropdown-height, 34px)'};
|
|
64
64
|
padding: ${({ $variant }) => ($variant === 'circle' ? '0' : '0 10px')};
|
|
65
|
-
border: 1px solid
|
|
65
|
+
border: 1px solid
|
|
66
|
+
${({ $variant }) =>
|
|
67
|
+
$variant === 'circle' ? 'transparent' : 'var(--platform-colors-border)'};
|
|
66
68
|
border-radius: ${({ $variant }) =>
|
|
67
69
|
$variant === 'circle'
|
|
68
|
-
? '
|
|
70
|
+
? 'var(--platform-radius-sm)'
|
|
69
71
|
: 'var(--platform-palette-dropdown-radius, 10px)'};
|
|
70
|
-
background:
|
|
72
|
+
background: ${({ $variant }) =>
|
|
73
|
+
$variant === 'circle'
|
|
74
|
+
? 'transparent'
|
|
75
|
+
: 'var(--platform-colors-surface, #ffffff)'};
|
|
71
76
|
color: var(--platform-colors-text, #25292f);
|
|
72
77
|
font: inherit;
|
|
73
78
|
font-size: 12px;
|
|
@@ -76,8 +81,11 @@ const StyledTrigger = styled.button<{ $variant: 'field' | 'circle' }>`
|
|
|
76
81
|
|
|
77
82
|
&:hover:not(:disabled),
|
|
78
83
|
&[aria-expanded='true'] {
|
|
79
|
-
border-color:
|
|
80
|
-
|
|
84
|
+
border-color: ${({ $variant }) =>
|
|
85
|
+
$variant === 'circle'
|
|
86
|
+
? 'transparent'
|
|
87
|
+
: 'var(--platform-colors-text-secondary, #68707a)'};
|
|
88
|
+
background: var(--platform-colors-surface-hover, #f0ede7);
|
|
81
89
|
}
|
|
82
90
|
|
|
83
91
|
&:disabled {
|
|
@@ -106,7 +114,7 @@ const StyledSwatch = styled.span<{ $color: string; $large?: boolean }>`
|
|
|
106
114
|
height: ${({ $large }) => ($large ? '13px' : '10px')};
|
|
107
115
|
margin-left: ${({ $large }) => ($large ? '-1px' : '-2px')};
|
|
108
116
|
border: 1px solid rgba(255, 255, 255, 0.76);
|
|
109
|
-
border-radius:
|
|
117
|
+
border-radius: var(--platform-radius-2xs, 0);
|
|
110
118
|
background: ${({ $color }) => $color};
|
|
111
119
|
box-shadow: 0 0 0 1px rgba(46, 51, 56, 0.08);
|
|
112
120
|
|
|
@@ -119,10 +127,10 @@ const StyledPrimarySwatch = styled.span<{ $color: string }>`
|
|
|
119
127
|
display: block;
|
|
120
128
|
width: 16px;
|
|
121
129
|
height: 16px;
|
|
122
|
-
border: 1px solid
|
|
123
|
-
border-radius:
|
|
130
|
+
border: 1px solid var(--platform-colors-border);
|
|
131
|
+
border-radius: var(--platform-radius-2xs, 0);
|
|
124
132
|
background: ${({ $color }) => $color};
|
|
125
|
-
box-shadow:
|
|
133
|
+
box-shadow: inset 0 0 0 1px rgb(255 255 255 / 36%);
|
|
126
134
|
`
|
|
127
135
|
|
|
128
136
|
const StyledCaret = styled.span`
|
|
@@ -139,9 +147,11 @@ const StyledOption = styled.button<{ $selected?: boolean }>`
|
|
|
139
147
|
min-height: 34px;
|
|
140
148
|
padding: 7px 8px;
|
|
141
149
|
border: 0;
|
|
142
|
-
border-radius:
|
|
150
|
+
border-radius: var(--platform-radius-sm);
|
|
143
151
|
background: ${({ $selected }) =>
|
|
144
|
-
$selected
|
|
152
|
+
$selected
|
|
153
|
+
? 'var(--platform-colors-surface-hover, #f0ede7)'
|
|
154
|
+
: 'transparent'};
|
|
145
155
|
color: var(--platform-colors-text, #25292f);
|
|
146
156
|
font: inherit;
|
|
147
157
|
font-size: 12px;
|
|
@@ -149,7 +159,7 @@ const StyledOption = styled.button<{ $selected?: boolean }>`
|
|
|
149
159
|
cursor: pointer;
|
|
150
160
|
|
|
151
161
|
&:hover {
|
|
152
|
-
background: var(--platform-colors-surface-hover, #
|
|
162
|
+
background: var(--platform-colors-surface-hover, #f0ede7);
|
|
153
163
|
}
|
|
154
164
|
`
|
|
155
165
|
|
|
@@ -164,7 +174,7 @@ const StyledOptionText = styled.span`
|
|
|
164
174
|
const StyledDivider = styled.div`
|
|
165
175
|
height: 1px;
|
|
166
176
|
margin: 6px 2px;
|
|
167
|
-
background: var(--platform-colors-border, #
|
|
177
|
+
background: var(--platform-colors-border, #e7e4dd);
|
|
168
178
|
`
|
|
169
179
|
|
|
170
180
|
const StyledCustomToggle = styled.button`
|
|
@@ -175,7 +185,7 @@ const StyledCustomToggle = styled.button`
|
|
|
175
185
|
height: 32px;
|
|
176
186
|
padding: 0 8px;
|
|
177
187
|
border: 0;
|
|
178
|
-
border-radius:
|
|
188
|
+
border-radius: var(--platform-radius-sm);
|
|
179
189
|
background: transparent;
|
|
180
190
|
color: var(--platform-colors-text-secondary, #68707a);
|
|
181
191
|
font: inherit;
|
|
@@ -184,7 +194,7 @@ const StyledCustomToggle = styled.button`
|
|
|
184
194
|
cursor: pointer;
|
|
185
195
|
|
|
186
196
|
&:hover {
|
|
187
|
-
background: var(--platform-colors-surface-hover, #
|
|
197
|
+
background: var(--platform-colors-surface-hover, #f0ede7);
|
|
188
198
|
color: var(--platform-colors-text, #25292f);
|
|
189
199
|
}
|
|
190
200
|
`
|
|
@@ -201,8 +211,8 @@ const StyledNameInput = styled.input`
|
|
|
201
211
|
height: 32px;
|
|
202
212
|
min-width: 0;
|
|
203
213
|
padding: 0 9px;
|
|
204
|
-
border: 1px solid var(--platform-colors-border, #
|
|
205
|
-
border-radius:
|
|
214
|
+
border: 1px solid var(--platform-colors-border, #e7e4dd);
|
|
215
|
+
border-radius: var(--platform-radius-sm);
|
|
206
216
|
background: var(--platform-colors-surface, #ffffff);
|
|
207
217
|
color: var(--platform-colors-text, #25292f);
|
|
208
218
|
font: inherit;
|
|
@@ -225,8 +235,8 @@ const StyledColorInput = styled.input`
|
|
|
225
235
|
height: 28px;
|
|
226
236
|
min-width: 0;
|
|
227
237
|
padding: 2px;
|
|
228
|
-
border: 1px solid var(--platform-colors-border, #
|
|
229
|
-
border-radius:
|
|
238
|
+
border: 1px solid var(--platform-colors-border, #e7e4dd);
|
|
239
|
+
border-radius: var(--platform-radius-sm);
|
|
230
240
|
background: var(--platform-colors-surface, #ffffff);
|
|
231
241
|
cursor: pointer;
|
|
232
242
|
`
|
|
@@ -235,8 +245,8 @@ const StyledSubmit = styled.button`
|
|
|
235
245
|
justify-self: end;
|
|
236
246
|
height: 30px;
|
|
237
247
|
padding: 0 10px;
|
|
238
|
-
border: 1px solid var(--platform-colors-border, #
|
|
239
|
-
border-radius:
|
|
248
|
+
border: 1px solid var(--platform-colors-border, #e7e4dd);
|
|
249
|
+
border-radius: var(--platform-radius-sm);
|
|
240
250
|
background: var(--platform-colors-surface, #ffffff);
|
|
241
251
|
color: var(--platform-colors-text, #25292f);
|
|
242
252
|
font: inherit;
|
|
@@ -245,7 +255,7 @@ const StyledSubmit = styled.button`
|
|
|
245
255
|
cursor: pointer;
|
|
246
256
|
|
|
247
257
|
&:hover:not(:disabled) {
|
|
248
|
-
background: var(--platform-colors-surface-hover, #
|
|
258
|
+
background: var(--platform-colors-surface-hover, #f0ede7);
|
|
249
259
|
}
|
|
250
260
|
|
|
251
261
|
&:disabled {
|
|
@@ -288,7 +298,7 @@ export function PaletteDropdown({
|
|
|
288
298
|
() => palettes.find(palette => palette.id === value) ?? palettes[0],
|
|
289
299
|
[palettes, value],
|
|
290
300
|
)
|
|
291
|
-
const primaryColor = selected?.colors[1] ?? selected?.colors[0] ?? '#
|
|
301
|
+
const primaryColor = selected?.colors[1] ?? selected?.colors[0] ?? '#1c1a17'
|
|
292
302
|
|
|
293
303
|
const close = useCallback(() => {
|
|
294
304
|
closeMenu()
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from '../../../theme/surfacePalettes.js'
|
|
9
9
|
import { PaletteCirclePicker } from './PaletteCirclePicker.js'
|
|
10
10
|
|
|
11
|
-
const DEFAULT_SWATCHES = ['#
|
|
11
|
+
const DEFAULT_SWATCHES = ['#1b1b1e', '#3a3a3e', '#ffffff', '#fbfbfc']
|
|
12
12
|
|
|
13
13
|
export interface SurfacePalettePickerProps {
|
|
14
14
|
label?: string
|
|
@@ -30,7 +30,7 @@ const StyledTrack = styled.span<{ $checked: boolean; $disabled?: boolean }>`
|
|
|
30
30
|
$checked
|
|
31
31
|
? 'var(--platform-colors-accent)'
|
|
32
32
|
: 'var(--platform-colors-border)'};
|
|
33
|
-
border-radius:
|
|
33
|
+
border-radius: var(--platform-radius-sm);
|
|
34
34
|
background: ${({ $checked }) =>
|
|
35
35
|
$checked
|
|
36
36
|
? 'var(--platform-colors-accent)'
|
|
@@ -45,7 +45,7 @@ const StyledTrack = styled.span<{ $checked: boolean; $disabled?: boolean }>`
|
|
|
45
45
|
left: ${({ $checked }) => ($checked ? '14px' : '2px')};
|
|
46
46
|
width: 12px;
|
|
47
47
|
height: 12px;
|
|
48
|
-
border-radius:
|
|
48
|
+
border-radius: var(--platform-radius-2xs, 0);
|
|
49
49
|
background: var(--platform-colors-surface);
|
|
50
50
|
box-shadow: 0 1px 2px rgb(from var(--platform-colors-text) r g b / 0.22);
|
|
51
51
|
transition: left 120ms ease;
|
|
@@ -60,7 +60,7 @@ const StyledControl = styled.div<{ $open: boolean }>`
|
|
|
60
60
|
$open
|
|
61
61
|
? 'var(--platform-colors-border-strong)'
|
|
62
62
|
: 'var(--platform-colors-border)'};
|
|
63
|
-
border-radius:
|
|
63
|
+
border-radius: var(--platform-radius-sm, 0px);
|
|
64
64
|
background: var(--platform-colors-surface);
|
|
65
65
|
color: var(--platform-colors-text);
|
|
66
66
|
`
|
|
@@ -101,7 +101,7 @@ const StyledOption = styled.button<{ $active?: boolean }>`
|
|
|
101
101
|
min-height: 32px;
|
|
102
102
|
padding: 6px 8px;
|
|
103
103
|
border: 0;
|
|
104
|
-
border-radius:
|
|
104
|
+
border-radius: var(--platform-radius-sm, 0px);
|
|
105
105
|
background: ${({ $active }) =>
|
|
106
106
|
$active ? 'var(--platform-colors-surface-active)' : 'transparent'};
|
|
107
107
|
color: var(--platform-colors-text);
|
|
@@ -125,7 +125,7 @@ const StyledOptionName = styled.span`
|
|
|
125
125
|
const StyledOptionMeta = styled.span`
|
|
126
126
|
min-width: 22px;
|
|
127
127
|
padding: 1px 7px;
|
|
128
|
-
border-radius: var(--platform-radius-
|
|
128
|
+
border-radius: var(--platform-radius-sm);
|
|
129
129
|
background: var(--platform-colors-bg);
|
|
130
130
|
color: var(--platform-colors-text-secondary);
|
|
131
131
|
font-size: var(--platform-typography-font-size-xs);
|
|
@@ -12,9 +12,11 @@ export const listRowBaseCss = css<{ $active?: boolean }>`
|
|
|
12
12
|
padding: var(--platform-spacing-xs) var(--platform-spacing-sm);
|
|
13
13
|
text-align: left;
|
|
14
14
|
color: ${({ $active }) =>
|
|
15
|
-
$active ? 'var(--platform-colors-accent)' : 'var(--platform-colors-text)'};
|
|
15
|
+
$active ? 'var(--app-text, var(--platform-colors-accent))' : 'var(--platform-colors-text)'};
|
|
16
16
|
background: ${({ $active }) =>
|
|
17
|
-
$active ? 'var(--platform-colors-accent-muted)' : 'transparent'};
|
|
17
|
+
$active ? 'var(--app-bg, var(--platform-colors-accent-muted))' : 'transparent'};
|
|
18
|
+
border-left: 3px solid
|
|
19
|
+
${({ $active }) => ($active ? 'var(--app-acc, var(--platform-colors-accent))' : 'transparent')};
|
|
18
20
|
`
|
|
19
21
|
|
|
20
22
|
export const ListRow = styled.div<{ $active?: boolean }>`
|
|
@@ -3,7 +3,4 @@ export {
|
|
|
3
3
|
type QuietActivityListItem,
|
|
4
4
|
type QuietActivityListProps,
|
|
5
5
|
} from './QuietActivityList.js'
|
|
6
|
-
export {
|
|
7
|
-
QuietLedgerRow,
|
|
8
|
-
type QuietLedgerRowProps,
|
|
9
|
-
} from './QuietLedgerRow.js'
|
|
6
|
+
export { QuietLedgerRow, type QuietLedgerRowProps } from './QuietLedgerRow.js'
|
|
@@ -68,7 +68,8 @@ const StyledEmpty = styled.li<{
|
|
|
68
68
|
$active?: boolean
|
|
69
69
|
$density: ReorderableSectionsDensity
|
|
70
70
|
}>`
|
|
71
|
-
padding: ${({ $density }) =>
|
|
71
|
+
padding: ${({ $density }) =>
|
|
72
|
+
$density === 'compact' ? '7px 9px' : '12px 14px'};
|
|
72
73
|
border: 1px dashed
|
|
73
74
|
${({ $active }) =>
|
|
74
75
|
$active
|