@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.
- package/dist/css/index.css +4 -0
- package/dist/css/index.d.ts +1 -1
- package/dist/css/index.d.ts.map +1 -1
- package/dist/css/index.js +4 -0
- package/dist/css/index.js.map +1 -1
- package/dist/css/market.css +273 -0
- package/dist/css/mirror.css +251 -0
- package/dist/css/utilities.css +81 -0
- package/dist/css/workflows.css +634 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/market/index.d.ts +8 -0
- package/dist/market/index.d.ts.map +1 -0
- package/dist/market/index.js +8 -0
- package/dist/market/index.js.map +1 -0
- package/dist/market/styles.d.ts +8 -0
- package/dist/market/styles.d.ts.map +1 -0
- package/dist/market/styles.js +281 -0
- package/dist/market/styles.js.map +1 -0
- package/dist/mirror/index.d.ts +8 -0
- package/dist/mirror/index.d.ts.map +1 -0
- package/dist/mirror/index.js +8 -0
- package/dist/mirror/index.js.map +1 -0
- package/dist/mirror/styles.d.ts +7 -0
- package/dist/mirror/styles.d.ts.map +1 -0
- package/dist/mirror/styles.js +258 -0
- package/dist/mirror/styles.js.map +1 -0
- package/dist/utilities/index.d.ts +8 -0
- package/dist/utilities/index.d.ts.map +1 -0
- package/dist/utilities/index.js +8 -0
- package/dist/utilities/index.js.map +1 -0
- package/dist/utilities/styles.d.ts +8 -0
- package/dist/utilities/styles.d.ts.map +1 -0
- package/dist/utilities/styles.js +89 -0
- package/dist/utilities/styles.js.map +1 -0
- package/dist/workflows/index.d.ts +65 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +17 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/styles.d.ts +8 -0
- package/dist/workflows/styles.d.ts.map +1 -0
- package/dist/workflows/styles.js +642 -0
- package/dist/workflows/styles.js.map +1 -0
- 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"}
|