@pubwave/editor 0.2.7 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.css +884 -2
  2. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -1,2 +1,884 @@
1
- /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.isolate{isolation:isolate}.container{width:100%}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}:root{--pubwave-bg:#fff;--pubwave-surface:#fff;--pubwave-text:#37352f;--pubwave-text-muted:#9b9a97;--pubwave-border:#e3e2e0;--pubwave-border-light:#f3f4f6;--pubwave-hover:#f7f6f3;--pubwave-focus:#0000000d;--pubwave-selection:#3b82f6;--pubwave-selection-bg:#2383e226;--pubwave-primary:#2383e2;--pubwave-primary-hover:#2563eb;--pubwave-handle-color:#9b9a97;--pubwave-primary-faded:#3b82f61a;--pubwave-drop-indicator:#3b82f6;--pubwave-drop-target:#3b82f60d;--pubwave-error:#ef4444;--pubwave-success:#10b981;--pubwave-warning:#f59e0b;--pubwave-text-secondary:#374151;--pubwave-text-tertiary:#4b5563;--pubwave-hover-bg:#f3f4f6;--pubwave-hover-task:#e8f2ff;--pubwave-checked-text:#9ca3af;--pubwave-spacing-xs:.25rem;--pubwave-spacing-sm:.5rem;--pubwave-spacing-md:1rem;--pubwave-spacing-lg:1.5rem;--pubwave-spacing-xl:2rem;--pubwave-spacing-1:4px;--pubwave-spacing-2:8px;--pubwave-spacing-3:12px;--pubwave-spacing-4:16px;--pubwave-spacing-7:28px;--pubwave-font-family:inherit;--pubwave-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--pubwave-font-size-xs:11px;--pubwave-font-size-sm:13px;--pubwave-font-size-base:14px;--pubwave-font-size-md:1rem;--pubwave-font-size-lg:1.125rem;--pubwave-font-size-xl:1.25rem;--pubwave-font-size-2xl:1.5rem;--pubwave-font-size-3xl:2rem;--pubwave-line-height:1.625;--pubwave-line-height-heading:1.25;--pubwave-button-width:28px;--pubwave-button-height:28px;--pubwave-icon-size:20px;--pubwave-checkbox-size:20px;--pubwave-checkbox-input-size:16px;--pubwave-divider-width:1px;--pubwave-divider-height:20px;--pubwave-drop-indicator-width:2px;--pubwave-drop-indicator-height:2px;--pubwave-task-item-height:30px;--pubwave-radius-xs:3px;--pubwave-radius-sm:4px;--pubwave-radius:6px;--pubwave-radius-md:6px;--pubwave-radius-lg:8px;--pubwave-shadow-sm:0 1px 2px 0 #0000000d;--pubwave-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--pubwave-shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}@media (prefers-color-scheme:dark){:root{--pubwave-bg:#1a1a1a;--pubwave-surface:#262626;--pubwave-text:#e5e7eb;--pubwave-text-muted:#9ca3af;--pubwave-border:#374151;--pubwave-border-light:#4b5563;--pubwave-hover:#ffffff0d;--pubwave-focus:#ffffff14;--pubwave-selection:#60a5fa;--pubwave-selection-bg:#60a5fa26;--pubwave-primary:#60a5fa;--pubwave-primary-hover:#3b82f6;--pubwave-primary-faded:#60a5fa26;--pubwave-drop-indicator:#60a5fa;--pubwave-drop-target:#60a5fa14;--pubwave-error:#f87171;--pubwave-text-secondary:#d1d5db;--pubwave-text-tertiary:#9ca3af;--pubwave-hover-bg:#374151;--pubwave-hover-task:#3b82f626;--pubwave-checked-text:#6b7280}}.pubwave-editor{width:var(--pubwave-container-width,100%);max-width:var(--pubwave-container-max-width,none);font-family:var(--pubwave-font-family);color:var(--pubwave-text);background:var(--pubwave-bg,#fff);border-radius:var(--pubwave-container-border-radius,16px);padding:var(--pubwave-container-padding-y,96px)var(--pubwave-container-padding-x,120px);padding-left:var(--pubwave-container-padding-left,140px);position:relative;box-shadow:0 0 0 1px #0000000a,0 20px 25px -5px #0000000d,0 10px 10px -5px #00000005}.pubwave-editor:not(.pubwave-editor--fixed-height){min-height:var(--pubwave-container-min-height,700px)}@media (max-width:768px){.pubwave-editor{padding:var(--pubwave-container-padding-y-mobile,20px)var(--pubwave-container-padding-x-mobile,16px);padding-left:var(--pubwave-container-padding-left-mobile,16px);border-radius:var(--pubwave-container-border-radius-mobile,12px)}.pubwave-editor:not(.pubwave-editor--fixed-height){min-height:var(--pubwave-container-min-height-mobile,400px)}}.pubwave-editor,.pubwave-editor *,.pubwave-editor :before,.pubwave-editor :after{box-sizing:border-box}.pubwave-editor__content{outline:none;flex-direction:column;flex:1;min-height:1em;display:flex;overflow:hidden auto}.pubwave-editor__content .ProseMirror{min-height:100%;padding-bottom:30vh;padding-top:var(--pubwave-spacing-md,1rem);outline:none;flex-grow:1}.pubwave-editor--fixed-height .pubwave-editor__content .ProseMirror{padding-bottom:2rem}.pubwave-editor__content .ProseMirror p.is-editor-empty:first-child:before,.pubwave-editor__content p.pubwave-editor__node--empty:before,.ProseMirror p.pubwave-editor__node--empty:before{content:attr(data-placeholder);float:left;color:var(--pubwave-text-muted);pointer-events:none;height:0}.pubwave-editor__content .ProseMirror>*+*{margin-top:.75em}@media (max-width:768px){.pubwave-editor__content .ProseMirror>*+*{margin-top:.35em}.pubwave-editor__content .ProseMirror h1+*,.pubwave-editor__content .ProseMirror h2+*,.pubwave-editor__content .ProseMirror h3+*{margin-top:.4em}.pubwave-editor__content .ProseMirror h1,.pubwave-editor__content .ProseMirror h2,.pubwave-editor__content .ProseMirror h3{margin-top:.6em}.pubwave-editor__content .ProseMirror{font-size:var(--pubwave-font-size-base-mobile,15px)}.pubwave-editor__content .ProseMirror h1{font-size:var(--pubwave-font-size-3xl-mobile,1.75rem)}.pubwave-editor__content .ProseMirror h2{font-size:var(--pubwave-font-size-2xl-mobile,1.375rem)}.pubwave-editor__content .ProseMirror h3{font-size:var(--pubwave-font-size-xl-mobile,1.125rem)}}.pubwave-editor__content .pubwave-editor__bullet-list,.pubwave-editor__content .pubwave-editor__ordered-list{padding-left:1.3em!important}.pubwave-editor__content .ProseMirror p{line-height:var(--pubwave-line-height);margin:0}.pubwave-editor__content .ProseMirror h1,.pubwave-editor__content .ProseMirror h2,.pubwave-editor__content .ProseMirror h3{line-height:var(--pubwave-line-height-heading);margin:0;font-weight:600}.pubwave-editor__content .ProseMirror h1{font-size:var(--pubwave-font-size-3xl)}.pubwave-editor__content .ProseMirror h2{font-size:var(--pubwave-font-size-2xl)}.pubwave-editor__content .ProseMirror h3{font-size:var(--pubwave-font-size-xl)}.pubwave-editor__content .ProseMirror ul:not([data-type=taskList]),.pubwave-editor__content .ProseMirror ol{margin:0;padding-left:1.5em}.pubwave-editor__content .ProseMirror li:not([data-type=taskItem]):not(.pubwave-editor__task-item){margin:.25em 0}.pubwave-editor__content .ProseMirror li>p{margin:0}.pubwave-editor__content ul[data-type=taskList]{padding:var(--pubwave-spacing-4,16px)0;margin:0!important;padding-left:0!important;list-style:none!important}.pubwave-editor__content .ProseMirror ul[data-type=taskList] li,.pubwave-editor__content .ProseMirror ul[data-type=taskList]>li,.pubwave-editor__content .ProseMirror ul[data-type=taskList] li[data-type=taskItem],.pubwave-editor__content .ProseMirror ul[data-type=taskList] li.pubwave-editor__task-item,.pubwave-editor__content .ProseMirror .pubwave-editor__task-item,.pubwave-editor__content.ProseMirror ul[data-type=taskList] li,.ProseMirror.pubwave-editor__content ul[data-type=taskList] li{border-radius:var(--pubwave-radius-sm,4px)!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;flex-direction:row!important;align-items:flex-start!important;gap:.5em!important;margin:0!important;padding:.25em 0!important;list-style:none!important;display:flex!important}.pubwave-editor__task-item{min-height:var(--pubwave-task-item-height,30px);height:auto!important}.pubwave-editor__content .ProseMirror ul[data-type=taskList] li::marker{content:""!important;width:0!important;font-size:0!important;display:none!important}.pubwave-editor__content .ProseMirror ul[data-type=taskList] li[data-type=taskItem]::marker{content:""!important;width:0!important;font-size:0!important;display:none!important}.pubwave-editor__content .ProseMirror ul[data-type=taskList] li.pubwave-editor__task-item::marker{content:""!important;width:0!important;font-size:0!important;display:none!important}.pubwave-editor__content .ProseMirror ul[data-type=taskList] li:before,.pubwave-editor__content .ProseMirror ul[data-type=taskList] li[data-type=taskItem]:before,.pubwave-editor__content .ProseMirror ul[data-type=taskList] li.pubwave-editor__task-item:before{content:""!important;width:0!important;display:none!important}.pubwave-editor__content .ProseMirror ul[data-type=taskList] li:hover,.pubwave-editor__content .ProseMirror ul[data-type=taskList] li.ProseMirror-selectednode{background-color:var(--pubwave-hover-task,#e8f2ff)}.pubwave-editor__content .ProseMirror ul[data-type=taskList] li>label,.pubwave-editor__content .ProseMirror ul[data-type=taskList] li[data-type=taskItem]>label,.pubwave-editor__content .ProseMirror ul[data-type=taskList] li.pubwave-editor__task-item>label{cursor:pointer!important;width:var(--pubwave-checkbox-size,20px)!important;height:var(--pubwave-checkbox-size,20px)!important;min-height:var(--pubwave-checkbox-size,20px)!important;max-height:var(--pubwave-checkbox-size,20px)!important;flex-shrink:0!important;align-self:flex-start!important;margin:.125em 0 0!important;padding:0!important;line-height:1!important;display:block!important;position:relative!important;overflow:hidden!important}li>label input[type=checkbox]{width:var(--pubwave-checkbox-input-size,16px);height:var(--pubwave-checkbox-input-size,16px);cursor:pointer;margin-top:5px}.pubwave-editor__content .ProseMirror ul[data-type=taskList] li>label:before{content:"";width:var(--pubwave-checkbox-size,20px);height:var(--pubwave-checkbox-size,20px);border:1.5px solid var(--pubwave-text,#1a1a1a);border-radius:var(--pubwave-radius-xs,3px);background-color:var(--pubwave-bg,#fff);box-sizing:border-box;transition:all .15s;display:block;position:absolute;top:0;left:0}.pubwave-editor__content .ProseMirror ul[data-type=taskList] li[data-checked=true]>label:before{background-color:var(--pubwave-primary-hover,#2563eb);border-color:var(--pubwave-primary-hover,#2563eb)}.pubwave-editor__content .ProseMirror ul[data-type=taskList] li[data-checked=true]>label:after{content:"";border:solid var(--pubwave-bg,#fff);box-sizing:border-box;z-index:1;border-width:0 2px 2px 0;width:5px;height:10px;position:absolute;top:3px;left:6px;transform:rotate(45deg)}.pubwave-editor__content ul[data-type=taskList] li>div,.pubwave-editor__content ul[data-type=taskList] li[data-type=taskItem]>div,.pubwave-editor__content ul[data-type=taskList] li.pubwave-editor__task-item>div{min-width:0!important;color:var(--pubwave-text,#1a1a1a)!important;flex:1!important;margin:0!important;padding:.1em 0!important;display:block!important}.pubwave-editor__content ul[data-type=taskList] li>div p,.pubwave-editor__content ul[data-type=taskList] li[data-type=taskItem]>div p,.pubwave-editor__content ul[data-type=taskList] li.pubwave-editor__task-item>div p,.pubwave-editor__content ul[data-type=taskList] li>div>p,.pubwave-editor__content ul[data-type=taskList] li>div p.pubwave-editor__paragraph,.pubwave-editor__content ul[data-type=taskList] li[data-type=taskItem]>div p.pubwave-editor__paragraph{width:100%!important;min-height:1.5em!important;margin:0!important;padding:0!important;line-height:1.5!important;display:block!important}.pubwave-editor__content.ProseMirror ul[data-type=taskList] li[data-checked=true]>div p,.pubwave-editor__content ul[data-type=taskList] li[data-checked=true]>div p{color:var(--pubwave-checked-text,#9ca3af)!important;text-decoration:line-through!important}.pubwave-editor__content blockquote,.pubwave-editor__content.ProseMirror blockquote{margin:.5em 0;padding-left:1em;font-style:italic;border-left:3px solid var(--pubwave-text,#1a1a1a)!important}.pubwave-editor__content .ProseMirror pre,.pubwave-editor__content pre{margin:.5em 0;padding:.5em .75em;line-height:1.5;overflow-x:auto;background:var(--pubwave-border-light,#f3f4f6)!important;border-radius:var(--pubwave-radius-md,6px)!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important;font-size:var(--pubwave-font-size-sm,13px)!important;color:#1a1a1a!important}.pubwave-editor__content .ProseMirror pre code,.pubwave-editor__content pre code{font-size:inherit!important;color:inherit!important;background:0 0!important;border-radius:0!important;padding:0!important;font-family:inherit!important}.pubwave-block{padding-left:2.5em;position:relative}.pubwave-block-menu{z-index:2;align-items:center;gap:.5em;display:flex;position:absolute;top:50%;left:.5em;transform:translateY(-50%)}.pubwave-editor__content .ProseMirror hr,.pubwave-editor__content hr,.pubwave-editor__content .pubwave-editor__divider{border:none;border-top:1px solid var(--pubwave-border,#e5e7eb)!important;background:0 0!important;height:0!important;margin:1em 0!important}.pubwave-editor__content .ProseMirror img,.pubwave-editor__content img,.pubwave-editor__content .pubwave-editor__image{border-radius:var(--pubwave-radius-md,6px);cursor:pointer;max-width:100%;height:auto;margin:1em auto;transition:opacity .2s;display:block;box-shadow:0 1px 3px #0000001a}.pubwave-editor__content .ProseMirror img:hover,.pubwave-editor__content img:hover,.pubwave-editor__content .pubwave-editor__image:hover{opacity:.9}.pubwave-editor__content .ProseMirror img.ProseMirror-selectednode,.pubwave-editor__content img.ProseMirror-selectednode,.pubwave-editor__content .pubwave-editor__image.ProseMirror-selectednode{outline:2px solid var(--pubwave-primary,#2383e2);outline-offset:2px}.pubwave-editor__content .ProseMirror strong{font-weight:600}.pubwave-editor__content .ProseMirror em{font-style:italic}.pubwave-editor__content .ProseMirror u{text-decoration:underline}.pubwave-editor__content .ProseMirror s{text-decoration:line-through}.pubwave-editor__content .ProseMirror code{background:var(--pubwave-hover);border-radius:var(--pubwave-radius-sm);font-family:var(--pubwave-font-mono);padding:.15em .35em;font-size:.9em}.pubwave-editor__content .ProseMirror a,.pubwave-editor .ProseMirror a{cursor:pointer;text-decoration:underline;color:var(--pubwave-link-color,#2383e2)!important}.pubwave-editor__content .ProseMirror a:hover,.pubwave-editor .ProseMirror a:hover{opacity:.8;color:var(--pubwave-link-hover-color,var(--pubwave-link-color,#2383e2))!important}.pubwave-editor__content .ProseMirror ::-moz-selection{background-color:var(--pubwave-selection-bg)}.pubwave-editor__content .ProseMirror ::selection{background-color:var(--pubwave-selection-bg)}.pubwave-editor--readonly,.pubwave-editor--readonly .pubwave-editor__content{cursor:default}.pubwave-block--dragging{opacity:.4}.pubwave-block--drag-preview{color:var(--pubwave-text-muted,#9b9a97)!important;opacity:.6!important}.pubwave-block--drag-preview div,.pubwave-block--drag-preview p,.pubwave-block--drag-preview label,.pubwave-block--drag-preview .pubwave-editor__task-item>div{color:var(--pubwave-text-muted,#9b9a97)!important}.pubwave-block--drag-preview label input{display:none!important}.pubwave-block--drag-preview label:before{border-color:var(--pubwave-text-muted,#9b9a97)!important;width:16px!important;height:16px!important}.pubwave-block--drag-preview label:after{border-color:var(--pubwave-bg,#fff)!important;top:2px!important;left:4px!important}.ProseMirror .ProseMirror-gapcursor{pointer-events:none;display:none;position:absolute}.ProseMirror .ProseMirror-gapcursor:after{content:"";border-top:1px solid var(--pubwave-text);width:20px;animation:1.1s steps(2,start) infinite pubwave-cursor-blink;display:block;position:absolute;top:-2px}@keyframes pubwave-cursor-blink{to{visibility:hidden}}.ProseMirror-focused .ProseMirror-gapcursor{display:block}.tippy-box{z-index:var(--pubwave-z-dropdown,60)!important;background:0 0!important;border:none!important}.tippy-box:has(.pubwave-slash-menu){background:0 0!important;border:none!important}.pubwave-slash-menu{border:1px solid var(--pubwave-border,#e3e2e0)!important}.ProseMirror-dropcursor{border-left:2px solid var(--pubwave-primary);pointer-events:none}.pubwave-editor .ProseMirror .suggestion{border:1px solid var(--pubwave-border,#e3e2e0)!important;border-radius:var(--pubwave-radius-md,6px)!important;color:#1f2937!important;background-color:#fffffff2!important;padding:2px 4px!important;display:inline-block!important}.pubwave-editor .ProseMirror .suggestion,.pubwave-editor .ProseMirror .suggestion *,.pubwave-editor .ProseMirror .suggestion span,.pubwave-editor .ProseMirror .suggestion strong,.pubwave-editor .ProseMirror .suggestion em,.pubwave-editor .ProseMirror .suggestion code{color:#1f2937!important}.tippy-box,.tippy-box[data-theme]{z-index:60!important}.tippy-box[data-theme~=pubwave]{box-shadow:none;background:0 0;border:none}.tippy-box[data-theme~=pubwave] .tippy-content{padding:0}.tippy-box[data-theme~=light-border]{border-radius:var(--pubwave-radius,6px);box-shadow:var(--pubwave-shadow-md,0 4px 6px -1px #0000001a);padding:4px 8px;font-size:12px;color:#fff!important;background-color:#000!important;border:none!important}.tippy-box[data-theme~=light-border] .tippy-content{color:#fff!important}.pubwave-block-handle__drag,.pubwave-block-handle__add{color:var(--pubwave-text-muted,#9b9a97)!important}.pubwave-toolbar__button:not(:disabled):hover,.pubwave-toolbar__turn-into-option:not(.pubwave-toolbar__turn-into-option--active):hover{background-color:var(--pubwave-hover)!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
1
+ /**
2
+ * Pubwave Editor Base Styles
3
+ *
4
+ * This file provides:
5
+ * 1. CSS custom properties (theme tokens) with sensible defaults
6
+ * 2. ProseMirror content styles for the editor
7
+ * 3. Minimal global styles for tippy.js popups
8
+ *
9
+ * Note: Most component styles are now handled via Tailwind CSS classes.
10
+ * Users should include their Tailwind setup and import the pubwave preset
11
+ * from tailwind.config.ts for full styling.
12
+ */
13
+
14
+ /* Import all modular CSS files */
15
+
16
+ /**
17
+ * Pubwave Editor Base Styles
18
+ *
19
+ * This file provides:
20
+ * 1. CSS custom properties (theme tokens) with sensible defaults
21
+ * 2. ProseMirror content styles for the editor
22
+ * 3. Minimal global styles for tippy.js popups
23
+ *
24
+ * Note: Most component styles are now handled via Tailwind CSS classes.
25
+ * Users should include their Tailwind setup and import the pubwave preset
26
+ * from tailwind.config.ts for full styling.
27
+ */
28
+
29
+ /* Import all modular CSS files */
30
+
31
+ /**
32
+ * Pubwave Editor Theme Variables
33
+ *
34
+ * CSS custom properties (theme tokens) with sensible defaults
35
+ */
36
+
37
+ :root {
38
+ /* Colors - Light theme */
39
+ --pubwave-bg: #ffffff;
40
+ --pubwave-surface: #ffffff;
41
+ --pubwave-text: #37352f;
42
+ --pubwave-text-muted: #9b9a97;
43
+ --pubwave-border: #e3e2e0;
44
+ --pubwave-border-light: #f3f4f6;
45
+ --pubwave-hover: #f7f6f3;
46
+ --pubwave-focus: rgba(0, 0, 0, 0.05);
47
+ --pubwave-selection: #3b82f6;
48
+ --pubwave-selection-bg: rgba(35, 131, 226, 0.15);
49
+ --pubwave-primary: #2383e2;
50
+ --pubwave-primary-hover: #2563eb;
51
+ --pubwave-handle-color: #9b9a97;
52
+ --pubwave-primary-faded: rgba(59, 130, 246, 0.1);
53
+ --pubwave-drop-indicator: #3b82f6;
54
+ --pubwave-drop-target: rgba(59, 130, 246, 0.05);
55
+ --pubwave-error: #ef4444;
56
+ --pubwave-success: #10b981;
57
+ --pubwave-warning: #f59e0b;
58
+ --pubwave-text-secondary: #374151;
59
+ --pubwave-text-tertiary: #4b5563;
60
+ --pubwave-hover-bg: #f3f4f6;
61
+ --pubwave-hover-task: rgba(0, 0, 0, 0.05);
62
+ --pubwave-checked-text: #9ca3af;
63
+
64
+ /* Spacing */
65
+ --pubwave-spacing-xs: 0.25rem;
66
+ --pubwave-spacing-sm: 0.5rem;
67
+ --pubwave-spacing-md: 1rem;
68
+ --pubwave-spacing-lg: 1.5rem;
69
+ --pubwave-spacing-xl: 2rem;
70
+ --pubwave-spacing-1: 4px;
71
+ --pubwave-spacing-2: 8px;
72
+ --pubwave-spacing-3: 12px;
73
+ --pubwave-spacing-4: 16px;
74
+ --pubwave-spacing-7: 28px;
75
+
76
+ /* Typography */
77
+ --pubwave-font-family: inherit;
78
+ --pubwave-font-mono:
79
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
80
+ --pubwave-font-size-xs: 0.75rem;
81
+ --pubwave-font-size-sm: 0.875rem;
82
+ --pubwave-font-size-base: 1rem;
83
+ --pubwave-font-size-md: 1.125rem;
84
+ --pubwave-font-size-lg: 1.25rem;
85
+ --pubwave-font-size-xl: 1.4rem;
86
+ --pubwave-font-size-2xl: 1.775rem;
87
+ --pubwave-font-size-3xl: 2.1rem;
88
+ --pubwave-line-height: 1.625;
89
+ --pubwave-line-height-heading: 1.25;
90
+
91
+ /* Component sizes */
92
+ --pubwave-button-width: 28px;
93
+ --pubwave-button-height: 28px;
94
+ --pubwave-icon-size: 20px;
95
+ --pubwave-checkbox-size: 20px;
96
+ --pubwave-checkbox-input-size: 16px;
97
+ --pubwave-divider-width: 1px;
98
+ --pubwave-divider-height: 20px;
99
+ --pubwave-drop-indicator-width: 2px;
100
+ --pubwave-drop-indicator-height: 2px;
101
+ --pubwave-task-item-height: 30px;
102
+
103
+ /* Borders */
104
+ --pubwave-radius-xs: 3px;
105
+ --pubwave-radius-sm: 4px;
106
+ --pubwave-radius: 6px;
107
+ --pubwave-radius-md: 6px;
108
+ --pubwave-radius-lg: 8px;
109
+
110
+ /* Shadows */
111
+ --pubwave-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
112
+ --pubwave-shadow:
113
+ 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
114
+ --pubwave-shadow-lg:
115
+ 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
116
+ }
117
+
118
+ /* Dark theme */
119
+
120
+ [data-theme='dark'] {
121
+ --pubwave-hover-task: rgba(255, 255, 255, 0.12);
122
+ }
123
+
124
+ /**
125
+ * Pubwave Editor Container Styles
126
+ */
127
+
128
+ /* Editor container */
129
+
130
+ .pubwave-editor {
131
+ position: relative;
132
+ width: var(--pubwave-container-width, 100%);
133
+ max-width: var(--pubwave-container-max-width, none);
134
+ font-family: var(--pubwave-font-family);
135
+ color: var(--pubwave-text);
136
+ background: var(--pubwave-bg, #ffffff);
137
+ border-radius: var(--pubwave-container-border-radius, 16px);
138
+ padding: var(--pubwave-container-padding-y, 96px)
139
+ var(--pubwave-container-padding-x, 120px);
140
+ padding-left: var(--pubwave-container-padding-left, 140px);
141
+ /* Sophisticated tiered shadow */
142
+ box-shadow:
143
+ 0 0 0 1px rgba(0, 0, 0, 0.04),
144
+ 0 20px 25px -5px rgba(0, 0, 0, 0.05),
145
+ 0 10px 10px -5px rgba(0, 0, 0, 0.02);
146
+ }
147
+
148
+ /* Default min-height only when not using fixed height mode */
149
+
150
+ .pubwave-editor:not(.pubwave-editor--fixed-height) {
151
+ min-height: var(--pubwave-container-min-height, 700px);
152
+ }
153
+
154
+ /* Mobile responsive styles */
155
+
156
+ @media (max-width: 768px) {
157
+ .pubwave-editor {
158
+ padding: var(--pubwave-container-padding-y-mobile, 20px)
159
+ var(--pubwave-container-padding-x-mobile, 16px);
160
+ padding-left: var(--pubwave-container-padding-left-mobile, 16px);
161
+ border-radius: var(--pubwave-container-border-radius-mobile, 12px);
162
+ }
163
+
164
+ .pubwave-editor:not(.pubwave-editor--fixed-height) {
165
+ min-height: var(--pubwave-container-min-height-mobile, 400px);
166
+ }
167
+ }
168
+
169
+ .pubwave-editor,
170
+ .pubwave-editor *,
171
+ .pubwave-editor *::before,
172
+ .pubwave-editor *::after {
173
+ box-sizing: border-box;
174
+ }
175
+
176
+ /* ProseMirror content area */
177
+
178
+ .pubwave-editor__content {
179
+ outline: none;
180
+ min-height: 1em;
181
+ display: flex;
182
+ flex-direction: column;
183
+ flex: 1;
184
+ /* When parent has fixed height, content should scroll */
185
+ overflow-y: auto;
186
+ overflow-x: hidden;
187
+ }
188
+
189
+ /* When editor has fixed height, reduce padding to avoid excessive scrolling */
190
+
191
+ .pubwave-editor--fixed-height .pubwave-editor__content {
192
+ padding-bottom: 2rem;
193
+ /* Smaller padding for fixed height containers */
194
+ }
195
+
196
+ /* Placeholder styling */
197
+
198
+ .pubwave-editor__content p.is-editor-empty:first-child::before {
199
+ content: attr(data-placeholder);
200
+ float: left;
201
+ color: var(--pubwave-text-muted);
202
+ pointer-events: none;
203
+ height: 0;
204
+ }
205
+
206
+ /* Empty paragraph placeholder - always visible when empty, not just when focused */
207
+
208
+ .pubwave-editor__content p.pubwave-editor__node--empty::before,
209
+ .ProseMirror p.pubwave-editor__node--empty::before {
210
+ content: attr(data-placeholder);
211
+ float: left;
212
+ color: var(--pubwave-text-muted);
213
+ pointer-events: none;
214
+ height: 0;
215
+ }
216
+
217
+ /* Block spacing */
218
+
219
+ .pubwave-editor__content > * + * {
220
+ margin-top: 0.75em !important;
221
+ }
222
+
223
+ /* Mobile: Reduce block spacing and font sizes */
224
+
225
+ .pubwave-editor__content > * + * {
226
+ margin-top: 0.35em !important;
227
+ }
228
+
229
+ .pubwave-editor .pubwave-editor__content > * + * {
230
+ margin-top: 1rem !important;
231
+ margin-bottom: 1rem !important;
232
+ }
233
+
234
+ /* Responsive font sizes for mobile */
235
+
236
+ .pubwave-editor__content {
237
+ font-size: var(--pubwave-font-size-base, 15px);
238
+ }
239
+
240
+ .pubwave-editor__content h1 {
241
+ font-size: var(--pubwave-font-size-3xl, 1.75rem);
242
+ }
243
+
244
+ .pubwave-editor__content h2 {
245
+ font-size: var(--pubwave-font-size-2xl, 1.375rem);
246
+ }
247
+
248
+ .pubwave-editor__content h3 {
249
+ font-size: var(--pubwave-font-size-xl, 1.125rem);
250
+ }
251
+
252
+ /**
253
+ * Pubwave Editor Content Styles
254
+ */
255
+
256
+ /* Paragraph */
257
+
258
+ .pubwave-editor__content p {
259
+ margin: 0;
260
+ line-height: var(--pubwave-line-height);
261
+ margin-block-start: 1em;
262
+ margin-block-end: 1em;
263
+ margin-inline-start: 0px;
264
+ margin-inline-end: 0px;
265
+ unicode-bidi: isolate;
266
+ }
267
+
268
+ /* Headings */
269
+
270
+ .pubwave-editor__content h1,
271
+ .pubwave-editor__content h2,
272
+ .pubwave-editor__content h3 {
273
+ line-height: var(--pubwave-line-height-heading);
274
+ font-weight: 600;
275
+ }
276
+
277
+ /* Lists */
278
+
279
+ .pubwave-editor__content ul:not([data-type='taskList']),
280
+ .pubwave-editor__content ol {
281
+ margin: 0;
282
+ padding-left: 1.5em;
283
+ }
284
+
285
+ .pubwave-editor__content .pubwave-editor__ordered-list {
286
+ margin: 0;
287
+ padding-left: 2em !important;
288
+ display: block;
289
+ list-style-type: decimal;
290
+ margin-block-start: 1em;
291
+ unicode-bidi: isolate;
292
+ }
293
+
294
+ .pubwave-editor__content .pubwave-editor__bullet-list {
295
+ display: block;
296
+ list-style-type: disc;
297
+ margin-block-start: 1em;
298
+ margin-block-end: 1em;
299
+ padding-inline-start: 40px;
300
+ unicode-bidi: isolate;
301
+ }
302
+
303
+ .pubwave-editor__content .pubwave-editor__bullet-list,
304
+ .pubwave-editor__content .pubwave-editor__ordered-list {
305
+ padding-left: 1.3em !important;
306
+ }
307
+
308
+ .pubwave-editor__content
309
+ li:not([data-type='taskItem']):not(.pubwave-editor__task-item) {
310
+ margin: 0.25em 0;
311
+ }
312
+
313
+ .pubwave-editor__content li > p {
314
+ margin: 0;
315
+ }
316
+
317
+ /* Blockquote */
318
+
319
+ .pubwave-editor__content blockquote,
320
+ .pubwave-editor__content.ProseMirror blockquote {
321
+ margin: 0;
322
+ padding-left: 1em;
323
+ border-left: 3px solid var(--pubwave-text, #1a1a1a) !important;
324
+ font-style: italic;
325
+ margin: 0.5em 0;
326
+ }
327
+
328
+ /* Code block */
329
+
330
+ .pubwave-editor__content pre,
331
+ .pubwave-editor__content pre {
332
+ margin: 0.5em 0;
333
+ padding: 0.5em 0.75em;
334
+ background: var(--pubwave-border-light, #f3f4f6) !important;
335
+ border-radius: var(--pubwave-radius-md, 6px) !important;
336
+ font-family:
337
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
338
+ 'Courier New', monospace !important;
339
+ font-size: var(--pubwave-font-size-sm, 13px) !important;
340
+ line-height: 1.5;
341
+ overflow-x: auto;
342
+ color: #1a1a1a !important;
343
+ }
344
+
345
+ .pubwave-editor__content pre code,
346
+ .pubwave-editor__content pre code {
347
+ background: none !important;
348
+ padding: 0 !important;
349
+ border-radius: 0 !important;
350
+ font-size: inherit !important;
351
+ color: inherit !important;
352
+ font-family: inherit !important;
353
+ }
354
+
355
+ /* Horizontal rule / Divider */
356
+
357
+ .pubwave-editor__content hr,
358
+ .pubwave-editor__content hr,
359
+ .pubwave-editor__content .pubwave-editor__divider {
360
+ border: none;
361
+ border-top: 1px solid var(--pubwave-border, #e5e7eb) !important;
362
+ height: 0 !important;
363
+ background: none !important;
364
+ }
365
+
366
+ /* Image */
367
+
368
+ .pubwave-editor__content img,
369
+ .pubwave-editor__content img,
370
+ .pubwave-editor__content .pubwave-editor__image {
371
+ display: block;
372
+ max-width: 100%;
373
+ height: auto;
374
+ margin-top: 1em;
375
+ border-radius: var(--pubwave-radius-md, 6px);
376
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
377
+ cursor: pointer;
378
+ transition: opacity 0.2s ease;
379
+ }
380
+
381
+ .pubwave-editor__content img:hover,
382
+ .pubwave-editor__content img:hover,
383
+ .pubwave-editor__content .pubwave-editor__image:hover {
384
+ opacity: 0.6;
385
+ }
386
+
387
+ .pubwave-editor__content img.ProseMirror-selectednode,
388
+ .pubwave-editor__content img.ProseMirror-selectednode,
389
+ .pubwave-editor__content .pubwave-editor__image.ProseMirror-selectednode {
390
+ outline: 2px solid var(--pubwave-primary, #2383e2);
391
+ outline-offset: 2px;
392
+ }
393
+
394
+ /* Inline marks */
395
+
396
+ .pubwave-editor__content strong {
397
+ font-weight: 600;
398
+ }
399
+
400
+ .pubwave-editor__content em {
401
+ font-style: italic;
402
+ }
403
+
404
+ .pubwave-editor__content u {
405
+ text-decoration: underline;
406
+ }
407
+
408
+ .pubwave-editor__content s {
409
+ text-decoration: line-through;
410
+ }
411
+
412
+ .pubwave-editor__content code {
413
+ background: var(--pubwave-hover);
414
+ padding: 0.15em 0.35em;
415
+ border-radius: var(--pubwave-radius-sm);
416
+ font-family: var(--pubwave-font-mono);
417
+ font-size: 0.9em;
418
+ }
419
+
420
+ /* Links */
421
+
422
+ .pubwave-editor__content a,
423
+ .pubwave-editor .ProseMirror a {
424
+ color: var(--pubwave-link-color, #2383e2) !important;
425
+ text-decoration: underline;
426
+ cursor: pointer;
427
+ }
428
+
429
+ .pubwave-editor__content a:hover,
430
+ .pubwave-editor .ProseMirror a:hover {
431
+ color: var(
432
+ --pubwave-link-hover-color,
433
+ var(--pubwave-link-color, #2383e2)
434
+ ) !important;
435
+ opacity: 0.8;
436
+ }
437
+
438
+ /* Selection highlight */
439
+
440
+ .pubwave-editor__content ::-moz-selection {
441
+ background-color: var(--pubwave-selection-bg);
442
+ }
443
+
444
+ .pubwave-editor__content ::selection {
445
+ background-color: var(--pubwave-selection-bg);
446
+ }
447
+
448
+ /* Read-only mode */
449
+
450
+ .pubwave-editor--readonly {
451
+ cursor: default;
452
+ }
453
+
454
+ .pubwave-editor--readonly .pubwave-editor__content {
455
+ cursor: default;
456
+ }
457
+
458
+ /**
459
+ * Pubwave Editor Task List Styles
460
+ */
461
+
462
+ /* Task list */
463
+
464
+ .pubwave-editor__content ul[data-type='taskList'] {
465
+ list-style: none !important;
466
+ padding-left: 0 !important;
467
+ margin: 0 !important;
468
+ padding: var(--pubwave-spacing-4, 16px) 0;
469
+ }
470
+
471
+ /* Task list items - unified rules with high specificity */
472
+
473
+ /* Use very specific selectors to override Tailwind base styles and browser defaults */
474
+
475
+ .pubwave-editor__content ul[data-type='taskList'] li,
476
+ .pubwave-editor__content ul[data-type='taskList'] > li,
477
+ .pubwave-editor__content ul[data-type='taskList'] li[data-type='taskItem'],
478
+ .pubwave-editor__content ul[data-type='taskList'] li.pubwave-editor__task-item,
479
+ .pubwave-editor__content .pubwave-editor__task-item,
480
+ .pubwave-editor__content.ProseMirror ul[data-type='taskList'] li,
481
+ .ProseMirror.pubwave-editor__content ul[data-type='taskList'] li {
482
+ display: flex !important;
483
+ align-items: flex-start !important;
484
+ flex-direction: row !important;
485
+ gap: 0.5em !important;
486
+ padding: 0.25em 0 !important;
487
+ border-radius: var(--pubwave-radius-sm, 4px) !important;
488
+ margin: 0 !important;
489
+ list-style: none !important;
490
+ list-style-type: none !important;
491
+ list-style-position: outside !important;
492
+ padding-left: 0 !important;
493
+ /* Override browser default list-item display */
494
+ list-style-image: none !important;
495
+ /* Force override any Tailwind base styles */
496
+ -webkit-appearance: none !important;
497
+ -moz-appearance: none !important;
498
+ appearance: none !important;
499
+ }
500
+
501
+ .pubwave-editor__task-item {
502
+ min-height: var(--pubwave-task-item-height, 30px);
503
+ height: auto !important;
504
+ }
505
+
506
+ .pubwave-editor__content ul[data-type='taskList'] li::marker,
507
+ .pubwave-editor__content
508
+ ul[data-type='taskList']
509
+ li[data-type='taskItem']::marker,
510
+ .pubwave-editor__content
511
+ ul[data-type='taskList']
512
+ li.pubwave-editor__task-item::marker {
513
+ display: none !important;
514
+ content: '' !important;
515
+ width: 0 !important;
516
+ font-size: 0 !important;
517
+ }
518
+
519
+ .pubwave-editor__content ul[data-type='taskList'] li::before,
520
+ .pubwave-editor__content
521
+ ul[data-type='taskList']
522
+ li[data-type='taskItem']::before,
523
+ .pubwave-editor__content
524
+ ul[data-type='taskList']
525
+ li.pubwave-editor__task-item::before {
526
+ display: none !important;
527
+ content: '' !important;
528
+ width: 0 !important;
529
+ }
530
+
531
+ .pubwave-editor__content ul[data-type='taskList'] li:hover {
532
+ background-color: var(--pubwave-hover-task);
533
+ outline: 1px solid rgba(255, 255, 255, 0.1);
534
+ transition: background-color 0.15s ease;
535
+ }
536
+
537
+ .pubwave-editor__content ul[data-type='taskList'] li > label,
538
+ .pubwave-editor__content
539
+ ul[data-type='taskList']
540
+ li[data-type='taskItem']
541
+ > label,
542
+ .pubwave-editor__content
543
+ ul[data-type='taskList']
544
+ li.pubwave-editor__task-item
545
+ > label {
546
+ flex-shrink: 0 !important;
547
+ margin: 0 !important;
548
+ margin-right: 0 !important;
549
+ position: relative !important;
550
+ cursor: pointer !important;
551
+ width: var(--pubwave-checkbox-size, 20px) !important;
552
+ height: var(--pubwave-checkbox-size, 20px) !important;
553
+ min-height: var(--pubwave-checkbox-size, 20px) !important;
554
+ max-height: var(--pubwave-checkbox-size, 20px) !important;
555
+ display: block !important;
556
+ align-self: flex-start !important;
557
+ line-height: 1 !important;
558
+ padding: 0 !important;
559
+ overflow: hidden !important;
560
+ margin-top: 0.125em !important;
561
+ }
562
+
563
+ .pubwave-editor__content input[type='checkbox'] {
564
+ background-color: initial;
565
+ cursor: default;
566
+ -webkit-appearance: auto;
567
+ -moz-appearance: auto;
568
+ appearance: auto;
569
+ box-sizing: border-box;
570
+ margin: 3px 3px 3px 4px;
571
+ padding: initial;
572
+ border: initial;
573
+ }
574
+
575
+ .pubwave-editor__content ul[data-type='taskList'] li > label::before {
576
+ content: '';
577
+ display: block;
578
+ width: var(--pubwave-checkbox-size, 20px);
579
+ height: var(--pubwave-checkbox-size, 20px);
580
+ border: 1.5px solid var(--pubwave-text, #1a1a1a);
581
+ border-radius: var(--pubwave-radius-xs, 3px);
582
+ background-color: #ffffff;
583
+ transition: all 0.15s ease;
584
+ box-sizing: border-box;
585
+ position: absolute;
586
+ top: 0;
587
+ left: 0;
588
+ }
589
+
590
+ .pubwave-editor__content
591
+ ul[data-type='taskList']
592
+ li[data-checked='true']
593
+ > label::before {
594
+ background-color: var(--pubwave-primary-hover, #2563eb);
595
+ border-color: var(--pubwave-primary-hover, #2563eb);
596
+ }
597
+
598
+ .pubwave-editor__content
599
+ ul[data-type='taskList']
600
+ li[data-checked='true']
601
+ > label::after {
602
+ content: '';
603
+ position: absolute;
604
+ left: 6px;
605
+ top: 3px;
606
+ width: 5px;
607
+ height: 10px;
608
+ border: solid var(--pubwave-bg, #ffffff);
609
+ border-width: 0 2px 2px 0;
610
+ transform: rotate(45deg);
611
+ box-sizing: border-box;
612
+ z-index: 1;
613
+ }
614
+
615
+ .pubwave-editor__content ul[data-type='taskList'] li > div,
616
+ .pubwave-editor__content
617
+ ul[data-type='taskList']
618
+ li[data-type='taskItem']
619
+ > div,
620
+ .pubwave-editor__content
621
+ ul[data-type='taskList']
622
+ li.pubwave-editor__task-item
623
+ > div {
624
+ flex: 1 !important;
625
+ min-width: 0 !important;
626
+ color: var(--pubwave-text, #1a1a1a) !important;
627
+ display: block !important;
628
+ margin: 0 !important;
629
+ padding: 0 !important;
630
+ /* Use padding to create height instead of min-height to avoid flex gaps */
631
+ padding-top: 0.1em !important;
632
+ padding-bottom: 0.1em !important;
633
+ }
634
+
635
+ .pubwave-editor__content ul[data-type='taskList'] li > div p,
636
+ .pubwave-editor__content
637
+ ul[data-type='taskList']
638
+ li[data-type='taskItem']
639
+ > div
640
+ p,
641
+ .pubwave-editor__content
642
+ ul[data-type='taskList']
643
+ li.pubwave-editor__task-item
644
+ > div
645
+ p,
646
+ .pubwave-editor__content ul[data-type='taskList'] li > div > p,
647
+ .pubwave-editor__content
648
+ ul[data-type='taskList']
649
+ li
650
+ > div
651
+ p.pubwave-editor__paragraph,
652
+ .pubwave-editor__content
653
+ ul[data-type='taskList']
654
+ li[data-type='taskItem']
655
+ > div
656
+ p.pubwave-editor__paragraph {
657
+ margin: 0 !important;
658
+ padding: 0 !important;
659
+ line-height: 1.5 !important;
660
+ display: block !important;
661
+ width: 100% !important;
662
+ /* Ensure empty paragraphs have height */
663
+ min-height: 1.5em !important;
664
+ }
665
+
666
+ .pubwave-editor__content.ProseMirror
667
+ ul[data-type='taskList']
668
+ li[data-checked='true']
669
+ > div
670
+ p,
671
+ .pubwave-editor__content
672
+ ul[data-type='taskList']
673
+ li[data-checked='true']
674
+ > div
675
+ p {
676
+ color: var(--pubwave-checked-text, #9ca3af) !important;
677
+ text-decoration: line-through !important;
678
+ }
679
+
680
+ /**
681
+ * Pubwave Editor Component Styles
682
+ */
683
+
684
+ .pubwave-block {
685
+ position: relative;
686
+ padding-left: 2.5em;
687
+ }
688
+
689
+ .pubwave-block-menu {
690
+ position: absolute;
691
+ left: 0.5em;
692
+ top: 50%;
693
+ transform: translateY(-50%);
694
+ z-index: 2;
695
+ display: flex;
696
+ align-items: center;
697
+ gap: 0.5em;
698
+ }
699
+
700
+ /* Dragging state */
701
+
702
+ .pubwave-block--dragging {
703
+ opacity: 0.4;
704
+ }
705
+
706
+ /* Specific styling for the drag image (ghost) */
707
+
708
+ .pubwave-block--drag-preview {
709
+ color: var(--pubwave-text-muted, #9b9a97) !important;
710
+ opacity: 0.6 !important;
711
+ }
712
+
713
+ .pubwave-block--drag-preview div,
714
+ .pubwave-block--drag-preview p,
715
+ .pubwave-block--drag-preview label,
716
+ .pubwave-block--drag-preview .pubwave-editor__task-item > div {
717
+ color: var(--pubwave-text-muted, #9b9a97) !important;
718
+ }
719
+
720
+ /* Hide the real input in the ghost to prevent layering */
721
+
722
+ .pubwave-block--drag-preview label input {
723
+ display: none !important;
724
+ }
725
+
726
+ /* Force 16px checkbox in the ghost */
727
+
728
+ .pubwave-block--drag-preview label::before {
729
+ border-color: var(--pubwave-text-muted, #9b9a97) !important;
730
+ width: 16px !important;
731
+ height: 16px !important;
732
+ }
733
+
734
+ .pubwave-block--drag-preview label::after {
735
+ border-color: var(--pubwave-bg, #ffffff) !important;
736
+ left: 4px !important;
737
+ top: 2px !important;
738
+ }
739
+
740
+ /* Gapcursor */
741
+
742
+ .ProseMirror .ProseMirror-gapcursor {
743
+ display: none;
744
+ pointer-events: none;
745
+ position: absolute;
746
+ }
747
+
748
+ .ProseMirror .ProseMirror-gapcursor:after {
749
+ content: '';
750
+ display: block;
751
+ position: absolute;
752
+ top: -2px;
753
+ width: 20px;
754
+ border-top: 1px solid var(--pubwave-text);
755
+ animation: pubwave-cursor-blink 1.1s steps(2, start) infinite;
756
+ }
757
+
758
+ @keyframes pubwave-cursor-blink {
759
+ to {
760
+ visibility: hidden;
761
+ }
762
+ }
763
+
764
+ .ProseMirror-focused .ProseMirror-gapcursor {
765
+ display: block;
766
+ }
767
+
768
+ /* Drop cursor */
769
+
770
+ .ProseMirror-dropcursor {
771
+ border-left: 2px solid var(--pubwave-primary);
772
+ pointer-events: none;
773
+ }
774
+
775
+ /* Drag handle icon styles - elegant and theme-aware */
776
+
777
+ .pubwave-block-handle__drag,
778
+ .pubwave-block-handle__add {
779
+ color: var(--pubwave-text-muted, #9b9a97) !important;
780
+ }
781
+
782
+ /* Toolbar button hover styles */
783
+
784
+ .pubwave-toolbar__button:not(:disabled):hover {
785
+ background-color: var(--pubwave-hover) !important;
786
+ }
787
+
788
+ /* Turn Into dropdown button hover - only when not active */
789
+
790
+ .pubwave-toolbar__turn-into-option:not(
791
+ .pubwave-toolbar__turn-into-option--active
792
+ ):hover {
793
+ background-color: var(--pubwave-hover) !important;
794
+ }
795
+
796
+ /**
797
+ * Pubwave Editor Popup and Tooltip Styles
798
+ */
799
+
800
+ /* Tippy.js popup styles for SlashMenu */
801
+
802
+ .tippy-box {
803
+ z-index: var(--pubwave-z-dropdown, 60) !important;
804
+ /* Fix black block flash issue - make tippy-box transparent by default */
805
+ background: transparent !important;
806
+ border: none !important;
807
+ }
808
+
809
+ /* Ensure tippy-box with slash menu is transparent */
810
+
811
+ .tippy-box:has(.pubwave-slash-menu) {
812
+ background: transparent !important;
813
+ border: none !important;
814
+ }
815
+
816
+ /* Ensure slash menu border uses theme color */
817
+
818
+ .pubwave-slash-menu {
819
+ border: 1px solid var(--pubwave-border, #e3e2e0) !important;
820
+ }
821
+
822
+ /* Style the "/" character when slash menu is active */
823
+
824
+ /* Only apply styles when suggestion element exists (menu is active) */
825
+
826
+ .pubwave-editor .ProseMirror .suggestion {
827
+ /* Use semi-transparent white background for visibility */
828
+ background-color: rgba(255, 255, 255, 0.95) !important;
829
+ border: 1px solid var(--pubwave-border, #e3e2e0) !important;
830
+ border-radius: var(--pubwave-radius-md, 6px) !important;
831
+ padding: 2px 4px !important;
832
+ display: inline-block !important;
833
+ /* Use dark text color for visibility */
834
+ /* This ensures readability regardless of theme */
835
+ color: #1f2937 !important;
836
+ }
837
+
838
+ /* Ensure all text inside suggestion uses dark color for visibility */
839
+
840
+ .pubwave-editor .ProseMirror .suggestion,
841
+ .pubwave-editor .ProseMirror .suggestion *,
842
+ .pubwave-editor .ProseMirror .suggestion span,
843
+ .pubwave-editor .ProseMirror .suggestion strong,
844
+ .pubwave-editor .ProseMirror .suggestion em,
845
+ .pubwave-editor .ProseMirror .suggestion code {
846
+ color: #1f2937 !important;
847
+ }
848
+
849
+ /* Tippy.js Popup Overrides */
850
+
851
+ .tippy-box,
852
+ .tippy-box[data-theme] {
853
+ z-index: 60 !important;
854
+ }
855
+
856
+ .tippy-box[data-theme~='pubwave'] {
857
+ background: transparent;
858
+ box-shadow: none;
859
+ border: none;
860
+ }
861
+
862
+ .tippy-box[data-theme~='pubwave'] .tippy-content {
863
+ padding: 0;
864
+ }
865
+
866
+ /* ColorPicker tooltip theme - always black background with white text */
867
+
868
+ .tippy-box[data-theme~='light-border'] {
869
+ background-color: #000000 !important;
870
+ color: #ffffff !important;
871
+ border: none !important;
872
+ border-radius: var(--pubwave-radius, 6px);
873
+ box-shadow: var(--pubwave-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));
874
+ font-size: 16px;
875
+ padding: 4px 8px;
876
+ }
877
+
878
+ /* Ensure tooltip content text is white */
879
+
880
+ .tippy-box[data-theme~='light-border'] .tippy-content {
881
+ color: #ffffff !important;
882
+ }
883
+
884
+ .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pubwave/editor",
3
- "version": "0.2.7",
3
+ "version": "0.3.0",
4
4
  "description": "A Notion-level block editor built with React and Tiptap",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",