@snokam/page-content 0.0.0-stage → 6.9.5
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 +1466 -0
- package/dist/admin-form-labels.d.ts +11 -0
- package/dist/admin-form-labels.d.ts.map +1 -0
- package/dist/admin-form-labels.js +21 -0
- package/dist/admin-form-labels.js.map +1 -0
- package/dist/app-router/MetaTags.d.ts +2 -0
- package/dist/app-router/MetaTags.d.ts.map +1 -0
- package/dist/app-router/MetaTags.js +10 -0
- package/dist/app-router/MetaTags.js.map +1 -0
- package/dist/app-router/actions.d.ts +62 -0
- package/dist/app-router/actions.d.ts.map +1 -0
- package/dist/app-router/actions.js +18 -0
- package/dist/app-router/actions.js.map +1 -0
- package/dist/app-router/draft.d.ts +3 -0
- package/dist/app-router/draft.d.ts.map +1 -0
- package/dist/app-router/draft.js +14 -0
- package/dist/app-router/draft.js.map +1 -0
- package/dist/app-router/error-page/TenantErrorPage.d.ts +5 -0
- package/dist/app-router/error-page/TenantErrorPage.d.ts.map +1 -0
- package/dist/app-router/error-page/TenantErrorPage.js +20 -0
- package/dist/app-router/error-page/TenantErrorPage.js.map +1 -0
- package/dist/app-router/error-page/icons.d.ts +8 -0
- package/dist/app-router/error-page/icons.d.ts.map +1 -0
- package/dist/app-router/error-page/icons.js +11 -0
- package/dist/app-router/error-page/icons.js.map +1 -0
- package/dist/app-router/error-page/index.d.ts +3 -0
- package/dist/app-router/error-page/index.d.ts.map +1 -0
- package/dist/app-router/error-page/index.js +3 -0
- package/dist/app-router/error-page/index.js.map +1 -0
- package/dist/app-router/hoc/index.d.ts +5 -0
- package/dist/app-router/hoc/index.d.ts.map +1 -0
- package/dist/app-router/hoc/index.js +5 -0
- package/dist/app-router/hoc/index.js.map +1 -0
- package/dist/app-router/hoc/withSanityAppContent.d.ts +11 -0
- package/dist/app-router/hoc/withSanityAppContent.d.ts.map +1 -0
- package/dist/app-router/hoc/withSanityAppContent.js +31 -0
- package/dist/app-router/hoc/withSanityAppContent.js.map +1 -0
- package/dist/app-router/hoc/withSanityPageContent.d.ts +13 -0
- package/dist/app-router/hoc/withSanityPageContent.d.ts.map +1 -0
- package/dist/app-router/hoc/withSanityPageContent.js +23 -0
- package/dist/app-router/hoc/withSanityPageContent.js.map +1 -0
- package/dist/app-router/index.d.ts +6 -0
- package/dist/app-router/index.d.ts.map +1 -0
- package/dist/app-router/index.js +7 -0
- package/dist/app-router/index.js.map +1 -0
- package/dist/app-router/providers/AppContentProvider.d.ts +13 -0
- package/dist/app-router/providers/AppContentProvider.d.ts.map +1 -0
- package/dist/app-router/providers/AppContentProvider.js +11 -0
- package/dist/app-router/providers/AppContentProvider.js.map +1 -0
- package/dist/app-router/providers/PageContentProvider.d.ts +15 -0
- package/dist/app-router/providers/PageContentProvider.d.ts.map +1 -0
- package/dist/app-router/providers/PageContentProvider.js +11 -0
- package/dist/app-router/providers/PageContentProvider.js.map +1 -0
- package/dist/app-router/providers/index.d.ts +3 -0
- package/dist/app-router/providers/index.d.ts.map +1 -0
- package/dist/app-router/providers/index.js +4 -0
- package/dist/app-router/providers/index.js.map +1 -0
- package/dist/app-router/server.d.ts +12 -0
- package/dist/app-router/server.d.ts.map +1 -0
- package/dist/app-router/server.js +10 -0
- package/dist/app-router/server.js.map +1 -0
- package/dist/app-router/tenant/app-content.d.ts +57 -0
- package/dist/app-router/tenant/app-content.d.ts.map +1 -0
- package/dist/app-router/tenant/app-content.js +5 -0
- package/dist/app-router/tenant/app-content.js.map +1 -0
- package/dist/app-router/tenant/branding.d.ts +12 -0
- package/dist/app-router/tenant/branding.d.ts.map +1 -0
- package/dist/app-router/tenant/branding.js +62 -0
- package/dist/app-router/tenant/branding.js.map +1 -0
- package/dist/app-router/tenant/content.d.ts +16 -0
- package/dist/app-router/tenant/content.d.ts.map +1 -0
- package/dist/app-router/tenant/content.js +44 -0
- package/dist/app-router/tenant/content.js.map +1 -0
- package/dist/app-router/tenant/layout.d.ts +11 -0
- package/dist/app-router/tenant/layout.d.ts.map +1 -0
- package/dist/app-router/tenant/layout.js +17 -0
- package/dist/app-router/tenant/layout.js.map +1 -0
- package/dist/app-router/tenant/metadata.d.ts +9 -0
- package/dist/app-router/tenant/metadata.d.ts.map +1 -0
- package/dist/app-router/tenant/metadata.js +19 -0
- package/dist/app-router/tenant/metadata.js.map +1 -0
- package/dist/app-router/tenant/server-texts.d.ts +7 -0
- package/dist/app-router/tenant/server-texts.d.ts.map +1 -0
- package/dist/app-router/tenant/server-texts.js +25 -0
- package/dist/app-router/tenant/server-texts.js.map +1 -0
- package/dist/app-router/utils.d.ts +3 -0
- package/dist/app-router/utils.d.ts.map +1 -0
- package/dist/app-router/utils.js +11 -0
- package/dist/app-router/utils.js.map +1 -0
- package/dist/app-text.d.ts +3 -0
- package/dist/app-text.d.ts.map +1 -0
- package/dist/app-text.js +14 -0
- package/dist/app-text.js.map +1 -0
- package/dist/component-texts.d.ts +2 -0
- package/dist/component-texts.d.ts.map +1 -0
- package/dist/component-texts.js +14 -0
- package/dist/component-texts.js.map +1 -0
- package/dist/components/ContentEmptyState/index.d.ts +7 -0
- package/dist/components/ContentEmptyState/index.d.ts.map +1 -0
- package/dist/components/ContentEmptyState/index.js +17 -0
- package/dist/components/ContentEmptyState/index.js.map +1 -0
- package/dist/components/ContentEmptyState/styles.d.ts +13 -0
- package/dist/components/ContentEmptyState/styles.d.ts.map +1 -0
- package/dist/components/ContentEmptyState/styles.js +21 -0
- package/dist/components/ContentEmptyState/styles.js.map +1 -0
- package/dist/components/OrganizationSchema.d.ts +7 -0
- package/dist/components/OrganizationSchema.d.ts.map +1 -0
- package/dist/components/OrganizationSchema.js +32 -0
- package/dist/components/OrganizationSchema.js.map +1 -0
- package/dist/data/fetch.d.ts +11 -0
- package/dist/data/fetch.d.ts.map +1 -0
- package/dist/data/fetch.js +29 -0
- package/dist/data/fetch.js.map +1 -0
- package/dist/edit-mode/Drawer.d.ts +12 -0
- package/dist/edit-mode/Drawer.d.ts.map +1 -0
- package/dist/edit-mode/Drawer.js +134 -0
- package/dist/edit-mode/Drawer.js.map +1 -0
- package/dist/edit-mode/EditMode.d.ts +3 -0
- package/dist/edit-mode/EditMode.d.ts.map +1 -0
- package/dist/edit-mode/EditMode.js +41 -0
- package/dist/edit-mode/EditMode.js.map +1 -0
- package/dist/edit-mode/client.d.ts +8 -0
- package/dist/edit-mode/client.d.ts.map +1 -0
- package/dist/edit-mode/client.js +18 -0
- package/dist/edit-mode/client.js.map +1 -0
- package/dist/edit-mode/drawer/MissingSection.d.ts +5 -0
- package/dist/edit-mode/drawer/MissingSection.d.ts.map +1 -0
- package/dist/edit-mode/drawer/MissingSection.js +13 -0
- package/dist/edit-mode/drawer/MissingSection.js.map +1 -0
- package/dist/edit-mode/drawer-helpers.d.ts +5 -0
- package/dist/edit-mode/drawer-helpers.d.ts.map +1 -0
- package/dist/edit-mode/drawer-helpers.js +33 -0
- package/dist/edit-mode/drawer-helpers.js.map +1 -0
- package/dist/edit-mode/editModeState.d.ts +10 -0
- package/dist/edit-mode/editModeState.d.ts.map +1 -0
- package/dist/edit-mode/editModeState.js +65 -0
- package/dist/edit-mode/editModeState.js.map +1 -0
- package/dist/edit-mode/field-styles.d.ts +81 -0
- package/dist/edit-mode/field-styles.d.ts.map +1 -0
- package/dist/edit-mode/field-styles.js +200 -0
- package/dist/edit-mode/field-styles.js.map +1 -0
- package/dist/edit-mode/fields/BlockField.d.ts +5 -0
- package/dist/edit-mode/fields/BlockField.d.ts.map +1 -0
- package/dist/edit-mode/fields/BlockField.js +32 -0
- package/dist/edit-mode/fields/BlockField.js.map +1 -0
- package/dist/edit-mode/fields/FieldEditor.d.ts +5 -0
- package/dist/edit-mode/fields/FieldEditor.d.ts.map +1 -0
- package/dist/edit-mode/fields/FieldEditor.js +39 -0
- package/dist/edit-mode/fields/FieldEditor.js.map +1 -0
- package/dist/edit-mode/fields/GalleryField.d.ts +5 -0
- package/dist/edit-mode/fields/GalleryField.d.ts.map +1 -0
- package/dist/edit-mode/fields/GalleryField.js +41 -0
- package/dist/edit-mode/fields/GalleryField.js.map +1 -0
- package/dist/edit-mode/fields/ImageField.d.ts +5 -0
- package/dist/edit-mode/fields/ImageField.d.ts.map +1 -0
- package/dist/edit-mode/fields/ImageField.js +41 -0
- package/dist/edit-mode/fields/ImageField.js.map +1 -0
- package/dist/edit-mode/fields/LinkField.d.ts +5 -0
- package/dist/edit-mode/fields/LinkField.d.ts.map +1 -0
- package/dist/edit-mode/fields/LinkField.js +25 -0
- package/dist/edit-mode/fields/LinkField.js.map +1 -0
- package/dist/edit-mode/fields/MediaField.d.ts +5 -0
- package/dist/edit-mode/fields/MediaField.d.ts.map +1 -0
- package/dist/edit-mode/fields/MediaField.js +33 -0
- package/dist/edit-mode/fields/MediaField.js.map +1 -0
- package/dist/edit-mode/fields/SurfaceAddItem.d.ts +5 -0
- package/dist/edit-mode/fields/SurfaceAddItem.d.ts.map +1 -0
- package/dist/edit-mode/fields/SurfaceAddItem.js +27 -0
- package/dist/edit-mode/fields/SurfaceAddItem.js.map +1 -0
- package/dist/edit-mode/fields/SurfaceItemControls.d.ts +8 -0
- package/dist/edit-mode/fields/SurfaceItemControls.d.ts.map +1 -0
- package/dist/edit-mode/fields/SurfaceItemControls.js +40 -0
- package/dist/edit-mode/fields/SurfaceItemControls.js.map +1 -0
- package/dist/edit-mode/fields/SurfaceLinkField.d.ts +5 -0
- package/dist/edit-mode/fields/SurfaceLinkField.d.ts.map +1 -0
- package/dist/edit-mode/fields/SurfaceLinkField.js +28 -0
- package/dist/edit-mode/fields/SurfaceLinkField.js.map +1 -0
- package/dist/edit-mode/fields/TextField.d.ts +5 -0
- package/dist/edit-mode/fields/TextField.d.ts.map +1 -0
- package/dist/edit-mode/fields/TextField.js +42 -0
- package/dist/edit-mode/fields/TextField.js.map +1 -0
- package/dist/edit-mode/fields/VideoField.d.ts +5 -0
- package/dist/edit-mode/fields/VideoField.d.ts.map +1 -0
- package/dist/edit-mode/fields/VideoField.js +21 -0
- package/dist/edit-mode/fields/VideoField.js.map +1 -0
- package/dist/edit-mode/fields/VisibilityField.d.ts +5 -0
- package/dist/edit-mode/fields/VisibilityField.d.ts.map +1 -0
- package/dist/edit-mode/fields/VisibilityField.js +26 -0
- package/dist/edit-mode/fields/VisibilityField.js.map +1 -0
- package/dist/edit-mode/fields/YoutubeField.d.ts +5 -0
- package/dist/edit-mode/fields/YoutubeField.d.ts.map +1 -0
- package/dist/edit-mode/fields/YoutubeField.js +21 -0
- package/dist/edit-mode/fields/YoutubeField.js.map +1 -0
- package/dist/edit-mode/fields/shared.d.ts +27 -0
- package/dist/edit-mode/fields/shared.d.ts.map +1 -0
- package/dist/edit-mode/fields/shared.js +55 -0
- package/dist/edit-mode/fields/shared.js.map +1 -0
- package/dist/edit-mode/fields-from-content.d.ts +12 -0
- package/dist/edit-mode/fields-from-content.d.ts.map +1 -0
- package/dist/edit-mode/fields-from-content.js +42 -0
- package/dist/edit-mode/fields-from-content.js.map +1 -0
- package/dist/edit-mode/image-url.d.ts +4 -0
- package/dist/edit-mode/image-url.d.ts.map +1 -0
- package/dist/edit-mode/image-url.js +7 -0
- package/dist/edit-mode/image-url.js.map +1 -0
- package/dist/edit-mode/index.d.ts +4 -0
- package/dist/edit-mode/index.d.ts.map +1 -0
- package/dist/edit-mode/index.js +3 -0
- package/dist/edit-mode/index.js.map +1 -0
- package/dist/edit-mode/missing-keys.d.ts +8 -0
- package/dist/edit-mode/missing-keys.d.ts.map +1 -0
- package/dist/edit-mode/missing-keys.js +33 -0
- package/dist/edit-mode/missing-keys.js.map +1 -0
- package/dist/edit-mode/overlay/InlineBlockEditor.d.ts +9 -0
- package/dist/edit-mode/overlay/InlineBlockEditor.d.ts.map +1 -0
- package/dist/edit-mode/overlay/InlineBlockEditor.js +98 -0
- package/dist/edit-mode/overlay/InlineBlockEditor.js.map +1 -0
- package/dist/edit-mode/overlay/InlineText.d.ts +10 -0
- package/dist/edit-mode/overlay/InlineText.d.ts.map +1 -0
- package/dist/edit-mode/overlay/InlineText.js +190 -0
- package/dist/edit-mode/overlay/InlineText.js.map +1 -0
- package/dist/edit-mode/overlay/Overlay.d.ts +13 -0
- package/dist/edit-mode/overlay/Overlay.d.ts.map +1 -0
- package/dist/edit-mode/overlay/Overlay.js +186 -0
- package/dist/edit-mode/overlay/Overlay.js.map +1 -0
- package/dist/edit-mode/overlay/Popover.d.ts +10 -0
- package/dist/edit-mode/overlay/Popover.d.ts.map +1 -0
- package/dist/edit-mode/overlay/Popover.js +58 -0
- package/dist/edit-mode/overlay/Popover.js.map +1 -0
- package/dist/edit-mode/overlay/block-match.d.ts +15 -0
- package/dist/edit-mode/overlay/block-match.d.ts.map +1 -0
- package/dist/edit-mode/overlay/block-match.js +124 -0
- package/dist/edit-mode/overlay/block-match.js.map +1 -0
- package/dist/edit-mode/overlay/dom.d.ts +4 -0
- package/dist/edit-mode/overlay/dom.d.ts.map +1 -0
- package/dist/edit-mode/overlay/dom.js +13 -0
- package/dist/edit-mode/overlay/dom.js.map +1 -0
- package/dist/edit-mode/overlay/geometry.d.ts +16 -0
- package/dist/edit-mode/overlay/geometry.d.ts.map +1 -0
- package/dist/edit-mode/overlay/geometry.js +58 -0
- package/dist/edit-mode/overlay/geometry.js.map +1 -0
- package/dist/edit-mode/overlay/match.d.ts +29 -0
- package/dist/edit-mode/overlay/match.d.ts.map +1 -0
- package/dist/edit-mode/overlay/match.js +140 -0
- package/dist/edit-mode/overlay/match.js.map +1 -0
- package/dist/edit-mode/overlay/stega-scan.d.ts +8 -0
- package/dist/edit-mode/overlay/stega-scan.d.ts.map +1 -0
- package/dist/edit-mode/overlay/stega-scan.js +51 -0
- package/dist/edit-mode/overlay/stega-scan.js.map +1 -0
- package/dist/edit-mode/overlay/styles.d.ts +71 -0
- package/dist/edit-mode/overlay/styles.d.ts.map +1 -0
- package/dist/edit-mode/overlay/styles.js +187 -0
- package/dist/edit-mode/overlay/styles.js.map +1 -0
- package/dist/edit-mode/overlay/useOverlayScan.d.ts +3 -0
- package/dist/edit-mode/overlay/useOverlayScan.d.ts.map +1 -0
- package/dist/edit-mode/overlay/useOverlayScan.js +70 -0
- package/dist/edit-mode/overlay/useOverlayScan.js.map +1 -0
- package/dist/edit-mode/overlay/wildcard.d.ts +8 -0
- package/dist/edit-mode/overlay/wildcard.d.ts.map +1 -0
- package/dist/edit-mode/overlay/wildcard.js +55 -0
- package/dist/edit-mode/overlay/wildcard.js.map +1 -0
- package/dist/edit-mode/refresh.d.ts +4 -0
- package/dist/edit-mode/refresh.d.ts.map +1 -0
- package/dist/edit-mode/refresh.js +11 -0
- package/dist/edit-mode/refresh.js.map +1 -0
- package/dist/edit-mode/save-media.d.ts +10 -0
- package/dist/edit-mode/save-media.d.ts.map +1 -0
- package/dist/edit-mode/save-media.js +49 -0
- package/dist/edit-mode/save-media.js.map +1 -0
- package/dist/edit-mode/save.d.ts +22 -0
- package/dist/edit-mode/save.d.ts.map +1 -0
- package/dist/edit-mode/save.js +47 -0
- package/dist/edit-mode/save.js.map +1 -0
- package/dist/edit-mode/section-fields.d.ts +4 -0
- package/dist/edit-mode/section-fields.d.ts.map +1 -0
- package/dist/edit-mode/section-fields.js +80 -0
- package/dist/edit-mode/section-fields.js.map +1 -0
- package/dist/edit-mode/stega.d.ts +9 -0
- package/dist/edit-mode/stega.d.ts.map +1 -0
- package/dist/edit-mode/stega.js +97 -0
- package/dist/edit-mode/stega.js.map +1 -0
- package/dist/edit-mode/store/content.d.ts +3 -0
- package/dist/edit-mode/store/content.d.ts.map +1 -0
- package/dist/edit-mode/store/content.js +44 -0
- package/dist/edit-mode/store/content.js.map +1 -0
- package/dist/edit-mode/store/types.d.ts +23 -0
- package/dist/edit-mode/store/types.d.ts.map +1 -0
- package/dist/edit-mode/store/types.js +2 -0
- package/dist/edit-mode/store/types.js.map +1 -0
- package/dist/edit-mode/styles.d.ts +62 -0
- package/dist/edit-mode/styles.d.ts.map +1 -0
- package/dist/edit-mode/styles.js +125 -0
- package/dist/edit-mode/styles.js.map +1 -0
- package/dist/edit-mode/surface-ops.d.ts +22 -0
- package/dist/edit-mode/surface-ops.d.ts.map +1 -0
- package/dist/edit-mode/surface-ops.js +43 -0
- package/dist/edit-mode/surface-ops.js.map +1 -0
- package/dist/edit-mode/surfaces.d.ts +32 -0
- package/dist/edit-mode/surfaces.d.ts.map +1 -0
- package/dist/edit-mode/surfaces.js +106 -0
- package/dist/edit-mode/surfaces.js.map +1 -0
- package/dist/edit-mode/types.d.ts +55 -0
- package/dist/edit-mode/types.d.ts.map +1 -0
- package/dist/edit-mode/types.js +2 -0
- package/dist/edit-mode/types.js.map +1 -0
- package/dist/edit-mode/useArmed.d.ts +4 -0
- package/dist/edit-mode/useArmed.d.ts.map +1 -0
- package/dist/edit-mode/useArmed.js +28 -0
- package/dist/edit-mode/useArmed.js.map +1 -0
- package/dist/editor/BlockChrome.d.ts +5 -0
- package/dist/editor/BlockChrome.d.ts.map +1 -0
- package/dist/editor/BlockChrome.js +60 -0
- package/dist/editor/BlockChrome.js.map +1 -0
- package/dist/editor/BlockChrome.styled.d.ts +57 -0
- package/dist/editor/BlockChrome.styled.d.ts.map +1 -0
- package/dist/editor/BlockChrome.styled.js +188 -0
- package/dist/editor/BlockChrome.styled.js.map +1 -0
- package/dist/editor/BlockObject.styled.d.ts +39 -0
- package/dist/editor/BlockObject.styled.d.ts.map +1 -0
- package/dist/editor/BlockObject.styled.js +106 -0
- package/dist/editor/BlockObject.styled.js.map +1 -0
- package/dist/editor/BlockObjectEditor.d.ts +10 -0
- package/dist/editor/BlockObjectEditor.d.ts.map +1 -0
- package/dist/editor/BlockObjectEditor.js +55 -0
- package/dist/editor/BlockObjectEditor.js.map +1 -0
- package/dist/editor/DockPortal.d.ts +5 -0
- package/dist/editor/DockPortal.d.ts.map +1 -0
- package/dist/editor/DockPortal.js +16 -0
- package/dist/editor/DockPortal.js.map +1 -0
- package/dist/editor/EditableSurface.d.ts +4 -0
- package/dist/editor/EditableSurface.d.ts.map +1 -0
- package/dist/editor/EditableSurface.js +85 -0
- package/dist/editor/EditableSurface.js.map +1 -0
- package/dist/editor/EditableSurface.styled.d.ts +5 -0
- package/dist/editor/EditableSurface.styled.d.ts.map +1 -0
- package/dist/editor/EditableSurface.styled.js +30 -0
- package/dist/editor/EditableSurface.styled.js.map +1 -0
- package/dist/editor/EmptyStatePicker.d.ts +2 -0
- package/dist/editor/EmptyStatePicker.d.ts.map +1 -0
- package/dist/editor/EmptyStatePicker.js +22 -0
- package/dist/editor/EmptyStatePicker.js.map +1 -0
- package/dist/editor/EmptyStatePicker.styled.d.ts +21 -0
- package/dist/editor/EmptyStatePicker.styled.d.ts.map +1 -0
- package/dist/editor/EmptyStatePicker.styled.js +59 -0
- package/dist/editor/EmptyStatePicker.styled.js.map +1 -0
- package/dist/editor/LinkGalleryEditors.d.ts +14 -0
- package/dist/editor/LinkGalleryEditors.d.ts.map +1 -0
- package/dist/editor/LinkGalleryEditors.js +25 -0
- package/dist/editor/LinkGalleryEditors.js.map +1 -0
- package/dist/editor/MediaBlockEditors.d.ts +19 -0
- package/dist/editor/MediaBlockEditors.d.ts.map +1 -0
- package/dist/editor/MediaBlockEditors.js +91 -0
- package/dist/editor/MediaBlockEditors.js.map +1 -0
- package/dist/editor/MediaBlockEditors.styled.d.ts +12 -0
- package/dist/editor/MediaBlockEditors.styled.d.ts.map +1 -0
- package/dist/editor/MediaBlockEditors.styled.js +23 -0
- package/dist/editor/MediaBlockEditors.styled.js.map +1 -0
- package/dist/editor/TableBlockEditor.d.ts +8 -0
- package/dist/editor/TableBlockEditor.d.ts.map +1 -0
- package/dist/editor/TableBlockEditor.js +71 -0
- package/dist/editor/TableBlockEditor.js.map +1 -0
- package/dist/editor/TableBlockEditor.styled.d.ts +29 -0
- package/dist/editor/TableBlockEditor.styled.d.ts.map +1 -0
- package/dist/editor/TableBlockEditor.styled.js +98 -0
- package/dist/editor/TableBlockEditor.styled.js.map +1 -0
- package/dist/editor/Toolbar.d.ts +6 -0
- package/dist/editor/Toolbar.d.ts.map +1 -0
- package/dist/editor/Toolbar.js +56 -0
- package/dist/editor/Toolbar.js.map +1 -0
- package/dist/editor/Toolbar.styled.d.ts +27 -0
- package/dist/editor/Toolbar.styled.d.ts.map +1 -0
- package/dist/editor/Toolbar.styled.js +114 -0
- package/dist/editor/Toolbar.styled.js.map +1 -0
- package/dist/editor/blocks.d.ts +34 -0
- package/dist/editor/blocks.d.ts.map +1 -0
- package/dist/editor/blocks.js +163 -0
- package/dist/editor/blocks.js.map +1 -0
- package/dist/editor/deps.d.ts +18 -0
- package/dist/editor/deps.d.ts.map +1 -0
- package/dist/editor/deps.js +54 -0
- package/dist/editor/deps.js.map +1 -0
- package/dist/editor/index.d.ts +19 -0
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +35 -0
- package/dist/editor/index.js.map +1 -0
- package/dist/editor/insertOptions.d.ts +15 -0
- package/dist/editor/insertOptions.d.ts.map +1 -0
- package/dist/editor/insertOptions.js +194 -0
- package/dist/editor/insertOptions.js.map +1 -0
- package/dist/editor/rename.d.ts +7 -0
- package/dist/editor/rename.d.ts.map +1 -0
- package/dist/editor/rename.js +45 -0
- package/dist/editor/rename.js.map +1 -0
- package/dist/editor/styles.d.ts +17 -0
- package/dist/editor/styles.d.ts.map +1 -0
- package/dist/editor/styles.js +154 -0
- package/dist/editor/styles.js.map +1 -0
- package/dist/editor/textSchema.d.ts +172 -0
- package/dist/editor/textSchema.d.ts.map +1 -0
- package/dist/editor/textSchema.js +120 -0
- package/dist/editor/textSchema.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/placeholders.d.ts +22 -0
- package/dist/placeholders.d.ts.map +1 -0
- package/dist/placeholders.js +26 -0
- package/dist/placeholders.js.map +1 -0
- package/dist/providers/AppContentProvider.d.ts +16 -0
- package/dist/providers/AppContentProvider.d.ts.map +1 -0
- package/dist/providers/AppContentProvider.js +18 -0
- package/dist/providers/AppContentProvider.js.map +1 -0
- package/dist/providers/PageContentProvider.d.ts +41 -0
- package/dist/providers/PageContentProvider.d.ts.map +1 -0
- package/dist/providers/PageContentProvider.js +139 -0
- package/dist/providers/PageContentProvider.js.map +1 -0
- package/dist/providers/index.d.ts +3 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +3 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/merge-content.d.ts +17 -0
- package/dist/providers/merge-content.d.ts.map +1 -0
- package/dist/providers/merge-content.js +65 -0
- package/dist/providers/merge-content.js.map +1 -0
- package/dist/providers/separate-components.d.ts +27 -0
- package/dist/providers/separate-components.d.ts.map +1 -0
- package/dist/providers/separate-components.js +42 -0
- package/dist/providers/separate-components.js.map +1 -0
- package/dist/providers/tenant-tokens.d.ts +5 -0
- package/dist/providers/tenant-tokens.d.ts.map +1 -0
- package/dist/providers/tenant-tokens.js +19 -0
- package/dist/providers/tenant-tokens.js.map +1 -0
- package/dist/server/client.d.ts +4 -0
- package/dist/server/client.d.ts.map +1 -0
- package/dist/server/client.js +13 -0
- package/dist/server/client.js.map +1 -0
- package/dist/server/clients.d.ts +5 -0
- package/dist/server/clients.d.ts.map +1 -0
- package/dist/server/clients.js +9 -0
- package/dist/server/clients.js.map +1 -0
- package/dist/server/content-api.d.ts +8 -0
- package/dist/server/content-api.d.ts.map +1 -0
- package/dist/server/content-api.js +32 -0
- package/dist/server/content-api.js.map +1 -0
- package/dist/server/errors.d.ts +17 -0
- package/dist/server/errors.d.ts.map +1 -0
- package/dist/server/errors.js +24 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/layers.d.ts +11 -0
- package/dist/server/layers.d.ts.map +1 -0
- package/dist/server/layers.js +11 -0
- package/dist/server/layers.js.map +1 -0
- package/dist/server/merge-layers.d.ts +8 -0
- package/dist/server/merge-layers.d.ts.map +1 -0
- package/dist/server/merge-layers.js +27 -0
- package/dist/server/merge-layers.js.map +1 -0
- package/dist/server/organization.d.ts +4 -0
- package/dist/server/organization.d.ts.map +1 -0
- package/dist/server/organization.js +17 -0
- package/dist/server/organization.js.map +1 -0
- package/dist/types/index.d.ts +97 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/collect-app-texts.d.ts +14 -0
- package/dist/utils/collect-app-texts.d.ts.map +1 -0
- package/dist/utils/collect-app-texts.js +13 -0
- package/dist/utils/collect-app-texts.js.map +1 -0
- package/dist/utils/has-any-content.d.ts +8 -0
- package/dist/utils/has-any-content.d.ts.map +1 -0
- package/dist/utils/has-any-content.js +4 -0
- package/dist/utils/has-any-content.js.map +1 -0
- package/dist/utils/rename-sanity-fields.d.ts +9 -0
- package/dist/utils/rename-sanity-fields.d.ts.map +1 -0
- package/dist/utils/rename-sanity-fields.js +34 -0
- package/dist/utils/rename-sanity-fields.js.map +1 -0
- package/dist/utils.d.ts +6 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +49 -0
- package/dist/utils.js.map +1 -0
- package/package.json +80 -3
- package/README.md +0 -3
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { usePageContent } from "../providers/PageContentProvider";
|
|
4
|
+
import { textOrFallback } from "../admin-form-labels";
|
|
5
|
+
import { randomBlockKey } from "./insertOptions";
|
|
6
|
+
import { BlockObjectShell, BlockObjectKindRow, BlockObjectKind, } from "./BlockObject.styled";
|
|
7
|
+
import { TableScroll, TableEl, TableCellInput, TableActions, TableActionButton, TableColumnRemove, TableRowRemove, } from "./TableBlockEditor.styled";
|
|
8
|
+
function normaliseRow(input) {
|
|
9
|
+
if (Array.isArray(input)) {
|
|
10
|
+
return { _key: randomBlockKey(), cells: input.map(String) };
|
|
11
|
+
}
|
|
12
|
+
if (input && typeof input === "object") {
|
|
13
|
+
const obj = input;
|
|
14
|
+
const cells = Array.isArray(obj.cells) ? obj.cells.map(String) : [];
|
|
15
|
+
return { _key: obj._key ?? randomBlockKey(), cells };
|
|
16
|
+
}
|
|
17
|
+
return { _key: randomBlockKey(), cells: [] };
|
|
18
|
+
}
|
|
19
|
+
export function TableBlockEditor({ value, disabled, onChange, }) {
|
|
20
|
+
const { getText } = usePageContent();
|
|
21
|
+
const headers = Array.isArray(value.headers)
|
|
22
|
+
? value.headers
|
|
23
|
+
: [];
|
|
24
|
+
const rows = Array.isArray(value.rows)
|
|
25
|
+
? value.rows.map((r) => normaliseRow(r))
|
|
26
|
+
: [];
|
|
27
|
+
const colCount = Math.max(headers.length, ...rows.map((r) => r.cells.length), 1);
|
|
28
|
+
const setHeader = (col, text) => {
|
|
29
|
+
const next = [...headers];
|
|
30
|
+
while (next.length <= col)
|
|
31
|
+
next.push("");
|
|
32
|
+
next[col] = text;
|
|
33
|
+
onChange({ headers: next, rows });
|
|
34
|
+
};
|
|
35
|
+
const setCell = (rowIdx, col, text) => {
|
|
36
|
+
const next = rows.map((r) => ({ _key: r._key, cells: [...r.cells] }));
|
|
37
|
+
while (next.length <= rowIdx)
|
|
38
|
+
next.push({ _key: randomBlockKey(), cells: [] });
|
|
39
|
+
while (next[rowIdx].cells.length <= col)
|
|
40
|
+
next[rowIdx].cells.push("");
|
|
41
|
+
next[rowIdx].cells[col] = text;
|
|
42
|
+
onChange({ headers, rows: next });
|
|
43
|
+
};
|
|
44
|
+
const addRow = () => {
|
|
45
|
+
const cells = Array(colCount).fill("");
|
|
46
|
+
onChange({
|
|
47
|
+
headers,
|
|
48
|
+
rows: [...rows, { _key: randomBlockKey(), cells }],
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
const addColumn = () => {
|
|
52
|
+
onChange({
|
|
53
|
+
headers: [...headers, ""],
|
|
54
|
+
rows: rows.map((r) => ({ _key: r._key, cells: [...r.cells, ""] })),
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
const removeRow = (rowIdx) => {
|
|
58
|
+
onChange({ headers, rows: rows.filter((_, i) => i !== rowIdx) });
|
|
59
|
+
};
|
|
60
|
+
const removeColumn = (col) => {
|
|
61
|
+
onChange({
|
|
62
|
+
headers: headers.filter((_, i) => i !== col),
|
|
63
|
+
rows: rows.map((r) => ({
|
|
64
|
+
_key: r._key,
|
|
65
|
+
cells: r.cells.filter((_, i) => i !== col),
|
|
66
|
+
})),
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
return (_jsxs(BlockObjectShell, { contentEditable: false, children: [_jsx(BlockObjectKindRow, { children: _jsx(BlockObjectKind, { children: "Tabell" }) }), _jsx(TableScroll, { children: _jsxs(TableEl, { children: [_jsx("thead", { children: _jsx("tr", { children: Array.from({ length: colCount }).map((_, col) => (_jsxs("th", { children: [_jsx(TableCellInput, { value: headers[col] ?? "", placeholder: textOrFallback(getText, "editorTableColumnPlaceholder", "Kolonne {count}").replace("{count}", String(col + 1)), disabled: disabled, onChange: (e) => setHeader(col, e.target.value) }), !disabled && colCount > 1 && (_jsx(TableColumnRemove, { type: "button", title: textOrFallback(getText, "editorTableRemoveColumn", "Fjern kolonne"), onClick: () => removeColumn(col), children: "\u00D7" }))] }, col))) }) }), _jsx("tbody", { children: rows.map((row, rowIdx) => (_jsxs("tr", { children: [Array.from({ length: colCount }).map((_, col) => (_jsx("td", { children: _jsx(TableCellInput, { value: row.cells[col] ?? "", disabled: disabled, onChange: (e) => setCell(rowIdx, col, e.target.value) }) }, col))), !disabled && rows.length > 1 && (_jsx("td", { children: _jsx(TableRowRemove, { type: "button", title: textOrFallback(getText, "editorTableRemoveRow", "Fjern rad"), onClick: () => removeRow(rowIdx), children: "\u00D7" }) }))] }, row._key))) })] }) }), !disabled && (_jsxs(TableActions, { children: [_jsx(TableActionButton, { type: "button", onClick: addRow, children: textOrFallback(getText, "editorTableAddRow", "+ Rad") }), _jsx(TableActionButton, { type: "button", onClick: addColumn, children: textOrFallback(getText, "editorTableAddColumn", "+ Kolonne") })] }))] }));
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=TableBlockEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableBlockEditor.js","sourceRoot":"","sources":["../../src/editor/TableBlockEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare const TableScroll: import("@emotion/styled").StyledComponent<{
|
|
2
|
+
theme?: import("@emotion/react").Theme;
|
|
3
|
+
as?: React.ElementType;
|
|
4
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
5
|
+
export declare const TableEl: import("@emotion/styled").StyledComponent<{
|
|
6
|
+
theme?: import("@emotion/react").Theme;
|
|
7
|
+
as?: React.ElementType;
|
|
8
|
+
}, import("react").DetailedHTMLProps<import("react").TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>, {}>;
|
|
9
|
+
export declare const TableCellInput: import("@emotion/styled").StyledComponent<{
|
|
10
|
+
theme?: import("@emotion/react").Theme;
|
|
11
|
+
as?: React.ElementType;
|
|
12
|
+
}, import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, {}>;
|
|
13
|
+
export declare const TableActions: import("@emotion/styled").StyledComponent<{
|
|
14
|
+
theme?: import("@emotion/react").Theme;
|
|
15
|
+
as?: React.ElementType;
|
|
16
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
17
|
+
export declare const TableActionButton: import("@emotion/styled").StyledComponent<{
|
|
18
|
+
theme?: import("@emotion/react").Theme;
|
|
19
|
+
as?: React.ElementType;
|
|
20
|
+
}, import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {}>;
|
|
21
|
+
export declare const TableColumnRemove: import("@emotion/styled").StyledComponent<{
|
|
22
|
+
theme?: import("@emotion/react").Theme;
|
|
23
|
+
as?: React.ElementType;
|
|
24
|
+
}, import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {}>;
|
|
25
|
+
export declare const TableRowRemove: import("@emotion/styled").StyledComponent<{
|
|
26
|
+
theme?: import("@emotion/react").Theme;
|
|
27
|
+
as?: React.ElementType;
|
|
28
|
+
}, import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {}>;
|
|
29
|
+
//# sourceMappingURL=TableBlockEditor.styled.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableBlockEditor.styled.d.ts","sourceRoot":"","sources":["../../src/editor/TableBlockEditor.styled.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW;;;yGAKvB,CAAC;AAEF,eAAO,MAAM,OAAO;;;kHAgBnB,CAAC;AAEF,eAAO,MAAM,cAAc;;;kHAgB1B,CAAC;AAEF,eAAO,MAAM,YAAY;;;yGAGxB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;qHAiB7B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;qHAkB7B,CAAC;AAEF,eAAO,MAAM,cAAc;;;qHAa1B,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import styled from "@emotion/styled";
|
|
3
|
+
export const TableScroll = styled.div `
|
|
4
|
+
overflow-x: auto;
|
|
5
|
+
border-radius: 8px;
|
|
6
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
7
|
+
background: #fff;
|
|
8
|
+
`;
|
|
9
|
+
export const TableEl = styled.table `
|
|
10
|
+
width: 100%;
|
|
11
|
+
border-collapse: collapse;
|
|
12
|
+
|
|
13
|
+
th,
|
|
14
|
+
td {
|
|
15
|
+
padding: 0;
|
|
16
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
17
|
+
vertical-align: top;
|
|
18
|
+
position: relative;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
thead th {
|
|
22
|
+
background: rgba(15, 23, 42, 0.025);
|
|
23
|
+
font-weight: 600;
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
export const TableCellInput = styled.input `
|
|
27
|
+
width: 100%;
|
|
28
|
+
padding: 8px 10px;
|
|
29
|
+
border: none;
|
|
30
|
+
background: transparent;
|
|
31
|
+
font-size: 0.875rem;
|
|
32
|
+
color: #0f172a;
|
|
33
|
+
outline: none;
|
|
34
|
+
|
|
35
|
+
&:focus {
|
|
36
|
+
background: rgba(17, 207, 127, 0.06);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&::placeholder {
|
|
40
|
+
color: #94a3b8;
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
export const TableActions = styled.div `
|
|
44
|
+
display: flex;
|
|
45
|
+
gap: 8px;
|
|
46
|
+
`;
|
|
47
|
+
export const TableActionButton = styled.button `
|
|
48
|
+
padding: 6px 12px;
|
|
49
|
+
border-radius: 8px;
|
|
50
|
+
border: 1px solid rgba(15, 23, 42, 0.12);
|
|
51
|
+
background: #fff;
|
|
52
|
+
color: #0f172a;
|
|
53
|
+
font-size: 0.8125rem;
|
|
54
|
+
font-weight: 500;
|
|
55
|
+
cursor: pointer;
|
|
56
|
+
transition:
|
|
57
|
+
background 120ms ease,
|
|
58
|
+
border-color 120ms ease;
|
|
59
|
+
|
|
60
|
+
&:hover {
|
|
61
|
+
background: rgba(15, 23, 42, 0.04);
|
|
62
|
+
border-color: rgba(15, 23, 42, 0.22);
|
|
63
|
+
}
|
|
64
|
+
`;
|
|
65
|
+
export const TableColumnRemove = styled.button `
|
|
66
|
+
position: absolute;
|
|
67
|
+
top: 2px;
|
|
68
|
+
right: 2px;
|
|
69
|
+
width: 18px;
|
|
70
|
+
height: 18px;
|
|
71
|
+
border-radius: 4px;
|
|
72
|
+
border: none;
|
|
73
|
+
background: transparent;
|
|
74
|
+
color: #94a3b8;
|
|
75
|
+
font-size: 14px;
|
|
76
|
+
line-height: 1;
|
|
77
|
+
cursor: pointer;
|
|
78
|
+
|
|
79
|
+
&:hover {
|
|
80
|
+
color: #dc2626;
|
|
81
|
+
background: rgba(254, 226, 226, 0.6);
|
|
82
|
+
}
|
|
83
|
+
`;
|
|
84
|
+
export const TableRowRemove = styled.button `
|
|
85
|
+
width: 24px;
|
|
86
|
+
height: 100%;
|
|
87
|
+
border: none;
|
|
88
|
+
background: transparent;
|
|
89
|
+
color: #94a3b8;
|
|
90
|
+
font-size: 16px;
|
|
91
|
+
cursor: pointer;
|
|
92
|
+
|
|
93
|
+
&:hover {
|
|
94
|
+
color: #dc2626;
|
|
95
|
+
background: rgba(254, 226, 226, 0.4);
|
|
96
|
+
}
|
|
97
|
+
`;
|
|
98
|
+
//# sourceMappingURL=TableBlockEditor.styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableBlockEditor.styled.js","sourceRoot":"","sources":["../../src/editor/TableBlockEditor.styled.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKpC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;;;;;;;;;;;;CAgBlC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;;;;;;;;;;;;CAgBzC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;CAGrC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;;;;;;;;;;CAiB7C,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;;;;;;;;;;;CAkB7C,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;;;;;;CAa1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/editor/Toolbar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAsBlC,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,OAAO,GACR,EAAE;IACD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,+BAwJA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useEditor, useEditorSelector } from "@portabletext/editor";
|
|
4
|
+
import { getActiveAnnotations } from "@portabletext/editor/selectors";
|
|
5
|
+
import { FormatBold as FormatBoldIcon } from "@mui/icons-material";
|
|
6
|
+
import { FormatItalic as FormatItalicIcon } from "@mui/icons-material";
|
|
7
|
+
import { FormatUnderlined as FormatUnderlinedIcon } from "@mui/icons-material";
|
|
8
|
+
import { FormatListBulleted as FormatListBulletedIcon } from "@mui/icons-material";
|
|
9
|
+
import { FormatListNumbered as FormatListNumberedIcon } from "@mui/icons-material";
|
|
10
|
+
import { FormatQuote as FormatQuoteIcon } from "@mui/icons-material";
|
|
11
|
+
import { Link as LinkIcon } from "@mui/icons-material";
|
|
12
|
+
import { usePageContent } from "../providers/PageContentProvider";
|
|
13
|
+
import { textOrFallback } from "../admin-form-labels";
|
|
14
|
+
import { DockPortal } from "./DockPortal";
|
|
15
|
+
import { ToolbarStack, ActionsDock, ToolbarRow, ToolbarButton, ToolbarText, Divider, } from "./Toolbar.styled";
|
|
16
|
+
export function EditorToolbar({ disabled, actions, }) {
|
|
17
|
+
const editor = useEditor();
|
|
18
|
+
const { getText } = usePageContent();
|
|
19
|
+
const activeAnnotations = useEditorSelector(editor, getActiveAnnotations);
|
|
20
|
+
if (disabled)
|
|
21
|
+
return actions ? (_jsx(DockPortal, { children: _jsx(ActionsDock, { children: _jsx(ToolbarRow, { children: actions }) }) })) : null;
|
|
22
|
+
const styleBtn = (label, style, title) => (_jsx(ToolbarButton, { type: "button", title: title, onMouseDown: (e) => e.preventDefault(), onClick: () => {
|
|
23
|
+
editor.send({ type: "style.toggle", style });
|
|
24
|
+
editor.send({ type: "focus" });
|
|
25
|
+
}, children: label }, style));
|
|
26
|
+
const decoratorBtn = (label, decorator, title) => (_jsx(ToolbarButton, { type: "button", title: title, onMouseDown: (e) => e.preventDefault(), onClick: () => {
|
|
27
|
+
editor.send({ type: "decorator.toggle", decorator });
|
|
28
|
+
editor.send({ type: "focus" });
|
|
29
|
+
}, children: label }, decorator));
|
|
30
|
+
const listBtn = (label, list, title) => (_jsx(ToolbarButton, { type: "button", title: title, onMouseDown: (e) => e.preventDefault(), onClick: () => {
|
|
31
|
+
editor.send({ type: "list item.toggle", listItem: list });
|
|
32
|
+
editor.send({ type: "focus" });
|
|
33
|
+
}, children: label }, list));
|
|
34
|
+
const handleLink = () => {
|
|
35
|
+
const existing = activeAnnotations.find((a) => a._type === "link");
|
|
36
|
+
const href = window.prompt(textOrFallback(getText, "editorLinkPromptLabel", "Lenke (URL):"), existing?.href ?? "https://");
|
|
37
|
+
if (href === null)
|
|
38
|
+
return;
|
|
39
|
+
const trimmed = href.trim();
|
|
40
|
+
if (!trimmed || trimmed === "https://") {
|
|
41
|
+
editor.send({
|
|
42
|
+
type: "annotation.remove",
|
|
43
|
+
annotation: { name: "link" },
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
editor.send({
|
|
48
|
+
type: "annotation.toggle",
|
|
49
|
+
annotation: { name: "link", value: { href: trimmed } },
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
editor.send({ type: "focus" });
|
|
53
|
+
};
|
|
54
|
+
return (_jsxs(_Fragment, { children: [_jsx(ToolbarStack, { children: _jsxs(ToolbarRow, { children: [styleBtn(_jsx(ToolbarText, { children: textOrFallback(getText, "editorToolbarParagraph", "Avsnitt") }), "normal", textOrFallback(getText, "editorToolbarParagraph", "Avsnitt")), styleBtn(_jsx(ToolbarText, { children: "H2" }), "h2", textOrFallback(getText, "editorToolbarHeading", "Overskrift")), styleBtn(_jsx(FormatQuoteIcon, { fontSize: "small" }), "blockquote", textOrFallback(getText, "editorToolbarQuote", "Sitat")), _jsx(Divider, {}), decoratorBtn(_jsx(FormatBoldIcon, { fontSize: "small" }), "strong", textOrFallback(getText, "editorToolbarBold", "Fet")), decoratorBtn(_jsx(FormatItalicIcon, { fontSize: "small" }), "em", textOrFallback(getText, "editorToolbarItalic", "Kursiv")), decoratorBtn(_jsx(FormatUnderlinedIcon, { fontSize: "small" }), "underline", textOrFallback(getText, "editorToolbarUnderline", "Understreket")), _jsx(ToolbarButton, { type: "button", title: textOrFallback(getText, "editorToolbarLink", "Lenke (legg til / fjern)"), onMouseDown: (e) => e.preventDefault(), onClick: handleLink, children: _jsx(LinkIcon, { fontSize: "small" }) }), _jsx(Divider, {}), listBtn(_jsx(FormatListBulletedIcon, { fontSize: "small" }), "bullet", textOrFallback(getText, "editorToolbarBullet", "Punktliste")), listBtn(_jsx(FormatListNumberedIcon, { fontSize: "small" }), "number", textOrFallback(getText, "editorToolbarNumbered", "Nummerert liste"))] }) }), actions && (_jsx(DockPortal, { children: _jsx(ActionsDock, { children: _jsx(ToolbarRow, { children: actions }) }) }))] }));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=Toolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../src/editor/Toolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const ToolbarStack: import("@emotion/styled").StyledComponent<{
|
|
2
|
+
theme?: import("@emotion/react").Theme;
|
|
3
|
+
as?: React.ElementType;
|
|
4
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
5
|
+
export declare const ActionsDock: import("@emotion/styled").StyledComponent<{
|
|
6
|
+
theme?: import("@emotion/react").Theme;
|
|
7
|
+
as?: React.ElementType;
|
|
8
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
9
|
+
export declare const ToolbarRow: import("@emotion/styled").StyledComponent<{
|
|
10
|
+
theme?: import("@emotion/react").Theme;
|
|
11
|
+
as?: React.ElementType;
|
|
12
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
13
|
+
export declare const ToolbarButton: import("@emotion/styled").StyledComponent<{
|
|
14
|
+
theme?: import("@emotion/react").Theme;
|
|
15
|
+
as?: React.ElementType;
|
|
16
|
+
} & {
|
|
17
|
+
$active?: boolean;
|
|
18
|
+
}, import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {}>;
|
|
19
|
+
export declare const ToolbarText: import("@emotion/styled").StyledComponent<{
|
|
20
|
+
theme?: import("@emotion/react").Theme;
|
|
21
|
+
as?: React.ElementType;
|
|
22
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
23
|
+
export declare const Divider: import("@emotion/styled").StyledComponent<{
|
|
24
|
+
theme?: import("@emotion/react").Theme;
|
|
25
|
+
as?: React.ElementType;
|
|
26
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
27
|
+
//# sourceMappingURL=Toolbar.styled.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.styled.d.ts","sourceRoot":"","sources":["../../src/editor/Toolbar.styled.tsx"],"names":[],"mappings":"AA0BA,eAAO,MAAM,YAAY;;;yGAQxB,CAAC;AAEF,eAAO,MAAM,WAAW;;;yGAevB,CAAC;AAEF,eAAO,MAAM,UAAU;;;yGA2BtB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;cAA6B,OAAO;qHAyB7D,CAAC;AAEF,eAAO,MAAM,WAAW;;;2GAIvB,CAAC;AAEF,eAAO,MAAM,OAAO;;;2GAMnB,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import styled from "@emotion/styled";
|
|
3
|
+
const dockPositioning = `
|
|
4
|
+
position: fixed;
|
|
5
|
+
left: calc(
|
|
6
|
+
var(--admin-sidebar-width, 0px) +
|
|
7
|
+
(100vw - var(--admin-sidebar-width, 0px) - var(--olaf-panel-width, 0px)) /
|
|
8
|
+
2
|
|
9
|
+
);
|
|
10
|
+
transform: translateX(-50%);
|
|
11
|
+
z-index: 1200;
|
|
12
|
+
display: flex;
|
|
13
|
+
flex-direction: column;
|
|
14
|
+
align-items: flex-start;
|
|
15
|
+
max-width: calc(
|
|
16
|
+
100vw - var(--admin-sidebar-width, 0px) - var(--olaf-panel-width, 0px) -
|
|
17
|
+
32px
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
@media (max-width: 600px) {
|
|
21
|
+
max-width: calc(100vw - 2rem);
|
|
22
|
+
}
|
|
23
|
+
`;
|
|
24
|
+
export const ToolbarStack = styled.div `
|
|
25
|
+
${dockPositioning}
|
|
26
|
+
top: calc(var(--admin-topbar-height, 64px) + 12px);
|
|
27
|
+
align-items: center;
|
|
28
|
+
|
|
29
|
+
@media (max-width: 900px) {
|
|
30
|
+
width: 100%;
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
export const ActionsDock = styled.div `
|
|
34
|
+
${dockPositioning}
|
|
35
|
+
bottom: 16px;
|
|
36
|
+
|
|
37
|
+
& > div {
|
|
38
|
+
flex-wrap: wrap;
|
|
39
|
+
white-space: normal;
|
|
40
|
+
overflow-x: visible;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@media (max-width: 600px) {
|
|
44
|
+
left: 1rem;
|
|
45
|
+
transform: none;
|
|
46
|
+
max-width: calc(100vw - 1rem - 92px);
|
|
47
|
+
}
|
|
48
|
+
`;
|
|
49
|
+
export const ToolbarRow = styled.div `
|
|
50
|
+
display: inline-flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
gap: 2px;
|
|
53
|
+
padding: 8px 6px;
|
|
54
|
+
background: rgba(255, 255, 255, 0.72);
|
|
55
|
+
backdrop-filter: blur(18px) saturate(160%);
|
|
56
|
+
-webkit-backdrop-filter: blur(18px) saturate(160%);
|
|
57
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
58
|
+
border-radius: 14px;
|
|
59
|
+
box-shadow:
|
|
60
|
+
0 1px 0 rgba(255, 255, 255, 0.6) inset,
|
|
61
|
+
0 12px 32px -12px rgba(15, 23, 42, 0.22);
|
|
62
|
+
flex-wrap: nowrap;
|
|
63
|
+
white-space: nowrap;
|
|
64
|
+
max-width: 100%;
|
|
65
|
+
overflow-x: auto;
|
|
66
|
+
scrollbar-width: none;
|
|
67
|
+
|
|
68
|
+
&::-webkit-scrollbar {
|
|
69
|
+
display: none;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@media (max-width: 900px) {
|
|
73
|
+
flex-wrap: wrap;
|
|
74
|
+
white-space: normal;
|
|
75
|
+
}
|
|
76
|
+
`;
|
|
77
|
+
export const ToolbarButton = styled.button `
|
|
78
|
+
min-width: 30px;
|
|
79
|
+
height: 30px;
|
|
80
|
+
padding: 0 10px;
|
|
81
|
+
border-radius: 10px;
|
|
82
|
+
border: 1px solid transparent;
|
|
83
|
+
background: ${({ $active }) => ($active ? "#0f172a" : "transparent")};
|
|
84
|
+
color: ${({ $active }) => ($active ? "#fff" : "#334155")};
|
|
85
|
+
font-size: 0.8125rem;
|
|
86
|
+
font-weight: 600;
|
|
87
|
+
letter-spacing: 0.01em;
|
|
88
|
+
cursor: pointer;
|
|
89
|
+
transition:
|
|
90
|
+
background 140ms ease,
|
|
91
|
+
color 140ms ease;
|
|
92
|
+
display: inline-flex;
|
|
93
|
+
align-items: center;
|
|
94
|
+
justify-content: center;
|
|
95
|
+
flex-shrink: 0;
|
|
96
|
+
|
|
97
|
+
&:hover {
|
|
98
|
+
background: ${({ $active }) => $active ? "#1e293b" : "rgba(15, 23, 42, 0.06)"};
|
|
99
|
+
color: ${({ $active }) => ($active ? "#fff" : "#0f172a")};
|
|
100
|
+
}
|
|
101
|
+
`;
|
|
102
|
+
export const ToolbarText = styled.span `
|
|
103
|
+
font-size: 0.8125rem;
|
|
104
|
+
font-weight: 600;
|
|
105
|
+
letter-spacing: 0.01em;
|
|
106
|
+
`;
|
|
107
|
+
export const Divider = styled.span `
|
|
108
|
+
width: 1px;
|
|
109
|
+
height: 20px;
|
|
110
|
+
background: rgba(15, 23, 42, 0.08);
|
|
111
|
+
margin: 0 6px;
|
|
112
|
+
flex-shrink: 0;
|
|
113
|
+
`;
|
|
114
|
+
//# sourceMappingURL=Toolbar.styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.styled.js","sourceRoot":"","sources":["../../src/editor/Toolbar.styled.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;CAoBvB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;IAClC,eAAe;;;;;;;CAOlB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;IACjC,eAAe;;;;;;;;;;;;;;CAclB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BnC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAuB;;;;;;gBAMjD,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;WAC3D,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;;;;;;;;;;;;;;kBAcxC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAC5B,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB;aACvC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;;CAE3D,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAA;;;;CAIrC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAA;;;;;;CAMjC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type Block = Record<string, unknown>;
|
|
2
|
+
export interface Span {
|
|
3
|
+
sanityKey: string;
|
|
4
|
+
sanityType: "span";
|
|
5
|
+
text: string;
|
|
6
|
+
marks: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare const BLOCK_STYLES: {
|
|
9
|
+
readonly normal: "Avsnitt";
|
|
10
|
+
readonly h1: "Overskrift 1";
|
|
11
|
+
readonly h2: "Overskrift 2";
|
|
12
|
+
readonly h3: "Overskrift 3";
|
|
13
|
+
readonly h4: "Overskrift 4";
|
|
14
|
+
readonly h5: "Overskrift 5";
|
|
15
|
+
readonly h6: "Overskrift 6";
|
|
16
|
+
readonly blockquote: "Sitat";
|
|
17
|
+
};
|
|
18
|
+
export type BlockStyle = keyof typeof BLOCK_STYLES;
|
|
19
|
+
export declare function isTextBlock(block: Block): boolean;
|
|
20
|
+
export declare function getStyle(block: Block): BlockStyle;
|
|
21
|
+
export declare function getListItem(block: Block): string | null;
|
|
22
|
+
export declare function getLevel(block: Block): number;
|
|
23
|
+
export declare function childrenOf(block: Block): Span[];
|
|
24
|
+
export declare function plainTextOf(block: Block): string;
|
|
25
|
+
export declare function hasMarks(block: Block): boolean;
|
|
26
|
+
export declare function hasMarkDefs(block: Block): boolean;
|
|
27
|
+
export declare function setPlainText(block: Block, text: string): Block;
|
|
28
|
+
export declare function makeParagraph(text?: string): Block;
|
|
29
|
+
export declare function makeHeading(level?: 2 | 3, text?: string): Block;
|
|
30
|
+
export declare function makeListItem(listItem?: "bullet" | "number", text?: string): Block;
|
|
31
|
+
export declare function randomKey(): string;
|
|
32
|
+
export type BlockLabelResolver = (_key: string, _fallback: string) => string;
|
|
33
|
+
export declare function describeBlock(block: Block, resolve?: BlockLabelResolver): string;
|
|
34
|
+
//# sourceMappingURL=blocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/editor/blocks.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,YAAY,CAAC;AAEnD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEjD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAIjD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAGvD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAG7C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,CAO/C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAIhD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAI9C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAGjD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAa9D;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAK,GAAG,KAAK,CAe9C;AAED,wBAAgB,WAAW,CAAC,KAAK,GAAE,CAAC,GAAG,CAAK,EAAE,IAAI,SAAK,GAAG,KAAK,CAe9D;AAED,wBAAgB,YAAY,CAC1B,QAAQ,GAAE,QAAQ,GAAG,QAAmB,EACxC,IAAI,SAAK,GACR,KAAK,CAiBP;AAED,wBAAgB,SAAS,IAAI,MAAM,CAKlC;AAQD,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;AAI7E,wBAAgB,aAAa,CAC3B,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,kBAAqC,GAC7C,MAAM,CAqCR"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
export const BLOCK_STYLES = {
|
|
2
|
+
normal: "Avsnitt",
|
|
3
|
+
h1: "Overskrift 1",
|
|
4
|
+
h2: "Overskrift 2",
|
|
5
|
+
h3: "Overskrift 3",
|
|
6
|
+
h4: "Overskrift 4",
|
|
7
|
+
h5: "Overskrift 5",
|
|
8
|
+
h6: "Overskrift 6",
|
|
9
|
+
blockquote: "Sitat",
|
|
10
|
+
};
|
|
11
|
+
export function isTextBlock(block) {
|
|
12
|
+
return block.sanityType === "block";
|
|
13
|
+
}
|
|
14
|
+
export function getStyle(block) {
|
|
15
|
+
const s = block.style;
|
|
16
|
+
if (typeof s === "string" && s in BLOCK_STYLES)
|
|
17
|
+
return s;
|
|
18
|
+
return "normal";
|
|
19
|
+
}
|
|
20
|
+
export function getListItem(block) {
|
|
21
|
+
const v = block.listItem;
|
|
22
|
+
return typeof v === "string" ? v : null;
|
|
23
|
+
}
|
|
24
|
+
export function getLevel(block) {
|
|
25
|
+
const v = block.level;
|
|
26
|
+
return typeof v === "number" ? v : 1;
|
|
27
|
+
}
|
|
28
|
+
export function childrenOf(block) {
|
|
29
|
+
const c = block.children;
|
|
30
|
+
if (!Array.isArray(c))
|
|
31
|
+
return [];
|
|
32
|
+
return c.filter((s) => {
|
|
33
|
+
const span = s;
|
|
34
|
+
return span && span.sanityType === "span";
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export function plainTextOf(block) {
|
|
38
|
+
return childrenOf(block)
|
|
39
|
+
.map((s) => s.text ?? "")
|
|
40
|
+
.join("");
|
|
41
|
+
}
|
|
42
|
+
export function hasMarks(block) {
|
|
43
|
+
return childrenOf(block).some((s) => Array.isArray(s.marks) && s.marks.length > 0);
|
|
44
|
+
}
|
|
45
|
+
export function hasMarkDefs(block) {
|
|
46
|
+
const md = block.markDefs;
|
|
47
|
+
return Array.isArray(md) && md.length > 0;
|
|
48
|
+
}
|
|
49
|
+
export function setPlainText(block, text) {
|
|
50
|
+
const firstChild = childrenOf(block)[0];
|
|
51
|
+
const span = {
|
|
52
|
+
sanityKey: firstChild?.sanityKey ?? randomKey(),
|
|
53
|
+
sanityType: "span",
|
|
54
|
+
text,
|
|
55
|
+
marks: [],
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
...block,
|
|
59
|
+
markDefs: [],
|
|
60
|
+
children: [span],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export function makeParagraph(text = "") {
|
|
64
|
+
return {
|
|
65
|
+
sanityKey: randomKey(),
|
|
66
|
+
sanityType: "block",
|
|
67
|
+
style: "normal",
|
|
68
|
+
markDefs: [],
|
|
69
|
+
children: [
|
|
70
|
+
{
|
|
71
|
+
sanityKey: randomKey(),
|
|
72
|
+
sanityType: "span",
|
|
73
|
+
text,
|
|
74
|
+
marks: [],
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export function makeHeading(level = 2, text = "") {
|
|
80
|
+
return {
|
|
81
|
+
sanityKey: randomKey(),
|
|
82
|
+
sanityType: "block",
|
|
83
|
+
style: `h${level}`,
|
|
84
|
+
markDefs: [],
|
|
85
|
+
children: [
|
|
86
|
+
{
|
|
87
|
+
sanityKey: randomKey(),
|
|
88
|
+
sanityType: "span",
|
|
89
|
+
text,
|
|
90
|
+
marks: [],
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
export function makeListItem(listItem = "bullet", text = "") {
|
|
96
|
+
return {
|
|
97
|
+
sanityKey: randomKey(),
|
|
98
|
+
sanityType: "block",
|
|
99
|
+
style: "normal",
|
|
100
|
+
listItem,
|
|
101
|
+
level: 1,
|
|
102
|
+
markDefs: [],
|
|
103
|
+
children: [
|
|
104
|
+
{
|
|
105
|
+
sanityKey: randomKey(),
|
|
106
|
+
sanityType: "span",
|
|
107
|
+
text,
|
|
108
|
+
marks: [],
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
export function randomKey() {
|
|
114
|
+
if (typeof crypto !== "undefined" && "randomUUID" in crypto) {
|
|
115
|
+
return crypto.randomUUID().replace(/-/g, "").slice(0, 12);
|
|
116
|
+
}
|
|
117
|
+
return Math.random().toString(36).slice(2, 14);
|
|
118
|
+
}
|
|
119
|
+
function stripComponentPrefix(sanityType) {
|
|
120
|
+
return sanityType.startsWith("component.")
|
|
121
|
+
? sanityType.slice("component.".length)
|
|
122
|
+
: sanityType;
|
|
123
|
+
}
|
|
124
|
+
const identityResolver = (_key, fallback) => fallback;
|
|
125
|
+
export function describeBlock(block, resolve = identityResolver) {
|
|
126
|
+
const t = block.sanityType;
|
|
127
|
+
if (typeof t !== "string")
|
|
128
|
+
return resolve("editorBlockKindUnknown", "Ukjent blokk");
|
|
129
|
+
const kind = stripComponentPrefix(t);
|
|
130
|
+
switch (kind) {
|
|
131
|
+
case "block": {
|
|
132
|
+
const li = getListItem(block);
|
|
133
|
+
if (li === "bullet")
|
|
134
|
+
return resolve("editorBlockKindListItem", "Listepunkt");
|
|
135
|
+
if (li === "number")
|
|
136
|
+
return resolve("editorBlockKindNumberItem", "Nummerert punkt");
|
|
137
|
+
const s = getStyle(block);
|
|
138
|
+
return BLOCK_STYLES[s] ?? "Avsnitt";
|
|
139
|
+
}
|
|
140
|
+
case "image":
|
|
141
|
+
return resolve("editorBlockKindImage", "Bilde");
|
|
142
|
+
case "gallery":
|
|
143
|
+
return resolve("editorBlockKindGallery", "Galleri");
|
|
144
|
+
case "video":
|
|
145
|
+
return resolve("editorBlockKindVideo", "Video");
|
|
146
|
+
case "muxVideo":
|
|
147
|
+
case "mux.video":
|
|
148
|
+
return resolve("editorBlockKindMuxVideo", "MUX-video");
|
|
149
|
+
case "youtube":
|
|
150
|
+
return resolve("editorBlockKindYoutube", "YouTube");
|
|
151
|
+
case "link":
|
|
152
|
+
return resolve("editorBlockKindLinkCard", "Lenke-kort");
|
|
153
|
+
case "media":
|
|
154
|
+
return resolve("editorBlockKindMedia", "Media");
|
|
155
|
+
case "iframe":
|
|
156
|
+
return resolve("editorBlockKindIframe", "Iframe");
|
|
157
|
+
case "code":
|
|
158
|
+
return resolve("editorBlockKindCode", "Kodeblokk");
|
|
159
|
+
default:
|
|
160
|
+
return `Blokk (${t})`;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=blocks.js.map
|