@payload-onpage/react 0.3.0 → 0.3.1

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/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  The editor UI: overlay, row toolbars, settings, dock, preview toolbar, field editors, locators, annotations and client mode. Framework-agnostic; [`@payload-onpage/next`](../next) mounts it for Next.js.
4
4
 
5
+ ![Editing a Payload CMS page in place: click the heading, type, and it autosaves as a draft](https://raw.githubusercontent.com/jellologic/payload-onpage/main/docs/media/edit-text.gif)
6
+
7
+ ![A section toolbar, settings and the block picker](https://raw.githubusercontent.com/jellologic/payload-onpage/main/docs/media/section-toolbar.png)
8
+
5
9
  ```tsx
6
10
  import { editable } from '@payload-onpage/react/annotations' // server-safe
7
11
  import { OnPageClient } from '@payload-onpage/react/client' // client mode, ~1.7 KB
@@ -12,3 +16,5 @@ Entries: `.` (editor, editors, locators, messages), `./annotations`, `./client`,
12
16
  Part of [**payload-onpage**](https://github.com/jellologic/payload-onpage): on-page editing and draft previews for Payload CMS + Next.js. Start with the [getting started guide](https://github.com/jellologic/payload-onpage/blob/main/docs/getting-started.md).
13
17
 
14
18
  MIT licensed.
19
+
20
+ See the **[tour](https://github.com/jellologic/payload-onpage/blob/main/docs/tour.md)** and **[getting started](https://github.com/jellologic/payload-onpage/blob/main/docs/getting-started.md)**.
package/dist/styles.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export declare const PO_Z = 2147483000;
2
- export declare const PO_CSS = "\n.po-layer{position:fixed;inset:0;pointer-events:none;z-index:2147483000;font:13px/1.35 system-ui,-apple-system,\"Segoe UI\",sans-serif;color:#0f172a}\n.po-layer *{box-sizing:border-box}\n.po-outline{position:fixed;border:2px solid #4f7cff;border-radius:4px;pointer-events:none;transition:all .06s ease-out}\n.po-outline.is-block{border-style:dashed;border-color:#4f7cff99}\n.po-outline.is-item{border-color:#22a06b}\n.po-chip{position:fixed;transform:translateY(-100%);background:#3b63e0;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px 4px 0 0;white-space:nowrap;pointer-events:none}\n.po-chip.is-item{background:#167a45}\n.po-bar{position:fixed;display:flex;gap:2px;padding:3px;background:#0f172a;border-radius:8px;box-shadow:0 6px 24px #0f172a40;pointer-events:auto}\n.po-bar.is-item{background:#14532d}\n.po-btn{all:unset;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:28px;height:28px;padding:0 8px;border-radius:6px;color:#fff;font:600 12px/1 system-ui,-apple-system,sans-serif;cursor:pointer;white-space:nowrap}\n.po-btn:hover{background:#ffffff1f}\n.po-btn:focus-visible{outline:2px solid #93c5fd;outline-offset:1px}\n.po-btn[disabled]{opacity:.35;cursor:default;background:none}\n.po-btn.is-danger:hover{background:#ef444455}\n.po-add{position:fixed;transform:translate(-50%,-50%);pointer-events:auto}\n.po-add .po-btn{background:#3b63e0;box-shadow:0 2px 10px #4f7cff66;height:24px;font-size:11px}\n.po-add .po-btn:hover{background:#2f5bd9}\n.po-add.is-item .po-btn{background:#167a45;box-shadow:0 2px 10px #167a4555}\n.po-panel{position:fixed;width:320px;max-height:min(70vh,560px);overflow:auto;background:#fff;color:#0f172a;border-radius:12px;box-shadow:0 20px 60px #0f172a40,0 0 0 1px #0f172a14;pointer-events:auto;padding:14px}\n.po-panel .po-h3{margin:0 0 10px;font:700 13px/1.2 system-ui,sans-serif}\n.po-panel .po-h4{margin:14px 0 6px;font:600 11px/1.2 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.06em;color:#64748b}\n.po-row{display:flex;flex-direction:column;gap:4px;margin:0 0 10px}\n.po-row label{font-weight:600;font-size:12px}\n.po-row small{color:#64748b;font-size:11px}\n.po-input,.po-select{all:unset;box-sizing:border-box;width:100%;height:32px;padding:0 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font:13px system-ui,sans-serif;color:#0f172a}\n.po-select{appearance:auto;-webkit-appearance:auto}\n.po-input:focus,.po-select:focus{border-color:#4f7cff;box-shadow:0 0 0 3px #4f7cff33}\n.po-check{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}\n.po-seg{display:flex;flex-wrap:wrap;gap:4px}\n.po-seg button{all:unset;padding:5px 9px;border:1px solid #cbd5e1;border-radius:7px;font:12px system-ui,sans-serif;cursor:pointer;background:#fff}\n.po-seg button[aria-pressed=\"true\"]{background:#0f172a;color:#fff;border-color:#0f172a}\n.po-modal-bg{position:fixed;inset:0;background:#0f172a66;pointer-events:auto;display:flex;align-items:center;justify-content:center;padding:24px}\n.po-modal{width:min(880px,100%);max-height:85vh;display:flex;flex-direction:column;background:#fff;border-radius:14px;box-shadow:0 30px 80px #0f172a55;overflow:hidden}\n.po-modal header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #e2e8f0}\n.po-modal header .po-h3{margin:0;flex:1;font:700 14px system-ui,sans-serif}\n.po-modal .po-body{padding:14px 16px;overflow:auto}\n.po-modal .po-btn{color:#0f172a}\n.po-modal .po-btn:hover{background:#f1f5f9}\n.po-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}\n.po-tile{all:unset;display:flex;flex-direction:column;gap:6px;cursor:pointer;border-radius:10px;padding:6px;border:2px solid transparent}\n.po-tile:hover,.po-tile:focus-visible{border-color:#4f7cff;background:#f8fafc}\n.po-tile img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;background:#f1f5f9}\n.po-tile span{font-size:11px;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.po-blocks{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}\n.po-blocks button{all:unset;padding:14px;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;font:600 13px system-ui,sans-serif}\n.po-blocks button:hover,.po-blocks button:focus-visible{border-color:#4f7cff;background:#f5f8ff}\n.po-dock{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}\n.po-dock .po-status{padding:0 10px;font-size:12px;opacity:.85;white-space:nowrap}\n.po-dock .po-status.is-bad{color:#fca5a5;opacity:1}\n.po-dock .po-sep{width:1px;height:20px;background:#ffffff26;margin:0 4px}\n.po-dock .po-primary{background:#3b63e0}\n.po-dock .po-primary:hover{background:#2f5bd9}\n.po-chip-locale{padding:2px 7px;border-radius:999px;background:#ffffff1f;font-size:11px;font-weight:700;text-transform:uppercase}\n.po-notice{position:fixed;left:50%;bottom:72px;transform:translateX(-50%);max-width:min(560px,calc(100vw - 24px));padding:8px 12px;border-radius:10px;background:#fffbeb;color:#78350f;border:1px solid #fcd34d;font-size:12px;pointer-events:auto}\n.po-doc-layer{position:absolute;top:0;left:0;width:0;height:0;overflow:visible;z-index:2147483000;pointer-events:none;font:13px/1.35 system-ui,-apple-system,\"Segoe UI\",sans-serif}\n.po-inline{position:absolute;pointer-events:auto;outline:2px solid #4f7cff;outline-offset:2px;border-radius:2px;background:transparent;white-space:pre-wrap;word-break:break-word;caret-color:currentColor;cursor:text}\n.po-inline:focus{outline-color:#4f7cff}\n.po-rt{position:absolute;pointer-events:auto}\n.po-rt-surface{outline:2px solid #4f7cff;outline-offset:6px;border-radius:2px;min-height:1.5em}\n.po-rt-surface:focus{outline:2px solid #4f7cff}\n.po-rt-toolbar{position:absolute;left:0;top:-48px;display:flex;gap:2px;padding:3px;background:#0f172a;border-radius:8px;box-shadow:0 6px 24px #0f172a40}\n.po-rt-toolbar .po-btn[aria-pressed=\"true\"]{background:#ffffff2e}\n.po-pop{position:fixed;min-width:220px;max-width:340px;background:#fff;color:#0f172a;border-radius:10px;box-shadow:0 14px 40px #0f172a40,0 0 0 1px #0f172a14;pointer-events:auto;padding:10px}\n.po-pop .po-row{margin-bottom:8px}\n.po-pop-list{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow:auto}\n.po-pop-list button{all:unset;padding:7px 9px;border-radius:7px;cursor:pointer;font:13px system-ui,sans-serif}\n.po-pop-list button:hover,.po-pop-list button:focus-visible,.po-pop-list button[aria-selected=\"true\"]{background:#eef2ff}\n.po-ghost{position:absolute;pointer-events:none;white-space:pre-wrap;word-break:break-word}\n.po-docs{font-size:11px;padding:2px 7px;border-radius:999px;background:#ffffff1f}\n.po-frame-bg{position:fixed;inset:0;background:#0f172acc;pointer-events:auto;display:flex;flex-direction:column;align-items:center;padding:56px 16px 16px}\n.po-frame-bg iframe{background:#fff;border:0;border-radius:12px;box-shadow:0 30px 80px #0008;height:100%;max-width:100%}\n.po-badge{padding:2px 8px;border-radius:999px;background:#f59e0b;color:#111;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em}\n.po-b{font-weight:700}.po-i{font-style:italic}.po-u{text-decoration:underline}\n.po-opaque{display:inline-flex;align-items:center;gap:6px;margin:6px 0;padding:6px 10px;border:1px dashed #94a3b8;border-radius:8px;background:#f8fafc;color:#475569;font:12px system-ui,sans-serif;user-select:none}\nhtml[data-onpage-editing] [data-onpage-field]{cursor:pointer}\n[data-onpage-hidden=\"true\"]{visibility:hidden!important}\n.po-preview{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}\n.po-preview .po-status{padding:0 8px;font-size:12px;opacity:.85}\n.po-rel-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;background:#f1f5f9;font-size:12px;margin:0 0 4px}\n.po-rel-item button{all:unset;cursor:pointer;margin-left:auto;padding:0 4px;color:#64748b}\n\n.po-dialog-head{display:flex;align-items:center;gap:8px;margin:0 0 10px}\n.po-modal .po-dialog-head{margin:0;padding:14px 16px;border-bottom:1px solid #e2e8f0}\n.po-dialog-head .po-h3{flex:1;margin:0;font:700 14px/1.2 system-ui,sans-serif}\n.po-close{color:#0f172a;min-width:24px;height:24px}\n.po-close:hover{background:#f1f5f9}\n.po-bar-label{cursor:default;opacity:.8}\n.po-muted{color:#64748b;margin:6px 0}\n.po-error{color:#b91c1c;margin:6px 0}\n.po-center{text-align:center;margin-top:12px}\n.po-actions{display:flex;gap:6px}\n.po-inline-row{flex-direction:row;align-items:center}\n.po-search{width:240px}\n.po-picker{cursor:pointer;display:flex;align-items:center}\n.po-group{border:0;margin:0;padding:0}\n.po-primary,.po-pop .po-primary,.po-panel .po-primary{background:#3b63e0;color:#fff}\n.po-primary:hover{background:#2f5bd9}\n.po-pop .po-btn,.po-panel .po-btn{color:#0f172a}\n.po-pop .po-btn.po-primary,.po-panel .po-btn.po-primary{color:#fff}\n.po-frame-close{all:unset;position:absolute;inset:0;cursor:pointer}\n.po-frame-bg iframe{position:relative}\n.po-input[aria-invalid=\"true\"]{border-color:#dc2626}\nhtml[data-onpage-editing] [data-onpage-focusable]:focus-visible{outline:2px solid #4f7cff;outline-offset:2px}\n@media (prefers-reduced-motion:reduce){.po-outline{transition:none}}\n";
2
+ export declare const PO_CSS = "\n.po-layer{position:fixed;inset:0;pointer-events:none;z-index:2147483000;font:13px/1.35 system-ui,-apple-system,\"Segoe UI\",sans-serif;color:#0f172a}\n.po-layer *{box-sizing:border-box}\n.po-outline{position:fixed;border:2px solid #4f7cff;border-radius:4px;pointer-events:none;transition:all .06s ease-out}\n.po-outline.is-block{border-style:dashed;border-color:#4f7cff99}\n.po-outline.is-item{border-color:#22a06b}\n.po-chip{position:fixed;transform:translateY(-100%);background:#3b63e0;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px 4px 0 0;white-space:nowrap;pointer-events:none}\n.po-chip.is-item{background:#167a45}\n.po-bar{position:fixed;display:flex;gap:2px;padding:3px;background:#0f172a;border-radius:8px;box-shadow:0 6px 24px #0f172a40;pointer-events:auto}\n.po-bar.is-item{background:#14532d}\n.po-btn{all:unset;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:28px;height:28px;padding:0 8px;border-radius:6px;color:#fff;font:600 12px/1 system-ui,-apple-system,sans-serif;cursor:pointer;white-space:nowrap}\n.po-btn:hover{background:#ffffff1f}\n.po-btn:focus-visible{outline:2px solid #93c5fd;outline-offset:1px}\n.po-btn[disabled]{opacity:.35;cursor:default;background:none}\n.po-btn.is-danger:hover{background:#ef444455}\n.po-add{position:fixed;transform:translate(-50%,-50%);pointer-events:auto}\n.po-add .po-btn{background:#3b63e0;box-shadow:0 2px 10px #4f7cff66;height:24px;font-size:11px}\n.po-add .po-btn:hover{background:#2f5bd9}\n.po-add.is-item .po-btn{background:#167a45;box-shadow:0 2px 10px #167a4555}\n.po-panel{position:fixed;width:320px;max-height:min(70vh,560px);overflow:auto;background:#fff;color:#0f172a;border-radius:12px;box-shadow:0 20px 60px #0f172a40,0 0 0 1px #0f172a14;pointer-events:auto;padding:14px}\n.po-panel .po-h3{margin:0 0 10px;font:700 13px/1.2 system-ui,sans-serif}\n.po-panel .po-h4{margin:14px 0 6px;font:600 11px/1.2 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.06em;color:#64748b}\n.po-row{display:flex;flex-direction:column;gap:4px;margin:0 0 10px}\n.po-row label{font-weight:600;font-size:12px}\n.po-row small{color:#64748b;font-size:11px}\n.po-input,.po-select{all:unset;box-sizing:border-box;width:100%;height:32px;padding:0 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font:13px system-ui,sans-serif;color:#0f172a}\n.po-select{appearance:auto;-webkit-appearance:auto}\n.po-input:focus,.po-select:focus{border-color:#4f7cff;box-shadow:0 0 0 3px #4f7cff33}\n.po-check{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}\n.po-seg{display:flex;flex-wrap:wrap;gap:4px}\n.po-seg button{all:unset;padding:5px 9px;border:1px solid #cbd5e1;border-radius:7px;font:12px system-ui,sans-serif;cursor:pointer;background:#fff}\n.po-seg button[aria-pressed=\"true\"]{background:#0f172a;color:#fff;border-color:#0f172a}\n.po-modal-bg{position:fixed;inset:0;background:#0f172a66;pointer-events:auto;display:flex;align-items:center;justify-content:center;padding:24px}\n.po-modal{width:min(880px,100%);max-height:85vh;display:flex;flex-direction:column;background:#fff;border-radius:14px;box-shadow:0 30px 80px #0f172a55;overflow:hidden}\n.po-modal header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #e2e8f0}\n.po-modal header .po-h3{margin:0;flex:1;font:700 14px system-ui,sans-serif}\n.po-modal .po-body{padding:14px 16px;overflow:auto}\n.po-modal .po-btn{color:#0f172a}\n.po-modal .po-btn:hover{background:#f1f5f9}\n.po-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}\n.po-tile{all:unset;display:flex;flex-direction:column;gap:6px;cursor:pointer;border-radius:10px;padding:6px;border:2px solid transparent}\n.po-tile:hover,.po-tile:focus-visible{border-color:#4f7cff;background:#f8fafc}\n.po-tile img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;background:#f1f5f9}\n.po-tile span{font-size:11px;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.po-blocks{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}\n.po-blocks button{all:unset;padding:14px;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;font:600 13px system-ui,sans-serif}\n.po-blocks button:hover,.po-blocks button:focus-visible{border-color:#4f7cff;background:#f5f8ff}\n.po-dock{position:fixed;left:50%;width:max-content;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}\n.po-dock .po-status{padding:0 10px;font-size:12px;opacity:.85;white-space:nowrap}\n.po-dock .po-status.is-bad{color:#fca5a5;opacity:1}\n.po-dock .po-sep{width:1px;height:20px;background:#ffffff26;margin:0 4px}\n.po-dock .po-primary{background:#3b63e0}\n.po-dock .po-primary:hover{background:#2f5bd9}\n.po-chip-locale{padding:2px 7px;border-radius:999px;background:#ffffff1f;font-size:11px;font-weight:700;text-transform:uppercase}\n.po-notice{position:fixed;left:50%;width:max-content;bottom:72px;transform:translateX(-50%);max-width:min(560px,calc(100vw - 24px));padding:8px 12px;border-radius:10px;background:#fffbeb;color:#78350f;border:1px solid #fcd34d;font-size:12px;pointer-events:auto}\n.po-doc-layer{position:absolute;top:0;left:0;width:0;height:0;overflow:visible;z-index:2147483000;pointer-events:none;font:13px/1.35 system-ui,-apple-system,\"Segoe UI\",sans-serif}\n.po-inline{position:absolute;pointer-events:auto;outline:2px solid #4f7cff;outline-offset:2px;border-radius:2px;background:transparent;white-space:pre-wrap;word-break:break-word;caret-color:currentColor;cursor:text}\n.po-inline:focus{outline-color:#4f7cff}\n.po-rt{position:absolute;pointer-events:auto}\n.po-rt-surface{outline:2px solid #4f7cff;outline-offset:6px;border-radius:2px;min-height:1.5em}\n.po-rt-surface:focus{outline:2px solid #4f7cff}\n.po-rt-toolbar{position:absolute;left:0;top:-48px;display:flex;gap:2px;padding:3px;background:#0f172a;border-radius:8px;box-shadow:0 6px 24px #0f172a40}\n.po-rt-toolbar .po-btn[aria-pressed=\"true\"]{background:#ffffff2e}\n.po-pop{position:fixed;min-width:220px;max-width:340px;background:#fff;color:#0f172a;border-radius:10px;box-shadow:0 14px 40px #0f172a40,0 0 0 1px #0f172a14;pointer-events:auto;padding:10px}\n.po-pop .po-row{margin-bottom:8px}\n.po-pop-list{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow:auto}\n.po-pop-list button{all:unset;padding:7px 9px;border-radius:7px;cursor:pointer;font:13px system-ui,sans-serif}\n.po-pop-list button:hover,.po-pop-list button:focus-visible,.po-pop-list button[aria-selected=\"true\"]{background:#eef2ff}\n.po-ghost{position:absolute;pointer-events:none;white-space:pre-wrap;word-break:break-word}\n.po-docs{font-size:11px;padding:2px 7px;border-radius:999px;background:#ffffff1f}\n.po-frame-bg{position:fixed;inset:0;background:#0f172acc;pointer-events:auto;display:flex;flex-direction:column;align-items:center;padding:56px 16px 16px}\n.po-frame-bg iframe{background:#fff;border:0;border-radius:12px;box-shadow:0 30px 80px #0008;height:100%;max-width:100%}\n.po-badge{padding:2px 8px;border-radius:999px;background:#f59e0b;color:#111;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em}\n.po-b{font-weight:700}.po-i{font-style:italic}.po-u{text-decoration:underline}\n.po-opaque{display:inline-flex;align-items:center;gap:6px;margin:6px 0;padding:6px 10px;border:1px dashed #94a3b8;border-radius:8px;background:#f8fafc;color:#475569;font:12px system-ui,sans-serif;user-select:none}\nhtml[data-onpage-editing] [data-onpage-field]{cursor:pointer}\n[data-onpage-hidden=\"true\"]{visibility:hidden!important}\n.po-preview{position:fixed;left:50%;width:max-content;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}\n.po-preview .po-status{padding:0 8px;font-size:12px;opacity:.85}\n.po-rel-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;background:#f1f5f9;font-size:12px;margin:0 0 4px}\n.po-rel-item button{all:unset;cursor:pointer;margin-left:auto;padding:0 4px;color:#64748b}\n\n.po-dialog-head{display:flex;align-items:center;gap:8px;margin:0 0 10px}\n.po-modal .po-dialog-head{margin:0;padding:14px 16px;border-bottom:1px solid #e2e8f0}\n.po-dialog-head .po-h3{flex:1;margin:0;font:700 14px/1.2 system-ui,sans-serif}\n.po-close{color:#0f172a;min-width:24px;height:24px}\n.po-close:hover{background:#f1f5f9}\n.po-bar-label{cursor:default;opacity:.8}\n.po-muted{color:#64748b;margin:6px 0}\n.po-error{color:#b91c1c;margin:6px 0}\n.po-center{text-align:center;margin-top:12px}\n.po-actions{display:flex;gap:6px}\n.po-inline-row{flex-direction:row;align-items:center}\n.po-search{width:240px}\n.po-picker{cursor:pointer;display:flex;align-items:center}\n.po-group{border:0;margin:0;padding:0}\n.po-primary,.po-pop .po-primary,.po-panel .po-primary{background:#3b63e0;color:#fff}\n.po-primary:hover{background:#2f5bd9}\n.po-pop .po-btn,.po-panel .po-btn{color:#0f172a}\n.po-pop .po-btn.po-primary,.po-panel .po-btn.po-primary{color:#fff}\n.po-frame-close{all:unset;position:absolute;inset:0;cursor:pointer}\n.po-frame-bg iframe{position:relative}\n.po-input[aria-invalid=\"true\"]{border-color:#dc2626}\nhtml[data-onpage-editing] [data-onpage-focusable]:focus-visible{outline:2px solid #4f7cff;outline-offset:2px}\n@media (prefers-reduced-motion:reduce){.po-outline{transition:none}}\n";
3
3
  export declare function injectStyles(): void;
4
4
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,IAAI,aAAa,CAAA;AAE9B,eAAO,MAAM,MAAM,s5SAyGlB,CAAA;AAGD,wBAAgB,YAAY,SAO3B"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,IAAI,aAAa,CAAA;AAE9B,eAAO,MAAM,MAAM,48SAyGlB,CAAA;AAGD,wBAAgB,YAAY,SAO3B"}
package/dist/styles.js CHANGED
@@ -51,14 +51,14 @@ export const PO_CSS = `
51
51
  .po-blocks{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
52
52
  .po-blocks button{all:unset;padding:14px;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;font:600 13px system-ui,sans-serif}
53
53
  .po-blocks button:hover,.po-blocks button:focus-visible{border-color:#4f7cff;background:#f5f8ff}
54
- .po-dock{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}
54
+ .po-dock{position:fixed;left:50%;width:max-content;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}
55
55
  .po-dock .po-status{padding:0 10px;font-size:12px;opacity:.85;white-space:nowrap}
56
56
  .po-dock .po-status.is-bad{color:#fca5a5;opacity:1}
57
57
  .po-dock .po-sep{width:1px;height:20px;background:#ffffff26;margin:0 4px}
58
58
  .po-dock .po-primary{background:#3b63e0}
59
59
  .po-dock .po-primary:hover{background:#2f5bd9}
60
60
  .po-chip-locale{padding:2px 7px;border-radius:999px;background:#ffffff1f;font-size:11px;font-weight:700;text-transform:uppercase}
61
- .po-notice{position:fixed;left:50%;bottom:72px;transform:translateX(-50%);max-width:min(560px,calc(100vw - 24px));padding:8px 12px;border-radius:10px;background:#fffbeb;color:#78350f;border:1px solid #fcd34d;font-size:12px;pointer-events:auto}
61
+ .po-notice{position:fixed;left:50%;width:max-content;bottom:72px;transform:translateX(-50%);max-width:min(560px,calc(100vw - 24px));padding:8px 12px;border-radius:10px;background:#fffbeb;color:#78350f;border:1px solid #fcd34d;font-size:12px;pointer-events:auto}
62
62
  .po-doc-layer{position:absolute;top:0;left:0;width:0;height:0;overflow:visible;z-index:${PO_Z};pointer-events:none;font:13px/1.35 system-ui,-apple-system,"Segoe UI",sans-serif}
63
63
  .po-inline{position:absolute;pointer-events:auto;outline:2px solid #4f7cff;outline-offset:2px;border-radius:2px;background:transparent;white-space:pre-wrap;word-break:break-word;caret-color:currentColor;cursor:text}
64
64
  .po-inline:focus{outline-color:#4f7cff}
@@ -81,7 +81,7 @@ export const PO_CSS = `
81
81
  .po-opaque{display:inline-flex;align-items:center;gap:6px;margin:6px 0;padding:6px 10px;border:1px dashed #94a3b8;border-radius:8px;background:#f8fafc;color:#475569;font:12px system-ui,sans-serif;user-select:none}
82
82
  html[data-onpage-editing] [data-onpage-field]{cursor:pointer}
83
83
  [data-onpage-hidden="true"]{visibility:hidden!important}
84
- .po-preview{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}
84
+ .po-preview{position:fixed;left:50%;width:max-content;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}
85
85
  .po-preview .po-status{padding:0 8px;font-size:12px;opacity:.85}
86
86
  .po-rel-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;background:#f1f5f9;font-size:12px;margin:0 0 4px}
87
87
  .po-rel-item button{all:unset;cursor:pointer;margin-left:auto;padding:0 4px;color:#64748b}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payload-onpage/react",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "payload-onpage React editor: overlay, toolbars, field editors, annotations and client mode.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -15,12 +15,23 @@
15
15
  "keywords": [
16
16
  "payload",
17
17
  "payloadcms",
18
+ "payload-cms",
18
19
  "payload-plugin",
19
20
  "nextjs",
21
+ "next.js",
22
+ "app-router",
20
23
  "visual-editing",
21
- "live-preview",
24
+ "visual-editor",
22
25
  "inline-editing",
23
- "cms"
26
+ "front-end-editing",
27
+ "live-preview",
28
+ "draft-preview",
29
+ "preview-links",
30
+ "page-builder",
31
+ "wysiwyg",
32
+ "headless-cms",
33
+ "cms",
34
+ "react"
24
35
  ],
25
36
  "exports": {
26
37
  ".": {
@@ -61,7 +72,7 @@
61
72
  "provenance": true
62
73
  },
63
74
  "dependencies": {
64
- "@payload-onpage/core": "0.3.0"
75
+ "@payload-onpage/core": "0.3.1"
65
76
  },
66
77
  "peerDependencies": {
67
78
  "react": "^19.0.0",
package/src/styles.ts CHANGED
@@ -52,14 +52,14 @@ export const PO_CSS = `
52
52
  .po-blocks{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
53
53
  .po-blocks button{all:unset;padding:14px;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;font:600 13px system-ui,sans-serif}
54
54
  .po-blocks button:hover,.po-blocks button:focus-visible{border-color:#4f7cff;background:#f5f8ff}
55
- .po-dock{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}
55
+ .po-dock{position:fixed;left:50%;width:max-content;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}
56
56
  .po-dock .po-status{padding:0 10px;font-size:12px;opacity:.85;white-space:nowrap}
57
57
  .po-dock .po-status.is-bad{color:#fca5a5;opacity:1}
58
58
  .po-dock .po-sep{width:1px;height:20px;background:#ffffff26;margin:0 4px}
59
59
  .po-dock .po-primary{background:#3b63e0}
60
60
  .po-dock .po-primary:hover{background:#2f5bd9}
61
61
  .po-chip-locale{padding:2px 7px;border-radius:999px;background:#ffffff1f;font-size:11px;font-weight:700;text-transform:uppercase}
62
- .po-notice{position:fixed;left:50%;bottom:72px;transform:translateX(-50%);max-width:min(560px,calc(100vw - 24px));padding:8px 12px;border-radius:10px;background:#fffbeb;color:#78350f;border:1px solid #fcd34d;font-size:12px;pointer-events:auto}
62
+ .po-notice{position:fixed;left:50%;width:max-content;bottom:72px;transform:translateX(-50%);max-width:min(560px,calc(100vw - 24px));padding:8px 12px;border-radius:10px;background:#fffbeb;color:#78350f;border:1px solid #fcd34d;font-size:12px;pointer-events:auto}
63
63
  .po-doc-layer{position:absolute;top:0;left:0;width:0;height:0;overflow:visible;z-index:${PO_Z};pointer-events:none;font:13px/1.35 system-ui,-apple-system,"Segoe UI",sans-serif}
64
64
  .po-inline{position:absolute;pointer-events:auto;outline:2px solid #4f7cff;outline-offset:2px;border-radius:2px;background:transparent;white-space:pre-wrap;word-break:break-word;caret-color:currentColor;cursor:text}
65
65
  .po-inline:focus{outline-color:#4f7cff}
@@ -82,7 +82,7 @@ export const PO_CSS = `
82
82
  .po-opaque{display:inline-flex;align-items:center;gap:6px;margin:6px 0;padding:6px 10px;border:1px dashed #94a3b8;border-radius:8px;background:#f8fafc;color:#475569;font:12px system-ui,sans-serif;user-select:none}
83
83
  html[data-onpage-editing] [data-onpage-field]{cursor:pointer}
84
84
  [data-onpage-hidden="true"]{visibility:hidden!important}
85
- .po-preview{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}
85
+ .po-preview{position:fixed;left:50%;width:max-content;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:6px;background:#0f172a;color:#fff;border-radius:12px;box-shadow:0 12px 40px #0f172a55;pointer-events:auto;max-width:calc(100vw - 24px);flex-wrap:wrap}
86
86
  .po-preview .po-status{padding:0 8px;font-size:12px;opacity:.85}
87
87
  .po-rel-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;background:#f1f5f9;font-size:12px;margin:0 0 4px}
88
88
  .po-rel-item button{all:unset;cursor:pointer;margin-left:auto;padding:0 4px;color:#64748b}