@crashbytes/contentful-richtext-editor 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ContentfulEditor.d.ts +0 -2
- package/dist/components/ContentfulEditor.stories.d.ts +18 -0
- package/dist/components/Toolbar.stories.d.ts +10 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +1 -43
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.js +644 -1552
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +641 -1561
- package/dist/index.js.map +1 -1
- package/dist/testData/samples.d.ts +11 -0
- package/dist/utils/contentfulTransform.d.ts +6 -14
- package/dist/utils/contentfulTransform.stories.d.ts +6 -0
- package/package.json +17 -11
|
@@ -24,8 +24,6 @@ export interface ContentfulRichTextEditorProps {
|
|
|
24
24
|
availableHeadings?: Array<1 | 2 | 3 | 4 | 5 | 6>;
|
|
25
25
|
/** Which text formatting marks to make available */
|
|
26
26
|
availableMarks?: Array<'bold' | 'italic' | 'underline'>;
|
|
27
|
-
/** Enable debug logging for troubleshooting */
|
|
28
|
-
debug?: boolean;
|
|
29
27
|
}
|
|
30
28
|
export declare const ContentfulRichTextEditor: React.FC<ContentfulRichTextEditorProps>;
|
|
31
29
|
export default ContentfulRichTextEditor;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { ContentfulRichTextEditor } from './ContentfulEditor';
|
|
3
|
+
declare const meta: Meta<typeof ContentfulRichTextEditor>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const BlogPostExample: Story;
|
|
8
|
+
export declare const MarketingCopyExample: Story;
|
|
9
|
+
export declare const TechnicalDocumentationExample: Story;
|
|
10
|
+
export declare const RecipeExample: Story;
|
|
11
|
+
export declare const ContentfulTheme: Story;
|
|
12
|
+
export declare const MinimalTheme: Story;
|
|
13
|
+
export declare const DefaultTheme: Story;
|
|
14
|
+
export declare const ReadOnly: Story;
|
|
15
|
+
export declare const LimitedFeatures: Story;
|
|
16
|
+
export declare const SimpleEditor: Story;
|
|
17
|
+
export declare const WithEmbedHandlers: Story;
|
|
18
|
+
export declare const CustomStyling: Story;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
declare const MockToolbarWrapper: ({ disabledFeatures, availableHeadings, availableMarks, onEmbedEntry, onEmbedAsset, }: any) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare const meta: Meta<typeof MockToolbarWrapper>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const LimitedFeatures: Story;
|
|
8
|
+
export declare const MinimalToolbar: Story;
|
|
9
|
+
export declare const OnlyHeadings: Story;
|
|
10
|
+
export declare const NoEmbedControls: Story;
|
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.contentful-editor{background:#fff;border:1px solid #d3dce6;border-radius:6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif
|
|
1
|
+
.contentful-editor{background:#fff;border:1px solid #d3dce6;border-radius:6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}.contentful-editor--loading{align-items:center;color:#68737d;display:flex;justify-content:center;min-height:200px}.contentful-toolbar{background:#f7f9fa;border-bottom:1px solid #d3dce6;border-radius:6px 6px 0 0;padding:8px 12px}.contentful-toolbar,.contentful-toolbar__group{align-items:center;display:flex;gap:4px}.contentful-toolbar__group--right{margin-left:auto}.contentful-toolbar__separator{background:#d3dce6;height:24px;margin:0 8px;width:1px}.contentful-toolbar__select{background:#fff;border:1px solid #d3dce6;border-radius:4px;font-size:14px;min-width:120px;padding:4px 8px}.contentful-toolbar__select:focus{border-color:#2e75d4;box-shadow:0 0 0 2px rgba(46,117,212,.2);outline:none}.contentful-toolbar__button{align-items:center;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;line-height:1;min-width:32px;padding:6px 8px}.contentful-toolbar__button:hover{background:#e5ebed;border-color:#d3dce6}.contentful-toolbar__button:disabled{cursor:not-allowed;opacity:.5}.contentful-toolbar__button--active{background:#2e75d4;border-color:#2e75d4;color:#fff}.contentful-toolbar__button--active:hover{background:#1e5aa8;border-color:#1e5aa8}.contentful-toolbar__link-input{align-items:center;display:flex;gap:4px;margin-left:8px}.contentful-toolbar__link-input input{border:1px solid #d3dce6;border-radius:4px;font-size:14px;padding:4px 8px;width:200px}.contentful-toolbar__link-input input:focus{border-color:#2e75d4;box-shadow:0 0 0 2px rgba(46,117,212,.2);outline:none}.contentful-toolbar__link-input button{background:#fff;border:1px solid #d3dce6;border-radius:4px;cursor:pointer;font-size:12px;padding:4px 8px}.contentful-toolbar__embed-dropdown{position:relative}.contentful-toolbar__embed-button{background:#2e75d4;border:1px solid #2e75d4;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:6px 12px}.contentful-toolbar__embed-button:hover{background:#1e5aa8;border-color:#1e5aa8}.contentful-toolbar__embed-dropdown:hover .contentful-toolbar__embed-menu{display:block}.contentful-toolbar__embed-menu{background:#fff;border:1px solid #d3dce6;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15);display:none;min-width:120px;position:absolute;right:0;top:100%;z-index:100}.contentful-toolbar__embed-option{background:none;border:none;cursor:pointer;display:block;font-size:14px;padding:8px 12px;text-align:left;width:100%}.contentful-toolbar__embed-option:hover{background:#f7f9fa}.contentful-editor__content-wrapper{position:relative}.contentful-editor__content{min-height:200px}.contentful-editor-content{color:#2c3e50;font-size:16px;line-height:1.6;outline:none;padding:16px}.contentful-editor-content:empty:before{color:#68737d;content:attr(data-placeholder);pointer-events:none}.contentful-editor-content h1{font-size:2em;font-weight:600;line-height:1.2;margin:1em 0 .5em}.contentful-editor-content h2{font-size:1.5em;font-weight:600;line-height:1.3;margin:1em 0 .5em}.contentful-editor-content h3{font-size:1.25em;font-weight:600;line-height:1.4;margin:1em 0 .5em}.contentful-editor-content h4,.contentful-editor-content h5,.contentful-editor-content h6{font-size:1em;font-weight:600;line-height:1.5;margin:1em 0 .5em}.contentful-editor-content p{margin:0 0 1em}.contentful-editor-content p:last-child{margin-bottom:0}.contentful-bullet-list,.contentful-ordered-list{margin:1em 0;padding-left:1.5em}.contentful-bullet-list li,.contentful-ordered-list li{margin:.25em 0}.contentful-blockquote{border-left:4px solid #2e75d4;color:#68737d;font-style:italic;margin:1em 0;padding-left:1em}.contentful-link{color:#2e75d4;text-decoration:underline}.contentful-link:hover{color:#1e5aa8}.contentful-table{border:1px solid #d3dce6;border-collapse:collapse;margin:1em 0;width:100%}.contentful-table-cell,.contentful-table-header{border:1px solid #d3dce6;padding:8px 12px;text-align:left}.contentful-table-header{background:#f7f9fa;font-weight:600}.contentful-editor--minimal{border:none;border-radius:0}.contentful-editor--minimal .contentful-toolbar{background:#fff;border-bottom:1px solid #e1e8ed;border-radius:0}.contentful-editor--default .contentful-editor-content{font-family:Georgia,serif}.contentful-editor:focus-within{border-color:#2e75d4;box-shadow:0 0 0 2px rgba(46,117,212,.2)}@media (max-width:768px){.contentful-toolbar{flex-wrap:wrap}.contentful-toolbar__select{min-width:100px}.contentful-editor-content{font-size:14px;padding:12px}}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,47 +1,5 @@
|
|
|
1
1
|
export { ContentfulRichTextEditor } from './components/ContentfulEditor';
|
|
2
2
|
export type { ContentfulRichTextEditorProps } from './components/ContentfulEditor';
|
|
3
3
|
export { ContentfulToolbar } from './components/Toolbar';
|
|
4
|
-
export { contentfulToTiptap, tiptapToContentful,
|
|
4
|
+
export { contentfulToTiptap, tiptapToContentful, validateContentfulDocument, createEmptyDocument } from './utils/contentfulTransform';
|
|
5
5
|
export type { ContentfulEditorTheme } from './utils/types';
|
|
6
|
-
export type { EmbeddedEntry as EmbeddedEntryType, EmbeddedAsset as EmbeddedAssetType } from './utils/types';
|
|
7
|
-
export { ContentfulDocument } from './components/ContentfulDocument';
|
|
8
|
-
export { EmbeddedEntry as EmbeddedEntryComponent, EmbeddedAsset as EmbeddedAssetComponent } from './components/ContentfulEmbedded';
|
|
9
|
-
export declare const ContentfulEditorVersion = "1.0.7-optimized";
|
|
10
|
-
export declare const SupportedContentfulVersion = "^16.0.0";
|
|
11
|
-
export declare const SupportedTiptapVersion = "^2.0.0";
|
|
12
|
-
/**
|
|
13
|
-
* Professional debugging utility for development environments
|
|
14
|
-
* Enables comprehensive error tracking and performance monitoring
|
|
15
|
-
*/
|
|
16
|
-
export declare const enableDebugMode: (enabled?: boolean) => void;
|
|
17
|
-
/**
|
|
18
|
-
* Strategic compatibility checker for production deployments
|
|
19
|
-
* Validates environment requirements and dependency versions
|
|
20
|
-
*/
|
|
21
|
-
export declare const validateEnvironment: () => boolean;
|
|
22
|
-
/**
|
|
23
|
-
* Production-grade initialization helper
|
|
24
|
-
* Streamlines editor setup for enterprise deployments
|
|
25
|
-
*/
|
|
26
|
-
export declare const initializeContentfulEditor: (config?: {
|
|
27
|
-
debug?: boolean;
|
|
28
|
-
validateEnv?: boolean;
|
|
29
|
-
}) => {
|
|
30
|
-
version: string;
|
|
31
|
-
ready: boolean;
|
|
32
|
-
timestamp: string;
|
|
33
|
-
};
|
|
34
|
-
export type { Document, Block, Inline, Text, BLOCKS, MARKS, INLINES } from '@contentful/rich-text-types';
|
|
35
|
-
export declare const utils: {
|
|
36
|
-
readonly validateEnvironment: () => boolean;
|
|
37
|
-
readonly enableDebugMode: (enabled?: boolean) => void;
|
|
38
|
-
readonly initializeContentfulEditor: (config?: {
|
|
39
|
-
debug?: boolean;
|
|
40
|
-
validateEnv?: boolean;
|
|
41
|
-
}) => {
|
|
42
|
-
version: string;
|
|
43
|
-
ready: boolean;
|
|
44
|
-
timestamp: string;
|
|
45
|
-
};
|
|
46
|
-
readonly version: "1.0.7-optimized";
|
|
47
|
-
};
|
package/dist/index.esm.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.contentful-editor{background:#fff;border:1px solid #d3dce6;border-radius:6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif
|
|
1
|
+
.contentful-editor{background:#fff;border:1px solid #d3dce6;border-radius:6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}.contentful-editor--loading{align-items:center;color:#68737d;display:flex;justify-content:center;min-height:200px}.contentful-toolbar{background:#f7f9fa;border-bottom:1px solid #d3dce6;border-radius:6px 6px 0 0;padding:8px 12px}.contentful-toolbar,.contentful-toolbar__group{align-items:center;display:flex;gap:4px}.contentful-toolbar__group--right{margin-left:auto}.contentful-toolbar__separator{background:#d3dce6;height:24px;margin:0 8px;width:1px}.contentful-toolbar__select{background:#fff;border:1px solid #d3dce6;border-radius:4px;font-size:14px;min-width:120px;padding:4px 8px}.contentful-toolbar__select:focus{border-color:#2e75d4;box-shadow:0 0 0 2px rgba(46,117,212,.2);outline:none}.contentful-toolbar__button{align-items:center;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;line-height:1;min-width:32px;padding:6px 8px}.contentful-toolbar__button:hover{background:#e5ebed;border-color:#d3dce6}.contentful-toolbar__button:disabled{cursor:not-allowed;opacity:.5}.contentful-toolbar__button--active{background:#2e75d4;border-color:#2e75d4;color:#fff}.contentful-toolbar__button--active:hover{background:#1e5aa8;border-color:#1e5aa8}.contentful-toolbar__link-input{align-items:center;display:flex;gap:4px;margin-left:8px}.contentful-toolbar__link-input input{border:1px solid #d3dce6;border-radius:4px;font-size:14px;padding:4px 8px;width:200px}.contentful-toolbar__link-input input:focus{border-color:#2e75d4;box-shadow:0 0 0 2px rgba(46,117,212,.2);outline:none}.contentful-toolbar__link-input button{background:#fff;border:1px solid #d3dce6;border-radius:4px;cursor:pointer;font-size:12px;padding:4px 8px}.contentful-toolbar__embed-dropdown{position:relative}.contentful-toolbar__embed-button{background:#2e75d4;border:1px solid #2e75d4;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:6px 12px}.contentful-toolbar__embed-button:hover{background:#1e5aa8;border-color:#1e5aa8}.contentful-toolbar__embed-dropdown:hover .contentful-toolbar__embed-menu{display:block}.contentful-toolbar__embed-menu{background:#fff;border:1px solid #d3dce6;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15);display:none;min-width:120px;position:absolute;right:0;top:100%;z-index:100}.contentful-toolbar__embed-option{background:none;border:none;cursor:pointer;display:block;font-size:14px;padding:8px 12px;text-align:left;width:100%}.contentful-toolbar__embed-option:hover{background:#f7f9fa}.contentful-editor__content-wrapper{position:relative}.contentful-editor__content{min-height:200px}.contentful-editor-content{color:#2c3e50;font-size:16px;line-height:1.6;outline:none;padding:16px}.contentful-editor-content:empty:before{color:#68737d;content:attr(data-placeholder);pointer-events:none}.contentful-editor-content h1{font-size:2em;font-weight:600;line-height:1.2;margin:1em 0 .5em}.contentful-editor-content h2{font-size:1.5em;font-weight:600;line-height:1.3;margin:1em 0 .5em}.contentful-editor-content h3{font-size:1.25em;font-weight:600;line-height:1.4;margin:1em 0 .5em}.contentful-editor-content h4,.contentful-editor-content h5,.contentful-editor-content h6{font-size:1em;font-weight:600;line-height:1.5;margin:1em 0 .5em}.contentful-editor-content p{margin:0 0 1em}.contentful-editor-content p:last-child{margin-bottom:0}.contentful-bullet-list,.contentful-ordered-list{margin:1em 0;padding-left:1.5em}.contentful-bullet-list li,.contentful-ordered-list li{margin:.25em 0}.contentful-blockquote{border-left:4px solid #2e75d4;color:#68737d;font-style:italic;margin:1em 0;padding-left:1em}.contentful-link{color:#2e75d4;text-decoration:underline}.contentful-link:hover{color:#1e5aa8}.contentful-table{border:1px solid #d3dce6;border-collapse:collapse;margin:1em 0;width:100%}.contentful-table-cell,.contentful-table-header{border:1px solid #d3dce6;padding:8px 12px;text-align:left}.contentful-table-header{background:#f7f9fa;font-weight:600}.contentful-editor--minimal{border:none;border-radius:0}.contentful-editor--minimal .contentful-toolbar{background:#fff;border-bottom:1px solid #e1e8ed;border-radius:0}.contentful-editor--default .contentful-editor-content{font-family:Georgia,serif}.contentful-editor:focus-within{border-color:#2e75d4;box-shadow:0 0 0 2px rgba(46,117,212,.2)}@media (max-width:768px){.contentful-toolbar{flex-wrap:wrap}.contentful-toolbar__select{min-width:100px}.contentful-editor-content{font-size:14px;padding:12px}}
|