2026-02-16 13:32:04 -06:00
|
|
|
|
@import "tailwindcss";
|
UI: approval detail page, agent hiring UX, costs breakdown, sidebar badges, and dashboard improvements
Add ApprovalDetail page with comment thread, revision request/resubmit flow,
and ApprovalPayload component for structured payload display. Extend AgentDetail
with permissions management, config revision history, and duplicate action.
Add agent hire dialog with permission-gated access. Rework Costs page with
per-agent breakdown table and period filtering. Add sidebar badge counts for
pending approvals and inbox items. Enhance Dashboard with live metrics and
sparkline trends. Extend Agents list with pending_approval status and bulk
actions. Update IssueDetail with approval linking. Various component improvements
to MetricCard, InlineEditor, CommentThread, and StatusBadge.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:03:08 -06:00
|
|
|
|
@plugin "@tailwindcss/typography";
|
Overhaul UI with shadcn components and new pages
Add shadcn/ui components (badge, button, card, input, select,
separator). Add company context provider. New pages: Activity,
Approvals, Companies, Costs, Org chart. Restyle existing pages
(Dashboard, Agents, Issues, Goals, Projects) with shadcn components
and dark theme. Update layout, sidebar navigation, and routing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 09:07:32 -06:00
|
|
|
|
|
|
|
|
|
|
@custom-variant dark (&:is(.dark *));
|
|
|
|
|
|
|
|
|
|
|
|
@theme inline {
|
|
|
|
|
|
--color-background: var(--background);
|
|
|
|
|
|
--color-foreground: var(--foreground);
|
|
|
|
|
|
--color-card: var(--card);
|
|
|
|
|
|
--color-card-foreground: var(--card-foreground);
|
|
|
|
|
|
--color-popover: var(--popover);
|
|
|
|
|
|
--color-popover-foreground: var(--popover-foreground);
|
|
|
|
|
|
--color-primary: var(--primary);
|
|
|
|
|
|
--color-primary-foreground: var(--primary-foreground);
|
|
|
|
|
|
--color-secondary: var(--secondary);
|
|
|
|
|
|
--color-secondary-foreground: var(--secondary-foreground);
|
|
|
|
|
|
--color-muted: var(--muted);
|
|
|
|
|
|
--color-muted-foreground: var(--muted-foreground);
|
|
|
|
|
|
--color-accent: var(--accent);
|
|
|
|
|
|
--color-accent-foreground: var(--accent-foreground);
|
|
|
|
|
|
--color-destructive: var(--destructive);
|
|
|
|
|
|
--color-destructive-foreground: var(--destructive-foreground);
|
|
|
|
|
|
--color-border: var(--border);
|
|
|
|
|
|
--color-input: var(--input);
|
|
|
|
|
|
--color-ring: var(--ring);
|
|
|
|
|
|
--color-chart-1: var(--chart-1);
|
|
|
|
|
|
--color-chart-2: var(--chart-2);
|
|
|
|
|
|
--color-chart-3: var(--chart-3);
|
|
|
|
|
|
--color-chart-4: var(--chart-4);
|
|
|
|
|
|
--color-chart-5: var(--chart-5);
|
|
|
|
|
|
--color-sidebar: var(--sidebar);
|
|
|
|
|
|
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
|
|
|
|
--color-sidebar-primary: var(--sidebar-primary);
|
|
|
|
|
|
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
|
|
|
|
--color-sidebar-accent: var(--sidebar-accent);
|
|
|
|
|
|
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
|
|
|
|
--color-sidebar-border: var(--sidebar-border);
|
|
|
|
|
|
--color-sidebar-ring: var(--sidebar-ring);
|
2026-02-26 16:30:12 -06:00
|
|
|
|
--radius-sm: 0.375rem;
|
|
|
|
|
|
--radius-md: 0.5rem;
|
2026-02-26 16:24:26 -06:00
|
|
|
|
--radius-lg: 0px;
|
|
|
|
|
|
--radius-xl: 0px;
|
Overhaul UI with shadcn components and new pages
Add shadcn/ui components (badge, button, card, input, select,
separator). Add company context provider. New pages: Activity,
Approvals, Companies, Costs, Org chart. Restyle existing pages
(Dashboard, Agents, Issues, Goals, Projects) with shadcn components
and dark theme. Update layout, sidebar navigation, and routing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 09:07:32 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
:root {
|
2026-02-26 16:24:26 -06:00
|
|
|
|
color-scheme: light;
|
|
|
|
|
|
--radius: 0;
|
Overhaul UI with shadcn components and new pages
Add shadcn/ui components (badge, button, card, input, select,
separator). Add company context provider. New pages: Activity,
Approvals, Companies, Costs, Org chart. Restyle existing pages
(Dashboard, Agents, Issues, Goals, Projects) with shadcn components
and dark theme. Update layout, sidebar navigation, and routing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 09:07:32 -06:00
|
|
|
|
--background: oklch(1 0 0);
|
|
|
|
|
|
--foreground: oklch(0.145 0 0);
|
|
|
|
|
|
--card: oklch(1 0 0);
|
|
|
|
|
|
--card-foreground: oklch(0.145 0 0);
|
|
|
|
|
|
--popover: oklch(1 0 0);
|
|
|
|
|
|
--popover-foreground: oklch(0.145 0 0);
|
|
|
|
|
|
--primary: oklch(0.205 0 0);
|
|
|
|
|
|
--primary-foreground: oklch(0.985 0 0);
|
|
|
|
|
|
--secondary: oklch(0.97 0 0);
|
|
|
|
|
|
--secondary-foreground: oklch(0.205 0 0);
|
|
|
|
|
|
--muted: oklch(0.97 0 0);
|
|
|
|
|
|
--muted-foreground: oklch(0.556 0 0);
|
|
|
|
|
|
--accent: oklch(0.97 0 0);
|
|
|
|
|
|
--accent-foreground: oklch(0.205 0 0);
|
|
|
|
|
|
--destructive: oklch(0.577 0.245 27.325);
|
|
|
|
|
|
--destructive-foreground: oklch(0.577 0.245 27.325);
|
|
|
|
|
|
--border: oklch(0.922 0 0);
|
|
|
|
|
|
--input: oklch(0.922 0 0);
|
|
|
|
|
|
--ring: oklch(0.708 0 0);
|
|
|
|
|
|
--chart-1: oklch(0.646 0.222 41.116);
|
|
|
|
|
|
--chart-2: oklch(0.6 0.118 184.704);
|
|
|
|
|
|
--chart-3: oklch(0.398 0.07 227.392);
|
|
|
|
|
|
--chart-4: oklch(0.828 0.189 84.429);
|
|
|
|
|
|
--chart-5: oklch(0.769 0.188 70.08);
|
|
|
|
|
|
--sidebar: oklch(0.985 0 0);
|
|
|
|
|
|
--sidebar-foreground: oklch(0.145 0 0);
|
|
|
|
|
|
--sidebar-primary: oklch(0.205 0 0);
|
|
|
|
|
|
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
|
|
|
|
--sidebar-accent: oklch(0.97 0 0);
|
|
|
|
|
|
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
|
|
|
|
--sidebar-border: oklch(0.922 0 0);
|
|
|
|
|
|
--sidebar-ring: oklch(0.708 0 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark {
|
|
|
|
|
|
--background: oklch(0.145 0 0);
|
|
|
|
|
|
--foreground: oklch(0.985 0 0);
|
|
|
|
|
|
--card: oklch(0.205 0 0);
|
|
|
|
|
|
--card-foreground: oklch(0.985 0 0);
|
|
|
|
|
|
--popover: oklch(0.205 0 0);
|
|
|
|
|
|
--popover-foreground: oklch(0.985 0 0);
|
|
|
|
|
|
--primary: oklch(0.985 0 0);
|
|
|
|
|
|
--primary-foreground: oklch(0.205 0 0);
|
|
|
|
|
|
--secondary: oklch(0.269 0 0);
|
|
|
|
|
|
--secondary-foreground: oklch(0.985 0 0);
|
|
|
|
|
|
--muted: oklch(0.269 0 0);
|
|
|
|
|
|
--muted-foreground: oklch(0.708 0 0);
|
|
|
|
|
|
--accent: oklch(0.269 0 0);
|
|
|
|
|
|
--accent-foreground: oklch(0.985 0 0);
|
2026-03-06 13:53:08 -06:00
|
|
|
|
--destructive: oklch(0.637 0.237 25.331);
|
|
|
|
|
|
--destructive-foreground: oklch(0.985 0 0);
|
Overhaul UI with shadcn components and new pages
Add shadcn/ui components (badge, button, card, input, select,
separator). Add company context provider. New pages: Activity,
Approvals, Companies, Costs, Org chart. Restyle existing pages
(Dashboard, Agents, Issues, Goals, Projects) with shadcn components
and dark theme. Update layout, sidebar navigation, and routing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 09:07:32 -06:00
|
|
|
|
--border: oklch(0.269 0 0);
|
|
|
|
|
|
--input: oklch(0.269 0 0);
|
|
|
|
|
|
--ring: oklch(0.439 0 0);
|
|
|
|
|
|
--chart-1: oklch(0.488 0.243 264.376);
|
|
|
|
|
|
--chart-2: oklch(0.696 0.17 162.48);
|
|
|
|
|
|
--chart-3: oklch(0.769 0.188 70.08);
|
|
|
|
|
|
--chart-4: oklch(0.627 0.265 303.9);
|
|
|
|
|
|
--chart-5: oklch(0.645 0.246 16.439);
|
Polish UI components and rework AgentConfigForm
Major AgentConfigForm rework with improved adapter configuration
fields and layout. Refine sidebar, breadcrumbs, and card/tab
components for visual consistency. Clean up page layouts across
Activity, Agents, Approvals, Costs, Dashboard, Goals, Inbox,
Issues, Org, and Projects pages. Minor heartbeat-run CLI fix.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 10:43:25 -06:00
|
|
|
|
--sidebar: oklch(0.145 0 0);
|
Overhaul UI with shadcn components and new pages
Add shadcn/ui components (badge, button, card, input, select,
separator). Add company context provider. New pages: Activity,
Approvals, Companies, Costs, Org chart. Restyle existing pages
(Dashboard, Agents, Issues, Goals, Projects) with shadcn components
and dark theme. Update layout, sidebar navigation, and routing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 09:07:32 -06:00
|
|
|
|
--sidebar-foreground: oklch(0.985 0 0);
|
|
|
|
|
|
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
|
|
|
|
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
|
|
|
|
--sidebar-accent: oklch(0.269 0 0);
|
|
|
|
|
|
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
|
|
|
|
--sidebar-border: oklch(0.269 0 0);
|
|
|
|
|
|
--sidebar-ring: oklch(0.439 0 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@layer base {
|
|
|
|
|
|
* {
|
|
|
|
|
|
@apply border-border;
|
|
|
|
|
|
}
|
2026-02-25 21:36:06 -06:00
|
|
|
|
html {
|
|
|
|
|
|
height: 100%;
|
2026-03-02 16:44:03 -06:00
|
|
|
|
-webkit-tap-highlight-color: color-mix(in oklab, var(--foreground) 20%, transparent);
|
2026-02-25 21:36:06 -06:00
|
|
|
|
}
|
Overhaul UI with shadcn components and new pages
Add shadcn/ui components (badge, button, card, input, select,
separator). Add company context provider. New pages: Activity,
Approvals, Companies, Costs, Org chart. Restyle existing pages
(Dashboard, Agents, Issues, Goals, Projects) with shadcn components
and dark theme. Update layout, sidebar navigation, and routing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 09:07:32 -06:00
|
|
|
|
body {
|
ui: apply interface polish from design article review
- Add global font smoothing (antialiased) to body
- Add tabular-nums to all numeric displays: MetricCard values, Costs page,
AgentDetail token/cost grids and tables, IssueDetail cost summary,
Companies page budget display
- Replace markdown image hard border with subtle inset box-shadow overlay
- Replace all animate-ping status dots with calmer animate-pulse across
AgentDetail, IssueDetail, Agents, sidebar, kanban, issues list, and
active agents panel
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 08:20:24 -05:00
|
|
|
|
@apply bg-background text-foreground antialiased;
|
2026-02-25 21:36:06 -06:00
|
|
|
|
height: 100%;
|
|
|
|
|
|
overflow: hidden;
|
Overhaul UI with shadcn components and new pages
Add shadcn/ui components (badge, button, card, input, select,
separator). Add company context provider. New pages: Activity,
Approvals, Companies, Costs, Org chart. Restyle existing pages
(Dashboard, Agents, Issues, Goals, Projects) with shadcn components
and dark theme. Update layout, sidebar navigation, and routing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 09:07:32 -06:00
|
|
|
|
}
|
2026-03-02 16:44:03 -06:00
|
|
|
|
h1,
|
|
|
|
|
|
h2,
|
|
|
|
|
|
h3 {
|
|
|
|
|
|
text-wrap: balance;
|
|
|
|
|
|
}
|
2026-02-23 16:51:17 -06:00
|
|
|
|
/* Prevent double-tap-to-zoom on interactive elements for mobile */
|
|
|
|
|
|
a,
|
|
|
|
|
|
button,
|
|
|
|
|
|
[role="button"],
|
|
|
|
|
|
input,
|
|
|
|
|
|
select,
|
|
|
|
|
|
textarea,
|
|
|
|
|
|
label {
|
|
|
|
|
|
touch-action: manipulation;
|
|
|
|
|
|
}
|
2026-04-02 23:47:00 -07:00
|
|
|
|
/* Let font-mono (utilities layer) override for monospace editors */
|
|
|
|
|
|
.paperclip-mdxeditor [class*="_placeholder_"],
|
|
|
|
|
|
.paperclip-mdxeditor-content {
|
|
|
|
|
|
font-family: inherit;
|
|
|
|
|
|
}
|
Overhaul UI with shadcn components and new pages
Add shadcn/ui components (badge, button, card, input, select,
separator). Add company context provider. New pages: Activity,
Approvals, Companies, Costs, Org chart. Restyle existing pages
(Dashboard, Agents, Issues, Goals, Projects) with shadcn components
and dark theme. Update layout, sidebar navigation, and routing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 09:07:32 -06:00
|
|
|
|
}
|
2026-02-17 10:53:20 -06:00
|
|
|
|
|
2026-03-02 16:44:03 -06:00
|
|
|
|
@media (pointer: coarse) {
|
|
|
|
|
|
button,
|
|
|
|
|
|
[role="button"],
|
|
|
|
|
|
input,
|
|
|
|
|
|
select,
|
|
|
|
|
|
textarea,
|
|
|
|
|
|
[data-slot="select-trigger"] {
|
|
|
|
|
|
min-height: 44px;
|
|
|
|
|
|
}
|
2026-03-22 06:35:32 -05:00
|
|
|
|
|
|
|
|
|
|
[data-slot="toggle"] {
|
|
|
|
|
|
min-height: 0;
|
|
|
|
|
|
}
|
2026-03-02 16:44:03 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-17 21:12:31 -06:00
|
|
|
|
/* Dark mode scrollbars */
|
|
|
|
|
|
.dark {
|
|
|
|
|
|
color-scheme: dark;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark *::-webkit-scrollbar {
|
|
|
|
|
|
width: 8px;
|
|
|
|
|
|
height: 8px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark *::-webkit-scrollbar-track {
|
|
|
|
|
|
background: oklch(0.205 0 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark *::-webkit-scrollbar-thumb {
|
|
|
|
|
|
background: oklch(0.4 0 0);
|
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark *::-webkit-scrollbar-thumb:hover {
|
|
|
|
|
|
background: oklch(0.5 0 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-18 14:40:50 -05:00
|
|
|
|
/* Auto-hide scrollbar: always reserves space, thumb visible only on hover */
|
2026-03-18 12:57:26 -05:00
|
|
|
|
.scrollbar-auto-hide::-webkit-scrollbar {
|
2026-03-18 14:40:50 -05:00
|
|
|
|
width: 8px !important;
|
2026-03-18 12:57:26 -05:00
|
|
|
|
background: transparent !important;
|
|
|
|
|
|
}
|
2026-03-14 13:47:55 -05:00
|
|
|
|
.scrollbar-auto-hide::-webkit-scrollbar-track {
|
|
|
|
|
|
background: transparent !important;
|
|
|
|
|
|
}
|
2026-03-06 07:39:35 -06:00
|
|
|
|
.scrollbar-auto-hide::-webkit-scrollbar-thumb {
|
|
|
|
|
|
background: transparent !important;
|
2026-03-18 12:57:26 -05:00
|
|
|
|
}
|
2026-04-02 11:45:15 -05:00
|
|
|
|
/* Light mode scrollbar on hover */
|
2026-03-14 13:47:55 -05:00
|
|
|
|
.scrollbar-auto-hide:hover::-webkit-scrollbar-track {
|
2026-04-02 11:45:15 -05:00
|
|
|
|
background: oklch(0.92 0 0) !important;
|
2026-03-14 13:47:55 -05:00
|
|
|
|
}
|
2026-03-06 07:39:35 -06:00
|
|
|
|
.scrollbar-auto-hide:hover::-webkit-scrollbar-thumb {
|
2026-04-02 11:45:15 -05:00
|
|
|
|
background: oklch(0.7 0 0) !important;
|
2026-03-06 07:39:35 -06:00
|
|
|
|
}
|
|
|
|
|
|
.scrollbar-auto-hide:hover::-webkit-scrollbar-thumb:hover {
|
2026-04-02 11:45:15 -05:00
|
|
|
|
background: oklch(0.6 0 0) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Dark mode scrollbar on hover */
|
|
|
|
|
|
.dark .scrollbar-auto-hide:hover::-webkit-scrollbar-track {
|
|
|
|
|
|
background: oklch(0.205 0 0) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
.dark .scrollbar-auto-hide:hover::-webkit-scrollbar-thumb {
|
|
|
|
|
|
background: oklch(0.4 0 0) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
.dark .scrollbar-auto-hide:hover::-webkit-scrollbar-thumb:hover {
|
2026-03-06 07:39:35 -06:00
|
|
|
|
background: oklch(0.5 0 0) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-17 10:53:20 -06:00
|
|
|
|
/* Expandable dialog transition for max-width changes */
|
|
|
|
|
|
[data-slot="dialog-content"] {
|
|
|
|
|
|
transition: max-width 200ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
|
|
|
|
}
|
UI: approval detail page, agent hiring UX, costs breakdown, sidebar badges, and dashboard improvements
Add ApprovalDetail page with comment thread, revision request/resubmit flow,
and ApprovalPayload component for structured payload display. Extend AgentDetail
with permissions management, config revision history, and duplicate action.
Add agent hire dialog with permission-gated access. Rework Costs page with
per-agent breakdown table and period filtering. Add sidebar badge counts for
pending approvals and inbox items. Enhance Dashboard with live metrics and
sparkline trends. Extend Agents list with pending_approval status and bulk
actions. Update IssueDetail with approval linking. Various component improvements
to MetricCard, InlineEditor, CommentThread, and StatusBadge.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:03:08 -06:00
|
|
|
|
|
|
|
|
|
|
/* Dashboard activity row entry motion */
|
|
|
|
|
|
@keyframes dashboard-activity-enter {
|
|
|
|
|
|
0% {
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transform: translateY(-14px) scale(0.985);
|
|
|
|
|
|
filter: blur(4px);
|
|
|
|
|
|
}
|
|
|
|
|
|
62% {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
transform: translateY(2px) scale(1.002);
|
|
|
|
|
|
filter: blur(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
100% {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
transform: translateY(0) scale(1);
|
|
|
|
|
|
filter: blur(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@keyframes dashboard-activity-highlight {
|
|
|
|
|
|
0% {
|
|
|
|
|
|
box-shadow: inset 2px 0 0 var(--primary);
|
|
|
|
|
|
background-color: color-mix(in oklab, var(--accent) 55%, transparent);
|
|
|
|
|
|
}
|
|
|
|
|
|
100% {
|
|
|
|
|
|
box-shadow: inset 0 0 0 transparent;
|
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.activity-row-enter {
|
|
|
|
|
|
animation:
|
|
|
|
|
|
dashboard-activity-enter 520ms cubic-bezier(0.16, 1, 0.3, 1),
|
|
|
|
|
|
dashboard-activity-highlight 920ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.activity-row-enter {
|
|
|
|
|
|
animation: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
|
2026-04-07 17:02:48 -05:00
|
|
|
|
/* Chain-of-thought reasoning line ticker animations.
|
|
|
|
|
|
Pure translate, no opacity — the overflow-hidden container clips.
|
|
|
|
|
|
Both keyframes share the same easing so the two spans move in lockstep. */
|
|
|
|
|
|
@keyframes cot-line-slide-in {
|
|
|
|
|
|
from { transform: translateY(100%); }
|
|
|
|
|
|
to { transform: translateY(0); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@keyframes cot-line-slide-out {
|
|
|
|
|
|
from { transform: translateY(0); }
|
|
|
|
|
|
to { transform: translateY(-100%); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.cot-line-enter {
|
|
|
|
|
|
animation: cot-line-slide-in 300ms cubic-bezier(0.4, 0, 0.2, 1) both;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.cot-line-exit {
|
|
|
|
|
|
animation: cot-line-slide-out 300ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.cot-line-enter,
|
|
|
|
|
|
.cot-line-exit {
|
|
|
|
|
|
animation: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-08 06:42:25 -05:00
|
|
|
|
/* Shimmer text effect for active "Working" state — Cursor-style sweep */
|
2026-04-07 17:02:48 -05:00
|
|
|
|
@keyframes shimmer-text-slide {
|
2026-04-08 07:24:19 -05:00
|
|
|
|
0% { background-position: 100% center; }
|
2026-04-08 07:33:27 -05:00
|
|
|
|
60% { background-position: 0% center; }
|
2026-04-08 07:24:19 -05:00
|
|
|
|
100% { background-position: 0% center; }
|
2026-04-07 17:02:48 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.shimmer-text {
|
2026-04-08 07:03:12 -05:00
|
|
|
|
--shimmer-base: var(--foreground);
|
|
|
|
|
|
--shimmer-highlight: color-mix(in oklch, var(--foreground) 35%, transparent);
|
2026-04-07 17:02:48 -05:00
|
|
|
|
background: linear-gradient(
|
2026-04-08 06:42:25 -05:00
|
|
|
|
90deg,
|
|
|
|
|
|
var(--shimmer-base) 0%,
|
|
|
|
|
|
var(--shimmer-base) 40%,
|
2026-04-07 17:02:48 -05:00
|
|
|
|
var(--shimmer-highlight) 50%,
|
2026-04-08 06:42:25 -05:00
|
|
|
|
var(--shimmer-base) 60%,
|
|
|
|
|
|
var(--shimmer-base) 100%
|
2026-04-07 17:02:48 -05:00
|
|
|
|
);
|
2026-04-08 06:42:25 -05:00
|
|
|
|
background-size: 200% 100%;
|
2026-04-07 17:02:48 -05:00
|
|
|
|
-webkit-background-clip: text;
|
|
|
|
|
|
background-clip: text;
|
|
|
|
|
|
-webkit-text-fill-color: transparent;
|
2026-04-08 07:33:27 -05:00
|
|
|
|
animation: shimmer-text-slide 2.5s linear infinite;
|
2026-04-07 17:02:48 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.shimmer-text {
|
|
|
|
|
|
animation: none;
|
|
|
|
|
|
-webkit-text-fill-color: unset;
|
|
|
|
|
|
background: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
/* MDXEditor theme integration */
|
|
|
|
|
|
.paperclip-mdxeditor-scope,
|
|
|
|
|
|
.paperclip-mdxeditor {
|
|
|
|
|
|
--baseBase: var(--background);
|
|
|
|
|
|
--baseBg: transparent;
|
|
|
|
|
|
--baseBgSubtle: color-mix(in oklab, var(--accent) 35%, transparent);
|
|
|
|
|
|
--baseLine: var(--border);
|
|
|
|
|
|
--baseSolid: var(--muted-foreground);
|
|
|
|
|
|
--baseSolidHover: var(--foreground);
|
|
|
|
|
|
--baseText: var(--muted-foreground);
|
|
|
|
|
|
--baseBorderColor: var(--border);
|
|
|
|
|
|
--baseBorder: var(--border);
|
|
|
|
|
|
--baseBorderHover: var(--ring);
|
|
|
|
|
|
--baseTextContrast: var(--foreground);
|
|
|
|
|
|
--baseTextContrastMuted: var(--muted-foreground);
|
|
|
|
|
|
--baseTextEmphasis: var(--foreground);
|
|
|
|
|
|
--basePageBg: var(--background);
|
|
|
|
|
|
--baseRadius: var(--radius);
|
|
|
|
|
|
--baseLineHeight: 1.5;
|
|
|
|
|
|
--accentBorder: color-mix(in oklab, var(--primary) 35%, var(--border));
|
|
|
|
|
|
--accentSolid: var(--primary);
|
|
|
|
|
|
--accentSolidHover: var(--primary);
|
|
|
|
|
|
--accentLine: color-mix(in oklab, var(--primary) 20%, transparent);
|
|
|
|
|
|
--accentBg: var(--accent);
|
|
|
|
|
|
--accentBgHover: color-mix(in oklab, var(--accent) 80%, var(--background));
|
|
|
|
|
|
--accentBgActive: color-mix(in oklab, var(--accent) 72%, var(--background));
|
|
|
|
|
|
--accentText: var(--accent-foreground);
|
|
|
|
|
|
font-family: inherit;
|
|
|
|
|
|
font-size: 0.875rem;
|
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
|
color: var(--foreground);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-scope [class*="_iconButton_"],
|
|
|
|
|
|
.paperclip-mdxeditor [class*="_iconButton_"] {
|
|
|
|
|
|
color: var(--baseText);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-scope [class*="_iconButton_"]:hover,
|
|
|
|
|
|
.paperclip-mdxeditor [class*="_iconButton_"]:hover {
|
|
|
|
|
|
color: var(--baseTextContrast);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor .mdxeditor-root-contenteditable {
|
|
|
|
|
|
min-height: 2.5rem;
|
2026-02-20 16:07:37 -06:00
|
|
|
|
padding: 0;
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
line-height: 1.5;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 16:07:37 -06:00
|
|
|
|
.paperclip-mdxeditor [class*="_contentEditable_"] {
|
|
|
|
|
|
padding: 0.375rem 0.625rem !important;
|
2026-02-20 13:47:13 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor--borderless [class*="_contentEditable_"] {
|
|
|
|
|
|
padding: 0 !important;
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor [class*="_placeholder_"] {
|
|
|
|
|
|
font-size: 0.875rem;
|
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
|
color: var(--muted-foreground);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content {
|
|
|
|
|
|
font-size: inherit;
|
|
|
|
|
|
line-height: inherit;
|
|
|
|
|
|
color: inherit;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-13 21:30:48 -05:00
|
|
|
|
.paperclip-edit-in-place-content {
|
|
|
|
|
|
font-size: 0.9375rem;
|
|
|
|
|
|
line-height: 1.75rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
.paperclip-mdxeditor-content > *:first-child {
|
|
|
|
|
|
margin-top: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content > *:last-child {
|
|
|
|
|
|
margin-bottom: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content p {
|
|
|
|
|
|
margin: 0;
|
2026-03-13 21:30:48 -05:00
|
|
|
|
line-height: inherit;
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content p + p {
|
2026-03-13 21:30:48 -05:00
|
|
|
|
margin-top: 1.1em;
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-27 07:54:26 -05:00
|
|
|
|
.paperclip-mdxeditor-content a:not(.paperclip-mention-chip):not(.paperclip-project-mention-chip) {
|
|
|
|
|
|
color: color-mix(in oklab, var(--foreground) 76%, #0969da 24%);
|
|
|
|
|
|
text-decoration: underline;
|
|
|
|
|
|
text-underline-offset: 0.15em;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark .paperclip-mdxeditor-content a:not(.paperclip-mention-chip):not(.paperclip-project-mention-chip) {
|
|
|
|
|
|
color: color-mix(in oklab, var(--foreground) 80%, #58a6ff 20%);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-21 14:48:10 -05:00
|
|
|
|
.paperclip-mdxeditor-content a.paperclip-mention-chip,
|
2026-03-02 13:31:58 -06:00
|
|
|
|
.paperclip-mdxeditor-content a.paperclip-project-mention-chip {
|
|
|
|
|
|
display: inline-flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 0.25rem;
|
|
|
|
|
|
margin: 0 0.1rem;
|
|
|
|
|
|
padding: 0.05rem 0.45rem;
|
|
|
|
|
|
border: 1px solid var(--border);
|
|
|
|
|
|
border-radius: 999px;
|
|
|
|
|
|
font-size: 0.75rem;
|
|
|
|
|
|
line-height: 1.3;
|
|
|
|
|
|
text-decoration: none;
|
2026-03-24 10:40:59 -05:00
|
|
|
|
vertical-align: middle;
|
2026-03-02 13:31:58 -06:00
|
|
|
|
white-space: nowrap;
|
|
|
|
|
|
user-select: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-21 14:48:10 -05:00
|
|
|
|
.paperclip-mdxeditor-content a.paperclip-mention-chip::before,
|
|
|
|
|
|
a.paperclip-mention-chip::before {
|
|
|
|
|
|
content: "";
|
|
|
|
|
|
flex: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content a.paperclip-mention-chip[data-mention-kind="project"]::before,
|
|
|
|
|
|
a.paperclip-mention-chip[data-mention-kind="project"]::before {
|
|
|
|
|
|
width: 0.45rem;
|
|
|
|
|
|
height: 0.45rem;
|
|
|
|
|
|
border-radius: 999px;
|
|
|
|
|
|
background-color: var(--paperclip-mention-project-color, currentColor);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content a.paperclip-mention-chip[data-mention-kind="agent"]::before,
|
|
|
|
|
|
a.paperclip-mention-chip[data-mention-kind="agent"]::before {
|
|
|
|
|
|
width: 0.75rem;
|
|
|
|
|
|
height: 0.75rem;
|
|
|
|
|
|
background-color: currentColor;
|
|
|
|
|
|
-webkit-mask-image: var(--paperclip-mention-icon-mask);
|
|
|
|
|
|
mask-image: var(--paperclip-mention-icon-mask);
|
|
|
|
|
|
-webkit-mask-position: center;
|
|
|
|
|
|
mask-position: center;
|
|
|
|
|
|
-webkit-mask-repeat: no-repeat;
|
|
|
|
|
|
mask-repeat: no-repeat;
|
|
|
|
|
|
-webkit-mask-size: contain;
|
|
|
|
|
|
mask-size: contain;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
.paperclip-mdxeditor-content ul,
|
|
|
|
|
|
.paperclip-mdxeditor-content ol {
|
2026-03-13 21:30:48 -05:00
|
|
|
|
margin: 1.1em 0;
|
|
|
|
|
|
padding-left: 1.6em;
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content ul {
|
|
|
|
|
|
list-style: disc;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content ol {
|
|
|
|
|
|
list-style: decimal;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content li {
|
|
|
|
|
|
display: list-item;
|
2026-03-13 21:30:48 -05:00
|
|
|
|
margin: 0.3em 0;
|
|
|
|
|
|
line-height: inherit;
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content li::marker {
|
|
|
|
|
|
color: var(--muted-foreground);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-13 21:30:48 -05:00
|
|
|
|
.paperclip-mdxeditor-content h1 {
|
2026-03-16 12:33:20 -05:00
|
|
|
|
margin: 1.4em 0 0.9em;
|
2026-03-13 21:30:48 -05:00
|
|
|
|
font-size: 1.75em;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
line-height: 1.2;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content h2 {
|
2026-03-16 12:33:20 -05:00
|
|
|
|
margin: 1.3em 0 0.85em;
|
2026-03-13 21:30:48 -05:00
|
|
|
|
font-size: 1.35em;
|
|
|
|
|
|
font-weight: 700;
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
line-height: 1.3;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-13 21:30:48 -05:00
|
|
|
|
.paperclip-mdxeditor-content h3 {
|
2026-03-16 12:33:20 -05:00
|
|
|
|
margin: 1.2em 0 0.8em;
|
2026-03-13 21:30:48 -05:00
|
|
|
|
font-size: 1.15em;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
line-height: 1.35;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
.paperclip-mdxeditor-content img {
|
|
|
|
|
|
max-height: 18rem;
|
|
|
|
|
|
border-radius: calc(var(--radius) - 2px);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content blockquote {
|
2026-03-13 21:30:48 -05:00
|
|
|
|
margin: 1.2em 0;
|
|
|
|
|
|
padding-left: 1em;
|
|
|
|
|
|
border-left: 3px solid var(--border);
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
color: var(--muted-foreground);
|
2026-03-13 21:30:48 -05:00
|
|
|
|
line-height: inherit;
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content code {
|
|
|
|
|
|
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
2026-03-21 11:38:27 -05:00
|
|
|
|
font-size: 1em;
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content pre {
|
2026-03-15 10:48:27 -05:00
|
|
|
|
margin: 0.4rem 0;
|
2026-03-15 14:39:09 -05:00
|
|
|
|
padding: 0;
|
2026-03-15 10:48:27 -05:00
|
|
|
|
border: 1px solid color-mix(in oklab, var(--foreground) 12%, transparent);
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
border-radius: calc(var(--radius) - 3px);
|
2026-03-15 10:48:27 -05:00
|
|
|
|
background: #1e1e2e;
|
|
|
|
|
|
color: #cdd6f4;
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
overflow-x: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-15 14:39:09 -05:00
|
|
|
|
/* Dark theme for CodeMirror code blocks inside the MDXEditor.
|
|
|
|
|
|
Overrides the default cm6-theme-basic-light that MDXEditor bundles. */
|
|
|
|
|
|
.paperclip-mdxeditor .cm-editor {
|
|
|
|
|
|
background-color: #1e1e2e !important;
|
|
|
|
|
|
color: #cdd6f4 !important;
|
2026-03-21 11:38:27 -05:00
|
|
|
|
font-size: 1em;
|
2026-03-15 14:39:09 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor .cm-gutters {
|
|
|
|
|
|
background-color: #181825 !important;
|
|
|
|
|
|
color: #585b70 !important;
|
|
|
|
|
|
border-right: 1px solid #313244 !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor .cm-activeLineGutter {
|
|
|
|
|
|
background-color: #1e1e2e !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor .cm-activeLine {
|
|
|
|
|
|
background-color: color-mix(in oklab, #cdd6f4 5%, transparent) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor .cm-cursor,
|
|
|
|
|
|
.paperclip-mdxeditor .cm-dropCursor {
|
|
|
|
|
|
border-left-color: #cdd6f4 !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor .cm-selectionBackground {
|
|
|
|
|
|
background-color: color-mix(in oklab, #89b4fa 25%, transparent) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor .cm-focused .cm-selectionBackground {
|
|
|
|
|
|
background-color: color-mix(in oklab, #89b4fa 30%, transparent) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor .cm-content {
|
|
|
|
|
|
caret-color: #cdd6f4;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* MDXEditor code block language selector – show on hover only */
|
2026-03-15 10:48:27 -05:00
|
|
|
|
.paperclip-mdxeditor-content [class*="_codeMirrorWrapper_"] {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mdxeditor-content [class*="_codeMirrorToolbar_"],
|
|
|
|
|
|
.paperclip-mdxeditor-content [class*="_codeBlockToolbar_"] {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 0.25rem;
|
|
|
|
|
|
right: 0.25rem;
|
|
|
|
|
|
z-index: 2;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transition: opacity 150ms ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-15 14:39:09 -05:00
|
|
|
|
.paperclip-mdxeditor-content [class*="_codeMirrorToolbar_"] select,
|
|
|
|
|
|
.paperclip-mdxeditor-content [class*="_codeBlockToolbar_"] select {
|
|
|
|
|
|
background-color: #313244;
|
|
|
|
|
|
color: #cdd6f4;
|
|
|
|
|
|
border-color: #45475a;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-15 10:48:27 -05:00
|
|
|
|
.paperclip-mdxeditor-content [class*="_codeMirrorWrapper_"]:hover [class*="_codeMirrorToolbar_"],
|
|
|
|
|
|
.paperclip-mdxeditor-content [class*="_codeMirrorWrapper_"]:hover [class*="_codeBlockToolbar_"],
|
|
|
|
|
|
.paperclip-mdxeditor-content [class*="_codeMirrorWrapper_"]:focus-within [class*="_codeMirrorToolbar_"],
|
|
|
|
|
|
.paperclip-mdxeditor-content [class*="_codeMirrorWrapper_"]:focus-within [class*="_codeBlockToolbar_"] {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-03 09:28:49 -06:00
|
|
|
|
/* Rendered markdown code blocks & inline code (prose/MarkdownBody context).
|
2026-03-15 14:27:34 -05:00
|
|
|
|
Dark theme code blocks with compact sizing.
|
|
|
|
|
|
Override prose CSS variables so prose-invert can't revert to defaults. */
|
|
|
|
|
|
.paperclip-markdown {
|
|
|
|
|
|
--tw-prose-pre-bg: #1e1e2e;
|
|
|
|
|
|
--tw-prose-pre-code: #cdd6f4;
|
|
|
|
|
|
--tw-prose-invert-pre-bg: #1e1e2e;
|
|
|
|
|
|
--tw-prose-invert-pre-code: #cdd6f4;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown pre {
|
|
|
|
|
|
border: 1px solid color-mix(in oklab, var(--foreground) 12%, transparent) !important;
|
|
|
|
|
|
border-radius: calc(var(--radius) - 3px) !important;
|
|
|
|
|
|
background-color: #1e1e2e !important;
|
|
|
|
|
|
color: #cdd6f4 !important;
|
|
|
|
|
|
padding: 0.5rem 0.65rem !important;
|
|
|
|
|
|
margin: 0.4rem 0 !important;
|
2026-03-21 11:38:27 -05:00
|
|
|
|
font-size: 1em !important;
|
2026-03-15 10:48:27 -05:00
|
|
|
|
overflow-x: auto;
|
2026-03-15 14:27:34 -05:00
|
|
|
|
white-space: pre;
|
2026-03-03 09:28:49 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-15 14:27:34 -05:00
|
|
|
|
.paperclip-markdown code {
|
2026-03-03 09:28:49 -06:00
|
|
|
|
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
2026-03-21 11:38:27 -05:00
|
|
|
|
font-size: 1em;
|
2026-03-03 09:28:49 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-15 14:27:34 -05:00
|
|
|
|
.paperclip-markdown pre code {
|
|
|
|
|
|
font-size: inherit;
|
|
|
|
|
|
color: inherit;
|
|
|
|
|
|
background: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-03 09:28:49 -06:00
|
|
|
|
/* Remove backtick pseudo-elements from inline code (prose default adds them) */
|
|
|
|
|
|
.prose code::before,
|
|
|
|
|
|
.prose code::after {
|
|
|
|
|
|
content: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Inline code background (not inside a code block) */
|
|
|
|
|
|
.prose :not(pre) > code {
|
|
|
|
|
|
background-color: color-mix(in oklab, var(--accent) 60%, transparent);
|
|
|
|
|
|
padding: 0.15em 0.35em;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-21 08:12:49 -05:00
|
|
|
|
.dark .prose :not(pre) > code {
|
|
|
|
|
|
background-color: #ffffff0f;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-10 20:55:41 -05:00
|
|
|
|
.paperclip-markdown {
|
|
|
|
|
|
color: var(--foreground);
|
|
|
|
|
|
font-size: 0.9375rem;
|
|
|
|
|
|
line-height: 1.6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown > :first-child {
|
|
|
|
|
|
margin-top: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown > :last-child {
|
|
|
|
|
|
margin-bottom: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown :where(p, ul, ol, blockquote, pre, table) {
|
|
|
|
|
|
margin-top: 0.7rem;
|
|
|
|
|
|
margin-bottom: 0.7rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown :where(ul, ol) {
|
|
|
|
|
|
padding-left: 1.15rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown ul {
|
|
|
|
|
|
list-style-type: disc;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown ol {
|
|
|
|
|
|
list-style-type: decimal;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown li {
|
|
|
|
|
|
margin: 0.14rem 0;
|
|
|
|
|
|
padding-left: 0.2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown li > :where(p, ul, ol) {
|
|
|
|
|
|
margin-top: 0.3rem;
|
|
|
|
|
|
margin-bottom: 0.3rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown li::marker {
|
|
|
|
|
|
color: var(--muted-foreground);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-16 12:33:20 -05:00
|
|
|
|
.paperclip-markdown h1,
|
|
|
|
|
|
.paperclip-markdown h2,
|
|
|
|
|
|
.paperclip-markdown h3,
|
|
|
|
|
|
.paperclip-markdown h4 {
|
|
|
|
|
|
margin-top: 1.75rem;
|
2026-03-10 20:55:41 -05:00
|
|
|
|
margin-bottom: 0.45rem;
|
|
|
|
|
|
color: var(--foreground);
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
letter-spacing: -0.01em;
|
|
|
|
|
|
line-height: 1.3;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown h1 {
|
|
|
|
|
|
font-size: 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown h2 {
|
|
|
|
|
|
font-size: 1.25rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown h3 {
|
|
|
|
|
|
font-size: 1.05rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown h4 {
|
|
|
|
|
|
font-size: 0.95rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown :where(strong, b) {
|
|
|
|
|
|
color: var(--foreground);
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown a {
|
|
|
|
|
|
color: color-mix(in oklab, var(--foreground) 76%, #0969da 24%);
|
|
|
|
|
|
text-decoration: underline;
|
|
|
|
|
|
text-underline-offset: 0.15em;
|
2026-03-27 07:54:26 -05:00
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown a.paperclip-mention-chip {
|
|
|
|
|
|
text-decoration: none;
|
2026-03-10 20:55:41 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark .paperclip-markdown a {
|
|
|
|
|
|
color: color-mix(in oklab, var(--foreground) 80%, #58a6ff 20%);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown blockquote {
|
|
|
|
|
|
margin-left: 0;
|
|
|
|
|
|
padding-left: 0.95rem;
|
|
|
|
|
|
border-left: 0.24rem solid color-mix(in oklab, var(--border) 84%, var(--muted-foreground) 16%);
|
|
|
|
|
|
color: var(--muted-foreground);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown hr {
|
|
|
|
|
|
margin: 1.25rem 0;
|
|
|
|
|
|
border-color: var(--border);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown img {
|
|
|
|
|
|
border-radius: calc(var(--radius) + 2px);
|
ui: apply interface polish from design article review
- Add global font smoothing (antialiased) to body
- Add tabular-nums to all numeric displays: MetricCard values, Costs page,
AgentDetail token/cost grids and tables, IssueDetail cost summary,
Companies page budget display
- Replace markdown image hard border with subtle inset box-shadow overlay
- Replace all animate-ping status dots with calmer animate-pulse across
AgentDetail, IssueDetail, Agents, sidebar, kanban, issues list, and
active agents panel
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 08:20:24 -05:00
|
|
|
|
box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--foreground) 10%, transparent);
|
2026-03-10 20:55:41 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown table {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-markdown th {
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
text-align: left;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-07 08:59:39 -06:00
|
|
|
|
.paperclip-mermaid {
|
|
|
|
|
|
margin: 0.5rem 0;
|
|
|
|
|
|
padding: 0.45rem 0.55rem;
|
|
|
|
|
|
border: 1px solid var(--border);
|
|
|
|
|
|
border-radius: calc(var(--radius) - 3px);
|
|
|
|
|
|
background-color: color-mix(in oklab, var(--accent) 35%, transparent);
|
|
|
|
|
|
overflow-x: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mermaid svg {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
width: max-content;
|
|
|
|
|
|
max-width: none;
|
|
|
|
|
|
min-width: 100%;
|
|
|
|
|
|
height: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mermaid-status {
|
|
|
|
|
|
margin: 0 0 0.45rem;
|
|
|
|
|
|
font-size: 0.75rem;
|
|
|
|
|
|
color: var(--muted-foreground);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mermaid-status-error {
|
|
|
|
|
|
color: var(--destructive);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.paperclip-mermaid-source {
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
border: 0;
|
|
|
|
|
|
background: transparent;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-03 09:28:49 -06:00
|
|
|
|
/* Project mention chips rendered inside MarkdownBody */
|
2026-03-21 14:48:10 -05:00
|
|
|
|
a.paperclip-mention-chip,
|
2026-03-03 09:28:49 -06:00
|
|
|
|
a.paperclip-project-mention-chip {
|
|
|
|
|
|
display: inline-flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 0.25rem;
|
|
|
|
|
|
margin: 0 0.1rem;
|
|
|
|
|
|
padding: 0.05rem 0.45rem;
|
|
|
|
|
|
border: 1px solid var(--border);
|
|
|
|
|
|
border-radius: 999px;
|
|
|
|
|
|
font-size: 0.75rem;
|
|
|
|
|
|
line-height: 1.3;
|
|
|
|
|
|
text-decoration: none;
|
2026-03-24 10:40:59 -05:00
|
|
|
|
vertical-align: middle;
|
2026-03-03 09:28:49 -06:00
|
|
|
|
white-space: nowrap;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-10 21:01:47 -05:00
|
|
|
|
/* Keep MDXEditor popups above app dialogs, even when they portal to <body>. */
|
|
|
|
|
|
[class*="_popupContainer_"] {
|
|
|
|
|
|
z-index: 81 !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[class*="_dialogOverlay_"] {
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
z-index: 80;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-10 21:01:47 -05:00
|
|
|
|
[class*="_dialogContent_"],
|
|
|
|
|
|
[class*="_largeDialogContent_"],
|
|
|
|
|
|
[class*="_popoverContent_"],
|
|
|
|
|
|
[class*="_linkDialogPopoverContent_"],
|
|
|
|
|
|
[class*="_tableColumnEditorPopoverContent_"],
|
|
|
|
|
|
[class*="_toolbarButtonDropdownContainer_"],
|
|
|
|
|
|
[class*="_toolbarNodeKindSelectContainer_"] {
|
Add MarkdownEditor component, asset image upload, and rich description editing
Introduce MarkdownEditor built on @mdxeditor/editor with headings,
lists, links, quotes, image upload with drag-and-drop, and themed CSS
integration. Add asset image upload API (routes, service, storage) and
wire image upload into InlineEditor multiline mode, NewIssueDialog,
NewProjectDialog, GoalDetail, IssueDetail, and ProjectDetail
description fields. Tighten prompt template editor styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:50:45 -06:00
|
|
|
|
z-index: 81 !important;
|
|
|
|
|
|
}
|