@actuate-media/cms-admin 0.76.6 → 0.77.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 +33 -0
- package/dist/__tests__/lib/preview-link.test.d.ts +2 -0
- package/dist/__tests__/lib/preview-link.test.d.ts.map +1 -0
- package/dist/__tests__/lib/preview-link.test.js +27 -0
- package/dist/__tests__/lib/preview-link.test.js.map +1 -0
- package/dist/__tests__/views/editor-top-bar.render.test.js +19 -0
- package/dist/__tests__/views/editor-top-bar.render.test.js.map +1 -1
- package/dist/__tests__/views/form-editor.render.test.d.ts +2 -0
- package/dist/__tests__/views/form-editor.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/form-editor.render.test.js +146 -0
- package/dist/__tests__/views/form-editor.render.test.js.map +1 -0
- package/dist/actuate-admin.css +1 -1
- package/dist/lib/forms-service.d.ts +15 -3
- package/dist/lib/forms-service.d.ts.map +1 -1
- package/dist/lib/forms-service.js.map +1 -1
- package/dist/lib/preview-link.d.ts +7 -0
- package/dist/lib/preview-link.d.ts.map +1 -1
- package/dist/lib/preview-link.js +16 -0
- package/dist/lib/preview-link.js.map +1 -1
- package/dist/views/FormEditor.d.ts.map +1 -1
- package/dist/views/FormEditor.js +211 -116
- package/dist/views/FormEditor.js.map +1 -1
- package/dist/views/page-editor/EditorTopBar.d.ts.map +1 -1
- package/dist/views/page-editor/EditorTopBar.js +6 -1
- package/dist/views/page-editor/EditorTopBar.js.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.d.ts.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.js +14 -1
- package/dist/views/page-editor/PageSectionEditor.js.map +1 -1
- package/dist/views/post-editor/PostSectionEditor.d.ts.map +1 -1
- package/dist/views/post-editor/PostSectionEditor.js +11 -1
- package/dist/views/post-editor/PostSectionEditor.js.map +1 -1
- package/package.json +9 -9
- package/src/__tests__/lib/preview-link.test.ts +39 -0
- package/src/__tests__/views/editor-top-bar.render.test.tsx +22 -0
- package/src/__tests__/views/form-editor.render.test.tsx +186 -0
- package/src/lib/forms-service.ts +16 -1
- package/src/lib/preview-link.ts +21 -0
- package/src/views/FormEditor.tsx +655 -510
- package/src/views/page-editor/EditorTopBar.tsx +11 -4
- package/src/views/page-editor/PageSectionEditor.tsx +18 -0
- package/src/views/post-editor/PostSectionEditor.tsx +15 -0
|
@@ -27,6 +27,13 @@ export interface PublicPreviewUrlParts {
|
|
|
27
27
|
* public route can drop the `PUBLISHED` filter for this one document.
|
|
28
28
|
*/
|
|
29
29
|
export declare function buildPublicPreviewUrl({ siteUrl, urlPrefix, slug, token, }: PublicPreviewUrlParts): string;
|
|
30
|
+
/**
|
|
31
|
+
* Build the public **live** URL for a document — the same path as
|
|
32
|
+
* {@link buildPublicPreviewUrl} but WITHOUT a preview token, so it opens the
|
|
33
|
+
* published version rather than a draft. Home-style slugs (`home` / `index` /
|
|
34
|
+
* empty) collapse to `/`, matching how the resolver serves the site root.
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildPublicUrl({ siteUrl, urlPrefix, slug, }: Omit<PublicPreviewUrlParts, 'token'>): string;
|
|
30
37
|
/** Resolve the public site origin: explicit config first, else the current tab's origin. */
|
|
31
38
|
export declare function resolveSiteUrl(configSiteUrl?: string | null): string;
|
|
32
39
|
//# sourceMappingURL=preview-link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview-link.d.ts","sourceRoot":"","sources":["../../src/lib/preview-link.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAYrE;AAED,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,SAAS,EACT,IAAI,EACJ,KAAK,GACN,EAAE,qBAAqB,GAAG,MAAM,CAMhC;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAIpE"}
|
|
1
|
+
{"version":3,"file":"preview-link.d.ts","sourceRoot":"","sources":["../../src/lib/preview-link.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAYrE;AAED,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,SAAS,EACT,IAAI,EACJ,KAAK,GACN,EAAE,qBAAqB,GAAG,MAAM,CAMhC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,EACT,IAAI,GACL,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,GAAG,MAAM,CAS/C;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAIpE"}
|
package/dist/lib/preview-link.js
CHANGED
|
@@ -29,6 +29,22 @@ export function buildPublicPreviewUrl({ siteUrl, urlPrefix, slug, token, }) {
|
|
|
29
29
|
const path = prefix ? `/${prefix}/${cleanSlug}` : `/${cleanSlug}`;
|
|
30
30
|
return `${base}${path}?preview=${encodeURIComponent(token)}`;
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Build the public **live** URL for a document — the same path as
|
|
34
|
+
* {@link buildPublicPreviewUrl} but WITHOUT a preview token, so it opens the
|
|
35
|
+
* published version rather than a draft. Home-style slugs (`home` / `index` /
|
|
36
|
+
* empty) collapse to `/`, matching how the resolver serves the site root.
|
|
37
|
+
*/
|
|
38
|
+
export function buildPublicUrl({ siteUrl, urlPrefix, slug, }) {
|
|
39
|
+
const base = (siteUrl ?? '').replace(/\/+$/, '');
|
|
40
|
+
const cleanSlug = slug.replace(/^\/+|\/+$/g, '');
|
|
41
|
+
if (cleanSlug === '' || cleanSlug === 'home' || cleanSlug === 'index') {
|
|
42
|
+
return base || '/';
|
|
43
|
+
}
|
|
44
|
+
const prefix = (urlPrefix ?? '').replace(/^\/+|\/+$/g, '');
|
|
45
|
+
const path = prefix ? `/${prefix}/${cleanSlug}` : `/${cleanSlug}`;
|
|
46
|
+
return `${base}${path}`;
|
|
47
|
+
}
|
|
32
48
|
/** Resolve the public site origin: explicit config first, else the current tab's origin. */
|
|
33
49
|
export function resolveSiteUrl(configSiteUrl) {
|
|
34
50
|
if (configSiteUrl && configSiteUrl.trim())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview-link.js","sourceRoot":"","sources":["../../src/lib/preview-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,UAAkB,EAClB,UAAmB;IAEnB,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,gBAAgB,EAChB;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;KAC7D,CACF,CAAA;IACD,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,gCAAgC,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAA;AACjB,CAAC;AAaD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,OAAO,EACP,SAAS,EACT,IAAI,EACJ,KAAK,GACiB;IACtB,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAA;IACjE,OAAO,GAAG,IAAI,GAAG,IAAI,YAAY,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAA;AAC9D,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,cAAc,CAAC,aAA6B;IAC1D,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,CAAA;IACtE,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;IAChE,OAAO,EAAE,CAAA;AACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"preview-link.js","sourceRoot":"","sources":["../../src/lib/preview-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,UAAkB,EAClB,UAAmB;IAEnB,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,gBAAgB,EAChB;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;KAC7D,CACF,CAAA;IACD,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,gCAAgC,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAA;AACjB,CAAC;AAaD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,OAAO,EACP,SAAS,EACT,IAAI,EACJ,KAAK,GACiB;IACtB,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAA;IACjE,OAAO,GAAG,IAAI,GAAG,IAAI,YAAY,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAA;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,EACT,IAAI,GACiC;IACrC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAChD,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACtE,OAAO,IAAI,IAAI,GAAG,CAAA;IACpB,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAA;IACjE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,CAAA;AACzB,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,cAAc,CAAC,aAA6B;IAC1D,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,CAAA;IACtE,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;IAChE,OAAO,EAAE,CAAA;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormEditor.d.ts","sourceRoot":"","sources":["../../src/views/FormEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FormEditor.d.ts","sourceRoot":"","sources":["../../src/views/FormEditor.tsx"],"names":[],"mappings":"AAwFA,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC;AAED,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,eAAe,2CAKjE"}
|
package/dist/views/FormEditor.js
CHANGED
|
@@ -1,131 +1,226 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Full-page form editor — the canonical place to configure everything about a
|
|
5
|
+
* form. Backed entirely by the typed Forms API (`lib/forms-service.ts`), the
|
|
6
|
+
* same backend as the Forms list's inline Schema pane, so the two surfaces can
|
|
7
|
+
* never drift:
|
|
8
|
+
*
|
|
9
|
+
* - Details → name / description / status + post-submit confirmation
|
|
10
|
+
* (`PATCH /forms/:id` — `successMessage` / `redirectUrl`,
|
|
11
|
+
* which the public submission pipeline actually reads)
|
|
12
|
+
* - Fields → versioned schema editor (`PUT /forms/:id/schema`)
|
|
13
|
+
* - Notifications→ shared NotificationsPanel (`/forms/:id/notifications`)
|
|
14
|
+
* - Analytics → GA4 event tracking config (persisted on the definition,
|
|
15
|
+
* exposed on the public schema, fired by `<ActuateForm>`)
|
|
16
|
+
* - Embed → shared EmbedPanel (endpoints, snippet, allowed domains)
|
|
17
|
+
* - Integrations → shared WebhooksPanel (signed CRM/Zapier webhooks)
|
|
18
|
+
*
|
|
19
|
+
* New forms get a focused create screen (details + starting fields); saving
|
|
20
|
+
* routes into this editor so notifications/embed/webhooks — which need a form
|
|
21
|
+
* id — are one click away.
|
|
22
|
+
*/
|
|
23
|
+
import * as Tabs from '@radix-ui/react-tabs';
|
|
24
|
+
import { ArrowLeft, ExternalLink, Inbox, Loader2, MessageSquare, Save } from 'lucide-react';
|
|
25
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
26
|
+
import { toast } from 'sonner';
|
|
27
|
+
import { EmbedPanel } from '../components/forms/EmbedPanel.js';
|
|
28
|
+
import { FieldsPanel } from '../components/forms/FieldsPanel.js';
|
|
29
|
+
import { NotificationsPanel } from '../components/forms/NotificationsPanel.js';
|
|
30
|
+
import { WebhooksPanel } from '../components/forms/WebhooksPanel.js';
|
|
31
|
+
import { FormStatusBadge, FormsErrorState, FormsLoading, btnPrimary, btnSecondary, } from '../components/forms/primitives.js';
|
|
7
32
|
import { Toggle } from '../components/ui/Toggle.js';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
{
|
|
14
|
-
{
|
|
15
|
-
{
|
|
16
|
-
{
|
|
17
|
-
{
|
|
18
|
-
{
|
|
19
|
-
{ value: 'hidden', label: 'Hidden' },
|
|
33
|
+
import { emitFormsChanged } from '../lib/forms-events.js';
|
|
34
|
+
import { createForm, fetchFormById, fetchFormSchema, saveFormSchema, updateForm, } from '../lib/forms-service.js';
|
|
35
|
+
import { useNavigationBlocker } from '../router/index.js';
|
|
36
|
+
const inputCls = 'border-border bg-input-background text-foreground focus-visible:ring-ring w-full rounded-lg border px-3 py-2 text-sm focus-visible:ring-2 focus-visible:outline-none';
|
|
37
|
+
const TABS = [
|
|
38
|
+
{ id: 'details', label: 'Details' },
|
|
39
|
+
{ id: 'fields', label: 'Fields' },
|
|
40
|
+
{ id: 'notifications', label: 'Notifications' },
|
|
41
|
+
{ id: 'analytics', label: 'Analytics' },
|
|
42
|
+
{ id: 'embed', label: 'Embed' },
|
|
43
|
+
{ id: 'integrations', label: 'Integrations' },
|
|
20
44
|
];
|
|
45
|
+
function detailsFromForm(form) {
|
|
46
|
+
return {
|
|
47
|
+
name: form.name,
|
|
48
|
+
description: form.description ?? '',
|
|
49
|
+
status: form.status,
|
|
50
|
+
// The submission pipeline redirects whenever redirectUrl is non-empty,
|
|
51
|
+
// otherwise it shows successMessage — mirror that decision here.
|
|
52
|
+
confirmationType: form.redirectUrl?.trim() ? 'redirect' : 'message',
|
|
53
|
+
successMessage: form.successMessage ?? '',
|
|
54
|
+
redirectUrl: form.redirectUrl ?? '',
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const DEFAULT_ANALYTICS = { enabled: false };
|
|
21
58
|
export function FormEditor({ formId, onNavigate }) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
59
|
+
if (!formId) {
|
|
60
|
+
return _jsx(NewFormEditor, { onNavigate: onNavigate });
|
|
61
|
+
}
|
|
62
|
+
return _jsx(ExistingFormEditor, { formId: formId, onNavigate: onNavigate });
|
|
63
|
+
}
|
|
64
|
+
// ─── Existing form ─────────────────────────────────────────────────────────
|
|
65
|
+
function ExistingFormEditor({ formId, onNavigate, }) {
|
|
66
|
+
const [form, setForm] = useState(null);
|
|
67
|
+
const [loading, setLoading] = useState(true);
|
|
68
|
+
const [error, setError] = useState(null);
|
|
69
|
+
const [tab, setTab] = useState('details');
|
|
70
|
+
const [details, setDetails] = useState(null);
|
|
71
|
+
const [detailsDirty, setDetailsDirty] = useState(false);
|
|
72
|
+
const [savingDetails, setSavingDetails] = useState(false);
|
|
27
73
|
const [fields, setFields] = useState([]);
|
|
28
|
-
const [
|
|
29
|
-
const [
|
|
30
|
-
const [
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
enabled: false,
|
|
38
|
-
measurementId: '',
|
|
39
|
-
submitEventName: 'form_submit',
|
|
40
|
-
startEventName: 'form_start',
|
|
41
|
-
trackAsConversion: false,
|
|
42
|
-
conversionValue: 0,
|
|
43
|
-
conversionCurrency: 'USD',
|
|
44
|
-
customParameters: {},
|
|
45
|
-
});
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
if (existingForm) {
|
|
48
|
-
const d = existingForm.data ?? existingForm;
|
|
49
|
-
setName(d.name ?? '');
|
|
50
|
-
setDescription(d.description ?? '');
|
|
51
|
-
setStatus(d.status ?? 'active');
|
|
52
|
-
if (Array.isArray(d.fields))
|
|
53
|
-
setFields(d.fields);
|
|
54
|
-
if (d.confirmation) {
|
|
55
|
-
setConfirmation((prev) => ({ ...prev, ...d.confirmation }));
|
|
56
|
-
}
|
|
57
|
-
if (d.analytics) {
|
|
58
|
-
setAnalytics((prev) => ({ ...prev, ...d.analytics }));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}, [existingForm]);
|
|
62
|
-
const addField = useCallback((type) => {
|
|
63
|
-
setFields((prev) => [
|
|
64
|
-
...prev,
|
|
65
|
-
{
|
|
66
|
-
id: crypto.randomUUID(),
|
|
67
|
-
type,
|
|
68
|
-
label: `New ${type} field`,
|
|
69
|
-
required: false,
|
|
70
|
-
},
|
|
71
|
-
]);
|
|
72
|
-
}, []);
|
|
73
|
-
const removeField = useCallback((id) => {
|
|
74
|
-
setFields((prev) => prev.filter((f) => f.id !== id));
|
|
75
|
-
}, []);
|
|
76
|
-
const updateField = useCallback((id, updates) => {
|
|
77
|
-
setFields((prev) => prev.map((f) => (f.id === id ? { ...f, ...updates } : f)));
|
|
78
|
-
}, []);
|
|
79
|
-
const moveField = useCallback((from, to) => {
|
|
80
|
-
setFields((prev) => {
|
|
81
|
-
const next = [...prev];
|
|
82
|
-
const [moved] = next.splice(from, 1);
|
|
83
|
-
next.splice(to, 0, moved);
|
|
84
|
-
return next;
|
|
85
|
-
});
|
|
86
|
-
}, []);
|
|
87
|
-
const handleSave = async () => {
|
|
88
|
-
setSaving(true);
|
|
74
|
+
const [fieldsDirty, setFieldsDirty] = useState(false);
|
|
75
|
+
const [savingFields, setSavingFields] = useState(false);
|
|
76
|
+
const [analytics, setAnalytics] = useState(DEFAULT_ANALYTICS);
|
|
77
|
+
const [analyticsDirty, setAnalyticsDirty] = useState(false);
|
|
78
|
+
const [savingAnalytics, setSavingAnalytics] = useState(false);
|
|
79
|
+
useNavigationBlocker(detailsDirty || fieldsDirty || analyticsDirty);
|
|
80
|
+
const load = useCallback(async () => {
|
|
81
|
+
setLoading(true);
|
|
82
|
+
setError(null);
|
|
89
83
|
try {
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
fields,
|
|
95
|
-
confirmation,
|
|
96
|
-
analytics: analytics.enabled ? analytics : { enabled: false },
|
|
97
|
-
};
|
|
98
|
-
if (isNew) {
|
|
99
|
-
await cmsApi('/collections/forms', {
|
|
100
|
-
method: 'POST',
|
|
101
|
-
body: JSON.stringify(payload),
|
|
102
|
-
});
|
|
84
|
+
const [loaded, schema] = await Promise.all([fetchFormById(formId), fetchFormSchema(formId)]);
|
|
85
|
+
if (!loaded) {
|
|
86
|
+
setError('Form not found');
|
|
87
|
+
return;
|
|
103
88
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
89
|
+
setForm(loaded);
|
|
90
|
+
setDetails(detailsFromForm(loaded));
|
|
91
|
+
setAnalytics(loaded.analytics ?? DEFAULT_ANALYTICS);
|
|
92
|
+
setFields(schema.fields);
|
|
93
|
+
setDetailsDirty(false);
|
|
94
|
+
setFieldsDirty(false);
|
|
95
|
+
setAnalyticsDirty(false);
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
setError(e instanceof Error ? e.message : 'Failed to load form');
|
|
111
99
|
}
|
|
112
100
|
finally {
|
|
113
|
-
|
|
101
|
+
setLoading(false);
|
|
114
102
|
}
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
};
|
|
103
|
+
}, [formId]);
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
void load();
|
|
106
|
+
}, [load]);
|
|
107
|
+
function patchDetails(patch) {
|
|
108
|
+
setDetails((cur) => (cur ? { ...cur, ...patch } : cur));
|
|
109
|
+
setDetailsDirty(true);
|
|
110
|
+
}
|
|
111
|
+
function patchAnalytics(patch) {
|
|
112
|
+
setAnalytics((cur) => ({ ...cur, ...patch }));
|
|
113
|
+
setAnalyticsDirty(true);
|
|
114
|
+
}
|
|
115
|
+
async function saveDetails() {
|
|
116
|
+
if (!details)
|
|
117
|
+
return;
|
|
118
|
+
setSavingDetails(true);
|
|
119
|
+
const res = await updateForm(formId, {
|
|
120
|
+
name: details.name,
|
|
121
|
+
description: details.description,
|
|
122
|
+
status: details.status,
|
|
123
|
+
successMessage: details.successMessage,
|
|
124
|
+
// Message mode must clear the URL — a non-empty redirectUrl always wins
|
|
125
|
+
// in the submission pipeline.
|
|
126
|
+
redirectUrl: details.confirmationType === 'redirect' ? details.redirectUrl : '',
|
|
127
|
+
});
|
|
128
|
+
setSavingDetails(false);
|
|
129
|
+
if (res.error) {
|
|
130
|
+
toast.error(res.error);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (res.data) {
|
|
134
|
+
setForm(res.data);
|
|
135
|
+
setDetails(detailsFromForm(res.data));
|
|
136
|
+
}
|
|
137
|
+
setDetailsDirty(false);
|
|
138
|
+
toast.success('Form details saved.');
|
|
139
|
+
emitFormsChanged();
|
|
140
|
+
}
|
|
141
|
+
async function saveFields() {
|
|
142
|
+
setSavingFields(true);
|
|
143
|
+
const res = await saveFormSchema(formId, fields.map((f, i) => ({ ...f, sortOrder: i })));
|
|
144
|
+
setSavingFields(false);
|
|
145
|
+
if (res.error) {
|
|
146
|
+
toast.error(res.error);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
setFieldsDirty(false);
|
|
150
|
+
toast.success('Schema saved.');
|
|
151
|
+
emitFormsChanged();
|
|
152
|
+
}
|
|
153
|
+
async function saveAnalytics() {
|
|
154
|
+
setSavingAnalytics(true);
|
|
155
|
+
const res = await updateForm(formId, { analytics });
|
|
156
|
+
setSavingAnalytics(false);
|
|
157
|
+
if (res.error) {
|
|
158
|
+
toast.error(res.error);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
if (res.data)
|
|
162
|
+
setAnalytics(res.data.analytics ?? { enabled: false });
|
|
163
|
+
setAnalyticsDirty(false);
|
|
164
|
+
toast.success('Analytics settings saved.');
|
|
165
|
+
}
|
|
119
166
|
if (loading) {
|
|
120
|
-
return (_jsx("div", { className: "
|
|
167
|
+
return (_jsx("div", { className: "max-w-4xl p-3 pr-6 sm:p-4 sm:pr-8", children: _jsx(FormsLoading, { label: "Loading form\u2026" }) }));
|
|
168
|
+
}
|
|
169
|
+
if (error || !form || !details) {
|
|
170
|
+
return (_jsx("div", { className: "max-w-4xl p-3 pr-6 sm:p-4 sm:pr-8", children: _jsx(FormsErrorState, { message: error ?? 'Form not found', onRetry: () => void load() }) }));
|
|
121
171
|
}
|
|
122
|
-
return (_jsxs("div", { className: "max-w-4xl p-3 pr-6 sm:p-4 sm:pr-8", children: [_jsxs("div", { className: "mb-6 flex items-center gap-3", children: [_jsx("button", { onClick: () => onNavigate?.('/forms'),
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
},
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
172
|
+
return (_jsxs("div", { className: "max-w-4xl p-3 pr-6 sm:p-4 sm:pr-8", children: [_jsxs("div", { className: "mb-6 flex items-center gap-3", children: [_jsx("button", { onClick: () => onNavigate?.('/forms'), "aria-label": "Back to forms", className: "hover:bg-muted focus-visible:ring-ring rounded-lg p-2 transition-colors focus-visible:ring-2 focus-visible:outline-none", children: _jsx(ArrowLeft, { className: "text-muted-foreground h-5 w-5", "aria-hidden": true }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("h1", { className: "text-foreground truncate text-xl font-medium", children: form.name }), _jsx(FormStatusBadge, { status: form.status })] }), _jsxs("p", { className: "text-muted-foreground truncate font-mono text-xs", children: ["/", form.slug] })] }), _jsxs("button", { onClick: () => onNavigate?.(`/forms/${formId}/submissions`), className: btnSecondary, children: [_jsx(Inbox, { className: "h-4 w-4", "aria-hidden": true }), "View Entries"] })] }), _jsxs(Tabs.Root, { value: tab, onValueChange: setTab, children: [_jsx(Tabs.List, { className: "border-border mb-4 flex gap-0.5 overflow-x-auto border-b", "aria-label": "Form settings sections", children: TABS.map((t) => (_jsx(Tabs.Trigger, { value: t.id, className: "text-muted-foreground hover:text-foreground focus-visible:ring-ring data-[state=active]:border-primary data-[state=active]:text-foreground -mb-px border-b-2 border-transparent px-3 py-2 text-sm font-medium whitespace-nowrap transition-colors focus-visible:ring-2 focus-visible:outline-none", children: t.label }, t.id))) }), _jsx(Tabs.Content, { value: "details", tabIndex: -1, children: _jsx(DetailsTab, { details: details, onPatch: patchDetails, onSave: () => void saveDetails(), saving: savingDetails }) }), _jsx(Tabs.Content, { value: "fields", tabIndex: -1, children: _jsxs("div", { className: "border-border bg-card space-y-4 rounded-lg border p-4", children: [_jsx(FieldsPanel, { fields: fields, onChange: (next) => {
|
|
173
|
+
setFields(next);
|
|
174
|
+
setFieldsDirty(true);
|
|
175
|
+
}, hasSubmissions: (form.totalEntries ?? 0) > 0 }), _jsx("div", { className: "flex justify-end", children: _jsxs("button", { className: btnPrimary, onClick: () => void saveFields(), disabled: savingFields || !fieldsDirty, children: [savingFields ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin", "aria-hidden": true })) : (_jsx(Save, { className: "h-4 w-4", "aria-hidden": true })), savingFields ? 'Saving…' : 'Save Schema'] }) })] }) }), _jsx(Tabs.Content, { value: "notifications", tabIndex: -1, children: _jsx("div", { className: "border-border bg-card rounded-lg border p-4", children: _jsx(NotificationsPanel, { formId: formId }) }) }), _jsx(Tabs.Content, { value: "analytics", tabIndex: -1, children: _jsx(AnalyticsTab, { analytics: analytics, onPatch: patchAnalytics, onSave: () => void saveAnalytics(), saving: savingAnalytics }) }), _jsx(Tabs.Content, { value: "embed", tabIndex: -1, children: _jsx("div", { className: "border-border bg-card rounded-lg border p-4", children: _jsx(EmbedPanel, { formId: formId, slug: form.slug, status: form.status }) }) }), _jsx(Tabs.Content, { value: "integrations", tabIndex: -1, children: _jsx("div", { className: "border-border bg-card rounded-lg border p-4", children: _jsx(WebhooksPanel, { formId: formId, formSlug: form.slug }) }) })] })] }));
|
|
176
|
+
}
|
|
177
|
+
// ─── Details tab ────────────────────────────────────────────────────────────
|
|
178
|
+
function DetailsTab({ details, onPatch, onSave, saving, }) {
|
|
179
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsx("div", { className: "border-border bg-card rounded-lg border p-4", children: _jsxs("div", { className: "grid gap-4", children: [_jsx(Field, { label: "Form Name", children: _jsx("input", { type: "text", value: details.name, onChange: (e) => onPatch({ name: e.target.value }), placeholder: "e.g. Contact Form", className: inputCls }) }), _jsx(Field, { label: "Description", children: _jsx("input", { type: "text", value: details.description, onChange: (e) => onPatch({ description: e.target.value }), placeholder: "Brief description of this form", className: inputCls }) }), _jsx(Field, { label: "Status", hint: "Only active forms accept submissions; archived forms are hidden from embed pickers.", children: _jsxs("select", { value: details.status, onChange: (e) => onPatch({ status: e.target.value }), className: "border-border bg-input-background text-foreground focus-visible:ring-ring rounded-lg border px-3 py-2 text-sm focus-visible:ring-2 focus-visible:outline-none", children: [_jsx("option", { value: "active", children: "Active" }), _jsx("option", { value: "draft", children: "Draft" }), _jsx("option", { value: "archived", children: "Archived" })] }) })] }) }), _jsxs("div", { className: "border-border bg-card rounded-lg border p-4", children: [_jsx("h2", { className: "text-foreground mb-3 text-base font-medium", children: "Confirmation" }), _jsxs("fieldset", { className: "mb-4", children: [_jsx("legend", { className: "text-foreground mb-2 block text-sm font-medium", children: "After submission" }), _jsxs("div", { className: "flex flex-wrap gap-3", children: [_jsxs("label", { className: `flex cursor-pointer items-center gap-2 rounded-lg border px-4 py-2 transition-colors ${details.confirmationType === 'message'
|
|
180
|
+
? 'border-primary bg-accent'
|
|
181
|
+
: 'border-border hover:bg-muted bg-transparent'}`, children: [_jsx("input", { type: "radio", name: "confirmationType", value: "message", checked: details.confirmationType === 'message', onChange: () => onPatch({ confirmationType: 'message' }), className: "text-primary" }), _jsx(MessageSquare, { className: "h-4 w-4", "aria-hidden": true }), _jsx("span", { className: "text-sm", children: "Show Message" })] }), _jsxs("label", { className: `flex cursor-pointer items-center gap-2 rounded-lg border px-4 py-2 transition-colors ${details.confirmationType === 'redirect'
|
|
182
|
+
? 'border-primary bg-accent'
|
|
183
|
+
: 'border-border hover:bg-muted bg-transparent'}`, children: [_jsx("input", { type: "radio", name: "confirmationType", value: "redirect", checked: details.confirmationType === 'redirect', onChange: () => onPatch({ confirmationType: 'redirect' }), className: "text-primary" }), _jsx(ExternalLink, { className: "h-4 w-4", "aria-hidden": true }), _jsx("span", { className: "text-sm", children: "Redirect to Page" })] })] })] }), details.confirmationType === 'message' ? (_jsx(Field, { label: "Success Message", children: _jsx("textarea", { value: details.successMessage, onChange: (e) => onPatch({ successMessage: e.target.value }), rows: 3, placeholder: "Thank you! Your submission has been received.", className: inputCls }) })) : (_jsx(Field, { label: "Redirect URL", children: _jsx("input", { type: "url", value: details.redirectUrl, onChange: (e) => onPatch({ redirectUrl: e.target.value }), placeholder: "https://example.com/thank-you", className: inputCls }) }))] }), _jsx("div", { className: "flex justify-end", children: _jsxs("button", { className: btnPrimary, onClick: onSave, disabled: saving || !details.name.trim(), children: [saving ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin", "aria-hidden": true })) : (_jsx(Save, { className: "h-4 w-4", "aria-hidden": true })), saving ? 'Saving…' : 'Save Details'] }) })] }));
|
|
184
|
+
}
|
|
185
|
+
// ─── Analytics tab ──────────────────────────────────────────────────────────
|
|
186
|
+
function AnalyticsTab({ analytics, onPatch, onSave, saving, }) {
|
|
187
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "border-border bg-card rounded-lg border p-4", children: [_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: "Push events to Google Analytics 4" }), _jsx("span", { className: "text-muted-foreground block text-sm", children: "Fires form start, submit, and error events on the public site." })] }), _jsx(Toggle, { checked: analytics.enabled, onCheckedChange: (v) => onPatch({ enabled: v }), "aria-label": "Push events to Google Analytics 4" })] }), analytics.enabled && (_jsxs("div", { className: "mt-4 grid gap-4", children: [_jsx(Field, { label: "GA4 Measurement ID", hint: "Leave blank to use your site's default GA4 tag", children: _jsx("input", { type: "text", value: analytics.measurementId ?? '', onChange: (e) => onPatch({ measurementId: e.target.value }), placeholder: "G-XXXXXXXXXX", className: `${inputCls} max-w-64` }) }), _jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsx(Field, { label: "Submit Event Name", children: _jsx("input", { type: "text", value: analytics.submitEventName ?? '', onChange: (e) => onPatch({ submitEventName: e.target.value }), placeholder: "form_submit", className: inputCls }) }), _jsx(Field, { label: "Start Event Name", children: _jsx("input", { type: "text", value: analytics.startEventName ?? '', onChange: (e) => onPatch({ startEventName: e.target.value }), placeholder: "form_start", className: inputCls }) })] }), _jsxs("div", { className: "border-border border-t pt-4", children: [_jsxs("div", { className: "mb-3 flex items-center gap-3", children: [_jsx("input", { type: "checkbox", id: "trackConversion", checked: analytics.trackAsConversion ?? false, onChange: (e) => onPatch({ trackAsConversion: e.target.checked }), className: "rounded" }), _jsx("label", { htmlFor: "trackConversion", className: "text-foreground text-sm font-medium", children: "Track as conversion event" })] }), analytics.trackAsConversion && (_jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsx(Field, { label: "Conversion Value", children: _jsx("input", { type: "number", value: analytics.conversionValue ?? 0, onChange: (e) => onPatch({ conversionValue: Number(e.target.value) }), min: 0, step: 0.01, className: inputCls }) }), _jsx(Field, { label: "Currency", children: _jsxs("select", { value: analytics.conversionCurrency ?? 'USD', onChange: (e) => onPatch({ conversionCurrency: e.target.value }), className: inputCls, children: [_jsx("option", { value: "USD", children: "USD" }), _jsx("option", { value: "EUR", children: "EUR" }), _jsx("option", { value: "GBP", children: "GBP" }), _jsx("option", { value: "CAD", children: "CAD" }), _jsx("option", { value: "AUD", children: "AUD" })] }) })] }))] }), _jsx("div", { className: "border-info/30 bg-info/10 rounded-lg border p-3", children: _jsxs("p", { className: "text-foreground text-xs", children: [_jsx("strong", { children: "Note:" }), " Your site must have the GA4 snippet or GTM container installed. Actuate pushes events via", ' ', _jsx("code", { className: "bg-info/10 rounded px-1", children: "gtag()" }), " /", _jsx("code", { className: "bg-info/10 rounded px-1", children: "dataLayer" }), " \u2014 it does not load the GA4 script."] }) })] }))] }), _jsx("div", { className: "flex justify-end", children: _jsxs("button", { className: btnPrimary, onClick: onSave, disabled: saving, children: [saving ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin", "aria-hidden": true })) : (_jsx(Save, { className: "h-4 w-4", "aria-hidden": true })), saving ? 'Saving…' : 'Save Analytics'] }) })] }));
|
|
188
|
+
}
|
|
189
|
+
// ─── New form ───────────────────────────────────────────────────────────────
|
|
190
|
+
function NewFormEditor({ onNavigate }) {
|
|
191
|
+
const [name, setName] = useState('');
|
|
192
|
+
const [description, setDescription] = useState('');
|
|
193
|
+
const [status, setStatus] = useState('active');
|
|
194
|
+
const [fields, setFields] = useState([]);
|
|
195
|
+
const [saving, setSaving] = useState(false);
|
|
196
|
+
const [dirty, setDirty] = useState(false);
|
|
197
|
+
useNavigationBlocker(dirty && !saving);
|
|
198
|
+
async function handleCreate() {
|
|
199
|
+
setSaving(true);
|
|
200
|
+
const res = await createForm({ name, description, status, fields });
|
|
201
|
+
setSaving(false);
|
|
202
|
+
if (res.error || !res.data) {
|
|
203
|
+
toast.error(res.error ?? 'Failed to create form');
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
setDirty(false);
|
|
207
|
+
toast.success('Form created. Configure notifications, embed, and integrations here.');
|
|
208
|
+
emitFormsChanged();
|
|
209
|
+
onNavigate?.(`/forms/${res.data.id}/edit`);
|
|
210
|
+
}
|
|
211
|
+
return (_jsxs("div", { className: "max-w-4xl p-3 pr-6 sm:p-4 sm:pr-8", children: [_jsxs("div", { className: "mb-6 flex items-center gap-3", children: [_jsx("button", { onClick: () => onNavigate?.('/forms'), "aria-label": "Back to forms", className: "hover:bg-muted focus-visible:ring-ring rounded-lg p-2 transition-colors focus-visible:ring-2 focus-visible:outline-none", children: _jsx(ArrowLeft, { className: "text-muted-foreground h-5 w-5", "aria-hidden": true }) }), _jsx("h1", { className: "text-foreground flex-1 text-xl font-medium", children: "New Form" }), _jsxs("button", { onClick: () => void handleCreate(), disabled: saving || !name.trim(), className: btnPrimary, children: [saving ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin", "aria-hidden": true })) : (_jsx(Save, { className: "h-4 w-4", "aria-hidden": true })), saving ? 'Creating…' : 'Create Form'] })] }), _jsx("div", { className: "border-border bg-card mb-4 rounded-lg border p-4", children: _jsxs("div", { className: "grid gap-4", children: [_jsx(Field, { label: "Form Name", children: _jsx("input", { type: "text", value: name, onChange: (e) => {
|
|
212
|
+
setName(e.target.value);
|
|
213
|
+
setDirty(true);
|
|
214
|
+
}, placeholder: "e.g. Contact Form", className: inputCls }) }), _jsx(Field, { label: "Description", children: _jsx("input", { type: "text", value: description, onChange: (e) => {
|
|
215
|
+
setDescription(e.target.value);
|
|
216
|
+
setDirty(true);
|
|
217
|
+
}, placeholder: "Brief description of this form", className: inputCls }) }), _jsx(Field, { label: "Status", children: _jsxs("select", { value: status, onChange: (e) => setStatus(e.target.value), className: "border-border bg-input-background text-foreground focus-visible:ring-ring rounded-lg border px-3 py-2 text-sm focus-visible:ring-2 focus-visible:outline-none", children: [_jsx("option", { value: "active", children: "Active" }), _jsx("option", { value: "draft", children: "Draft" })] }) })] }) }), _jsxs("div", { className: "border-border bg-card rounded-lg border p-4", children: [_jsx("h2", { className: "text-foreground mb-3 text-base font-medium", children: "Fields" }), _jsx(FieldsPanel, { fields: fields, onChange: (next) => {
|
|
218
|
+
setFields(next);
|
|
219
|
+
setDirty(true);
|
|
220
|
+
}, hasSubmissions: false })] }), _jsx("p", { className: "text-muted-foreground mt-4 text-sm", children: "Confirmation, notifications, analytics, embed, and integrations are configured after the form is created." })] }));
|
|
221
|
+
}
|
|
222
|
+
// ─── Shared bits ────────────────────────────────────────────────────────────
|
|
223
|
+
function Field({ label, hint, children, }) {
|
|
224
|
+
return (_jsxs("label", { className: "block", children: [_jsx("span", { className: "text-foreground mb-1 block text-sm font-medium", children: label }), children, hint && _jsx("span", { className: "text-muted-foreground mt-1 block text-xs", children: hint })] }));
|
|
130
225
|
}
|
|
131
226
|
//# sourceMappingURL=FormEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormEditor.js","sourceRoot":"","sources":["../../src/views/FormEditor.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FormEditor.js","sourceRoot":"","sources":["../../src/views/FormEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AACpE,OAAO,EACL,eAAe,EACf,eAAe,EACf,YAAY,EACZ,UAAU,EACV,YAAY,GACb,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,cAAc,EACd,UAAU,GAKX,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEzD,MAAM,QAAQ,GACZ,sKAAsK,CAAA;AAExK,MAAM,IAAI,GAAG;IACX,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACnC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACjC,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IACvC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAC/B,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;CACrC,CAAA;AAWV,SAAS,eAAe,CAAC,IAAoB;IAC3C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;QACnC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,uEAAuE;QACvE,iEAAiE;QACjE,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACnE,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,EAAE;QACzC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;KACpC,CAAA;AACH,CAAC;AAED,MAAM,iBAAiB,GAAwB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAOjE,MAAM,UAAU,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAmB;IAChE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAC,aAAa,IAAC,UAAU,EAAE,UAAU,GAAI,CAAA;IAClD,CAAC;IACD,OAAO,KAAC,kBAAkB,IAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAI,CAAA;AACvE,CAAC;AAED,8EAA8E;AAE9E,SAAS,kBAAkB,CAAC,EAC1B,MAAM,EACN,UAAU,GAIX;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAA;IAC7D,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,CAAS,SAAS,CAAC,CAAA;IAEjD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,CAAA;IACjE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC,CAAA;IACrD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEvD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAsB,iBAAiB,CAAC,CAAA;IAClF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7D,oBAAoB,CAAC,YAAY,IAAI,WAAW,IAAI,cAAc,CAAC,CAAA;IAEnE,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAClC,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAC5F,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,gBAAgB,CAAC,CAAA;gBAC1B,OAAM;YACR,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,CAAA;YACf,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAA;YACnC,YAAY,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC,CAAA;YACnD,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACxB,eAAe,CAAC,KAAK,CAAC,CAAA;YACtB,cAAc,CAAC,KAAK,CAAC,CAAA;YACrB,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAA;QAClE,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,IAAI,EAAE,CAAA;IACb,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,SAAS,YAAY,CAAC,KAA4B;QAChD,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACvD,eAAe,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,SAAS,cAAc,CAAC,KAAmC;QACzD,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;QAC7C,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,UAAU,WAAW;QACxB,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACtB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,wEAAwE;YACxE,8BAA8B;YAC9B,WAAW,EAAE,OAAO,CAAC,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;SAChF,CAAC,CAAA;QACF,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACvB,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,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACjB,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACvC,CAAC;QACD,eAAe,CAAC,KAAK,CAAC,CAAA;QACtB,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QACpC,gBAAgB,EAAE,CAAA;IACpB,CAAC;IAED,KAAK,UAAU,UAAU;QACvB,eAAe,CAAC,IAAI,CAAC,CAAA;QACrB,MAAM,GAAG,GAAG,MAAM,cAAc,CAC9B,MAAM,EACN,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAC/C,CAAA;QACD,eAAe,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACtB,OAAM;QACR,CAAC;QACD,cAAc,CAAC,KAAK,CAAC,CAAA;QACrB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QAC9B,gBAAgB,EAAE,CAAA;IACpB,CAAC;IAED,KAAK,UAAU,aAAa;QAC1B,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACxB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;QACnD,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACzB,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;YAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QACpE,iBAAiB,CAAC,KAAK,CAAC,CAAA;QACxB,KAAK,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,cAAK,SAAS,EAAC,mCAAmC,YAChD,KAAC,YAAY,IAAC,KAAK,EAAC,oBAAe,GAAG,GAClC,CACP,CAAA;IACH,CAAC;IAED,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO,CACL,cAAK,SAAS,EAAC,mCAAmC,YAChD,KAAC,eAAe,IAAC,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,GAAI,GAC/E,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAK,SAAS,EAAC,8BAA8B,aAC3C,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,gBAC1B,eAAe,EAC1B,SAAS,EAAC,yHAAyH,YAEnI,KAAC,SAAS,IAAC,SAAS,EAAC,+BAA+B,wBAAe,GAC5D,EACT,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAK,SAAS,EAAC,yBAAyB,aACtC,aAAI,SAAS,EAAC,8CAA8C,YAAE,IAAI,CAAC,IAAI,GAAM,EAC7E,KAAC,eAAe,IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAI,IACpC,EACN,aAAG,SAAS,EAAC,kDAAkD,kBAAG,IAAI,CAAC,IAAI,IAAK,IAC5E,EACN,kBACE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,MAAM,cAAc,CAAC,EAC3D,SAAS,EAAE,YAAY,aAEvB,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,wBAAe,oBAElC,IACL,EAEN,MAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,aAC1C,KAAC,IAAI,CAAC,IAAI,IACR,SAAS,EAAC,0DAA0D,gBACzD,wBAAwB,YAElC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACf,KAAC,IAAI,CAAC,OAAO,IAEX,KAAK,EAAE,CAAC,CAAC,EAAE,EACX,SAAS,EAAC,mSAAmS,YAE5S,CAAC,CAAC,KAAK,IAJH,CAAC,CAAC,EAAE,CAKI,CAChB,CAAC,GACQ,EAEZ,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAE,CAAC,CAAC,YACxC,KAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,WAAW,EAAE,EAChC,MAAM,EAAE,aAAa,GACrB,GACW,EAEf,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,CAAC,YACvC,eAAK,SAAS,EAAC,uDAAuD,aACpE,KAAC,WAAW,IACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;wCACjB,SAAS,CAAC,IAAI,CAAC,CAAA;wCACf,cAAc,CAAC,IAAI,CAAC,CAAA;oCACtB,CAAC,EACD,cAAc,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,GAC5C,EACF,cAAK,SAAS,EAAC,kBAAkB,YAC/B,kBACE,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,UAAU,EAAE,EAChC,QAAQ,EAAE,YAAY,IAAI,CAAC,WAAW,aAErC,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,OAAO,IAAC,SAAS,EAAC,sBAAsB,wBAAe,CACzD,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,wBAAe,CACzC,EACA,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,IAClC,GACL,IACF,GACO,EAEf,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,eAAe,EAAC,QAAQ,EAAE,CAAC,CAAC,YAC9C,cAAK,SAAS,EAAC,6CAA6C,YAC1D,KAAC,kBAAkB,IAAC,MAAM,EAAE,MAAM,GAAI,GAClC,GACO,EAEf,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAE,CAAC,CAAC,YAC1C,KAAC,YAAY,IACX,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,aAAa,EAAE,EAClC,MAAM,EAAE,eAAe,GACvB,GACW,EAEf,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAE,CAAC,CAAC,YACtC,cAAK,SAAS,EAAC,6CAA6C,YAC1D,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,GAAI,GAChE,GACO,EAEf,KAAC,IAAI,CAAC,OAAO,IAAC,KAAK,EAAC,cAAc,EAAC,QAAQ,EAAE,CAAC,CAAC,YAC7C,cAAK,SAAS,EAAC,6CAA6C,YAC1D,KAAC,aAAa,IAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAI,GAClD,GACO,IACL,IACR,CACP,CAAA;AACH,CAAC;AAED,+EAA+E;AAE/E,SAAS,UAAU,CAAC,EAClB,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,GAMP;IACC,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,cAAK,SAAS,EAAC,6CAA6C,YAC1D,eAAK,SAAS,EAAC,YAAY,aACzB,KAAC,KAAK,IAAC,KAAK,EAAC,WAAW,YACtB,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,OAAO,CAAC,IAAI,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAClD,WAAW,EAAC,mBAAmB,EAC/B,SAAS,EAAE,QAAQ,GACnB,GACI,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,aAAa,YACxB,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,OAAO,CAAC,WAAW,EAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EACzD,WAAW,EAAC,gCAAgC,EAC5C,SAAS,EAAE,QAAQ,GACnB,GACI,EACR,KAAC,KAAK,IACJ,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,qFAAqF,YAE1F,kBACE,KAAK,EAAE,OAAO,CAAC,MAAM,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAmB,EAAE,CAAC,EAClE,SAAS,EAAC,+JAA+J,aAEzK,iBAAQ,KAAK,EAAC,QAAQ,uBAAgB,EACtC,iBAAQ,KAAK,EAAC,OAAO,sBAAe,EACpC,iBAAQ,KAAK,EAAC,UAAU,yBAAkB,IACnC,GACH,IACJ,GACF,EAEN,eAAK,SAAS,EAAC,6CAA6C,aAC1D,aAAI,SAAS,EAAC,4CAA4C,6BAAkB,EAC5E,oBAAU,SAAS,EAAC,MAAM,aACxB,iBAAQ,SAAS,EAAC,gDAAgD,iCAEzD,EACT,eAAK,SAAS,EAAC,sBAAsB,aACnC,iBACE,SAAS,EAAE,wFACT,OAAO,CAAC,gBAAgB,KAAK,SAAS;4CACpC,CAAC,CAAC,0BAA0B;4CAC5B,CAAC,CAAC,6CACN,EAAE,aAEF,gBACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,kBAAkB,EACvB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAC/C,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,EACxD,SAAS,EAAC,cAAc,GACxB,EACF,KAAC,aAAa,IAAC,SAAS,EAAC,SAAS,wBAAe,EACjD,eAAM,SAAS,EAAC,SAAS,6BAAoB,IACvC,EACR,iBACE,SAAS,EAAE,wFACT,OAAO,CAAC,gBAAgB,KAAK,UAAU;4CACrC,CAAC,CAAC,0BAA0B;4CAC5B,CAAC,CAAC,6CACN,EAAE,aAEF,gBACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,kBAAkB,EACvB,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,OAAO,CAAC,gBAAgB,KAAK,UAAU,EAChD,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,EACzD,SAAS,EAAC,cAAc,GACxB,EACF,KAAC,YAAY,IAAC,SAAS,EAAC,SAAS,wBAAe,EAChD,eAAM,SAAS,EAAC,SAAS,iCAAwB,IAC3C,IACJ,IACG,EAEV,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,CACxC,KAAC,KAAK,IAAC,KAAK,EAAC,iBAAiB,YAC5B,mBACE,KAAK,EAAE,OAAO,CAAC,cAAc,EAC7B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAC5D,IAAI,EAAE,CAAC,EACP,WAAW,EAAC,+CAA+C,EAC3D,SAAS,EAAE,QAAQ,GACnB,GACI,CACT,CAAC,CAAC,CAAC,CACF,KAAC,KAAK,IAAC,KAAK,EAAC,cAAc,YACzB,gBACE,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,OAAO,CAAC,WAAW,EAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EACzD,WAAW,EAAC,+BAA+B,EAC3C,SAAS,EAAE,QAAQ,GACnB,GACI,CACT,IACG,EAEN,cAAK,SAAS,EAAC,kBAAkB,YAC/B,kBAAQ,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,aACrF,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,OAAO,IAAC,SAAS,EAAC,sBAAsB,wBAAe,CACzD,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,wBAAe,CACzC,EACA,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,IAC7B,GACL,IACF,CACP,CAAA;AACH,CAAC;AAED,+EAA+E;AAE/E,SAAS,YAAY,CAAC,EACpB,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,GAMP;IACC,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,6CAA6C,aAC1D,eAAK,SAAS,EAAC,yCAAyC,aACtD,gBAAM,SAAS,EAAC,SAAS,aACvB,eAAM,SAAS,EAAC,2CAA2C,kDAEpD,EACP,eAAM,SAAS,EAAC,qCAAqC,+EAE9C,IACF,EACP,KAAC,MAAM,IACL,OAAO,EAAE,SAAS,CAAC,OAAO,EAC1B,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,gBACpC,mCAAmC,GAC9C,IACE,EAEL,SAAS,CAAC,OAAO,IAAI,CACpB,eAAK,SAAS,EAAC,iBAAiB,aAC9B,KAAC,KAAK,IAAC,KAAK,EAAC,oBAAoB,EAAC,IAAI,EAAC,gDAAgD,YACrF,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,SAAS,CAAC,aAAa,IAAI,EAAE,EACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAC3D,WAAW,EAAC,cAAc,EAC1B,SAAS,EAAE,GAAG,QAAQ,WAAW,GACjC,GACI,EAER,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,KAAK,IAAC,KAAK,EAAC,mBAAmB,YAC9B,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,SAAS,CAAC,eAAe,IAAI,EAAE,EACtC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAC7D,WAAW,EAAC,aAAa,EACzB,SAAS,EAAE,QAAQ,GACnB,GACI,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,kBAAkB,YAC7B,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,SAAS,CAAC,cAAc,IAAI,EAAE,EACrC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAC5D,WAAW,EAAC,YAAY,EACxB,SAAS,EAAE,QAAQ,GACnB,GACI,IACJ,EAEN,eAAK,SAAS,EAAC,6BAA6B,aAC1C,eAAK,SAAS,EAAC,8BAA8B,aAC3C,gBACE,IAAI,EAAC,UAAU,EACf,EAAE,EAAC,iBAAiB,EACpB,OAAO,EAAE,SAAS,CAAC,iBAAiB,IAAI,KAAK,EAC7C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EACjE,SAAS,EAAC,SAAS,GACnB,EACF,gBAAO,OAAO,EAAC,iBAAiB,EAAC,SAAS,EAAC,qCAAqC,0CAExE,IACJ,EAEL,SAAS,CAAC,iBAAiB,IAAI,CAC9B,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,KAAK,IAAC,KAAK,EAAC,kBAAkB,YAC7B,gBACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,SAAS,CAAC,eAAe,IAAI,CAAC,EACrC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACrE,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,QAAQ,GACnB,GACI,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,UAAU,YACrB,kBACE,KAAK,EAAE,SAAS,CAAC,kBAAkB,IAAI,KAAK,EAC5C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAChE,SAAS,EAAE,QAAQ,aAEnB,iBAAQ,KAAK,EAAC,KAAK,oBAAa,EAChC,iBAAQ,KAAK,EAAC,KAAK,oBAAa,EAChC,iBAAQ,KAAK,EAAC,KAAK,oBAAa,EAChC,iBAAQ,KAAK,EAAC,KAAK,oBAAa,EAChC,iBAAQ,KAAK,EAAC,KAAK,oBAAa,IACzB,GACH,IACJ,CACP,IACG,EAEN,cAAK,SAAS,EAAC,iDAAiD,YAC9D,aAAG,SAAS,EAAC,yBAAyB,aACpC,qCAAsB,gGACe,GAAG,EACxC,eAAM,SAAS,EAAC,yBAAyB,uBAAc,QACvD,eAAM,SAAS,EAAC,yBAAyB,0BAAiB,gDAExD,GACA,IACF,CACP,IACG,EAEN,cAAK,SAAS,EAAC,kBAAkB,YAC/B,kBAAQ,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAC7D,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,OAAO,IAAC,SAAS,EAAC,sBAAsB,wBAAe,CACzD,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,wBAAe,CACzC,EACA,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAC/B,GACL,IACF,CACP,CAAA;AACH,CAAC;AAED,+EAA+E;AAE/E,SAAS,aAAa,CAAC,EAAE,UAAU,EAA2C;IAC5E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACpC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAa,QAAQ,CAAC,CAAA;IAC1D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC,CAAA;IACrD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzC,oBAAoB,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAA;IAEtC,KAAK,UAAU,YAAY;QACzB,SAAS,CAAC,IAAI,CAAC,CAAA;QACf,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACnE,SAAS,CAAC,KAAK,CAAC,CAAA;QAChB,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,uBAAuB,CAAC,CAAA;YACjD,OAAM;QACR,CAAC;QACD,QAAQ,CAAC,KAAK,CAAC,CAAA;QACf,KAAK,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAA;QACrF,gBAAgB,EAAE,CAAA;QAClB,UAAU,EAAE,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAK,SAAS,EAAC,8BAA8B,aAC3C,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,gBAC1B,eAAe,EAC1B,SAAS,EAAC,yHAAyH,YAEnI,KAAC,SAAS,IAAC,SAAS,EAAC,+BAA+B,wBAAe,GAC5D,EACT,aAAI,SAAS,EAAC,4CAA4C,yBAAc,EACxE,kBACE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,YAAY,EAAE,EAClC,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAChC,SAAS,EAAE,UAAU,aAEpB,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,OAAO,IAAC,SAAS,EAAC,sBAAsB,wBAAe,CACzD,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,wBAAe,CACzC,EACA,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,IAC9B,IACL,EAEN,cAAK,SAAS,EAAC,kDAAkD,YAC/D,eAAK,SAAS,EAAC,YAAY,aACzB,KAAC,KAAK,IAAC,KAAK,EAAC,WAAW,YACtB,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oCACd,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oCACvB,QAAQ,CAAC,IAAI,CAAC,CAAA;gCAChB,CAAC,EACD,WAAW,EAAC,mBAAmB,EAC/B,SAAS,EAAE,QAAQ,GACnB,GACI,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,aAAa,YACxB,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oCACd,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oCAC9B,QAAQ,CAAC,IAAI,CAAC,CAAA;gCAChB,CAAC,EACD,WAAW,EAAC,gCAAgC,EAC5C,SAAS,EAAE,QAAQ,GACnB,GACI,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,QAAQ,YACnB,kBACE,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAmB,CAAC,EACxD,SAAS,EAAC,+JAA+J,aAEzK,iBAAQ,KAAK,EAAC,QAAQ,uBAAgB,EACtC,iBAAQ,KAAK,EAAC,OAAO,sBAAe,IAC7B,GACH,IACJ,GACF,EAEN,eAAK,SAAS,EAAC,6CAA6C,aAC1D,aAAI,SAAS,EAAC,4CAA4C,uBAAY,EACtE,KAAC,WAAW,IACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;4BACjB,SAAS,CAAC,IAAI,CAAC,CAAA;4BACf,QAAQ,CAAC,IAAI,CAAC,CAAA;wBAChB,CAAC,EACD,cAAc,EAAE,KAAK,GACrB,IACE,EAEN,YAAG,SAAS,EAAC,oCAAoC,0HAG7C,IACA,CACP,CAAA;AACH,CAAC;AAED,+EAA+E;AAE/E,SAAS,KAAK,CAAC,EACb,KAAK,EACL,IAAI,EACJ,QAAQ,GAKT;IACC,OAAO,CACL,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAC,gDAAgD,YAAE,KAAK,GAAQ,EAC9E,QAAQ,EACR,IAAI,IAAI,eAAM,SAAS,EAAC,0CAA0C,YAAE,IAAI,GAAQ,IAC3E,CACT,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorTopBar.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/EditorTopBar.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;AAE7D,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,EAAE,UAAU,CAAA;IACpB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,qFAAqF;IACrF,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AAgBD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAmB,EACnB,qBAAqB,EACrB,QAAQ,EACR,SAAmB,EACnB,UAAU,EACV,MAAM,EACN,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,OAAe,EACf,QAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,EACV,aAAoB,EACpB,WAAkB,EAClB,oBAA2B,EAC3B,eAAoB,GACrB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"EditorTopBar.d.ts","sourceRoot":"","sources":["../../../src/views/page-editor/EditorTopBar.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;AAE7D,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,EAAE,UAAU,CAAA;IACpB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,qFAAqF;IACrF,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AAgBD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,KAAK,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAmB,EACnB,qBAAqB,EACrB,QAAQ,EACR,SAAmB,EACnB,UAAU,EACV,MAAM,EACN,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,OAAe,EACf,QAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,EACV,aAAoB,EACpB,WAAkB,EAClB,oBAA2B,EAC3B,eAAoB,GACrB,EAAE,iBAAiB,2CAuPnB"}
|
|
@@ -24,6 +24,9 @@ export function EditorTopBar({ title, status, dirty, saveState, publishing, canE
|
|
|
24
24
|
const previewLabel = structural
|
|
25
25
|
? 'Preview structure (custom sections show placeholders)'
|
|
26
26
|
: 'Preview page';
|
|
27
|
+
// For a published document the external-link button opens the LIVE page (no
|
|
28
|
+
// preview token); otherwise it opens a token-gated preview of the draft.
|
|
29
|
+
const isLive = status === 'PUBLISHED';
|
|
27
30
|
const publishBlocked = !canPublish || !publishReady || publishing || saveState === 'saving';
|
|
28
31
|
const publishTitle = publishing
|
|
29
32
|
? 'Publishing…'
|
|
@@ -66,7 +69,9 @@ export function EditorTopBar({ title, status, dirty, saveState, publishing, canE
|
|
|
66
69
|
: 'Inline site preview — render the draft through your public site, in place', className: `rounded-lg p-2 transition-colors ${sitePreview
|
|
67
70
|
? 'bg-primary text-primary-foreground'
|
|
68
71
|
: 'text-muted-foreground hover:text-foreground hover:bg-accent'}`, children: _jsx(Globe, { className: "h-4 w-4", "aria-hidden": true }) })), onViewOnSite &&
|
|
69
|
-
(structural ? (_jsxs("button", { type: "button", onClick: onViewOnSite, title:
|
|
72
|
+
(structural ? (_jsxs("button", { type: "button", onClick: onViewOnSite, title: isLive
|
|
73
|
+
? 'Open the live published page in a new tab'
|
|
74
|
+
: 'Open the draft on your public site — the real design preview', className: "border-border text-foreground hover:bg-accent inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-colors", children: [_jsx(ExternalLink, { className: "h-3.5 w-3.5", "aria-hidden": true }), isLive ? 'View live' : 'View on site'] })) : (_jsx("button", { type: "button", onClick: onViewOnSite, "aria-label": isLive ? 'View live page' : 'View draft on site', title: isLive ? 'View live page' : 'View draft on site', className: "text-muted-foreground hover:text-foreground hover:bg-accent rounded-lg p-2", children: _jsx(ExternalLink, { className: "h-4 w-4", "aria-hidden": true }) }))), _jsx("button", { type: "button", onClick: onSaveDraft, disabled: !canEdit || saveState === 'saving' || (!dirty && saveState !== 'error'), className: "border-border text-foreground hover:bg-accent rounded-lg border px-3 py-1.5 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: saveState === 'saving' ? 'Saving…' : 'Save Draft' }), onSchedule && (_jsxs("button", { type: "button", onClick: onSchedule, disabled: scheduleBlocked, title: scheduleTitle, "aria-label": scheduledAt ? 'Reschedule publish' : 'Schedule publish', className: "border-border text-foreground hover:bg-accent inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: [_jsx(Calendar, { className: "h-3.5 w-3.5", "aria-hidden": true }), _jsx("span", { className: "hidden sm:inline", children: scheduledAt ? 'Reschedule' : 'Schedule' })] })), _jsxs("button", { type: "button", onClick: onPublish, disabled: publishBlocked, title: publishTitle, "aria-disabled": publishBlocked, className: "bg-primary text-primary-foreground hover:bg-primary/90 inline-flex items-center gap-1.5 rounded-lg px-3.5 py-1.5 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50", children: [publishing && _jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin", "aria-hidden": true }), "Publish"] })] })] }));
|
|
70
75
|
}
|
|
71
76
|
function SaveStatus({ state, dirty }) {
|
|
72
77
|
if (state === 'saving') {
|