orcheo-studio 0.24.5 → 0.24.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/.bumpversion.cfg +1 -1
- package/dist/assets/{arc-C-7b0zH4.js → arc-D2-yXHYr.js} +1 -1
- package/dist/assets/{architectureDiagram-VXUJARFQ-Ciy8lV6J.js → architectureDiagram-VXUJARFQ-T90TGA7h.js} +1 -1
- package/dist/assets/{blockDiagram-VD42YOAC-dC88adQ_.js → blockDiagram-VD42YOAC-DD-sctie.js} +1 -1
- package/dist/assets/{c4Diagram-YG6GDRKO-BiHVvXEu.js → c4Diagram-YG6GDRKO-CMFh9ow5.js} +1 -1
- package/dist/assets/channel-BHDMf1UK.js +1 -0
- package/dist/assets/{chunk-4BX2VUAB-C6V7Huup.js → chunk-4BX2VUAB-CxEXc54f.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-DRmZnlbz.js → chunk-55IACEB6-Cu79bwG9.js} +1 -1
- package/dist/assets/{chunk-B4BG7PRW-DwV5xRJr.js → chunk-B4BG7PRW-B9kTs9bC.js} +1 -1
- package/dist/assets/{chunk-DI55MBZ5-BHsUZ0IJ.js → chunk-DI55MBZ5-C4vlj7YJ.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-6Q-Lz0AM.js → chunk-FMBD7UC4-BAbI4xA2.js} +1 -1
- package/dist/assets/{chunk-QN33PNHL-BFy_ml8O.js → chunk-QN33PNHL-Byawnjwi.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-C1fN91FN.js → chunk-QZHKN3VN-X9swQQ1H.js} +1 -1
- package/dist/assets/{chunk-TZMSLE5B-FLRSQ_Fi.js → chunk-TZMSLE5B-qdHYq1mZ.js} +1 -1
- package/dist/assets/classDiagram-2ON5EDUG-CmzZyWnG.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-CmzZyWnG.js +1 -0
- package/dist/assets/clone-BCqfTdPh.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-BSWP1X1D.js → cose-bilkent-S5V4N54A-DxP3F1r-.js} +1 -1
- package/dist/assets/{dagre-6UL2VRFP-CYoZFlcz.js → dagre-6UL2VRFP-JZzCnaiy.js} +1 -1
- package/dist/assets/{diagram-PSM6KHXK-B8RGX0YL.js → diagram-PSM6KHXK-xDDV3S5Y.js} +1 -1
- package/dist/assets/{diagram-QEK2KX5R-ChWXJ8p_.js → diagram-QEK2KX5R-GQ6mbBr_.js} +1 -1
- package/dist/assets/{diagram-S2PKOQOG-Dwic0Fjn.js → diagram-S2PKOQOG-CuoOnnN6.js} +1 -1
- package/dist/assets/{erDiagram-Q2GNP2WA-0NSDB0DX.js → erDiagram-Q2GNP2WA-CFMLhasi.js} +1 -1
- package/dist/assets/{flowDiagram-NV44I4VS-DEoGWs9L.js → flowDiagram-NV44I4VS-Dfz2XZo7.js} +1 -1
- package/dist/assets/{ganttDiagram-JELNMOA3-DqzV4S6l.js → ganttDiagram-JELNMOA3-Bv566-v-.js} +1 -1
- package/dist/assets/{gitGraphDiagram-V2S2FVAM-B-EIQM_H.js → gitGraphDiagram-V2S2FVAM-Bp0dgH1E.js} +1 -1
- package/dist/assets/{graph-Ha1DTJNG.js → graph-Dkgmy-o1.js} +1 -1
- package/dist/assets/index-BoHYiVT1.js +810 -0
- package/dist/assets/index-CES1mKJf.css +1 -0
- package/dist/assets/{infoDiagram-HS3SLOUP-C4_vpEkn.js → infoDiagram-HS3SLOUP-CoZX6U-w.js} +1 -1
- package/dist/assets/{isUndefined-DkuoqItu.js → isUndefined-DFmulv-o.js} +1 -1
- package/dist/assets/{journeyDiagram-XKPGCS4Q-BxY4e6OZ.js → journeyDiagram-XKPGCS4Q-CI7nMgKu.js} +1 -1
- package/dist/assets/{kanban-definition-3W4ZIXB7-BTX3_Q7O.js → kanban-definition-3W4ZIXB7-CyVNs44-.js} +1 -1
- package/dist/assets/{layout-Dt1W0fl0.js → layout-DZqvH5JV.js} +1 -1
- package/dist/assets/{linear-CjywSMUX.js → linear-CiLQWbi5.js} +1 -1
- package/dist/assets/{min-Dblq6bty.js → min-CmXn2PCy.js} +1 -1
- package/dist/assets/{mindmap-definition-VGOIOE7T-C5P7bAFm.js → mindmap-definition-VGOIOE7T-B_F2Nu7b.js} +1 -1
- package/dist/assets/{pieDiagram-ADFJNKIX-BSMylwok.js → pieDiagram-ADFJNKIX-BJvzYaii.js} +1 -1
- package/dist/assets/{quadrantDiagram-AYHSOK5B-C74B7bqa.js → quadrantDiagram-AYHSOK5B-Cqk76fvz.js} +1 -1
- package/dist/assets/{requirementDiagram-UZGBJVZJ-CvPzL8Le.js → requirementDiagram-UZGBJVZJ-vGfLRbYk.js} +1 -1
- package/dist/assets/{sankeyDiagram-TZEHDZUN-BFHm6g6t.js → sankeyDiagram-TZEHDZUN-CregXq64.js} +1 -1
- package/dist/assets/{sequenceDiagram-WL72ISMW-e74mJ0xk.js → sequenceDiagram-WL72ISMW-DNrzmFke.js} +1 -1
- package/dist/assets/{stateDiagram-FKZM4ZOC-VLQxNVA7.js → stateDiagram-FKZM4ZOC-gdr8ZncR.js} +1 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-BbOMPcrN.js +1 -0
- package/dist/assets/{timeline-definition-IT6M3QCI-oveNP_QD.js → timeline-definition-IT6M3QCI-CdtbG32P.js} +1 -1
- package/dist/assets/{treemap-GDKQZRPO-Cowimd29.js → treemap-GDKQZRPO-uMGJkzE9.js} +1 -1
- package/dist/assets/{xychartDiagram-PRI3JC2R-CP9Fm_aO.js → xychartDiagram-PRI3JC2R-BsBFf9PQ.js} +1 -1
- package/dist/favicon.ico +0 -0
- package/dist/index.html +8 -2
- package/dist/orcheo-mark.png +0 -0
- package/index.html +6 -0
- package/package.json +1 -1
- package/public/favicon.ico +0 -0
- package/public/orcheo-mark.png +0 -0
- package/src/design-system/ui/button.tsx +2 -2
- package/src/features/account/components/settings/appearance-settings-tab.tsx +1 -1
- package/src/features/account/pages/profile/components/profile-general-tab.tsx +1 -1
- package/src/features/auth/pages/login.tsx +1 -1
- package/src/features/auth/pages/verify.tsx +1 -1
- package/src/features/chatkit/components/public-chat-error-boundary.tsx +1 -1
- package/src/features/chatkit/components/public-chat-widget.tsx +2 -3
- package/src/features/chatkit/lib/chatkit-theme.ts +3 -2
- package/src/features/chatkit/pages/public-chat.tsx +17 -15
- package/src/features/shared/components/top-navigation/studio-brand.tsx +1 -1
- package/src/features/shared/components/workspace-bootstrap-gate.tsx +4 -4
- package/src/features/workflow/components/dialogs/credential-access-badge.tsx +2 -2
- package/src/features/workflow/components/dialogs/credential-status-badge.tsx +2 -2
- package/src/features/workflow/components/dialogs/credentials-table.tsx +1 -1
- package/src/features/workflow/components/dialogs/update-workflow-dialog.tsx +34 -78
- package/src/features/workflow/components/dialogs/upload-workflow-dialog.tsx +40 -136
- package/src/features/workflow/components/dialogs/workflow-folder-picker.tsx +178 -0
- package/src/features/workflow/components/panels/workflow-diff-dialog.tsx +5 -5
- package/src/features/workflow/components/panels/workflow-history-table.tsx +3 -4
- package/src/features/workflow/components/trace/agent-prism/theme/theme.css +74 -74
- package/src/features/workflow/lib/mermaid-renderer.ts +86 -2
- package/src/features/workflow/lib/workflow-folder-selection.ts +239 -0
- package/src/features/workflow/pages/workflow/components/settings-tab-content.tsx +24 -9
- package/src/features/workflow/pages/workflow/components/workflow-tab-content.tsx +8 -5
- package/src/features/workflow/pages/workflow-gallery/workflow-card.tsx +16 -16
- package/src/index.css +126 -59
- package/tailwind.config.js +50 -2
- package/dist/assets/channel-pJdT5i-M.js +0 -1
- package/dist/assets/classDiagram-2ON5EDUG-CNT-EGNU.js +0 -1
- package/dist/assets/classDiagram-v2-WZHVMYZB-CNT-EGNU.js +0 -1
- package/dist/assets/clone-BCi0j082.js +0 -1
- package/dist/assets/index-DTxvVcXp.js +0 -795
- package/dist/assets/index-Df4jFRhd.css +0 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-Bbpq2t6B.js +0 -1
- package/dist/orcheo.png +0 -0
- package/public/orcheo.png +0 -0
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
TooltipProvider,
|
|
35
35
|
TooltipTrigger,
|
|
36
36
|
} from "@/design-system/ui/tooltip";
|
|
37
|
+
import { useColorScheme } from "@/hooks/use-color-scheme";
|
|
37
38
|
import { toast } from "@/hooks/use-toast";
|
|
38
39
|
import { ConfirmDeleteWorkflowDialog } from "@features/workflow/components/dialogs/confirm-delete-workflow-dialog";
|
|
39
40
|
import { PublishWorkflowDialog } from "@features/workflow/components/dialogs/publish-workflow-dialog";
|
|
@@ -239,7 +240,7 @@ const resolveRunResultBanner = (
|
|
|
239
240
|
return {
|
|
240
241
|
Icon: CheckCircle2,
|
|
241
242
|
className:
|
|
242
|
-
"border-
|
|
243
|
+
"border-success/40 bg-success-muted text-success-muted-foreground",
|
|
243
244
|
message: "Workflow run succeeded. See the full trace on the Trace tab.",
|
|
244
245
|
};
|
|
245
246
|
case "failed":
|
|
@@ -252,7 +253,7 @@ const resolveRunResultBanner = (
|
|
|
252
253
|
return {
|
|
253
254
|
Icon: AlertTriangle,
|
|
254
255
|
className:
|
|
255
|
-
"border-
|
|
256
|
+
"border-warning/40 bg-warning-muted text-warning-muted-foreground",
|
|
256
257
|
message:
|
|
257
258
|
"Workflow run finished with partial results. Check the Trace tab for details.",
|
|
258
259
|
};
|
|
@@ -261,7 +262,7 @@ const resolveRunResultBanner = (
|
|
|
261
262
|
return {
|
|
262
263
|
Icon: AlertTriangle,
|
|
263
264
|
className:
|
|
264
|
-
"border-
|
|
265
|
+
"border-warning/40 bg-warning-muted text-warning-muted-foreground",
|
|
265
266
|
message:
|
|
266
267
|
"Workflow run ended without a final status. Check the Trace tab for the latest status.",
|
|
267
268
|
};
|
|
@@ -289,6 +290,7 @@ export function WorkflowTabContent({
|
|
|
289
290
|
initialShareUrl,
|
|
290
291
|
missingCredentials = [],
|
|
291
292
|
}: WorkflowTabContentProps) {
|
|
293
|
+
const colorScheme = useColorScheme();
|
|
292
294
|
const navigate = useNavigate();
|
|
293
295
|
const uploadsAllowed = useUploadsAllowed();
|
|
294
296
|
const latestVersion = versions.at(-1);
|
|
@@ -707,7 +709,7 @@ export function WorkflowTabContent({
|
|
|
707
709
|
return (
|
|
708
710
|
<>
|
|
709
711
|
<div className="flex min-h-0 flex-1 flex-col gap-4 p-4">
|
|
710
|
-
<div className="flex items-center justify-between
|
|
712
|
+
<div className="flex items-center justify-between pb-3">
|
|
711
713
|
<div>
|
|
712
714
|
<h2 className="text-lg font-semibold">
|
|
713
715
|
{workflowName || "Workflow"}
|
|
@@ -915,7 +917,7 @@ export function WorkflowTabContent({
|
|
|
915
917
|
|
|
916
918
|
{latestVersion && mermaidSource && !diagramError && (
|
|
917
919
|
<div className="min-h-0 flex flex-1 flex-col">
|
|
918
|
-
<div className="min-h-0 flex-1 overflow-hidden">
|
|
920
|
+
<div className="dot-grid min-h-0 flex-1 overflow-hidden rounded-xl border border-border bg-muted/30">
|
|
919
921
|
{diagramNodes.length > 0 ? (
|
|
920
922
|
<ReactFlow
|
|
921
923
|
key={`${latestVersion.id}-mermaid-svg`}
|
|
@@ -929,6 +931,7 @@ export function WorkflowTabContent({
|
|
|
929
931
|
nodesConnectable={false}
|
|
930
932
|
elementsSelectable={false}
|
|
931
933
|
zoomOnDoubleClick={false}
|
|
934
|
+
colorMode={colorScheme}
|
|
932
935
|
className="h-full w-full"
|
|
933
936
|
proOptions={{ hideAttribution: true }}
|
|
934
937
|
style={{ background: "transparent" }}
|
|
@@ -213,7 +213,7 @@ export const WorkflowCard = ({
|
|
|
213
213
|
<>
|
|
214
214
|
<Card
|
|
215
215
|
className={cn(
|
|
216
|
-
"flex w-full flex-col overflow-hidden border-border/70 bg-card text-card-foreground shadow-[0_16px_48px_rgba(
|
|
216
|
+
"flex w-full flex-col overflow-hidden border-border/70 bg-card text-card-foreground shadow-[0_16px_48px_rgba(40,30,16,0.1)] transition-transform duration-200 hover:-translate-y-1 dark:shadow-[0_16px_48px_rgba(0,0,0,0.45)] text-[20px] md:text-[14px]",
|
|
217
217
|
WORKFLOW_GALLERY_CARD_ASPECT_CLASSNAME,
|
|
218
218
|
isClickable && "cursor-pointer",
|
|
219
219
|
)}
|
|
@@ -223,7 +223,7 @@ export const WorkflowCard = ({
|
|
|
223
223
|
role={isClickable ? "button" : undefined}
|
|
224
224
|
tabIndex={isClickable ? 0 : undefined}
|
|
225
225
|
>
|
|
226
|
-
<CardHeader className="relative flex h-12 items-center justify-center overflow-hidden border-b border-border/70 bg-gradient-to-r from-
|
|
226
|
+
<CardHeader className="relative flex h-12 items-center justify-center overflow-hidden border-b border-border/70 bg-gradient-to-r from-stone-950 via-stone-900 to-stone-800 px-4 py-0 text-center text-stone-50 dark:border-border/60 dark:from-stone-100 dark:via-stone-50 dark:to-stone-200 dark:text-stone-950">
|
|
227
227
|
<div
|
|
228
228
|
className="absolute inset-0 opacity-25 dark:opacity-40"
|
|
229
229
|
aria-hidden="true"
|
|
@@ -235,7 +235,7 @@ export const WorkflowCard = ({
|
|
|
235
235
|
/>
|
|
236
236
|
|
|
237
237
|
<div className="relative z-10 flex items-center gap-2">
|
|
238
|
-
<span className="font-mono text-[10px] uppercase tracking-[0.22em] text-white/70 dark:text-
|
|
238
|
+
<span className="font-mono text-[10px] uppercase tracking-[0.22em] text-white/70 dark:text-stone-700">
|
|
239
239
|
{headerLabel}
|
|
240
240
|
</span>
|
|
241
241
|
</div>
|
|
@@ -253,7 +253,7 @@ export const WorkflowCard = ({
|
|
|
253
253
|
<Button
|
|
254
254
|
variant="ghost"
|
|
255
255
|
size="icon"
|
|
256
|
-
className="absolute right-2 top-2 z-10 h-7 w-7 text-white/75 hover:bg-white/10 hover:text-white dark:text-
|
|
256
|
+
className="absolute right-2 top-2 z-10 h-7 w-7 text-white/75 hover:bg-white/10 hover:text-white dark:text-stone-700 dark:hover:bg-stone-950/10 dark:hover:text-stone-950"
|
|
257
257
|
onClick={stopPropagation}
|
|
258
258
|
onPointerDown={stopPropagation}
|
|
259
259
|
aria-label="Workflow actions"
|
|
@@ -290,7 +290,7 @@ export const WorkflowCard = ({
|
|
|
290
290
|
<>
|
|
291
291
|
<DropdownMenuSeparator />
|
|
292
292
|
<DropdownMenuItem
|
|
293
|
-
className="text-
|
|
293
|
+
className="text-destructive"
|
|
294
294
|
onSelect={(event) => {
|
|
295
295
|
event.preventDefault();
|
|
296
296
|
event.stopPropagation();
|
|
@@ -314,31 +314,31 @@ export const WorkflowCard = ({
|
|
|
314
314
|
className={cn(
|
|
315
315
|
"absolute left-0 top-0 flex items-center gap-1 rounded-md border px-2 py-1 shadow-sm",
|
|
316
316
|
uploadError
|
|
317
|
-
? "border-
|
|
318
|
-
: "border-border/70 bg-muted/60 text-muted-foreground dark:bg-
|
|
317
|
+
? "border-destructive/40 bg-destructive-muted text-destructive-muted-foreground"
|
|
318
|
+
: "border-border/70 bg-muted/60 text-muted-foreground dark:bg-background/30",
|
|
319
319
|
)}
|
|
320
320
|
>
|
|
321
321
|
<span
|
|
322
322
|
className={cn(
|
|
323
323
|
"h-1.5 w-1.5 rounded-full",
|
|
324
324
|
uploadError
|
|
325
|
-
? "bg-
|
|
326
|
-
: "bg-
|
|
325
|
+
? "bg-destructive shadow-[0_0_6px_hsl(var(--destructive)/0.5)]"
|
|
326
|
+
: "bg-foreground shadow-[0_0_6px_hsl(var(--foreground)/0.35)]",
|
|
327
327
|
)}
|
|
328
328
|
/>
|
|
329
329
|
<span
|
|
330
330
|
className={cn(
|
|
331
331
|
"font-mono text-[9px] font-bold uppercase tracking-[0.1em]",
|
|
332
332
|
uploadError
|
|
333
|
-
? "text-
|
|
334
|
-
: "text-
|
|
333
|
+
? "text-destructive-muted-foreground"
|
|
334
|
+
: "text-muted-foreground",
|
|
335
335
|
)}
|
|
336
336
|
>
|
|
337
337
|
{uploadError ? "Error" : "AI"}
|
|
338
338
|
</span>
|
|
339
339
|
</div>
|
|
340
340
|
|
|
341
|
-
<div className="flex h-[7em] w-[7em] items-center justify-center overflow-hidden rounded-full border-4 border-
|
|
341
|
+
<div className="flex h-[7em] w-[7em] items-center justify-center overflow-hidden rounded-full border-4 border-primary bg-muted shadow-[0_4px_16px_rgba(248,120,37,0.24)] dark:shadow-[0_4px_16px_rgba(0,0,0,0.35)]">
|
|
342
342
|
<img
|
|
343
343
|
src={avatarUrl}
|
|
344
344
|
alt={workflow.name}
|
|
@@ -354,7 +354,7 @@ export const WorkflowCard = ({
|
|
|
354
354
|
<Button
|
|
355
355
|
variant="outline"
|
|
356
356
|
size="icon"
|
|
357
|
-
className="absolute right-10 top-0 h-8 w-8 border-
|
|
357
|
+
className="absolute right-10 top-0 h-8 w-8 border-success/40 bg-success-muted text-success-muted-foreground hover:bg-success/20"
|
|
358
358
|
aria-label={`Update ${workflow.name} to candidate version ${candidateUpdate.latestVersion}`}
|
|
359
359
|
data-card-action="true"
|
|
360
360
|
onClick={(event) => {
|
|
@@ -376,7 +376,7 @@ export const WorkflowCard = ({
|
|
|
376
376
|
<p>{candidateUpdate.latestSummary}</p>
|
|
377
377
|
) : null}
|
|
378
378
|
{candidateUpdate.firstMigration ? (
|
|
379
|
-
<p className="text-
|
|
379
|
+
<p className="text-warning-muted-foreground">
|
|
380
380
|
{candidateUpdate.firstMigration}
|
|
381
381
|
</p>
|
|
382
382
|
) : null}
|
|
@@ -490,7 +490,7 @@ export const WorkflowCard = ({
|
|
|
490
490
|
</DialogHeader>
|
|
491
491
|
|
|
492
492
|
{candidateUpdate.isMajor ? (
|
|
493
|
-
<div className="rounded-md border border-
|
|
493
|
+
<div className="rounded-md border border-warning/50 bg-warning-muted px-3 py-2 text-sm text-warning-muted-foreground">
|
|
494
494
|
This is a major candidate update. Review migration notes before
|
|
495
495
|
applying it to this colleague.
|
|
496
496
|
</div>
|
|
@@ -508,7 +508,7 @@ export const WorkflowCard = ({
|
|
|
508
508
|
</div>
|
|
509
509
|
<p className="mt-1 text-muted-foreground">{note.summary}</p>
|
|
510
510
|
{note.migration ? (
|
|
511
|
-
<p className="mt-2 text-
|
|
511
|
+
<p className="mt-2 text-warning-muted-foreground">
|
|
512
512
|
{note.migration}
|
|
513
513
|
</p>
|
|
514
514
|
) : null}
|
package/src/index.css
CHANGED
|
@@ -2,60 +2,98 @@
|
|
|
2
2
|
@tailwind components;
|
|
3
3
|
@tailwind utilities;
|
|
4
4
|
|
|
5
|
+
/*
|
|
6
|
+
* Theme derived from the Orcheo design system (orcheo-design-system/tokens/).
|
|
7
|
+
* Warm circuit-orchestration palette: Orcheo orange primary, warm ink neutral
|
|
8
|
+
* ramp (never cool/blue gray), parchment page background, warm semantic hues.
|
|
9
|
+
* Values are HSL triplets of the design-system hex tokens.
|
|
10
|
+
*/
|
|
5
11
|
@layer base {
|
|
6
12
|
:root {
|
|
7
|
-
--background:
|
|
8
|
-
--foreground:
|
|
9
|
-
--card: 0 0% 100%;
|
|
10
|
-
--card-foreground:
|
|
13
|
+
--background: 45 33% 95%; /* ink-50: warm off-white page */
|
|
14
|
+
--foreground: 43 9% 15%; /* ink-800: body text */
|
|
15
|
+
--card: 0 0% 100%; /* white raised surfaces */
|
|
16
|
+
--card-foreground: 43 9% 15%;
|
|
11
17
|
--popover: 0 0% 100%;
|
|
12
|
-
--popover-foreground:
|
|
13
|
-
--primary:
|
|
14
|
-
--primary-foreground: 0 0%
|
|
15
|
-
--
|
|
16
|
-
--
|
|
17
|
-
--
|
|
18
|
-
--
|
|
19
|
-
--
|
|
20
|
-
--
|
|
21
|
-
--
|
|
22
|
-
--
|
|
23
|
-
--
|
|
24
|
-
--
|
|
25
|
-
--
|
|
26
|
-
--
|
|
27
|
-
--
|
|
28
|
-
--
|
|
29
|
-
--
|
|
30
|
-
--
|
|
31
|
-
--
|
|
18
|
+
--popover-foreground: 43 9% 15%;
|
|
19
|
+
--primary: 24 94% 56%; /* orange-500: Orcheo orange */
|
|
20
|
+
--primary-foreground: 0 0% 100%;
|
|
21
|
+
--primary-hover: 22 80% 50%; /* orange-600 */
|
|
22
|
+
--primary-active: 21 83% 41%; /* orange-700 */
|
|
23
|
+
--secondary: 43 28% 90%; /* ink-100 */
|
|
24
|
+
--secondary-foreground: 45 8% 9%; /* ink-900 */
|
|
25
|
+
--muted: 43 28% 90%; /* ink-100 */
|
|
26
|
+
--muted-foreground: 42 8% 32%; /* ink-600 */
|
|
27
|
+
--accent: 43 28% 90%; /* ink-100: faint warm hover tint */
|
|
28
|
+
--accent-foreground: 45 8% 9%;
|
|
29
|
+
--destructive: 9 69% 48%; /* red-500: warm red */
|
|
30
|
+
--destructive-foreground: 0 0% 100%;
|
|
31
|
+
--destructive-muted: 13 80% 92%; /* red-100 */
|
|
32
|
+
--destructive-muted-foreground: 10 75% 39%; /* red-600 */
|
|
33
|
+
--success: 147 46% 33%; /* green-500: forest green */
|
|
34
|
+
--success-foreground: 0 0% 100%;
|
|
35
|
+
--success-muted: 146 32% 91%; /* green-100 */
|
|
36
|
+
--success-muted-foreground: 147 48% 27%; /* green-600 */
|
|
37
|
+
--warning: 41 82% 47%; /* amber-500: ochre amber */
|
|
38
|
+
--warning-foreground: 45 8% 9%;
|
|
39
|
+
--warning-muted: 43 81% 90%; /* amber-100 */
|
|
40
|
+
--warning-muted-foreground: 40 84% 39%; /* amber-600 */
|
|
41
|
+
--info: 207 42% 42%; /* blue-500: muted slate blue */
|
|
42
|
+
--info-foreground: 0 0% 100%;
|
|
43
|
+
--info-muted: 205 42% 92%; /* blue-100 */
|
|
44
|
+
--info-muted-foreground: 207 43% 33%; /* blue-600 */
|
|
45
|
+
--border: 42 22% 82%; /* ink-200 */
|
|
46
|
+
--input: 42 16% 71%; /* ink-300 */
|
|
47
|
+
--ring: 26 93% 61%; /* orange-400 focus ring */
|
|
48
|
+
--radius: 0.875rem; /* 14px cards; md maps to 10px controls */
|
|
49
|
+
--chart-1: 24 94% 56%; /* orange-500 */
|
|
50
|
+
--chart-2: 147 46% 33%; /* green-500 */
|
|
51
|
+
--chart-3: 207 42% 42%; /* blue-500 */
|
|
52
|
+
--chart-4: 41 82% 47%; /* amber-500 */
|
|
53
|
+
--chart-5: 34 45% 55%; /* tan-500 */
|
|
32
54
|
}
|
|
33
55
|
|
|
34
56
|
.dark {
|
|
35
|
-
--background:
|
|
36
|
-
--foreground:
|
|
37
|
-
--card:
|
|
38
|
-
--card-foreground:
|
|
39
|
-
--popover:
|
|
40
|
-
--popover-foreground:
|
|
41
|
-
--primary:
|
|
42
|
-
--primary-foreground:
|
|
43
|
-
--
|
|
44
|
-
--
|
|
45
|
-
--
|
|
46
|
-
--
|
|
47
|
-
--
|
|
48
|
-
--
|
|
49
|
-
--
|
|
50
|
-
--
|
|
51
|
-
--
|
|
52
|
-
--
|
|
53
|
-
--
|
|
54
|
-
--
|
|
55
|
-
--
|
|
56
|
-
--
|
|
57
|
-
--
|
|
58
|
-
--
|
|
57
|
+
--background: 60 8% 5%; /* ink-950 */
|
|
58
|
+
--foreground: 43 28% 90%; /* ink-100 */
|
|
59
|
+
--card: 45 8% 9%; /* ink-900 */
|
|
60
|
+
--card-foreground: 43 28% 90%;
|
|
61
|
+
--popover: 45 8% 9%;
|
|
62
|
+
--popover-foreground: 43 28% 90%;
|
|
63
|
+
--primary: 24 94% 56%; /* orange-500 */
|
|
64
|
+
--primary-foreground: 0 0% 100%;
|
|
65
|
+
--primary-hover: 26 93% 61%; /* orange-400: lighten on dark */
|
|
66
|
+
--primary-active: 28 93% 68%; /* orange-300 */
|
|
67
|
+
--secondary: 43 9% 15%; /* ink-800 */
|
|
68
|
+
--secondary-foreground: 43 28% 90%;
|
|
69
|
+
--muted: 43 9% 15%; /* ink-800 */
|
|
70
|
+
--muted-foreground: 41 10% 56%; /* ink-400 */
|
|
71
|
+
--accent: 43 9% 15%; /* ink-800 */
|
|
72
|
+
--accent-foreground: 43 28% 90%;
|
|
73
|
+
--destructive: 9 69% 48%;
|
|
74
|
+
--destructive-foreground: 0 0% 100%;
|
|
75
|
+
--destructive-muted: 10 75% 15%;
|
|
76
|
+
--destructive-muted-foreground: 11 70% 70%;
|
|
77
|
+
--success: 147 46% 33%;
|
|
78
|
+
--success-foreground: 0 0% 100%;
|
|
79
|
+
--success-muted: 147 48% 14%;
|
|
80
|
+
--success-muted-foreground: 147 35% 65%;
|
|
81
|
+
--warning: 41 82% 47%;
|
|
82
|
+
--warning-foreground: 60 8% 5%;
|
|
83
|
+
--warning-muted: 40 84% 14%;
|
|
84
|
+
--warning-muted-foreground: 41 70% 65%;
|
|
85
|
+
--info: 207 42% 42%;
|
|
86
|
+
--info-foreground: 0 0% 100%;
|
|
87
|
+
--info-muted: 207 43% 16%;
|
|
88
|
+
--info-muted-foreground: 207 45% 70%;
|
|
89
|
+
--border: 43 9% 15%; /* ink-800 */
|
|
90
|
+
--input: 42 9% 22%; /* ink-700 */
|
|
91
|
+
--ring: 26 93% 61%; /* orange-400 */
|
|
92
|
+
--chart-1: 26 93% 61%; /* orange-400 */
|
|
93
|
+
--chart-2: 147 46% 33%;
|
|
94
|
+
--chart-3: 207 42% 42%;
|
|
95
|
+
--chart-4: 41 82% 47%;
|
|
96
|
+
--chart-5: 34 45% 55%;
|
|
59
97
|
}
|
|
60
98
|
}
|
|
61
99
|
|
|
@@ -64,17 +102,54 @@
|
|
|
64
102
|
@apply border-border;
|
|
65
103
|
}
|
|
66
104
|
body {
|
|
67
|
-
@apply bg-background text-foreground;
|
|
105
|
+
@apply bg-background font-sans text-foreground antialiased;
|
|
106
|
+
}
|
|
107
|
+
h1,
|
|
108
|
+
h2,
|
|
109
|
+
h3,
|
|
110
|
+
h4,
|
|
111
|
+
h5,
|
|
112
|
+
h6 {
|
|
113
|
+
@apply font-display font-semibold tracking-tight;
|
|
114
|
+
}
|
|
115
|
+
::selection {
|
|
116
|
+
background: hsl(28 92% 80%); /* orange-200 */
|
|
117
|
+
color: hsl(60 8% 5%); /* ink-950 */
|
|
118
|
+
}
|
|
119
|
+
.dark ::selection {
|
|
120
|
+
background: hsl(21 81% 33%); /* orange-800 */
|
|
121
|
+
color: hsl(0 0% 100%);
|
|
68
122
|
}
|
|
69
123
|
}
|
|
70
124
|
|
|
71
125
|
@layer components {
|
|
126
|
+
/* Warm dot lattice — the design system's workspace-canvas motif. */
|
|
127
|
+
.dot-grid {
|
|
128
|
+
background-image: radial-gradient(
|
|
129
|
+
hsl(42 22% 82%) 1px,
|
|
130
|
+
transparent 1px
|
|
131
|
+
); /* ink-200 */
|
|
132
|
+
background-size: 18px 18px;
|
|
133
|
+
}
|
|
134
|
+
.dark .dot-grid {
|
|
135
|
+
background-image: radial-gradient(
|
|
136
|
+
hsl(43 10% 14%) 1px,
|
|
137
|
+
transparent 1px
|
|
138
|
+
); /* warm ink dot */
|
|
139
|
+
}
|
|
140
|
+
|
|
72
141
|
.react-flow__controls {
|
|
73
|
-
|
|
142
|
+
--xy-controls-box-shadow: 0 8px 20px hsl(var(--background) / 0.45);
|
|
143
|
+
--xy-controls-button-background-color: hsl(var(--card) / 0.98);
|
|
144
|
+
--xy-controls-button-background-color-hover: hsl(var(--accent));
|
|
145
|
+
--xy-controls-button-border-color: hsl(var(--border) / 0.9);
|
|
146
|
+
--xy-controls-button-color: hsl(var(--card-foreground));
|
|
147
|
+
--xy-controls-button-color-hover: hsl(var(--accent-foreground));
|
|
148
|
+
@apply flex flex-col overflow-hidden rounded-xl border border-border bg-card/95 text-card-foreground shadow-lg backdrop-blur-sm;
|
|
74
149
|
}
|
|
75
150
|
|
|
76
151
|
.react-flow__controls-button {
|
|
77
|
-
@apply flex h-10 w-10 items-center justify-center border-b border-
|
|
152
|
+
@apply flex h-10 w-10 items-center justify-center border-b border-border/70 text-muted-foreground transition-colors duration-200 hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-offset-2 focus-visible:ring-offset-card;
|
|
78
153
|
}
|
|
79
154
|
|
|
80
155
|
.react-flow__controls-button:last-child {
|
|
@@ -84,12 +159,4 @@
|
|
|
84
159
|
.react-flow__controls-button svg {
|
|
85
160
|
@apply text-current;
|
|
86
161
|
}
|
|
87
|
-
|
|
88
|
-
.dark .react-flow__controls {
|
|
89
|
-
@apply border-slate-800/80 bg-slate-900/90 text-slate-200 shadow-[0_18px_40px_rgba(0,0,0,0.65)];
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.dark .react-flow__controls-button {
|
|
93
|
-
@apply border-slate-800/70 text-slate-400 hover:bg-slate-800 focus-visible:ring-slate-300/40 focus-visible:ring-offset-slate-900;
|
|
94
|
-
}
|
|
95
162
|
}
|
package/tailwind.config.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import tailwindcssAnimate from "tailwindcss-animate";
|
|
2
|
+
import defaultTheme from "tailwindcss/defaultTheme";
|
|
2
3
|
|
|
3
4
|
const agentPrismPrefix = "agentprism";
|
|
4
5
|
const agentPrismTokens = [
|
|
@@ -99,10 +100,32 @@ export default {
|
|
|
99
100
|
content: ["./main.tsx", "./src/**/*.{js,ts,jsx,tsx}"],
|
|
100
101
|
theme: {
|
|
101
102
|
extend: {
|
|
103
|
+
fontFamily: {
|
|
104
|
+
sans: ['"IBM Plex Sans"', ...defaultTheme.fontFamily.sans],
|
|
105
|
+
display: ['"Space Grotesk"', ...defaultTheme.fontFamily.sans],
|
|
106
|
+
mono: ['"IBM Plex Mono"', ...defaultTheme.fontFamily.mono],
|
|
107
|
+
},
|
|
108
|
+
// Orcheo design-system radii: controls 10px, cards 14px, panels 20px.
|
|
102
109
|
borderRadius: {
|
|
110
|
+
sm: "calc(var(--radius) - 8px)",
|
|
111
|
+
md: "calc(var(--radius) - 4px)",
|
|
103
112
|
lg: "var(--radius)",
|
|
104
|
-
|
|
105
|
-
|
|
113
|
+
xl: "calc(var(--radius) + 6px)",
|
|
114
|
+
"2xl": "calc(var(--radius) + 14px)",
|
|
115
|
+
},
|
|
116
|
+
// Warm-tinted shadows (ink/brown alpha, never black-blue).
|
|
117
|
+
boxShadow: {
|
|
118
|
+
xs: "0 1px 2px rgba(40, 30, 16, 0.06)",
|
|
119
|
+
sm: "0 1px 2px rgba(40, 30, 16, 0.06), 0 2px 6px rgba(40, 30, 16, 0.06)",
|
|
120
|
+
DEFAULT:
|
|
121
|
+
"0 1px 2px rgba(40, 30, 16, 0.06), 0 2px 6px rgba(40, 30, 16, 0.06)",
|
|
122
|
+
md: "0 2px 4px rgba(40, 30, 16, 0.06), 0 6px 16px rgba(40, 30, 16, 0.08)",
|
|
123
|
+
lg: "0 4px 8px rgba(40, 30, 16, 0.06), 0 16px 32px rgba(40, 30, 16, 0.12)",
|
|
124
|
+
xl: "0 8px 16px rgba(40, 30, 16, 0.08), 0 28px 56px rgba(40, 30, 16, 0.16)",
|
|
125
|
+
brand: "0 4px 14px rgba(248, 120, 37, 0.32)",
|
|
126
|
+
// Primary-button sheen: faint inset top highlight so orange doesn't read flat.
|
|
127
|
+
"primary-sheen":
|
|
128
|
+
"inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 1px 2px rgba(40, 30, 16, 0.06)",
|
|
106
129
|
},
|
|
107
130
|
colors: {
|
|
108
131
|
background: "hsl(var(--background))",
|
|
@@ -118,6 +141,8 @@ export default {
|
|
|
118
141
|
primary: {
|
|
119
142
|
DEFAULT: "hsl(var(--primary))",
|
|
120
143
|
foreground: "hsl(var(--primary-foreground))",
|
|
144
|
+
hover: "hsl(var(--primary-hover))",
|
|
145
|
+
active: "hsl(var(--primary-active))",
|
|
121
146
|
},
|
|
122
147
|
secondary: {
|
|
123
148
|
DEFAULT: "hsl(var(--secondary))",
|
|
@@ -134,10 +159,33 @@ export default {
|
|
|
134
159
|
destructive: {
|
|
135
160
|
DEFAULT: "hsl(var(--destructive))",
|
|
136
161
|
foreground: "hsl(var(--destructive-foreground))",
|
|
162
|
+
muted: "hsl(var(--destructive-muted))",
|
|
163
|
+
"muted-foreground": "hsl(var(--destructive-muted-foreground))",
|
|
164
|
+
},
|
|
165
|
+
success: {
|
|
166
|
+
DEFAULT: "hsl(var(--success))",
|
|
167
|
+
foreground: "hsl(var(--success-foreground))",
|
|
168
|
+
muted: "hsl(var(--success-muted))",
|
|
169
|
+
"muted-foreground": "hsl(var(--success-muted-foreground))",
|
|
170
|
+
},
|
|
171
|
+
warning: {
|
|
172
|
+
DEFAULT: "hsl(var(--warning))",
|
|
173
|
+
foreground: "hsl(var(--warning-foreground))",
|
|
174
|
+
muted: "hsl(var(--warning-muted))",
|
|
175
|
+
"muted-foreground": "hsl(var(--warning-muted-foreground))",
|
|
176
|
+
},
|
|
177
|
+
info: {
|
|
178
|
+
DEFAULT: "hsl(var(--info))",
|
|
179
|
+
foreground: "hsl(var(--info-foreground))",
|
|
180
|
+
muted: "hsl(var(--info-muted))",
|
|
181
|
+
"muted-foreground": "hsl(var(--info-muted-foreground))",
|
|
137
182
|
},
|
|
138
183
|
border: "hsl(var(--border))",
|
|
139
184
|
input: "hsl(var(--input))",
|
|
140
185
|
ring: "hsl(var(--ring))",
|
|
186
|
+
// Orcheo brand accents (orcheo-design-system: brand-cream, brand-tan).
|
|
187
|
+
cream: "#f6f5d4",
|
|
188
|
+
tan: "#e0c090",
|
|
141
189
|
chart: {
|
|
142
190
|
1: "hsl(var(--chart-1))",
|
|
143
191
|
2: "hsl(var(--chart-2))",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ap as o,aq as n}from"./index-DTxvVcXp.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-DwV5xRJr.js";import{_ as i}from"./index-DTxvVcXp.js";import"./chunk-FMBD7UC4-6Q-Lz0AM.js";import"./chunk-55IACEB6-DRmZnlbz.js";import"./chunk-QN33PNHL-BFy_ml8O.js";var p={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{p as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-DwV5xRJr.js";import{_ as i}from"./index-DTxvVcXp.js";import"./chunk-FMBD7UC4-6Q-Lz0AM.js";import"./chunk-55IACEB6-DRmZnlbz.js";import"./chunk-QN33PNHL-BFy_ml8O.js";var p={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{p as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ay as r}from"./index-DTxvVcXp.js";var a=4;function n(o){return r(o,a)}export{n as c};
|