@ash-cloud/ash-ui 0.0.2 → 0.0.4
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/icons.cjs +12 -0
- package/dist/icons.cjs.map +1 -1
- package/dist/icons.d.cts +3 -1
- package/dist/icons.d.ts +3 -1
- package/dist/icons.js +11 -1
- package/dist/icons.js.map +1 -1
- package/dist/index.cjs +411 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +114 -2
- package/dist/index.d.ts +114 -2
- package/dist/index.js +407 -2
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +3 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -630,6 +630,16 @@ function ClipboardListIcon({ className }) {
|
|
|
630
630
|
/* @__PURE__ */ jsx("path", { d: "M8 16h.01" })
|
|
631
631
|
] });
|
|
632
632
|
}
|
|
633
|
+
function SpinnerIcon({ className }) {
|
|
634
|
+
return /* @__PURE__ */ jsx("svg", { className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsx("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }) });
|
|
635
|
+
}
|
|
636
|
+
function ErrorIcon({ className }) {
|
|
637
|
+
return /* @__PURE__ */ jsxs("svg", { className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
|
|
638
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
|
|
639
|
+
/* @__PURE__ */ jsx("line", { x1: "15", y1: "9", x2: "9", y2: "15" }),
|
|
640
|
+
/* @__PURE__ */ jsx("line", { x1: "9", y1: "9", x2: "15", y2: "15" })
|
|
641
|
+
] });
|
|
642
|
+
}
|
|
633
643
|
function StatusIndicator({ status, size = "sm", className }) {
|
|
634
644
|
const sizeClasses = {
|
|
635
645
|
sm: "w-2 h-2",
|
|
@@ -1528,6 +1538,163 @@ function ToolExecutionGroup({
|
|
|
1528
1538
|
}
|
|
1529
1539
|
);
|
|
1530
1540
|
}
|
|
1541
|
+
function formatDuration(startMs, endMs) {
|
|
1542
|
+
const duration = endMs - startMs;
|
|
1543
|
+
if (duration < 1e3) return `${duration}ms`;
|
|
1544
|
+
return `${(duration / 1e3).toFixed(1)}s`;
|
|
1545
|
+
}
|
|
1546
|
+
function getToolLabel(toolName, summary) {
|
|
1547
|
+
if (summary && summary.length > 0 && summary.length < 50) {
|
|
1548
|
+
return summary;
|
|
1549
|
+
}
|
|
1550
|
+
const cleaned = toolName.replace(/^mcp__[^_]+__/, "").replace(/Tool$/, "").replace(/_/g, " ").replace(/([a-z])([A-Z])/g, "$1 $2");
|
|
1551
|
+
return cleaned.charAt(0).toUpperCase() + cleaned.slice(1);
|
|
1552
|
+
}
|
|
1553
|
+
function toStepStatus(status) {
|
|
1554
|
+
switch (status) {
|
|
1555
|
+
case "pending":
|
|
1556
|
+
return "running";
|
|
1557
|
+
case "success":
|
|
1558
|
+
return "success";
|
|
1559
|
+
case "failed":
|
|
1560
|
+
return "error";
|
|
1561
|
+
default:
|
|
1562
|
+
return "pending";
|
|
1563
|
+
}
|
|
1564
|
+
}
|
|
1565
|
+
function StepIcon({ status }) {
|
|
1566
|
+
const iconClass = "w-3.5 h-3.5";
|
|
1567
|
+
switch (status) {
|
|
1568
|
+
case "running":
|
|
1569
|
+
return /* @__PURE__ */ jsx(SpinnerIcon, { className: cn(iconClass, "animate-spin text-[var(--ash-accent)]") });
|
|
1570
|
+
case "success":
|
|
1571
|
+
return /* @__PURE__ */ jsx(CheckIcon, { className: cn(iconClass, "text-[var(--ash-accent)]") });
|
|
1572
|
+
case "error":
|
|
1573
|
+
return /* @__PURE__ */ jsx(ErrorIcon, { className: cn(iconClass, "text-red-500") });
|
|
1574
|
+
default:
|
|
1575
|
+
return /* @__PURE__ */ jsx(ToolIcon, { className: cn(iconClass, "text-white/40") });
|
|
1576
|
+
}
|
|
1577
|
+
}
|
|
1578
|
+
function StepAccordion({
|
|
1579
|
+
toolCalls,
|
|
1580
|
+
defaultExpanded = false,
|
|
1581
|
+
isExpanded: controlledExpanded,
|
|
1582
|
+
onToggle,
|
|
1583
|
+
className
|
|
1584
|
+
}) {
|
|
1585
|
+
const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);
|
|
1586
|
+
const isExpanded = controlledExpanded !== void 0 ? controlledExpanded : internalExpanded;
|
|
1587
|
+
const handleToggle = useCallback(() => {
|
|
1588
|
+
if (onToggle) {
|
|
1589
|
+
onToggle();
|
|
1590
|
+
} else {
|
|
1591
|
+
setInternalExpanded((prev) => !prev);
|
|
1592
|
+
}
|
|
1593
|
+
}, [onToggle]);
|
|
1594
|
+
if (toolCalls.length === 0) {
|
|
1595
|
+
return null;
|
|
1596
|
+
}
|
|
1597
|
+
const completedSteps = toolCalls.filter((tc) => tc.status === "success" || tc.status === "failed").length;
|
|
1598
|
+
const runningStep = toolCalls.find((tc) => tc.status === "pending");
|
|
1599
|
+
const hasError = toolCalls.some((tc) => tc.status === "failed");
|
|
1600
|
+
const allComplete = completedSteps === toolCalls.length;
|
|
1601
|
+
return /* @__PURE__ */ jsxs(
|
|
1602
|
+
"div",
|
|
1603
|
+
{
|
|
1604
|
+
className: cn(
|
|
1605
|
+
"rounded-xl border overflow-hidden",
|
|
1606
|
+
hasError ? "border-red-500/30" : allComplete ? "border-[var(--ash-accent)]/30" : "border-yellow-500/30",
|
|
1607
|
+
className
|
|
1608
|
+
),
|
|
1609
|
+
children: [
|
|
1610
|
+
/* @__PURE__ */ jsxs(
|
|
1611
|
+
"button",
|
|
1612
|
+
{
|
|
1613
|
+
type: "button",
|
|
1614
|
+
onClick: handleToggle,
|
|
1615
|
+
className: "w-full flex items-center gap-2 px-3 py-2 bg-white/5 hover:bg-white/10 transition-colors text-left cursor-pointer",
|
|
1616
|
+
children: [
|
|
1617
|
+
/* @__PURE__ */ jsx(
|
|
1618
|
+
ChevronDownIcon,
|
|
1619
|
+
{
|
|
1620
|
+
className: cn(
|
|
1621
|
+
"w-4 h-4 text-white/40 transition-transform duration-200 flex-shrink-0",
|
|
1622
|
+
!isExpanded && "-rotate-90"
|
|
1623
|
+
)
|
|
1624
|
+
}
|
|
1625
|
+
),
|
|
1626
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1 min-w-0 flex items-center gap-2", children: runningStep ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1627
|
+
/* @__PURE__ */ jsx(SpinnerIcon, { className: "w-3.5 h-3.5 animate-spin text-[var(--ash-accent)] flex-shrink-0" }),
|
|
1628
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-white/80 truncate", children: getToolLabel(runningStep.toolName, runningStep.summary) })
|
|
1629
|
+
] }) : hasError ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1630
|
+
/* @__PURE__ */ jsx(ErrorIcon, { className: "w-3.5 h-3.5 text-red-500 flex-shrink-0" }),
|
|
1631
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-red-400 truncate", children: "Completed with errors" })
|
|
1632
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1633
|
+
/* @__PURE__ */ jsx(CheckIcon, { className: "w-3.5 h-3.5 text-[var(--ash-accent)] flex-shrink-0" }),
|
|
1634
|
+
/* @__PURE__ */ jsxs("span", { className: "text-sm text-white/70 truncate", children: [
|
|
1635
|
+
completedSteps,
|
|
1636
|
+
" step",
|
|
1637
|
+
completedSteps !== 1 ? "s" : "",
|
|
1638
|
+
" completed"
|
|
1639
|
+
] })
|
|
1640
|
+
] }) }),
|
|
1641
|
+
/* @__PURE__ */ jsxs("span", { className: "text-xs px-1.5 py-0.5 rounded-full bg-white/10 text-white/50 flex-shrink-0", children: [
|
|
1642
|
+
completedSteps,
|
|
1643
|
+
"/",
|
|
1644
|
+
toolCalls.length
|
|
1645
|
+
] })
|
|
1646
|
+
]
|
|
1647
|
+
}
|
|
1648
|
+
),
|
|
1649
|
+
isExpanded && /* @__PURE__ */ jsx("div", { className: "border-t border-white/10 ash-accordion-content", children: /* @__PURE__ */ jsx("div", { className: "divide-y divide-white/5", children: toolCalls.map((toolCall, index) => {
|
|
1650
|
+
const stepStatus = toStepStatus(toolCall.status);
|
|
1651
|
+
const startTime = toolCall.startedAt ? new Date(toolCall.startedAt).getTime() : 0;
|
|
1652
|
+
const endTime = toolCall.completedAt ? new Date(toolCall.completedAt).getTime() : 0;
|
|
1653
|
+
const hasDuration = startTime > 0 && endTime > 0;
|
|
1654
|
+
return /* @__PURE__ */ jsxs(
|
|
1655
|
+
"div",
|
|
1656
|
+
{
|
|
1657
|
+
className: cn(
|
|
1658
|
+
"px-3 py-2 flex items-start gap-2",
|
|
1659
|
+
stepStatus === "running" && "bg-[var(--ash-accent)]/5",
|
|
1660
|
+
stepStatus === "error" && "bg-red-500/5"
|
|
1661
|
+
),
|
|
1662
|
+
children: [
|
|
1663
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 flex-shrink-0 pt-0.5", children: [
|
|
1664
|
+
/* @__PURE__ */ jsxs("span", { className: "text-xs text-white/40 w-4 text-right", children: [
|
|
1665
|
+
index + 1,
|
|
1666
|
+
"."
|
|
1667
|
+
] }),
|
|
1668
|
+
/* @__PURE__ */ jsx(StepIcon, { status: stepStatus })
|
|
1669
|
+
] }),
|
|
1670
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
1671
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
1672
|
+
/* @__PURE__ */ jsx(
|
|
1673
|
+
"span",
|
|
1674
|
+
{
|
|
1675
|
+
className: cn(
|
|
1676
|
+
"text-sm",
|
|
1677
|
+
stepStatus === "running" && "text-[var(--ash-accent)]",
|
|
1678
|
+
stepStatus === "success" && "text-white/70",
|
|
1679
|
+
stepStatus === "error" && "text-red-400",
|
|
1680
|
+
stepStatus === "pending" && "text-white/40"
|
|
1681
|
+
),
|
|
1682
|
+
children: getToolLabel(toolCall.toolName, toolCall.summary)
|
|
1683
|
+
}
|
|
1684
|
+
),
|
|
1685
|
+
hasDuration && (stepStatus === "success" || stepStatus === "error") && /* @__PURE__ */ jsx("span", { className: "text-xs text-white/40", children: formatDuration(startTime, endTime) })
|
|
1686
|
+
] }),
|
|
1687
|
+
toolCall.isError && toolCall.actionType && "result" in toolCall.actionType && /* @__PURE__ */ jsx("p", { className: "text-xs mt-1 text-red-400/80 truncate", children: String(toolCall.actionType.result?.value || "Error") })
|
|
1688
|
+
] })
|
|
1689
|
+
]
|
|
1690
|
+
},
|
|
1691
|
+
toolCall.id
|
|
1692
|
+
);
|
|
1693
|
+
}) }) })
|
|
1694
|
+
]
|
|
1695
|
+
}
|
|
1696
|
+
);
|
|
1697
|
+
}
|
|
1531
1698
|
|
|
1532
1699
|
// src/types.ts
|
|
1533
1700
|
function isCommandRunAction(action) {
|
|
@@ -1646,7 +1813,13 @@ function MessageList({
|
|
|
1646
1813
|
const toolCalls = extractToolCallsFromGroup(groupedEntry.entries);
|
|
1647
1814
|
return /* @__PURE__ */ jsxs("div", { className: "flex gap-3 ash-animate-fade-in", children: [
|
|
1648
1815
|
/* @__PURE__ */ jsx("div", { className: "w-7 h-7 rounded-full bg-[var(--ash-accent)]/20 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx(BotIcon, { className: "w-4 h-4 text-[var(--ash-accent)]" }) }),
|
|
1649
|
-
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
|
|
1816
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1", children: config.mode === "accordion" ? /* @__PURE__ */ jsx(
|
|
1817
|
+
StepAccordion,
|
|
1818
|
+
{
|
|
1819
|
+
toolCalls,
|
|
1820
|
+
defaultExpanded: config.defaultExpanded
|
|
1821
|
+
}
|
|
1822
|
+
) : /* @__PURE__ */ jsx(
|
|
1650
1823
|
ToolExecutionGroup,
|
|
1651
1824
|
{
|
|
1652
1825
|
toolCalls,
|
|
@@ -1924,6 +2097,238 @@ function TodoPanel({
|
|
|
1924
2097
|
}
|
|
1925
2098
|
);
|
|
1926
2099
|
}
|
|
2100
|
+
function EnvVarsPanel({
|
|
2101
|
+
envVars,
|
|
2102
|
+
onChange,
|
|
2103
|
+
defaultCollapsed = true,
|
|
2104
|
+
className,
|
|
2105
|
+
label = "Environment Variables",
|
|
2106
|
+
helperText = "These environment variables will be available in the sandbox for new sessions."
|
|
2107
|
+
}) {
|
|
2108
|
+
const [expanded, setExpanded] = useState(!defaultCollapsed);
|
|
2109
|
+
const [newEnvKey, setNewEnvKey] = useState("");
|
|
2110
|
+
const [newEnvValue, setNewEnvValue] = useState("");
|
|
2111
|
+
const hasEnvVars = Object.keys(envVars).length > 0;
|
|
2112
|
+
const handleAddEnvVar = useCallback(() => {
|
|
2113
|
+
const key = newEnvKey.trim();
|
|
2114
|
+
const val = newEnvValue.trim();
|
|
2115
|
+
if (key) {
|
|
2116
|
+
onChange({ ...envVars, [key]: val });
|
|
2117
|
+
setNewEnvKey("");
|
|
2118
|
+
setNewEnvValue("");
|
|
2119
|
+
}
|
|
2120
|
+
}, [envVars, newEnvKey, newEnvValue, onChange]);
|
|
2121
|
+
const handleRemoveEnvVar = useCallback(
|
|
2122
|
+
(key) => {
|
|
2123
|
+
const newEnvVars = { ...envVars };
|
|
2124
|
+
delete newEnvVars[key];
|
|
2125
|
+
onChange(newEnvVars);
|
|
2126
|
+
},
|
|
2127
|
+
[envVars, onChange]
|
|
2128
|
+
);
|
|
2129
|
+
const handleEnvKeyDown = useCallback(
|
|
2130
|
+
(e) => {
|
|
2131
|
+
if (e.key === "Enter") {
|
|
2132
|
+
e.preventDefault();
|
|
2133
|
+
handleAddEnvVar();
|
|
2134
|
+
}
|
|
2135
|
+
},
|
|
2136
|
+
[handleAddEnvVar]
|
|
2137
|
+
);
|
|
2138
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("ash-env-vars-panel", className), children: [
|
|
2139
|
+
/* @__PURE__ */ jsxs(
|
|
2140
|
+
"button",
|
|
2141
|
+
{
|
|
2142
|
+
type: "button",
|
|
2143
|
+
onClick: () => setExpanded(!expanded),
|
|
2144
|
+
className: "ash-env-vars-header",
|
|
2145
|
+
children: [
|
|
2146
|
+
/* @__PURE__ */ jsx(
|
|
2147
|
+
"svg",
|
|
2148
|
+
{
|
|
2149
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2150
|
+
className: cn("ash-env-vars-chevron", expanded && "ash-env-vars-chevron-expanded"),
|
|
2151
|
+
viewBox: "0 0 20 20",
|
|
2152
|
+
fill: "currentColor",
|
|
2153
|
+
children: /* @__PURE__ */ jsx(
|
|
2154
|
+
"path",
|
|
2155
|
+
{
|
|
2156
|
+
fillRule: "evenodd",
|
|
2157
|
+
d: "M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",
|
|
2158
|
+
clipRule: "evenodd"
|
|
2159
|
+
}
|
|
2160
|
+
)
|
|
2161
|
+
}
|
|
2162
|
+
),
|
|
2163
|
+
/* @__PURE__ */ jsx("span", { className: "ash-env-vars-label", children: label }),
|
|
2164
|
+
hasEnvVars && !expanded && /* @__PURE__ */ jsx("span", { className: "ash-env-vars-badge", children: Object.keys(envVars).length })
|
|
2165
|
+
]
|
|
2166
|
+
}
|
|
2167
|
+
),
|
|
2168
|
+
expanded && /* @__PURE__ */ jsxs("div", { className: "ash-env-vars-content", children: [
|
|
2169
|
+
Object.entries(envVars).map(([key, val]) => /* @__PURE__ */ jsxs("div", { className: "ash-env-vars-item", children: [
|
|
2170
|
+
/* @__PURE__ */ jsx("span", { className: "ash-env-vars-key", children: key }),
|
|
2171
|
+
/* @__PURE__ */ jsx("span", { className: "ash-env-vars-equals", children: "=" }),
|
|
2172
|
+
/* @__PURE__ */ jsx("span", { className: "ash-env-vars-value", children: val || "(empty)" }),
|
|
2173
|
+
/* @__PURE__ */ jsx(
|
|
2174
|
+
"button",
|
|
2175
|
+
{
|
|
2176
|
+
type: "button",
|
|
2177
|
+
onClick: () => handleRemoveEnvVar(key),
|
|
2178
|
+
className: "ash-env-vars-remove",
|
|
2179
|
+
title: "Remove variable",
|
|
2180
|
+
children: /* @__PURE__ */ jsx(
|
|
2181
|
+
"svg",
|
|
2182
|
+
{
|
|
2183
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2184
|
+
className: "w-4 h-4",
|
|
2185
|
+
viewBox: "0 0 20 20",
|
|
2186
|
+
fill: "currentColor",
|
|
2187
|
+
children: /* @__PURE__ */ jsx(
|
|
2188
|
+
"path",
|
|
2189
|
+
{
|
|
2190
|
+
fillRule: "evenodd",
|
|
2191
|
+
d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",
|
|
2192
|
+
clipRule: "evenodd"
|
|
2193
|
+
}
|
|
2194
|
+
)
|
|
2195
|
+
}
|
|
2196
|
+
)
|
|
2197
|
+
}
|
|
2198
|
+
)
|
|
2199
|
+
] }, key)),
|
|
2200
|
+
/* @__PURE__ */ jsxs("div", { className: "ash-env-vars-add", children: [
|
|
2201
|
+
/* @__PURE__ */ jsx(
|
|
2202
|
+
"input",
|
|
2203
|
+
{
|
|
2204
|
+
type: "text",
|
|
2205
|
+
value: newEnvKey,
|
|
2206
|
+
onChange: (e) => setNewEnvKey(e.target.value.toUpperCase().replace(/[^A-Z0-9_]/g, "")),
|
|
2207
|
+
onKeyDown: handleEnvKeyDown,
|
|
2208
|
+
placeholder: "KEY",
|
|
2209
|
+
className: "ash-env-vars-input ash-env-vars-input-key"
|
|
2210
|
+
}
|
|
2211
|
+
),
|
|
2212
|
+
/* @__PURE__ */ jsx("span", { className: "ash-env-vars-equals", children: "=" }),
|
|
2213
|
+
/* @__PURE__ */ jsx(
|
|
2214
|
+
"input",
|
|
2215
|
+
{
|
|
2216
|
+
type: "text",
|
|
2217
|
+
value: newEnvValue,
|
|
2218
|
+
onChange: (e) => setNewEnvValue(e.target.value),
|
|
2219
|
+
onKeyDown: handleEnvKeyDown,
|
|
2220
|
+
placeholder: "value",
|
|
2221
|
+
className: "ash-env-vars-input ash-env-vars-input-value"
|
|
2222
|
+
}
|
|
2223
|
+
),
|
|
2224
|
+
/* @__PURE__ */ jsx(
|
|
2225
|
+
"button",
|
|
2226
|
+
{
|
|
2227
|
+
type: "button",
|
|
2228
|
+
onClick: handleAddEnvVar,
|
|
2229
|
+
disabled: !newEnvKey.trim(),
|
|
2230
|
+
className: "ash-env-vars-add-button",
|
|
2231
|
+
children: "Add"
|
|
2232
|
+
}
|
|
2233
|
+
)
|
|
2234
|
+
] }),
|
|
2235
|
+
helperText && /* @__PURE__ */ jsx("p", { className: "ash-env-vars-helper", children: helperText })
|
|
2236
|
+
] })
|
|
2237
|
+
] });
|
|
2238
|
+
}
|
|
2239
|
+
function DisplayModeToggle({
|
|
2240
|
+
className,
|
|
2241
|
+
showLabel = true,
|
|
2242
|
+
labels = { inline: "Inline", compact: "Compact", accordion: "Steps" },
|
|
2243
|
+
modes = ["inline", "compact", "accordion"]
|
|
2244
|
+
}) {
|
|
2245
|
+
const { config, setMode } = useDisplayMode();
|
|
2246
|
+
const currentMode = config.mode;
|
|
2247
|
+
const currentIndex = modes.indexOf(currentMode);
|
|
2248
|
+
const effectiveIndex = currentIndex === -1 ? 0 : currentIndex;
|
|
2249
|
+
const nextIndex = (effectiveIndex + 1) % modes.length;
|
|
2250
|
+
const nextMode = modes[nextIndex];
|
|
2251
|
+
const handleClick = () => {
|
|
2252
|
+
setMode(nextMode);
|
|
2253
|
+
};
|
|
2254
|
+
const getIcon = (mode) => {
|
|
2255
|
+
switch (mode) {
|
|
2256
|
+
case "inline":
|
|
2257
|
+
return /* @__PURE__ */ jsx(
|
|
2258
|
+
"svg",
|
|
2259
|
+
{
|
|
2260
|
+
className: "ash-display-mode-icon",
|
|
2261
|
+
viewBox: "0 0 24 24",
|
|
2262
|
+
fill: "none",
|
|
2263
|
+
stroke: "currentColor",
|
|
2264
|
+
strokeWidth: "1.5",
|
|
2265
|
+
children: /* @__PURE__ */ jsx(
|
|
2266
|
+
"path",
|
|
2267
|
+
{
|
|
2268
|
+
strokeLinecap: "round",
|
|
2269
|
+
strokeLinejoin: "round",
|
|
2270
|
+
d: "M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"
|
|
2271
|
+
}
|
|
2272
|
+
)
|
|
2273
|
+
}
|
|
2274
|
+
);
|
|
2275
|
+
case "compact":
|
|
2276
|
+
return /* @__PURE__ */ jsx(
|
|
2277
|
+
"svg",
|
|
2278
|
+
{
|
|
2279
|
+
className: "ash-display-mode-icon",
|
|
2280
|
+
viewBox: "0 0 24 24",
|
|
2281
|
+
fill: "none",
|
|
2282
|
+
stroke: "currentColor",
|
|
2283
|
+
strokeWidth: "1.5",
|
|
2284
|
+
children: /* @__PURE__ */ jsx(
|
|
2285
|
+
"path",
|
|
2286
|
+
{
|
|
2287
|
+
strokeLinecap: "round",
|
|
2288
|
+
strokeLinejoin: "round",
|
|
2289
|
+
d: "M3.75 6.75h16.5M3.75 12h16.5M12 17.25h8.25"
|
|
2290
|
+
}
|
|
2291
|
+
)
|
|
2292
|
+
}
|
|
2293
|
+
);
|
|
2294
|
+
case "accordion":
|
|
2295
|
+
return /* @__PURE__ */ jsx(
|
|
2296
|
+
"svg",
|
|
2297
|
+
{
|
|
2298
|
+
className: "ash-display-mode-icon",
|
|
2299
|
+
viewBox: "0 0 24 24",
|
|
2300
|
+
fill: "none",
|
|
2301
|
+
stroke: "currentColor",
|
|
2302
|
+
strokeWidth: "1.5",
|
|
2303
|
+
children: /* @__PURE__ */ jsx(
|
|
2304
|
+
"path",
|
|
2305
|
+
{
|
|
2306
|
+
strokeLinecap: "round",
|
|
2307
|
+
strokeLinejoin: "round",
|
|
2308
|
+
d: "M8.25 6.75h12M8.25 12h12M8.25 17.25h12M3.75 6.75h.007v.008H3.75V6.75zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zM3.75 12h.007v.008H3.75V12zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm-.375 5.25h.007v.008H3.75v-.008zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z"
|
|
2309
|
+
}
|
|
2310
|
+
)
|
|
2311
|
+
}
|
|
2312
|
+
);
|
|
2313
|
+
}
|
|
2314
|
+
};
|
|
2315
|
+
const getLabel = (mode) => {
|
|
2316
|
+
return labels[mode] || mode.charAt(0).toUpperCase() + mode.slice(1);
|
|
2317
|
+
};
|
|
2318
|
+
return /* @__PURE__ */ jsxs(
|
|
2319
|
+
"button",
|
|
2320
|
+
{
|
|
2321
|
+
type: "button",
|
|
2322
|
+
onClick: handleClick,
|
|
2323
|
+
className: cn("ash-display-mode-toggle", className),
|
|
2324
|
+
title: `Switch to ${nextMode} mode`,
|
|
2325
|
+
children: [
|
|
2326
|
+
getIcon(currentMode),
|
|
2327
|
+
showLabel && /* @__PURE__ */ jsx("span", { className: "ash-display-mode-label", children: getLabel(currentMode) })
|
|
2328
|
+
]
|
|
2329
|
+
}
|
|
2330
|
+
);
|
|
2331
|
+
}
|
|
1927
2332
|
var DEFAULT_WORDS = [
|
|
1928
2333
|
"Thinking",
|
|
1929
2334
|
"Reasoning",
|
|
@@ -2532,6 +2937,6 @@ function useFileUpload({
|
|
|
2532
2937
|
};
|
|
2533
2938
|
}
|
|
2534
2939
|
|
|
2535
|
-
export { ActionIcon, AlertCircleIcon, AlertTriangleIcon, AssistantMessage, BotIcon, BrainIcon, BugIcon, CheckCircleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CircleIcon, ClipboardListIcon, CodeBlock, CodeIcon, CompactToolStatusLine, CopyIcon, DEFAULT_DISPLAY_CONFIG, DisplayModeProvider, EditIcon, ErrorMessage, FileIcon, FilePlusIcon, FolderSearchIcon, GlobeIcon, InfoIcon, JsonDisplay, ListChecksIcon, LoaderIcon, LoadingIndicator, LogsPanel, MessageEntry, MessageList, MessageSquareIcon, MoonIcon, OptionCards, PaperclipIcon, PlugIcon, SearchIcon, SendIcon, SparklesIcon, StatusIndicator, StopCircleIcon, StreamingText, SunIcon, TerminalIcon, ThemeProvider, ThinkingMessage, TodoPanel, ToolCallCard, ToolCallMessage, ToolExecutionGroup, ToolIcon, TypewriterText, UserIcon, UserMessage, XCircleIcon, XIcon, allKeyframesCss, borderRadius, cn, colors, createToolCall, extractTextContent, extractToolCallsFromGroup, formatFileSize, formatTimestamp, formatToolName, generateToolSummary, getActionIcon, getActionLabel, groupEntriesForCompactMode, inlineStyles, isCommandRunAction, isErrorEntry, isFileEditAction, isFileReadAction, isFileWriteAction, isGenericToolAction, isGlobAction, isMcpToolAction, isSearchAction, isTodoWriteAction, isToolCallEntry, isWebFetchAction, isWebSearchAction, keyframes, keyframesCss, mapToolToActionType, normalizeToolResult, parseCommandResult, parseMcpToolName, parseOptionsFromContent, shadows, spacing, tokensToCssVariables, transitions, truncate, typography, updateToolCallWithResult, useDisplayConfig, useDisplayMode, useFileUpload, useMessageQueue, useStopExecution, useTheme, widget, zIndex };
|
|
2940
|
+
export { ActionIcon, AlertCircleIcon, AlertTriangleIcon, AssistantMessage, BotIcon, BrainIcon, BugIcon, CheckCircleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CircleIcon, ClipboardListIcon, CodeBlock, CodeIcon, CompactToolStatusLine, CopyIcon, DEFAULT_DISPLAY_CONFIG, DisplayModeProvider, DisplayModeToggle, EditIcon, EnvVarsPanel, ErrorIcon, ErrorMessage, FileIcon, FilePlusIcon, FolderSearchIcon, GlobeIcon, InfoIcon, JsonDisplay, ListChecksIcon, LoaderIcon, LoadingIndicator, LogsPanel, MessageEntry, MessageList, MessageSquareIcon, MoonIcon, OptionCards, PaperclipIcon, PlugIcon, SearchIcon, SendIcon, SparklesIcon, SpinnerIcon, StatusIndicator, StepAccordion, StopCircleIcon, StreamingText, SunIcon, TerminalIcon, ThemeProvider, ThinkingMessage, TodoPanel, ToolCallCard, ToolCallMessage, ToolExecutionGroup, ToolIcon, TypewriterText, UserIcon, UserMessage, XCircleIcon, XIcon, allKeyframesCss, borderRadius, cn, colors, createToolCall, extractTextContent, extractToolCallsFromGroup, formatFileSize, formatTimestamp, formatToolName, generateToolSummary, getActionIcon, getActionLabel, groupEntriesForCompactMode, inlineStyles, isCommandRunAction, isErrorEntry, isFileEditAction, isFileReadAction, isFileWriteAction, isGenericToolAction, isGlobAction, isMcpToolAction, isSearchAction, isTodoWriteAction, isToolCallEntry, isWebFetchAction, isWebSearchAction, keyframes, keyframesCss, mapToolToActionType, normalizeToolResult, parseCommandResult, parseMcpToolName, parseOptionsFromContent, shadows, spacing, tokensToCssVariables, transitions, truncate, typography, updateToolCallWithResult, useDisplayConfig, useDisplayMode, useFileUpload, useMessageQueue, useStopExecution, useTheme, widget, zIndex };
|
|
2536
2941
|
//# sourceMappingURL=index.js.map
|
|
2537
2942
|
//# sourceMappingURL=index.js.map
|