@compose-market/theme 0.0.82 → 0.0.90

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.
Files changed (46) hide show
  1. package/dist/css/index.css +4 -0
  2. package/dist/css/index.d.ts +1 -1
  3. package/dist/css/index.d.ts.map +1 -1
  4. package/dist/css/index.js +4 -0
  5. package/dist/css/index.js.map +1 -1
  6. package/dist/css/market.css +273 -0
  7. package/dist/css/mirror.css +251 -0
  8. package/dist/css/utilities.css +81 -0
  9. package/dist/css/workflows.css +634 -0
  10. package/dist/index.d.ts +5 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +5 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/market/index.d.ts +8 -0
  15. package/dist/market/index.d.ts.map +1 -0
  16. package/dist/market/index.js +8 -0
  17. package/dist/market/index.js.map +1 -0
  18. package/dist/market/styles.d.ts +8 -0
  19. package/dist/market/styles.d.ts.map +1 -0
  20. package/dist/market/styles.js +281 -0
  21. package/dist/market/styles.js.map +1 -0
  22. package/dist/mirror/index.d.ts +8 -0
  23. package/dist/mirror/index.d.ts.map +1 -0
  24. package/dist/mirror/index.js +8 -0
  25. package/dist/mirror/index.js.map +1 -0
  26. package/dist/mirror/styles.d.ts +7 -0
  27. package/dist/mirror/styles.d.ts.map +1 -0
  28. package/dist/mirror/styles.js +258 -0
  29. package/dist/mirror/styles.js.map +1 -0
  30. package/dist/utilities/index.d.ts +8 -0
  31. package/dist/utilities/index.d.ts.map +1 -0
  32. package/dist/utilities/index.js +8 -0
  33. package/dist/utilities/index.js.map +1 -0
  34. package/dist/utilities/styles.d.ts +8 -0
  35. package/dist/utilities/styles.d.ts.map +1 -0
  36. package/dist/utilities/styles.js +89 -0
  37. package/dist/utilities/styles.js.map +1 -0
  38. package/dist/workflows/index.d.ts +65 -0
  39. package/dist/workflows/index.d.ts.map +1 -0
  40. package/dist/workflows/index.js +17 -0
  41. package/dist/workflows/index.js.map +1 -0
  42. package/dist/workflows/styles.d.ts +8 -0
  43. package/dist/workflows/styles.d.ts.map +1 -0
  44. package/dist/workflows/styles.js +642 -0
  45. package/dist/workflows/styles.js.map +1 -0
  46. package/package.json +41 -2
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Shared Utilities Styles
3
+ *
4
+ * Cross-app CSS utilities: marquee, safe-area, touch, scrollbar, truncation.
5
+ * Extracted from web/src/index.css and desktop/src/styles.css.
6
+ */
7
+ export const utilitiesStyles = /* css */ `
8
+ /* ── Marquee ── */
9
+ @keyframes cm-marquee-scroll {
10
+ 0% { transform: translateX(0); }
11
+ 100% { transform: translateX(-50%); }
12
+ }
13
+
14
+ @keyframes cm-marquee-scroll-reverse {
15
+ 0% { transform: translateX(-50%); }
16
+ 100% { transform: translateX(0); }
17
+ }
18
+
19
+ .cm-marquee-track {
20
+ animation: cm-marquee-scroll linear infinite;
21
+ will-change: transform;
22
+ }
23
+
24
+ .cm-marquee-track-reverse {
25
+ animation: cm-marquee-scroll-reverse linear infinite;
26
+ will-change: transform;
27
+ }
28
+
29
+ /* ── Safe Area ── */
30
+ .cm-safe-area-top { padding-top: env(safe-area-inset-top); }
31
+ .cm-safe-area-bottom { padding-bottom: env(safe-area-inset-bottom); }
32
+ .cm-safe-area-left { padding-left: env(safe-area-inset-left); }
33
+ .cm-safe-area-right { padding-right: env(safe-area-inset-right); }
34
+
35
+ .cm-safe-area-x {
36
+ padding-left: env(safe-area-inset-left);
37
+ padding-right: env(safe-area-inset-right);
38
+ }
39
+
40
+ .cm-safe-area-y {
41
+ padding-top: env(safe-area-inset-top);
42
+ padding-bottom: env(safe-area-inset-bottom);
43
+ }
44
+
45
+ /* ── Touch ── */
46
+ .cm-touch-manipulation {
47
+ touch-action: manipulation;
48
+ }
49
+
50
+ .cm-no-select {
51
+ -webkit-user-select: none;
52
+ user-select: none;
53
+ }
54
+
55
+ /* ── Scrollbar Hide ── */
56
+ .cm-scrollbar-hide {
57
+ -ms-overflow-style: none;
58
+ scrollbar-width: none;
59
+ }
60
+
61
+ .cm-scrollbar-hide::-webkit-scrollbar {
62
+ display: none;
63
+ }
64
+
65
+ /* ── Text Truncation ── */
66
+ .cm-text-truncate {
67
+ white-space: nowrap;
68
+ overflow: hidden;
69
+ text-overflow: ellipsis;
70
+ max-width: 100%;
71
+ }
72
+
73
+ /* ── Touch Targets (mobile ≤ 768px) ── */
74
+ @media (max-width: 768px) {
75
+ .cm-touch-target {
76
+ min-height: 44px;
77
+ min-width: 44px;
78
+ }
79
+ }
80
+
81
+ /* ── Mobile Scrollbar (thinner for ≤ 768px) ── */
82
+ @media (max-width: 768px) {
83
+ .cm-thin-scrollbar::-webkit-scrollbar {
84
+ width: 4px;
85
+ height: 4px;
86
+ }
87
+ }
88
+ `;
89
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/utilities/styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFxC,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Workflow Card Shell Components
3
+ *
4
+ * Render-slot shell for workflow cards with fold pattern navigation.
5
+ * Logic-free — all interactivity is passed in via props/slots.
6
+ */
7
+ import React from "react";
8
+ export interface ComposeWorkflowStat {
9
+ icon: React.ReactNode;
10
+ value: string;
11
+ tooltip?: string;
12
+ tone?: "green" | "cyan" | "fuchsia" | "warning";
13
+ }
14
+ export interface ComposeWorkflowCardProps {
15
+ /** Banner image URL (null → gradient placeholder) */
16
+ bannerSrc?: string | null;
17
+ /** Card title */
18
+ title: string;
19
+ /** Card description (text or ReactNode) */
20
+ description?: React.ReactNode;
21
+ /** Title-row icon slot (e.g. Layers icon) */
22
+ titleIcon?: React.ReactNode;
23
+ /** Header action slot (e.g. explorer link) */
24
+ headerAction?: React.ReactNode;
25
+ /** Badge slot */
26
+ badges?: React.ReactNode;
27
+ /** Stats (up to 4) */
28
+ stats?: ComposeWorkflowStat[];
29
+ /** Coordinator section (model name) */
30
+ coordinatorIcon?: React.ReactNode;
31
+ coordinatorLabel?: string;
32
+ coordinatorValue?: string;
33
+ /** Agents fold section */
34
+ agentsCount?: number;
35
+ agentsIcon?: React.ReactNode;
36
+ onAgentsFold?: () => void;
37
+ agentsFoldChevron?: React.ReactNode;
38
+ agentsBadges?: React.ReactNode;
39
+ /** Lease section */
40
+ leaseSlot?: React.ReactNode;
41
+ /** Endpoint section */
42
+ endpointSlot?: React.ReactNode;
43
+ /** Footer slot */
44
+ footer?: React.ReactNode;
45
+ /** Interactive (hover glow) */
46
+ interactive?: boolean;
47
+ /** Additional className */
48
+ className?: string;
49
+ }
50
+ export declare function ComposeWorkflowCard({ bannerSrc, title, description, titleIcon, headerAction, badges, stats, coordinatorIcon, coordinatorLabel, coordinatorValue, agentsCount, agentsIcon, onAgentsFold, agentsFoldChevron, agentsBadges, leaseSlot, endpointSlot, footer, interactive, className, }: ComposeWorkflowCardProps): import("react/jsx-runtime").JSX.Element;
51
+ export interface ComposeWorkflowFoldListProps {
52
+ backSlot: React.ReactNode;
53
+ titleSlot?: React.ReactNode;
54
+ children: React.ReactNode;
55
+ className?: string;
56
+ }
57
+ export declare function ComposeWorkflowFoldList({ backSlot, titleSlot, children, className, }: ComposeWorkflowFoldListProps): import("react/jsx-runtime").JSX.Element;
58
+ export interface ComposeWorkflowFoldDetailProps {
59
+ backSlot: React.ReactNode;
60
+ children: React.ReactNode;
61
+ className?: string;
62
+ }
63
+ export declare function ComposeWorkflowFoldDetail({ backSlot, children, className, }: ComposeWorkflowFoldDetailProps): import("react/jsx-runtime").JSX.Element;
64
+ export declare function ComposeWorkflowCardSkeleton(): import("react/jsx-runtime").JSX.Element;
65
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflows/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,wBAAwB;IACvC,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,iBAAiB;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,sBAAsB;IACtB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9B,uCAAuC;IACvC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,oBAAoB;IACpB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,uBAAuB;IACvB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,kBAAkB;IAClB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,KAAK,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,MAAM,EACN,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,MAAM,EACN,WAAW,EACX,SAAS,GACV,EAAE,wBAAwB,2CA+G1B;AAID,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,GACV,EAAE,4BAA4B,2CAU9B;AAID,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,EAAE,8BAA8B,2CAOhC;AAID,wBAAgB,2BAA2B,4CAuB1C"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cx } from "../internal/cx";
3
+ /* ── Main View ── */
4
+ export function ComposeWorkflowCard({ bannerSrc, title, description, titleIcon, headerAction, badges, stats, coordinatorIcon, coordinatorLabel, coordinatorValue, agentsCount, agentsIcon, onAgentsFold, agentsFoldChevron, agentsBadges, leaseSlot, endpointSlot, footer, interactive, className, }) {
5
+ return (_jsxs("div", { className: cx("cm-workflow-card", interactive && "cm-workflow-card--interactive", className), children: [bannerSrc ? (_jsx("div", { className: "cm-workflow-card__banner", style: { backgroundImage: `url(${bannerSrc})` } })) : (_jsx("div", { className: "cm-workflow-card__banner cm-workflow-card__banner--placeholder" })), _jsxs("div", { className: "cm-workflow-card__body", children: [_jsx("div", { className: "cm-workflow-card__header", children: _jsxs("div", { className: "cm-workflow-card__header-copy", children: [_jsxs("div", { className: "cm-workflow-card__title-row", children: [titleIcon && _jsx("span", { className: "cm-workflow-card__icon", children: titleIcon }), _jsx("h3", { className: "cm-workflow-card__title", children: title }), headerAction] }), description && (_jsx("p", { className: "cm-workflow-card__description", children: description }))] }) }), badges && _jsx("div", { className: "cm-workflow-card__badges", children: badges }), stats && stats.length > 0 && (_jsx("div", { className: "cm-workflow-card__stats", children: stats.map((stat, index) => (_jsxs("div", { className: "cm-workflow-card__stat", title: stat.tooltip, children: [_jsx("div", { className: "cm-workflow-card__stat-icon", style: { color: stat.tone ? `var(--cm-tone-${stat.tone})` : undefined }, children: stat.icon }), _jsx("p", { className: "cm-workflow-card__stat-value", style: { color: stat.tone ? `var(--cm-tone-${stat.tone})` : undefined }, children: stat.value })] }, index))) })), coordinatorValue && (_jsxs("div", { className: "cm-workflow-card__coordinator", children: [coordinatorIcon && (_jsx("span", { className: "cm-workflow-card__coordinator-icon", children: coordinatorIcon })), _jsxs("div", { className: "cm-workflow-card__coordinator-copy", children: [_jsx("span", { className: "cm-workflow-card__coordinator-label", children: coordinatorLabel || "Coordinator" }), _jsx("span", { className: "cm-workflow-card__coordinator-value", title: coordinatorValue, children: coordinatorValue })] })] })), agentsCount != null && agentsCount > 0 && (_jsxs("div", { className: "cm-workflow-card__agents", children: [_jsxs("button", { type: "button", className: "cm-workflow-card__agents-header", onClick: onAgentsFold, children: [_jsxs("div", { className: "cm-workflow-card__agents-label", children: [agentsIcon && (_jsx("span", { className: "cm-workflow-card__agents-label-icon", children: agentsIcon })), _jsxs("span", { className: "cm-workflow-card__agents-label-text", children: ["Agents (", agentsCount, ")"] })] }), agentsFoldChevron] }), agentsBadges && (_jsx("div", { className: "cm-workflow-card__agents-badges", children: agentsBadges }))] })), leaseSlot, endpointSlot, footer] })] }));
6
+ }
7
+ export function ComposeWorkflowFoldList({ backSlot, titleSlot, children, className, }) {
8
+ return (_jsxs("div", { className: cx("cm-workflow-card", className), children: [_jsxs("div", { className: "cm-workflow-card__fold-header", children: [backSlot, titleSlot] }), _jsx("div", { className: "cm-workflow-card__fold-body", children: children })] }));
9
+ }
10
+ export function ComposeWorkflowFoldDetail({ backSlot, children, className, }) {
11
+ return (_jsxs("div", { className: cx("cm-workflow-card", className), children: [_jsx("div", { className: "cm-workflow-card__fold-header", children: backSlot }), _jsx("div", { className: "cm-workflow-card__fold-body", children: children })] }));
12
+ }
13
+ /* ── Skeleton ── */
14
+ export function ComposeWorkflowCardSkeleton() {
15
+ return (_jsxs("div", { className: "cm-workflow-card-skeleton", children: [_jsx("div", { className: "cm-workflow-card-skeleton__banner" }), _jsxs("div", { className: "cm-workflow-card-skeleton__body", children: [_jsxs("div", { className: "cm-workflow-card-skeleton__row", children: [_jsx("div", { className: "cm-workflow-card-skeleton__block", style: { width: 20, height: 20 } }), _jsxs("div", { style: { flex: 1, display: "flex", flexDirection: "column", gap: 8 }, children: [_jsx("div", { className: "cm-workflow-card-skeleton__block", style: { width: "60%", height: 20 } }), _jsx("div", { className: "cm-workflow-card-skeleton__block", style: { width: "100%", height: 16 } })] })] }), _jsxs("div", { style: { display: "grid", gridTemplateColumns: "repeat(4, 1fr)", gap: 8 }, children: [_jsx("div", { className: "cm-workflow-card-skeleton__block", style: { height: 56 } }), _jsx("div", { className: "cm-workflow-card-skeleton__block", style: { height: 56 } }), _jsx("div", { className: "cm-workflow-card-skeleton__block", style: { height: 56 } }), _jsx("div", { className: "cm-workflow-card-skeleton__block", style: { height: 56 } })] }), _jsx("div", { className: "cm-workflow-card-skeleton__block", style: { height: 56 } }), _jsx("div", { className: "cm-workflow-card-skeleton__block", style: { height: 80 } })] })] }));
16
+ }
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflows/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Workflow Card Styles
3
+ *
4
+ * BEM classes for the ComposeWorkflowCard shell component.
5
+ * Mirrors the structure of agents/styles.ts.
6
+ */
7
+ export declare const workflowStyles = "\n/* \u2500\u2500 Workflow Card \u2500\u2500 */\n.cm-workflow-card {\n display: flex;\n flex-direction: column;\n border: 1px solid hsl(var(--accent) / 0.3);\n border-radius: 8px;\n background: hsl(var(--card));\n overflow: hidden;\n height: 100%;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n}\n\n.cm-workflow-card--interactive {\n cursor: pointer;\n}\n\n.cm-workflow-card--interactive:hover {\n border-color: hsl(var(--accent) / 0.6);\n box-shadow: 0 0 18px hsl(var(--accent) / 0.08);\n}\n\n/* Banner */\n.cm-workflow-card__banner {\n height: 80px;\n background-size: cover;\n background-position: center;\n flex-shrink: 0;\n}\n\n.cm-workflow-card__banner--placeholder {\n background: linear-gradient(135deg, hsl(var(--accent) / 0.2), hsl(var(--primary) / 0.1), transparent);\n}\n\n@media (min-width: 768px) {\n .cm-workflow-card__banner {\n height: 96px;\n }\n}\n\n/* Body */\n.cm-workflow-card__body {\n padding: 12px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n overflow-y: auto;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__body {\n padding: 16px;\n }\n}\n\n@media (min-width: 768px) {\n .cm-workflow-card__body {\n padding: 20px;\n gap: 16px;\n }\n}\n\n/* Header */\n.cm-workflow-card__header {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__header {\n gap: 12px;\n }\n}\n\n.cm-workflow-card__header-copy {\n flex: 1;\n min-width: 0;\n}\n\n.cm-workflow-card__title-row {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__title-row {\n gap: 8px;\n }\n}\n\n.cm-workflow-card__icon {\n width: 16px;\n height: 16px;\n color: hsl(var(--accent));\n flex-shrink: 0;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__icon {\n width: 20px;\n height: 20px;\n }\n}\n\n.cm-workflow-card__title {\n font-weight: 600;\n color: hsl(var(--foreground));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 14px;\n}\n\n@media (min-width: 768px) {\n .cm-workflow-card__title {\n font-size: 16px;\n }\n}\n\n.cm-workflow-card__description {\n color: hsl(var(--muted-foreground));\n font-size: 12px;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin-top: 4px;\n}\n\n@media (min-width: 768px) {\n .cm-workflow-card__description {\n font-size: 14px;\n }\n}\n\n/* Badges */\n.cm-workflow-card__badges {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__badges {\n gap: 6px;\n }\n}\n\n/* Stats Grid */\n.cm-workflow-card__stats {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 6px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__stats {\n grid-template-columns: repeat(4, 1fr);\n gap: 8px;\n }\n}\n\n.cm-workflow-card__stat {\n padding: 6px;\n background: hsl(var(--background) / 0.5);\n border: 1px solid hsl(var(--sidebar-border));\n border-radius: 8px;\n text-align: center;\n cursor: default;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__stat {\n padding: 8px;\n }\n}\n\n.cm-workflow-card__stat-icon {\n margin: 0 auto;\n width: 14px;\n height: 14px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__stat-icon {\n width: 16px;\n height: 16px;\n }\n}\n\n.cm-workflow-card__stat-value {\n font-family: var(--font-mono, monospace);\n font-size: 12px;\n margin-top: 2px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__stat-value {\n font-size: 14px;\n margin-top: 4px;\n }\n}\n\n/* Coordinator row */\n.cm-workflow-card__coordinator {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px;\n background: hsl(var(--background) / 0.5);\n border: 1px solid hsl(var(--sidebar-border));\n border-radius: 8px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__coordinator {\n gap: 12px;\n padding: 12px;\n }\n}\n\n.cm-workflow-card__coordinator-icon {\n width: 16px;\n height: 16px;\n color: hsl(var(--accent));\n flex-shrink: 0;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__coordinator-icon {\n width: 20px;\n height: 20px;\n }\n}\n\n.cm-workflow-card__coordinator-copy {\n min-width: 0;\n flex: 1;\n}\n\n.cm-workflow-card__coordinator-label {\n font-size: 10px;\n color: hsl(var(--muted-foreground));\n text-transform: uppercase;\n display: block;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__coordinator-label {\n font-size: 12px;\n }\n}\n\n.cm-workflow-card__coordinator-value {\n font-family: var(--font-mono, monospace);\n font-size: 12px;\n color: hsl(var(--accent));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__coordinator-value {\n font-size: 14px;\n }\n}\n\n/* Agents section */\n.cm-workflow-card__agents {\n flex: 1;\n min-height: 0;\n padding: 8px;\n background: hsl(var(--background) / 0.5);\n border: 1px solid hsl(var(--sidebar-border));\n border-radius: 8px;\n display: flex;\n flex-direction: column;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__agents {\n padding: 12px;\n }\n}\n\n.cm-workflow-card__agents-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 6px;\n flex-shrink: 0;\n cursor: pointer;\n transition: opacity 0.2s ease;\n}\n\n.cm-workflow-card__agents-header:hover {\n opacity: 0.8;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__agents-header {\n margin-bottom: 8px;\n }\n}\n\n.cm-workflow-card__agents-label {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__agents-label {\n gap: 8px;\n }\n}\n\n.cm-workflow-card__agents-label-icon {\n width: 14px;\n height: 14px;\n color: hsl(var(--primary));\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__agents-label-icon {\n width: 16px;\n height: 16px;\n }\n}\n\n.cm-workflow-card__agents-label-text {\n font-size: 10px;\n color: hsl(var(--muted-foreground));\n text-transform: uppercase;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__agents-label-text {\n font-size: 12px;\n }\n}\n\n.cm-workflow-card__agents-badges {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n align-content: flex-start;\n overflow-y: auto;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__agents-badges {\n gap: 6px;\n }\n}\n\n/* Lease info */\n.cm-workflow-card__lease {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px;\n background: hsl(var(--background) / 0.5);\n border: 1px solid hsl(var(--sidebar-border));\n border-radius: 8px;\n font-size: 12px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__lease {\n gap: 16px;\n padding: 12px;\n font-size: 14px;\n }\n}\n\n.cm-workflow-card__lease-item {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__lease-item {\n gap: 8px;\n }\n}\n\n.cm-workflow-card__lease-label {\n color: hsl(var(--muted-foreground));\n}\n\n.cm-workflow-card__lease-value {\n font-family: var(--font-mono, monospace);\n}\n\n/* Endpoint */\n.cm-workflow-card__endpoint-section {\n padding-top: 8px;\n border-top: 1px solid hsl(var(--sidebar-border));\n margin-top: auto;\n flex-shrink: 0;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__endpoint-section {\n padding-top: 12px;\n }\n}\n\n.cm-workflow-card__endpoint-header {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 6px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__endpoint-header {\n gap: 8px;\n margin-bottom: 8px;\n }\n}\n\n.cm-workflow-card__endpoint-header-icon {\n width: 14px;\n height: 14px;\n color: hsl(var(--accent));\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__endpoint-header-icon {\n width: 16px;\n height: 16px;\n }\n}\n\n.cm-workflow-card__endpoint-label {\n font-size: 10px;\n color: hsl(var(--muted-foreground));\n text-transform: uppercase;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__endpoint-label {\n font-size: 12px;\n }\n}\n\n.cm-workflow-card__endpoint-row {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px;\n background: hsl(var(--background));\n border: 1px solid hsl(var(--sidebar-border));\n border-radius: 8px;\n font-family: var(--font-mono, monospace);\n font-size: 10px;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__endpoint-row {\n gap: 8px;\n padding: 8px;\n font-size: 12px;\n }\n}\n\n.cm-workflow-card__endpoint-code {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: hsl(var(--accent));\n}\n\n.cm-workflow-card__creator {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 8px;\n font-size: 10px;\n color: hsl(var(--muted-foreground));\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__creator {\n gap: 8px;\n margin-top: 12px;\n font-size: 12px;\n }\n}\n\n.cm-workflow-card__creator-value {\n color: hsl(var(--accent));\n font-family: var(--font-mono, monospace);\n text-decoration: none;\n}\n\n.cm-workflow-card__creator-value:hover {\n text-decoration: underline;\n}\n\n/* Fold: Back header */\n.cm-workflow-card__fold-header {\n padding: 8px;\n border-bottom: 1px solid hsl(var(--sidebar-border));\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__fold-header {\n padding: 12px;\n }\n}\n\n.cm-workflow-card__fold-body {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n\n/* Fold: agent list item */\n.cm-workflow-card__agent-preview {\n width: 100%;\n padding: 8px;\n background: hsl(var(--background) / 0.5);\n border: 1px solid hsl(var(--sidebar-border));\n border-radius: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n text-align: left;\n cursor: pointer;\n transition: border-color 0.15s ease, background 0.15s ease;\n}\n\n.cm-workflow-card__agent-preview:hover {\n border-color: hsl(var(--primary) / 0.5);\n background: hsl(var(--primary) / 0.05);\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__agent-preview {\n padding: 12px;\n gap: 12px;\n }\n}\n\n.cm-workflow-card__agent-preview-copy {\n flex: 1;\n min-width: 0;\n}\n\n.cm-workflow-card__agent-preview-name {\n font-weight: 500;\n color: hsl(var(--foreground));\n font-size: 12px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: color 0.15s ease;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__agent-preview-name {\n font-size: 14px;\n }\n}\n\n.cm-workflow-card__agent-preview:hover .cm-workflow-card__agent-preview-name {\n color: hsl(var(--primary));\n}\n\n.cm-workflow-card__agent-preview-model {\n font-size: 10px;\n color: hsl(var(--muted-foreground));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n@media (min-width: 640px) {\n .cm-workflow-card__agent-preview-model {\n font-size: 12px;\n }\n}\n\n/* Skeleton */\n.cm-workflow-card-skeleton {\n border: 1px solid hsl(var(--accent) / 0.3);\n border-radius: 8px;\n background: hsl(var(--card));\n overflow: hidden;\n height: 100%;\n}\n\n.cm-workflow-card-skeleton__banner {\n height: 64px;\n background: linear-gradient(135deg, hsl(var(--accent) / 0.2), hsl(var(--primary) / 0.1), transparent);\n}\n\n.cm-workflow-card-skeleton__body {\n padding: 20px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.cm-workflow-card-skeleton__row {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n}\n\n.cm-workflow-card-skeleton__block {\n border-radius: 4px;\n background: hsl(var(--muted));\n animation: cm-skeleton-pulse 1.5s ease-in-out infinite;\n}\n\n@keyframes cm-skeleton-pulse {\n 0%, 100% { opacity: 0.4; }\n 50% { opacity: 0.8; }\n}\n";
8
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/workflows/styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,cAAc,yxXA0nB1B,CAAC"}