@crashbytes/contentful-richtext-editor 1.0.6 → 1.0.7

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.
@@ -24,6 +24,8 @@ 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;
27
29
  }
28
30
  export declare const ContentfulRichTextEditor: React.FC<ContentfulRichTextEditorProps>;
29
31
  export default ContentfulRichTextEditor;
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}.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}}
1
+ .contentful-editor{background:#fff;border:1px solid #d3dce6;border-radius:6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;overflow:hidden;position:relative}.contentful-editor--loading{align-items:center;background:#f7f9fa;color:#68737d;display:flex;font-size:14px;justify-content:center;min-height:200px}.contentful-editor__loading{align-items:center;display:flex;gap:8px}.contentful-editor__loading:before{animation:contentful-spin 1s linear infinite;border:2px solid #d3dce6;border-radius:50%;border-top-color:#2e75d4;content:"";height:16px;width:16px}@keyframes contentful-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.contentful-editor__error{background:#fff2f0;border:1px solid #ffccc7;border-left:4px solid #ff4d4f;border-radius:6px 6px 0 0;color:#cf1322;font-size:14px;line-height:1.4;margin-bottom:0;padding:12px 16px}.contentful-editor__error strong{color:#a8071a;font-weight:600}.contentful-editor--error{border-color:#ff7875}.contentful-toolbar{background:#f7f9fa;border-bottom:1px solid #d3dce6;border-radius:6px 6px 0 0;flex-wrap:wrap;min-height:48px;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;flex-shrink:0;height:24px;margin:0 8px;width:1px}.contentful-toolbar__select{background:#fff;border:1px solid #d3dce6;border-radius:4px;cursor:pointer;font-size:14px;height:32px;min-width:120px;padding:4px 8px;transition:all .2s ease}.contentful-toolbar__select:focus{border-color:#2e75d4;box-shadow:0 0 0 2px rgba(46,117,212,.2);outline:none}.contentful-toolbar__select:hover{border-color:#1e5aa8}.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;position:relative;transition:all .15s ease}.contentful-toolbar__button:hover{background:#e5ebed;border-color:#d3dce6;transform:translateY(-1px)}.contentful-toolbar__button:active{transform:translateY(0)}.contentful-toolbar__button:disabled{cursor:not-allowed;opacity:.5;transform:none!important}.contentful-toolbar__button:disabled:hover{background:transparent;border-color:transparent}.contentful-toolbar__button--active{background:#2e75d4;border-color:#2e75d4;box-shadow:0 2px 4px rgba(46,117,212,.3);color:#fff}.contentful-toolbar__button--active:hover{background:#1e5aa8;border-color:#1e5aa8;transform:translateY(-1px)}.contentful-toolbar__link-input{align-items:center;background:#fff;border:1px solid #d3dce6;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1);display:flex;gap:4px;margin-left:8px;padding:4px}.contentful-toolbar__link-input input{background:transparent;border:none;font-size:14px;outline:none;padding:6px 8px;width:200px}.contentful-toolbar__link-input input:focus{background:#f7f9fa}.contentful-toolbar__link-input button{align-items:center;background:#fff;border:1px solid #d3dce6;border-radius:4px;cursor:pointer;display:flex;font-size:12px;font-weight:500;height:24px;justify-content:center;min-width:24px;padding:4px 8px;transition:all .15s ease}.contentful-toolbar__link-input button:hover{background:#f7f9fa;border-color:#2e75d4}.contentful-toolbar__embed-dropdown{position:relative}.contentful-toolbar__embed-button{align-items:center;background:#2e75d4;border:1px solid #2e75d4;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:4px;height:32px;padding:6px 12px;transition:all .15s ease}.contentful-toolbar__embed-button:hover{background:#1e5aa8;border-color:#1e5aa8;box-shadow:0 2px 8px rgba(46,117,212,.3);transform:translateY(-1px)}.contentful-toolbar__embed-dropdown:hover .contentful-toolbar__embed-menu{animation:contentful-fade-in .15s ease;display:block}@keyframes contentful-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.contentful-toolbar__embed-menu{background:#fff;border:1px solid #d3dce6;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);display:none;min-width:140px;overflow:hidden;position:absolute;right:0;top:calc(100% + 4px);z-index:100}.contentful-toolbar__embed-option{background:none;border:none;color:#2c3e50;cursor:pointer;display:block;font-size:14px;font-weight:500;padding:12px 16px;text-align:left;transition:background-color .15s ease;width:100%}.contentful-toolbar__embed-option:hover{background:#f7f9fa;color:#2e75d4}.contentful-toolbar__embed-option:first-child{border-radius:6px 6px 0 0}.contentful-toolbar__embed-option:last-child{border-radius:0 0 6px 6px}.contentful-editor__content-wrapper{background:#fff;position:relative}.contentful-editor__content{min-height:200px}.contentful-editor-content{color:#2c3e50;font-size:16px;line-height:1.6;min-height:200px;outline:none;padding:16px}.contentful-editor-content:empty:before{color:#68737d;content:attr(data-placeholder);font-style:italic;pointer-events:none}.contentful-editor-content h1,.contentful-editor-content h2,.contentful-editor-content h3,.contentful-editor-content h4,.contentful-editor-content h5,.contentful-editor-content h6{color:#1a202c;font-weight:600;line-height:1.2;margin:1.5em 0 .75em}.contentful-editor-content h1:first-child,.contentful-editor-content h2:first-child,.contentful-editor-content h3:first-child,.contentful-editor-content h4:first-child,.contentful-editor-content h5:first-child,.contentful-editor-content h6:first-child{margin-top:0}.contentful-editor-content h1{font-size:2em}.contentful-editor-content h2{font-size:1.5em}.contentful-editor-content h3{font-size:1.25em}.contentful-editor-content h4,.contentful-editor-content h5,.contentful-editor-content h6{font-size:1em}.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{line-height:1.5;margin:.5em 0}.contentful-bullet-list li::marker{color:#2e75d4}.contentful-ordered-list li::marker{color:#2e75d4;font-weight:600}.contentful-blockquote{background:#f7f9fa;border-left:4px solid #2e75d4;border-radius:0 4px 4px 0;color:#68737d;font-style:italic;margin:1.5em 0;padding:1em 0 1em 1.5em;position:relative}.contentful-blockquote:before{color:#2e75d4;content:'"';font-size:3em;left:8px;line-height:1;opacity:.3;position:absolute;top:-8px}.contentful-link{border-bottom:1px solid transparent;color:#2e75d4;text-decoration:none;transition:all .15s ease}.contentful-link:hover{border-bottom-color:#1e5aa8;color:#1e5aa8}.contentful-link:focus{border-radius:2px;outline:2px solid #2e75d4;outline-offset:2px}.contentful-table{border:1px solid #d3dce6;border-collapse:collapse;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.1);margin:1.5em 0;overflow:hidden;width:100%}.contentful-table-cell,.contentful-table-header{border:1px solid #d3dce6;padding:12px 16px;text-align:left;vertical-align:top}.contentful-table-header{background:#f7f9fa;border-bottom:2px solid #d3dce6;color:#1a202c;font-weight:600}.contentful-table-cell{background:#fff}.contentful-table tbody tr:nth-child(2n) .contentful-table-cell{background:#fafbfc}.contentful-table tbody tr:hover .contentful-table-cell{background:#f0f6ff}.contentful-editor--minimal{border:none;border-radius:0;box-shadow:none}.contentful-editor--minimal .contentful-toolbar{background:#fff;border-bottom:1px solid #e1e8ed;border-radius:0}.contentful-editor--minimal .contentful-editor__error{border-radius:0}.contentful-editor--default .contentful-editor-content,.contentful-editor--default .contentful-editor-content h1,.contentful-editor--default .contentful-editor-content h2,.contentful-editor--default .contentful-editor-content h3,.contentful-editor--default .contentful-editor-content h4,.contentful-editor--default .contentful-editor-content h5,.contentful-editor--default .contentful-editor-content h6{font-family:Georgia,Times New Roman,serif}.contentful-editor:focus-within{border-color:#2e75d4;box-shadow:0 0 0 2px rgba(46,117,212,.2)}.contentful-editor--error:focus-within{border-color:#ff4d4f;box-shadow:0 0 0 2px rgba(255,77,79,.2)}@media (max-width:768px){.contentful-toolbar{flex-wrap:wrap;gap:8px;padding:12px}.contentful-toolbar__select{flex:1;min-width:100px}.contentful-toolbar__separator{display:none}.contentful-toolbar__group{flex-wrap:wrap}.contentful-editor-content{font-size:14px;padding:12px}.contentful-toolbar__link-input{align-items:stretch;flex-direction:column;gap:8px;margin-left:0;margin-top:8px;width:100%}.contentful-toolbar__link-input input{width:100%}.contentful-table{font-size:14px}.contentful-table-cell,.contentful-table-header{padding:8px 12px}}@media (max-width:480px){.contentful-editor-content{font-size:14px;padding:8px}.contentful-toolbar{padding:8px}.contentful-toolbar__button{font-size:12px;height:28px;min-width:28px;padding:4px 6px}.contentful-blockquote{margin:1em 0;padding:.75em 0 .75em 1em}}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,47 @@
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, validateContentfulDocument, createEmptyDocument } from './utils/contentfulTransform';
4
+ export { contentfulToTiptap, tiptapToContentful, safeContentfulToTiptap, validateContentfulDocument, createEmptyDocument, createEmptyTiptapDocument } 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
+ };
@@ -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}.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}}
1
+ .contentful-editor{background:#fff;border:1px solid #d3dce6;border-radius:6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;overflow:hidden;position:relative}.contentful-editor--loading{align-items:center;background:#f7f9fa;color:#68737d;display:flex;font-size:14px;justify-content:center;min-height:200px}.contentful-editor__loading{align-items:center;display:flex;gap:8px}.contentful-editor__loading:before{animation:contentful-spin 1s linear infinite;border:2px solid #d3dce6;border-radius:50%;border-top-color:#2e75d4;content:"";height:16px;width:16px}@keyframes contentful-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.contentful-editor__error{background:#fff2f0;border:1px solid #ffccc7;border-left:4px solid #ff4d4f;border-radius:6px 6px 0 0;color:#cf1322;font-size:14px;line-height:1.4;margin-bottom:0;padding:12px 16px}.contentful-editor__error strong{color:#a8071a;font-weight:600}.contentful-editor--error{border-color:#ff7875}.contentful-toolbar{background:#f7f9fa;border-bottom:1px solid #d3dce6;border-radius:6px 6px 0 0;flex-wrap:wrap;min-height:48px;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;flex-shrink:0;height:24px;margin:0 8px;width:1px}.contentful-toolbar__select{background:#fff;border:1px solid #d3dce6;border-radius:4px;cursor:pointer;font-size:14px;height:32px;min-width:120px;padding:4px 8px;transition:all .2s ease}.contentful-toolbar__select:focus{border-color:#2e75d4;box-shadow:0 0 0 2px rgba(46,117,212,.2);outline:none}.contentful-toolbar__select:hover{border-color:#1e5aa8}.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;position:relative;transition:all .15s ease}.contentful-toolbar__button:hover{background:#e5ebed;border-color:#d3dce6;transform:translateY(-1px)}.contentful-toolbar__button:active{transform:translateY(0)}.contentful-toolbar__button:disabled{cursor:not-allowed;opacity:.5;transform:none!important}.contentful-toolbar__button:disabled:hover{background:transparent;border-color:transparent}.contentful-toolbar__button--active{background:#2e75d4;border-color:#2e75d4;box-shadow:0 2px 4px rgba(46,117,212,.3);color:#fff}.contentful-toolbar__button--active:hover{background:#1e5aa8;border-color:#1e5aa8;transform:translateY(-1px)}.contentful-toolbar__link-input{align-items:center;background:#fff;border:1px solid #d3dce6;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1);display:flex;gap:4px;margin-left:8px;padding:4px}.contentful-toolbar__link-input input{background:transparent;border:none;font-size:14px;outline:none;padding:6px 8px;width:200px}.contentful-toolbar__link-input input:focus{background:#f7f9fa}.contentful-toolbar__link-input button{align-items:center;background:#fff;border:1px solid #d3dce6;border-radius:4px;cursor:pointer;display:flex;font-size:12px;font-weight:500;height:24px;justify-content:center;min-width:24px;padding:4px 8px;transition:all .15s ease}.contentful-toolbar__link-input button:hover{background:#f7f9fa;border-color:#2e75d4}.contentful-toolbar__embed-dropdown{position:relative}.contentful-toolbar__embed-button{align-items:center;background:#2e75d4;border:1px solid #2e75d4;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:4px;height:32px;padding:6px 12px;transition:all .15s ease}.contentful-toolbar__embed-button:hover{background:#1e5aa8;border-color:#1e5aa8;box-shadow:0 2px 8px rgba(46,117,212,.3);transform:translateY(-1px)}.contentful-toolbar__embed-dropdown:hover .contentful-toolbar__embed-menu{animation:contentful-fade-in .15s ease;display:block}@keyframes contentful-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.contentful-toolbar__embed-menu{background:#fff;border:1px solid #d3dce6;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);display:none;min-width:140px;overflow:hidden;position:absolute;right:0;top:calc(100% + 4px);z-index:100}.contentful-toolbar__embed-option{background:none;border:none;color:#2c3e50;cursor:pointer;display:block;font-size:14px;font-weight:500;padding:12px 16px;text-align:left;transition:background-color .15s ease;width:100%}.contentful-toolbar__embed-option:hover{background:#f7f9fa;color:#2e75d4}.contentful-toolbar__embed-option:first-child{border-radius:6px 6px 0 0}.contentful-toolbar__embed-option:last-child{border-radius:0 0 6px 6px}.contentful-editor__content-wrapper{background:#fff;position:relative}.contentful-editor__content{min-height:200px}.contentful-editor-content{color:#2c3e50;font-size:16px;line-height:1.6;min-height:200px;outline:none;padding:16px}.contentful-editor-content:empty:before{color:#68737d;content:attr(data-placeholder);font-style:italic;pointer-events:none}.contentful-editor-content h1,.contentful-editor-content h2,.contentful-editor-content h3,.contentful-editor-content h4,.contentful-editor-content h5,.contentful-editor-content h6{color:#1a202c;font-weight:600;line-height:1.2;margin:1.5em 0 .75em}.contentful-editor-content h1:first-child,.contentful-editor-content h2:first-child,.contentful-editor-content h3:first-child,.contentful-editor-content h4:first-child,.contentful-editor-content h5:first-child,.contentful-editor-content h6:first-child{margin-top:0}.contentful-editor-content h1{font-size:2em}.contentful-editor-content h2{font-size:1.5em}.contentful-editor-content h3{font-size:1.25em}.contentful-editor-content h4,.contentful-editor-content h5,.contentful-editor-content h6{font-size:1em}.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{line-height:1.5;margin:.5em 0}.contentful-bullet-list li::marker{color:#2e75d4}.contentful-ordered-list li::marker{color:#2e75d4;font-weight:600}.contentful-blockquote{background:#f7f9fa;border-left:4px solid #2e75d4;border-radius:0 4px 4px 0;color:#68737d;font-style:italic;margin:1.5em 0;padding:1em 0 1em 1.5em;position:relative}.contentful-blockquote:before{color:#2e75d4;content:'"';font-size:3em;left:8px;line-height:1;opacity:.3;position:absolute;top:-8px}.contentful-link{border-bottom:1px solid transparent;color:#2e75d4;text-decoration:none;transition:all .15s ease}.contentful-link:hover{border-bottom-color:#1e5aa8;color:#1e5aa8}.contentful-link:focus{border-radius:2px;outline:2px solid #2e75d4;outline-offset:2px}.contentful-table{border:1px solid #d3dce6;border-collapse:collapse;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.1);margin:1.5em 0;overflow:hidden;width:100%}.contentful-table-cell,.contentful-table-header{border:1px solid #d3dce6;padding:12px 16px;text-align:left;vertical-align:top}.contentful-table-header{background:#f7f9fa;border-bottom:2px solid #d3dce6;color:#1a202c;font-weight:600}.contentful-table-cell{background:#fff}.contentful-table tbody tr:nth-child(2n) .contentful-table-cell{background:#fafbfc}.contentful-table tbody tr:hover .contentful-table-cell{background:#f0f6ff}.contentful-editor--minimal{border:none;border-radius:0;box-shadow:none}.contentful-editor--minimal .contentful-toolbar{background:#fff;border-bottom:1px solid #e1e8ed;border-radius:0}.contentful-editor--minimal .contentful-editor__error{border-radius:0}.contentful-editor--default .contentful-editor-content,.contentful-editor--default .contentful-editor-content h1,.contentful-editor--default .contentful-editor-content h2,.contentful-editor--default .contentful-editor-content h3,.contentful-editor--default .contentful-editor-content h4,.contentful-editor--default .contentful-editor-content h5,.contentful-editor--default .contentful-editor-content h6{font-family:Georgia,Times New Roman,serif}.contentful-editor:focus-within{border-color:#2e75d4;box-shadow:0 0 0 2px rgba(46,117,212,.2)}.contentful-editor--error:focus-within{border-color:#ff4d4f;box-shadow:0 0 0 2px rgba(255,77,79,.2)}@media (max-width:768px){.contentful-toolbar{flex-wrap:wrap;gap:8px;padding:12px}.contentful-toolbar__select{flex:1;min-width:100px}.contentful-toolbar__separator{display:none}.contentful-toolbar__group{flex-wrap:wrap}.contentful-editor-content{font-size:14px;padding:12px}.contentful-toolbar__link-input{align-items:stretch;flex-direction:column;gap:8px;margin-left:0;margin-top:8px;width:100%}.contentful-toolbar__link-input input{width:100%}.contentful-table{font-size:14px}.contentful-table-cell,.contentful-table-header{padding:8px 12px}}@media (max-width:480px){.contentful-editor-content{font-size:14px;padding:8px}.contentful-toolbar{padding:8px}.contentful-toolbar__button{font-size:12px;height:28px;min-width:28px;padding:4px 6px}.contentful-blockquote{margin:1em 0;padding:.75em 0 .75em 1em}}