@actuate-media/cms-admin 0.77.0 → 0.79.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/CHANGELOG.md +35 -0
- package/dist/__tests__/components/attribution-rows.test.d.ts +2 -0
- package/dist/__tests__/components/attribution-rows.test.d.ts.map +1 -0
- package/dist/__tests__/components/attribution-rows.test.js +82 -0
- package/dist/__tests__/components/attribution-rows.test.js.map +1 -0
- package/dist/__tests__/views/form-editor.render.test.js +1 -0
- package/dist/__tests__/views/form-editor.render.test.js.map +1 -1
- package/dist/__tests__/views/form-entries.render.test.js +20 -0
- package/dist/__tests__/views/form-entries.render.test.js.map +1 -1
- package/dist/__tests__/views/form-submissions.render.test.js +12 -0
- package/dist/__tests__/views/form-submissions.render.test.js.map +1 -1
- package/dist/__tests__/views/forms-list.render.test.js +2 -0
- package/dist/__tests__/views/forms-list.render.test.js.map +1 -1
- package/dist/__tests__/views/redirects-pane.render.test.js +2 -0
- package/dist/__tests__/views/redirects-pane.render.test.js.map +1 -1
- package/dist/components/forms/ExportMenu.d.ts +8 -0
- package/dist/components/forms/ExportMenu.d.ts.map +1 -0
- package/dist/components/forms/ExportMenu.js +32 -0
- package/dist/components/forms/ExportMenu.js.map +1 -0
- package/dist/components/forms/FormEntryDetailPane.d.ts +13 -0
- package/dist/components/forms/FormEntryDetailPane.d.ts.map +1 -1
- package/dist/components/forms/FormEntryDetailPane.js +74 -8
- package/dist/components/forms/FormEntryDetailPane.js.map +1 -1
- package/dist/components/forms/FormSchemaPane.js +1 -1
- package/dist/components/forms/FormSchemaPane.js.map +1 -1
- package/dist/components/forms/NotificationsPanel.d.ts +4 -1
- package/dist/components/forms/NotificationsPanel.d.ts.map +1 -1
- package/dist/components/forms/NotificationsPanel.js +66 -12
- package/dist/components/forms/NotificationsPanel.js.map +1 -1
- package/dist/components/forms/ShortcodeGlossary.d.ts +5 -0
- package/dist/components/forms/ShortcodeGlossary.d.ts.map +1 -0
- package/dist/components/forms/ShortcodeGlossary.js +62 -0
- package/dist/components/forms/ShortcodeGlossary.js.map +1 -0
- package/dist/components/forms/WebhooksPanel.d.ts.map +1 -1
- package/dist/components/forms/WebhooksPanel.js +1 -1
- package/dist/components/forms/WebhooksPanel.js.map +1 -1
- package/dist/components/ui/ReauthDialog.d.ts +17 -0
- package/dist/components/ui/ReauthDialog.d.ts.map +1 -0
- package/dist/components/ui/ReauthDialog.js +34 -0
- package/dist/components/ui/ReauthDialog.js.map +1 -0
- package/dist/components/ui/index.d.ts +2 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +1 -0
- package/dist/components/ui/index.js.map +1 -1
- package/dist/lib/forms-service.d.ts +23 -0
- package/dist/lib/forms-service.d.ts.map +1 -1
- package/dist/lib/forms-service.js +42 -1
- package/dist/lib/forms-service.js.map +1 -1
- package/dist/lib/seo-service.d.ts +4 -0
- package/dist/lib/seo-service.d.ts.map +1 -1
- package/dist/lib/seo-service.js +1 -0
- package/dist/lib/seo-service.js.map +1 -1
- package/dist/views/ApiKeys.d.ts.map +1 -1
- package/dist/views/ApiKeys.js +22 -23
- package/dist/views/ApiKeys.js.map +1 -1
- package/dist/views/FormEditor.js +1 -1
- package/dist/views/FormEditor.js.map +1 -1
- package/dist/views/FormEntries.d.ts.map +1 -1
- package/dist/views/FormEntries.js +8 -36
- package/dist/views/FormEntries.js.map +1 -1
- package/dist/views/FormSubmissions.d.ts.map +1 -1
- package/dist/views/FormSubmissions.js +7 -36
- package/dist/views/FormSubmissions.js.map +1 -1
- package/dist/views/seo/RedirectsTab.d.ts.map +1 -1
- package/dist/views/seo/RedirectsTab.js +3 -2
- package/dist/views/seo/RedirectsTab.js.map +1 -1
- package/dist/views/users/UserDetailDrawer.d.ts.map +1 -1
- package/dist/views/users/UserDetailDrawer.js +2 -30
- package/dist/views/users/UserDetailDrawer.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/components/attribution-rows.test.ts +93 -0
- package/src/__tests__/views/form-editor.render.test.tsx +1 -0
- package/src/__tests__/views/form-entries.render.test.tsx +29 -0
- package/src/__tests__/views/form-submissions.render.test.tsx +17 -0
- package/src/__tests__/views/forms-list.render.test.tsx +2 -0
- package/src/__tests__/views/redirects-pane.render.test.tsx +2 -0
- package/src/components/forms/ExportMenu.tsx +70 -0
- package/src/components/forms/FormEntryDetailPane.tsx +82 -8
- package/src/components/forms/FormSchemaPane.tsx +1 -1
- package/src/components/forms/NotificationsPanel.tsx +150 -20
- package/src/components/forms/ShortcodeGlossary.tsx +146 -0
- package/src/components/forms/WebhooksPanel.tsx +5 -1
- package/src/components/ui/ReauthDialog.tsx +93 -0
- package/src/components/ui/index.ts +2 -0
- package/src/lib/forms-service.ts +57 -1
- package/src/lib/seo-service.ts +5 -0
- package/src/views/ApiKeys.tsx +48 -41
- package/src/views/FormEditor.tsx +1 -1
- package/src/views/FormEntries.tsx +7 -46
- package/src/views/FormSubmissions.tsx +6 -46
- package/src/views/seo/RedirectsTab.tsx +3 -1
- package/src/views/users/UserDetailDrawer.tsx +1 -76
|
@@ -42,14 +42,80 @@ function displayValue(value) {
|
|
|
42
42
|
return JSON.stringify(value);
|
|
43
43
|
return String(value);
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
const CHANNEL_LABELS = {
|
|
46
|
+
paid: 'Paid',
|
|
47
|
+
search_organic: 'Organic search',
|
|
48
|
+
social: 'Social',
|
|
49
|
+
email: 'Email',
|
|
50
|
+
ai: 'AI',
|
|
51
|
+
referral: 'Referral',
|
|
52
|
+
direct: 'Direct',
|
|
53
|
+
};
|
|
54
|
+
const CLICK_ID_LABELS = {
|
|
55
|
+
gclid: 'GCLID (Google Ads)',
|
|
56
|
+
fbclid: 'FBCLID (Meta)',
|
|
57
|
+
msclkid: 'MSCLKID (Microsoft)',
|
|
58
|
+
ttclid: 'TTCLID (TikTok)',
|
|
59
|
+
li_fat_id: 'LinkedIn click ID',
|
|
60
|
+
dclid: 'DCLID (Display)',
|
|
61
|
+
twclid: 'TWCLID (X Ads)',
|
|
62
|
+
rdt_cid: 'Reddit click ID',
|
|
63
|
+
};
|
|
64
|
+
const DEVICE_LABELS = {
|
|
65
|
+
desktop: 'Desktop',
|
|
66
|
+
tablet: 'Tablet',
|
|
67
|
+
mobile: 'Mobile',
|
|
68
|
+
};
|
|
69
|
+
function attrString(blob, key) {
|
|
70
|
+
const v = blob[key];
|
|
71
|
+
return typeof v === 'string' ? v : '';
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Build the attribution rows for an entry. Prefers the full client-captured
|
|
75
|
+
* blob (channel, click IDs, first/last touch) and falls back to the
|
|
76
|
+
* denormalized UTM columns for entries captured before attribution shipped.
|
|
77
|
+
* Exported for tests.
|
|
78
|
+
*/
|
|
79
|
+
export function buildAttributionRows(entry) {
|
|
80
|
+
const blob = entry.attribution && typeof entry.attribution === 'object' && !Array.isArray(entry.attribution)
|
|
81
|
+
? entry.attribution
|
|
82
|
+
: {};
|
|
83
|
+
const channel = attrString(blob, 'channel');
|
|
84
|
+
const referrerName = attrString(blob, 'referrerName');
|
|
85
|
+
const channelLabel = channel
|
|
86
|
+
? `${CHANNEL_LABELS[channel] ?? channel}${referrerName ? ` · ${referrerName}` : ''}`
|
|
87
|
+
: '';
|
|
88
|
+
const rows = [
|
|
89
|
+
{ label: 'Channel', value: channelLabel },
|
|
90
|
+
{ label: 'Source', value: attrString(blob, 'source') || entry.utmSource },
|
|
91
|
+
{ label: 'Medium', value: attrString(blob, 'medium') || entry.utmMedium },
|
|
92
|
+
{ label: 'Campaign', value: attrString(blob, 'campaign') || entry.utmCampaign },
|
|
93
|
+
{ label: 'Term', value: attrString(blob, 'term') },
|
|
94
|
+
{ label: 'Content', value: attrString(blob, 'content') },
|
|
95
|
+
{ label: 'Landing page', value: attrString(blob, 'landingPage') },
|
|
50
96
|
{ label: 'Page', value: entry.pageUrl },
|
|
51
|
-
{ label: 'Referrer', value: entry.referrer },
|
|
52
|
-
|
|
97
|
+
{ label: 'Referrer', value: attrString(blob, 'referrer') || entry.referrer },
|
|
98
|
+
{
|
|
99
|
+
label: 'Device',
|
|
100
|
+
value: DEVICE_LABELS[attrString(blob, 'deviceType')] ?? '',
|
|
101
|
+
},
|
|
102
|
+
{ label: 'First touch', value: formatDateTimeOrEmpty(attrString(blob, 'firstTouchAt')) },
|
|
103
|
+
];
|
|
104
|
+
const clickIds = blob.clickIds;
|
|
105
|
+
if (clickIds && typeof clickIds === 'object' && !Array.isArray(clickIds)) {
|
|
106
|
+
for (const [key, label] of Object.entries(CLICK_ID_LABELS)) {
|
|
107
|
+
const value = clickIds[key];
|
|
108
|
+
if (typeof value === 'string' && value)
|
|
109
|
+
rows.push({ label, value });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return rows.filter((r) => r.value);
|
|
113
|
+
}
|
|
114
|
+
function formatDateTimeOrEmpty(iso) {
|
|
115
|
+
if (!iso)
|
|
116
|
+
return '';
|
|
117
|
+
const formatted = formatDateTime(iso);
|
|
118
|
+
return formatted === '—' ? '' : formatted;
|
|
53
119
|
}
|
|
54
120
|
export function FormEntryDetailPane({ entryId, onClose, onChanged, onDeleted, }) {
|
|
55
121
|
const [detail, setDetail] = useState(null);
|
|
@@ -122,7 +188,7 @@ export function FormEntryDetailPane({ entryId, onClose, onChanged, onDeleted, })
|
|
|
122
188
|
}, [entryId, notifyChanged, onDeleted]);
|
|
123
189
|
const entry = detail?.entry;
|
|
124
190
|
const senderName = entry?.senderName || 'Anonymous';
|
|
125
|
-
const attrRows = entry ?
|
|
191
|
+
const attrRows = entry ? buildAttributionRows(entry) : [];
|
|
126
192
|
return (_jsxs(_Fragment, { children: [_jsx(InspectorPaneHeader, { onClose: onClose, closeLabel: "Close entry details", children: _jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-[13.5px] font-semibold text-[var(--txt)]", children: entry ? `Entry${entry.entryNumber ? ` #${entry.entryNumber}` : ''}` : 'Entry' }), entry && (_jsx("div", { className: "mt-0.5 truncate text-[11.5px] text-[var(--muted)]", children: formatDateTime(entry.submittedAt) }))] }), entry && (_jsxs("div", { className: "flex shrink-0 gap-1", children: [_jsx("button", { type: "button", className: iconBtn, "aria-pressed": entry.starred, "aria-label": entry.starred ? 'Unstar entry' : 'Star entry', disabled: busy, onClick: () => void mutate({ starred: !entry.starred }), children: _jsx(Star, { size: 16, "aria-hidden": true, className: entry.starred ? 'fill-[var(--warn)] text-[var(--warn)]' : '' }) }), _jsx("button", { type: "button", className: iconBtn, "aria-pressed": entry.archived, "aria-label": entry.archived ? 'Unarchive entry' : 'Archive entry', disabled: busy, onClick: () => void mutate({ archived: !entry.archived }), children: entry.archived ? (_jsx(ArchiveRestore, { size: 16, "aria-hidden": true })) : (_jsx(Archive, { size: 16, "aria-hidden": true })) })] }))] }) }), _jsx(InspectorPaneBody, { children: loading ? (_jsxs("div", { className: "flex h-40 items-center justify-center", role: "status", "aria-live": "polite", children: [_jsx(Loader2, { className: "h-5 w-5 animate-spin text-[var(--muted)]", "aria-hidden": true }), _jsx("span", { className: "sr-only", children: "Loading entry\u2026" })] })) : error ? (_jsx("div", { className: "px-4 py-3.5", children: _jsx(FormsErrorState, { message: error }) })) : entry ? (_jsxs(_Fragment, { children: [_jsxs(InspectorPaneSection, { title: "Sender", children: [_jsx("div", { className: "text-[12.5px] font-medium text-[var(--txt)]", children: senderName }), entry.senderEmail && (_jsx("a", { href: `mailto:${entry.senderEmail}`, className: "block truncate text-[12px] text-[var(--acc)] hover:underline", children: entry.senderEmail })), entry.senderPhone && (_jsx("div", { className: "text-[12px] text-[var(--sub)]", children: entry.senderPhone }))] }), _jsx(FieldValues, { entry: entry, fields: detail.fields }), attrRows.length > 0 && (_jsx(InspectorPaneSection, { title: "Attribution", children: _jsx("dl", { children: attrRows.map((row) => (_jsxs("div", { className: "flex justify-between gap-4 py-1 text-[12px]", children: [_jsx("dt", { className: "shrink-0 text-[var(--muted)]", children: row.label }), _jsx("dd", { className: "min-w-0 truncate text-right text-[var(--sub)]", children: row.value })] }, row.label))) }) }))] })) : null }), entry && (_jsx(InspectorPaneFooter, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("button", { type: "button", className: "flex min-w-0 flex-1 items-center justify-center gap-1.5 rounded-[7px] border border-[var(--bdr)] px-3 py-2 text-[12.5px] font-medium text-[var(--txt)] transition-colors duration-[var(--motion-fast)] hover:bg-[var(--bg)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none disabled:opacity-60", disabled: busy, onClick: () => void mutate({ unread: !entry.unread }), children: [_jsx(Mail, { size: 14, "aria-hidden": true }), "Mark ", entry.unread ? 'read' : 'unread'] }), _jsxs("button", { type: "button", className: "flex shrink-0 items-center justify-center gap-1.5 rounded-[7px] border border-[var(--bdr)] px-3 py-2 text-[12.5px] font-medium text-[var(--err)] transition-colors duration-[var(--motion-fast)] hover:bg-[var(--err-l)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none disabled:opacity-60", disabled: busy, onClick: () => setConfirmDelete(true), children: [_jsx(Trash2, { size: 14, "aria-hidden": true }), "Delete"] })] }) })), _jsx(ConfirmDialog, { open: confirmDelete, onClose: () => setConfirmDelete(false), onConfirm: () => void handleDelete(), title: "Delete submission?", description: "This permanently removes the submission and any attached files. This cannot be undone.", confirmLabel: "Delete", destructive: true })] }));
|
|
127
193
|
}
|
|
128
194
|
/** Render the captured field values against the entry's schema. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormEntryDetailPane.js","sourceRoot":"","sources":["../../../src/components/forms/FormEntryDetailPane.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FormEntryDetailPane.js","sourceRoot":"","sources":["../../../src/components/forms/FormEntryDetailPane.tsx"],"names":[],"mappings":"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"}
|
|
@@ -86,7 +86,7 @@ export function FormSchemaPane({ form, onClose, onSaved, }) {
|
|
|
86
86
|
}
|
|
87
87
|
onClose();
|
|
88
88
|
}
|
|
89
|
-
return (_jsxs(_Fragment, { children: [_jsxs(InspectorPaneHeader, { onClose: requestClose, closeLabel: "Close schema panel", children: [_jsx("div", { className: "truncate text-[13.5px] font-semibold text-[var(--txt)]", children: form.name }), _jsxs("div", { className: "mt-0.5 truncate font-mono text-[11.5px] text-[var(--muted)]", children: ["/", form.slug] })] }), _jsxs(Tabs.Root, { value: tab, onValueChange: setTab, className: "flex min-h-0 flex-1 flex-col", children: [_jsx(Tabs.List, { className: "flex shrink-0 gap-0.5 overflow-x-auto border-b border-[var(--bdr)] px-2", "aria-label": "Form schema sections", children: TABS.map((t) => (_jsx(Tabs.Trigger, { value: t.id, className: "-mb-px border-b-2 border-transparent px-2.5 py-2 text-[12.5px] font-medium whitespace-nowrap text-[var(--sub)] transition-colors hover:text-[var(--txt)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none data-[state=active]:border-[var(--acc)] data-[state=active]:text-[var(--txt)]", children: t.label }, t.id))) }), _jsx(InspectorPaneBody, { children: _jsxs("div", { className: "px-4 py-3.5", children: [_jsx(Tabs.Content, { value: "fields", tabIndex: -1, children: loading ? (_jsx(FormsLoading, { label: "Loading schema\u2026" })) : error ? (_jsx(FormsErrorState, { message: error, onRetry: () => setTab('fields') })) : (_jsx(FieldsPanel, { fields: fields, onChange: handleFieldsChange, hasSubmissions: hasSubmissions })) }), _jsx(Tabs.Content, { value: "embed", tabIndex: -1, children: _jsx(EmbedPanel, { formId: formId, slug: form.slug, status: form.status }) }), _jsx(Tabs.Content, { value: "notifications", tabIndex: -1, children: _jsx(NotificationsPanel, { formId: formId, onChanged: onSaved }) }), _jsx(Tabs.Content, { value: "integrations", tabIndex: -1, children: _jsx(WebhooksPanel, { formId: formId, formSlug: form.slug }) })] }) }), tab === 'fields' && (_jsx(InspectorPaneFooter, { children: _jsx("button", { type: "button", className: `${btnPrimary} w-full`, onClick: () => void handleSave(), disabled: saving || loading, children: saving ? 'Saving…' : 'Save Schema' }) }))] }), _jsx(ConfirmDialog, { open: confirmDiscard, onClose: () => setConfirmDiscard(false), onConfirm: () => {
|
|
89
|
+
return (_jsxs(_Fragment, { children: [_jsxs(InspectorPaneHeader, { onClose: requestClose, closeLabel: "Close schema panel", children: [_jsx("div", { className: "truncate text-[13.5px] font-semibold text-[var(--txt)]", children: form.name }), _jsxs("div", { className: "mt-0.5 truncate font-mono text-[11.5px] text-[var(--muted)]", children: ["/", form.slug] })] }), _jsxs(Tabs.Root, { value: tab, onValueChange: setTab, className: "flex min-h-0 flex-1 flex-col", children: [_jsx(Tabs.List, { className: "flex shrink-0 gap-0.5 overflow-x-auto border-b border-[var(--bdr)] px-2", "aria-label": "Form schema sections", children: TABS.map((t) => (_jsx(Tabs.Trigger, { value: t.id, className: "-mb-px border-b-2 border-transparent px-2.5 py-2 text-[12.5px] font-medium whitespace-nowrap text-[var(--sub)] transition-colors hover:text-[var(--txt)] focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:outline-none data-[state=active]:border-[var(--acc)] data-[state=active]:text-[var(--txt)]", children: t.label }, t.id))) }), _jsx(InspectorPaneBody, { children: _jsxs("div", { className: "px-4 py-3.5", children: [_jsx(Tabs.Content, { value: "fields", tabIndex: -1, children: loading ? (_jsx(FormsLoading, { label: "Loading schema\u2026" })) : error ? (_jsx(FormsErrorState, { message: error, onRetry: () => setTab('fields') })) : (_jsx(FieldsPanel, { fields: fields, onChange: handleFieldsChange, hasSubmissions: hasSubmissions })) }), _jsx(Tabs.Content, { value: "embed", tabIndex: -1, children: _jsx(EmbedPanel, { formId: formId, slug: form.slug, status: form.status }) }), _jsx(Tabs.Content, { value: "notifications", tabIndex: -1, children: _jsx(NotificationsPanel, { formId: formId, fields: fields, onChanged: onSaved }) }), _jsx(Tabs.Content, { value: "integrations", tabIndex: -1, children: _jsx(WebhooksPanel, { formId: formId, formSlug: form.slug }) })] }) }), tab === 'fields' && (_jsx(InspectorPaneFooter, { children: _jsx("button", { type: "button", className: `${btnPrimary} w-full`, onClick: () => void handleSave(), disabled: saving || loading, children: saving ? 'Saving…' : 'Save Schema' }) }))] }), _jsx(ConfirmDialog, { open: confirmDiscard, onClose: () => setConfirmDiscard(false), onConfirm: () => {
|
|
90
90
|
setDirty(false);
|
|
91
91
|
setConfirmDiscard(false);
|
|
92
92
|
onClose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormSchemaPane.js","sourceRoot":"","sources":["../../../src/components/forms/FormSchemaPane.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FormSchemaPane.js","sourceRoot":"","sources":["../../../src/components/forms/FormSchemaPane.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { type FormField } from '../../lib/forms-service.js';
|
|
2
|
+
export declare function NotificationsPanel({ formId, fields: fieldsProp, onChanged, }: {
|
|
2
3
|
formId: string;
|
|
4
|
+
/** Optional schema fields for reply-to picker + shortcode glossary. */
|
|
5
|
+
fields?: FormField[];
|
|
3
6
|
/** Called after a successful save so the list can refresh the notify state. */
|
|
4
7
|
onChanged?: () => void;
|
|
5
8
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/forms/NotificationsPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NotificationsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/forms/NotificationsPanel.tsx"],"names":[],"mappings":"AAaA,OAAO,EAKL,KAAK,SAAS,EAEf,MAAM,4BAA4B,CAAA;AAWnC,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,MAAM,EAAE,UAAU,EAClB,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;IACpB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB,kDA0RA"}
|
|
@@ -4,28 +4,46 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
* Notifications tab of the Form Schema drawer. Persists per-form notification
|
|
5
5
|
* settings (recipients, reply-to, subject/message templates, field inclusion,
|
|
6
6
|
* autoresponder). Email delivery uses the configured email adapter when enabled.
|
|
7
|
+
*
|
|
8
|
+
* Leave subject/message blank to use the built-in template (all fields +
|
|
9
|
+
* attribution). Shortcodes are listed in ShortcodeGlossary for copy/paste.
|
|
7
10
|
*/
|
|
8
|
-
import { useEffect, useState } from 'react';
|
|
11
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
9
12
|
import { Toggle } from '../ui/Toggle.js';
|
|
10
13
|
import { toast } from 'sonner';
|
|
11
|
-
import { fetchNotificationSettings, updateNotificationSettings, } from '../../lib/forms-service.js';
|
|
14
|
+
import { fetchFormById, fetchNotificationSettings, updateNotificationSettings, testNotificationSettings, } from '../../lib/forms-service.js';
|
|
12
15
|
import { emitFormsChanged } from '../../lib/forms-events.js';
|
|
13
|
-
import { FormsErrorState, FormsLoading, btnPrimary } from './primitives.js';
|
|
16
|
+
import { FormsErrorState, FormsLoading, btnPrimary, btnSecondary } from './primitives.js';
|
|
17
|
+
import { ShortcodeGlossary } from './ShortcodeGlossary.js';
|
|
14
18
|
const inputCls = 'border-border bg-input-background text-foreground focus-visible:ring-ring w-full rounded-md border px-2.5 py-1.5 text-sm focus-visible:ring-2 focus-visible:outline-none';
|
|
15
|
-
|
|
19
|
+
const selectCls = 'border-border bg-input-background text-foreground focus-visible:ring-ring w-full rounded-md border px-2.5 py-1.5 text-sm focus-visible:ring-2 focus-visible:outline-none';
|
|
20
|
+
export function NotificationsPanel({ formId, fields: fieldsProp, onChanged, }) {
|
|
16
21
|
const [settings, setSettings] = useState(null);
|
|
22
|
+
const [fields, setFields] = useState(fieldsProp ?? []);
|
|
17
23
|
const [loading, setLoading] = useState(true);
|
|
18
24
|
const [error, setError] = useState(null);
|
|
19
25
|
const [saving, setSaving] = useState(false);
|
|
26
|
+
const [testing, setTesting] = useState(false);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (fieldsProp)
|
|
29
|
+
setFields(fieldsProp);
|
|
30
|
+
}, [fieldsProp]);
|
|
20
31
|
useEffect(() => {
|
|
21
32
|
let active = true;
|
|
22
33
|
setLoading(true);
|
|
23
34
|
setError(null);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
const load = async () => {
|
|
36
|
+
const settingsPromise = fetchNotificationSettings(formId);
|
|
37
|
+
const fieldsPromise = fieldsProp && fieldsProp.length > 0
|
|
38
|
+
? Promise.resolve(fieldsProp)
|
|
39
|
+
: fetchFormById(formId).then((f) => f?.fields ?? []);
|
|
40
|
+
const [s, f] = await Promise.all([settingsPromise, fieldsPromise]);
|
|
41
|
+
if (!active)
|
|
42
|
+
return;
|
|
43
|
+
setSettings(s);
|
|
44
|
+
setFields(f);
|
|
45
|
+
};
|
|
46
|
+
load()
|
|
29
47
|
.catch((e) => {
|
|
30
48
|
if (active)
|
|
31
49
|
setError(e instanceof Error ? e.message : 'Failed to load notification settings');
|
|
@@ -37,7 +55,8 @@ export function NotificationsPanel({ formId, onChanged, }) {
|
|
|
37
55
|
return () => {
|
|
38
56
|
active = false;
|
|
39
57
|
};
|
|
40
|
-
}, [formId]);
|
|
58
|
+
}, [formId, fieldsProp]);
|
|
59
|
+
const emailFields = useMemo(() => fields.filter((f) => f.type === 'email'), [fields]);
|
|
41
60
|
function patch(p) {
|
|
42
61
|
setSettings((cur) => (cur ? { ...cur, ...p } : cur));
|
|
43
62
|
}
|
|
@@ -57,18 +76,53 @@ export function NotificationsPanel({ formId, onChanged, }) {
|
|
|
57
76
|
emitFormsChanged();
|
|
58
77
|
onChanged?.();
|
|
59
78
|
}
|
|
79
|
+
async function sendTest() {
|
|
80
|
+
if (!settings)
|
|
81
|
+
return;
|
|
82
|
+
if (!settings.enabled || settings.recipients.length === 0) {
|
|
83
|
+
toast.error('Enable notifications and add at least one recipient before sending a test.');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
setTesting(true);
|
|
87
|
+
// Persist first so the test uses what the admin currently sees.
|
|
88
|
+
const saved = await updateNotificationSettings(formId, settings);
|
|
89
|
+
if (saved.error) {
|
|
90
|
+
setTesting(false);
|
|
91
|
+
toast.error(saved.error);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (saved.data)
|
|
95
|
+
setSettings(saved.data);
|
|
96
|
+
const res = await testNotificationSettings(formId);
|
|
97
|
+
setTesting(false);
|
|
98
|
+
if (res.error) {
|
|
99
|
+
toast.error(res.error);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const notified = res.data?.notified ?? 0;
|
|
103
|
+
if (notified > 0) {
|
|
104
|
+
toast.success(`Test email sent to ${settings.recipients[0]}.`);
|
|
105
|
+
emitFormsChanged();
|
|
106
|
+
onChanged?.();
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
toast.error(res.data?.skippedReason === 'no-email-adapter'
|
|
110
|
+
? 'No email provider configured. Set up Email in Settings or RESEND_API_KEY / SMTP.'
|
|
111
|
+
: 'Test email was not sent.');
|
|
112
|
+
}
|
|
60
113
|
if (loading)
|
|
61
114
|
return _jsx(FormsLoading, { label: "Loading notification settings\u2026" });
|
|
62
115
|
if (error)
|
|
63
116
|
return _jsx(FormsErrorState, { message: error });
|
|
64
117
|
if (!settings)
|
|
65
118
|
return null;
|
|
66
|
-
|
|
119
|
+
const missingRecipients = settings.enabled && settings.recipients.length === 0;
|
|
120
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsx(ToggleRow, { label: "Enable notifications", help: "Email the recipients below when a new entry arrives.", checked: settings.enabled, onChange: (v) => patch({ enabled: v }) }), missingRecipients && (_jsx("p", { className: "text-destructive text-sm", role: "status", children: "Notifications are on, but no recipients are set \u2014 admin emails will not send." })), _jsxs("fieldset", { disabled: !settings.enabled, className: "space-y-4 transition-opacity disabled:opacity-50", children: [_jsx(Field, { label: "Recipients", hint: "Comma-separated email addresses", children: _jsx("input", { type: "text", value: settings.recipients.join(', '), onChange: (e) => patch({
|
|
67
121
|
recipients: e.target.value
|
|
68
122
|
.split(',')
|
|
69
123
|
.map((s) => s.trim())
|
|
70
124
|
.filter(Boolean),
|
|
71
|
-
}), placeholder: "team@example.com", className: inputCls }) }), _jsx(Field, { label: "Reply-
|
|
125
|
+
}), placeholder: "team@example.com", className: inputCls }) }), _jsx(Field, { label: "Reply-To", hint: "Defaults to the submitter\u2019s email. Override with a specific email field if needed.", children: _jsxs("select", { value: settings.replyToFieldKey ?? '', onChange: (e) => patch({ replyToFieldKey: e.target.value || null }), className: selectCls, "aria-label": "Reply-To field", children: [_jsx("option", { value: "", children: "Submitter email (auto)" }), emailFields.map((f) => (_jsx("option", { value: f.key, children: `${f.label || f.key} ({{${f.key}}})` }, f.id || f.key)))] }) }), _jsx(Field, { label: "Subject template", hint: "Leave blank for \u201CNew submission: {form} \u2014 {website}\u201D. Use shortcodes below to customize.", children: _jsx("input", { type: "text", value: settings.subjectTemplate ?? '', onChange: (e) => patch({ subjectTemplate: e.target.value }), placeholder: "New submission: {{formName}} \u2014 {{siteName}}", className: inputCls }) }), _jsx(Field, { label: "Message template", hint: "Leave blank for the built-in intro. Field values and attribution are appended below when enabled.", children: _jsx("textarea", { rows: 3, value: settings.messageTemplate ?? '', onChange: (e) => patch({ messageTemplate: e.target.value }), placeholder: "Optional custom intro \u2014 leave blank for the default template", className: inputCls }) }), _jsx(ShortcodeGlossary, { fields: fields }), _jsx(ToggleRow, { label: "Include all fields", help: "Append every submitted field to the notification body.", checked: settings.includeFields ?? true, onChange: (v) => patch({ includeFields: v }) }), _jsx(ToggleRow, { label: "Include attribution", help: "Append marketing attribution (source, medium, channel, landing page, referrer) when captured.", checked: settings.includeAttribution ?? true, onChange: (v) => patch({ includeAttribution: v }) }), _jsx(ToggleRow, { label: "Exclude sensitive fields", help: "Omit fields marked as sensitive/PII from the email.", checked: settings.excludeSensitiveFields ?? false, onChange: (v) => patch({ excludeSensitiveFields: v }) }), _jsxs("div", { className: "border-border border-t pt-4", children: [_jsx(ToggleRow, { label: "Auto-response email", help: "Send a confirmation email back to the submitter.", checked: settings.autoresponderEnabled ?? false, onChange: (v) => patch({ autoresponderEnabled: v }) }), settings.autoresponderEnabled && (_jsxs("div", { className: "mt-3 space-y-3", children: [_jsx(Field, { label: "Auto-response email field", hint: "Defaults to the submitter\u2019s email when left on Auto.", children: _jsxs("select", { value: settings.autoresponderEmailFieldKey ?? '', onChange: (e) => patch({ autoresponderEmailFieldKey: e.target.value || null }), className: selectCls, "aria-label": "Auto-response email field", children: [_jsx("option", { value: "", children: "Submitter email (auto)" }), emailFields.map((f) => (_jsx("option", { value: f.key, children: f.label || f.key }, f.id || f.key)))] }) }), _jsx(Field, { label: "Auto-response subject", children: _jsx("input", { type: "text", value: settings.autoresponderSubject ?? '', onChange: (e) => patch({ autoresponderSubject: e.target.value }), placeholder: "We received your submission", className: inputCls }) }), _jsx(Field, { label: "Auto-response body", children: _jsx("textarea", { rows: 3, value: settings.autoresponderBody ?? '', onChange: (e) => patch({ autoresponderBody: e.target.value }), placeholder: "Thanks, {{senderName}}! We received your submission\u2026", className: inputCls }) })] }))] })] }), _jsxs("p", { className: "text-muted-foreground text-xs", children: ["For CRM integrations (Zapier, HubSpot via Zapier, etc.), use the", ' ', _jsx("span", { className: "font-medium", children: "Integrations" }), " tab to add a signed webhook. Email notifications send when recipients are configured and your email provider is set up in", ' ', _jsx("span", { className: "font-medium", children: "Settings \u2192 Email" }), " (or via", ' ', _jsx("span", { className: "font-mono", children: "RESEND_API_KEY" }), " / SMTP)."] }), _jsxs("div", { className: "flex flex-wrap items-center justify-end gap-2", children: [_jsx("button", { type: "button", className: btnSecondary, onClick: () => void sendTest(), disabled: testing || saving || !settings.enabled || settings.recipients.length === 0, children: testing ? 'Sending test…' : 'Send test' }), _jsx("button", { type: "button", className: btnPrimary, onClick: () => void save(), disabled: saving, children: saving ? 'Saving…' : 'Save notifications' })] })] }));
|
|
72
126
|
}
|
|
73
127
|
function ToggleRow({ label, help, checked, onChange, }) {
|
|
74
128
|
return (_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "text-foreground block text-sm font-medium", children: label }), _jsx("span", { className: "text-muted-foreground block text-sm", children: help })] }), _jsx(Toggle, { checked: checked, onCheckedChange: onChange, "aria-label": label })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationsPanel.js","sourceRoot":"","sources":["../../../src/components/forms/NotificationsPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ
|
|
1
|
+
{"version":3,"file":"NotificationsPanel.js","sourceRoot":"","sources":["../../../src/components/forms/NotificationsPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShortcodeGlossary.d.ts","sourceRoot":"","sources":["../../../src/components/forms/ShortcodeGlossary.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AA4B3D,wBAAgB,iBAAiB,CAAC,EAAE,MAAW,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,2CA2C1E"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Copy-paste glossary of notification shortcodes (built-ins + form field keys).
|
|
5
|
+
* Used by the Notifications panel so admins never have to guess `{{token}}` names.
|
|
6
|
+
*
|
|
7
|
+
* Built-in keys must stay in sync with `FORM_NOTIFICATION_SHORTCODES` in
|
|
8
|
+
* `packages/cms-core/src/forms/notify.ts`.
|
|
9
|
+
*/
|
|
10
|
+
import { useState } from 'react';
|
|
11
|
+
import { Check, Copy } from 'lucide-react';
|
|
12
|
+
import { toast } from 'sonner';
|
|
13
|
+
/** Mirrors cms-core `FORM_NOTIFICATION_SHORTCODES`. */
|
|
14
|
+
const BUILTIN_SHORTCODES = [
|
|
15
|
+
{ key: 'formName', description: 'Form name' },
|
|
16
|
+
{ key: 'siteName', description: 'Website name (SEO settings)' },
|
|
17
|
+
{ key: 'siteUrl', description: 'Website URL (SEO settings)' },
|
|
18
|
+
{ key: 'entryNumber', description: 'Submission number (e.g. #00042)' },
|
|
19
|
+
{ key: 'senderName', description: 'Derived submitter name' },
|
|
20
|
+
{ key: 'senderEmail', description: 'Derived submitter email' },
|
|
21
|
+
{ key: 'submittedAt', description: 'Submission timestamp (ISO)' },
|
|
22
|
+
];
|
|
23
|
+
function token(key) {
|
|
24
|
+
return `{{${key}}}`;
|
|
25
|
+
}
|
|
26
|
+
async function copyText(value, label) {
|
|
27
|
+
try {
|
|
28
|
+
await navigator.clipboard.writeText(value);
|
|
29
|
+
toast.success(`Copied ${label}`);
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
toast.error('Copy failed — your browser blocked clipboard access.');
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function ShortcodeGlossary({ fields = [] }) {
|
|
38
|
+
const fieldTokens = fields.filter((f) => f.type !== 'honeypot' && f.type !== 'divider' && f.type !== 'richtext');
|
|
39
|
+
const allTokens = [
|
|
40
|
+
...BUILTIN_SHORTCODES.map((s) => token(s.key)),
|
|
41
|
+
...fieldTokens.map((f) => token(f.key)),
|
|
42
|
+
].join('\n');
|
|
43
|
+
return (_jsxs("div", { className: "border-border bg-muted/40 space-y-3 rounded-md border p-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "text-foreground text-sm font-medium", children: "Shortcode glossary" }), _jsx("p", { className: "text-muted-foreground text-xs", children: "Paste these into subject or message templates. Leave templates blank to use the built-in email (all fields + attribution)." })] }), _jsx(CopyButton, { label: "Copy all", ariaLabel: "Copy all shortcodes", value: allTokens, successLabel: "all shortcodes" })] }), _jsx(ShortcodeGroup, { title: "Built-in", children: BUILTIN_SHORTCODES.map((s) => (_jsx(ShortcodeRow, { code: token(s.key), description: s.description }, s.key))) }), fieldTokens.length > 0 && (_jsx(ShortcodeGroup, { title: "Form fields", children: fieldTokens.map((f) => (_jsx(ShortcodeRow, { code: token(f.key), description: f.label || f.key }, f.id || f.key))) }))] }));
|
|
44
|
+
}
|
|
45
|
+
function ShortcodeGroup({ title, children }) {
|
|
46
|
+
return (_jsxs("div", { children: [_jsx("p", { className: "text-muted-foreground mb-1.5 text-xs font-medium tracking-wide uppercase", children: title }), _jsx("ul", { className: "border-border divide-border bg-background divide-y overflow-hidden rounded-md border", children: children })] }));
|
|
47
|
+
}
|
|
48
|
+
function ShortcodeRow({ code, description }) {
|
|
49
|
+
return (_jsxs("li", { className: "flex items-center justify-between gap-2 px-2.5 py-1.5", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("code", { className: "text-foreground font-mono text-xs", children: code }), _jsx("span", { className: "text-muted-foreground ml-2 text-xs", children: description })] }), _jsx(CopyButton, { label: "Copy", ariaLabel: `Copy ${code}`, value: code, successLabel: code })] }));
|
|
50
|
+
}
|
|
51
|
+
function CopyButton({ label, ariaLabel, value, successLabel, }) {
|
|
52
|
+
const [copied, setCopied] = useState(false);
|
|
53
|
+
async function onCopy() {
|
|
54
|
+
const ok = await copyText(value, successLabel);
|
|
55
|
+
if (!ok)
|
|
56
|
+
return;
|
|
57
|
+
setCopied(true);
|
|
58
|
+
setTimeout(() => setCopied(false), 1500);
|
|
59
|
+
}
|
|
60
|
+
return (_jsxs("button", { type: "button", onClick: () => void onCopy(), className: "text-muted-foreground hover:text-foreground focus-visible:ring-ring inline-flex shrink-0 items-center gap-1 rounded px-1.5 py-0.5 text-xs font-medium focus-visible:ring-2 focus-visible:outline-none", "aria-label": ariaLabel, children: [copied ? (_jsx(Check, { className: "h-3.5 w-3.5", "aria-hidden": true })) : (_jsx(Copy, { className: "h-3.5 w-3.5", "aria-hidden": true })), copied ? 'Copied' : label] }));
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=ShortcodeGlossary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShortcodeGlossary.js","sourceRoot":"","sources":["../../../src/components/forms/ShortcodeGlossary.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhooksPanel.d.ts","sourceRoot":"","sources":["../../../src/components/forms/WebhooksPanel.tsx"],"names":[],"mappings":"AA4BA,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"WebhooksPanel.d.ts","sourceRoot":"","sources":["../../../src/components/forms/WebhooksPanel.tsx"],"names":[],"mappings":"AA4BA,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,2CA4RvF"}
|
|
@@ -122,7 +122,7 @@ export function WebhooksPanel({ formId, formSlug }) {
|
|
|
122
122
|
return _jsx(FormsLoading, { label: "Loading integrations\u2026" });
|
|
123
123
|
if (error)
|
|
124
124
|
return _jsx(FormsErrorState, { message: error, onRetry: () => void reload() });
|
|
125
|
-
return (_jsxs("div", { className: "space-y-5", children: [_jsx("section", { className: "border-border bg-muted/40 space-y-3 rounded-lg border p-4", "aria-labelledby": "zapier-helper-title", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx("span", { className: "bg-primary/10 text-primary flex h-9 w-9 shrink-0 items-center justify-center rounded-md", children: _jsx(Zap, { size: 18, "aria-hidden": true }) }), _jsxs("div", { className: "min-w-0 space-y-2", children: [_jsx("h3", { id: "zapier-helper-title", className: "text-foreground text-sm font-medium", children: "Connect to Zapier (recommended)" }), _jsxs("ol", { className: "text-muted-foreground list-decimal space-y-1 pl-4 text-sm", children: [_jsxs("li", { children: ["In Zapier, create a Zap with trigger", ' ', _jsx("span", { className: "text-foreground font-medium", children: "Webhooks by Zapier \u2192 Catch Hook" }), "."] }), _jsx("li", { children: "Copy the hook URL Zapier gives you and paste it below." }), _jsxs("li", { children: ["Map fields in your action step \u2014 submission values arrive under", ' ', _jsx("span", { className: "font-mono text-xs", children: "data.email" }), ",", ' ', _jsx("span", { className: "font-mono text-xs", children: "data.name" }), ", etc."] }), _jsxs("li", { children: ["Use event ", _jsx("span", { className: "font-mono text-xs", children: "form.submitted" }), " only (spam hits emit ", _jsx("span", { className: "font-mono text-xs", children: "form.spam_detected" }), " separately)."] })] }), _jsx("p", { className: "text-muted-foreground text-xs", children: "HubSpot, Salesforce, Slack, and Google Sheets work through Zapier actions \u2014 no native Actuate app required for v1." }), _jsxs("div", { className: "flex flex-wrap gap-3 pt-1", children: [_jsxs("a", { href: ZAPIER_CATCH_HOOK_DOCS, target: "_blank", rel: "noopener noreferrer", className: "text-primary inline-flex items-center gap-1 text-sm font-medium hover:underline", children: ["Open Zapier Webhooks", _jsx(ExternalLink, { size: 14, "aria-hidden": true })] }), _jsxs("a", { href: FORMS_INTEGRATIONS_DOCS, target: "_blank", rel: "noopener noreferrer", className: "text-primary inline-flex items-center gap-1 text-sm font-medium hover:underline", children: ["Full integration guide", _jsx(ExternalLink, { size: 14, "aria-hidden": true })] })] })] })] }) }), _jsxs("form", { onSubmit: handleCreate, className: "space-y-3", children: [_jsxs("label", { className: "block", children: [_jsx("span", { className: "text-foreground mb-1 block text-sm font-medium", children: "Webhook URL" }), _jsx("input", { type: "url", value: url, onChange: (e) => setUrl(e.target.value), placeholder: "https://hooks.zapier.com/hooks/catch/\u2026", className: inputCls, autoComplete: "off" }), _jsxs("span", { className: "text-muted-foreground mt-1 block text-xs", children: ["Paste your Catch Hook URL for form ", _jsx("span", { className: "font-mono", children: formSlug }), ". Payloads are HMAC-signed via ", _jsx("span", { className: "font-mono", children: "X-Actuate-Signature" }), "."] })] }), _jsx("button", { type: "submit", className: `${btnPrimary} inline-flex items-center`, disabled: creating, children: creating ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { className: "mr-2 inline h-4 w-4 animate-spin", "aria-hidden": true }), "Connecting\u2026"] })) : (_jsxs(_Fragment, { children: [_jsx(Plus, { className: "mr-1 inline h-4 w-4", "aria-hidden": true }), "Add webhook"] })) })] }), createdSecret && (_jsxs("div", { className: "border-success/30 bg-success/10 text-foreground space-y-2 rounded-md border px-3 py-3 text-sm", role: "status", children: [_jsx("p", { className: "font-medium", children: "Signing secret (shown once)" }), _jsx("p", { className: "text-muted-foreground text-xs", children: "Store this if your CRM verifies HMAC signatures. You cannot retrieve it again after closing this panel." }), _jsx("pre", { className: "border-border bg-background overflow-x-auto rounded border px-2 py-1.5 font-mono text-xs", children: createdSecret }), _jsx("button", { type: "button", className: btnSecondary, onClick: () => setCreatedSecret(null), children: "Dismiss" })] })), webhooks.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-sm", children: "No webhooks yet. Add a Catch Hook URL to send each submission to your CRM." })) : (_jsx("ul", { className: "space-y-3", "aria-label": "Configured webhooks", children: webhooks.map((webhook) => (_jsxs("li", { className: "border-border flex flex-col gap-3 rounded-lg border p-3 sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "text-foreground truncate font-mono text-xs", children: webhook.url }), _jsxs("p", { className: "text-muted-foreground mt-1 text-xs", children: ["Events: ", webhook.events.join(', ') || 'form.submitted', webhook.lastDeliveryAt
|
|
125
|
+
return (_jsxs("div", { className: "space-y-5", children: [_jsx("section", { className: "border-border bg-muted/40 space-y-3 rounded-lg border p-4", "aria-labelledby": "zapier-helper-title", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx("span", { className: "bg-primary/10 text-primary flex h-9 w-9 shrink-0 items-center justify-center rounded-md", children: _jsx(Zap, { size: 18, "aria-hidden": true }) }), _jsxs("div", { className: "min-w-0 space-y-2", children: [_jsx("h3", { id: "zapier-helper-title", className: "text-foreground text-sm font-medium", children: "Connect to Zapier (recommended)" }), _jsxs("ol", { className: "text-muted-foreground list-decimal space-y-1 pl-4 text-sm", children: [_jsxs("li", { children: ["In Zapier, create a Zap with trigger", ' ', _jsx("span", { className: "text-foreground font-medium", children: "Webhooks by Zapier \u2192 Catch Hook" }), "."] }), _jsx("li", { children: "Copy the hook URL Zapier gives you and paste it below." }), _jsxs("li", { children: ["Map fields in your action step \u2014 submission values arrive under", ' ', _jsx("span", { className: "font-mono text-xs", children: "data.email" }), ",", ' ', _jsx("span", { className: "font-mono text-xs", children: "data.name" }), ", etc. Marketing attribution (when captured) arrives under", ' ', _jsx("span", { className: "font-mono text-xs", children: "attribution.source" }), ",", ' ', _jsx("span", { className: "font-mono text-xs", children: "attribution.medium" }), ",", ' ', _jsx("span", { className: "font-mono text-xs", children: "attribution.channel" }), ", etc."] }), _jsxs("li", { children: ["Use event ", _jsx("span", { className: "font-mono text-xs", children: "form.submitted" }), " only (spam hits emit ", _jsx("span", { className: "font-mono text-xs", children: "form.spam_detected" }), " separately)."] })] }), _jsx("p", { className: "text-muted-foreground text-xs", children: "HubSpot, Salesforce, Slack, and Google Sheets work through Zapier actions \u2014 no native Actuate app required for v1." }), _jsxs("div", { className: "flex flex-wrap gap-3 pt-1", children: [_jsxs("a", { href: ZAPIER_CATCH_HOOK_DOCS, target: "_blank", rel: "noopener noreferrer", className: "text-primary inline-flex items-center gap-1 text-sm font-medium hover:underline", children: ["Open Zapier Webhooks", _jsx(ExternalLink, { size: 14, "aria-hidden": true })] }), _jsxs("a", { href: FORMS_INTEGRATIONS_DOCS, target: "_blank", rel: "noopener noreferrer", className: "text-primary inline-flex items-center gap-1 text-sm font-medium hover:underline", children: ["Full integration guide", _jsx(ExternalLink, { size: 14, "aria-hidden": true })] })] })] })] }) }), _jsxs("form", { onSubmit: handleCreate, className: "space-y-3", children: [_jsxs("label", { className: "block", children: [_jsx("span", { className: "text-foreground mb-1 block text-sm font-medium", children: "Webhook URL" }), _jsx("input", { type: "url", value: url, onChange: (e) => setUrl(e.target.value), placeholder: "https://hooks.zapier.com/hooks/catch/\u2026", className: inputCls, autoComplete: "off" }), _jsxs("span", { className: "text-muted-foreground mt-1 block text-xs", children: ["Paste your Catch Hook URL for form ", _jsx("span", { className: "font-mono", children: formSlug }), ". Payloads are HMAC-signed via ", _jsx("span", { className: "font-mono", children: "X-Actuate-Signature" }), "."] })] }), _jsx("button", { type: "submit", className: `${btnPrimary} inline-flex items-center`, disabled: creating, children: creating ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { className: "mr-2 inline h-4 w-4 animate-spin", "aria-hidden": true }), "Connecting\u2026"] })) : (_jsxs(_Fragment, { children: [_jsx(Plus, { className: "mr-1 inline h-4 w-4", "aria-hidden": true }), "Add webhook"] })) })] }), createdSecret && (_jsxs("div", { className: "border-success/30 bg-success/10 text-foreground space-y-2 rounded-md border px-3 py-3 text-sm", role: "status", children: [_jsx("p", { className: "font-medium", children: "Signing secret (shown once)" }), _jsx("p", { className: "text-muted-foreground text-xs", children: "Store this if your CRM verifies HMAC signatures. You cannot retrieve it again after closing this panel." }), _jsx("pre", { className: "border-border bg-background overflow-x-auto rounded border px-2 py-1.5 font-mono text-xs", children: createdSecret }), _jsx("button", { type: "button", className: btnSecondary, onClick: () => setCreatedSecret(null), children: "Dismiss" })] })), webhooks.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-sm", children: "No webhooks yet. Add a Catch Hook URL to send each submission to your CRM." })) : (_jsx("ul", { className: "space-y-3", "aria-label": "Configured webhooks", children: webhooks.map((webhook) => (_jsxs("li", { className: "border-border flex flex-col gap-3 rounded-lg border p-3 sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "text-foreground truncate font-mono text-xs", children: webhook.url }), _jsxs("p", { className: "text-muted-foreground mt-1 text-xs", children: ["Events: ", webhook.events.join(', ') || 'form.submitted', webhook.lastDeliveryAt
|
|
126
126
|
? ` · Last delivery: ${webhook.lastDeliveryStatus ?? 'unknown'}`
|
|
127
127
|
: ''] })] }), _jsxs("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: [_jsx(Toggle, { checked: webhook.enabled, onCheckedChange: (v) => void toggleEnabled(webhook, v), "aria-label": `Enable webhook ${webhook.url}`, variant: "enabled" }), _jsx("button", { type: "button", className: btnSecondary, disabled: testingId === webhook.id, onClick: () => void handleTest(webhook.id), children: testingId === webhook.id ? 'Testing…' : 'Send test' }), _jsxs("button", { type: "button", className: "text-destructive hover:bg-destructive/10 focus-visible:ring-ring inline-flex items-center gap-1 rounded-md px-2 py-1.5 text-sm font-medium focus-visible:ring-2 focus-visible:outline-none", "aria-label": "Remove webhook", onClick: () => setPendingDelete(webhook), children: [_jsx(Trash2, { size: 16, "aria-hidden": true }), "Remove"] })] })] }, webhook.id))) })), _jsx(ConfirmDialog, { open: !!pendingDelete, onClose: () => setPendingDelete(null), onConfirm: () => void confirmDelete(), title: "Remove webhook?", description: "New submissions will no longer be sent to this URL. Existing Zapier Zaps are not deleted \u2014 disable them in Zapier if needed.", confirmLabel: "Remove", cancelLabel: "Keep webhook", destructive: true })] }));
|
|
128
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhooksPanel.js","sourceRoot":"","sources":["../../../src/components/forms/WebhooksPanel.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WebhooksPanel.js","sourceRoot":"","sources":["../../../src/components/forms/WebhooksPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAElB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEzF,MAAM,sBAAsB,GAAG,8CAA8C,CAAA;AAC7E,MAAM,uBAAuB,GAAG,oDAAoD,CAAA;AAEpF,MAAM,QAAQ,GACZ,0KAA0K,CAAA;AAE5K,MAAM,UAAU,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAwC;IACtF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,EAAE,CAAC,CAAA;IACjE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IACvE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAA2B,IAAI,CAAC,CAAA;IAClF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAE/D,KAAK,UAAU,MAAM;QACnB,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,IAAI,CAAC;YACH,WAAW,CAAC,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAA;QACtE,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,GAAG,IAAI,CAAA;QACjB,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,iBAAiB,CAAC,MAAM,CAAC;aACtB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,MAAM;gBAAE,WAAW,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;YACpB,IAAI,MAAM;gBAAE,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAA;QAClF,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,MAAM;gBAAE,UAAU,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,KAAK,CAAA;QAChB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,KAAK,UAAU,YAAY,CAAC,CAAkB;QAC5C,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,KAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;YAC/C,OAAM;QACR,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,CAAA;QACjB,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE;YAC1C,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,CAAC,gBAAgB,CAAC;YAC1B,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QACF,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACtB,OAAM;QACR,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM;YAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvD,MAAM,CAAC,EAAE,CAAC,CAAA;QACV,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;QACnC,MAAM,MAAM,EAAE,CAAA;IAChB,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,OAA0B,EAAE,OAAgB;QACvE,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;QACpE,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACtB,OAAM;QACR,CAAC;QACD,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC/F,CAAC;IAED,KAAK,UAAU,UAAU,CAAC,SAAiB;QACzC,YAAY,CAAC,SAAS,CAAC,CAAA;QACvB,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QACpD,YAAY,CAAC,IAAI,CAAC,CAAA;QAClB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACtB,OAAM;QACR,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YACjB,KAAK,CAAC,OAAO,CAAC,iCAAiC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;QACrE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,qBAAqB,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,SAAS,IAAI,CAAC,CAAA;QACxF,CAAC;QACD,MAAM,MAAM,EAAE,CAAA;IAChB,CAAC;IAED,KAAK,UAAU,aAAa;QAC1B,IAAI,CAAC,aAAa;YAAE,OAAM;QAC1B,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;QAC7D,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACtB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACtB,OAAM;QACR,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;QACjC,MAAM,MAAM,EAAE,CAAA;IAChB,CAAC;IAED,IAAI,OAAO;QAAE,OAAO,KAAC,YAAY,IAAC,KAAK,EAAC,4BAAuB,GAAG,CAAA;IAClE,IAAI,KAAK;QAAE,OAAO,KAAC,eAAe,IAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,MAAM,EAAE,GAAI,CAAA;IAEnF,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,kBACE,SAAS,EAAC,2DAA2D,qBACrD,qBAAqB,YAErC,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAM,SAAS,EAAC,yFAAyF,YACvG,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,wBAAgB,GACxB,EACP,eAAK,SAAS,EAAC,mBAAmB,aAChC,aAAI,EAAE,EAAC,qBAAqB,EAAC,SAAS,EAAC,qCAAqC,gDAEvE,EACL,cAAI,SAAS,EAAC,2DAA2D,aACvE,iEACuC,GAAG,EACxC,eAAM,SAAS,EAAC,6BAA6B,qDAAuC,SAEjF,EACL,kFAA+D,EAC/D,iGACkE,GAAG,EACnE,eAAM,SAAS,EAAC,mBAAmB,2BAAkB,OAAE,GAAG,EAC1D,eAAM,SAAS,EAAC,mBAAmB,0BAAiB,gEACtB,GAAG,EACjC,eAAM,SAAS,EAAC,mBAAmB,mCAA0B,OAAE,GAAG,EAClE,eAAM,SAAS,EAAC,mBAAmB,mCAA0B,OAAE,GAAG,EAClE,eAAM,SAAS,EAAC,mBAAmB,oCAA2B,cAC3D,EACL,uCACY,eAAM,SAAS,EAAC,mBAAmB,+BAAsB,4BAC9D,eAAM,SAAS,EAAC,mBAAmB,mCAA0B,qBAC/D,IACF,EACL,YAAG,SAAS,EAAC,+BAA+B,wIAGxC,EACJ,eAAK,SAAS,EAAC,2BAA2B,aACxC,aACE,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,iFAAiF,qCAG3F,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,wBAAgB,IACpC,EACJ,aACE,IAAI,EAAE,uBAAuB,EAC7B,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,iFAAiF,uCAG3F,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,wBAAgB,IACpC,IACA,IACF,IACF,GACE,EAEV,gBAAM,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAC,WAAW,aACjD,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAC,gDAAgD,4BAAmB,EACnF,gBACE,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,WAAW,EAAC,6CAAwC,EACpD,SAAS,EAAE,QAAQ,EACnB,YAAY,EAAC,KAAK,GAClB,EACF,gBAAM,SAAS,EAAC,0CAA0C,oDACrB,eAAM,SAAS,EAAC,WAAW,YAAE,QAAQ,GAAQ,qCACnD,eAAM,SAAS,EAAC,WAAW,oCAA2B,SAC9E,IACD,EACR,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,GAAG,UAAU,2BAA2B,EACnD,QAAQ,EAAE,QAAQ,YAEjB,QAAQ,CAAC,CAAC,CAAC,CACV,8BACE,KAAC,OAAO,IAAC,SAAS,EAAC,kCAAkC,wBAAe,wBAEnE,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,IAAI,IAAC,SAAS,EAAC,qBAAqB,wBAAe,mBAEnD,CACJ,GACM,IACJ,EAEN,aAAa,IAAI,CAChB,eACE,SAAS,EAAC,+FAA+F,EACzG,IAAI,EAAC,QAAQ,aAEb,YAAG,SAAS,EAAC,aAAa,4CAAgC,EAC1D,YAAG,SAAS,EAAC,+BAA+B,wHAGxC,EACJ,cAAK,SAAS,EAAC,0FAA0F,YACtG,aAAa,GACV,EACN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,wBAE3E,IACL,CACP,EAEA,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,YAAG,SAAS,EAAC,+BAA+B,2FAExC,CACL,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,WAAW,gBAAY,qBAAqB,YACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,cAEE,SAAS,EAAC,wGAAwG,aAElH,eAAK,SAAS,EAAC,SAAS,aACtB,YAAG,SAAS,EAAC,4CAA4C,YAAE,OAAO,CAAC,GAAG,GAAK,EAC3E,aAAG,SAAS,EAAC,oCAAoC,yBACtC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,EACrD,OAAO,CAAC,cAAc;4CACrB,CAAC,CAAC,qBAAqB,OAAO,CAAC,kBAAkB,IAAI,SAAS,EAAE;4CAChE,CAAC,CAAC,EAAE,IACJ,IACA,EACN,eAAK,SAAS,EAAC,4CAA4C,aACzD,KAAC,MAAM,IACL,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,gBAC1C,kBAAkB,OAAO,CAAC,GAAG,EAAE,EAC3C,OAAO,EAAC,SAAS,GACjB,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC,EAAE,EAClC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,YAEzC,SAAS,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,GAC7C,EACT,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,4LAA4L,gBAC3L,gBAAgB,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAExC,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,wBAAgB,cAEzB,IACL,KApCD,OAAO,CAAC,EAAE,CAqCZ,CACN,CAAC,GACC,CACN,EAED,KAAC,aAAa,IACZ,IAAI,EAAE,CAAC,CAAC,aAAa,EACrB,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACrC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,aAAa,EAAE,EACrC,KAAK,EAAC,iBAAiB,EACvB,WAAW,EAAC,mIAA8H,EAC1I,YAAY,EAAC,QAAQ,EACrB,WAAW,EAAC,cAAc,EAC1B,WAAW,SACX,IACE,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface ReauthDialogProps {
|
|
2
|
+
open: boolean;
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
/** Called with the entered password. Resolve on success; throw or return without closing on failure. */
|
|
5
|
+
onSubmit: (password: string) => Promise<void>;
|
|
6
|
+
title?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
confirmLabel?: string;
|
|
9
|
+
/** When true, the confirm button uses the destructive (danger) variant. */
|
|
10
|
+
destructive?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Password re-auth modal for sensitive admin actions. Prefer this over
|
|
14
|
+
* `window.prompt()` so the flow stays in-theme and accessible.
|
|
15
|
+
*/
|
|
16
|
+
export declare function ReauthDialog({ open, onClose, onSubmit, title, description, confirmLabel, destructive, }: ReauthDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=ReauthDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReauthDialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/ReauthDialog.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,wGAAwG;IACxG,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,KAA0B,EAC1B,WAA+E,EAC/E,YAAwB,EACxB,WAAmB,GACpB,EAAE,iBAAiB,2CA8DnB"}
|