canopycms 0.0.68-int.98 → 0.1.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 +2131 -0
- package/README.md +47 -63
- package/dist/ai/generate.d.ts +5 -0
- package/dist/ai/generate.js +244 -115
- package/dist/ai/index.d.ts +1 -1
- package/dist/ai/json-to-markdown.d.ts +21 -1
- package/dist/ai/json-to-markdown.js +120 -57
- package/dist/ai/references.d.ts +72 -0
- package/dist/ai/references.js +223 -0
- package/dist/ai/resolve-branch.js +9 -2
- package/dist/ai/to-plain-text.d.ts +17 -8
- package/dist/ai/to-plain-text.js +18 -15
- package/dist/ai/types.d.ts +84 -3
- package/dist/api/admin-branch-health.d.ts +24 -1
- package/dist/api/admin-branch-health.js +52 -20
- package/dist/api/admin.d.ts +23 -5
- package/dist/api/admin.js +36 -1
- package/dist/api/assets.js +88 -78
- package/dist/api/branch-create-window.d.ts +12 -0
- package/dist/api/branch-create-window.js +13 -0
- package/dist/api/branch-merge.d.ts +1 -1
- package/dist/api/branch-merge.js +1 -1
- package/dist/api/branch-review.d.ts +3 -3
- package/dist/api/branch-review.js +16 -7
- package/dist/api/branch-status.d.ts +16 -6
- package/dist/api/branch-status.js +57 -12
- package/dist/api/branch-withdraw.d.ts +2 -2
- package/dist/api/branch-withdraw.js +8 -3
- package/dist/api/branch.d.ts +25 -12
- package/dist/api/branch.js +164 -103
- package/dist/api/client.d.ts +78 -58
- package/dist/api/client.js +150 -117
- package/dist/api/comments.d.ts +12 -3
- package/dist/api/comments.js +118 -9
- package/dist/api/content.d.ts +9 -9
- package/dist/api/content.js +131 -22
- package/dist/api/entries-constants.d.ts +14 -3
- package/dist/api/entries-constants.js +14 -3
- package/dist/api/entries.d.ts +40 -2
- package/dist/api/entries.js +102 -6
- package/dist/api/github-sync.d.ts +19 -0
- package/dist/api/github-sync.js +50 -3
- package/dist/api/groups.d.ts +4 -4
- package/dist/api/groups.js +2 -1
- package/dist/api/guards.js +23 -3
- package/dist/api/index.d.ts +3 -1
- package/dist/api/index.js +1 -0
- package/dist/api/permissions.d.ts +21 -2
- package/dist/api/permissions.js +50 -3
- package/dist/api/request-deadline.d.ts +59 -0
- package/dist/api/request-deadline.js +73 -0
- package/dist/api/resolve-references.js +8 -7
- package/dist/api/route-builder.d.ts +14 -0
- package/dist/api/route-builder.js +14 -1
- package/dist/api/schema.d.ts +11 -9
- package/dist/api/schema.js +2 -0
- package/dist/api/settings-helpers.d.ts +5 -1
- package/dist/api/settings-helpers.js +10 -2
- package/dist/api/types.d.ts +18 -0
- package/dist/api/users-constants.d.ts +6 -0
- package/dist/api/users-constants.js +6 -0
- package/dist/assets/asset-url.d.ts +28 -16
- package/dist/assets/asset-url.js +51 -25
- package/dist/assets/finalize.js +3 -0
- package/dist/assets/index.d.ts +1 -1
- package/dist/assets/materialize.d.ts +153 -0
- package/dist/assets/materialize.js +402 -0
- package/dist/assets/store-local.d.ts +19 -5
- package/dist/assets/store-local.js +69 -10
- package/dist/assets/store-s3.d.ts +38 -7
- package/dist/assets/store-s3.js +128 -22
- package/dist/assets/transform-directives.d.ts +52 -13
- package/dist/assets/transform-directives.js +87 -27
- package/dist/assets/transform.d.ts +3 -3
- package/dist/assets/transform.js +13 -8
- package/dist/assets/types.d.ts +31 -4
- package/dist/auth/cache.d.ts +1 -1
- package/dist/auth/cache.js +1 -1
- package/dist/auth/caching-auth-plugin.d.ts +2 -0
- package/dist/auth/caching-auth-plugin.js +12 -2
- package/dist/auth/file-based-auth-cache.d.ts +8 -0
- package/dist/auth/file-based-auth-cache.js +18 -8
- package/dist/auth/person-name.d.ts +5 -0
- package/dist/auth/person-name.js +8 -0
- package/dist/auth/plugin.d.ts +10 -1
- package/dist/auth/types.d.ts +2 -0
- package/dist/auth/user-metadata-lookup.d.ts +21 -0
- package/dist/auth/user-metadata-lookup.js +116 -0
- package/dist/authorization/branch.d.ts +1 -1
- package/dist/authorization/branch.js +12 -13
- package/dist/authorization/groups/schema.d.ts +4 -4
- package/dist/authorization/helpers.d.ts +8 -0
- package/dist/authorization/helpers.js +8 -0
- package/dist/authorization/index.d.ts +1 -1
- package/dist/authorization/index.js +1 -1
- package/dist/authorization/protected-branch.d.ts +5 -4
- package/dist/authorization/protected-branch.js +7 -5
- package/dist/branch-health.d.ts +35 -8
- package/dist/branch-health.js +54 -18
- package/dist/branch-metadata-error.d.ts +27 -0
- package/dist/branch-metadata-error.js +23 -0
- package/dist/branch-metadata-file.d.ts +205 -24
- package/dist/branch-metadata-file.js +126 -25
- package/dist/branch-metadata.d.ts +45 -6
- package/dist/branch-metadata.js +142 -50
- package/dist/branch-provisioning.d.ts +167 -0
- package/dist/branch-provisioning.js +501 -0
- package/dist/branch-registry.d.ts +8 -0
- package/dist/branch-registry.js +61 -9
- package/dist/branch-schema-cache.d.ts +29 -12
- package/dist/branch-schema-cache.js +64 -21
- package/dist/branch-sparse.d.ts +23 -0
- package/dist/branch-sparse.js +118 -0
- package/dist/branch-workspace.d.ts +42 -3
- package/dist/branch-workspace.js +239 -100
- package/dist/build/asset-refs.d.ts +94 -0
- package/dist/build/asset-refs.js +267 -0
- package/dist/build/generate-ai-content.js +5 -0
- package/dist/build/inline-flight.d.ts +37 -0
- package/dist/build/inline-flight.js +142 -0
- package/dist/cli/asset-refs.d.ts +52 -0
- package/dist/cli/asset-refs.js +194 -0
- package/dist/cli/cli.d.ts +15 -1
- package/dist/cli/cli.js +8543 -3193
- package/dist/cli/configured-asset-store.d.ts +12 -0
- package/dist/cli/configured-asset-store.js +46 -0
- package/dist/cli/generate-ai-content.js +4244 -1072
- package/dist/cli/init.js +217 -126
- package/dist/cli/project-detect.d.ts +2 -0
- package/dist/cli/project-detect.js +2 -0
- package/dist/cli/template-files/Dockerfile.cms.template +13 -5
- package/dist/cli/template-files/cms-stack.ts.template +16 -13
- package/dist/client.d.ts +1 -2
- package/dist/client.js +1 -2
- package/dist/comment-store.d.ts +25 -0
- package/dist/comment-store.js +43 -8
- package/dist/config/flatten.js +2 -0
- package/dist/config/helpers.js +2 -2
- package/dist/config/index.d.ts +1 -1
- package/dist/config/schemas/config.d.ts +12 -29
- package/dist/config/schemas/config.js +9 -12
- package/dist/config/schemas/field.d.ts +3 -0
- package/dist/config/schemas/field.js +58 -4
- package/dist/config/schemas/media.d.ts +4 -13
- package/dist/config/schemas/media.js +5 -8
- package/dist/config/schemas/url.d.ts +2 -20
- package/dist/config/schemas/url.js +2 -25
- package/dist/config/types.d.ts +116 -22
- package/dist/config/types.js +3 -9
- package/dist/config/validation.d.ts +25 -4
- package/dist/config/validation.js +116 -3
- package/dist/content-id-index.js +2 -2
- package/dist/content-index-generation.d.ts +1 -1
- package/dist/content-index-generation.js +1 -1
- package/dist/content-listing.d.ts +10 -1
- package/dist/content-listing.js +22 -5
- package/dist/content-reader.d.ts +9 -0
- package/dist/content-reader.js +16 -11
- package/dist/content-store.d.ts +75 -12
- package/dist/content-store.js +249 -86
- package/dist/content-tree.js +2 -2
- package/dist/context.js +5 -2
- package/dist/dangling-reference-log.d.ts +17 -0
- package/dist/dangling-reference-log.js +29 -0
- package/dist/dev-content-watcher.d.ts +1 -1
- package/dist/dev-content-watcher.js +1 -1
- package/dist/editor/BranchManager.d.ts +23 -7
- package/dist/editor/BranchManager.js +119 -54
- package/dist/editor/CanopyEditor.d.ts +1 -1
- package/dist/editor/CanopyEditor.js +1 -2
- package/dist/editor/CommentsPanel.d.ts +14 -0
- package/dist/editor/CommentsPanel.js +68 -43
- package/dist/editor/Editor.d.ts +11 -5
- package/dist/editor/Editor.js +891 -218
- package/dist/editor/EditorAuthGate.d.ts +7 -1
- package/dist/editor/EditorAuthGate.js +41 -9
- package/dist/editor/EntryNavigator.d.ts +22 -0
- package/dist/editor/EntryNavigator.js +353 -105
- package/dist/editor/FormHeader.d.ts +25 -0
- package/dist/editor/FormHeader.js +82 -0
- package/dist/editor/FormRenderer.d.ts +27 -3
- package/dist/editor/FormRenderer.js +171 -76
- package/dist/editor/PreviewFrame.d.ts +40 -0
- package/dist/editor/PreviewFrame.js +215 -0
- package/dist/editor/PreviewPane.d.ts +47 -0
- package/dist/editor/PreviewPane.js +147 -0
- package/dist/editor/PreviewToolbarTools.d.ts +22 -0
- package/dist/editor/PreviewToolbarTools.js +73 -0
- package/dist/editor/admin/SystemHealthPanel.d.ts +2 -1
- package/dist/editor/admin/SystemHealthPanel.js +163 -33
- package/dist/editor/admin/useSystemHealth.d.ts +18 -0
- package/dist/editor/admin/useSystemHealth.js +70 -1
- package/dist/editor/branch-status.d.ts +17 -0
- package/dist/editor/branch-status.js +29 -0
- package/dist/editor/canopy-path.d.ts +9 -6
- package/dist/editor/canopy-path.js +8 -11
- package/dist/editor/client-reference-resolver.d.ts +43 -16
- package/dist/editor/client-reference-resolver.js +155 -64
- package/dist/editor/comments/BranchComments.d.ts +1 -1
- package/dist/editor/comments/BranchComments.js +2 -2
- package/dist/editor/comments/CloseRefusedNotice.d.ts +4 -0
- package/dist/editor/comments/CloseRefusedNotice.js +7 -0
- package/dist/editor/comments/CommentThreadsPopover.d.ts +47 -0
- package/dist/editor/comments/CommentThreadsPopover.js +274 -0
- package/dist/editor/comments/CommentWriteAlert.d.ts +11 -0
- package/dist/editor/comments/CommentWriteAlert.js +13 -0
- package/dist/editor/comments/EntryComments.d.ts +10 -4
- package/dist/editor/comments/EntryComments.js +14 -17
- package/dist/editor/comments/FieldWrapper.d.ts +18 -4
- package/dist/editor/comments/FieldWrapper.js +62 -28
- package/dist/editor/comments/InlineCommentThread.d.ts +9 -2
- package/dist/editor/comments/InlineCommentThread.js +11 -47
- package/dist/editor/comments/ThreadCarousel.d.ts +1 -1
- package/dist/editor/comments/ThreadCarousel.js +18 -21
- package/dist/editor/comments/ThreadReplyControls.d.ts +28 -0
- package/dist/editor/comments/ThreadReplyControls.js +92 -0
- package/dist/editor/comments/field-comment-context.d.ts +14 -0
- package/dist/editor/comments/field-comment-context.js +14 -0
- package/dist/editor/comments/form-comments.d.ts +48 -0
- package/dist/editor/comments/form-comments.js +178 -0
- package/dist/editor/comments/item-anchor-copy.d.ts +6 -0
- package/dist/editor/comments/item-anchor-copy.js +6 -0
- package/dist/editor/comments/move-focus-if-unmoved.d.ts +6 -0
- package/dist/editor/comments/move-focus-if-unmoved.js +11 -0
- package/dist/editor/comments/popover-placement.d.ts +18 -0
- package/dist/editor/comments/popover-placement.js +58 -0
- package/dist/editor/comments/use-tracked-writes.d.ts +16 -0
- package/dist/editor/comments/use-tracked-writes.js +53 -0
- package/dist/editor/components/BranchAccessList.d.ts +15 -0
- package/dist/editor/components/BranchAccessList.js +52 -0
- package/dist/editor/components/BranchLockBanner.d.ts +22 -0
- package/dist/editor/components/BranchLockBanner.js +39 -0
- package/dist/editor/components/BranchPill.d.ts +32 -0
- package/dist/editor/components/BranchPill.js +33 -0
- package/dist/editor/components/BranchesDrawer.d.ts +11 -0
- package/dist/editor/components/BranchesDrawer.js +5 -0
- package/dist/editor/components/ConfirmDeleteModal.d.ts +6 -1
- package/dist/editor/components/ConfirmDeleteModal.js +3 -2
- package/dist/editor/components/DestructiveMenuItem.d.ts +7 -0
- package/dist/editor/components/DestructiveMenuItem.js +8 -0
- package/dist/editor/components/EditorCrashScreen.d.ts +17 -0
- package/dist/editor/components/EditorCrashScreen.js +22 -0
- package/dist/editor/components/EditorErrorBoundary.d.ts +38 -0
- package/dist/editor/components/EditorErrorBoundary.js +40 -0
- package/dist/editor/components/EditorHeader.d.ts +56 -106
- package/dist/editor/components/EditorHeader.js +130 -131
- package/dist/editor/components/EditorRail.d.ts +49 -0
- package/dist/editor/components/EditorRail.js +65 -0
- package/dist/editor/components/EntryBreadcrumb.d.ts +33 -0
- package/dist/editor/components/EntryBreadcrumb.js +56 -0
- package/dist/editor/components/EntryCreateModal.d.ts +12 -7
- package/dist/editor/components/EntryCreateModal.js +51 -57
- package/dist/editor/components/NoEditPermissionNotice.d.ts +6 -5
- package/dist/editor/components/NoEditPermissionNotice.js +5 -4
- package/dist/editor/components/QuickOpenPalette.d.ts +22 -0
- package/dist/editor/components/QuickOpenPalette.js +66 -0
- package/dist/editor/components/ReadOnlyDraftNotice.d.ts +11 -0
- package/dist/editor/components/ReadOnlyDraftNotice.js +12 -0
- package/dist/editor/components/ReasonedMenuItem.d.ts +15 -0
- package/dist/editor/components/ReasonedMenuItem.js +15 -0
- package/dist/editor/components/ReferencedByList.d.ts +11 -0
- package/dist/editor/components/ReferencedByList.js +28 -0
- package/dist/editor/components/RelativeTime.d.ts +10 -0
- package/dist/editor/components/RelativeTime.js +10 -0
- package/dist/editor/components/RenameEntryModal.d.ts +9 -1
- package/dist/editor/components/RenameEntryModal.js +19 -31
- package/dist/editor/components/RetryToastMessage.d.ts +9 -0
- package/dist/editor/components/RetryToastMessage.js +6 -0
- package/dist/editor/components/SaveAllResult.d.ts +25 -0
- package/dist/editor/components/SaveAllResult.js +86 -0
- package/dist/editor/components/SaveSplitButton.d.ts +30 -0
- package/dist/editor/components/SaveSplitButton.js +108 -0
- package/dist/editor/components/StagedChangesDrawer.d.ts +39 -0
- package/dist/editor/components/StagedChangesDrawer.js +92 -0
- package/dist/editor/components/UnavailableEntryNotice.d.ts +6 -0
- package/dist/editor/components/UnavailableEntryNotice.js +9 -0
- package/dist/editor/components/UnavailableTypeMessage.d.ts +6 -0
- package/dist/editor/components/UnavailableTypeMessage.js +9 -0
- package/dist/editor/components/UndoToastMessage.d.ts +18 -0
- package/dist/editor/components/UndoToastMessage.js +10 -0
- package/dist/editor/components/UserBadge.d.ts +2 -5
- package/dist/editor/components/UserBadge.js +62 -33
- package/dist/editor/components/ValidationSummary.d.ts +14 -0
- package/dist/editor/components/ValidationSummary.js +24 -0
- package/dist/editor/components/index.d.ts +2 -2
- package/dist/editor/components/index.js +2 -2
- package/dist/editor/context/ApiClientContext.d.ts +8 -2
- package/dist/editor/context/ApiClientContext.js +19 -8
- package/dist/editor/context/AssetContext.d.ts +13 -35
- package/dist/editor/context/AssetContext.js +12 -31
- package/dist/editor/context/EditorStateContext.d.ts +4 -4
- package/dist/editor/context/EditorStateContext.js +4 -4
- package/dist/editor/context/SWRProvider.d.ts +3 -3
- package/dist/editor/context/SiteMdxAllowContext.d.ts +4 -0
- package/dist/editor/context/SiteMdxAllowContext.js +7 -0
- package/dist/editor/context/index.d.ts +2 -1
- package/dist/editor/context/index.js +2 -1
- package/dist/editor/contrast.d.ts +19 -0
- package/dist/editor/contrast.js +41 -0
- package/dist/editor/copy.d.ts +18 -0
- package/dist/editor/copy.js +18 -0
- package/dist/editor/editor-config.js +16 -0
- package/dist/editor/editor-utils.d.ts +34 -8
- package/dist/editor/editor-utils.js +42 -20
- package/dist/editor/entry-search.d.ts +20 -0
- package/dist/editor/entry-search.js +34 -0
- package/dist/editor/field-breadcrumb.d.ts +12 -0
- package/dist/editor/field-breadcrumb.js +85 -0
- package/dist/editor/field-props.d.ts +86 -0
- package/dist/editor/field-props.js +27 -0
- package/dist/editor/field-target.d.ts +30 -0
- package/dist/editor/field-target.js +77 -0
- package/dist/editor/fields/BlockField.d.ts +12 -0
- package/dist/editor/fields/BlockField.js +89 -73
- package/dist/editor/fields/CodeField.d.ts +2 -0
- package/dist/editor/fields/CodeField.js +6 -2
- package/dist/editor/fields/DateTimeField.d.ts +4 -29
- package/dist/editor/fields/DateTimeField.js +79 -41
- package/dist/editor/fields/ExpandAllButton.d.ts +6 -0
- package/dist/editor/fields/ExpandAllButton.js +4 -0
- package/dist/editor/fields/FieldCrashFallback.d.ts +17 -0
- package/dist/editor/fields/FieldCrashFallback.js +30 -0
- package/dist/editor/fields/FieldLabel.d.ts +37 -0
- package/dist/editor/fields/FieldLabel.js +19 -0
- package/dist/editor/fields/ImageField.d.ts +4 -0
- package/dist/editor/fields/ImageField.js +29 -14
- package/dist/editor/fields/InlineGroupField.js +4 -3
- package/dist/editor/fields/ItemList.d.ts +42 -0
- package/dist/editor/fields/ItemList.js +130 -0
- package/dist/editor/fields/MarkdownField.d.ts +32 -0
- package/dist/editor/fields/MarkdownField.js +223 -46
- package/dist/editor/fields/MdxImageDialog.js +1 -1
- package/dist/editor/fields/NumberField.d.ts +2 -0
- package/dist/editor/fields/NumberField.js +8 -5
- package/dist/editor/fields/NumberListField.d.ts +2 -0
- package/dist/editor/fields/NumberListField.js +19 -16
- package/dist/editor/fields/ObjectField.d.ts +2 -7
- package/dist/editor/fields/ObjectField.js +15 -5
- package/dist/editor/fields/ObjectListField.d.ts +29 -0
- package/dist/editor/fields/ObjectListField.js +57 -0
- package/dist/editor/fields/ReferenceField.d.ts +2 -0
- package/dist/editor/fields/ReferenceField.js +34 -9
- package/dist/editor/fields/SelectField.d.ts +2 -0
- package/dist/editor/fields/SelectField.js +11 -2
- package/dist/editor/fields/StringListField.d.ts +4 -1
- package/dist/editor/fields/StringListField.js +22 -8
- package/dist/editor/fields/TextField.d.ts +2 -0
- package/dist/editor/fields/TextField.js +6 -2
- package/dist/editor/fields/ToggleField.d.ts +2 -0
- package/dist/editor/fields/ToggleField.js +8 -3
- package/dist/editor/fields/entry-link/InsertEntryLink.d.ts +1 -1
- package/dist/editor/fields/entry-link/InsertEntryLink.js +1 -1
- package/dist/editor/fields/form-expansion.d.ts +9 -0
- package/dist/editor/fields/form-expansion.js +2 -0
- package/dist/editor/fields/item-expansion.d.ts +15 -0
- package/dist/editor/fields/item-expansion.js +60 -0
- package/dist/editor/fields/list-item-keys.d.ts +8 -0
- package/dist/editor/fields/list-item-keys.js +50 -0
- package/dist/editor/fields/list-item-title.d.ts +20 -0
- package/dist/editor/fields/list-item-title.js +85 -0
- package/dist/editor/fields/markdown-export-options.d.ts +2 -0
- package/dist/editor/fields/markdown-export-options.js +8 -0
- package/dist/editor/fields/markdown-fidelity-visitors.d.ts +11 -0
- package/dist/editor/fields/markdown-fidelity-visitors.js +160 -0
- package/dist/editor/fields/mdx-jsx-support.d.ts +5 -1
- package/dist/editor/fields/mdx-jsx-support.js +157 -69
- package/dist/editor/fields/rich-text-failures.d.ts +5 -0
- package/dist/editor/fields/rich-text-failures.js +26 -0
- package/dist/editor/fields/toolbar-wrap.d.ts +7 -0
- package/dist/editor/fields/toolbar-wrap.js +35 -0
- package/dist/editor/form-outline.d.ts +13 -0
- package/dist/editor/form-outline.js +70 -0
- package/dist/editor/group-manager/GroupCard.d.ts +4 -1
- package/dist/editor/group-manager/GroupCard.js +12 -3
- package/dist/editor/group-manager/GroupForm.js +1 -1
- package/dist/editor/group-manager/InternalGroupsTab.d.ts +2 -1
- package/dist/editor/group-manager/InternalGroupsTab.js +4 -4
- package/dist/editor/group-manager/MemberList.d.ts +2 -1
- package/dist/editor/group-manager/MemberList.js +15 -4
- package/dist/editor/group-manager/hooks/useGroupState.d.ts +5 -0
- package/dist/editor/group-manager/hooks/useGroupState.js +30 -7
- package/dist/editor/group-manager/index.js +34 -5
- package/dist/editor/group-manager/types.d.ts +5 -2
- package/dist/editor/hooks/create-branch-request.d.ts +20 -0
- package/dist/editor/hooks/create-branch-request.js +54 -0
- package/dist/editor/hooks/save-all.d.ts +68 -0
- package/dist/editor/hooks/save-all.js +61 -0
- package/dist/editor/hooks/useBranchActions.d.ts +11 -1
- package/dist/editor/hooks/useBranchActions.js +42 -19
- package/dist/editor/hooks/useBranchManager.d.ts +21 -0
- package/dist/editor/hooks/useBranchManager.js +321 -125
- package/dist/editor/hooks/useBranchesData.d.ts +8 -4
- package/dist/editor/hooks/useBranchesData.js +9 -5
- package/dist/editor/hooks/useCommentSystem.d.ts +14 -2
- package/dist/editor/hooks/useCommentSystem.js +79 -55
- package/dist/editor/hooks/useCommentsData.d.ts +11 -7
- package/dist/editor/hooks/useCommentsData.js +20 -19
- package/dist/editor/hooks/useDraftManager.d.ts +77 -3
- package/dist/editor/hooks/useDraftManager.js +887 -94
- package/dist/editor/hooks/useEditorLayout.d.ts +53 -7
- package/dist/editor/hooks/useEditorLayout.js +98 -20
- package/dist/editor/hooks/useEntriesData.d.ts +2 -1
- package/dist/editor/hooks/useEntriesData.js +18 -4
- package/dist/editor/hooks/useEntryManager.d.ts +41 -2
- package/dist/editor/hooks/useEntryManager.js +227 -41
- package/dist/editor/hooks/useGroupManager.js +13 -16
- package/dist/editor/hooks/usePermissionManager.js +14 -6
- package/dist/editor/hooks/usePreviewMarks.d.ts +21 -0
- package/dist/editor/hooks/usePreviewMarks.js +33 -0
- package/dist/editor/hooks/useReferenceResolution.d.ts +10 -3
- package/dist/editor/hooks/useReferenceResolution.js +34 -177
- package/dist/editor/hooks/useSchemaManager.d.ts +25 -6
- package/dist/editor/hooks/useSchemaManager.js +97 -39
- package/dist/editor/hooks/useUserMetadata.d.ts +14 -4
- package/dist/editor/hooks/useUserMetadata.js +76 -47
- package/dist/editor/hooks/user-metadata-batcher.d.ts +8 -0
- package/dist/editor/hooks/user-metadata-batcher.js +33 -0
- package/dist/editor/media/AssetCard.d.ts +6 -7
- package/dist/editor/media/AssetCard.js +24 -31
- package/dist/editor/media/AssetListRow.d.ts +16 -0
- package/dist/editor/media/AssetListRow.js +41 -0
- package/dist/editor/media/CropStep.js +6 -1
- package/dist/editor/media/MediaLibrary.d.ts +4 -3
- package/dist/editor/media/MediaLibrary.js +11 -4
- package/dist/editor/media/MediaLibraryBody.d.ts +3 -3
- package/dist/editor/media/MediaLibraryBody.js +195 -80
- package/dist/editor/media/MediaLibrarySkeleton.d.ts +6 -0
- package/dist/editor/media/MediaLibrarySkeleton.js +14 -0
- package/dist/editor/media/crop-math.d.ts +3 -4
- package/dist/editor/media/crop-math.js +11 -22
- package/dist/editor/media/editor-image-src.d.ts +8 -0
- package/dist/editor/media/editor-image-src.js +10 -0
- package/dist/editor/media/format-bytes.d.ts +2 -0
- package/dist/editor/media/format-bytes.js +23 -0
- package/dist/editor/media/media-library-prefs.d.ts +23 -0
- package/dist/editor/media/media-library-prefs.js +49 -0
- package/dist/editor/media/media-library-view.d.ts +34 -0
- package/dist/editor/media/media-library-view.js +40 -0
- package/dist/editor/media/useAssetLibrary.d.ts +30 -0
- package/dist/editor/media/useAssetLibrary.js +126 -0
- package/dist/editor/media/useStableAssetOrder.d.ts +11 -0
- package/dist/editor/media/useStableAssetOrder.js +37 -0
- package/dist/editor/media/useThumbnailFailure.d.ts +6 -0
- package/dist/editor/media/useThumbnailFailure.js +16 -0
- package/dist/editor/permission-manager/GroupSelector.js +2 -2
- package/dist/editor/permission-manager/PermissionEditor.d.ts +1 -1
- package/dist/editor/permission-manager/PermissionEditor.js +15 -4
- package/dist/editor/permission-manager/PermissionLevelBadge.js +1 -1
- package/dist/editor/permission-manager/PermissionTree.d.ts +1 -1
- package/dist/editor/permission-manager/UserSelector.d.ts +1 -1
- package/dist/editor/permission-manager/UserSelector.js +3 -3
- package/dist/editor/permission-manager/index.js +12 -3
- package/dist/editor/permission-manager/types.d.ts +5 -2
- package/dist/editor/platform.d.ts +3 -0
- package/dist/editor/platform.js +9 -0
- package/dist/editor/preview-asset-base.d.ts +9 -0
- package/dist/editor/preview-asset-base.js +17 -0
- package/dist/editor/preview-bridge.d.ts +51 -27
- package/dist/editor/preview-bridge.js +103 -144
- package/dist/editor/preview-marks.d.ts +15 -0
- package/dist/editor/preview-marks.js +74 -0
- package/dist/editor/preview-path.d.ts +12 -0
- package/dist/editor/preview-path.js +45 -1
- package/dist/editor/preview-scale.d.ts +27 -0
- package/dist/editor/preview-scale.js +34 -0
- package/dist/editor/raw-asset-base.d.ts +5 -0
- package/dist/editor/raw-asset-base.js +14 -0
- package/dist/editor/relative-time.d.ts +4 -4
- package/dist/editor/relative-time.js +16 -8
- package/dist/editor/schema-editor/CollectionEditor.d.ts +20 -3
- package/dist/editor/schema-editor/CollectionEditor.js +361 -62
- package/dist/editor/schema-editor/EntryTypeEditor.d.ts +5 -1
- package/dist/editor/schema-editor/EntryTypeEditor.js +11 -6
- package/dist/editor/schema-editor/collection-draft.d.ts +22 -0
- package/dist/editor/schema-editor/collection-draft.js +40 -0
- package/dist/editor/schema-editor/index.d.ts +1 -1
- package/dist/editor/schema-label.d.ts +10 -0
- package/dist/editor/schema-label.js +17 -0
- package/dist/editor/settings-conflict.d.ts +5 -0
- package/dist/editor/settings-conflict.js +8 -0
- package/dist/editor/shell/ActivityRail.d.ts +37 -0
- package/dist/editor/shell/ActivityRail.js +91 -0
- package/dist/editor/shell/EditorShell.d.ts +17 -0
- package/dist/editor/shell/EditorShell.js +31 -0
- package/dist/editor/shell/PaneLayout.d.ts +28 -0
- package/dist/editor/shell/PaneLayout.js +116 -0
- package/dist/editor/shell/SidePanelHost.d.ts +35 -0
- package/dist/editor/shell/SidePanelHost.js +184 -0
- package/dist/editor/shell/TopBar.d.ts +12 -0
- package/dist/editor/shell/TopBar.js +14 -0
- package/dist/editor/shell/host-chrome.d.ts +16 -0
- package/dist/editor/shell/host-chrome.js +69 -0
- package/dist/editor/slug.d.ts +16 -0
- package/dist/editor/slug.js +43 -0
- package/dist/editor/theme.d.ts +2 -1
- package/dist/editor/theme.js +314 -13
- package/dist/editor/unanswered.d.ts +17 -0
- package/dist/editor/unanswered.js +26 -0
- package/dist/editor/unavailable-entry-type.d.ts +20 -0
- package/dist/editor/unavailable-entry-type.js +28 -0
- package/dist/editor/undo-removal.d.ts +57 -0
- package/dist/editor/undo-removal.js +163 -0
- package/dist/editor/user-display.d.ts +4 -0
- package/dist/editor/user-display.js +5 -0
- package/dist/editor/utils/confirm-modal.d.ts +8 -0
- package/dist/editor/utils/confirm-modal.js +12 -0
- package/dist/editor/utils/editor-errors.d.ts +19 -0
- package/dist/editor/utils/editor-errors.js +32 -0
- package/dist/editor/utils/focus-return.d.ts +56 -0
- package/dist/editor/utils/focus-return.js +106 -0
- package/dist/entry-link-resolver.d.ts +11 -1
- package/dist/entry-link-resolver.js +65 -5
- package/dist/entry-schema-registry.d.ts +3 -3
- package/dist/entry-schema-registry.js +7 -4
- package/dist/entry-schema.d.ts +49 -3
- package/dist/entry-schema.js +18 -0
- package/dist/git-manager.d.ts +172 -10
- package/dist/git-manager.js +449 -107
- package/dist/github-service.d.ts +39 -2
- package/dist/github-service.js +101 -7
- package/dist/http/handler.js +74 -9
- package/dist/http/types.d.ts +2 -0
- package/dist/http/worker-not-ready.d.ts +9 -4
- package/dist/http/worker-not-ready.js +59 -6
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/item-keys.d.ts +46 -0
- package/dist/item-keys.js +235 -0
- package/dist/operating-mode/editor-mode-check.d.ts +15 -0
- package/dist/operating-mode/editor-mode-check.js +24 -0
- package/dist/operating-mode/mode-env.d.ts +13 -14
- package/dist/operating-mode/mode-env.js +13 -14
- package/dist/operating-mode/types.d.ts +2 -2
- package/dist/paths/branch.d.ts +0 -1
- package/dist/paths/branch.js +1 -8
- package/dist/paths/index.d.ts +1 -1
- package/dist/paths/index.js +1 -1
- package/dist/paths/validation.js +0 -2
- package/dist/preview.d.ts +8 -0
- package/dist/preview.js +7 -0
- package/dist/reference-resolver.js +1 -0
- package/dist/resolve-canopy-user.d.ts +1 -1
- package/dist/resolve-canopy-user.js +1 -1
- package/dist/schema/meta-loader.d.ts +18 -8
- package/dist/schema/meta-loader.js +42 -9
- package/dist/schema/registry-fingerprint.d.ts +14 -0
- package/dist/schema/registry-fingerprint.js +63 -0
- package/dist/schema/resolver.d.ts +7 -4
- package/dist/schema/resolver.js +7 -6
- package/dist/schema/schema-store.d.ts +7 -10
- package/dist/schema/schema-store.js +13 -11
- package/dist/schema/schema-unavailable-error.d.ts +11 -0
- package/dist/schema/schema-unavailable-error.js +15 -0
- package/dist/schema/types.d.ts +22 -0
- package/dist/schema-registry-record.d.ts +35 -0
- package/dist/schema-registry-record.js +134 -0
- package/dist/server.d.ts +79 -9
- package/dist/server.js +62 -8
- package/dist/services.d.ts +33 -5
- package/dist/services.js +155 -37
- package/dist/settings-workspace.d.ts +23 -3
- package/dist/settings-workspace.js +159 -45
- package/dist/stamp-on-publish.d.ts +36 -0
- package/dist/stamp-on-publish.js +71 -0
- package/dist/static/index.d.ts +58 -5
- package/dist/static/index.js +133 -3
- package/dist/static/seo.d.ts +5 -5
- package/dist/static/seo.js +5 -5
- package/dist/submission-attribution.d.ts +8 -0
- package/dist/submission-attribution.js +22 -0
- package/dist/system-users.d.ts +12 -0
- package/dist/system-users.js +12 -0
- package/dist/task-queue/cms-task-queue.d.ts +1 -1
- package/dist/task-queue/cms-task-queue.js +1 -1
- package/dist/task-queue/index.d.ts +1 -1
- package/dist/task-queue/index.js +1 -1
- package/dist/task-queue/task-queue.d.ts +6 -0
- package/dist/task-queue/task-queue.js +29 -0
- package/dist/task-queue/worker-status.d.ts +35 -9
- package/dist/task-queue/worker-status.js +84 -17
- package/dist/types.d.ts +90 -9
- package/dist/url-collision.js +3 -3
- package/dist/url-exclusivity-fixtures.d.ts +8 -1
- package/dist/url-exclusivity-fixtures.js +11 -1
- package/dist/user.js +2 -1
- package/dist/utils/atomic-write.js +2 -1
- package/dist/utils/base-branch.d.ts +13 -0
- package/dist/utils/base-branch.js +23 -0
- package/dist/utils/content-serialize.d.ts +15 -7
- package/dist/utils/content-serialize.js +353 -51
- package/dist/utils/content-write-lock.d.ts +6 -1
- package/dist/utils/content-write-lock.js +21 -6
- package/dist/utils/debug.d.ts +1 -1
- package/dist/utils/debug.js +5 -3
- package/dist/utils/error.js +13 -2
- package/dist/utils/escape-text.d.ts +7 -0
- package/dist/utils/escape-text.js +27 -0
- package/dist/utils/fs.d.ts +12 -4
- package/dist/utils/fs.js +18 -5
- package/dist/utils/git.d.ts +21 -1
- package/dist/utils/git.js +63 -8
- package/dist/utils/json-source-splice.d.ts +14 -0
- package/dist/utils/json-source-splice.js +120 -0
- package/dist/utils/markdown-body-splice.d.ts +39 -0
- package/dist/utils/markdown-body-splice.js +421 -0
- package/dist/utils/occ-json-write.js +18 -12
- package/dist/utils/provision-log.d.ts +25 -0
- package/dist/utils/provision-log.js +49 -0
- package/dist/utils/provisioning-lock.d.ts +32 -1
- package/dist/utils/provisioning-lock.js +78 -32
- package/dist/utils/sanitize-href.d.ts +9 -23
- package/dist/utils/sanitize-href.js +14 -28
- package/dist/utils/title-field.d.ts +10 -0
- package/dist/utils/title-field.js +47 -0
- package/dist/utils/yaml-source-splice.d.ts +58 -0
- package/dist/utils/yaml-source-splice.js +515 -0
- package/dist/validation/block-structural-keys.d.ts +1 -1
- package/dist/validation/block-structural-keys.js +1 -1
- package/dist/validation/deletion-checker.d.ts +21 -29
- package/dist/validation/deletion-checker.js +41 -117
- package/dist/validation/entry-validator.d.ts +6 -10
- package/dist/validation/entry-validator.js +19 -26
- package/dist/validation/field-traversal.d.ts +22 -0
- package/dist/validation/field-traversal.js +39 -8
- package/dist/validation/markdown-safety.d.ts +68 -0
- package/dist/validation/markdown-safety.js +596 -0
- package/dist/validation/mdx-allowlist.d.ts +55 -0
- package/dist/validation/mdx-allowlist.js +183 -0
- package/dist/validation/reference-validator.d.ts +2 -0
- package/dist/validation/reference-validator.js +3 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/worker/branch-policy.d.ts +124 -0
- package/dist/worker/branch-policy.js +243 -0
- package/dist/worker/bundle-header.d.ts +117 -0
- package/dist/worker/bundle-header.js +253 -0
- package/dist/worker/cms-worker.d.ts +236 -142
- package/dist/worker/cms-worker.js +772 -285
- package/dist/worker/gateway-egress.d.ts +43 -0
- package/dist/worker/gateway-egress.js +209 -0
- package/dist/worker/gateway-instance.d.ts +42 -0
- package/dist/worker/gateway-instance.js +129 -0
- package/dist/worker/git-process.d.ts +81 -0
- package/dist/worker/git-process.js +234 -0
- package/dist/worker/git-sync.d.ts +34 -17
- package/dist/worker/git-sync.js +394 -131
- package/dist/worker/github-auth.d.ts +9 -9
- package/dist/worker/github-auth.js +13 -15
- package/dist/worker/github-gateway-http.d.ts +62 -0
- package/dist/worker/github-gateway-http.js +977 -0
- package/dist/worker/github-gateway-wire.d.ts +590 -0
- package/dist/worker/github-gateway-wire.js +488 -0
- package/dist/worker/github-gateway.d.ts +238 -0
- package/dist/worker/github-gateway.js +726 -0
- package/dist/worker/github-mirror-upkeep.d.ts +75 -0
- package/dist/worker/github-mirror-upkeep.js +266 -0
- package/dist/worker/github-mirror.d.ts +364 -0
- package/dist/worker/github-mirror.js +1030 -0
- package/dist/worker/github-transfer.d.ts +56 -0
- package/dist/worker/github-transfer.js +444 -0
- package/dist/worker/history-rewrite.d.ts +4 -5
- package/dist/worker/history-rewrite.js +12 -17
- package/dist/worker/provisioned-workspace.d.ts +5 -5
- package/dist/worker/provisioned-workspace.js +5 -5
- package/dist/worker/rebase.d.ts +1 -1
- package/dist/worker/rebase.js +58 -54
- package/dist/worker/remote-git-maintenance.d.ts +3 -0
- package/dist/worker/remote-git-maintenance.js +12 -0
- package/dist/worker/schema-gate.d.ts +49 -0
- package/dist/worker/schema-gate.js +226 -0
- package/dist/worker/self-checks.d.ts +107 -0
- package/dist/worker/self-checks.js +358 -0
- package/dist/worker/shared-repo-git.d.ts +96 -0
- package/dist/worker/shared-repo-git.js +459 -0
- package/dist/worker/sparse-cone.d.ts +20 -0
- package/dist/worker/sparse-cone.js +136 -0
- package/dist/worker/stale-mirror.d.ts +82 -0
- package/dist/worker/stale-mirror.js +130 -0
- package/dist/worker/task-runner.d.ts +5 -3
- package/dist/worker/task-runner.js +287 -186
- package/dist/worker/worker-context.d.ts +36 -37
- package/package.json +35 -7
- package/dist/editor/EditorPanes.d.ts +0 -10
- package/dist/editor/EditorPanes.js +0 -98
- package/dist/editor/components/EditorFooter.d.ts +0 -11
- package/dist/editor/components/EditorFooter.js +0 -9
- package/dist/editor/components/EditorSidebar.d.ts +0 -67
- package/dist/editor/components/EditorSidebar.js +0 -22
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Octokit } from '@octokit/rest';
|
|
2
1
|
import type { SanitizedBranchName } from '../paths/types.js';
|
|
3
2
|
import type { Task, TaskQueueLogger } from '../task-queue/cms-task-queue.js';
|
|
4
3
|
import type { WorkerStatusReport } from '../types.js';
|
|
4
|
+
import type { GitHubGateway } from './github-gateway.js';
|
|
5
5
|
/**
|
|
6
6
|
* The slice of {@link import('./cms-worker.js').CmsWorker} that its extracted
|
|
7
7
|
* clusters (task-runner.ts, git-sync.ts, rebase.ts, history-rewrite.ts) may
|
|
@@ -13,19 +13,16 @@ import type { WorkerStatusReport } from '../types.js';
|
|
|
13
13
|
* back onto the live instance and never snapshotted, and `CmsWorker.ctx()`
|
|
14
14
|
* builds a fresh context per call. That is load-bearing, not stylistic. The
|
|
15
15
|
* `cms-worker*.test.ts` files drive the class by reaching through the instance:
|
|
16
|
-
* they
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* rebase test hooks. A context that captured any
|
|
20
|
-
* hand the extracted code the pre-test value
|
|
21
|
-
* a test's push going to github.com for real.
|
|
22
|
-
* the late binding visible at every call site,
|
|
16
|
+
* they INSTALL a GitHub gateway aimed at a local fixture repository (and an
|
|
17
|
+
* Octokit stub) with `useLocalGitHubGateway` (test-utils/worker-gateway.ts),
|
|
18
|
+
* REPLACE `executeTask` and `pushBranchToGitHub`, set `running` directly, and
|
|
19
|
+
* SUBCLASS to override the two rebase test hooks. A context that captured any
|
|
20
|
+
* of those at construction would hand the extracted code the pre-test value --
|
|
21
|
+
* which for the gateway means a test's push going to github.com for real.
|
|
22
|
+
* Functions (`ctx.github()`) make the late binding visible at every call site,
|
|
23
|
+
* which a getter would hide.
|
|
23
24
|
*/
|
|
24
25
|
export interface WorkerContext {
|
|
25
|
-
/** GitHub owner, e.g. 'safeinsights'. */
|
|
26
|
-
readonly githubOwner: string;
|
|
27
|
-
/** GitHub repo name. */
|
|
28
|
-
readonly githubRepo: string;
|
|
29
26
|
/**
|
|
30
27
|
* The base branch's RAW git ref name. Git refs (fetch/rev-list/merge against
|
|
31
28
|
* it) must use this; filesystem paths must use `sanitizedBaseBranch`.
|
|
@@ -49,6 +46,8 @@ export interface WorkerContext {
|
|
|
49
46
|
readonly contentBranchesPath: string;
|
|
50
47
|
/** Content root directory name relative to repo root (default: 'content'). */
|
|
51
48
|
readonly contentRoot: string;
|
|
49
|
+
/** Longest the schema gate holds the base branch before advancing anyway (worker/schema-gate.ts). */
|
|
50
|
+
readonly schemaHoldMaxMs: number;
|
|
52
51
|
/** Per-task timeout in ms; also simple-git's inactivity block timeout. */
|
|
53
52
|
readonly taskTimeoutMs: number;
|
|
54
53
|
/** Max tasks to process per `processTaskQueue` cycle. */
|
|
@@ -57,30 +56,11 @@ export interface WorkerContext {
|
|
|
57
56
|
readonly maxRetries: number;
|
|
58
57
|
/** Task-queue debug logger. */
|
|
59
58
|
readonly log: TaskQueueLogger;
|
|
60
|
-
/** The worker's Octokit client, read at call time (tests replace it). */
|
|
61
|
-
octokit(): Octokit;
|
|
62
59
|
/**
|
|
63
|
-
* The
|
|
64
|
-
*
|
|
65
|
-
* auth the credential is minted on demand and lasts about an hour (see
|
|
66
|
-
* worker/github-auth.ts); the token path resolves immediately.
|
|
67
|
-
*
|
|
68
|
-
* A caller that needs the URL more than once resolves it ONCE into a local --
|
|
69
|
-
* see pushBranchToGitHub, where a second resolution inside the stale-lease
|
|
70
|
-
* catch would replace the very error being classified. Anything derived from
|
|
71
|
-
* it can embed the bot token, so a message reaching worker-status.json,
|
|
72
|
-
* branch.json or a task file goes through `redactCredentials` first.
|
|
60
|
+
* The worker's GitHub gateway (worker/github-gateway.ts), read at call time:
|
|
61
|
+
* every use of the GitHub credential and of Octokit goes through it.
|
|
73
62
|
*/
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Re-read the GitHub credential because an operation that used it just
|
|
77
|
-
* failed, read at call time. Best-effort and NEVER throws: a failed read, or
|
|
78
|
-
* one that does not settle within `taskTimeoutMs`, is logged and swallowed,
|
|
79
|
-
* because every caller is already reporting the failure that matters. The
|
|
80
|
-
* next `buildGitHubUrl()`/`octokit()` sees any rotated value. See
|
|
81
|
-
* `CmsWorker.refreshGitHubCredential`.
|
|
82
|
-
*/
|
|
83
|
-
refreshGitHubCredential(): Promise<void>;
|
|
63
|
+
github(): GitHubGateway;
|
|
84
64
|
/**
|
|
85
65
|
* Workspace directory for a branch named by its GIT REF name — the form task
|
|
86
66
|
* payloads carry. Sanitizes; `feature/x` lives in `feature-x`.
|
|
@@ -98,15 +78,34 @@ export interface WorkerContext {
|
|
|
98
78
|
* Push a branch from remote.git to GitHub, read at call time. Routed through
|
|
99
79
|
* the instance for the same reason as `executeTask`: cms-worker.test.ts
|
|
100
80
|
* replaces it with a spy and asserts the spy was NOT called on the
|
|
101
|
-
* base-branch-refusal path.
|
|
81
|
+
* base-branch-refusal path. `signal` kills the push's git process when it
|
|
82
|
+
* aborts (simple-git's `abort` option).
|
|
102
83
|
*/
|
|
103
|
-
pushBranchToGitHub(branch: string): Promise<void>;
|
|
104
|
-
/** Whether the worker is
|
|
84
|
+
pushBranchToGitHub(branch: string, signal?: AbortSignal): Promise<void>;
|
|
85
|
+
/** Whether the worker is running; both poll loops bail when false. */
|
|
105
86
|
isRunning(): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Whether `stop()` has been called. Every loop checks it at its boundaries
|
|
89
|
+
* (before a claim, a sync stage, a branch rebase), never mid-step. Distinct
|
|
90
|
+
* from `!isRunning()`, which is also true of a worker never started, as the
|
|
91
|
+
* test entry points drive it.
|
|
92
|
+
*/
|
|
93
|
+
isDraining(): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Aborts when a draining `stop()` reaches its deadline: in-flight work that
|
|
96
|
+
* observes it is cut off so the worker can exit. See `CmsWorker.stop`.
|
|
97
|
+
*/
|
|
98
|
+
shutdownSignal(): AbortSignal;
|
|
106
99
|
/** The worker's self-reported status object, lazily initialized. */
|
|
107
100
|
ensureStatusReport(): WorkerStatusReport;
|
|
108
101
|
/** This deployment's own settings branch name. Throws on an invalid name. */
|
|
109
102
|
ensureSettingsBranch(): string;
|
|
103
|
+
/**
|
|
104
|
+
* What this worker's tracked-branch warnings have said, by key (git-sync.ts's `warnOnce`): a
|
|
105
|
+
* diverged branch's tips and reason, an unchecked orphan's error. Held per instance, so a
|
|
106
|
+
* restarted worker warns afresh.
|
|
107
|
+
*/
|
|
108
|
+
warnedDivergences(): Map<string, string>;
|
|
110
109
|
/**
|
|
111
110
|
* Test hook: fires when the rebase has reported conflicted files and is about
|
|
112
111
|
* to `checkout --theirs` them. No-op in production.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"//": "@codemirror/language, @lezer/highlight: workaround — @mdxeditor/editor uses cm6-theme-basic-light which peer-requires these but mdxeditor doesn't declare them as dependencies",
|
|
3
3
|
"name": "canopycms",
|
|
4
|
-
"version": "0.0
|
|
4
|
+
"version": "0.1.0",
|
|
5
5
|
"description": "CanopyCMS core package: schema-driven content, branch-aware editing, and editor UI for Next.js.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -11,6 +11,14 @@
|
|
|
11
11
|
},
|
|
12
12
|
"private": false,
|
|
13
13
|
"type": "module",
|
|
14
|
+
"sideEffects": [
|
|
15
|
+
"./src/cli/cli.ts",
|
|
16
|
+
"./dist/cli/cli.js",
|
|
17
|
+
"./src/editor/theme.tsx",
|
|
18
|
+
"./dist/editor/theme.js",
|
|
19
|
+
"./src/test-utils/console-spy.ts",
|
|
20
|
+
"./src/test-utils/quiet-provision-log.ts"
|
|
21
|
+
],
|
|
14
22
|
"main": "dist/index.js",
|
|
15
23
|
"types": "dist/index.d.ts",
|
|
16
24
|
"bin": {
|
|
@@ -27,6 +35,11 @@
|
|
|
27
35
|
"import": "./dist/client.js",
|
|
28
36
|
"require": "./dist/client.js"
|
|
29
37
|
},
|
|
38
|
+
"./preview": {
|
|
39
|
+
"types": "./dist/preview.d.ts",
|
|
40
|
+
"import": "./dist/preview.js",
|
|
41
|
+
"require": "./dist/preview.js"
|
|
42
|
+
},
|
|
30
43
|
"./server": {
|
|
31
44
|
"types": "./dist/server.d.ts",
|
|
32
45
|
"import": "./dist/server.js",
|
|
@@ -79,14 +92,16 @@
|
|
|
79
92
|
}
|
|
80
93
|
},
|
|
81
94
|
"files": [
|
|
82
|
-
"dist"
|
|
95
|
+
"dist",
|
|
96
|
+
"CHANGELOG.md"
|
|
83
97
|
],
|
|
84
98
|
"engines": {
|
|
85
99
|
"node": ">=22.12.0"
|
|
86
100
|
},
|
|
87
101
|
"dependencies": {
|
|
88
|
-
"@aws-sdk/client-s3": "^3.
|
|
102
|
+
"@aws-sdk/client-s3": "^3.1092.0",
|
|
89
103
|
"@aws-sdk/s3-presigned-post": "^3.600.0",
|
|
104
|
+
"@aws-sdk/s3-request-presigner": "^3.600.0",
|
|
90
105
|
"@clack/prompts": "^1.1.0",
|
|
91
106
|
"@codemirror/language": "^6.0.0",
|
|
92
107
|
"@dnd-kit/core": "^6.3.1",
|
|
@@ -96,11 +111,12 @@
|
|
|
96
111
|
"@lezer/highlight": "^1.0.0",
|
|
97
112
|
"@mantine/colors-generator": "^7.14.2",
|
|
98
113
|
"@mantine/core": "^7.14.2",
|
|
114
|
+
"@mantine/dates": "7.17.8",
|
|
99
115
|
"@mantine/dropzone": "7.17.8",
|
|
100
116
|
"@mantine/hooks": "^7.14.2",
|
|
101
117
|
"@mantine/modals": "^7.14.2",
|
|
102
118
|
"@mantine/notifications": "^7.14.2",
|
|
103
|
-
"@mdxeditor/editor": "^3.
|
|
119
|
+
"@mdxeditor/editor": "^4.3.2",
|
|
104
120
|
"@octokit/auth-token": "^4.0.0",
|
|
105
121
|
"@octokit/plugin-throttling": "^8.2.0",
|
|
106
122
|
"@octokit/rest": "^20.0.2",
|
|
@@ -108,18 +124,28 @@
|
|
|
108
124
|
"chokidar": "^4.0.3",
|
|
109
125
|
"chroma-js": "^3.2.0",
|
|
110
126
|
"content-disposition": "^2.0.1",
|
|
127
|
+
"dataloader": "^2.2.3",
|
|
128
|
+
"dayjs": "1.11.21",
|
|
111
129
|
"fast-deep-equal": "^3.1.3",
|
|
112
130
|
"file-type": "^21.3.2",
|
|
113
131
|
"gray-matter": "^4.0.3",
|
|
114
132
|
"image-size": "^2.0.2",
|
|
115
133
|
"jiti": "^2.6.1",
|
|
134
|
+
"jsonc-parser": "^3.3.1",
|
|
135
|
+
"lru-cache": "^10.4.3",
|
|
136
|
+
"mdast-util-from-markdown": "^2.0.3",
|
|
137
|
+
"mdast-util-gfm": "^3.1.0",
|
|
138
|
+
"mdast-util-mdx": "^3.0.0",
|
|
139
|
+
"micromark-extension-gfm": "^3.0.0",
|
|
140
|
+
"micromark-extension-mdxjs": "^3.0.0",
|
|
116
141
|
"minimatch": "^9.0.7",
|
|
117
142
|
"minimist": "^1.2.8",
|
|
118
143
|
"pathe": "^1.1.2",
|
|
119
144
|
"picocolors": "^1.1.1",
|
|
120
145
|
"proper-lockfile": "^4.1.2",
|
|
121
146
|
"react-easy-crop": "^6.2.2",
|
|
122
|
-
"react-
|
|
147
|
+
"react-remove-scroll": "^2.7.2",
|
|
148
|
+
"react-resizable-panels": "4.14.1",
|
|
123
149
|
"sanitize-html": "^2.17.5",
|
|
124
150
|
"sharp": "^0.35.3",
|
|
125
151
|
"short-uuid": "^6.0.3",
|
|
@@ -133,8 +159,8 @@
|
|
|
133
159
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
134
160
|
},
|
|
135
161
|
"devDependencies": {
|
|
136
|
-
"@smithy/util-stream": "^3.0.0 || ^4.0.0",
|
|
137
162
|
"@playwright/test": "^1.57.0",
|
|
163
|
+
"@smithy/util-stream": "^3.0.0 || ^4.0.0",
|
|
138
164
|
"@storybook/addon-essentials": "^8.1.11",
|
|
139
165
|
"@storybook/react": "^8.1.11",
|
|
140
166
|
"@storybook/react-vite": "^8.1.11",
|
|
@@ -147,9 +173,9 @@
|
|
|
147
173
|
"@types/react": "^18.3.12",
|
|
148
174
|
"@types/react-dom": "^18.3.1",
|
|
149
175
|
"@types/sanitize-html": "^2.16.1",
|
|
150
|
-
"aws-sdk-client-mock": "^4.0.0",
|
|
151
176
|
"@vitejs/plugin-react": "^5.1.0",
|
|
152
177
|
"autoprefixer": "^10.4.20",
|
|
178
|
+
"aws-sdk-client-mock": "^4.0.0",
|
|
153
179
|
"esbuild": "^0.25.0",
|
|
154
180
|
"jsdom": "^24.1.3",
|
|
155
181
|
"postcss": "^8.5.10",
|
|
@@ -157,6 +183,7 @@
|
|
|
157
183
|
"react-dom": "^18.3.1",
|
|
158
184
|
"storybook": "^8.6.17",
|
|
159
185
|
"tsx": "^4.19.0",
|
|
186
|
+
"typescript": "^5.6.3",
|
|
160
187
|
"vite": "^6.4.2",
|
|
161
188
|
"vitest": "^4.1.0"
|
|
162
189
|
},
|
|
@@ -168,6 +195,7 @@
|
|
|
168
195
|
"test": "vitest run",
|
|
169
196
|
"typecheck": "tsc --noEmit",
|
|
170
197
|
"generate:client": "npx tsx scripts/generate-client.ts",
|
|
198
|
+
"generate:aws-example": "tsx scripts/generate-aws-example.ts",
|
|
171
199
|
"storybook": "storybook dev -p 6006 -c .storybook",
|
|
172
200
|
"storybook:build": "storybook build -c .storybook"
|
|
173
201
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type PaneLayout = 'side' | 'stacked';
|
|
3
|
-
export interface EditorPanesProps {
|
|
4
|
-
layout?: PaneLayout;
|
|
5
|
-
onLayoutChange?: (layout: PaneLayout) => void;
|
|
6
|
-
preview?: React.ReactNode;
|
|
7
|
-
form?: React.ReactNode;
|
|
8
|
-
}
|
|
9
|
-
export declare const EditorPanes: React.FC<EditorPanesProps>;
|
|
10
|
-
export default EditorPanes;
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useMemo, useRef, useState, useEffect } from 'react';
|
|
4
|
-
import { Box, Paper, rem } from '@mantine/core';
|
|
5
|
-
import SplitPane from 'react-split-pane';
|
|
6
|
-
export const EditorPanes = ({ layout: layoutProp = 'side', onLayoutChange: _, preview, form, }) => {
|
|
7
|
-
const TypedSplitPane = SplitPane;
|
|
8
|
-
const splitContainerRef = useRef(null);
|
|
9
|
-
const [layout, setLayout] = useState(layoutProp);
|
|
10
|
-
const [sidePrimarySize, setSidePrimarySize] = useState(52);
|
|
11
|
-
const [stackedPrimarySize, setStackedPrimarySize] = useState(58);
|
|
12
|
-
// Turn off iframe/pane pointer events while dragging so the gutter keeps receiving mouse events.
|
|
13
|
-
const [isDragging, setIsDragging] = useState(false);
|
|
14
|
-
useEffect(() => {
|
|
15
|
-
setLayout(layoutProp);
|
|
16
|
-
}, [layoutProp]);
|
|
17
|
-
const direction = layout === 'side' ? 'vertical' : 'horizontal';
|
|
18
|
-
const primarySize = useMemo(() => (layout === 'side' ? sidePrimarySize : stackedPrimarySize), [layout, sidePrimarySize, stackedPrimarySize]);
|
|
19
|
-
const resizerStyle = useMemo(() => ({
|
|
20
|
-
background: layout === 'side'
|
|
21
|
-
? 'linear-gradient(90deg, var(--mantine-color-gray-0), var(--mantine-color-gray-1))'
|
|
22
|
-
: 'linear-gradient(180deg, var(--mantine-color-gray-0), var(--mantine-color-gray-1))',
|
|
23
|
-
boxShadow: isDragging
|
|
24
|
-
? 'inset 0 0 0 1px var(--mantine-color-brand-4), 0 0 0 1px var(--mantine-color-brand-1)'
|
|
25
|
-
: 'inset 0 0 0 1px var(--mantine-color-gray-3)',
|
|
26
|
-
cursor: layout === 'side' ? 'col-resize' : 'row-resize',
|
|
27
|
-
width: layout === 'side' ? rem(12) : '100%',
|
|
28
|
-
height: layout === 'side' ? '100%' : rem(12),
|
|
29
|
-
margin: layout === 'side' ? `0 -${rem(2)}` : `-${rem(2)} 0`,
|
|
30
|
-
borderRadius: layout === 'side' ? rem(0) : rem(0),
|
|
31
|
-
transition: 'box-shadow 120ms ease, background 120ms ease',
|
|
32
|
-
flexShrink: 0,
|
|
33
|
-
}), [isDragging, layout]);
|
|
34
|
-
const updateSizeFromPixels = (nextPixels, nextLayout) => {
|
|
35
|
-
const total = nextLayout === 'side'
|
|
36
|
-
? (splitContainerRef.current?.clientWidth ?? 0)
|
|
37
|
-
: (splitContainerRef.current?.clientHeight ?? 0);
|
|
38
|
-
// Guard: ensure valid dimensions before calculating
|
|
39
|
-
if (!total || total <= 0 || nextPixels <= 0)
|
|
40
|
-
return;
|
|
41
|
-
const percent = Math.min(85, Math.max(15, (nextPixels / total) * 100));
|
|
42
|
-
if (nextLayout === 'side') {
|
|
43
|
-
setSidePrimarySize(percent);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
setStackedPrimarySize(percent);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
return (_jsx(Box, { h: "100%", style: { minHeight: '70vh' }, children: _jsx(Paper, { radius: 0, shadow: "xs", withBorder: true, style: {
|
|
50
|
-
display: 'flex',
|
|
51
|
-
height: '100%',
|
|
52
|
-
minHeight: 0,
|
|
53
|
-
overflow: 'hidden',
|
|
54
|
-
flexDirection: layout === 'side' ? 'row' : 'column',
|
|
55
|
-
width: '100%',
|
|
56
|
-
}, children: _jsx(Box, { ref: splitContainerRef, style: { display: 'flex', flex: 1, minHeight: 0, width: '100%' }, children: _jsxs(TypedSplitPane, { split: direction, minSize: 120, size: `${primarySize}%`, allowResize: true, onChange: (next) => updateSizeFromPixels(next, layout), onDragStarted: () => setIsDragging(true), onDragFinished: (next) => {
|
|
57
|
-
updateSizeFromPixels(next, layout);
|
|
58
|
-
setIsDragging(false);
|
|
59
|
-
}, style: {
|
|
60
|
-
position: 'relative',
|
|
61
|
-
minHeight: 0,
|
|
62
|
-
width: '100%',
|
|
63
|
-
height: '100%',
|
|
64
|
-
userSelect: isDragging ? 'none' : undefined,
|
|
65
|
-
}, paneStyle: {
|
|
66
|
-
minWidth: 0,
|
|
67
|
-
minHeight: 0,
|
|
68
|
-
display: 'flex',
|
|
69
|
-
overflow: 'auto',
|
|
70
|
-
}, resizerStyle: resizerStyle, children: [_jsx(Box, { "data-testid": "preview-pane", style: {
|
|
71
|
-
minWidth: 0,
|
|
72
|
-
minHeight: 0,
|
|
73
|
-
overflow: 'auto',
|
|
74
|
-
flex: 1,
|
|
75
|
-
pointerEvents: isDragging ? 'none' : undefined,
|
|
76
|
-
}, children: _jsx(Box, { h: "100%", w: "100%", style: {
|
|
77
|
-
minHeight: '100%',
|
|
78
|
-
minWidth: 0,
|
|
79
|
-
overflow: 'auto',
|
|
80
|
-
flex: 1,
|
|
81
|
-
pointerEvents: isDragging ? 'none' : undefined,
|
|
82
|
-
}, children: preview ?? 'Preview' }) }), _jsx(Box, { "data-testid": "form-pane", style: {
|
|
83
|
-
minWidth: 0,
|
|
84
|
-
minHeight: 0,
|
|
85
|
-
overflow: 'auto',
|
|
86
|
-
flex: 1,
|
|
87
|
-
pointerEvents: isDragging ? 'none' : undefined,
|
|
88
|
-
}, children: _jsx(Box, { h: "100%", w: "100%", style: {
|
|
89
|
-
padding: 20,
|
|
90
|
-
minHeight: '100%',
|
|
91
|
-
minWidth: 0,
|
|
92
|
-
overflow: 'auto',
|
|
93
|
-
flex: 1,
|
|
94
|
-
pointerEvents: isDragging ? 'none' : undefined,
|
|
95
|
-
backgroundColor: 'var(--mantine-color-gray-1)',
|
|
96
|
-
}, children: form ?? 'Form' }) })] }) }) }) }));
|
|
97
|
-
};
|
|
98
|
-
export default EditorPanes;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface EditorFooterProps {
|
|
2
|
-
/**
|
|
3
|
-
* Optional custom footer content.
|
|
4
|
-
*/
|
|
5
|
-
children?: React.ReactNode;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Footer component for the Editor.
|
|
9
|
-
* Displays static links (Terms, Privacy) and copyright notice.
|
|
10
|
-
*/
|
|
11
|
-
export declare function EditorFooter({ children }: EditorFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Group, Paper, Text } from '@mantine/core';
|
|
3
|
-
/**
|
|
4
|
-
* Footer component for the Editor.
|
|
5
|
-
* Displays static links (Terms, Privacy) and copyright notice.
|
|
6
|
-
*/
|
|
7
|
-
export function EditorFooter({ children }) {
|
|
8
|
-
return (_jsx(Paper, { withBorder: true, radius: 0, shadow: "sm", px: "md", py: "xs", style: { position: 'fixed', left: 0, right: 0, bottom: 0, zIndex: 40 }, children: children ?? (_jsxs(Group, { gap: "md", justify: "center", children: [_jsx(Text, { size: "xs", c: "dimmed", children: "Terms" }), _jsx(Text, { size: "xs", c: "dimmed", children: "Privacy" }), _jsx(Text, { size: "xs", c: "dimmed", children: "\u00A9 CanopyCMS" })] })) }));
|
|
9
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { PaneLayout } from '../EditorPanes.js';
|
|
2
|
-
export interface EditorSidebarProps {
|
|
3
|
-
/**
|
|
4
|
-
* Current layout mode (side or stacked).
|
|
5
|
-
*/
|
|
6
|
-
layout: PaneLayout;
|
|
7
|
-
/**
|
|
8
|
-
* Whether field highlighting is enabled.
|
|
9
|
-
*/
|
|
10
|
-
highlightEnabled: boolean;
|
|
11
|
-
/**
|
|
12
|
-
* Width of the sidebar in pixels.
|
|
13
|
-
*/
|
|
14
|
-
sidebarWidth: number;
|
|
15
|
-
/**
|
|
16
|
-
* Height of the header in pixels (for positioning).
|
|
17
|
-
*/
|
|
18
|
-
headerHeight: number;
|
|
19
|
-
/**
|
|
20
|
-
* Height of the footer in pixels (for positioning).
|
|
21
|
-
*/
|
|
22
|
-
footerHeight: number;
|
|
23
|
-
/**
|
|
24
|
-
* Callback when layout changes.
|
|
25
|
-
*/
|
|
26
|
-
onLayoutChange: (layout: PaneLayout) => void;
|
|
27
|
-
/**
|
|
28
|
-
* Callback when highlight toggle is clicked.
|
|
29
|
-
*/
|
|
30
|
-
onHighlightToggle: () => void;
|
|
31
|
-
/**
|
|
32
|
-
* Callback when permission manager should be opened.
|
|
33
|
-
*/
|
|
34
|
-
onPermissionManagerOpen: () => void;
|
|
35
|
-
/**
|
|
36
|
-
* Callback when group manager should be opened.
|
|
37
|
-
*/
|
|
38
|
-
onGroupManagerOpen: () => void;
|
|
39
|
-
/**
|
|
40
|
-
* Callback when the media library should be opened.
|
|
41
|
-
*/
|
|
42
|
-
onMediaLibraryOpen: () => void;
|
|
43
|
-
/**
|
|
44
|
-
* Callback when the System Health panel should be opened. Admin-only:
|
|
45
|
-
* the "System health" menu item only renders when this is provided --
|
|
46
|
-
* the caller (Editor.tsx) is responsible for the isAdmin() gate.
|
|
47
|
-
*/
|
|
48
|
-
onSystemHealthOpen?: () => void;
|
|
49
|
-
/**
|
|
50
|
-
* Custom account component to render (e.g., Clerk's UserButton).
|
|
51
|
-
* If provided, replaces the default account button.
|
|
52
|
-
*/
|
|
53
|
-
AccountComponent?: React.ComponentType;
|
|
54
|
-
/**
|
|
55
|
-
* Callback when account button is clicked (if no AccountComponent provided).
|
|
56
|
-
*/
|
|
57
|
-
onAccountClick?: () => void;
|
|
58
|
-
/**
|
|
59
|
-
* Callback when logout button is clicked.
|
|
60
|
-
*/
|
|
61
|
-
onLogoutClick?: () => void;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Sidebar component for the Editor.
|
|
65
|
-
* Contains layout toggle, highlight toggle, settings menu, account button, and logout button.
|
|
66
|
-
*/
|
|
67
|
-
export declare function EditorSidebar({ layout, highlightEnabled, sidebarWidth, headerHeight, footerHeight, onLayoutChange, onHighlightToggle, onPermissionManagerOpen, onGroupManagerOpen, onMediaLibraryOpen, onSystemHealthOpen, AccountComponent, onAccountClick, onLogoutClick, }: EditorSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { ActionIcon, Menu, Paper, Stack } from '@mantine/core';
|
|
3
|
-
import { IconUserCircle, IconLogout, IconPhoto, IconSettings, IconLayoutColumns, IconLayoutRows, IconSquareDashed, IconActivity, } from '@tabler/icons-react';
|
|
4
|
-
/**
|
|
5
|
-
* Sidebar component for the Editor.
|
|
6
|
-
* Contains layout toggle, highlight toggle, settings menu, account button, and logout button.
|
|
7
|
-
*/
|
|
8
|
-
export function EditorSidebar({ layout, highlightEnabled, sidebarWidth, headerHeight, footerHeight, onLayoutChange, onHighlightToggle, onPermissionManagerOpen, onGroupManagerOpen, onMediaLibraryOpen, onSystemHealthOpen, AccountComponent, onAccountClick, onLogoutClick, }) {
|
|
9
|
-
return (_jsxs(Paper, { withBorder: true, shadow: "sm", radius: 0, style: {
|
|
10
|
-
position: 'fixed',
|
|
11
|
-
top: headerHeight,
|
|
12
|
-
bottom: footerHeight,
|
|
13
|
-
right: 0,
|
|
14
|
-
width: sidebarWidth,
|
|
15
|
-
display: 'flex',
|
|
16
|
-
flexDirection: 'column',
|
|
17
|
-
justifyContent: 'space-between',
|
|
18
|
-
alignItems: 'center',
|
|
19
|
-
padding: '10px 6px',
|
|
20
|
-
gap: 8,
|
|
21
|
-
}, children: [_jsxs(Stack, { gap: "sm", align: "center", style: { width: '100%', paddingTop: 6 }, children: [_jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Toggle layout", onClick: () => onLayoutChange(layout === 'side' ? 'stacked' : 'side'), children: layout === 'side' ? _jsx(IconLayoutRows, { size: 18 }) : _jsx(IconLayoutColumns, { size: 18 }) }), _jsx(ActionIcon, { variant: highlightEnabled ? 'filled' : 'subtle', color: highlightEnabled ? 'brand' : 'gray', size: "lg", radius: "md", "aria-pressed": highlightEnabled, "aria-label": "Toggle highlights", onClick: onHighlightToggle, children: _jsx(IconSquareDashed, { size: 18 }) })] }), _jsxs(Stack, { gap: "xs", align: "center", children: [_jsxs(Menu, { shadow: "md", width: 200, position: "left", children: [_jsx(Menu.Target, { children: _jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Settings", children: _jsx(IconSettings, { size: 18 }) }) }), _jsxs(Menu.Dropdown, { children: [_jsx(Menu.Label, { children: "Settings" }), _jsx(Menu.Item, { onClick: onPermissionManagerOpen, children: "Manage Permissions" }), _jsx(Menu.Item, { onClick: onGroupManagerOpen, children: "Manage Groups" }), _jsx(Menu.Item, { leftSection: _jsx(IconPhoto, { size: 14 }), onClick: onMediaLibraryOpen, children: "Media library" }), onSystemHealthOpen && (_jsx(Menu.Item, { leftSection: _jsx(IconActivity, { size: 14 }), onClick: onSystemHealthOpen, children: "System health" }))] })] }), AccountComponent ? (_jsx(AccountComponent, {})) : (_jsxs(_Fragment, { children: [onAccountClick && (_jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Account", onClick: onAccountClick, children: _jsx(IconUserCircle, { size: 18 }) })), onLogoutClick && (_jsx(ActionIcon, { variant: "subtle", size: "lg", radius: "md", "aria-label": "Sign out", onClick: onLogoutClick, children: _jsx(IconLogout, { size: 18 }) }))] }))] })] }));
|
|
22
|
-
}
|