canopycms 0.0.61-int.74 → 0.0.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/handler.js +1 -1
- package/dist/ai/handler.js.map +1 -1
- package/dist/api/assets.d.ts.map +1 -1
- package/dist/api/assets.js +36 -4
- package/dist/api/assets.js.map +1 -1
- package/dist/api/branch-status.d.ts.map +1 -1
- package/dist/api/branch-status.js +56 -0
- package/dist/api/branch-status.js.map +1 -1
- package/dist/api/branch-withdraw.d.ts.map +1 -1
- package/dist/api/branch-withdraw.js +14 -3
- package/dist/api/branch-withdraw.js.map +1 -1
- package/dist/api/branch.d.ts +31 -2
- package/dist/api/branch.d.ts.map +1 -1
- package/dist/api/branch.js +252 -13
- package/dist/api/branch.js.map +1 -1
- package/dist/api/content.d.ts.map +1 -1
- package/dist/api/content.js +12 -4
- package/dist/api/content.js.map +1 -1
- package/dist/api/entries.d.ts.map +1 -1
- package/dist/api/entries.js +11 -9
- package/dist/api/entries.js.map +1 -1
- package/dist/api/guards.d.ts.map +1 -1
- package/dist/api/guards.js +12 -5
- package/dist/api/guards.js.map +1 -1
- package/dist/api/permissions.d.ts +2 -2
- package/dist/api/permissions.d.ts.map +1 -1
- package/dist/api/permissions.js +51 -3
- package/dist/api/permissions.js.map +1 -1
- package/dist/api/reference-options.d.ts.map +1 -1
- package/dist/api/reference-options.js +10 -17
- package/dist/api/reference-options.js.map +1 -1
- package/dist/api/resolve-references.d.ts.map +1 -1
- package/dist/api/resolve-references.js +3 -1
- package/dist/api/resolve-references.js.map +1 -1
- package/dist/api/schema.d.ts.map +1 -1
- package/dist/api/schema.js +3 -2
- package/dist/api/schema.js.map +1 -1
- package/dist/api/settings-helpers.d.ts.map +1 -1
- package/dist/api/settings-helpers.js +6 -5
- package/dist/api/settings-helpers.js.map +1 -1
- package/dist/assets/pipeline.d.ts +11 -2
- package/dist/assets/pipeline.d.ts.map +1 -1
- package/dist/assets/pipeline.js +114 -2
- package/dist/assets/pipeline.js.map +1 -1
- package/dist/assets/transform-directives.d.ts +18 -0
- package/dist/assets/transform-directives.d.ts.map +1 -1
- package/dist/assets/transform-directives.js +18 -0
- package/dist/assets/transform-directives.js.map +1 -1
- package/dist/assets/transform.d.ts.map +1 -1
- package/dist/assets/transform.js +1 -10
- package/dist/assets/transform.js.map +1 -1
- package/dist/auth/types.d.ts +29 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +1 -1
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +1 -1
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/protected-branch.d.ts +75 -0
- package/dist/authorization/protected-branch.d.ts.map +1 -1
- package/dist/authorization/protected-branch.js +39 -0
- package/dist/authorization/protected-branch.js.map +1 -1
- package/dist/branch-registry.d.ts.map +1 -1
- package/dist/branch-registry.js +5 -1
- package/dist/branch-registry.js.map +1 -1
- package/dist/branch-schema-cache.d.ts.map +1 -1
- package/dist/branch-schema-cache.js +9 -0
- package/dist/branch-schema-cache.js.map +1 -1
- package/dist/build/generate-ai-content.js +1 -1
- package/dist/build/generate-ai-content.js.map +1 -1
- package/dist/cli/cli.js +1442 -828
- package/dist/cli/generate-ai-content.js +404 -136
- package/dist/cli/init.d.ts +8 -2
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +440 -151
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/project-detect.d.ts +89 -0
- package/dist/cli/project-detect.d.ts.map +1 -0
- package/dist/cli/project-detect.js +240 -0
- package/dist/cli/project-detect.js.map +1 -0
- package/dist/cli/template-files/Dockerfile.cms.template +11 -6
- package/dist/cli/template-files/cdk-app.ts.template +82 -0
- package/dist/cli/template-files/cdk.json.template +9 -0
- package/dist/cli/template-files/cms-stack.ts.template +124 -0
- package/dist/cli/template-files/deploy-cms.yml.template +125 -13
- package/dist/cli/template-files/dockerignore.template +2 -1
- package/dist/cli/templates.d.ts +26 -2
- package/dist/cli/templates.d.ts.map +1 -1
- package/dist/cli/templates.js +36 -4
- package/dist/cli/templates.js.map +1 -1
- package/dist/config/schemas/config.d.ts +2 -3
- package/dist/config/schemas/config.d.ts.map +1 -1
- package/dist/config/schemas/config.js +21 -1
- package/dist/config/schemas/config.js.map +1 -1
- package/dist/config/validation.d.ts +9 -0
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +22 -12
- package/dist/config/validation.js.map +1 -1
- package/dist/content-reader.js +1 -1
- package/dist/content-reader.js.map +1 -1
- package/dist/content-store.d.ts +11 -0
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +2 -1
- package/dist/content-store.js.map +1 -1
- package/dist/dev-content-watcher.d.ts.map +1 -1
- package/dist/dev-content-watcher.js +4 -1
- package/dist/dev-content-watcher.js.map +1 -1
- package/dist/editor/BranchManager.d.ts +15 -0
- package/dist/editor/BranchManager.d.ts.map +1 -1
- package/dist/editor/BranchManager.js +43 -9
- package/dist/editor/BranchManager.js.map +1 -1
- package/dist/editor/CanopyEditor.d.ts.map +1 -1
- package/dist/editor/CanopyEditor.js +2 -2
- package/dist/editor/CanopyEditor.js.map +1 -1
- package/dist/editor/Editor.d.ts.map +1 -1
- package/dist/editor/Editor.js +110 -48
- package/dist/editor/Editor.js.map +1 -1
- package/dist/editor/admin/SystemHealthPanel.d.ts.map +1 -1
- package/dist/editor/admin/SystemHealthPanel.js +9 -8
- package/dist/editor/admin/SystemHealthPanel.js.map +1 -1
- package/dist/editor/components/EditorHeader.d.ts +6 -0
- package/dist/editor/components/EditorHeader.d.ts.map +1 -1
- package/dist/editor/components/EditorHeader.js +76 -23
- package/dist/editor/components/EditorHeader.js.map +1 -1
- package/dist/editor/components/EntryCreateModal.d.ts.map +1 -1
- package/dist/editor/components/EntryCreateModal.js +21 -6
- package/dist/editor/components/EntryCreateModal.js.map +1 -1
- package/dist/editor/context/SWRProvider.d.ts +31 -0
- package/dist/editor/context/SWRProvider.d.ts.map +1 -0
- package/dist/editor/context/SWRProvider.js +12 -0
- package/dist/editor/context/SWRProvider.js.map +1 -0
- package/dist/editor/context/index.d.ts +3 -0
- package/dist/editor/context/index.d.ts.map +1 -1
- package/dist/editor/context/index.js +3 -0
- package/dist/editor/context/index.js.map +1 -1
- package/dist/editor/editor-utils.d.ts.map +1 -1
- package/dist/editor/editor-utils.js +8 -2
- package/dist/editor/editor-utils.js.map +1 -1
- package/dist/editor/fields/ImageField.d.ts.map +1 -1
- package/dist/editor/fields/ImageField.js +27 -3
- package/dist/editor/fields/ImageField.js.map +1 -1
- package/dist/editor/fields/ReferenceField.d.ts.map +1 -1
- package/dist/editor/fields/ReferenceField.js +52 -31
- package/dist/editor/fields/ReferenceField.js.map +1 -1
- package/dist/editor/hooks/__test__/test-utils.d.ts +38 -3
- package/dist/editor/hooks/__test__/test-utils.d.ts.map +1 -1
- package/dist/editor/hooks/__test__/test-utils.js +50 -4
- package/dist/editor/hooks/__test__/test-utils.js.map +1 -1
- package/dist/editor/hooks/index.d.ts +4 -1
- package/dist/editor/hooks/index.d.ts.map +1 -1
- package/dist/editor/hooks/index.js +4 -1
- package/dist/editor/hooks/index.js.map +1 -1
- package/dist/editor/hooks/useBranchManager.d.ts +21 -1
- package/dist/editor/hooks/useBranchManager.d.ts.map +1 -1
- package/dist/editor/hooks/useBranchManager.js +68 -32
- package/dist/editor/hooks/useBranchManager.js.map +1 -1
- package/dist/editor/hooks/useBranchesData.d.ts +57 -0
- package/dist/editor/hooks/useBranchesData.d.ts.map +1 -0
- package/dist/editor/hooks/useBranchesData.js +69 -0
- package/dist/editor/hooks/useBranchesData.js.map +1 -0
- package/dist/editor/hooks/useCommentSystem.d.ts.map +1 -1
- package/dist/editor/hooks/useCommentSystem.js +24 -22
- package/dist/editor/hooks/useCommentSystem.js.map +1 -1
- package/dist/editor/hooks/useCommentsData.d.ts +29 -0
- package/dist/editor/hooks/useCommentsData.d.ts.map +1 -0
- package/dist/editor/hooks/useCommentsData.js +40 -0
- package/dist/editor/hooks/useCommentsData.js.map +1 -0
- package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
- package/dist/editor/hooks/useDraftManager.js +32 -18
- package/dist/editor/hooks/useDraftManager.js.map +1 -1
- package/dist/editor/hooks/useEntriesData.d.ts +35 -0
- package/dist/editor/hooks/useEntriesData.d.ts.map +1 -0
- package/dist/editor/hooks/useEntriesData.js +96 -0
- package/dist/editor/hooks/useEntriesData.js.map +1 -0
- package/dist/editor/hooks/useEntryManager.d.ts +8 -15
- package/dist/editor/hooks/useEntryManager.d.ts.map +1 -1
- package/dist/editor/hooks/useEntryManager.js +259 -117
- package/dist/editor/hooks/useEntryManager.js.map +1 -1
- package/dist/editor/hooks/usePermissionManager.d.ts +2 -2
- package/dist/editor/hooks/usePermissionManager.d.ts.map +1 -1
- package/dist/editor/hooks/usePermissionManager.js +11 -9
- package/dist/editor/hooks/usePermissionManager.js.map +1 -1
- package/dist/editor/hooks/useReferenceResolution.d.ts.map +1 -1
- package/dist/editor/hooks/useReferenceResolution.js +24 -1
- package/dist/editor/hooks/useReferenceResolution.js.map +1 -1
- package/dist/editor/media/MediaLibraryBody.d.ts.map +1 -1
- package/dist/editor/media/MediaLibraryBody.js +12 -2
- package/dist/editor/media/MediaLibraryBody.js.map +1 -1
- package/dist/editor/permission-manager/GroupSelector.d.ts.map +1 -1
- package/dist/editor/permission-manager/GroupSelector.js +7 -2
- package/dist/editor/permission-manager/GroupSelector.js.map +1 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts +3 -3
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts.map +1 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js +1 -0
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js.map +1 -1
- package/dist/editor/permission-manager/types.d.ts +6 -4
- package/dist/editor/permission-manager/types.d.ts.map +1 -1
- package/dist/editor/test-setup.js +8 -0
- package/dist/editor/test-setup.js.map +1 -1
- package/dist/git-manager.d.ts +126 -9
- package/dist/git-manager.d.ts.map +1 -1
- package/dist/git-manager.js +251 -27
- package/dist/git-manager.js.map +1 -1
- package/dist/github-service.d.ts.map +1 -1
- package/dist/github-service.js +13 -7
- package/dist/github-service.js.map +1 -1
- package/dist/http/handler.d.ts.map +1 -1
- package/dist/http/handler.js +8 -2
- package/dist/http/handler.js.map +1 -1
- package/dist/operating-mode/client-unsafe-strategy.d.ts.map +1 -1
- package/dist/operating-mode/client-unsafe-strategy.js +7 -8
- package/dist/operating-mode/client-unsafe-strategy.js.map +1 -1
- package/dist/operating-mode/deployment-name.d.ts +28 -0
- package/dist/operating-mode/deployment-name.d.ts.map +1 -0
- package/dist/operating-mode/deployment-name.js +78 -0
- package/dist/operating-mode/deployment-name.js.map +1 -0
- package/dist/operating-mode/index.d.ts +5 -1
- package/dist/operating-mode/index.d.ts.map +1 -1
- package/dist/operating-mode/index.js +7 -1
- package/dist/operating-mode/index.js.map +1 -1
- package/dist/operating-mode/types.d.ts +13 -3
- package/dist/operating-mode/types.d.ts.map +1 -1
- package/dist/paths/branch-name.d.ts +38 -0
- package/dist/paths/branch-name.d.ts.map +1 -1
- package/dist/paths/branch-name.js +46 -0
- package/dist/paths/branch-name.js.map +1 -1
- package/dist/paths/index.d.ts +1 -1
- package/dist/paths/index.d.ts.map +1 -1
- package/dist/paths/index.js +1 -1
- package/dist/paths/index.js.map +1 -1
- package/dist/reference-resolver.d.ts +6 -2
- package/dist/reference-resolver.d.ts.map +1 -1
- package/dist/reference-resolver.js +8 -1
- package/dist/reference-resolver.js.map +1 -1
- package/dist/schema/meta-loader.d.ts.map +1 -1
- package/dist/schema/meta-loader.js +10 -2
- package/dist/schema/meta-loader.js.map +1 -1
- package/dist/schema/schema-store.d.ts +11 -2
- package/dist/schema/schema-store.d.ts.map +1 -1
- package/dist/schema/schema-store.js +23 -11
- package/dist/schema/schema-store.js.map +1 -1
- package/dist/settings-workspace.d.ts +0 -15
- package/dist/settings-workspace.d.ts.map +1 -1
- package/dist/settings-workspace.js +97 -1
- package/dist/settings-workspace.js.map +1 -1
- package/dist/types.d.ts +63 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/debug.d.ts +11 -0
- package/dist/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js +12 -1
- package/dist/utils/debug.js.map +1 -1
- package/dist/utils/git.d.ts +38 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +69 -0
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/logger.d.ts +71 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +85 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/validation/entry-type-reference-validator.d.ts +33 -0
- package/dist/validation/entry-type-reference-validator.d.ts.map +1 -0
- package/dist/validation/entry-type-reference-validator.js +110 -0
- package/dist/validation/entry-type-reference-validator.js.map +1 -0
- package/dist/worker/cms-worker.d.ts +232 -3
- package/dist/worker/cms-worker.d.ts.map +1 -1
- package/dist/worker/cms-worker.js +856 -87
- package/dist/worker/cms-worker.js.map +1 -1
- package/dist/worker/log.d.ts +61 -0
- package/dist/worker/log.d.ts.map +1 -0
- package/dist/worker/log.js +74 -0
- package/dist/worker/log.js.map +1 -0
- package/package.json +3 -1
|
@@ -13,7 +13,6 @@ const getStatusColor = (status) => {
|
|
|
13
13
|
editing: 'brand',
|
|
14
14
|
submitted: 'green',
|
|
15
15
|
approved: 'teal',
|
|
16
|
-
locked: 'yellow',
|
|
17
16
|
archived: 'gray',
|
|
18
17
|
};
|
|
19
18
|
return statusColorMap[status] ?? 'gray';
|
|
@@ -50,12 +49,32 @@ const getStatusColor = (status) => {
|
|
|
50
49
|
* />
|
|
51
50
|
* ```
|
|
52
51
|
*/
|
|
53
|
-
export const EditorHeader = forwardRef(function EditorHeader({ siteTitle, siteSubtitle, headerTitle, currentEntry, branchName, operatingMode, busy, breadcrumbSegments, editedFiles, modifiedCount, unresolvedCommentCount: _, comments, onNavigatorOpen, onFileReload, onFileDiscardDraft, onEntrySelect, onBranchReloadData, onBranchDiscardDrafts, onBranchManagerOpen, onCommentsPanelOpen, onSave, onSubmit, hasUnsavedChanges, branchStatus, onWithdraw, userContext, branchCreatedBy, branchAccess, branchIsProtected = false, branchReadOnly = false, }, ref) {
|
|
54
|
-
//
|
|
55
|
-
//
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
|
|
52
|
+
export const EditorHeader = forwardRef(function EditorHeader({ siteTitle, siteSubtitle, headerTitle, currentEntry, branchName, operatingMode, busy, breadcrumbSegments, editedFiles, modifiedCount, unresolvedCommentCount: _, comments, onNavigatorOpen, onFileReload, onFileDiscardDraft, onEntrySelect, onBranchReloadData, onBranchDiscardDrafts, onBranchManagerOpen, onCommentsPanelOpen, onSave, onSubmit, hasUnsavedChanges, branchStatus, onWithdraw, userContext, branchCreatedBy, branchAccess, branchIsProtected = false, branchReadOnly = false, branchWriteBlocked = false, }, ref) {
|
|
53
|
+
// `branchWriteBlocked` is the server's own answer (getBranchProtection, the
|
|
54
|
+
// same call the writableBranch guard makes), so Save can never be enabled for
|
|
55
|
+
// a write the API would reject. `branchReadOnly` only picks WHICH banner: the
|
|
56
|
+
// base branch's is a structural property and takes precedence over a workflow
|
|
57
|
+
// status lock.
|
|
58
|
+
const statusLocked = branchWriteBlocked && !branchReadOnly;
|
|
59
|
+
// The lock now fails CLOSED while the branch list is unresolved (Editor.tsx's
|
|
60
|
+
// `branchContentLocked` is `?? true`), which is right -- but `branchStatus` is
|
|
61
|
+
// `currentBranch?.status`, i.e. undefined in that same window. Without this
|
|
62
|
+
// distinction every banner and tooltip below interpolated it directly and read
|
|
63
|
+
// `Branch "main" is undefined - content is read-only`, on ordinary initial load
|
|
64
|
+
// and permanently after a failed branches fetch. Worse under version skew,
|
|
65
|
+
// where the status IS known ('editing') and the copy would assert a status
|
|
66
|
+
// lock the status plainly contradicts. So: locked, but say why honestly.
|
|
67
|
+
//
|
|
68
|
+
// Provably behavior-neutral for supported deployments: writeBlocked =
|
|
69
|
+
// readOnly || status !== 'editing', so when status === 'editing' that
|
|
70
|
+
// reduces to writeBlocked === readOnly. statusLocked = branchWriteBlocked
|
|
71
|
+
// && !branchReadOnly, so the new 'editing' arm below would require
|
|
72
|
+
// readOnly && !readOnly -- impossible. It is unreachable against any
|
|
73
|
+
// current server and only changes what renders under version skew (an old
|
|
74
|
+
// server that omits writeBlocked while still sending status: 'editing'),
|
|
75
|
+
// where it replaces the self-contradicting "Branch is editing — content is
|
|
76
|
+
// read-only" with the honest data-unavailable copy.
|
|
77
|
+
const branchDataUnavailable = statusLocked && (branchStatus === undefined || branchStatus === 'editing');
|
|
59
78
|
return (_jsx(Paper, { ref: ref, shadow: "md", withBorder: true, radius: 0, px: 0, py: 0, style: {
|
|
60
79
|
position: 'fixed',
|
|
61
80
|
top: 0,
|
|
@@ -87,13 +106,15 @@ export const EditorHeader = forwardRef(function EditorHeader({ siteTitle, siteSu
|
|
|
87
106
|
fontWeight: 600,
|
|
88
107
|
}, children: comments.filter((t) => !t.resolved).length }))] }))] })] }), _jsxs(Group, { gap: "xs", wrap: "nowrap", children: [_jsx(Tooltip, { label: branchReadOnly
|
|
89
108
|
? 'The base branch is read-only'
|
|
90
|
-
:
|
|
91
|
-
?
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
:
|
|
109
|
+
: branchDataUnavailable
|
|
110
|
+
? 'Branch details are still loading — saving is disabled until they arrive'
|
|
111
|
+
: statusLocked
|
|
112
|
+
? branchStatus === 'submitted'
|
|
113
|
+
? 'This branch is submitted for review — withdraw it to make changes'
|
|
114
|
+
: `This branch is ${branchStatus} — content is read-only`
|
|
115
|
+
: !hasUnsavedChanges && currentEntry
|
|
116
|
+
? 'No changes to save'
|
|
117
|
+
: '', disabled: !branchReadOnly && !statusLocked && (hasUnsavedChanges || !currentEntry), children: _jsx(Button, { "data-testid": "save-button", variant: "light", size: "sm", onClick: onSave, disabled: !branchName ||
|
|
97
118
|
!currentEntry ||
|
|
98
119
|
busy ||
|
|
99
120
|
!hasUnsavedChanges ||
|
|
@@ -101,11 +122,17 @@ export const EditorHeader = forwardRef(function EditorHeader({ siteTitle, siteSu
|
|
|
101
122
|
statusLocked, children: "Save File" }) }), (() => {
|
|
102
123
|
const isSubmitted = branchStatus === 'submitted';
|
|
103
124
|
const isEditing = branchStatus === 'editing';
|
|
125
|
+
// 'approved' withdraws too -- it is that status's only
|
|
126
|
+
// non-destructive exit now that the submit status gate refuses a
|
|
127
|
+
// non-editing branch (api/branch-status.ts, api/branch-withdraw.ts).
|
|
128
|
+
// This button is a two-state toggle, so every withdrawable status
|
|
129
|
+
// has to drive the withdraw side of it, not just 'submitted'.
|
|
130
|
+
const isWithdrawable = isSubmitted || branchStatus === 'approved';
|
|
104
131
|
// The protected base branch can never be submitted for review (both
|
|
105
132
|
// modes); hide the button entirely rather than showing it disabled.
|
|
106
133
|
// Withdraw stays available as the recovery path for a base branch
|
|
107
134
|
// wrongly stuck in 'submitted'.
|
|
108
|
-
if (branchIsProtected && !
|
|
135
|
+
if (branchIsProtected && !isWithdrawable)
|
|
109
136
|
return null;
|
|
110
137
|
// Check if user can perform workflow actions (creator OR ACL access OR system
|
|
111
138
|
// branch OR privileged). Admins/Reviewers must be able to withdraw a protected
|
|
@@ -120,13 +147,39 @@ export const EditorHeader = forwardRef(function EditorHeader({ siteTitle, siteSu
|
|
|
120
147
|
userContext.groups?.some((g) => branchAccess.allowedGroups?.includes(g)));
|
|
121
148
|
const userIsPrivileged = !!userContext &&
|
|
122
149
|
(isAdmin(userContext.groups ?? []) || isReviewer(userContext.groups ?? []));
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
150
|
+
const userHasPermission = userIsCreator || userInACL || isSystemBranch || userIsPrivileged;
|
|
151
|
+
// A status with no available transition (today: 'archived') is a
|
|
152
|
+
// separate condition from lacking permission, and conflating them
|
|
153
|
+
// sent people to an admin to fix a non-permissions problem.
|
|
154
|
+
const statusHasAction = isEditing || isWithdrawable;
|
|
155
|
+
const canPerformAction = userHasPermission && statusHasAction;
|
|
156
|
+
return (_jsx(Tooltip, { label:
|
|
157
|
+
// The unknown-status arm mirrors the banner's: with no
|
|
158
|
+
// branch data, `statusHasAction` is false (undefined is
|
|
159
|
+
// neither 'editing' nor withdrawable) and this label used
|
|
160
|
+
// to interpolate it as "This branch is undefined and has
|
|
161
|
+
// no submit or withdraw action available".
|
|
162
|
+
//
|
|
163
|
+
// Latent rather than live TODAY, and only by accident:
|
|
164
|
+
// Editor.tsx passes `branchIsProtected={... ?? true}` since
|
|
165
|
+
// the fail-closed change, so in that same window the early
|
|
166
|
+
// return above (`branchIsProtected && !isWithdrawable`)
|
|
167
|
+
// unmounts this button before the tooltip can render. That
|
|
168
|
+
// is one guard away from being user-visible -- relax the
|
|
169
|
+
// `?? true`, or pass `branchIsProtected={false}` from
|
|
170
|
+
// anywhere, and the copy is live. Guarding it here rather
|
|
171
|
+
// than relying on an unrelated condition to keep hiding it.
|
|
172
|
+
branchStatus === undefined
|
|
173
|
+
? 'Branch data could not be loaded, so no submit or withdraw action is available'
|
|
174
|
+
: !statusHasAction
|
|
175
|
+
? `This branch is ${branchStatus} and has no submit or withdraw action available`
|
|
176
|
+
: !userHasPermission
|
|
177
|
+
? 'You do not have permission to submit or withdraw this branch'
|
|
178
|
+
: '', disabled: canPerformAction, children: _jsx(Button, { size: "sm", color: isWithdrawable ? 'orange' : 'brand', onClick: isWithdrawable ? onWithdraw : onSubmit, disabled: !branchName || busy || !canPerformAction, "data-testid": isWithdrawable ? 'withdraw-button' : 'submit-button', children: isWithdrawable ? 'Withdraw Branch...' : 'Submit Branch...' }) }));
|
|
179
|
+
})()] })] }), branchReadOnly && (_jsx(Alert, { icon: _jsx(IconLock, { size: 16 }), color: "yellow", variant: "light", mt: "sm", "data-testid": "protected-branch-banner", children: _jsxs(Group, { justify: "space-between", align: "center", gap: "sm", wrap: "wrap", children: [_jsx(Text, { size: "sm", children: `You are viewing the protected base branch "${branchName}". Content is read-only — create a branch to make changes.` }), _jsx(Button, { size: "xs", variant: "light", color: "yellow", onClick: onBranchManagerOpen, children: "Create a branch" })] }) })), statusLocked && (_jsx(Alert, { icon: _jsx(IconLock, { size: 16 }), color: "yellow", variant: "light", mt: "sm", "data-testid": "status-locked-banner", children: _jsxs(Group, { justify: "space-between", align: "center", gap: "sm", wrap: "wrap", children: [_jsx(Text, { size: "sm", children: branchDataUnavailable
|
|
180
|
+
? `Branch details for "${branchName}" could not be loaded, so content is locked until they arrive. Use Manage Branches to retry.`
|
|
181
|
+
: branchStatus === 'submitted'
|
|
182
|
+
? `Branch "${branchName}" is submitted for review and locked for edits. Use Withdraw Branch above to resume editing.`
|
|
183
|
+
: `Branch "${branchName}" is ${branchStatus} — content is read-only.` }), _jsx(Button, { size: "xs", variant: "light", color: "yellow", onClick: onBranchManagerOpen, children: "Manage Branches" })] }) }))] }) }));
|
|
131
184
|
});
|
|
132
185
|
//# sourceMappingURL=EditorHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorHeader.js","sourceRoot":"","sources":["../../../src/editor/components/EditorHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EACL,KAAK,EACL,KAAK,EACL,GAAG,EACH,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,OAAO,GACR,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAK9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"EditorHeader.js","sourceRoot":"","sources":["../../../src/editor/components/EditorHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryCreateModal.d.ts","sourceRoot":"","sources":["../../../src/editor/components/EntryCreateModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EntryCreateModal.d.ts","sourceRoot":"","sources":["../../../src/editor/components/EntryCreateModal.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAA;IACtC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,kCAAkC;IAClC,eAAe,EAAE,MAAM,CAAA;IACvB,yDAAyD;IACzD,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,6CAA6C;IAC7C,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,oCAAoC;IACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChE,kCAAkC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,QAAQ,EACR,OAAO,EACP,UAAkB,EAClB,KAAY,GACb,EAAE,qBAAqB,2CA0JvB"}
|
|
@@ -8,9 +8,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
8
8
|
* - Entering slug for new entry
|
|
9
9
|
* - Validation and error handling
|
|
10
10
|
*/
|
|
11
|
-
import { useState, useEffect } from 'react';
|
|
11
|
+
import { useState, useEffect, useRef } from 'react';
|
|
12
12
|
import { Modal, Stack, TextInput, Group, Button, Alert, Text, Select } from '@mantine/core';
|
|
13
13
|
import { IconAlertCircle } from '@tabler/icons-react';
|
|
14
|
+
/** Slug the form is seeded with each time the modal opens. */
|
|
15
|
+
const DEFAULT_SLUG = 'untitled';
|
|
14
16
|
export function EntryCreateModal({ isOpen, collectionLabel, entryTypes, selectedEntryTypeName, onCreate, onClose, isCreating = false, error = null, }) {
|
|
15
17
|
// Helper to get default or first entry type
|
|
16
18
|
const getDefaultEntryTypeName = () => {
|
|
@@ -22,18 +24,31 @@ export function EntryCreateModal({ isOpen, collectionLabel, entryTypes, selected
|
|
|
22
24
|
const defaultType = entryTypes.find((et) => et.default);
|
|
23
25
|
return defaultType?.name || entryTypes[0]?.name || '';
|
|
24
26
|
};
|
|
25
|
-
const [slug, setSlug] = useState(
|
|
27
|
+
const [slug, setSlug] = useState(DEFAULT_SLUG);
|
|
26
28
|
const [entryTypeName, setEntryTypeName] = useState(getDefaultEntryTypeName());
|
|
27
29
|
const [validationError, setValidationError] = useState(null);
|
|
28
|
-
//
|
|
30
|
+
// Seed the form once per open, on the closed -> open transition.
|
|
31
|
+
//
|
|
32
|
+
// This deliberately keys on `isOpen` alone. It used to key on the prop
|
|
33
|
+
// *values* (`[isOpen, selectedEntryTypeName, entryTypes]`), but `entryTypes`
|
|
34
|
+
// is an array that callers build inline - a fresh identity on every parent
|
|
35
|
+
// render - so any re-render while the modal was open re-ran this block and
|
|
36
|
+
// silently discarded what the user had typed or selected. The entry was then
|
|
37
|
+
// written to disk under the default slug with no error surfaced.
|
|
38
|
+
//
|
|
39
|
+
// Seeding is a lifecycle event, not a derivation of the current props, so the
|
|
40
|
+
// narrow dep array is the point. Do not "fix" it by adding the props read
|
|
41
|
+
// below (`entryTypes`, `selectedEntryTypeName`) back in.
|
|
42
|
+
const wasOpenRef = useRef(false);
|
|
29
43
|
useEffect(() => {
|
|
30
|
-
if (isOpen) {
|
|
31
|
-
setSlug(
|
|
44
|
+
if (isOpen && !wasOpenRef.current) {
|
|
45
|
+
setSlug(DEFAULT_SLUG);
|
|
32
46
|
setEntryTypeName(getDefaultEntryTypeName());
|
|
33
47
|
setValidationError(null);
|
|
34
48
|
}
|
|
49
|
+
wasOpenRef.current = isOpen;
|
|
35
50
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
36
|
-
}, [isOpen
|
|
51
|
+
}, [isOpen]);
|
|
37
52
|
// Validate slug format
|
|
38
53
|
const validateSlug = (value) => {
|
|
39
54
|
if (!value.trim()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryCreateModal.js","sourceRoot":"","sources":["../../../src/editor/components/EntryCreateModal.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"EntryCreateModal.js","sourceRoot":"","sources":["../../../src/editor/components/EntryCreateModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SWR configuration for the editor's data-fetching hooks (useBranchesData,
|
|
3
|
+
* useEntriesData, useCommentsData). Centralizing config here means every
|
|
4
|
+
* consumer gets the same dedup/cache behavior without repeating options.
|
|
5
|
+
*
|
|
6
|
+
* - revalidateOnFocus: false -- the editor isn't a live dashboard that needs
|
|
7
|
+
* to snap back to fresh data whenever the tab regains focus; a few
|
|
8
|
+
* seconds of staleness is harmless, and refetching on every alt-tab is
|
|
9
|
+
* just extra load against the branch clone.
|
|
10
|
+
* - shouldRetryOnError: false -- matches the hooks' pre-SWR behavior, which
|
|
11
|
+
* surfaced a single failure (notification + console.error) rather than
|
|
12
|
+
* silently retrying in the background.
|
|
13
|
+
* - provider: () => new Map() -- gives the editor its own cache instead of
|
|
14
|
+
* SWR's module-global one, so editor keys ("canopy:entries:main", ...) can
|
|
15
|
+
* never collide with an SWR cache the host app is running for its own data.
|
|
16
|
+
* `editor/hooks/__test__/test-utils.tsx` already mandates this for tests,
|
|
17
|
+
* with a comment about exactly that collision; production had been relying
|
|
18
|
+
* on the module global. Mounted once (CanopyEditor.tsx), so the cache spans
|
|
19
|
+
* the whole editor session.
|
|
20
|
+
* - dedupingInterval: 2000 -- collapses the duplicate requests React Strict
|
|
21
|
+
* Mode's mount -> cleanup -> remount cycle produces (each hook's
|
|
22
|
+
* automatic on-mount fetch runs twice), plus any accidental
|
|
23
|
+
* near-simultaneous mounts of the same resource. See swr.md /
|
|
24
|
+
* editor-async-patterns.md (2026-07-24 decision) for the background.
|
|
25
|
+
*/
|
|
26
|
+
import React from 'react';
|
|
27
|
+
export interface SWRProviderProps {
|
|
28
|
+
children: React.ReactNode;
|
|
29
|
+
}
|
|
30
|
+
export declare function SWRProvider({ children }: SWRProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
//# sourceMappingURL=SWRProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SWRProvider.d.ts","sourceRoot":"","sources":["../../../src/editor/context/SWRProvider.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CAazD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { SWRConfig } from 'swr';
|
|
4
|
+
export function SWRProvider({ children }) {
|
|
5
|
+
return (_jsx(SWRConfig, { value: {
|
|
6
|
+
provider: () => new Map(),
|
|
7
|
+
revalidateOnFocus: false,
|
|
8
|
+
shouldRetryOnError: false,
|
|
9
|
+
dedupingInterval: 2000,
|
|
10
|
+
}, children: children }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=SWRProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SWRProvider.js","sourceRoot":"","sources":["../../../src/editor/context/SWRProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AA6BZ,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAM/B,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAoB;IACxD,OAAO,CACL,KAAC,SAAS,IACR,KAAK,EAAE;YACL,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE;YACzB,iBAAiB,EAAE,KAAK;YACxB,kBAAkB,EAAE,KAAK;YACzB,gBAAgB,EAAE,IAAI;SACvB,YAEA,QAAQ,GACC,CACb,CAAA;AACH,CAAC"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* - ApiClientContext: Dependency injection for API client (context-based pattern)
|
|
7
7
|
* - EditorStateContext: Loading states, modal states, preview data
|
|
8
|
+
* - SWRProvider: SWR cache config for the fetch-on-load data hooks (see
|
|
9
|
+
* hooks/useBranchesData.ts, useEntriesData.ts, useCommentsData.ts)
|
|
8
10
|
*
|
|
9
11
|
* Usage:
|
|
10
12
|
* ```tsx
|
|
@@ -17,5 +19,6 @@
|
|
|
17
19
|
*/
|
|
18
20
|
export { ApiClientProvider, useApiClient, useOptionalApiClient, type ApiClient, type ApiClientProviderProps, } from './ApiClientContext';
|
|
19
21
|
export { AssetContextProvider, useAssetContext, type AssetContextValue, type AssetContextProviderProps, } from './AssetContext';
|
|
22
|
+
export { SWRProvider, type SWRProviderProps } from './SWRProvider';
|
|
20
23
|
export { EditorStateProvider, useEditorState, useEditorLoading, useEditorModals, useEditorPreview, type EditorState, type EditorStateActions, type EditorStateContextValue, type EditorStateProviderProps, type LoadingState, type ModalState, type PreviewState, } from './EditorStateContext';
|
|
21
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/editor/context/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/editor/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,GAC/B,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAElE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAA"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* - ApiClientContext: Dependency injection for API client (context-based pattern)
|
|
7
7
|
* - EditorStateContext: Loading states, modal states, preview data
|
|
8
|
+
* - SWRProvider: SWR cache config for the fetch-on-load data hooks (see
|
|
9
|
+
* hooks/useBranchesData.ts, useEntriesData.ts, useCommentsData.ts)
|
|
8
10
|
*
|
|
9
11
|
* Usage:
|
|
10
12
|
* ```tsx
|
|
@@ -17,5 +19,6 @@
|
|
|
17
19
|
*/
|
|
18
20
|
export { ApiClientProvider, useApiClient, useOptionalApiClient, } from './ApiClientContext.js';
|
|
19
21
|
export { AssetContextProvider, useAssetContext, } from './AssetContext.js';
|
|
22
|
+
export { SWRProvider } from './SWRProvider.js';
|
|
20
23
|
export { EditorStateProvider, useEditorState, useEditorLoading, useEditorModals, useEditorPreview, } from './EditorStateContext.js';
|
|
21
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/editor/context/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/editor/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,GAGrB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,oBAAoB,EACpB,eAAe,GAGhB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,WAAW,EAAyB,MAAM,eAAe,CAAA;AAElE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAQjB,MAAM,sBAAsB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-utils.d.ts","sourceRoot":"","sources":["../../src/editor/editor-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,EAAE,aAAa,EAAe,cAAc,EAAE,MAAM,WAAW,CAAA;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAElC,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjD;AAED,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,MAK9B,CAAA;AAEd,eAAO,MAAM,eAAe,GAC1B,OAAO;IACL,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,EACD,sDAAsD,cAAc,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,KAC9F,
|
|
1
|
+
{"version":3,"file":"editor-utils.d.ts","sourceRoot":"","sources":["../../src/editor/editor-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,EAAE,aAAa,EAAe,cAAc,EAAE,MAAM,WAAW,CAAA;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAElC,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjD;AAED,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,MAK9B,CAAA;AAEd,eAAO,MAAM,eAAe,GAC1B,OAAO;IACL,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,EACD,sDAAsD,cAAc,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,KAC9F,MA0CF,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,KAAK,OAAO,KAAG,SAmBtD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,OAAO;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,aAAa,CAAA;CAAE,EACzE,OAAO,SAAS,cAejB,CAAA;AAED,UAAU,0BAA0B;IAClC,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,CACjB,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,MAAM,GAAG,WAAW,CAAC,KACpF,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,cAAc,EAAE,CAAA;CAC7B;AAED,eAAO,MAAM,4BAA4B,GAAI,uEAM1C,0BAA0B,KAAG,WAAW,EAsC1C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,cAAc,gBAAgB,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAc1F,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,uBAAuB,GAClC,cAAc,WAAW,GAAG,SAAS,EACrC,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KACpC,MAAM,EAyBR,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,MAAM,GAAG,SAAS,EAC7B,UAAU,YAAY,EAAE,KACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAwCxB,CAAA"}
|
|
@@ -30,8 +30,14 @@ export const buildPreviewSrc = (entry, { branchName, previewBaseByCollection, co
|
|
|
30
30
|
const base = (entry.collectionPath && previewBaseByCollection?.[entry.collectionPath]) ??
|
|
31
31
|
(entry.collectionName && previewBaseByCollection?.[entry.collectionName]);
|
|
32
32
|
if (!base) {
|
|
33
|
-
// Build URL from collection path + slug
|
|
34
|
-
|
|
33
|
+
// Build URL from collection path + slug. Pass contentRoot through so a
|
|
34
|
+
// non-default (or multi-segment, e.g. "cms/content") configured root is
|
|
35
|
+
// stripped too -- normalizeCollectionPath defaults to 'content' when
|
|
36
|
+
// contentRoot is undefined here, which matches the pre-existing behavior
|
|
37
|
+
// for adopters who never set it.
|
|
38
|
+
const collectionPath = entry.collectionPath
|
|
39
|
+
? normalizeCollectionPath(entry.collectionPath, contentRoot)
|
|
40
|
+
: '';
|
|
35
41
|
const encoded = encodeSlug(entry.slug);
|
|
36
42
|
const segments = [collectionPath, encoded].filter(Boolean);
|
|
37
43
|
const url = segments.length > 0 ? `/${segments.join('/')}` : '/';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-utils.js","sourceRoot":"","sources":["../../src/editor/editor-utils.ts"],"names":[],"mappings":"AAKA,2EAA2E;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAOlC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAU,EAAE,CACnD,CAAC,KAAK,IAAI,EAAE,CAAC;KACV,KAAK,CAAC,GAAG,CAAC;KACV,MAAM,CAAC,OAAO,CAAC;KACf,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;KAC7C,IAAI,CAAC,GAAG,CAAC,CAAA;AAEd,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAMC,EACD,EAAE,UAAU,EAAE,uBAAuB,EAAE,WAAW,EAA6C,EACvF,EAAE;IACV,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC,UAAU,CAAA;IAC7C,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;QACnC,IAAI,CAAC,UAAU;YAAE,OAAO,GAAG,CAAA;QAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAC/C,OAAO,GAAG,GAAG,GAAG,SAAS,UAAU,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAA;IACrE,CAAC,CAAA;IAED,2EAA2E;IAC3E,MAAM,WAAW,GAAG,WAAW,IAAI,KAAK,CAAC,cAAc,KAAK,WAAW,CAAA;IAEvE,IAAI,WAAW,EAAE,CAAC;QAChB,0DAA0D;QAC1D,MAAM,aAAa,GAAG,uBAAuB,EAAE,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/E,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,YAAY,CAAC,aAAa,CAAC,CAAA;QACpC,CAAC;QACD,oCAAoC;QACpC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,IAAI,GACR,CAAC,KAAK,CAAC,cAAc,IAAI,uBAAuB,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACzE,CAAC,KAAK,CAAC,cAAc,IAAI,uBAAuB,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;IAC3E,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,
|
|
1
|
+
{"version":3,"file":"editor-utils.js","sourceRoot":"","sources":["../../src/editor/editor-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageField.d.ts","sourceRoot":"","sources":["../../../src/editor/fields/ImageField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6C,MAAM,OAAO,CAAA;AASjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAQnD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,eAAe,GAAG,SAAS,CAAA;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,KAAK,IAAI,CAAA;IACtD,kKAAkK;IAClK,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAC1B;AAOD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"ImageField.d.ts","sourceRoot":"","sources":["../../../src/editor/fields/ImageField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6C,MAAM,OAAO,CAAA;AASjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAQnD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,eAAe,GAAG,SAAS,CAAA;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,KAAK,IAAI,CAAA;IACtD,kKAAkK;IAClK,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAC1B;AAOD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4QhD,CAAA;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useEffect, useId, useRef, useState } from 'react';
|
|
4
4
|
import { Alert, Button, Group, Stack, Text, TextInput } from '@mantine/core';
|
|
5
5
|
import { Dropzone } from '@mantine/dropzone';
|
|
6
|
-
import { IconAlertCircle, IconPhoto, IconUpload } from '@tabler/icons-react';
|
|
6
|
+
import { IconAlertCircle, IconPhoto, IconPhotoOff, IconUpload } from '@tabler/icons-react';
|
|
7
7
|
import { assetUrl } from '../../assets/asset-url.js';
|
|
8
8
|
import { useAssetContext } from '../context/index.js';
|
|
9
9
|
import { CropStep } from '../media/CropStep.js';
|
|
@@ -27,6 +27,20 @@ export const ImageField = ({ id, label, value, onChange, aspect, altOptional, da
|
|
|
27
27
|
const justCommittedRef = useRef(false);
|
|
28
28
|
const aspectRatio = parseAspectRatio(aspect);
|
|
29
29
|
const hasValue = !!value?.src;
|
|
30
|
+
const previewSrc = value
|
|
31
|
+
? assetUrl({ src: value.src }, { width: PREVIEW_WIDTH, crop: value.crop, baseUrl })
|
|
32
|
+
: undefined;
|
|
33
|
+
// Broken-preview fallback, consistent with AssetCard's thumbnail fallback
|
|
34
|
+
// (same icon/copy, same "adjust state during render" reset pattern rather
|
|
35
|
+
// than a useEffect - see AssetCard.tsx for the rationale). This covers
|
|
36
|
+
// both an asset that was broken at upload time (pre-existing content) and
|
|
37
|
+
// a transform that fails for some other reason at render time.
|
|
38
|
+
const [previewFailed, setPreviewFailed] = useState(false);
|
|
39
|
+
const [prevPreviewSrc, setPrevPreviewSrc] = useState(previewSrc);
|
|
40
|
+
if (previewSrc !== prevPreviewSrc) {
|
|
41
|
+
setPrevPreviewSrc(previewSrc);
|
|
42
|
+
setPreviewFailed(false);
|
|
43
|
+
}
|
|
30
44
|
// Focus the alt input right after a new image commits (pick or upload),
|
|
31
45
|
// so the editor's next keystroke goes straight into the field most likely
|
|
32
46
|
// to need attention.
|
|
@@ -92,12 +106,22 @@ export const ImageField = ({ id, label, value, onChange, aspect, altOptional, da
|
|
|
92
106
|
? assetUrl({ src: value.src }, { baseUrl })
|
|
93
107
|
: '';
|
|
94
108
|
const cropInitial = cropRequest?.kind === 'existing' ? value?.crop : undefined;
|
|
95
|
-
return (_jsxs(Stack, { gap: 4, "data-canopy-field": dataCanopyField, "data-testid": `image-field-${dataCanopyField}`, children: [label && (_jsx(Text, { size: "sm", fw: 500, children: label })), !hasValue ? (_jsxs(Stack, { gap: "xs", children: [_jsx(Dropzone, { onDrop: (files) => void handleDrop(files), onReject: handleReject, maxSize: MAX_UPLOAD_BYTES, accept: ACCEPTED_IMAGE_MIME_TYPES, loading: upload.uploading, multiple: false, "data-testid": `image-field-dropzone-${dataCanopyField}`, children: _jsxs(Group, { justify: "center", gap: "xs", py: "xs", style: { pointerEvents: 'none' }, children: [_jsx(IconUpload, { size: 18 }), _jsx(Text, { size: "xs", children: "Drop an image here, or click to browse" })] }) }), _jsx(Group, { justify: "center", children: _jsx(Button, { variant: "light", size: "xs", leftSection: _jsx(IconPhoto, { size: 14 }), onClick: () => setPickerOpen(true), "data-testid": `image-field-browse-library-${dataCanopyField}`, children: "Browse library" }) }), (upload.error || dropError) && (_jsx(Alert, { icon: _jsx(IconAlertCircle, { size: 16 }), color: "red", children: upload.error || dropError })), errors?.src && (_jsx(Text, { size: "xs", c: "red", children: errors.src }))] })) : (_jsxs(Stack, { gap: "xs", children: [
|
|
109
|
+
return (_jsxs(Stack, { gap: 4, "data-canopy-field": dataCanopyField, "data-testid": `image-field-${dataCanopyField}`, children: [label && (_jsx(Text, { size: "sm", fw: 500, children: label })), !hasValue ? (_jsxs(Stack, { gap: "xs", children: [_jsx(Dropzone, { onDrop: (files) => void handleDrop(files), onReject: handleReject, maxSize: MAX_UPLOAD_BYTES, accept: ACCEPTED_IMAGE_MIME_TYPES, loading: upload.uploading, multiple: false, "data-testid": `image-field-dropzone-${dataCanopyField}`, children: _jsxs(Group, { justify: "center", gap: "xs", py: "xs", style: { pointerEvents: 'none' }, children: [_jsx(IconUpload, { size: 18 }), _jsx(Text, { size: "xs", children: "Drop an image here, or click to browse" })] }) }), _jsx(Group, { justify: "center", children: _jsx(Button, { variant: "light", size: "xs", leftSection: _jsx(IconPhoto, { size: 14 }), onClick: () => setPickerOpen(true), "data-testid": `image-field-browse-library-${dataCanopyField}`, children: "Browse library" }) }), (upload.error || dropError) && (_jsx(Alert, { icon: _jsx(IconAlertCircle, { size: 16 }), color: "red", children: upload.error || dropError })), errors?.src && (_jsx(Text, { size: "xs", c: "red", children: errors.src }))] })) : (_jsxs(Stack, { gap: "xs", children: [previewFailed ? (_jsxs("div", { "data-testid": `image-field-preview-fallback-${dataCanopyField}`, style: {
|
|
110
|
+
width: PREVIEW_WIDTH,
|
|
111
|
+
height: 160,
|
|
112
|
+
display: 'flex',
|
|
113
|
+
flexDirection: 'column',
|
|
114
|
+
alignItems: 'center',
|
|
115
|
+
justifyContent: 'center',
|
|
116
|
+
gap: 4,
|
|
117
|
+
borderRadius: 'var(--mantine-radius-sm)',
|
|
118
|
+
background: 'var(--mantine-color-gray-1)',
|
|
119
|
+
}, children: [_jsx(IconPhotoOff, { size: 28, stroke: 1.5, color: "var(--mantine-color-gray-5)" }), _jsx(Text, { size: "xs", c: "dimmed", children: "Preview unavailable" })] })) : (_jsx("img", { src: previewSrc, alt: value.alt, style: {
|
|
96
120
|
maxWidth: PREVIEW_WIDTH,
|
|
97
121
|
maxHeight: PREVIEW_WIDTH,
|
|
98
122
|
borderRadius: 'var(--mantine-radius-sm)',
|
|
99
123
|
display: 'block',
|
|
100
|
-
} }), errors?.src && (_jsx(Text, { size: "xs", c: "red", children: errors.src })), _jsx(TextInput, { id: inputId, ref: altInputRef, label: "Alt text", required: !altOptional, value: value.alt, onChange: (event) => handleAltChange(event.currentTarget.value), error: errors?.alt, size: "sm", "data-testid": `image-field-alt-${dataCanopyField}` }), _jsxs(Group, { gap: "xs", children: [_jsx(Button, { variant: "light", size: "xs", onClick: () => setPickerOpen(true), "data-testid": `image-field-replace-${dataCanopyField}`, children: "Replace" }), aspectRatio !== undefined && (_jsx(Button, { variant: "light", size: "xs", onClick: () => setCropRequest({ kind: 'existing' }), "data-testid": `image-field-crop-${dataCanopyField}`, children: "Crop" })), _jsx(Button, { variant: "subtle", color: "red", size: "xs", onClick: handleRemove, "data-testid": `image-field-remove-${dataCanopyField}`, children: "Remove" })] }), errors?.crop && (_jsx(Text, { size: "xs", c: "red", children: errors.crop }))] })), _jsx(MediaLibrary, { opened: pickerOpen, onClose: () => setPickerOpen(false), mode: "picker", onSelect: handleAssetReady }), aspectRatio !== undefined && (_jsx(CropStep, { opened: cropRequest !== null, onClose: () => setCropRequest(null), imageSrc: cropImageSrc, aspect: aspectRatio, initialCrop: cropInitial, onConfirm: handleCropConfirm }))] }));
|
|
124
|
+
}, onError: () => setPreviewFailed(true) })), errors?.src && (_jsx(Text, { size: "xs", c: "red", children: errors.src })), _jsx(TextInput, { id: inputId, ref: altInputRef, label: "Alt text", required: !altOptional, value: value.alt, onChange: (event) => handleAltChange(event.currentTarget.value), error: errors?.alt, size: "sm", "data-testid": `image-field-alt-${dataCanopyField}` }), _jsxs(Group, { gap: "xs", children: [_jsx(Button, { variant: "light", size: "xs", onClick: () => setPickerOpen(true), "data-testid": `image-field-replace-${dataCanopyField}`, children: "Replace" }), aspectRatio !== undefined && (_jsx(Button, { variant: "light", size: "xs", onClick: () => setCropRequest({ kind: 'existing' }), "data-testid": `image-field-crop-${dataCanopyField}`, children: "Crop" })), _jsx(Button, { variant: "subtle", color: "red", size: "xs", onClick: handleRemove, "data-testid": `image-field-remove-${dataCanopyField}`, children: "Remove" })] }), errors?.crop && (_jsx(Text, { size: "xs", c: "red", children: errors.crop }))] })), _jsx(MediaLibrary, { opened: pickerOpen, onClose: () => setPickerOpen(false), mode: "picker", onSelect: handleAssetReady }), aspectRatio !== undefined && (_jsx(CropStep, { opened: cropRequest !== null, onClose: () => setCropRequest(null), imageSrc: cropImageSrc, aspect: aspectRatio, initialCrop: cropInitial, onConfirm: handleCropConfirm }))] }));
|
|
101
125
|
};
|
|
102
126
|
export default ImageField;
|
|
103
127
|
//# sourceMappingURL=ImageField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageField.js","sourceRoot":"","sources":["../../../src/editor/fields/ImageField.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAc,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAsB,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"ImageField.js","sourceRoot":"","sources":["../../../src/editor/fields/ImageField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferenceField.d.ts","sourceRoot":"","sources":["../../../src/editor/fields/ReferenceField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqC,MAAM,OAAO,CAAA;AAQzD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAA;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ReferenceField.d.ts","sourceRoot":"","sources":["../../../src/editor/fields/ReferenceField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqC,MAAM,OAAO,CAAA;AAQzD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAA;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAwLxD,CAAA;AAED,eAAe,cAAc,CAAA"}
|