@invect/ui 0.0.7 → 0.0.9
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/{Invect-BndIqK9R.js → Invect-DKeWRdqo.js} +30004 -29859
- package/dist/api/client.d.ts +5 -0
- package/dist/api/node-data.api.d.ts +1 -1
- package/dist/assets/provider-icons/index.d.ts +3 -4
- package/dist/{babel-C9OtljFZ.js → babel-BAnO5AO4.js} +5 -5
- package/dist/demo.js +31 -31
- package/dist/{estree-ClbRfS-1.js → estree-CKaJvoWR.js} +3 -3
- package/dist/index.css +1 -1
- package/dist/index.js +194 -194
- package/dist/stores/uiStore.d.ts +4 -0
- package/dist/svg-raw.d.ts +4 -0
- package/package.json +5 -5
- package/src/api/client.ts +11 -5
- package/src/api/use-flow-run-stream.ts +1 -5
- package/src/assets/provider-icons/cloudwatch.svg +14 -0
- package/src/assets/provider-icons/dropbox.svg +10 -0
- package/src/assets/provider-icons/facebook.svg +8 -0
- package/src/assets/provider-icons/google_analytics.svg +7 -0
- package/src/assets/provider-icons/index.ts +46 -43
- package/src/assets/provider-icons/jira.svg +18 -0
- package/src/assets/provider-icons/microsoft_teams.svg +27 -0
- package/src/assets/provider-icons/salesforce.svg +16 -0
- package/src/assets/provider-icons/shopify.svg +8 -0
- package/src/assets/provider-icons/trello.svg +16 -0
- package/src/assets/provider-icons/twitter.svg +7 -0
- package/src/components/chat/ChatMessageList.tsx +3 -27
- package/src/components/chat/ChatPanel.tsx +3 -3
- package/src/components/chat/InlineCredentialSetup.tsx +32 -19
- package/src/components/chat/use-chat.ts +1 -0
- package/src/components/credentials/CreateCredentialModal.tsx +89 -2
- package/src/components/credentials/EditCredentialModal.tsx +82 -2
- package/src/components/flow-editor/FlowHeader.tsx +1 -22
- package/src/components/flow-editor/FlowLayout.tsx +6 -27
- package/src/components/flow-editor/NodeSidebar.tsx +5 -12
- package/src/components/flow-editor/RunControls.tsx +12 -12
- package/src/components/flow-editor/node-config-panel/ConfigFieldWithTemplate.tsx +1 -2
- package/src/components/flow-editor/node-config-panel/panels/ConfigurationPanel.tsx +1 -12
- package/src/components/graph/LayoutSelector.tsx +2 -2
- package/src/components/shared/ProviderIcon.tsx +35 -1
- package/src/stores/uiStore.ts +23 -0
- package/src/svg-raw.d.ts +4 -0
|
@@ -18,7 +18,9 @@ const PROVIDERS_WITH_SVG_ICON = new Set(
|
|
|
18
18
|
* Providers whose dark-fill logo is invisible on dark backgrounds.
|
|
19
19
|
* For these we ship a `{id}_light` variant and swap via CSS.
|
|
20
20
|
*/
|
|
21
|
-
const PROVIDERS_WITH_LIGHT_VARIANT = new Set(['github', 'anthropic']);
|
|
21
|
+
const PROVIDERS_WITH_LIGHT_VARIANT = new Set(['github', 'anthropic', 'core']);
|
|
22
|
+
|
|
23
|
+
const PROVIDERS_WITH_TALL_ASPECT = new Set(['core']);
|
|
22
24
|
|
|
23
25
|
/**
|
|
24
26
|
* Resolve a Lucide icon component from its name string.
|
|
@@ -56,6 +58,8 @@ export const ProviderIcon = memo(function ProviderIcon({
|
|
|
56
58
|
svgIcon,
|
|
57
59
|
className,
|
|
58
60
|
}: ProviderIconProps) {
|
|
61
|
+
const isTallLogo = providerId ? PROVIDERS_WITH_TALL_ASPECT.has(providerId) : false;
|
|
62
|
+
|
|
59
63
|
// 1. Bundled inline SVG for known providers
|
|
60
64
|
if (providerId && PROVIDERS_WITH_SVG_ICON.has(providerId)) {
|
|
61
65
|
const svgMarkup = PROVIDER_SVG_ICONS[providerId];
|
|
@@ -63,6 +67,24 @@ export const ProviderIcon = memo(function ProviderIcon({
|
|
|
63
67
|
// Providers with a dark logo that needs a light variant for dark mode
|
|
64
68
|
if (PROVIDERS_WITH_LIGHT_VARIANT.has(providerId)) {
|
|
65
69
|
const lightSvgMarkup = PROVIDER_SVG_ICONS[`${providerId}_light`];
|
|
70
|
+
|
|
71
|
+
if (isTallLogo) {
|
|
72
|
+
return (
|
|
73
|
+
<span className={cn('inline-flex items-center justify-center shrink-0', className)}>
|
|
74
|
+
<span
|
|
75
|
+
className="inline-flex items-center justify-center h-full dark:hidden [&>svg]:w-auto [&>svg]:h-full"
|
|
76
|
+
style={{ aspectRatio: '109 / 209' }}
|
|
77
|
+
dangerouslySetInnerHTML={{ __html: svgMarkup }}
|
|
78
|
+
/>
|
|
79
|
+
<span
|
|
80
|
+
className="hidden items-center justify-center h-full dark:inline-flex [&>svg]:w-auto [&>svg]:h-full"
|
|
81
|
+
style={{ aspectRatio: '109 / 209' }}
|
|
82
|
+
dangerouslySetInnerHTML={{ __html: lightSvgMarkup }}
|
|
83
|
+
/>
|
|
84
|
+
</span>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
66
88
|
return (
|
|
67
89
|
<>
|
|
68
90
|
<span
|
|
@@ -83,6 +105,18 @@ export const ProviderIcon = memo(function ProviderIcon({
|
|
|
83
105
|
);
|
|
84
106
|
}
|
|
85
107
|
|
|
108
|
+
if (isTallLogo) {
|
|
109
|
+
return (
|
|
110
|
+
<span className={cn('inline-flex items-center justify-center shrink-0', className)}>
|
|
111
|
+
<span
|
|
112
|
+
className="inline-flex items-center justify-center h-full [&>svg]:w-auto [&>svg]:h-full"
|
|
113
|
+
style={{ aspectRatio: '109 / 209' }}
|
|
114
|
+
dangerouslySetInnerHTML={{ __html: svgMarkup }}
|
|
115
|
+
/>
|
|
116
|
+
</span>
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
86
120
|
return (
|
|
87
121
|
<span
|
|
88
122
|
className={cn(
|
package/src/stores/uiStore.ts
CHANGED
|
@@ -28,6 +28,7 @@ interface UIState {
|
|
|
28
28
|
|
|
29
29
|
// Node sidebar (for adding nodes)
|
|
30
30
|
nodeSidebarOpen: boolean;
|
|
31
|
+
nodeSidebarExpandedGroups: string[];
|
|
31
32
|
|
|
32
33
|
// Bottom toolbar
|
|
33
34
|
toolbarCollapsed: boolean;
|
|
@@ -53,6 +54,8 @@ interface UIActions {
|
|
|
53
54
|
// Node sidebar
|
|
54
55
|
toggleNodeSidebar: () => void;
|
|
55
56
|
setNodeSidebarOpen: (open: boolean) => void;
|
|
57
|
+
toggleNodeSidebarGroup: (groupId: string) => void;
|
|
58
|
+
setNodeSidebarExpandedGroups: (groups: string[]) => void;
|
|
56
59
|
|
|
57
60
|
// Bottom toolbar
|
|
58
61
|
toggleToolbarCollapsed: () => void;
|
|
@@ -71,6 +74,7 @@ const initialState: UIState = {
|
|
|
71
74
|
validationPanelOpen: false,
|
|
72
75
|
logsPanelOpen: false,
|
|
73
76
|
nodeSidebarOpen: true,
|
|
77
|
+
nodeSidebarExpandedGroups: ['core'],
|
|
74
78
|
toolbarCollapsed: false,
|
|
75
79
|
};
|
|
76
80
|
|
|
@@ -146,6 +150,23 @@ export const useUIStore: UseBoundStore<StoreApi<UIStore>> = create<UIStore>()(
|
|
|
146
150
|
state.nodeSidebarOpen = open;
|
|
147
151
|
}),
|
|
148
152
|
|
|
153
|
+
toggleNodeSidebarGroup: (groupId) =>
|
|
154
|
+
set((state) => {
|
|
155
|
+
if (state.nodeSidebarExpandedGroups.includes(groupId)) {
|
|
156
|
+
state.nodeSidebarExpandedGroups = state.nodeSidebarExpandedGroups.filter(
|
|
157
|
+
(existingGroupId) => existingGroupId !== groupId,
|
|
158
|
+
);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
state.nodeSidebarExpandedGroups = [...state.nodeSidebarExpandedGroups, groupId];
|
|
163
|
+
}),
|
|
164
|
+
|
|
165
|
+
setNodeSidebarExpandedGroups: (groups) =>
|
|
166
|
+
set((state) => {
|
|
167
|
+
state.nodeSidebarExpandedGroups = groups;
|
|
168
|
+
}),
|
|
169
|
+
|
|
149
170
|
// Bottom toolbar
|
|
150
171
|
toggleToolbarCollapsed: () =>
|
|
151
172
|
set((state) => {
|
|
@@ -162,6 +183,7 @@ export const useUIStore: UseBoundStore<StoreApi<UIStore>> = create<UIStore>()(
|
|
|
162
183
|
sidebarCollapsed: state.sidebarCollapsed,
|
|
163
184
|
activeSidebarTab: state.activeSidebarTab,
|
|
164
185
|
nodeSidebarOpen: state.nodeSidebarOpen,
|
|
186
|
+
nodeSidebarExpandedGroups: state.nodeSidebarExpandedGroups,
|
|
165
187
|
toolbarCollapsed: state.toolbarCollapsed,
|
|
166
188
|
}),
|
|
167
189
|
},
|
|
@@ -178,6 +200,7 @@ export const useModalData = () => useUIStore((s) => s.modalData);
|
|
|
178
200
|
export const useValidationPanelOpen = () => useUIStore((s) => s.validationPanelOpen);
|
|
179
201
|
export const useLogsPanelOpen = () => useUIStore((s) => s.logsPanelOpen);
|
|
180
202
|
export const useNodeSidebarOpen = () => useUIStore((s) => s.nodeSidebarOpen);
|
|
203
|
+
export const useNodeSidebarExpandedGroups = () => useUIStore((s) => s.nodeSidebarExpandedGroups);
|
|
181
204
|
|
|
182
205
|
// Combined selectors
|
|
183
206
|
export const useModals = () =>
|
package/src/svg-raw.d.ts
ADDED