@genfeedai/workflow-ui 0.2.3 → 0.2.5
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/canvas.d.ts +22 -22
- package/dist/canvas.mjs +16 -16
- package/dist/{chunk-XPZAHIWY.mjs → chunk-2FUPL67V.mjs} +1592 -1044
- package/dist/{chunk-HWVTD2LC.mjs → chunk-53XDE62A.mjs} +818 -623
- package/dist/{chunk-PCIWWD37.mjs → chunk-7LV4UAUS.mjs} +19 -19
- package/dist/{chunk-7SKSRSS7.mjs → chunk-B4EAAKYF.mjs} +16 -16
- package/dist/{chunk-ZJD5WMR3.mjs → chunk-C6MQBJFC.mjs} +45 -13
- package/dist/{chunk-7H3WJJYS.mjs → chunk-ESVULCFY.mjs} +12 -6
- package/dist/{chunk-GWBGK3KL.mjs → chunk-FWJIAW2E.mjs} +82 -47
- package/dist/{chunk-R727OFBR.mjs → chunk-GPYIIWD5.mjs} +404 -350
- package/dist/{chunk-OQREHJXK.mjs → chunk-IYFWAJBB.mjs} +208 -203
- package/dist/{chunk-N5NJZTK4.mjs → chunk-MGLAKMDP.mjs} +23 -21
- package/dist/{chunk-LT3ZJJL6.mjs → chunk-OJWVEEMM.mjs} +497 -399
- package/dist/{chunk-ZD2BADZO.mjs → chunk-ORVDYXDP.mjs} +221 -175
- package/dist/{chunk-CV4M7CNU.mjs → chunk-QQVHGJ2G.mjs} +149 -142
- package/dist/{chunk-6PSJTBNV.mjs → chunk-U4QPE4CY.mjs} +387 -347
- package/dist/{chunk-EFXQT23N.mjs → chunk-VVQ4CH77.mjs} +5 -5
- package/dist/{chunk-VRN3UWE5.mjs → chunk-XRC3O5GK.mjs} +73 -73
- package/dist/{chunk-FT33LFII.mjs → chunk-YUIK4AHM.mjs} +1 -1
- package/dist/{chunk-FMJPFB6W.mjs → chunk-ZSITTZ4S.mjs} +630 -569
- package/dist/hooks.d.ts +37 -37
- package/dist/hooks.mjs +10 -10
- package/dist/index.d.ts +26 -11
- package/dist/index.mjs +105 -19
- package/dist/lib.d.ts +203 -203
- package/dist/lib.mjs +228 -198
- package/dist/nodes.d.ts +2 -2
- package/dist/nodes.mjs +12 -12
- package/dist/panels.d.ts +2 -3
- package/dist/panels.mjs +3 -3
- package/dist/provider.d.ts +2 -2
- package/dist/provider.mjs +2 -2
- package/dist/stores.d.ts +5 -5
- package/dist/stores.mjs +5 -5
- package/dist/toolbar.d.ts +42 -24
- package/dist/toolbar.mjs +4 -4
- package/dist/ui.d.ts +2 -2
- package/dist/ui.mjs +2 -2
- package/dist/{useCommentNavigation-BakbiiIc.d.ts → useRequiredInputs-ByoIS-fT.d.ts} +160 -160
- package/dist/{promptLibraryStore-Dl3Q3cP6.d.ts → workflowStore-Bsz0nd5c.d.ts} +368 -368
- package/dist/workflowStore-N2F7WIG3.mjs +2 -0
- package/package.json +77 -75
- package/src/styles/workflow-ui.css +56 -19
- package/dist/workflowStore-UAAKOOIK.mjs +0 -2
- package/dist/{types-IEKYuYhu.d.ts → types-CRXJnajq.d.ts} +1 -1
|
@@ -78,8 +78,8 @@ function getImageDimensions(src) {
|
|
|
78
78
|
return new Promise((resolve) => {
|
|
79
79
|
const img = new window.Image();
|
|
80
80
|
img.crossOrigin = "anonymous";
|
|
81
|
-
img.onload = () => resolve({
|
|
82
|
-
img.onerror = () => resolve({
|
|
81
|
+
img.onload = () => resolve({ height: img.height, width: img.width });
|
|
82
|
+
img.onerror = () => resolve({ height: 0, width: 0 });
|
|
83
83
|
img.src = src;
|
|
84
84
|
});
|
|
85
85
|
}
|
|
@@ -88,10 +88,10 @@ function getVideoMetadata(src) {
|
|
|
88
88
|
const video = document.createElement("video");
|
|
89
89
|
video.crossOrigin = "anonymous";
|
|
90
90
|
video.onloadedmetadata = () => resolve({
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
dimensions: { height: video.videoHeight, width: video.videoWidth },
|
|
92
|
+
duration: video.duration
|
|
93
93
|
});
|
|
94
|
-
video.onerror = () => resolve({
|
|
94
|
+
video.onerror = () => resolve({ dimensions: { height: 0, width: 0 }, duration: 0 });
|
|
95
95
|
video.src = src;
|
|
96
96
|
});
|
|
97
97
|
}
|
|
@@ -5,87 +5,22 @@ function configurePromptLibrary(api) {
|
|
|
5
5
|
_promptApi = api;
|
|
6
6
|
}
|
|
7
7
|
var usePromptLibraryStore = create((set, get) => ({
|
|
8
|
-
// Initial state
|
|
9
|
-
items: [],
|
|
10
|
-
featuredItems: [],
|
|
11
|
-
selectedItem: null,
|
|
12
|
-
isLoading: false,
|
|
13
|
-
error: null,
|
|
14
|
-
searchQuery: "",
|
|
15
8
|
categoryFilter: null,
|
|
16
|
-
isPickerOpen: false,
|
|
17
|
-
isCreateModalOpen: false,
|
|
18
|
-
editingItem: null,
|
|
19
|
-
// UI Actions
|
|
20
|
-
setSearchQuery: (query) => set({ searchQuery: query }),
|
|
21
|
-
setCategoryFilter: (category) => set({ categoryFilter: category }),
|
|
22
|
-
setSelectedItem: (item) => set({ selectedItem: item }),
|
|
23
|
-
openPicker: () => set({ isPickerOpen: true }),
|
|
24
|
-
closePicker: () => set({ isPickerOpen: false }),
|
|
25
|
-
openCreateModal: (editItem) => set({
|
|
26
|
-
isCreateModalOpen: true,
|
|
27
|
-
editingItem: editItem ?? null
|
|
28
|
-
}),
|
|
29
9
|
closeCreateModal: () => set({
|
|
30
|
-
|
|
31
|
-
|
|
10
|
+
editingItem: null,
|
|
11
|
+
isCreateModalOpen: false
|
|
32
12
|
}),
|
|
33
|
-
|
|
34
|
-
loadItems: async (query, signal) => {
|
|
35
|
-
if (!_promptApi) return;
|
|
36
|
-
set({ isLoading: true, error: null });
|
|
37
|
-
try {
|
|
38
|
-
const { searchQuery, categoryFilter } = get();
|
|
39
|
-
const finalQuery = {
|
|
40
|
-
...query,
|
|
41
|
-
search: query?.search ?? (searchQuery || void 0),
|
|
42
|
-
category: query?.category ?? categoryFilter ?? void 0
|
|
43
|
-
};
|
|
44
|
-
const items = await _promptApi.getAll(finalQuery, signal);
|
|
45
|
-
set({ items, isLoading: false });
|
|
46
|
-
} catch (error) {
|
|
47
|
-
if (error.name !== "AbortError") {
|
|
48
|
-
set({ error: error.message, isLoading: false });
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
loadFeatured: async (signal) => {
|
|
53
|
-
if (!_promptApi) return;
|
|
54
|
-
try {
|
|
55
|
-
const featuredItems = await _promptApi.getFeatured(10, signal);
|
|
56
|
-
set({ featuredItems });
|
|
57
|
-
} catch (error) {
|
|
58
|
-
if (error.name !== "AbortError") ;
|
|
59
|
-
}
|
|
60
|
-
},
|
|
13
|
+
closePicker: () => set({ isPickerOpen: false }),
|
|
61
14
|
createItem: async (data, signal) => {
|
|
62
15
|
if (!_promptApi) throw new Error("Prompt library not configured");
|
|
63
|
-
set({
|
|
16
|
+
set({ error: null, isLoading: true });
|
|
64
17
|
try {
|
|
65
18
|
const item = await _promptApi.create(data, signal);
|
|
66
19
|
set((state) => ({
|
|
67
|
-
|
|
68
|
-
isLoading: false,
|
|
20
|
+
editingItem: null,
|
|
69
21
|
isCreateModalOpen: false,
|
|
70
|
-
editingItem: null
|
|
71
|
-
}));
|
|
72
|
-
return item;
|
|
73
|
-
} catch (error) {
|
|
74
|
-
set({ error: error.message, isLoading: false });
|
|
75
|
-
throw error;
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
updateItem: async (id, data, signal) => {
|
|
79
|
-
if (!_promptApi) throw new Error("Prompt library not configured");
|
|
80
|
-
set({ isLoading: true, error: null });
|
|
81
|
-
try {
|
|
82
|
-
const item = await _promptApi.update(id, data, signal);
|
|
83
|
-
set((state) => ({
|
|
84
|
-
items: state.items.map((i) => i._id === id ? item : i),
|
|
85
|
-
selectedItem: state.selectedItem?._id === id ? item : state.selectedItem,
|
|
86
22
|
isLoading: false,
|
|
87
|
-
|
|
88
|
-
editingItem: null
|
|
23
|
+
items: [item, ...state.items]
|
|
89
24
|
}));
|
|
90
25
|
return item;
|
|
91
26
|
} catch (error) {
|
|
@@ -119,19 +54,84 @@ var usePromptLibraryStore = create((set, get) => ({
|
|
|
119
54
|
throw error;
|
|
120
55
|
}
|
|
121
56
|
},
|
|
57
|
+
editingItem: null,
|
|
58
|
+
error: null,
|
|
59
|
+
featuredItems: [],
|
|
60
|
+
isCreateModalOpen: false,
|
|
61
|
+
isLoading: false,
|
|
62
|
+
isPickerOpen: false,
|
|
63
|
+
// Initial state
|
|
64
|
+
items: [],
|
|
65
|
+
loadFeatured: async (signal) => {
|
|
66
|
+
if (!_promptApi) return;
|
|
67
|
+
try {
|
|
68
|
+
const featuredItems = await _promptApi.getFeatured(10, signal);
|
|
69
|
+
set({ featuredItems });
|
|
70
|
+
} catch (error) {
|
|
71
|
+
if (error.name !== "AbortError") ;
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
// API Actions — all no-op if _promptApi is not configured
|
|
75
|
+
loadItems: async (query, signal) => {
|
|
76
|
+
if (!_promptApi) return;
|
|
77
|
+
set({ error: null, isLoading: true });
|
|
78
|
+
try {
|
|
79
|
+
const { searchQuery, categoryFilter } = get();
|
|
80
|
+
const finalQuery = {
|
|
81
|
+
...query,
|
|
82
|
+
category: query?.category ?? categoryFilter ?? void 0,
|
|
83
|
+
search: query?.search ?? (searchQuery || void 0)
|
|
84
|
+
};
|
|
85
|
+
const items = await _promptApi.getAll(finalQuery, signal);
|
|
86
|
+
set({ isLoading: false, items });
|
|
87
|
+
} catch (error) {
|
|
88
|
+
if (error.name !== "AbortError") {
|
|
89
|
+
set({ error: error.message, isLoading: false });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
openCreateModal: (editItem) => set({
|
|
94
|
+
editingItem: editItem ?? null,
|
|
95
|
+
isCreateModalOpen: true
|
|
96
|
+
}),
|
|
97
|
+
openPicker: () => set({ isPickerOpen: true }),
|
|
122
98
|
recordItemUsage: async (id, signal) => {
|
|
123
99
|
if (!_promptApi) throw new Error("Prompt library not configured");
|
|
124
100
|
try {
|
|
125
101
|
const item = await _promptApi.use(id, signal);
|
|
126
102
|
set((state) => ({
|
|
127
|
-
|
|
128
|
-
|
|
103
|
+
isPickerOpen: false,
|
|
104
|
+
items: state.items.map((i) => i._id === id ? item : i)
|
|
129
105
|
}));
|
|
130
106
|
return item;
|
|
131
107
|
} catch (error) {
|
|
132
108
|
set({ error: error.message });
|
|
133
109
|
throw error;
|
|
134
110
|
}
|
|
111
|
+
},
|
|
112
|
+
searchQuery: "",
|
|
113
|
+
selectedItem: null,
|
|
114
|
+
setCategoryFilter: (category) => set({ categoryFilter: category }),
|
|
115
|
+
// UI Actions
|
|
116
|
+
setSearchQuery: (query) => set({ searchQuery: query }),
|
|
117
|
+
setSelectedItem: (item) => set({ selectedItem: item }),
|
|
118
|
+
updateItem: async (id, data, signal) => {
|
|
119
|
+
if (!_promptApi) throw new Error("Prompt library not configured");
|
|
120
|
+
set({ error: null, isLoading: true });
|
|
121
|
+
try {
|
|
122
|
+
const item = await _promptApi.update(id, data, signal);
|
|
123
|
+
set((state) => ({
|
|
124
|
+
editingItem: null,
|
|
125
|
+
isCreateModalOpen: false,
|
|
126
|
+
isLoading: false,
|
|
127
|
+
items: state.items.map((i) => i._id === id ? item : i),
|
|
128
|
+
selectedItem: state.selectedItem?._id === id ? item : state.selectedItem
|
|
129
|
+
}));
|
|
130
|
+
return item;
|
|
131
|
+
} catch (error) {
|
|
132
|
+
set({ error: error.message, isLoading: false });
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
135
|
}
|
|
136
136
|
}));
|
|
137
137
|
|