@mvriu5/payload-ai 0.5.10 → 1.1.1

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.
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import styles from "./ActionToast.module.css";
2
3
  import { redactSensitiveData } from "../ai/sensitiveData.js";
3
4
  import { formatAdminURL } from "payload/shared";
@@ -60,105 +61,203 @@ export const ActionToast = ({ apiRoute, appliedProposalIndexes, description, err
60
61
  setLoadingDiffIndex(null);
61
62
  }
62
63
  };
63
- return /*#__PURE__*/ React.createElement("div", {
64
- className: styles.list
65
- }, error && /*#__PURE__*/ React.createElement("div", {
66
- className: `${styles.item} ${styles.errorItem}`
67
- }, /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("div", {
68
- className: styles.label
69
- }, "AI request failed"), /*#__PURE__*/ React.createElement("div", {
70
- className: styles.description
71
- }, error)), onDismissError && /*#__PURE__*/ React.createElement("button", {
72
- className: styles.button,
73
- onClick: onDismissError,
74
- type: "button"
75
- }, "Dismiss")), !error && proposals.length === 0 && description && /*#__PURE__*/ React.createElement("div", {
76
- className: styles.item
77
- }, /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("div", {
78
- className: styles.label
79
- }, "AI response"), /*#__PURE__*/ React.createElement("div", {
80
- className: styles.description
81
- }, descriptionPreview), isDescriptionTruncated && /*#__PURE__*/ React.createElement("details", {
82
- className: styles.details
83
- }, /*#__PURE__*/ React.createElement("summary", {
84
- className: styles.summary
85
- }, "Full response"), /*#__PURE__*/ React.createElement("pre", {
86
- className: styles.proposalDetails
87
- }, description)))), proposals.map((proposal, index)=>{
88
- const isApplied = appliedProposalIndexes.includes(index);
89
- const viewURL = getViewURL?.(proposal);
90
- return /*#__PURE__*/ React.createElement("div", {
91
- className: styles.item,
92
- key: `${proposal.action}-${index}`
93
- }, /*#__PURE__*/ React.createElement("div", {
94
- className: styles.content
95
- }, /*#__PURE__*/ React.createElement("div", {
96
- className: styles.label
97
- }, proposal.label), /*#__PURE__*/ React.createElement("div", {
98
- className: styles.meta
99
- }, proposal.action, " in ", proposal.collection || proposal.slug, proposal.id ? ` #${proposal.id}` : ""), description && /*#__PURE__*/ React.createElement("div", {
100
- className: styles.description
101
- }, descriptionPreview), description && isDescriptionTruncated && /*#__PURE__*/ React.createElement("details", {
102
- className: styles.details
103
- }, /*#__PURE__*/ React.createElement("summary", {
104
- className: styles.summary
105
- }, "Full response"), /*#__PURE__*/ React.createElement("pre", {
106
- className: styles.proposalDetails
107
- }, description)), /*#__PURE__*/ React.createElement("details", {
108
- className: styles.details
109
- }, /*#__PURE__*/ React.createElement("summary", {
110
- className: styles.summary
111
- }, "Details"), /*#__PURE__*/ React.createElement("pre", {
112
- className: styles.proposalDetails
113
- }, JSON.stringify(getSafeProposalDetails(proposal), null, 2)))), /*#__PURE__*/ React.createElement("div", {
114
- className: styles.footer
115
- }, /*#__PURE__*/ React.createElement("div", {
116
- className: styles.viewAction
117
- }, /*#__PURE__*/ React.createElement("button", {
118
- className: styles.secondaryButton,
119
- disabled: loadingDiffIndex === index,
120
- onClick: ()=>void openDiff(proposal, index),
121
- type: "button"
122
- }, /*#__PURE__*/ React.createElement(FileDiff, {
123
- height: 16,
124
- width: 16
125
- }), loadingDiffIndex === index ? "Loading" : "Review"), viewURL && /*#__PURE__*/ React.createElement("a", {
126
- className: styles.ghostButton,
127
- href: viewURL,
128
- rel: "noreferrer noopener",
129
- target: "_blank"
130
- }, "Go to source")), /*#__PURE__*/ React.createElement("div", {
131
- className: styles.actions
132
- }, onDismiss && /*#__PURE__*/ React.createElement("button", {
133
- className: styles.secondaryButton,
134
- onClick: onDismiss,
135
- type: "button"
136
- }, /*#__PURE__*/ React.createElement(Reject, {
137
- height: 16,
138
- width: 16
139
- })), /*#__PURE__*/ React.createElement("button", {
140
- className: styles.button,
141
- disabled: isApplying || isApplied,
142
- onClick: ()=>onApply(proposal, index),
143
- type: "button"
144
- }, /*#__PURE__*/ React.createElement(Apply, {
145
- height: 16,
146
- width: 16
147
- })))));
148
- }), diffError && /*#__PURE__*/ React.createElement("div", {
149
- className: `${styles.item} ${styles.errorItem}`
150
- }, /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("div", {
151
- className: styles.label
152
- }, "Diff review failed"), /*#__PURE__*/ React.createElement("div", {
153
- className: styles.description
154
- }, diffError)), /*#__PURE__*/ React.createElement("button", {
155
- className: styles.button,
156
- onClick: ()=>setDiffError(""),
157
- type: "button"
158
- }, "Dismiss")), activeDiff && /*#__PURE__*/ React.createElement(DiffDialog, {
159
- diff: activeDiff.diff,
160
- onClose: ()=>setActiveDiff(null),
161
- proposal: activeDiff.proposal,
162
- tokenUsage: tokenUsage || undefined
163
- }));
64
+ return /*#__PURE__*/ _jsxs("div", {
65
+ className: styles.list,
66
+ children: [
67
+ error && /*#__PURE__*/ _jsxs("div", {
68
+ className: `${styles.item} ${styles.errorItem}`,
69
+ children: [
70
+ /*#__PURE__*/ _jsxs("div", {
71
+ children: [
72
+ /*#__PURE__*/ _jsx("div", {
73
+ className: styles.label,
74
+ children: "AI request failed"
75
+ }),
76
+ /*#__PURE__*/ _jsx("div", {
77
+ className: styles.description,
78
+ children: error
79
+ })
80
+ ]
81
+ }),
82
+ onDismissError && /*#__PURE__*/ _jsx("button", {
83
+ className: styles.button,
84
+ onClick: onDismissError,
85
+ type: "button",
86
+ children: "Dismiss"
87
+ })
88
+ ]
89
+ }),
90
+ !error && proposals.length === 0 && description && /*#__PURE__*/ _jsx("div", {
91
+ className: styles.item,
92
+ children: /*#__PURE__*/ _jsxs("div", {
93
+ children: [
94
+ /*#__PURE__*/ _jsx("div", {
95
+ className: styles.label,
96
+ children: "AI response"
97
+ }),
98
+ /*#__PURE__*/ _jsx("div", {
99
+ className: styles.description,
100
+ children: descriptionPreview
101
+ }),
102
+ isDescriptionTruncated && /*#__PURE__*/ _jsxs("details", {
103
+ className: styles.details,
104
+ children: [
105
+ /*#__PURE__*/ _jsx("summary", {
106
+ className: styles.summary,
107
+ children: "Full response"
108
+ }),
109
+ /*#__PURE__*/ _jsx("pre", {
110
+ className: styles.proposalDetails,
111
+ children: description
112
+ })
113
+ ]
114
+ })
115
+ ]
116
+ })
117
+ }),
118
+ proposals.map((proposal, index)=>{
119
+ const isApplied = appliedProposalIndexes.includes(index);
120
+ const viewURL = getViewURL?.(proposal);
121
+ return /*#__PURE__*/ _jsxs("div", {
122
+ className: styles.item,
123
+ children: [
124
+ /*#__PURE__*/ _jsxs("div", {
125
+ className: styles.content,
126
+ children: [
127
+ /*#__PURE__*/ _jsx("div", {
128
+ className: styles.label,
129
+ children: proposal.label
130
+ }),
131
+ /*#__PURE__*/ _jsxs("div", {
132
+ className: styles.meta,
133
+ children: [
134
+ proposal.action,
135
+ " in ",
136
+ proposal.collection || proposal.slug,
137
+ proposal.id ? ` #${proposal.id}` : ""
138
+ ]
139
+ }),
140
+ description && /*#__PURE__*/ _jsx("div", {
141
+ className: styles.description,
142
+ children: descriptionPreview
143
+ }),
144
+ description && isDescriptionTruncated && /*#__PURE__*/ _jsxs("details", {
145
+ className: styles.details,
146
+ children: [
147
+ /*#__PURE__*/ _jsx("summary", {
148
+ className: styles.summary,
149
+ children: "Full response"
150
+ }),
151
+ /*#__PURE__*/ _jsx("pre", {
152
+ className: styles.proposalDetails,
153
+ children: description
154
+ })
155
+ ]
156
+ }),
157
+ /*#__PURE__*/ _jsxs("details", {
158
+ className: styles.details,
159
+ children: [
160
+ /*#__PURE__*/ _jsx("summary", {
161
+ className: styles.summary,
162
+ children: "Details"
163
+ }),
164
+ /*#__PURE__*/ _jsx("pre", {
165
+ className: styles.proposalDetails,
166
+ children: JSON.stringify(getSafeProposalDetails(proposal), null, 2)
167
+ })
168
+ ]
169
+ })
170
+ ]
171
+ }),
172
+ /*#__PURE__*/ _jsxs("div", {
173
+ className: styles.footer,
174
+ children: [
175
+ /*#__PURE__*/ _jsxs("div", {
176
+ className: styles.viewAction,
177
+ children: [
178
+ /*#__PURE__*/ _jsxs("button", {
179
+ "aria-label": `Review proposal: ${proposal.label}`,
180
+ className: styles.secondaryButton,
181
+ disabled: loadingDiffIndex === index,
182
+ onClick: ()=>void openDiff(proposal, index),
183
+ type: "button",
184
+ children: [
185
+ /*#__PURE__*/ _jsx(FileDiff, {
186
+ height: 16,
187
+ width: 16
188
+ }),
189
+ loadingDiffIndex === index ? "Loading" : "Review"
190
+ ]
191
+ }),
192
+ viewURL && /*#__PURE__*/ _jsx("a", {
193
+ className: styles.ghostButton,
194
+ href: viewURL,
195
+ rel: "noreferrer noopener",
196
+ target: "_blank",
197
+ children: "Go to source"
198
+ })
199
+ ]
200
+ }),
201
+ /*#__PURE__*/ _jsxs("div", {
202
+ className: styles.actions,
203
+ children: [
204
+ onDismiss && /*#__PURE__*/ _jsx("button", {
205
+ "aria-label": "Dismiss proposals",
206
+ className: styles.secondaryButton,
207
+ onClick: onDismiss,
208
+ type: "button",
209
+ children: /*#__PURE__*/ _jsx(Reject, {
210
+ height: 16,
211
+ width: 16
212
+ })
213
+ }),
214
+ /*#__PURE__*/ _jsx("button", {
215
+ "aria-label": `Apply proposal: ${proposal.label}`,
216
+ className: styles.button,
217
+ disabled: isApplying || isApplied,
218
+ onClick: ()=>onApply(proposal, index),
219
+ type: "button",
220
+ children: /*#__PURE__*/ _jsx(Apply, {
221
+ height: 16,
222
+ width: 16
223
+ })
224
+ })
225
+ ]
226
+ })
227
+ ]
228
+ })
229
+ ]
230
+ }, `${proposal.action}-${index}`);
231
+ }),
232
+ diffError && /*#__PURE__*/ _jsxs("div", {
233
+ className: `${styles.item} ${styles.errorItem}`,
234
+ children: [
235
+ /*#__PURE__*/ _jsxs("div", {
236
+ children: [
237
+ /*#__PURE__*/ _jsx("div", {
238
+ className: styles.label,
239
+ children: "Diff review failed"
240
+ }),
241
+ /*#__PURE__*/ _jsx("div", {
242
+ className: styles.description,
243
+ children: diffError
244
+ })
245
+ ]
246
+ }),
247
+ /*#__PURE__*/ _jsx("button", {
248
+ className: styles.button,
249
+ onClick: ()=>setDiffError(""),
250
+ type: "button",
251
+ children: "Dismiss"
252
+ })
253
+ ]
254
+ }),
255
+ activeDiff && /*#__PURE__*/ _jsx(DiffDialog, {
256
+ diff: activeDiff.diff,
257
+ onClose: ()=>setActiveDiff(null),
258
+ proposal: activeDiff.proposal,
259
+ tokenUsage: tokenUsage || undefined
260
+ })
261
+ ]
262
+ });
164
263
  };
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import { useState } from "react";
2
3
  import { ExternalLinkIcon } from "@payloadcms/ui";
3
4
  import { DiffDialog } from "./DiffDialog.js";
@@ -11,57 +12,93 @@ const getChangeProposal = (change)=>({
11
12
  });
12
13
  export const RecentChangesList = ({ allChangesURL, changes })=>{
13
14
  const [activeDiff, setActiveDiff] = useState(null);
14
- return /*#__PURE__*/ React.createElement("aside", {
15
- className: styles.recentChanges
16
- }, /*#__PURE__*/ React.createElement("div", {
17
- className: styles.header
18
- }, /*#__PURE__*/ React.createElement("h3", {
19
- className: styles.title
20
- }, "Recent changes"), allChangesURL && /*#__PURE__*/ React.createElement("a", {
21
- className: styles.headerGhostButton,
22
- href: allChangesURL
23
- }, "View all")), /*#__PURE__*/ React.createElement("div", {
24
- className: styles.list
25
- }, changes.length === 0 ? /*#__PURE__*/ React.createElement("div", {
26
- className: styles.empty
27
- }, "No changes yet.") : changes.map((change, index)=>/*#__PURE__*/ React.createElement("div", {
28
- className: styles.item,
29
- key: `${change.title}-${index}`
30
- }, /*#__PURE__*/ React.createElement("div", {
31
- className: styles.titleRow
32
- }, /*#__PURE__*/ React.createElement("div", {
33
- className: styles.itemTitle
34
- }, change.title), change.url && /*#__PURE__*/ React.createElement("a", {
35
- className: styles.ghostButton,
36
- href: change.url,
37
- rel: "noreferrer noopener",
38
- target: "_blank"
39
- }, /*#__PURE__*/ React.createElement(ExternalLinkIcon, null))), /*#__PURE__*/ React.createElement("div", {
40
- className: styles.stats
41
- }, /*#__PURE__*/ React.createElement("code", {
42
- className: styles.additions
43
- }, "+", change.additions), /*#__PURE__*/ React.createElement("code", {
44
- className: styles.removals
45
- }, "-", change.removals)), /*#__PURE__*/ React.createElement("button", {
46
- className: styles.button,
47
- onClick: ()=>{
48
- if (change.before === undefined || change.after === undefined) {
49
- return;
50
- }
51
- setActiveDiff({
52
- change,
53
- diff: {
54
- after: change.after,
55
- before: change.before
56
- },
57
- proposal: getChangeProposal(change)
58
- });
59
- },
60
- type: "button"
61
- }, "Review")))), activeDiff && activeDiff.change && /*#__PURE__*/ React.createElement(DiffDialog, {
62
- change: activeDiff.change,
63
- diff: activeDiff.diff,
64
- onClose: ()=>setActiveDiff(null),
65
- proposal: activeDiff.proposal
66
- }));
15
+ return /*#__PURE__*/ _jsxs("aside", {
16
+ className: styles.recentChanges,
17
+ children: [
18
+ /*#__PURE__*/ _jsxs("div", {
19
+ className: styles.header,
20
+ children: [
21
+ /*#__PURE__*/ _jsx("h3", {
22
+ className: styles.title,
23
+ children: "Recent changes"
24
+ }),
25
+ allChangesURL && /*#__PURE__*/ _jsx("a", {
26
+ className: styles.headerGhostButton,
27
+ href: allChangesURL,
28
+ children: "View all"
29
+ })
30
+ ]
31
+ }),
32
+ /*#__PURE__*/ _jsx("div", {
33
+ className: styles.list,
34
+ children: changes.length === 0 ? /*#__PURE__*/ _jsx("div", {
35
+ className: styles.empty,
36
+ children: "No changes yet."
37
+ }) : changes.slice(0, 10).map((change, index)=>/*#__PURE__*/ _jsxs("div", {
38
+ className: styles.item,
39
+ children: [
40
+ /*#__PURE__*/ _jsxs("div", {
41
+ className: styles.titleRow,
42
+ children: [
43
+ /*#__PURE__*/ _jsx("div", {
44
+ className: styles.itemTitle,
45
+ children: change.title
46
+ }),
47
+ change.url && /*#__PURE__*/ _jsx("a", {
48
+ className: styles.ghostButton,
49
+ href: change.url,
50
+ rel: "noreferrer noopener",
51
+ target: "_blank",
52
+ children: /*#__PURE__*/ _jsx(ExternalLinkIcon, {})
53
+ })
54
+ ]
55
+ }),
56
+ /*#__PURE__*/ _jsxs("div", {
57
+ className: styles.stats,
58
+ children: [
59
+ /*#__PURE__*/ _jsxs("code", {
60
+ className: styles.additions,
61
+ children: [
62
+ "+",
63
+ change.additions
64
+ ]
65
+ }),
66
+ /*#__PURE__*/ _jsxs("code", {
67
+ className: styles.removals,
68
+ children: [
69
+ "-",
70
+ change.removals
71
+ ]
72
+ })
73
+ ]
74
+ }),
75
+ /*#__PURE__*/ _jsx("button", {
76
+ className: styles.button,
77
+ onClick: ()=>{
78
+ if (change.before === undefined || change.after === undefined) {
79
+ return;
80
+ }
81
+ setActiveDiff({
82
+ change,
83
+ diff: {
84
+ after: change.after,
85
+ before: change.before
86
+ },
87
+ proposal: getChangeProposal(change)
88
+ });
89
+ },
90
+ type: "button",
91
+ children: "Review"
92
+ })
93
+ ]
94
+ }, `${change.title}-${index}`))
95
+ }),
96
+ activeDiff && activeDiff.change && /*#__PURE__*/ _jsx(DiffDialog, {
97
+ change: activeDiff.change,
98
+ diff: activeDiff.diff,
99
+ onClose: ()=>setActiveDiff(null),
100
+ proposal: activeDiff.proposal
101
+ })
102
+ ]
103
+ });
67
104
  };