@parallelworks/ui 0.69.0 → 0.71.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/README.md CHANGED
@@ -714,6 +714,10 @@ glyph per meaning across the apps.
714
714
  named value and `ReportIcon` a report to open.
715
715
  `WorkspaceMountIcon` is storage mounted into a workspace and
716
716
  `CloudNetworkIcon` the private network hosts attach to.
717
+ `VerifiedIcon` marks a verified item, publisher or domain, while
718
+ `SuccessIcon` is a run that succeeded. `OwnerIcon` is who owns a resource
719
+ and `DefaultIcon` the one used when nothing else is chosen, while
720
+ `FeaturedIcon` marks an item picked out to show first.
717
721
  `NamespaceIcon`, `CommandShellIcon` and `QuickActionIcon` were
718
722
  `KubernetesNamespaceIcon`, `PowershellIcon` and `ZapIcon`; the old names
719
723
  still work but are deprecated.
@@ -870,6 +874,14 @@ passes `ChatInput`'s props; `ComposerControls` takes `model` and `allocation`
870
874
  as a `BoundSetting` for a session that owns its own, and `tools={false}` keeps
871
875
  the chat's tools out of a composer they don't apply to.
872
876
 
877
+ A host's own list of conversations or sessions builds on `ConversationSidebar`
878
+ with the same pieces the chat's list uses: `SidebarRow` with `SidebarRowBody`
879
+ inside its link (an optional `leading` mark such as a status dot, the title
880
+ and time, and an optional `detail` line), `useSessionMenu` for the row menu
881
+ (rename, share, download, then delete apart, each with an optional
882
+ `disabledReason`), `useRowDialogs` for rename and delete, and `SidebarEmpty`
883
+ for an empty list or a failed load.
884
+
873
885
  `ChatLayout sidebarMode="auto"` shows the conversation list as a drawer over
874
886
  the thread when the chat is narrower than `drawerBelowPx` (`DRAWER_BELOW_PX`, 896, by default),
875
887
  measured on the chat's own box; `"drawer"` always does, and `"inline"` (the
@@ -1,14 +1,13 @@
1
1
  import { cx } from "../../cx.js";
2
2
  import { ImageIcon, NewChatIcon, UsersIcon } from "../../icons.js";
3
3
  import { isPlainClick } from "../../components/AppLink.js";
4
- import { EmptyState } from "../../components/EmptyState.js";
5
4
  import { RelativeTime } from "../../components/relativeTime.js";
6
5
  import { SearchInput } from "../../components/SearchInput.js";
7
6
  import { useChatConfig } from "../core/config.js";
8
7
  import { useChat } from "../core/ChatProvider.js";
9
8
  import { ManageProvidersLink } from "./ComposerChrome.js";
10
9
  import { FOCUS_SIDEBAR_SEARCH_EVENT } from "../core/events.js";
11
- import { SidebarRow, SidebarRowTitle } from "../ui/sidebar.js";
10
+ import { SidebarEmpty, SidebarRow, SidebarRowBody } from "../ui/sidebar.js";
12
11
  import { ConversationSidebar } from "../ui/ConversationSidebar.js";
13
12
  import { groupConversationsByDate, useConversationActions } from "./conversationActions.js";
14
13
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -21,25 +20,26 @@ function ConversationRow({ conv, isCurrent, menuItems, openMenu, onOpen }) {
21
20
  selected: isCurrent,
22
21
  menuItems,
23
22
  openMenu,
24
- children: /* @__PURE__ */ jsxs(LinkComponent, {
23
+ children: /* @__PURE__ */ jsx(LinkComponent, {
25
24
  target: {
26
25
  kind: "conversation",
27
26
  id: conv.id
28
27
  },
29
- className: "flex min-w-0 flex-1 items-center gap-1.5 py-1 text-left",
28
+ className: "flex min-w-0 flex-1 py-1 text-left",
30
29
  onClick: (e) => {
31
30
  if (isPlainClick(e)) onOpen();
32
31
  },
33
- children: [conv.isOwner === false && /* @__PURE__ */ jsx(UsersIcon, {
34
- className: "h-3 w-3 shrink-0 theme-muted-text",
35
- title: t.sharedWithYou
36
- }), /* @__PURE__ */ jsx(SidebarRowTitle, {
32
+ children: /* @__PURE__ */ jsx(SidebarRowBody, {
33
+ leading: conv.isOwner === false && /* @__PURE__ */ jsx(UsersIcon, {
34
+ className: "h-3 w-3 theme-muted-text",
35
+ title: t.sharedWithYou
36
+ }),
37
+ title: conv.title || t.untitled,
37
38
  time: /* @__PURE__ */ jsx(RelativeTime, {
38
39
  value: conv.updatedAt ?? conv.createdAt,
39
40
  format: "compact"
40
- }),
41
- children: conv.title || t.untitled
42
- })]
41
+ })
42
+ })
43
43
  })
44
44
  });
45
45
  }
@@ -117,10 +117,7 @@ function ChatSidebar({ actions = true, top }) {
117
117
  onOpen: closeDrawer
118
118
  }),
119
119
  loading: isLoading,
120
- placeholder: /* @__PURE__ */ jsx(EmptyState, {
121
- variant: "bare",
122
- title: conversations.length === 0 ? tSidebar.noConversations : strings.chrome.noMatches
123
- }),
120
+ placeholder: /* @__PURE__ */ jsx(SidebarEmpty, { title: conversations.length === 0 ? tSidebar.noConversations : strings.chrome.noMatches }),
124
121
  cycle: {
125
122
  current: filteredConversations.find((conv) => conv.id === activeConversationId),
126
123
  onSelect: (conv) => navigation.toConversation(conv.id)
@@ -3,10 +3,12 @@ import { type OpenMenu } from '../../components/ContextMenu.js';
3
3
  import type { MenuEntry } from '../../components/MenuEntries.js';
4
4
  import type { ConversationSummary } from '../types.js';
5
5
  export type ConversationGroupKey = 'groupToday' | 'groupYesterday' | 'groupThisWeek' | 'groupThisMonth' | 'groupOlder';
6
- /** Conversations by how long ago they started, newest group first, leaving
7
- * out the groups with none. Each key names its label in the sidebar strings. */
6
+ /** Conversations by how long ago they last changed, the time each row shows,
7
+ * newest group first, leaving out the groups with none. Each key names its
8
+ * label in the sidebar strings. */
8
9
  export declare function groupConversationsByDate<T extends {
9
10
  createdAt: string;
11
+ updatedAt?: string | null | undefined;
10
12
  }>(conversations: T[]): {
11
13
  key: ConversationGroupKey;
12
14
  items: T[];
@@ -1,18 +1,18 @@
1
- import { DownloadIcon, RenameIcon, ShareIcon, TrashIcon } from "../../icons.js";
2
1
  import { toast } from "../../components/Toast.js";
3
2
  import { useStrings } from "../../components/Provider.js";
4
3
  import { useContextMenu } from "../../components/ContextMenu.js";
5
4
  import { useChatConfig } from "../core/config.js";
6
5
  import { useChat } from "../core/ChatProvider.js";
7
- import { useRowDialogs } from "../ui/sidebar.js";
6
+ import { useRowDialogs, useSessionMenu } from "../ui/sidebar.js";
8
7
  import { conversationToMarkdown, downloadText, exportFilename } from "../core/exportConversation.js";
9
8
  import ShareDialog from "./ShareDialog.js";
10
9
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
10
  import { useState } from "react";
12
11
  import { DateTime } from "luxon";
13
12
  //#region src/ai/components/conversationActions.tsx
14
- /** Conversations by how long ago they started, newest group first, leaving
15
- * out the groups with none. Each key names its label in the sidebar strings. */
13
+ /** Conversations by how long ago they last changed, the time each row shows,
14
+ * newest group first, leaving out the groups with none. Each key names its
15
+ * label in the sidebar strings. */
16
16
  function groupConversationsByDate(conversations) {
17
17
  const now = DateTime.now();
18
18
  const groups = {
@@ -23,7 +23,7 @@ function groupConversationsByDate(conversations) {
23
23
  groupOlder: []
24
24
  };
25
25
  for (const conv of conversations) {
26
- const days = now.diff(DateTime.fromISO(conv.createdAt), "days").days;
26
+ const days = now.diff(DateTime.fromISO(conv.updatedAt ?? conv.createdAt), "days").days;
27
27
  groups[days < 1 ? "groupToday" : days < 2 ? "groupYesterday" : days < 7 ? "groupThisWeek" : days < 30 ? "groupThisMonth" : "groupOlder"].push(conv);
28
28
  }
29
29
  return Object.entries(groups).filter(([, items]) => items.length > 0).map(([key, items]) => ({
@@ -63,29 +63,13 @@ function useConversationActions() {
63
63
  toast.error(strings.chrome.exportError);
64
64
  }
65
65
  };
66
- const menuItems = (conv) => [
67
- {
68
- label: common.rename,
69
- icon: /* @__PURE__ */ jsx(RenameIcon, {}),
70
- onClick: () => requestRename(conv)
71
- },
72
- ...adapter.sharing && conv.isOwner !== false ? [{
73
- label: common.share,
74
- icon: /* @__PURE__ */ jsx(ShareIcon, {}),
75
- onClick: () => setSharing(conv.id)
76
- }] : [],
77
- {
78
- label: common.download,
79
- icon: /* @__PURE__ */ jsx(DownloadIcon, {}),
80
- onClick: () => void download(conv.id)
81
- },
82
- {
83
- label: common.delete,
84
- icon: /* @__PURE__ */ jsx(TrashIcon, {}),
85
- destructive: true,
86
- onClick: () => requestDelete(conv)
87
- }
88
- ];
66
+ const sessionMenu = useSessionMenu();
67
+ const menuItems = (conv) => sessionMenu({
68
+ rename: { onClick: () => requestRename(conv) },
69
+ share: adapter.sharing && conv.isOwner !== false ? { onClick: () => setSharing(conv.id) } : void 0,
70
+ download: { onClick: () => void download(conv.id) },
71
+ remove: { onClick: () => requestDelete(conv) }
72
+ });
89
73
  return {
90
74
  menuItems,
91
75
  openMenu,
@@ -42,5 +42,5 @@ export { type ChatStrings, defaultChatStrings } from './strings.js';
42
42
  export * from './types.js';
43
43
  export { ConversationSidebar, type ConversationSidebarGroup, sidebarDrawerProps, } from './ui/ConversationSidebar.js';
44
44
  export { NoticeBar, NoticeCard, type NoticeTone, OutputCard } from './ui/Notice.js';
45
- export { RenameDialog, type RowDialogStrings, SidebarGroupHeading, SidebarPanel, SidebarRailItem, SidebarRow, SidebarRowTitle, SidebarToggle, useRowDialogs, } from './ui/sidebar.js';
45
+ export { RenameDialog, type RowDialogStrings, type SessionMenuAction, SidebarEmpty, SidebarGroupHeading, SidebarPanel, SidebarRailItem, SidebarRow, SidebarRowBody, SidebarRowTitle, SidebarToggle, useRowDialogs, useSessionMenu, } from './ui/sidebar.js';
46
46
  export { isMac, isOrgModel } from './utils.js';
package/dist/ai/index.js CHANGED
@@ -35,7 +35,7 @@ import ChatEmptyState from "./components/ChatEmptyState.js";
35
35
  import { FOCUS_SIDEBAR_SEARCH_EVENT } from "./core/events.js";
36
36
  import { useKeyboardShortcuts } from "./core/useKeyboardShortcuts.js";
37
37
  import { KeyboardShortcutsProvider } from "./core/KeyboardShortcutsProvider.js";
38
- import { RenameDialog, SidebarGroupHeading, SidebarPanel, SidebarRailItem, SidebarRow, SidebarRowTitle, SidebarToggle, useRowDialogs } from "./ui/sidebar.js";
38
+ import { RenameDialog, SidebarEmpty, SidebarGroupHeading, SidebarPanel, SidebarRailItem, SidebarRow, SidebarRowBody, SidebarRowTitle, SidebarToggle, useRowDialogs, useSessionMenu } from "./ui/sidebar.js";
39
39
  import { ConversationSidebar, sidebarDrawerProps } from "./ui/ConversationSidebar.js";
40
40
  import ShareDialog, { ShareButton } from "./components/ShareDialog.js";
41
41
  import { groupConversationsByDate, useConversationActions } from "./components/conversationActions.js";
@@ -46,4 +46,4 @@ import ChatMessageList from "./components/ChatMessageList.js";
46
46
  import SessionView from "./components/SessionView.js";
47
47
  import ChatThread from "./components/ChatThread.js";
48
48
  import { NoticeBar, NoticeCard, OutputCard } from "./ui/Notice.js";
49
- export { AGENT_COLOR_NAMES, ActivityLine, AgentMessageParts, AllocationSelector, ApprovalBlock, AttachmentManager, AttachmentUpload, BlockedGroupBanner, BranchNavigator, CHAT_COLUMN_SCOPE, ChatAdapterError, ChatEmptyState, ChatInput, ChatLayout, ChatMessageList, ChatMessage_default as ChatMessageView, ChatProvider, ChatSidebar, ChatStage, ChatThread, ComposerContext, ComposerControls, ComposerSettings, ComposerUsage, ConnectToolsLink, ConversationLayout, ConversationSidebar, DEFAULT_PERMISSION_MODE, DRAWER_BELOW_PX, DragOverlay, FOCUS_SIDEBAR_SEARCH_EVENT, INTERRUPTED_NOTICE, KeyboardShortcutsProvider, MAX_EDIT_DIFF_LINES, MAX_WRITE_DIFF_LINES, ManageProvidersLink, ModelSelector, NAMED_PERMISSION_MODES, NoticeBar, NoticeCard, OutputCard, PermissionPicker, ProviderIssueBanner, RenameDialog, SessionView, ShareButton, ShareDialog, SidebarGroupHeading, SidebarPanel, SidebarRailItem, SidebarRow, SidebarRowTitle, SidebarToggle, agentColorHex, agentTypeLabel, applyPartDelta, askQuestionFromArgs, bashExitCode, chatReducer, clampPermissionMode, classifyPseudoUserMessage, clip, computeEditDiff, computeWriteRows, defaultChatStrings, defaultToolStrings, editSummary, finalizeParts, firstNonEmptyLine, fullToolArgs, getGreeting, getProviderKeyFromModelId, groupConversationsByDate, hiddenTranscriptTool, initialState, interruptionNotice, isEditDiffTool, isGroupableTool, isMac, isNamedPermissionMode, isOrgModel, languageForPath, lineDelta, parseEditArgs, parseSubagentNotice, pasteInlineMaxBytes, permissionModesUpTo, planFromArgs, providerIssueFor, resolveChatConfig, resultFailed, rollupSentence, sanitizeLabel, sanitizePanelText, sidebarDrawerProps, slashMatches, subagentDeliveryLine, summarizeToolArgs, taskCallFromArgs, thinkingHeading, tokenizeDiffLines, toolHeaderFor, toolSummary, useChat, useChatConfig, useChatStream, useConversationActions, useDragDrop, useKeyboardShortcuts, useRowDialogs, wordEmphasisRanges };
49
+ export { AGENT_COLOR_NAMES, ActivityLine, AgentMessageParts, AllocationSelector, ApprovalBlock, AttachmentManager, AttachmentUpload, BlockedGroupBanner, BranchNavigator, CHAT_COLUMN_SCOPE, ChatAdapterError, ChatEmptyState, ChatInput, ChatLayout, ChatMessageList, ChatMessage_default as ChatMessageView, ChatProvider, ChatSidebar, ChatStage, ChatThread, ComposerContext, ComposerControls, ComposerSettings, ComposerUsage, ConnectToolsLink, ConversationLayout, ConversationSidebar, DEFAULT_PERMISSION_MODE, DRAWER_BELOW_PX, DragOverlay, FOCUS_SIDEBAR_SEARCH_EVENT, INTERRUPTED_NOTICE, KeyboardShortcutsProvider, MAX_EDIT_DIFF_LINES, MAX_WRITE_DIFF_LINES, ManageProvidersLink, ModelSelector, NAMED_PERMISSION_MODES, NoticeBar, NoticeCard, OutputCard, PermissionPicker, ProviderIssueBanner, RenameDialog, SessionView, ShareButton, ShareDialog, SidebarEmpty, SidebarGroupHeading, SidebarPanel, SidebarRailItem, SidebarRow, SidebarRowBody, SidebarRowTitle, SidebarToggle, agentColorHex, agentTypeLabel, applyPartDelta, askQuestionFromArgs, bashExitCode, chatReducer, clampPermissionMode, classifyPseudoUserMessage, clip, computeEditDiff, computeWriteRows, defaultChatStrings, defaultToolStrings, editSummary, finalizeParts, firstNonEmptyLine, fullToolArgs, getGreeting, getProviderKeyFromModelId, groupConversationsByDate, hiddenTranscriptTool, initialState, interruptionNotice, isEditDiffTool, isGroupableTool, isMac, isNamedPermissionMode, isOrgModel, languageForPath, lineDelta, parseEditArgs, parseSubagentNotice, pasteInlineMaxBytes, permissionModesUpTo, planFromArgs, providerIssueFor, resolveChatConfig, resultFailed, rollupSentence, sanitizeLabel, sanitizePanelText, sidebarDrawerProps, slashMatches, subagentDeliveryLine, summarizeToolArgs, taskCallFromArgs, thinkingHeading, tokenizeDiffLines, toolHeaderFor, toolSummary, useChat, useChatConfig, useChatStream, useConversationActions, useDragDrop, useKeyboardShortcuts, useRowDialogs, useSessionMenu, wordEmphasisRanges };
@@ -1,6 +1,6 @@
1
1
  import { type CSSProperties, type ReactNode } from 'react';
2
2
  import type { OpenMenu } from '../../components/ContextMenu.js';
3
- import type { MenuEntry } from '../../components/MenuEntries.js';
3
+ import { type MenuEntry } from '../../components/MenuEntries.js';
4
4
  export declare const SIDEBAR_DEFAULT_WIDTH_PX = 256;
5
5
  /** The column a conversation list lives in: it animates between its width
6
6
  * and a rail, unless a drag is setting the width right now. */
@@ -34,6 +34,34 @@ export declare function SidebarRowTitle({ children, time, }: {
34
34
  /** When it last changed, short: a compact `RelativeTime`. */
35
35
  time?: ReactNode;
36
36
  }): import("react").JSX.Element;
37
+ /** A row's content: an optional mark before it (a status dot, a shared
38
+ * icon), the title with its time, and an optional line under it for what the
39
+ * mark cannot say, such as the machine or a state that needs the reader. */
40
+ export declare function SidebarRowBody({ leading, title, time, detail, }: {
41
+ leading?: ReactNode;
42
+ title: ReactNode;
43
+ time?: ReactNode;
44
+ detail?: ReactNode;
45
+ }): import("react").JSX.Element;
46
+ /** An action a row's menu offers, and why it is unavailable when it is. */
47
+ export interface SessionMenuAction {
48
+ onClick: () => void;
49
+ disabledReason?: string | undefined;
50
+ }
51
+ /** A row's menu in one order wherever a list of conversations or sessions
52
+ * shows: rename, share, download, then delete apart. Each is left out unless given. */
53
+ export declare function useSessionMenu(): (actions: {
54
+ rename?: SessionMenuAction | undefined;
55
+ share?: SessionMenuAction | undefined;
56
+ download?: SessionMenuAction | undefined;
57
+ remove?: SessionMenuAction | undefined;
58
+ }) => MenuEntry[];
59
+ /** In place of a list with nothing to show: none yet, nothing matching, or
60
+ * why it could not load. */
61
+ export declare function SidebarEmpty({ title, error }: {
62
+ title: string;
63
+ error?: string | undefined;
64
+ }): import("react").JSX.Element;
37
65
  /** One entry in the list: the row highlights while it is the open one or
38
66
  * while its menu is up, and the menu opens from its button or a right-click. */
39
67
  export declare function SidebarRow({ selected, menuItems, openMenu, className, children, }: {
@@ -1,7 +1,10 @@
1
1
  import { cx } from "../../cx.js";
2
- import { SidebarIcon } from "../../icons.js";
2
+ import { DownloadIcon, RenameIcon, ShareIcon, SidebarIcon, TrashIcon } from "../../icons.js";
3
3
  import { Tooltip } from "../../components/Tooltip.js";
4
+ import { useStrings } from "../../components/Provider.js";
4
5
  import { AppLink, isPlainClick } from "../../components/AppLink.js";
6
+ import { EmptyState } from "../../components/EmptyState.js";
7
+ import { menuDivider } from "../../components/MenuEntries.js";
5
8
  import { IconButton } from "../../components/IconButton.js";
6
9
  import { fieldBox } from "../../components/fieldBox.js";
7
10
  import { focusOnMount } from "../../components/focus.js";
@@ -56,6 +59,65 @@ function SidebarRowTitle({ children, time }) {
56
59
  })]
57
60
  });
58
61
  }
62
+ /** A row's content: an optional mark before it (a status dot, a shared
63
+ * icon), the title with its time, and an optional line under it for what the
64
+ * mark cannot say, such as the machine or a state that needs the reader. */
65
+ function SidebarRowBody({ leading, title, time, detail }) {
66
+ return /* @__PURE__ */ jsxs("span", {
67
+ className: "flex min-w-0 flex-1 items-start gap-2",
68
+ children: [leading && /* @__PURE__ */ jsx("span", {
69
+ className: "mt-1 flex h-3 shrink-0 items-center",
70
+ children: leading
71
+ }), /* @__PURE__ */ jsxs("span", {
72
+ className: "min-w-0 flex-1",
73
+ children: [/* @__PURE__ */ jsx(SidebarRowTitle, {
74
+ time,
75
+ children: title
76
+ }), detail && /* @__PURE__ */ jsx("span", {
77
+ className: "mt-0.5 flex min-w-0 items-center gap-1.5 text-[11px]",
78
+ children: detail
79
+ })]
80
+ })]
81
+ });
82
+ }
83
+ /** A row's menu in one order wherever a list of conversations or sessions
84
+ * shows: rename, share, download, then delete apart. Each is left out unless given. */
85
+ function useSessionMenu() {
86
+ const { common } = useStrings();
87
+ return ({ rename, share, download, remove }) => {
88
+ const entry = (label, icon, action) => ({
89
+ label,
90
+ icon,
91
+ onClick: action.onClick,
92
+ ...action.disabledReason ? {
93
+ disabled: true,
94
+ disabledReason: action.disabledReason
95
+ } : {}
96
+ });
97
+ const items = [
98
+ ...rename ? [entry(common.rename, /* @__PURE__ */ jsx(RenameIcon, {}), rename)] : [],
99
+ ...share ? [entry(common.share, /* @__PURE__ */ jsx(ShareIcon, {}), share)] : [],
100
+ ...download ? [entry(common.download, /* @__PURE__ */ jsx(DownloadIcon, {}), download)] : []
101
+ ];
102
+ if (remove) {
103
+ if (items.length > 0) items.push(menuDivider);
104
+ items.push({
105
+ ...entry(common.delete, /* @__PURE__ */ jsx(TrashIcon, {}), remove),
106
+ destructive: true
107
+ });
108
+ }
109
+ return items;
110
+ };
111
+ }
112
+ /** In place of a list with nothing to show: none yet, nothing matching, or
113
+ * why it could not load. */
114
+ function SidebarEmpty({ title, error }) {
115
+ return /* @__PURE__ */ jsx(EmptyState, {
116
+ variant: "bare",
117
+ title: error ?? title,
118
+ ...error ? { testId: "sidebar-list-error" } : {}
119
+ });
120
+ }
59
121
  /** One entry in the list: the row highlights while it is the open one or
60
122
  * while its menu is up, and the menu opens from its button or a right-click. */
61
123
  function SidebarRow({ selected, menuItems, openMenu, className, children }) {
@@ -176,4 +238,4 @@ function useRowDialogs({ strings, nameOf, onDelete, onRename }) {
176
238
  };
177
239
  }
178
240
  //#endregion
179
- export { RenameDialog, SidebarGroupHeading, SidebarPanel, SidebarRailItem, SidebarRow, SidebarRowTitle, SidebarToggle, useRowDialogs };
241
+ export { RenameDialog, SidebarEmpty, SidebarGroupHeading, SidebarPanel, SidebarRailItem, SidebarRow, SidebarRowBody, SidebarRowTitle, SidebarToggle, useRowDialogs, useSessionMenu };
package/dist/icons.d.ts CHANGED
@@ -62,6 +62,7 @@ export declare const ConnectIcon: IconType;
62
62
  export declare const ContractIcon: IconType;
63
63
  export declare const CopyIcon: IconType;
64
64
  export declare const CustomizeIcon: IconType;
65
+ export declare const DefaultIcon: IconType;
65
66
  export declare const DefinitionIcon: IconType;
66
67
  export declare const DeprovisionIcon: IconType;
67
68
  export declare const DesktopIcon: IconType;
@@ -175,6 +176,7 @@ export declare const NotRunningIcon: IconType;
175
176
  export declare const OnboardingIcon: IconType;
176
177
  export declare const OpenInNewGraphIcon: IconType;
177
178
  export declare const OrganizationIcon: IconType;
179
+ export declare const OwnerIcon: IconType;
178
180
  export declare const PartnerIcon: IconType;
179
181
  export declare const PasswordIcon: IconType;
180
182
  export declare const PauseIcon: IconType;
@@ -269,6 +271,7 @@ export declare const UserIcon: IconType;
269
271
  export declare const UsersIcon: IconType;
270
272
  export declare const UserWorkspaceIcon: IconType;
271
273
  export declare const VariableIcon: IconType;
274
+ export declare const VerifiedIcon: IconType;
272
275
  export declare const VideoIcon: IconType;
273
276
  export declare const WarningIcon: IconType;
274
277
  export declare const WebhookIcon: IconType;
package/dist/icons.js CHANGED
@@ -84,6 +84,7 @@ var ConnectIcon = /* @__PURE__ */ drawn("M5.5 2v3M10.5 2v3M3.5 5h9v2.5a4.5 4.5 0
84
84
  var ContractIcon = /* @__PURE__ */ drawn("M12.5 6.25V4.75L9.5 1.75h-5a1 1 0 0 0-1 1v10.5a1 1 0 0 0 1 1h2.25M9.5 1.75v3h3M5.5 11h1.5M8.25 14.25l.5-2.25 4-4a1.06 1.06 0 0 1 1.5 1.5l-4 4Z");
85
85
  var CopyIcon = /* @__PURE__ */ drawn("M6.5 5.5h6a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1ZM10.5 5.5v-2a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2");
86
86
  var CustomizeIcon = /* @__PURE__ */ drawn("M8 14A6 6 0 1 1 14 8c0 1.5-1.25 2.25-2.5 2.25H10.5a1.5 1.5 0 0 0-1.1 2.5c.6.65.1 1.25-1.4 1.25ZM5 7.4a0.6 0.6 0 1 0 0 1.2a0.6 0.6 0 0 0 0-1.2ZM6.25 4.15a0.6 0.6 0 1 0 0 1.2a0.6 0.6 0 0 0 0-1.2ZM9.75 4.15a0.6 0.6 0 1 0 0 1.2a0.6 0.6 0 0 0 0-1.2Z");
87
+ var DefaultIcon = /* @__PURE__ */ drawn("M4.5 2.25h7v11.5L8 11.25l-3.5 2.5Z");
87
88
  var DefinitionIcon = /* @__PURE__ */ drawn("M9.5 1.75h-5a1 1 0 0 0-1 1v10.5a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V4.75ZM9.5 1.75v3h3M5.75 7.25h2.5M7.75 9.75h2.5M7.75 12.25h1.5");
88
89
  var DeprovisionIcon = /* @__PURE__ */ drawn("M3.5 2.5h9a1 1 0 0 1 1 1v2.5a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-2.5a1 1 0 0 1 1-1ZM5 4.75h.01M3.5 9h4.25a1 1 0 0 1 1 1v2.5a1 1 0 0 1-1 1h-4.25a1 1 0 0 1-1-1v-2.5a1 1 0 0 1 1-1ZM5 11.25h.01M10.25 12.25h4");
89
90
  var DesktopIcon = /* @__PURE__ */ drawn("M3.5 2.5h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1ZM5.5 13.5h5M8 10.5v3");
@@ -197,6 +198,7 @@ var NotRunningIcon = /* @__PURE__ */ drawn("M8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12Z"
197
198
  var OnboardingIcon = /* @__PURE__ */ drawn("M1.75 14h3.5v-3.5h3.5V7h3.5V2.5M9.75 4.75 12.25 2.25l2.5 2.5");
198
199
  var OpenInNewGraphIcon = /* @__PURE__ */ drawn("M7 2h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1ZM3 10h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1ZM8 6v2M4 10V8.75A.75.75 0 0 1 4.75 8h4.75M11.25 10.25h3v3M14.25 10.25l-4 4");
199
200
  var OrganizationIcon = /* @__PURE__ */ drawn("M5 13.75V3.25a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v10.5M5 7H3.25a1 1 0 0 0-1 1v4.75a1 1 0 0 0 1 1h9.5a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H11M7 5.25h2M7 8.25h2M7 13.75v-1.75a1 1 0 0 1 2 0v1.75");
201
+ var OwnerIcon = /* @__PURE__ */ drawn("M6.5 7.75a2.75 2.75 0 1 0 0-5.5 2.75 2.75 0 0 0 0 5.5ZM2 13.75c.55-2.35 2.4-3.75 4.5-3.75.8 0 1.5.15 2.1.45M11.5 12.75a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM12.6 12.6l1.9 1.9M13.75 13.75l-1 1");
200
202
  var PartnerIcon = /* @__PURE__ */ drawn("M2.5 2.5 2 9.25l3.9 3.9a.9.9 0 0 0 1.8-1.8M2.5 3.25h4.75M13.5 2.5l.5 6.75h-1.25M9.25 9.25l1.5 1.5a.9.9 0 0 0 1.8-1.8l-2.35-2.35a1.8 1.8 0 0 0-2.55 0l-.55.55a.9.9 0 0 1-1.8-1.8l1.7-1.7a3.5 3.5 0 0 1 4.25-.5l.3.15a1.2 1.2 0 0 0 .85.15l1.1-.25");
201
203
  var PasswordIcon = /* @__PURE__ */ drawn("M2.9 7.25a0.6 0.6 0 1 0 1.2 0a0.6 0.6 0 1 0 -1.2 0M7.4 7.25a0.6 0.6 0 1 0 1.2 0a0.6 0.6 0 1 0 -1.2 0M11.9 7.25a0.6 0.6 0 1 0 1.2 0a0.6 0.6 0 1 0 -1.2 0M1.75 11.5h12.5");
202
204
  var PauseIcon = /* @__PURE__ */ drawn("M5.5 3.25v9.5M10.5 3.25v9.5");
@@ -291,6 +293,7 @@ var UserIcon = /* @__PURE__ */ drawn("M8 8a2.75 2.75 0 1 0 0-5.5A2.75 2.75 0 0 0
291
293
  var UsersIcon = /* @__PURE__ */ drawn("M6 7.5a2.25 2.25 0 1 0 0-4.5 2.25 2.25 0 0 0 0 4.5ZM1.75 13c.5-2 2.1-3.25 4.25-3.25S9.75 11 10.25 13M10.5 3.1a2.25 2.25 0 0 1 0 4.3M11.75 9.9c1.2.45 2.1 1.5 2.5 3.1");
292
294
  var UserWorkspaceIcon = /* @__PURE__ */ drawn("M3.5 2.5h9a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1ZM5 5.5l2 2-2 2M8 10.5h3");
293
295
  var VariableIcon = /* @__PURE__ */ drawn("M4.75 2.5C3.25 4 2.5 6 2.5 8s.75 4 2.25 5.5M11.25 2.5c1.5 1.5 2.25 3.5 2.25 5.5s-.75 4-2.25 5.5M6 6l4 4M10 6l-4 4");
296
+ var VerifiedIcon = /* @__PURE__ */ drawn("M8 1.75L9.91 3.38L12.42 3.58L12.62 6.09L14.25 8L12.62 9.91L12.42 12.42L9.91 12.62L8 14.25L6.09 12.62L3.58 12.42L3.38 9.91L1.75 8L3.38 6.09L3.58 3.58L6.09 3.38ZM5.5 8.25 7.15 9.9 10.5 6.25");
294
297
  var VideoIcon = /* @__PURE__ */ drawn("M2.75 4h6.75a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H2.75a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1ZM10.5 9l3.15 2.1a.4.4 0 0 0 .6-.35v-5.5a.4.4 0 0 0-.6-.35L10.5 7");
295
298
  var WarningIcon = /* @__PURE__ */ drawn("M7.13 2.5a1 1 0 0 1 1.74 0l5.5 9.75a1 1 0 0 1-.87 1.5H2.5a1 1 0 0 1-.87-1.5ZM8 6.5v2.75M8 11.25h.01");
296
299
  var WebhookIcon = /* @__PURE__ */ drawn("M11.75 11.13H8.01c-.69 0-1.22.59-1.55 1.19A2.5 2.5 0 0 1 1.75 11.13c.01-.44.13-.88.36-1.25M4.25 11.13l1.96-3.61c.33-.61.06-1.36-.31-1.94a2.5 2.5 0 1 1 4.31-2.54M8 4.25l1.96 3.58c.33.61 1.1.8 1.79.8a2.5 2.5 0 0 1 0 5");
@@ -308,4 +311,4 @@ var PowershellIcon = CommandShellIcon;
308
311
  /** @deprecated Renamed QuickActionIcon, which says what it means. */
309
312
  var ZapIcon = QuickActionIcon;
310
313
  //#endregion
311
- export { APIIcon, AccessIcon, AddAllocationIcon, AddIcon, AddProjectIcon, AddUserIcon, AgentIcon, AiProviderIcon, AllocationIcon, ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArticleIcon, AttachmentIcon, AuthenticationIcon, BannerIcon, BillingIcon, BriefcaseIcon, BucketIcon, BuildWorkflowIcon, CalendarIcon, CancelIcon, CelebrateIcon, CertificateIcon, ChangesRequestedIcon, ChartIcon, ChatIcon, CheckIcon, ChevronDoubleDownIcon, ChevronDoubleUpIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClipboardCheckIcon, ClockIcon, CloseIcon, CloudIcon, CloudNetworkIcon, ClusterIcon, CodeIcon, CollapseIcon, ColumnsIcon, CommandShellIcon, CommentIcon, CommitIcon, ComputeIcon, ConfigIcon, ConnectIcon, ContractIcon, CopyIcon, CustomizeIcon, DefinitionIcon, DeprovisionIcon, DesktopIcon, DestroyIcon, DeviceIcon, DirectoryIcon, DirectorySyncIcon, DisableCostIcon, DisableUserIcon, DisconnectIcon, DiskIcon, DisplayIcon, DownloadIcon, DragHandleIcon, DuplicateIcon, EditIcon, EditorIcon, EducationIcon, EnableCostIcon, EnableUserIcon, EndpointIcon, ErrorCheckmark, ErrorIcon, EventsIcon, ExpandIcon, ExpandVerticalIcon, ExpiredIcon, ExpiringIcon, ExpressionIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FailIcon, FavoriteIcon, FavoriteOutlineIcon, FeaturedIcon, FileIcon, FileTextIcon, FilesIcon, FilesystemIcon, FilterClearIcon, FilterIcon, FlaggedIcon, FlaskIcon, FolderIcon, FolderOpenIcon, FolderTreeIcon, ForbiddenIcon, ForkIcon, GearsIcon, GlobeIcon, GovernmentIcon, GraphIcon, GridIcon, HealthMonitoringIcon, HelpIcon, HistoryIcon, HomeIcon, IdCardIcon, ImageIcon, ImpersonateIcon, InboxIcon, IndexIcon, InfoIcon, InfrastructureLayersIcon, InputFormIcon, InstallIcon, InstanceIcon, InstanceTypeIcon, IpAddressIcon, IssueIcon, JobIcon, JsonIcon, KeyIcon, KeyboardIcon, KubernetesNamespaceIcon, LanguageIcon, LegalIcon, LibraryIcon, LicenseIcon, LinkIcon, ListViewIcon, LoadingIcon, LockIcon, LogsIcon, MFAIcon, MachineImageIcon, MailFailedIcon, MailIcon, MailVerifiedIcon, MapPinIcon, MarketplaceIcon, MatrixIcon, MegaphoneIcon, MigrationIcon, MinimizeIcon, MinusIcon, MlIcon, MoneyIcon, MoonIcon, MoreIcon, MusicIcon, MuteIcon, NamespaceIcon, NavigationIcon, NetworkInterfaceIcon, NetworkShareIcon, NewChatIcon, NodeIcon, NotRunningIcon, NotebookIcon, NotificationIcon, OnboardingIcon, OpenInNewGraphIcon, OrganizationIcon, PartnerIcon, PasswordIcon, PauseIcon, PdfIcon, PendingIcon, PhoneIcon, PieChartIcon, PinFilledIcon, PinIcon, PowerIcon, PowershellIcon, PreviewIcon, PrintIcon, ProjectIcon, ProvisionIcon, PublishIcon, PullRequestIcon, QRCodeIcon, QueueIcon, QuickActionIcon, QuotaIcon, RedoIcon, RefreshIcon, ReleaseIcon, RemoveIcon, RemoveUserIcon, RenameIcon, RenewIcon, ReportIcon, ResetIcon, ResetLayoutIcon, ResourceGroupIcon, ResourceIcon, RestartIcon, RestoreIcon, RetryIcon, RevokeIcon, RoleIcon, RollbackIcon, RunWorkflowIcon, RunningIcon, RunsIcon, SaveIcon, SchedulerIcon, ScriptIcon, SearchIcon, SendIcon, ServiceIcon, SessionIcon, SettingsIcon, ShareIcon, SharedIcon, ShieldIcon, ShieldOffIcon, ShrinkIcon, SidebarCloseIcon, SidebarIcon, SidebarOpenIcon, SignInIcon, SignOutIcon, SkipIcon, SnapshotIcon, SortDownIcon, SortUnsortedIcon, SortUpIcon, SparklesIcon, SplitIcon, SpreadsheetIcon, StartIcon, StopIcon, StorageIcon, SubdomainIcon, SuccessCheckmark, SuccessIcon, SummaryIcon, SunIcon, SupportIcon, SwapIcon, TagIcon, TerminalIcon, ThinkingIcon, TodoIcon, TokenIcon, ToolsIcon, TrashIcon, TunnelIcon, UndoIcon, UnfavoriteIcon, UnlinkIcon, UnmuteIcon, UnsplitIcon, UploadIcon, UserIcon, UserWorkspaceIcon, UsersIcon, VariableIcon, VideoIcon, WarningIcon, WebhookIcon, WorkerIcon, WorkflowIcon, WorkloadIcon, WorkspaceMountIcon, ZapIcon, ZipIcon, ZoomInIcon, ZoomOutIcon };
314
+ export { APIIcon, AccessIcon, AddAllocationIcon, AddIcon, AddProjectIcon, AddUserIcon, AgentIcon, AiProviderIcon, AllocationIcon, ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArticleIcon, AttachmentIcon, AuthenticationIcon, BannerIcon, BillingIcon, BriefcaseIcon, BucketIcon, BuildWorkflowIcon, CalendarIcon, CancelIcon, CelebrateIcon, CertificateIcon, ChangesRequestedIcon, ChartIcon, ChatIcon, CheckIcon, ChevronDoubleDownIcon, ChevronDoubleUpIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClipboardCheckIcon, ClockIcon, CloseIcon, CloudIcon, CloudNetworkIcon, ClusterIcon, CodeIcon, CollapseIcon, ColumnsIcon, CommandShellIcon, CommentIcon, CommitIcon, ComputeIcon, ConfigIcon, ConnectIcon, ContractIcon, CopyIcon, CustomizeIcon, DefaultIcon, DefinitionIcon, DeprovisionIcon, DesktopIcon, DestroyIcon, DeviceIcon, DirectoryIcon, DirectorySyncIcon, DisableCostIcon, DisableUserIcon, DisconnectIcon, DiskIcon, DisplayIcon, DownloadIcon, DragHandleIcon, DuplicateIcon, EditIcon, EditorIcon, EducationIcon, EnableCostIcon, EnableUserIcon, EndpointIcon, ErrorCheckmark, ErrorIcon, EventsIcon, ExpandIcon, ExpandVerticalIcon, ExpiredIcon, ExpiringIcon, ExpressionIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FailIcon, FavoriteIcon, FavoriteOutlineIcon, FeaturedIcon, FileIcon, FileTextIcon, FilesIcon, FilesystemIcon, FilterClearIcon, FilterIcon, FlaggedIcon, FlaskIcon, FolderIcon, FolderOpenIcon, FolderTreeIcon, ForbiddenIcon, ForkIcon, GearsIcon, GlobeIcon, GovernmentIcon, GraphIcon, GridIcon, HealthMonitoringIcon, HelpIcon, HistoryIcon, HomeIcon, IdCardIcon, ImageIcon, ImpersonateIcon, InboxIcon, IndexIcon, InfoIcon, InfrastructureLayersIcon, InputFormIcon, InstallIcon, InstanceIcon, InstanceTypeIcon, IpAddressIcon, IssueIcon, JobIcon, JsonIcon, KeyIcon, KeyboardIcon, KubernetesNamespaceIcon, LanguageIcon, LegalIcon, LibraryIcon, LicenseIcon, LinkIcon, ListViewIcon, LoadingIcon, LockIcon, LogsIcon, MFAIcon, MachineImageIcon, MailFailedIcon, MailIcon, MailVerifiedIcon, MapPinIcon, MarketplaceIcon, MatrixIcon, MegaphoneIcon, MigrationIcon, MinimizeIcon, MinusIcon, MlIcon, MoneyIcon, MoonIcon, MoreIcon, MusicIcon, MuteIcon, NamespaceIcon, NavigationIcon, NetworkInterfaceIcon, NetworkShareIcon, NewChatIcon, NodeIcon, NotRunningIcon, NotebookIcon, NotificationIcon, OnboardingIcon, OpenInNewGraphIcon, OrganizationIcon, OwnerIcon, PartnerIcon, PasswordIcon, PauseIcon, PdfIcon, PendingIcon, PhoneIcon, PieChartIcon, PinFilledIcon, PinIcon, PowerIcon, PowershellIcon, PreviewIcon, PrintIcon, ProjectIcon, ProvisionIcon, PublishIcon, PullRequestIcon, QRCodeIcon, QueueIcon, QuickActionIcon, QuotaIcon, RedoIcon, RefreshIcon, ReleaseIcon, RemoveIcon, RemoveUserIcon, RenameIcon, RenewIcon, ReportIcon, ResetIcon, ResetLayoutIcon, ResourceGroupIcon, ResourceIcon, RestartIcon, RestoreIcon, RetryIcon, RevokeIcon, RoleIcon, RollbackIcon, RunWorkflowIcon, RunningIcon, RunsIcon, SaveIcon, SchedulerIcon, ScriptIcon, SearchIcon, SendIcon, ServiceIcon, SessionIcon, SettingsIcon, ShareIcon, SharedIcon, ShieldIcon, ShieldOffIcon, ShrinkIcon, SidebarCloseIcon, SidebarIcon, SidebarOpenIcon, SignInIcon, SignOutIcon, SkipIcon, SnapshotIcon, SortDownIcon, SortUnsortedIcon, SortUpIcon, SparklesIcon, SplitIcon, SpreadsheetIcon, StartIcon, StopIcon, StorageIcon, SubdomainIcon, SuccessCheckmark, SuccessIcon, SummaryIcon, SunIcon, SupportIcon, SwapIcon, TagIcon, TerminalIcon, ThinkingIcon, TodoIcon, TokenIcon, ToolsIcon, TrashIcon, TunnelIcon, UndoIcon, UnfavoriteIcon, UnlinkIcon, UnmuteIcon, UnsplitIcon, UploadIcon, UserIcon, UserWorkspaceIcon, UsersIcon, VariableIcon, VerifiedIcon, VideoIcon, WarningIcon, WebhookIcon, WorkerIcon, WorkflowIcon, WorkloadIcon, WorkspaceMountIcon, ZapIcon, ZipIcon, ZoomInIcon, ZoomOutIcon };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parallelworks/ui",
3
- "version": "0.69.0",
3
+ "version": "0.71.0",
4
4
  "description": "React UI components: a theme contract, icons, brand logos, primitives, lists, forms, a job graph, a code editor, a log viewer, a file explorer and an AI chat, each on its own subpath",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {