@iloveagents/foundry-web-ui 0.25.0 → 0.27.0
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/components/assistant-chat.d.ts +12 -1
- package/dist/components/assistant-chat.js +18 -13
- package/dist/components/chat-bubble.js +9 -6
- package/dist/components/chat-context.d.ts +2 -0
- package/dist/components/chat-context.js +70 -0
- package/dist/components/chat-slots.d.ts +10 -0
- package/dist/components/chat-slots.js +7 -0
- package/dist/components/composer-add-menu.js +3 -2
- package/dist/components/composer-input.d.ts +4 -0
- package/dist/components/composer-input.js +23 -0
- package/dist/components/context-badges.d.ts +4 -1
- package/dist/components/context-badges.js +7 -4
- package/dist/components/context-bar.d.ts +1 -0
- package/dist/components/context-bar.js +11 -3
- package/dist/components/data-table/data-table-frame.d.ts +1 -22
- package/dist/components/data-table/data-table-frame.js +21 -48
- package/dist/components/data-table/data-table-overflow.d.ts +5 -0
- package/dist/components/data-table/data-table-overflow.js +42 -0
- package/dist/components/data-table/data-table.js +88 -87
- package/dist/components/data-table/focus-pane-resize.d.ts +8 -0
- package/dist/components/data-table/focus-pane-resize.js +88 -0
- package/dist/components/focus-chat-pane.d.ts +8 -0
- package/dist/components/focus-chat-pane.js +9 -0
- package/dist/components/focus-dialog.d.ts +8 -0
- package/dist/components/focus-dialog.js +103 -0
- package/dist/components/focus-source-pane.d.ts +7 -0
- package/dist/components/focus-source-pane.js +15 -0
- package/dist/components/loading-indicator.js +1 -1
- package/dist/components/message-timestamp.js +3 -2
- package/dist/components/pin-state-icon.d.ts +5 -0
- package/dist/components/pin-state-icon.js +7 -0
- package/dist/components/pin-toggle.d.ts +7 -0
- package/dist/components/pin-toggle.js +10 -0
- package/dist/components/sidebar.d.ts +18 -1
- package/dist/components/sidebar.js +193 -100
- package/dist/components/tool-panel-layout.d.ts +3 -1
- package/dist/components/tool-panel-layout.js +5 -5
- package/dist/components/tool-panel.d.ts +8 -1
- package/dist/components/tool-panel.js +12 -8
- package/dist/components/user-menu.js +19 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/lib/app-store.d.ts +0 -8
- package/dist/lib/app-store.js +14 -4
- package/dist/lib/chat-context-summary.d.ts +11 -0
- package/dist/lib/chat-context-summary.js +37 -0
- package/dist/lib/chat-lifecycle-store.d.ts +2 -0
- package/dist/lib/chat-lifecycle-store.js +6 -1
- package/dist/lib/client-tools.js +7 -0
- package/dist/lib/create-ui-id.d.ts +2 -0
- package/dist/lib/create-ui-id.js +9 -0
- package/dist/lib/focus-context.d.ts +2 -0
- package/dist/lib/focus-context.js +78 -0
- package/dist/lib/nav-config.d.ts +26 -0
- package/dist/lib/tool-panel-store.d.ts +7 -6
- package/dist/lib/tool-panel-store.js +29 -3
- package/dist/lib/use-new-conversation.js +1 -1
- package/dist/workbench/chat-header.d.ts +14 -0
- package/dist/workbench/chat-header.js +12 -0
- package/dist/workbench/chat-resize-handle.d.ts +4 -0
- package/dist/workbench/chat-resize-handle.js +40 -0
- package/dist/workbench/content-pane.d.ts +14 -0
- package/dist/workbench/content-pane.js +14 -0
- package/dist/workbench/conversation-history.d.ts +11 -0
- package/dist/workbench/conversation-history.js +83 -0
- package/dist/workbench/navigation.d.ts +6 -0
- package/dist/workbench/navigation.js +6 -0
- package/dist/workbench/selection-bridge.d.ts +5 -0
- package/dist/workbench/selection-bridge.js +84 -0
- package/dist/workbench/use-chat-width.d.ts +14 -0
- package/dist/workbench/use-chat-width.js +56 -0
- package/dist/workbench/use-workbench-state.d.ts +50 -0
- package/dist/workbench/use-workbench-state.js +145 -0
- package/dist/workbench/welcome-intro.d.ts +6 -0
- package/dist/workbench/welcome-intro.js +10 -0
- package/dist/workbench/workbench-styles.d.ts +1 -0
- package/dist/workbench/workbench-styles.js +290 -0
- package/dist/workbench/workbench.d.ts +5 -0
- package/dist/workbench/workbench.js +32 -0
- package/dist/workbench.d.ts +2 -0
- package/dist/workbench.js +2 -0
- package/package.json +8 -4
|
@@ -9,10 +9,11 @@ import { cn } from "@iloveagents/foundry-web-primitives";
|
|
|
9
9
|
*/
|
|
10
10
|
export const MessageTimestamp = ({ className }) => {
|
|
11
11
|
const createdAt = useAuiState((s) => s.message.createdAt);
|
|
12
|
-
|
|
12
|
+
const running = useAuiState((s) => s.thread.isRunning);
|
|
13
|
+
if (!createdAt || running)
|
|
13
14
|
return null;
|
|
14
15
|
const d = createdAt instanceof Date ? createdAt : new Date(createdAt);
|
|
15
16
|
if (Number.isNaN(d.getTime()))
|
|
16
17
|
return null;
|
|
17
|
-
return (_jsx("span", { title: d.toLocaleString(undefined, { dateStyle: "medium", timeStyle: "short" }), className: cn("text-xs text-muted-foreground/70 tabular-nums select-none", "opacity-0 transition-opacity group-hover:opacity-100", className), children: d.toLocaleTimeString(undefined, { hour: "2-digit", minute: "2-digit" }) }));
|
|
18
|
+
return (_jsx("span", { title: d.toLocaleString(undefined, { dateStyle: "medium", timeStyle: "short" }), className: cn("text-xs text-muted-foreground/70 tabular-nums select-none", "opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100", className), children: d.toLocaleTimeString(undefined, { hour: "2-digit", minute: "2-digit" }) }));
|
|
18
19
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Pin } from "lucide-react";
|
|
3
|
+
import { cn } from "@iloveagents/foundry-web-primitives";
|
|
4
|
+
/** State glyph; controls retain explicit Pin/Unpin action labels. */
|
|
5
|
+
export function PinStateIcon({ pinned, className }) {
|
|
6
|
+
return (_jsx(Pin, { "aria-hidden": "true", className: cn("size-4", pinned ? "text-primary fill-primary/25" : "text-muted-foreground", className) }));
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
import { Button } from "@iloveagents/foundry-web-primitives";
|
|
3
|
+
/** Pin state uses one upright glyph everywhere; the label describes the action. */
|
|
4
|
+
export declare function PinToggle({ pinned, label, className, ...props }: Omit<ComponentProps<typeof Button>, "children"> & {
|
|
5
|
+
pinned: boolean;
|
|
6
|
+
label: string;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { PinStateIcon } from "./pin-state-icon.js";
|
|
3
|
+
import { Button, cn } from "@iloveagents/foundry-web-primitives";
|
|
4
|
+
/** Pin state uses one upright glyph everywhere; the label describes the action. */
|
|
5
|
+
export function PinToggle({ pinned, label, className, ...props }) {
|
|
6
|
+
const action = `${pinned ? "Unpin" : "Pin"} ${label}`;
|
|
7
|
+
return (_jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": action, "aria-pressed": pinned, title: action, ...props, className: cn("shrink-0 shadow-none", pinned
|
|
8
|
+
? "bg-primary/10 text-primary hover:bg-primary/15 hover:text-primary"
|
|
9
|
+
: "text-muted-foreground", className), children: _jsx(PinStateIcon, { pinned: pinned }) }));
|
|
10
|
+
}
|
|
@@ -1,4 +1,21 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import type { NavGroup } from "../lib/nav-config.js";
|
|
1
3
|
declare function scrollNavRowIntoView(nav: HTMLElement, row: HTMLElement): void;
|
|
2
4
|
export declare const _scrollNavRowIntoViewForTest: typeof scrollNavRowIntoView;
|
|
3
|
-
|
|
5
|
+
interface SidebarViewProps {
|
|
6
|
+
/** Display-only navigation override; the navigation registry remains intact. */
|
|
7
|
+
groups?: NavGroup[];
|
|
8
|
+
onNewConversation?: () => void;
|
|
9
|
+
hideFooterActions?: boolean;
|
|
10
|
+
hideNewConversation?: boolean;
|
|
11
|
+
/** Compact rail shows group entry points instead of every child item. */
|
|
12
|
+
collapsedGroupsOnly?: boolean;
|
|
13
|
+
/** Place the primary action beneath a scope heading instead of above navigation. */
|
|
14
|
+
newConversationAfterGroup?: string;
|
|
15
|
+
newConversationLabel?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function Sidebar({ footer, collapsedFooter, ...view }?: SidebarViewProps & {
|
|
18
|
+
footer?: ReactNode;
|
|
19
|
+
collapsedFooter?: ReactNode;
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
4
21
|
export {};
|