From 2ffad6cb1a6bb7af0bd25a0de77597ffad02503d Mon Sep 17 00:00:00 2001 From: DaxtonD Date: Sun, 8 Feb 2026 15:03:30 -0600 Subject: [PATCH] fix(pwa): make app installable --- .gitignore | 6 + ...{index-zH6tZKqf.css => index-8QhtjFsl.css} | 2 +- client-dist/assets/index-CIHictPt.js | 769 ------------------ client-dist/assets/index-DwDMtocl.js | 769 ++++++++++++++++++ .../assets/manifest-D-CrtgCD.webmanifest | 13 + .../assets/manifest-DdfYsMAL.webmanifest | 12 - client-dist/icons/icon-192.png | Bin 0 -> 52341 bytes client-dist/icons/icon-512.png | Bin 0 -> 294097 bytes client-dist/index.html | 6 +- client-dist/sw.js | 16 + client/manifest.webmanifest | 5 +- client/public/icons/icon-192.png | Bin 0 -> 52341 bytes client/public/icons/icon-512.png | Bin 0 -> 294097 bytes client/public/sw.js | 16 + client/src/App.tsx | 35 + client/src/components/PreferencesModal.tsx | 162 +++- client/src/components/PwaInstallModal.tsx | 50 ++ client/src/lib/pwaInstall.ts | 129 +++ client/src/main.tsx | 23 +- client/src/styles.css | 85 ++ 20 files changed, 1259 insertions(+), 839 deletions(-) rename client-dist/assets/{index-zH6tZKqf.css => index-8QhtjFsl.css} (73%) delete mode 100644 client-dist/assets/index-CIHictPt.js create mode 100644 client-dist/assets/index-DwDMtocl.js create mode 100644 client-dist/assets/manifest-D-CrtgCD.webmanifest delete mode 100644 client-dist/assets/manifest-DdfYsMAL.webmanifest create mode 100644 client-dist/icons/icon-192.png create mode 100644 client-dist/icons/icon-512.png create mode 100644 client-dist/sw.js create mode 100644 client/public/icons/icon-192.png create mode 100644 client/public/icons/icon-512.png create mode 100644 client/public/sw.js create mode 100644 client/src/components/PwaInstallModal.tsx create mode 100644 client/src/lib/pwaInstall.ts diff --git a/.gitignore b/.gitignore index bc9c0f0..ec4de43 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,9 @@ logs/ # Local scratch / testing artifacts /1.mp4 /frames-focus/ + +# Runtime uploads (served from /uploads) +/uploads/ + +# Local capture artifacts +/drag ghosting.mp4 diff --git a/client-dist/assets/index-zH6tZKqf.css b/client-dist/assets/index-8QhtjFsl.css similarity index 73% rename from client-dist/assets/index-zH6tZKqf.css rename to client-dist/assets/index-8QhtjFsl.css index 3e2dbb0..c5ddf28 100644 --- a/client-dist/assets/index-zH6tZKqf.css +++ b/client-dist/assets/index-8QhtjFsl.css @@ -1 +1 @@ -.palette-svg{width:clamp(16px,calc(var(--note-card-width) * .055),20px);height:clamp(16px,calc(var(--note-card-width) * .055),20px);display:inline-block}:root{--bg:#121212;--card:#1e1e1e;--fg:#e6e6e6;--muted:#bdbdbd;--text: var(--fg);--panel: var(--card);--panel-2: rgba(255,255,255,.03);--border: rgba(255,255,255,.1);--modal-surface: var(--panel);--modal-border: var(--border);--modal-backdrop: rgba(0,0,0,.66);--checklist-gap:8px;--checklist-checkbox-size:26px;--checklist-drag-handle-width: 32px;--checklist-drag-handle-height: var(--checklist-checkbox-size);--checklist-text-size:14px;--checkbox-bg: var(--card);--checkbox-border-default: #ffffff;--checkbox-border: var(--checkbox-border-default);--accent:#ffcc00;--gap:16px;--row:2px;--sidebar-width:220px;--sidebar-min-width: 165px;--checklist-item-shift: 6px;--note-card-width: 288px;--note-card-max-width: 420px;--note-card-max-height: 672px;--image-thumb-size: 96px;--note-text-preview-lines: 14;--app-font-family: Inter, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--header-height: 64px}@media (pointer: coarse){:root{--checklist-drag-handle-width: 48px;--checklist-drag-handle-height: 44px}}:root[data-theme=light]{--bg:#f7f7f9;--card:#ffffff;--fg:#000000;--muted:#3a3a3a;--text: var(--fg);--panel: var(--card);--panel-2: rgba(0,0,0,.03);--border: rgba(0,0,0,.12);--modal-surface: #ffffff;--modal-border: rgba(0,0,0,.16);--modal-backdrop: rgba(0,0,0,.4);--checkbox-border-default:#000000;--checkbox-border: var(--checkbox-border-default);--accent:#0b6cff}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;font-family:var(--app-font-family)}body{background:var(--bg);--main-pad-y: 24px;--main-pad-x: 32px;color:var(--fg)}.app-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 16px;top:calc(-1 * var(--main-pad-y));background:linear-gradient(180deg,rgba(255,255,255,.02),transparent);position:sticky;top:0;z-index:50}:root[data-theme=light] .app-header{border-bottom:1px solid rgba(0,0,0,.06);background:linear-gradient(180deg,rgba(0,0,0,.02),transparent)}.header-left{display:flex;align-items:center;gap:12px}.brand-stack{display:none}.brand-inline{display:flex;align-items:center;gap:4px}.brand-inline .brand{margin:0;line-height:1}.app-icon{width:48px;height:48px;display:block;object-fit:contain;filter:drop-shadow(0 2px 10px rgba(0,0,0,.35));border-radius:12px}.app-icon:hover{filter:drop-shadow(0 4px 14px rgba(0,0,0,.75)) saturate(122%) contrast(112%) brightness(102%)}.brand{font-weight:400;font-size:12px;opacity:.85;letter-spacing:.2px}.search{width:520px;max-width:60vw;padding:8px 12px;border-radius:8px;background:var(--card);border:1px solid rgba(255,255,255,.08);color:inherit;margin-right:12px}.search::placeholder{color:var(--muted)}:root[data-theme=light] .search{background:#fff;border:1px solid rgba(0,0,0,.1);color:#000}.icon-btn{background:transparent;border:none;color:var(--muted);font-size:18px;margin-left:8px}.avatar{width:33px;height:33px;border-radius:50%;background:linear-gradient(90deg,#2ea7ff,#9b59ff);display:flex;align-items:center;justify-content:center}.app-body{display:flex;height:calc(100vh - var(--header-height))}.app-root.phone .app-body{position:relative}.sidebar{width:max-content;min-width:var(--sidebar-min-width);padding:20px;border-right:1px solid rgba(255,255,255,.06);background:transparent;transition:width .2s cubic-bezier(.2,0,.2,1);height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}.sidebar::-webkit-scrollbar{width:0;height:0}:root[data-theme=light] .sidebar{border-right-color:#0000000f}.sidebar.collapsed{width:64px;min-width:64px;padding:16px 10px}.sidebar .sidebar-item{display:flex;align-items:center;gap:8px;transition:transform .14s cubic-bezier(.2,0,.2,1),color .12s ease}.sidebar .sidebar-item .icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}.sidebar .sidebar-item .icon svg{width:24px;height:24px;fill:currentColor;stroke:none;transition:transform .14s cubic-bezier(.2,0,.2,1)}.sidebar .sidebar-item .text{font-size:16px;white-space:nowrap;transition:font-size .14s ease,font-weight .12s ease}.sidebar .sidebar-item:hover .text{font-weight:600;font-size:17px}.sidebar .sidebar-item:hover .icon svg{transform:scale(1.14)}.sidebar .sidebar-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;opacity:.85;transition:transform .14s cubic-bezier(.2,0,.2,1),opacity .12s ease}.sidebar .sidebar-indicator.leading{margin-left:0;margin-right:10px}.sidebar .sidebar-item:hover .sidebar-indicator{transform:translate(2px) scale(1.08);opacity:1}.sidebar .sidebar-indicator.placeholder{opacity:0}.sidebar .sidebar-indicator .chev,.sidebar .sidebar-indicator .dir{display:inline-block;transform-origin:50% 50%;transition:transform .18s cubic-bezier(.2,0,.2,1)}.sidebar .sidebar-indicator .chev.open{transform:rotate(90deg)}.sidebar .sidebar-indicator .dir.desc{transform:rotate(180deg)}.sidebar:not(.collapsed) .sidebar-item .icon{display:none}.sidebar.collapsed .sidebar-item{justify-content:center}.sidebar.collapsed .sidebar-item .text{display:none}.sidebar-section hr{border:none;border-top:1px solid rgba(255,255,255,.06);margin:8px 0}:root[data-theme=light] .sidebar-section hr{border-top-color:#00000014}.main-area{flex:1;padding:var(--main-pad-y) var(--main-pad-x);overflow:auto}.mobile-sidebar-backdrop{position:fixed;left:0;right:0;top:var(--header-height);bottom:0;background:#00000073;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:110;touch-action:none}:root[data-theme=light] .mobile-sidebar-backdrop{background:#00000040}.mobile-sidebar-drawer{position:fixed;left:0;top:var(--header-height);height:calc(100vh - var(--header-height));width:min(84vw,320px);max-width:360px;transform:translate(-110%);transition:transform .22s cubic-bezier(.2,0,.2,1);z-index:120;pointer-events:none}.mobile-sidebar-drawer.open{transform:translate(0);pointer-events:auto}.mobile-sidebar-drawer .sidebar{width:100%;min-width:0;height:100%;padding:18px 16px;background:var(--bg);border-right:1px solid rgba(255,255,255,.08);box-shadow:18px 0 40px #0000008c}:root[data-theme=light] .mobile-sidebar-drawer .sidebar{border-right-color:#0000001a;box-shadow:18px 0 40px #00000029}.app-root.phone .sidebar.collapsed{width:auto;min-width:0;padding:18px 16px}.app-root.phone .sidebar .sidebar-item .icon{display:none}.app-root.phone .sidebar .sidebar-item .text{display:inline}.sidebar-item{padding:8px 6px;border-radius:6px;color:var(--muted);margin-bottom:6px}.sidebar-item.active{background:#ffffff08;color:#fff}:root[data-theme=light] .sidebar-item.active{color:var(--fg)}.notes-area{display:block}.grid-context{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:8px 0 0;padding:0;border:none;background:transparent;box-shadow:none;font-size:13px}.grid-context__text{min-width:0;flex:1 1 auto}.grid-context__title-row{display:inline-flex;align-items:center;gap:10px;min-width:0}.grid-context__title{font-size:inherit;font-weight:760;letter-spacing:.01em;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid-context__subtitle{margin-top:2px;font-size:12px;color:var(--muted);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-context__chips{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}.grid-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0a;color:var(--fg);font-size:12px;line-height:1}:root[data-theme=light] .grid-chip{border-color:#0000001f;background:#0000000a}.grid-chip__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-chip__clear{flex:0 0 auto;width:22px;height:22px;border-radius:999px;border:none;background:transparent;color:inherit;font:inherit;font-weight:900;cursor:pointer;line-height:1}.grid-chip__clear:hover{background:#ffffff1a}:root[data-theme=light] .grid-chip__clear:hover{background:#0000000f}.grid-chip__clear:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.grid-context__clear{flex:0 0 auto;height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:transparent;color:inherit;font:inherit;font-weight:700;cursor:pointer}:root[data-theme=light] .grid-context__clear{border-color:#0000001f;background:transparent}.grid-context__clear:hover{background:#ffffff14}:root[data-theme=light] .grid-context__clear:hover{background:#0000000d}.grid-context__clear:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (pointer: coarse){.grid-context{margin-top:10px}.grid-context__clear{height:36px;padding:0 12px}.grid-chip{padding:8px 12px;font-size:13px}.grid-chip__clear{width:28px;height:28px}}.take-note-sticky{position:sticky;top:calc(-1 * var(--main-pad-y));z-index:45;padding:var(--main-pad-y) 0 8px;margin:0 0 6px;background:linear-gradient(180deg,var(--bg) 72%,rgba(0,0,0,0));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}:root[data-theme=light] .take-note-sticky{background:linear-gradient(180deg,var(--bg) 72%,rgba(255,255,255,0))}.mobile-add-note{display:none}.mobile-add-fab{width:56px;height:56px;border-radius:999px;border:none;background:var(--accent);color:#000;font-size:30px;line-height:1;box-shadow:0 10px 26px #0000008c;transition:transform .16s cubic-bezier(.2,.9,.2,1),box-shadow .16s cubic-bezier(.2,.9,.2,1),filter .16s ease}:root[data-theme=light] .mobile-add-fab{color:#fff}.mobile-add-fab:active{transform:scale(.96);box-shadow:0 8px 20px #00000080}.mobile-add-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000061;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9990;touch-action:none;overscroll-behavior:contain;pointer-events:auto}:root[data-theme=light] .mobile-add-backdrop{background:#ffffff6b}.mobile-add-menu{position:absolute;right:0;bottom:66px;display:flex;flex-direction:column;align-items:flex-end;gap:12px;padding:0;background:transparent;border:none;border-radius:0;box-shadow:none;transform-origin:100% 100%}.mobile-add-menu-item{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:var(--card);border:1px solid rgba(255,255,255,.1);color:inherit;padding:10px 12px;border-radius:10px;cursor:pointer;font-weight:650;box-shadow:0 12px 30px #0000008c;transform-origin:100% 100%;opacity:0;transform:translateY(12px) scale(.92);animation:mobile-add-item-pop .22s cubic-bezier(.2,.9,.2,1);animation-fill-mode:both;will-change:transform,opacity}:root[data-theme=light] .mobile-add-menu-item{border-color:#0000001a;box-shadow:0 12px 30px #0000002e}.mobile-add-menu-item svg{width:18px;height:18px;flex:0 0 auto;opacity:.95}.mobile-add-menu-item:hover{background:#ffffff0f}:root[data-theme=light] .mobile-add-menu-item:hover{background:#0000000f}@keyframes mobile-add-item-pop{0%{opacity:0;transform:translateY(12px) scale(.92)}70%{opacity:1;transform:translateY(0) scale(1.03)}to{opacity:1;transform:translateY(0) scale(1)}}.mobile-add-menu-item:nth-child(1){animation-delay:0ms}.mobile-add-menu-item:nth-child(2){animation-delay:60ms}@media (prefers-reduced-motion: reduce){.mobile-add-fab{transition:none}.mobile-add-menu-item{animation:none;opacity:1;transform:none}}@media (max-width: 720px){body{--main-pad-x: 8px;--main-pad-y: 14px}}@media (pointer: coarse),(any-pointer: coarse){body{--main-pad-x: 8px;--main-pad-y: 14px}.take-note-sticky{display:block;position:sticky;top:calc(-1 * var(--main-pad-y));z-index:45;padding:var(--main-pad-y) 0 8px;margin:0 0 6px;background:linear-gradient(180deg,var(--bg) 72%,rgba(0,0,0,0));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}:root[data-theme=light] .take-note-sticky{background:linear-gradient(180deg,var(--bg) 72%,rgba(255,255,255,0))}.take-note-sticky .take-note-bar{display:none}.mobile-add-note{display:block;position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:9991}.mobile-add-menu{gap:14px}.mobile-add-menu-item{width:min(92vw,340px);padding:20px 18px;gap:16px;font-size:22px;border-radius:18px;font-weight:750}.mobile-add-menu-item svg{width:34px;height:34px}}@media (max-width: 480px){body{--main-pad-x: 6px}.section-title{padding-left:2px}}@media (pointer: coarse) and (max-width: 560px),(any-pointer: coarse) and (max-width: 560px){body{--gap: 10px}.note-card{border-radius:6px;padding:10px;box-shadow:none;border:1px solid rgba(255,255,255,.06)}:root[data-theme=light] .note-card{border-color:#00000014}.note-title{margin:-10px -10px 8px;padding:8px 10px;border-top-left-radius:6px;border-top-right-radius:6px}}.section-title{color:var(--muted);font-weight:600;margin:0 0 8px;padding-left:6px;font-size:13px}.notes-grid{display:grid;grid-template-columns:repeat(var(--cols, 1),var(--note-card-width));grid-auto-rows:var(--row);grid-auto-flow:dense;gap:var(--gap);margin:0;transition:width .18s ease}.notes-masonry{display:flex;align-items:flex-start;gap:var(--gap);margin:0;transition:width .18s ease}.notes-masonry-col{width:var(--note-card-width);flex:0 0 var(--note-card-width);min-width:var(--note-card-width);display:flex;flex-direction:column;gap:var(--gap)}.notes-masonry [data-note-id],.notes-grid.notes-grid--swap [data-note-id]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}html.is-note-swap-dragging,html.is-note-swap-dragging body,html.is-note-swap-dragging .main-area{touch-action:none;overscroll-behavior:contain}html.is-note-rearrange-dragging,html.is-note-rearrange-dragging body,html.is-note-rearrange-dragging .main-area,html.is-note-rearrange-dragging .notes-area{touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none}html.is-editor-modal-open .notes-area{pointer-events:none}html.is-editor-modal-open .mobile-add-note{display:none!important}.note-drag-source{visibility:hidden}.note-drag-target .note-card{outline:2px solid rgba(255,204,0,.85);outline-offset:3px}.note-drag-ghost{z-index:9999;pointer-events:none;will-change:transform}.note-drag-ghost .note-card{box-shadow:0 18px 40px #0000008c}.note-rearrange-overlay{z-index:9999;pointer-events:none;will-change:transform;transform-origin:top left}.note-rearrange-overlay-inner{width:100%;height:100%}.note-rearrange-overlay .note-card{box-shadow:0 18px 40px #0000008c}.note-rearrange-spacer{border-radius:8px;background:#ffffff08;outline:2px dashed rgba(255,204,0,.55);outline-offset:-2px}:root[data-theme=light] .note-rearrange-spacer{background:#00000008;outline-color:#ffaa008c}.notes-grid.notes-grid--manual{grid-auto-flow:row}.is-resizing .notes-grid>div,.is-resizing .note-card{transition:none!important}.take-note-bar{background:var(--card);padding:8px 10px;border-radius:8px;cursor:pointer;color:inherit;display:flex;align-items:center;gap:8px;width:min(600px,100%);margin:12px auto}.take-note-expanded{background:var(--card);border-radius:8px;box-shadow:0 6px 20px #0009;width:min(600px,100%);margin:12px auto}.take-note-expanded.maximized{position:fixed;top:3vh;left:2vw;width:96vw;z-index:70;max-height:90vh;overflow:auto}@media (max-width: 720px) and (pointer: coarse),(max-width: 720px) and (any-pointer: coarse){.take-note-expanded.maximized{position:fixed;left:0;right:0;top:var(--header-height);width:100vw;height:calc(100dvh - var(--header-height));max-height:none;margin:0;border-radius:0;z-index:210;overflow:auto;padding-bottom:calc(12px + env(safe-area-inset-bottom))}}.take-note-bar .checkbox-visual{--checklist-checkbox-size: 32px}.take-note-bar .checkbox-visual svg path{stroke-width:calc(var(--checklist-checkbox-size) * .22)}.take-note-bar .checkbox-visual svg{transform:scale(.86)}.rt-toolbar{background:var(--editor-surface, var(--card));padding:6px;border-radius:6px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;border:1px solid rgba(255,255,255,.06)}.rt-toolbar .tiny{background:transparent;color:inherit;border:1px solid rgba(255,255,255,.12);padding:4px 8px;border-radius:6px;flex:0 0 auto}:root[data-theme=light] .rt-toolbar{background:var(--editor-surface, var(--card));border-color:#00000014}:root[data-theme=light] .rt-toolbar .tiny{border-color:#0000001f}.rt-toolbar .tiny svg{width:18px;height:18px;display:block;fill:currentColor}.rt-toolbar .tiny rect,.rt-toolbar .tiny circle{fill:currentColor}.rt-toolbar .tiny text{font-weight:600}.rt-toolbar .tiny[aria-pressed=true]{background:#ffffff14;color:#fff}:root[data-theme=light] .rt-toolbar .tiny[aria-pressed=true]{background:#00000014;color:#000}.dialog-body .rt-sticky-header,.take-note-expanded .rt-sticky-header{position:sticky;top:0;z-index:40;background:var(--editor-surface, var(--card))}.dialog-body .rt-sticky-header{margin:0 -12px 8px;padding:12px 12px 8px;border-bottom:1px solid rgba(255,255,255,.06)}:root[data-theme=light] .dialog-body .rt-sticky-header{border-bottom-color:#00000014}.take-note-expanded .rt-sticky-header{margin:-12px -12px 8px;padding:12px 12px 8px;border-bottom:1px solid rgba(255,255,255,.06)}:root[data-theme=light] .take-note-expanded .rt-sticky-header{border-bottom-color:#00000014}.rt-editor{min-height:300px;padding:12px 14px;border-radius:8px;background:inherit;color:inherit}.rt-item{min-height:22px;padding:4px 6px;border-radius:4px;background:transparent;color:inherit}.rt-item p{margin:0;font-size:var(--checklist-text-size)}.image-dialog.checklist-editor .checklist-item .rt-item{padding-top:0;padding-bottom:0;min-height:0}.rt-editor h1,.rt-editor h2,.rt-editor h3{margin:8px 0;font-weight:700;line-height:1.22}.rt-editor p{margin:6px 0;font-size:var(--checklist-text-size);line-height:var(--note-line-height, 1.38)}.rt-editor ul,.rt-editor ol{margin:8px 0 8px 20px}.note-html{font-size:var(--checklist-text-size);line-height:var(--note-line-height, 1.38)}.note-html h1,.note-html h2,.note-html h3{margin:8px 0;font-weight:700}.note-html p{margin:6px 0}.note-html ul,.note-html ol{margin:8px 0 8px 20px}.checklist-item{padding:clamp(0px,calc(var(--checklist-gap) * .35),4px) 6px;border-radius:clamp(0px,calc(var(--checklist-gap) * .6),6px);background:transparent;margin-bottom:var(--checklist-gap);display:flex;align-items:center;gap:8px}.image-dialog .checklist-item,.image-dialog.checklist-editor .checklist-item,.image-dialog.checklist-editor .checklist-item .drag-gutter{align-items:center}.image-dialog .checklist-item:hover{background:#ffffff0f}:root[data-theme=light] .image-dialog .checklist-item:hover{background:#0000000f}.take-note-expanded .checklist-item:hover{background:#ffffff0f}:root[data-theme=light] .take-note-expanded .checklist-item:hover{background:#0000000f}.checklist-item .drag-gutter{display:flex;align-items:center;gap:8px}.checklist-item .drag-handle{opacity:.9;color:inherit;display:flex;align-items:center;justify-content:center;width:max(var(--checklist-drag-handle-width),var(--checklist-checkbox-size));min-width:max(var(--checklist-drag-handle-width),var(--checklist-checkbox-size));height:auto;min-height:max(var(--checklist-drag-handle-height),var(--checklist-checkbox-size));padding:clamp(0px,calc(var(--checklist-gap) * .55),10px) 0;line-height:1;font-size:max(22px,var(--checklist-checkbox-size));margin-right:0}.checklist-item .drag-gutter,.checklist-item .drag-handle{touch-action:none}.take-note-input{padding:4px 6px;border-radius:4px;font-size:var(--checklist-text-size);resize:none;width:100%;min-height:22px;background:transparent;border:none;color:inherit;outline:none;font-family:inherit}.take-note-input{overflow:hidden}.take-note-input::placeholder{color:var(--muted)}.checkbox-visual,.note-checkbox{width:var(--checklist-checkbox-size);height:var(--checklist-checkbox-size);min-width:var(--checklist-checkbox-size);min-height:var(--checklist-checkbox-size);border-radius:6px;background:transparent;border:2px solid var(--checkbox-stroke, #ffffff);display:inline-flex;align-items:center;justify-content:center;color:var(--checkbox-stroke, #ffffff);cursor:pointer;box-shadow:0 1px #00000040 inset}.checkbox-visual,.note-checkbox{padding:calc(var(--checklist-checkbox-size) * .08);margin-right:8px;box-sizing:border-box}.checklist-item .checkbox-visual,.checklist-item .note-checkbox,.note-item .note-checkbox{margin-right:0}.checkbox-visual svg,.note-checkbox svg{width:100%;height:100%;display:block;stroke:currentColor;fill:none}.note-checkbox svg path{stroke-linecap:round;stroke-linejoin:round}.checkbox-visual svg path,.note-checkbox svg path{stroke-width:calc(var(--checklist-checkbox-size) * .42)}.note-checkbox.checked,.checkbox-visual.checked{border-color:var(--checkbox-stroke, #ffffff);color:var(--checkbox-stroke, #ffffff)}:root{--checkbox-stroke: #ffffff}:root[data-theme=light]{--checkbox-stroke: #000000}.checklist-item.shift-up{transform:translateY(calc(-1 * var(--checklist-item-shift)))}.checklist-item.shift-down{transform:translateY(var(--checklist-item-shift))}.note-body .note-item{font-size:var(--checklist-text-size)}.note-item{margin-bottom:var(--checklist-gap)}.note-item p,.rt-html p{margin:0}.checklist-item{transition:transform .14s cubic-bezier(.22,.95,.3,1),opacity .12s ease,background-color .16s ease;-webkit-transition:transform .14s cubic-bezier(.22,.95,.3,1),opacity .12s ease,background-color .16s ease;will-change:transform,background-color}.checklist-item.dragging{opacity:.7;transform:scale(.985)}.checklist-ghost{box-shadow:0 10px 30px #00000080;border-radius:8px;background:var(--card);transform:translateZ(0);pointer-events:none;opacity:.98}.image-dialog .checkbox-visual svg path,.image-dialog .note-checkbox svg path{stroke-width:calc(var(--checklist-checkbox-size) * .32)}.checklist-item.drag-source{opacity:0;pointer-events:none}.move-controls{display:flex;gap:6px}.move-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:6px;border-radius:6px}.move-btn:active{transform:translateY(1px)}.note-card{display:flex;flex-direction:column;width:100%;position:relative;background:var(--card);border-radius:8px;padding:12px;margin:0;break-inside:avoid;box-shadow:0 1px #0009;overflow:visible;transition:transform .3s cubic-bezier(.2,.9,.2,1),opacity .26s ease;will-change:transform,opacity}.notes-grid>div{display:block;width:100%;margin:0;transition:transform .3s cubic-bezier(.2,.9,.2,1);will-change:transform}.note-title{font-weight:750;font-size:1.18em;letter-spacing:.1px;color:inherit;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;line-clamp:2;-webkit-line-clamp:2;margin:-12px -12px 10px;padding:10px 12px;background:var(--note-title-bg, rgba(255,255,255,.07));border-bottom:1px solid rgba(255,255,255,.06);border-top-left-radius:8px;border-top-right-radius:8px}:root[data-theme=light] .note-title{background:var(--note-title-bg, linear-gradient(180deg, rgba(0,0,0,.085), rgba(0,0,0,.055)));border-bottom-color:#0000001a;box-shadow:inset 0 1px #ffffffbf}.note-body{color:inherit;font-size:var(--checklist-text-size);line-height:var(--note-line-height, 1.38);overflow:hidden;flex:1 1 auto;position:relative;max-height:var(--note-card-max-height)}.note-card[data-clipped="1"]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:64px;pointer-events:none;background:linear-gradient(to bottom,#0000,#0000008c);mix-blend-mode:multiply;z-index:18}.note-card[data-clipped="1"]:before{content:"…";position:absolute;left:0;right:0;bottom:10px;text-align:center;font-weight:800;letter-spacing:.8px;opacity:.7;pointer-events:none;z-index:19}.note-item-text{font-size:var(--checklist-text-size);overflow:hidden;min-width:0;flex:1 1 auto}.note-item-text .rt-html{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;line-clamp:4;-webkit-line-clamp:4;white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-overflow:ellipsis}.note-item-text .rt-html p,.note-item-text .rt-html ul,.note-item-text .rt-html ol,.note-item-text .rt-html li{margin:0;padding:0}.note-item-text .rt-html p{display:inline}.note-items-list{display:flex;flex-direction:column;gap:var(--checklist-gap)}.note-items-list .note-item{margin-bottom:0}.note-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;opacity:.95}.note-card:hover .note-actions{opacity:1}.tiny{background:transparent;border:none;color:var(--muted);cursor:pointer}.note-actions .tiny,.note-footer .tiny{color:inherit;filter:grayscale(100%);opacity:.9;transition:transform .14s cubic-bezier(.2,0,0,1),opacity .12s ease;transform:translateY(0) scale(1);transform-origin:center center;will-change:transform,opacity;backface-visibility:hidden}.note-card:hover .note-actions .tiny,.note-card:hover .note-footer .tiny{transform:translateY(-2px) scale(1.08);opacity:.98}.note-footer .tiny:hover,.note-actions .tiny:hover,.note-footer .tiny:focus,.note-actions .tiny:focus{transform:translateY(-2px) scale(1.14);opacity:1;outline:none}.note-footer .tiny svg,.note-actions .tiny svg{transition:transform .14s cubic-bezier(.2,0,0,1);transform-origin:center center}.note-footer .tiny:hover svg,.note-actions .tiny:hover svg,.note-footer .tiny:focus svg,.note-actions .tiny:focus svg{transform:scale(1.14)}.palette-img{width:clamp(16px,calc(var(--note-card-width) * .055),20px);height:clamp(16px,calc(var(--note-card-width) * .055),20px);display:inline-block;object-fit:contain;transition:transform .14s cubic-bezier(.2,0,0,1)}:root:not([data-theme=light]) .palette-img{filter:invert(100%) brightness(110%)}:root[data-theme=light] .palette-img{filter:none}.note-footer .tiny.palette:hover .palette-img,.note-actions .tiny.palette:hover .palette-img,.note-footer .tiny.palette:focus .palette-img,.note-actions .tiny.palette:focus .palette-img{transform:translateY(-2px) scale(1.14)}.collab-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start;max-width:100%}.collection-chips{display:flex;gap:8px 18px;margin-bottom:8px;flex-wrap:wrap;align-items:baseline;max-width:100%}.collection-link{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:inline-block;background:transparent;border:none;padding:0;margin:0;cursor:pointer;color:currentColor;font-weight:900;letter-spacing:.02em;font-size:16px;line-height:1.05;text-shadow:var(--collection-link-shadow, 0 1px 0 rgba(0,0,0,.85));text-decoration:none;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.collection-link:hover{text-decoration:underline;text-underline-offset:3px}.collection-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}:root:not([data-theme=light]){--collection-link-shadow: 0 1px 0 rgba(0,0,0,.9), 0 -1px 0 rgba(0,0,0,.9), 1px 0 0 rgba(0,0,0,.9), -1px 0 0 rgba(0,0,0,.9), 0 2px 10px rgba(0,0,0,.45)}:root[data-theme=light]{--collection-link-shadow: 0 1px 0 rgba(255,255,255,.95), 0 -1px 0 rgba(255,255,255,.95), 1px 0 0 rgba(255,255,255,.95), -1px 0 0 rgba(255,255,255,.95), 0 2px 10px rgba(0,0,0,.1)}.chip{background:var(--chip-bg, rgba(255,255,255,.06));padding:5px 10px;border-radius:999px;font-size:12px;color:inherit;border:0;line-height:1}button.chip{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}button.chip:focus{outline:2px solid rgba(255,255,255,.18);outline-offset:2px}:root[data-theme=light] button.chip:focus{outline-color:#0000002e}:root[data-theme=light] .chip{background:#0000000f;box-shadow:inset 0 0 0 1px #0000000a}.note-meta{margin:6px 0 10px;font-size:12px}.note-card.has-checklist .note-meta{margin-bottom:16px}.note-meta-bar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.chip.chip--meta{padding:4px 10px;opacity:.74;display:inline-flex;align-items:center;gap:8px}.chip.chip--meta.is-active{opacity:.9}.meta-icon,.meta-fa-icon{width:14px;height:14px;display:inline-block;flex:0 0 auto;opacity:.92}.chip--meta-collections .meta-collections-label{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-meta-panel{overflow:hidden;max-height:0;opacity:0;transform:translateY(-3px);pointer-events:none;transition:opacity .14s ease,transform .14s ease,max-height .18s ease}.note-meta-panel.is-open{margin-top:6px;max-height:320px;opacity:1;transform:translateY(0);pointer-events:auto}@media (prefers-reduced-motion: reduce){.note-meta-panel{transition:none}}.chip.chip--collection{background:var(--chip-bg, rgba(255,255,255,.06));box-shadow:none}:root[data-theme=light] .chip.chip--collection{background:#0000000f;box-shadow:inset 0 0 0 1px #0000000a}@media (pointer: coarse){.chip{padding:8px 12px;font-size:13px}}.label-chips{display:flex;gap:6px;flex-wrap:wrap;max-height:none;overflow:visible;padding:4px 0 0;margin-top:0}.note-collections{display:flex;flex-direction:column;gap:6px;margin-top:0}.note-collections-toggle{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:none;padding:2px 0;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-size:12px;opacity:.92}.note-collections-toggle__count{font-size:11px;padding:2px 7px;border-radius:999px;background:#ffffff14;box-shadow:inset 0 0 0 1px #ffffff0f}:root[data-theme=light] .note-collections-toggle__count{background:#0000000f;box-shadow:inset 0 0 0 1px #0000000f}.note-collections-list{display:flex;flex-wrap:wrap;gap:6px;max-height:140px;overflow:auto;padding-top:4px;padding-bottom:2px}.note-collection-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-image{border-radius:6px;overflow:hidden}.note-image img{display:block}.note-card .note-images{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px;max-width:100%}.note-card.has-labels .note-images{margin-bottom:0}.note-card .note-images .note-image{width:min(var(--image-thumb-size),100%);aspect-ratio:1 / 1;height:auto;flex:0 0 auto;position:relative}.note-card .note-images .note-image img{width:100%;height:100%;object-fit:cover}.note-card .note-images .note-image-moreOverlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;letter-spacing:.2px;color:#fff;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.image-dialog .editor-images-toggle{padding:6px 10px}.image-dialog .editor-images-grid{display:flex;flex-wrap:wrap;gap:8px;max-width:100%;max-height:calc((var(--image-thumb-size) * 2) + 16px);overflow-y:auto;overflow-x:hidden;padding-right:4px}.image-dialog .editor-images-grid .note-image{width:min(var(--image-thumb-size),100%);aspect-ratio:1 / 1;height:auto;flex:0 0 auto;background:#ffffff0a}.image-dialog .editor-images-grid .note-image:focus-within,.image-dialog .editor-images-grid .note-image:hover{background:#ffffff0f}:root[data-theme=light] .image-dialog .editor-images-grid .note-image{background:#0000000a}.image-dialog .editor-images-grid .note-image img{width:100%;height:100%;object-fit:contain}.image-delete{background:#0000008c;border:1px solid rgba(255,255,255,.1);color:#fff;border-radius:999px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .14s ease}.note-image:hover .image-delete,.note-image:focus-within .image-delete{opacity:1}.palette-popover{position:fixed;background:#181818;color:#fff;border-radius:10px;padding:10px;box-shadow:0 8px 24px #0009;z-index:200;max-width:var(--note-card-width)}:root[data-theme=light] .palette-popover{background:#fff;color:#000;box-shadow:0 8px 24px #00000026;border:1px solid rgba(0,0,0,.06)}.palette-grid{display:flex;gap:8px;flex-wrap:wrap;max-width:300px}.palette-swatch{width:40px;height:40px;border-radius:6px;border:1px solid rgba(255,255,255,.04);cursor:pointer;box-shadow:inset 0 0 0 1px #0000000f}:root[data-theme=light] .palette-swatch{border-color:#0000000f;box-shadow:inset 0 0 0 1px #0000000a}.image-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.image-dialog{width:min(420px,calc(var(--note-card-width) + 120px));background:#181818;color:#fff;--editor-surface: #181818;border-radius:10px;padding:12px;border:1px solid rgba(255,255,255,.04);display:flex;flex-direction:column;max-height:80vh}:root[data-theme=light] .image-dialog{background:#fff;color:#000;--editor-surface: #ffffff;border:1px solid rgba(0,0,0,.08)}.image-dialog.maximized{width:96vw!important;max-height:90vh}.image-dialog.maximized .rt-editor{min-height:60vh}@media (pointer: coarse) and (max-width: 720px){.image-dialog-backdrop{align-items:stretch;justify-content:stretch}.editor-dialog{width:100vw!important;height:100dvh;max-height:none!important;border-radius:0;padding:0;border:none}.editor-dialog.maximized{width:100vw!important;max-height:none!important}.editor-dialog .dialog-header{padding:calc(10px + env(safe-area-inset-top)) 12px 10px;background:var(--editor-surface, var(--card));border-bottom:1px solid rgba(255,255,255,.06)}:root[data-theme=light] .editor-dialog .dialog-header{border-bottom-color:#00000014}.editor-dialog .dialog-footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom));position:sticky;bottom:0;z-index:45;background:var(--editor-surface, var(--card));box-shadow:0 -10px 24px #00000038}:root[data-theme=light] .editor-dialog .dialog-footer{box-shadow:0 -10px 24px #0000001a}.image-dialog.editor-dialog .dialog-footer .note-actions{gap:12px;flex-wrap:wrap;align-items:center}.image-dialog.editor-dialog .dialog-footer .note-actions .tiny{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:0}.image-dialog.editor-dialog .dialog-footer .note-actions .tiny svg,.image-dialog.editor-dialog .dialog-footer .note-actions .palette-svg{width:36px!important;height:36px!important}.image-dialog.editor-dialog .dialog-footer .note-actions .tiny.editor-more{font-size:30px;line-height:1}}.prefs-dialog{width:420px;background:#181818;color:#fff;border-radius:10px;padding:12px;border:1px solid rgba(255,255,255,.04);display:flex;flex-direction:column;max-height:80vh}:root[data-theme=light] .prefs-dialog{background:#fff;color:#000;border:1px solid rgba(0,0,0,.08)}.about-hero-group{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:18px auto;width:100%;max-width:420px;position:relative;padding-bottom:38px}.about-hero{display:flex;align-items:center;justify-content:flex-start;gap:20px;width:100%}.about-hero-icon{width:160px;height:160px;object-fit:contain;filter:drop-shadow(0 14px 30px rgba(0,0,0,.6))}.about-hero-wordmark{width:220px;max-width:calc(100% - 180px);object-fit:contain;filter:drop-shadow(0 8px 22px rgba(0,0,0,.45));align-self:center}.about-version-row{position:absolute;left:8px;bottom:6px;display:flex;align-items:center;gap:4px}.about-version-icon{width:28px;height:28px;object-fit:contain}.about-version-text{font-size:1.2rem;font-weight:700;letter-spacing:.03em}.about-description{margin-top:8px;line-height:1.5;color:var(--muted)}.image-dialog,.image-dialog *,.prefs-dialog,.prefs-dialog *{font-family:var(--app-font-family)!important}.image-url-input{width:100%;padding:8px;border-radius:6px;border:1px solid rgba(255,255,255,.04);background:#1c1c1c;color:#fff}:root[data-theme=light] .image-url-input{background:#f7f7f9;color:#000;border:1px solid rgba(0,0,0,.1)}.dialog-header{display:flex;align-items:center;justify-content:space-between}.dialog-body{padding:12px;overflow:auto;flex:1 1 auto}.image-dialog .dialog-body{padding:0 12px 12px;background:var(--editor-surface, var(--card))}.dialog-footer{padding:12px;border-top:1px solid rgba(255,255,255,.03);display:flex;gap:8px;align-items:center}:root[data-theme=light] .dialog-footer{border-top:1px solid rgba(0,0,0,.06)}.image-dialog .dialog-footer .note-actions{justify-content:flex-start}.create-collection-toggle{display:flex;align-items:center;gap:10px;min-width:0;padding:8px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:inherit;cursor:pointer}:root[data-theme=light] .create-collection-toggle{border-color:#0000001a;background:#0000000a}.create-collection-toggle input{width:18px;height:18px;accent-color:var(--accent);flex:0 0 auto}.create-collection-toggle__text{font-weight:700;opacity:.95;flex:0 0 auto}.create-collection-toggle__path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}@media (pointer: coarse){.create-collection-toggle{padding:10px 12px}.create-collection-toggle input{width:22px;height:22px}}.delete-item{background:transparent;border:none;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .14s;padding:4px 6px;border-radius:6px;align-self:center;pointer-events:none}.checklist-item:hover .delete-item,.checklist-item.is-active .delete-item{opacity:1;pointer-events:auto}.image-dialog.checklist-editor .checklist-item .rt-item,.image-dialog.checklist-editor .checklist-item .rt-item:focus,.image-dialog.checklist-editor .checklist-item .rt-item:focus-visible,.image-dialog.checklist-editor .checklist-item .ProseMirror:focus,.image-dialog.checklist-editor .checklist-item .ProseMirror-focused{outline:none!important;box-shadow:none!important;border:none!important}.btn{background:#ffffff0a;border:1px solid rgba(255,255,255,.03);padding:8px 10px;border-radius:6px;color:#fff;cursor:pointer}.btn:hover{background:#ffffff0f}:root[data-theme=light] .btn{color:#000;background:#0000000a;border-color:#0000000f}:root[data-theme=light] .btn:hover{background:#0000000f}.note-card .btn,.image-dialog .btn,.prefs-dialog .btn{color:inherit}.completed-toggle{display:inline-flex;align-items:center;gap:8px;background:transparent;border:none;padding:6px;color:inherit;cursor:pointer;margin-bottom:var(--checklist-gap)}.reminder-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:60}.reminder-popover{width:min(320px,var(--note-card-width));background:#181818;color:#fff;border-radius:10px;padding:12px;border:1px solid rgba(255,255,255,.04)}:root[data-theme=light] .reminder-popover{background:#fff;color:#000;border:1px solid rgba(0,0,0,.08)}.reminder-popover input[type=date],.reminder-popover input[type=time]{background:#1c1c1c;color:#fff;border:1px solid rgba(255,255,255,.04);padding:6px;border-radius:6px}:root[data-theme=light] .reminder-popover input[type=date],:root[data-theme=light] .reminder-popover input[type=time]{background:#f7f7f9;color:#000;border:1px solid rgba(0,0,0,.1)}.more-menu{background:#232323;border-radius:8px;padding:6px 8px;box-shadow:0 6px 18px #0009;display:flex;flex-direction:column;box-sizing:border-box;color:#fff}:root[data-theme=light] .more-menu{background:#fff;color:#000;box-shadow:0 6px 18px #00000026;border:1px solid rgba(0,0,0,.06)}.more-item{background:transparent;border:none;color:#fff;padding:6px 10px;text-align:left;cursor:pointer}.more-item{white-space:nowrap}.more-item:hover{background:#ffffff05;color:#fff}:root[data-theme=light] .more-item{color:#000}:root[data-theme=light] .more-item:hover{background:#0000000f;color:inherit}.more-sep{border:none;border-top:1px solid rgba(255,255,255,.06);margin:6px 0}:root[data-theme=light] .more-sep{border-top-color:#00000014}.collab-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:60}.collab-modal{width:420px;background:#181818;color:#fff;border-radius:10px;padding:12px;border:1px solid rgba(255,255,255,.04)}:root[data-theme=light] .collab-modal{background:#fff;color:#000;border:1px solid rgba(0,0,0,.08)}.collab-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.icon-close{background:transparent;border:none;color:#fff;cursor:pointer}.collab-search{width:100%;padding:8px;border-radius:6px;border:1px solid rgba(255,255,255,.04);background:#1c1c1c;color:#fff;margin-bottom:8px}:root[data-theme=light] .collab-search{background:#f7f7f9;color:#000;border:1px solid rgba(0,0,0,.1)}.collab-list{max-height:220px;overflow:auto}.collab-item{display:flex;gap:10px;align-items:center;padding:8px;border-radius:6px;cursor:pointer}.collab-item:hover{background:#ffffff05}.collab-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(90deg,#2ea7ff,#9b59ff);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600}.collab-email{font-size:13px;color:inherit}.collab-empty{padding:12px;color:var(--muted);text-align:center;font-size:13px}.image-dialog .icon-close,.image-dialog .icon-close:hover,.image-dialog .dialog-header strong,.image-dialog .dialog-header .tiny,.prefs-dialog .icon-close,.prefs-dialog .icon-close:hover,.prefs-dialog .dialog-header strong,.collab-modal .icon-close,.collab-modal .icon-close:hover,.collab-modal .collab-header strong{color:inherit}.note-actions .tiny{filter:grayscale(100%);opacity:.9;transition:transform .14s cubic-bezier(.2,0,0,1),opacity .12s ease;transform:translateY(0) scale(1);background:transparent;border:none;cursor:pointer;font-size:18px}.note-card:hover .note-actions .tiny{transform:translateY(-2px) scale(1.08);opacity:1}.note-card{padding-bottom:62px}.note-footer{position:absolute;left:0;right:0;bottom:0;height:52px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;background:#161616;display:flex;align-items:center;justify-content:center;padding:6px 10px;box-shadow:0 -1px #ffffff05 inset,0 6px 18px #0009;transition:transform .16s ease,opacity .16s ease;opacity:0;transform:translateY(6px);pointer-events:none;z-index:20;color:#fff}:root[data-theme=light] .note-footer{background:#f2f2f4;box-shadow:0 -1px #0000000d inset,0 6px 18px #00000014;color:#000}.footer-hover-zone{position:absolute;left:0;right:0;bottom:0;height:60px;background:transparent;pointer-events:auto;z-index:19}.footer-hover-zone:hover+.note-footer{opacity:1;transform:translateY(0);pointer-events:auto}.note-footer:hover{opacity:1;transform:translateY(0);pointer-events:auto}.note-actions{display:flex;align-items:center;width:100%;justify-content:space-between;gap:0}.note-footer .tiny{width:clamp(20px,calc(var(--note-card-width) * .14),36px);height:clamp(20px,calc(var(--note-card-width) * .14),36px);display:inline-flex;align-items:center;justify-content:center;border-radius:6px;filter:grayscale(100%);opacity:.95;transition:transform .14s cubic-bezier(.2,0,0,1),opacity .12s ease;transform:translateY(0) scale(1);background:transparent;border:none;cursor:pointer;font-size:clamp(14px,calc(var(--note-card-width) * .055),18px);color:inherit;line-height:1;padding:0;flex:0 0 auto}.note-footer .tiny:hover{transform:translateY(-2px) scale(1.08);opacity:1}@media (pointer: coarse),(any-pointer: coarse),(hover: none),(any-hover: none){.note-card .footer-hover-zone,.note-card .note-footer{display:none!important}.note-card,.note-card.has-labels{padding-bottom:12px!important}.label-chips{position:static;left:auto;right:auto;bottom:auto;z-index:auto;max-height:none;overflow:visible;padding:4px 0 0;margin-top:10px}.note-collections{position:static;left:auto;right:auto;bottom:auto;z-index:auto;margin-top:6px}.note-collections-list{max-height:none;overflow:visible}.note-card.has-labels .note-images{margin-bottom:0}}@media (pointer: coarse),(any-pointer: coarse),(hover: none),(any-hover: none) and (max-width: 560px){.note-card,.note-card.has-labels{padding-bottom:10px!important}.label-chips{margin-top:8px}}.settings-dropdown{position:absolute;right:8px;top:44px;background:var(--card);color:#e6e6e6;border-radius:8px;box-shadow:0 8px 28px #0009;min-width:160px;z-index:2000;border:1px solid rgba(255,255,255,.03);overflow:hidden;transform-origin:top right;animation:dropdown-in .16s cubic-bezier(.2,0,.2,1) both}.settings-item{display:block;width:100%;text-align:left;padding:10px 12px;border:none;background:transparent;color:inherit;cursor:pointer}.settings-item:hover{background:#ffffff05}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:640px){.app-body>.sidebar{display:none}.search{max-width:40vw}.notes-grid{column-width:220px}}.take-note-expanded .note-footer{position:static;height:auto;background:transparent;box-shadow:none;opacity:1;transform:none;pointer-events:auto;padding:0}.take-note-expanded .note-actions{justify-content:flex-end;gap:8px} +.palette-svg{width:clamp(16px,calc(var(--note-card-width) * .055),20px);height:clamp(16px,calc(var(--note-card-width) * .055),20px);display:inline-block}:root{--bg:#121212;--card:#1e1e1e;--fg:#e6e6e6;--muted:#bdbdbd;--text: var(--fg);--panel: var(--card);--panel-2: rgba(255,255,255,.03);--border: rgba(255,255,255,.1);--modal-surface: var(--panel);--modal-border: var(--border);--modal-backdrop: rgba(0,0,0,.66);--checklist-gap:8px;--checklist-checkbox-size:26px;--checklist-drag-handle-width: 32px;--checklist-drag-handle-height: var(--checklist-checkbox-size);--checklist-text-size:14px;--checkbox-bg: var(--card);--checkbox-border-default: #ffffff;--checkbox-border: var(--checkbox-border-default);--accent:#ffcc00;--gap:16px;--row:2px;--sidebar-width:220px;--sidebar-min-width: 165px;--checklist-item-shift: 6px;--note-card-width: 288px;--note-card-max-width: 420px;--note-card-max-height: 672px;--image-thumb-size: 96px;--note-text-preview-lines: 14;--app-font-family: Inter, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--header-height: 64px}@media (pointer: coarse){:root{--checklist-drag-handle-width: 48px;--checklist-drag-handle-height: 44px}}:root[data-theme=light]{--bg:#f7f7f9;--card:#ffffff;--fg:#000000;--muted:#3a3a3a;--text: var(--fg);--panel: var(--card);--panel-2: rgba(0,0,0,.03);--border: rgba(0,0,0,.12);--modal-surface: #ffffff;--modal-border: rgba(0,0,0,.16);--modal-backdrop: rgba(0,0,0,.4);--checkbox-border-default:#000000;--checkbox-border: var(--checkbox-border-default);--accent:#0b6cff}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;font-family:var(--app-font-family)}body{background:var(--bg);--main-pad-y: 24px;--main-pad-x: 32px;color:var(--fg)}.app-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 16px;top:calc(-1 * var(--main-pad-y));background:linear-gradient(180deg,rgba(255,255,255,.02),transparent);position:sticky;top:0;z-index:50}:root[data-theme=light] .app-header{border-bottom:1px solid rgba(0,0,0,.06);background:linear-gradient(180deg,rgba(0,0,0,.02),transparent)}.header-left{display:flex;align-items:center;gap:12px}.brand-stack{display:none}.brand-inline{display:flex;align-items:center;gap:4px}.brand-inline .brand{margin:0;line-height:1}.app-icon{width:48px;height:48px;display:block;object-fit:contain;filter:drop-shadow(0 2px 10px rgba(0,0,0,.35));border-radius:12px}.app-icon:hover{filter:drop-shadow(0 4px 14px rgba(0,0,0,.75)) saturate(122%) contrast(112%) brightness(102%)}.brand{font-weight:400;font-size:12px;opacity:.85;letter-spacing:.2px}.search{width:520px;max-width:60vw;padding:8px 12px;border-radius:8px;background:var(--card);border:1px solid rgba(255,255,255,.08);color:inherit;margin-right:12px}.search::placeholder{color:var(--muted)}:root[data-theme=light] .search{background:#fff;border:1px solid rgba(0,0,0,.1);color:#000}.icon-btn{background:transparent;border:none;color:var(--muted);font-size:18px;margin-left:8px}.avatar{width:33px;height:33px;border-radius:50%;background:linear-gradient(90deg,#2ea7ff,#9b59ff);display:flex;align-items:center;justify-content:center}.app-body{display:flex;height:calc(100vh - var(--header-height))}.app-root.phone .app-body{position:relative}.sidebar{width:max-content;min-width:var(--sidebar-min-width);padding:20px;border-right:1px solid rgba(255,255,255,.06);background:transparent;transition:width .2s cubic-bezier(.2,0,.2,1);height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}.sidebar::-webkit-scrollbar{width:0;height:0}:root[data-theme=light] .sidebar{border-right-color:#0000000f}.sidebar.collapsed{width:64px;min-width:64px;padding:16px 10px}.sidebar .sidebar-item{display:flex;align-items:center;gap:8px;transition:transform .14s cubic-bezier(.2,0,.2,1),color .12s ease}.sidebar .sidebar-item .icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}.sidebar .sidebar-item .icon svg{width:24px;height:24px;fill:currentColor;stroke:none;transition:transform .14s cubic-bezier(.2,0,.2,1)}.sidebar .sidebar-item .text{font-size:16px;white-space:nowrap;transition:font-size .14s ease,font-weight .12s ease}.sidebar .sidebar-item:hover .text{font-weight:600;font-size:17px}.sidebar .sidebar-item:hover .icon svg{transform:scale(1.14)}.sidebar .sidebar-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;opacity:.85;transition:transform .14s cubic-bezier(.2,0,.2,1),opacity .12s ease}.sidebar .sidebar-indicator.leading{margin-left:0;margin-right:10px}.sidebar .sidebar-item:hover .sidebar-indicator{transform:translate(2px) scale(1.08);opacity:1}.sidebar .sidebar-indicator.placeholder{opacity:0}.sidebar .sidebar-indicator .chev,.sidebar .sidebar-indicator .dir{display:inline-block;transform-origin:50% 50%;transition:transform .18s cubic-bezier(.2,0,.2,1)}.sidebar .sidebar-indicator .chev.open{transform:rotate(90deg)}.sidebar .sidebar-indicator .dir.desc{transform:rotate(180deg)}.sidebar:not(.collapsed) .sidebar-item .icon{display:none}.sidebar.collapsed .sidebar-item{justify-content:center}.sidebar.collapsed .sidebar-item .text{display:none}.sidebar-section hr{border:none;border-top:1px solid rgba(255,255,255,.06);margin:8px 0}:root[data-theme=light] .sidebar-section hr{border-top-color:#00000014}.main-area{flex:1;padding:var(--main-pad-y) var(--main-pad-x);overflow:auto}.mobile-sidebar-backdrop{position:fixed;left:0;right:0;top:var(--header-height);bottom:0;background:#00000073;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:110;touch-action:none}:root[data-theme=light] .mobile-sidebar-backdrop{background:#00000040}.mobile-sidebar-drawer{position:fixed;left:0;top:var(--header-height);height:calc(100vh - var(--header-height));width:min(84vw,320px);max-width:360px;transform:translate(-110%);transition:transform .22s cubic-bezier(.2,0,.2,1);z-index:120;pointer-events:none}.mobile-sidebar-drawer.open{transform:translate(0);pointer-events:auto}.mobile-sidebar-drawer .sidebar{width:100%;min-width:0;height:100%;padding:18px 16px;background:var(--bg);border-right:1px solid rgba(255,255,255,.08);box-shadow:18px 0 40px #0000008c}:root[data-theme=light] .mobile-sidebar-drawer .sidebar{border-right-color:#0000001a;box-shadow:18px 0 40px #00000029}.app-root.phone .sidebar.collapsed{width:auto;min-width:0;padding:18px 16px}.app-root.phone .sidebar .sidebar-item .icon{display:none}.app-root.phone .sidebar .sidebar-item .text{display:inline}.sidebar-item{padding:8px 6px;border-radius:6px;color:var(--muted);margin-bottom:6px}.sidebar-item.active{background:#ffffff08;color:#fff}:root[data-theme=light] .sidebar-item.active{color:var(--fg)}.notes-area{display:block}.grid-context{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:8px 0 0;padding:0;border:none;background:transparent;box-shadow:none;font-size:13px}.grid-context__text{min-width:0;flex:1 1 auto}.grid-context__title-row{display:inline-flex;align-items:center;gap:10px;min-width:0}.grid-context__title{font-size:inherit;font-weight:760;letter-spacing:.01em;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid-context__subtitle{margin-top:2px;font-size:12px;color:var(--muted);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-context__chips{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}.grid-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0a;color:var(--fg);font-size:12px;line-height:1}:root[data-theme=light] .grid-chip{border-color:#0000001f;background:#0000000a}.grid-chip__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-chip__clear{flex:0 0 auto;width:22px;height:22px;border-radius:999px;border:none;background:transparent;color:inherit;font:inherit;font-weight:900;cursor:pointer;line-height:1}.grid-chip__clear:hover{background:#ffffff1a}:root[data-theme=light] .grid-chip__clear:hover{background:#0000000f}.grid-chip__clear:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.grid-context__clear{flex:0 0 auto;height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:transparent;color:inherit;font:inherit;font-weight:700;cursor:pointer}:root[data-theme=light] .grid-context__clear{border-color:#0000001f;background:transparent}.grid-context__clear:hover{background:#ffffff14}:root[data-theme=light] .grid-context__clear:hover{background:#0000000d}.grid-context__clear:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (pointer: coarse){.grid-context{margin-top:10px}.grid-context__clear{height:36px;padding:0 12px}.grid-chip{padding:8px 12px;font-size:13px}.grid-chip__clear{width:28px;height:28px}}.take-note-sticky{position:sticky;top:calc(-1 * var(--main-pad-y));z-index:45;padding:var(--main-pad-y) 0 8px;margin:0 0 6px;background:linear-gradient(180deg,var(--bg) 72%,rgba(0,0,0,0));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}:root[data-theme=light] .take-note-sticky{background:linear-gradient(180deg,var(--bg) 72%,rgba(255,255,255,0))}.mobile-add-note{display:none}.mobile-add-fab{width:56px;height:56px;border-radius:999px;border:none;background:var(--accent);color:#000;font-size:30px;line-height:1;box-shadow:0 10px 26px #0000008c;transition:transform .16s cubic-bezier(.2,.9,.2,1),box-shadow .16s cubic-bezier(.2,.9,.2,1),filter .16s ease}:root[data-theme=light] .mobile-add-fab{color:#fff}.mobile-add-fab:active{transform:scale(.96);box-shadow:0 8px 20px #00000080}.mobile-add-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000061;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9990;touch-action:none;overscroll-behavior:contain;pointer-events:auto}:root[data-theme=light] .mobile-add-backdrop{background:#ffffff6b}.mobile-add-menu{position:absolute;right:0;bottom:66px;display:flex;flex-direction:column;align-items:flex-end;gap:12px;padding:0;background:transparent;border:none;border-radius:0;box-shadow:none;transform-origin:100% 100%}.mobile-add-menu-item{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:var(--card);border:1px solid rgba(255,255,255,.1);color:inherit;padding:10px 12px;border-radius:10px;cursor:pointer;font-weight:650;box-shadow:0 12px 30px #0000008c;transform-origin:100% 100%;opacity:0;transform:translateY(12px) scale(.92);animation:mobile-add-item-pop .22s cubic-bezier(.2,.9,.2,1);animation-fill-mode:both;will-change:transform,opacity}:root[data-theme=light] .mobile-add-menu-item{border-color:#0000001a;box-shadow:0 12px 30px #0000002e}.mobile-add-menu-item svg{width:18px;height:18px;flex:0 0 auto;opacity:.95}.mobile-add-menu-item:hover{background:#ffffff0f}:root[data-theme=light] .mobile-add-menu-item:hover{background:#0000000f}@keyframes mobile-add-item-pop{0%{opacity:0;transform:translateY(12px) scale(.92)}70%{opacity:1;transform:translateY(0) scale(1.03)}to{opacity:1;transform:translateY(0) scale(1)}}.mobile-add-menu-item:nth-child(1){animation-delay:0ms}.mobile-add-menu-item:nth-child(2){animation-delay:60ms}@media (prefers-reduced-motion: reduce){.mobile-add-fab{transition:none}.mobile-add-menu-item{animation:none;opacity:1;transform:none}}@media (max-width: 720px){body{--main-pad-x: 8px;--main-pad-y: 14px}}@media (pointer: coarse),(any-pointer: coarse){body{--main-pad-x: 8px;--main-pad-y: 14px}.take-note-sticky{display:block;position:sticky;top:calc(-1 * var(--main-pad-y));z-index:45;padding:var(--main-pad-y) 0 8px;margin:0 0 6px;background:linear-gradient(180deg,var(--bg) 72%,rgba(0,0,0,0));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}:root[data-theme=light] .take-note-sticky{background:linear-gradient(180deg,var(--bg) 72%,rgba(255,255,255,0))}.take-note-sticky .take-note-bar{display:none}.mobile-add-note{display:block;position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:9991}.mobile-add-menu{gap:14px}.mobile-add-menu-item{width:min(92vw,340px);padding:20px 18px;gap:16px;font-size:22px;border-radius:18px;font-weight:750}.mobile-add-menu-item svg{width:34px;height:34px}}@media (max-width: 480px){body{--main-pad-x: 6px}.section-title{padding-left:2px}}@media (pointer: coarse) and (max-width: 560px),(any-pointer: coarse) and (max-width: 560px){body{--gap: 10px}.note-card{border-radius:6px;padding:10px;box-shadow:none;border:1px solid rgba(255,255,255,.06)}:root[data-theme=light] .note-card{border-color:#00000014}.note-title{margin:-10px -10px 8px;padding:8px 10px;border-top-left-radius:6px;border-top-right-radius:6px}}.section-title{color:var(--muted);font-weight:600;margin:0 0 8px;padding-left:6px;font-size:13px}.notes-grid{display:grid;grid-template-columns:repeat(var(--cols, 1),var(--note-card-width));grid-auto-rows:var(--row);grid-auto-flow:dense;gap:var(--gap);margin:0;transition:width .18s ease}.notes-masonry{display:flex;align-items:flex-start;gap:var(--gap);margin:0;transition:width .18s ease}.notes-masonry-col{width:var(--note-card-width);flex:0 0 var(--note-card-width);min-width:var(--note-card-width);display:flex;flex-direction:column;gap:var(--gap)}.notes-masonry [data-note-id],.notes-grid.notes-grid--swap [data-note-id]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}html.is-note-swap-dragging,html.is-note-swap-dragging body,html.is-note-swap-dragging .main-area{touch-action:none;overscroll-behavior:contain}html.is-note-rearrange-dragging,html.is-note-rearrange-dragging body,html.is-note-rearrange-dragging .main-area,html.is-note-rearrange-dragging .notes-area{touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none}html.is-editor-modal-open .notes-area{pointer-events:none}html.is-editor-modal-open .mobile-add-note{display:none!important}.note-drag-source{visibility:hidden}.note-drag-target .note-card{outline:2px solid rgba(255,204,0,.85);outline-offset:3px}.note-drag-ghost{z-index:9999;pointer-events:none;will-change:transform}.note-drag-ghost .note-card{box-shadow:0 18px 40px #0000008c}.note-rearrange-overlay{z-index:9999;pointer-events:none;will-change:transform;transform-origin:top left}.note-rearrange-overlay-inner{width:100%;height:100%}.note-rearrange-overlay .note-card{box-shadow:0 18px 40px #0000008c}.note-rearrange-spacer{border-radius:8px;background:#ffffff08;outline:2px dashed rgba(255,204,0,.55);outline-offset:-2px}:root[data-theme=light] .note-rearrange-spacer{background:#00000008;outline-color:#ffaa008c}.notes-grid.notes-grid--manual{grid-auto-flow:row}.is-resizing .notes-grid>div,.is-resizing .note-card{transition:none!important}.take-note-bar{background:var(--card);padding:8px 10px;border-radius:8px;cursor:pointer;color:inherit;display:flex;align-items:center;gap:8px;width:min(600px,100%);margin:12px auto}.take-note-expanded{background:var(--card);border-radius:8px;box-shadow:0 6px 20px #0009;width:min(600px,100%);margin:12px auto}.take-note-expanded.maximized{position:fixed;top:3vh;left:2vw;width:96vw;z-index:70;max-height:90vh;overflow:auto}@media (max-width: 720px) and (pointer: coarse),(max-width: 720px) and (any-pointer: coarse){.take-note-expanded.maximized{position:fixed;left:0;right:0;top:var(--header-height);width:100vw;height:calc(100dvh - var(--header-height));max-height:none;margin:0;border-radius:0;z-index:210;overflow:auto;padding-bottom:calc(12px + env(safe-area-inset-bottom))}}.take-note-bar .checkbox-visual{--checklist-checkbox-size: 32px}.take-note-bar .checkbox-visual svg path{stroke-width:calc(var(--checklist-checkbox-size) * .22)}.take-note-bar .checkbox-visual svg{transform:scale(.86)}.rt-toolbar{background:var(--editor-surface, var(--card));padding:6px;border-radius:6px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;border:1px solid rgba(255,255,255,.06)}.rt-toolbar .tiny{background:transparent;color:inherit;border:1px solid rgba(255,255,255,.12);padding:4px 8px;border-radius:6px;flex:0 0 auto}:root[data-theme=light] .rt-toolbar{background:var(--editor-surface, var(--card));border-color:#00000014}:root[data-theme=light] .rt-toolbar .tiny{border-color:#0000001f}.rt-toolbar .tiny svg{width:18px;height:18px;display:block;fill:currentColor}.rt-toolbar .tiny rect,.rt-toolbar .tiny circle{fill:currentColor}.rt-toolbar .tiny text{font-weight:600}.rt-toolbar .tiny[aria-pressed=true]{background:#ffffff14;color:#fff}:root[data-theme=light] .rt-toolbar .tiny[aria-pressed=true]{background:#00000014;color:#000}.dialog-body .rt-sticky-header,.take-note-expanded .rt-sticky-header{position:sticky;top:0;z-index:40;background:var(--editor-surface, var(--card))}.dialog-body .rt-sticky-header{margin:0 -12px 8px;padding:12px 12px 8px;border-bottom:1px solid rgba(255,255,255,.06)}:root[data-theme=light] .dialog-body .rt-sticky-header{border-bottom-color:#00000014}.take-note-expanded .rt-sticky-header{margin:-12px -12px 8px;padding:12px 12px 8px;border-bottom:1px solid rgba(255,255,255,.06)}:root[data-theme=light] .take-note-expanded .rt-sticky-header{border-bottom-color:#00000014}.rt-editor{min-height:300px;padding:12px 14px;border-radius:8px;background:inherit;color:inherit}.rt-item{min-height:22px;padding:4px 6px;border-radius:4px;background:transparent;color:inherit}.rt-item p{margin:0;font-size:var(--checklist-text-size)}.image-dialog.checklist-editor .checklist-item .rt-item{padding-top:0;padding-bottom:0;min-height:0}.rt-editor h1,.rt-editor h2,.rt-editor h3{margin:8px 0;font-weight:700;line-height:1.22}.rt-editor p{margin:6px 0;font-size:var(--checklist-text-size);line-height:var(--note-line-height, 1.38)}.rt-editor ul,.rt-editor ol{margin:8px 0 8px 20px}.note-html{font-size:var(--checklist-text-size);line-height:var(--note-line-height, 1.38)}.note-html h1,.note-html h2,.note-html h3{margin:8px 0;font-weight:700}.note-html p{margin:6px 0}.note-html ul,.note-html ol{margin:8px 0 8px 20px}.checklist-item{padding:clamp(0px,calc(var(--checklist-gap) * .35),4px) 6px;border-radius:clamp(0px,calc(var(--checklist-gap) * .6),6px);background:transparent;margin-bottom:var(--checklist-gap);display:flex;align-items:center;gap:8px}.image-dialog .checklist-item,.image-dialog.checklist-editor .checklist-item,.image-dialog.checklist-editor .checklist-item .drag-gutter{align-items:center}.image-dialog .checklist-item:hover{background:#ffffff0f}:root[data-theme=light] .image-dialog .checklist-item:hover{background:#0000000f}.take-note-expanded .checklist-item:hover{background:#ffffff0f}:root[data-theme=light] .take-note-expanded .checklist-item:hover{background:#0000000f}.checklist-item .drag-gutter{display:flex;align-items:center;gap:8px}.checklist-item .drag-handle{opacity:.9;color:inherit;display:flex;align-items:center;justify-content:center;width:max(var(--checklist-drag-handle-width),var(--checklist-checkbox-size));min-width:max(var(--checklist-drag-handle-width),var(--checklist-checkbox-size));height:auto;min-height:max(var(--checklist-drag-handle-height),var(--checklist-checkbox-size));padding:clamp(0px,calc(var(--checklist-gap) * .55),10px) 0;line-height:1;font-size:max(22px,var(--checklist-checkbox-size));margin-right:0}.checklist-item .drag-gutter,.checklist-item .drag-handle{touch-action:none}.take-note-input{padding:4px 6px;border-radius:4px;font-size:var(--checklist-text-size);resize:none;width:100%;min-height:22px;background:transparent;border:none;color:inherit;outline:none;font-family:inherit}.take-note-input{overflow:hidden}.take-note-input::placeholder{color:var(--muted)}.checkbox-visual,.note-checkbox{width:var(--checklist-checkbox-size);height:var(--checklist-checkbox-size);min-width:var(--checklist-checkbox-size);min-height:var(--checklist-checkbox-size);border-radius:6px;background:transparent;border:2px solid var(--checkbox-stroke, #ffffff);display:inline-flex;align-items:center;justify-content:center;color:var(--checkbox-stroke, #ffffff);cursor:pointer;box-shadow:0 1px #00000040 inset}.checkbox-visual,.note-checkbox{padding:calc(var(--checklist-checkbox-size) * .08);margin-right:8px;box-sizing:border-box}.checklist-item .checkbox-visual,.checklist-item .note-checkbox,.note-item .note-checkbox{margin-right:0}.checkbox-visual svg,.note-checkbox svg{width:100%;height:100%;display:block;stroke:currentColor;fill:none}.note-checkbox svg path{stroke-linecap:round;stroke-linejoin:round}.checkbox-visual svg path,.note-checkbox svg path{stroke-width:calc(var(--checklist-checkbox-size) * .42)}.note-checkbox.checked,.checkbox-visual.checked{border-color:var(--checkbox-stroke, #ffffff);color:var(--checkbox-stroke, #ffffff)}:root{--checkbox-stroke: #ffffff}:root[data-theme=light]{--checkbox-stroke: #000000}.checklist-item.shift-up{transform:translateY(calc(-1 * var(--checklist-item-shift)))}.checklist-item.shift-down{transform:translateY(var(--checklist-item-shift))}.note-body .note-item{font-size:var(--checklist-text-size)}.note-item{margin-bottom:var(--checklist-gap)}.note-item p,.rt-html p{margin:0}.checklist-item{transition:transform .14s cubic-bezier(.22,.95,.3,1),opacity .12s ease,background-color .16s ease;-webkit-transition:transform .14s cubic-bezier(.22,.95,.3,1),opacity .12s ease,background-color .16s ease;will-change:transform,background-color}.checklist-item.dragging{opacity:.7;transform:scale(.985)}.checklist-ghost{box-shadow:0 10px 30px #00000080;border-radius:8px;background:var(--card);transform:translateZ(0);pointer-events:none;opacity:.98}.image-dialog .checkbox-visual svg path,.image-dialog .note-checkbox svg path{stroke-width:calc(var(--checklist-checkbox-size) * .32)}.checklist-item.drag-source{opacity:0;pointer-events:none}.move-controls{display:flex;gap:6px}.move-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:6px;border-radius:6px}.move-btn:active{transform:translateY(1px)}.note-card{display:flex;flex-direction:column;width:100%;position:relative;background:var(--card);border-radius:8px;padding:12px;margin:0;break-inside:avoid;box-shadow:0 1px #0009;overflow:visible;transition:transform .3s cubic-bezier(.2,.9,.2,1),opacity .26s ease;will-change:transform,opacity}.notes-grid>div{display:block;width:100%;margin:0;transition:transform .3s cubic-bezier(.2,.9,.2,1);will-change:transform}.note-title{font-weight:750;font-size:1.18em;letter-spacing:.1px;color:inherit;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;line-clamp:2;-webkit-line-clamp:2;margin:-12px -12px 10px;padding:10px 12px;background:var(--note-title-bg, rgba(255,255,255,.07));border-bottom:1px solid rgba(255,255,255,.06);border-top-left-radius:8px;border-top-right-radius:8px}:root[data-theme=light] .note-title{background:var(--note-title-bg, linear-gradient(180deg, rgba(0,0,0,.085), rgba(0,0,0,.055)));border-bottom-color:#0000001a;box-shadow:inset 0 1px #ffffffbf}.note-body{color:inherit;font-size:var(--checklist-text-size);line-height:var(--note-line-height, 1.38);overflow:hidden;flex:1 1 auto;position:relative;max-height:var(--note-card-max-height)}.note-card[data-clipped="1"]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:64px;pointer-events:none;background:linear-gradient(to bottom,#0000,#0000008c);mix-blend-mode:multiply;z-index:18}.note-card[data-clipped="1"]:before{content:"…";position:absolute;left:0;right:0;bottom:10px;text-align:center;font-weight:800;letter-spacing:.8px;opacity:.7;pointer-events:none;z-index:19}.note-item-text{font-size:var(--checklist-text-size);overflow:hidden;min-width:0;flex:1 1 auto}.note-item-text .rt-html{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;line-clamp:4;-webkit-line-clamp:4;white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-overflow:ellipsis}.note-item-text .rt-html p,.note-item-text .rt-html ul,.note-item-text .rt-html ol,.note-item-text .rt-html li{margin:0;padding:0}.note-item-text .rt-html p{display:inline}.note-items-list{display:flex;flex-direction:column;gap:var(--checklist-gap)}.note-items-list .note-item{margin-bottom:0}.note-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;opacity:.95}.note-card:hover .note-actions{opacity:1}.tiny{background:transparent;border:none;color:var(--muted);cursor:pointer}.note-actions .tiny,.note-footer .tiny{color:inherit;filter:grayscale(100%);opacity:.9;transition:transform .14s cubic-bezier(.2,0,0,1),opacity .12s ease;transform:translateY(0) scale(1);transform-origin:center center;will-change:transform,opacity;backface-visibility:hidden}.note-card:hover .note-actions .tiny,.note-card:hover .note-footer .tiny{transform:translateY(-2px) scale(1.08);opacity:.98}.note-footer .tiny:hover,.note-actions .tiny:hover,.note-footer .tiny:focus,.note-actions .tiny:focus{transform:translateY(-2px) scale(1.14);opacity:1;outline:none}.note-footer .tiny svg,.note-actions .tiny svg{transition:transform .14s cubic-bezier(.2,0,0,1);transform-origin:center center}.note-footer .tiny:hover svg,.note-actions .tiny:hover svg,.note-footer .tiny:focus svg,.note-actions .tiny:focus svg{transform:scale(1.14)}.palette-img{width:clamp(16px,calc(var(--note-card-width) * .055),20px);height:clamp(16px,calc(var(--note-card-width) * .055),20px);display:inline-block;object-fit:contain;transition:transform .14s cubic-bezier(.2,0,0,1)}:root:not([data-theme=light]) .palette-img{filter:invert(100%) brightness(110%)}:root[data-theme=light] .palette-img{filter:none}.note-footer .tiny.palette:hover .palette-img,.note-actions .tiny.palette:hover .palette-img,.note-footer .tiny.palette:focus .palette-img,.note-actions .tiny.palette:focus .palette-img{transform:translateY(-2px) scale(1.14)}.collab-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start;max-width:100%}.collection-chips{display:flex;gap:8px 18px;margin-bottom:8px;flex-wrap:wrap;align-items:baseline;max-width:100%}.collection-link{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:inline-block;background:transparent;border:none;padding:0;margin:0;cursor:pointer;color:currentColor;font-weight:900;letter-spacing:.02em;font-size:16px;line-height:1.05;text-shadow:var(--collection-link-shadow, 0 1px 0 rgba(0,0,0,.85));text-decoration:none;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.collection-link:hover{text-decoration:underline;text-underline-offset:3px}.collection-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}:root:not([data-theme=light]){--collection-link-shadow: 0 1px 0 rgba(0,0,0,.9), 0 -1px 0 rgba(0,0,0,.9), 1px 0 0 rgba(0,0,0,.9), -1px 0 0 rgba(0,0,0,.9), 0 2px 10px rgba(0,0,0,.45)}:root[data-theme=light]{--collection-link-shadow: 0 1px 0 rgba(255,255,255,.95), 0 -1px 0 rgba(255,255,255,.95), 1px 0 0 rgba(255,255,255,.95), -1px 0 0 rgba(255,255,255,.95), 0 2px 10px rgba(0,0,0,.1)}.chip{background:var(--chip-bg, rgba(255,255,255,.06));padding:5px 10px;border-radius:999px;font-size:12px;color:inherit;border:0;line-height:1}button.chip{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}button.chip:focus{outline:2px solid rgba(255,255,255,.18);outline-offset:2px}:root[data-theme=light] button.chip:focus{outline-color:#0000002e}:root[data-theme=light] .chip{background:#0000000f;box-shadow:inset 0 0 0 1px #0000000a}.note-meta{margin:6px 0 10px;font-size:12px}.note-card.has-checklist .note-meta{margin-bottom:16px}.note-meta-bar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.chip.chip--meta{padding:4px 10px;opacity:.74;display:inline-flex;align-items:center;gap:8px}.chip.chip--meta.is-active{opacity:.9}.meta-icon,.meta-fa-icon{width:14px;height:14px;display:inline-block;flex:0 0 auto;opacity:.92}.chip--meta-collections .meta-collections-label{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-meta-panel{overflow:hidden;max-height:0;opacity:0;transform:translateY(-3px);pointer-events:none;transition:opacity .14s ease,transform .14s ease,max-height .18s ease}.note-meta-panel.is-open{margin-top:6px;max-height:320px;opacity:1;transform:translateY(0);pointer-events:auto}@media (prefers-reduced-motion: reduce){.note-meta-panel{transition:none}}.chip.chip--collection{background:var(--chip-bg, rgba(255,255,255,.06));box-shadow:none}:root[data-theme=light] .chip.chip--collection{background:#0000000f;box-shadow:inset 0 0 0 1px #0000000a}@media (pointer: coarse){.chip{padding:8px 12px;font-size:13px}}.label-chips{display:flex;gap:6px;flex-wrap:wrap;max-height:none;overflow:visible;padding:4px 0 0;margin-top:0}.note-collections{display:flex;flex-direction:column;gap:6px;margin-top:0}.note-collections-toggle{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:none;padding:2px 0;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-size:12px;opacity:.92}.note-collections-toggle__count{font-size:11px;padding:2px 7px;border-radius:999px;background:#ffffff14;box-shadow:inset 0 0 0 1px #ffffff0f}:root[data-theme=light] .note-collections-toggle__count{background:#0000000f;box-shadow:inset 0 0 0 1px #0000000f}.note-collections-list{display:flex;flex-wrap:wrap;gap:6px;max-height:140px;overflow:auto;padding-top:4px;padding-bottom:2px}.note-collection-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-image{border-radius:6px;overflow:hidden}.note-image img{display:block}.note-card .note-images{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px;max-width:100%}.note-card.has-labels .note-images{margin-bottom:0}.note-card .note-images .note-image{width:min(var(--image-thumb-size),100%);aspect-ratio:1 / 1;height:auto;flex:0 0 auto;position:relative}.note-card .note-images .note-image img{width:100%;height:100%;object-fit:cover}.note-card .note-images .note-image-moreOverlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;letter-spacing:.2px;color:#fff;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.image-dialog .editor-images-toggle{padding:6px 10px}.image-dialog .editor-images-grid{display:flex;flex-wrap:wrap;gap:8px;max-width:100%;max-height:calc((var(--image-thumb-size) * 2) + 16px);overflow-y:auto;overflow-x:hidden;padding-right:4px}.image-dialog .editor-images-grid .note-image{width:min(var(--image-thumb-size),100%);aspect-ratio:1 / 1;height:auto;flex:0 0 auto;background:#ffffff0a}.image-dialog .editor-images-grid .note-image:focus-within,.image-dialog .editor-images-grid .note-image:hover{background:#ffffff0f}:root[data-theme=light] .image-dialog .editor-images-grid .note-image{background:#0000000a}.image-dialog .editor-images-grid .note-image img{width:100%;height:100%;object-fit:contain}.image-delete{background:#0000008c;border:1px solid rgba(255,255,255,.1);color:#fff;border-radius:999px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .14s ease}.note-image:hover .image-delete,.note-image:focus-within .image-delete{opacity:1}.palette-popover{position:fixed;background:#181818;color:#fff;border-radius:10px;padding:10px;box-shadow:0 8px 24px #0009;z-index:200;max-width:var(--note-card-width)}:root[data-theme=light] .palette-popover{background:#fff;color:#000;box-shadow:0 8px 24px #00000026;border:1px solid rgba(0,0,0,.06)}.palette-grid{display:flex;gap:8px;flex-wrap:wrap;max-width:300px}.palette-swatch{width:40px;height:40px;border-radius:6px;border:1px solid rgba(255,255,255,.04);cursor:pointer;box-shadow:inset 0 0 0 1px #0000000f}:root[data-theme=light] .palette-swatch{border-color:#0000000f;box-shadow:inset 0 0 0 1px #0000000a}.image-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.image-dialog{width:min(420px,calc(var(--note-card-width) + 120px));background:#181818;color:#fff;--editor-surface: #181818;border-radius:10px;padding:12px;border:1px solid rgba(255,255,255,.04);display:flex;flex-direction:column;max-height:80vh}:root[data-theme=light] .image-dialog{background:#fff;color:#000;--editor-surface: #ffffff;border:1px solid rgba(0,0,0,.08)}.image-dialog.maximized{width:96vw!important;max-height:90vh}.image-dialog.maximized .rt-editor{min-height:60vh}@media (pointer: coarse) and (max-width: 720px){.image-dialog-backdrop{align-items:stretch;justify-content:stretch}.editor-dialog{width:100vw!important;height:100dvh;max-height:none!important;border-radius:0;padding:0;border:none}.editor-dialog.maximized{width:100vw!important;max-height:none!important}.editor-dialog .dialog-header{padding:calc(10px + env(safe-area-inset-top)) 12px 10px;background:var(--editor-surface, var(--card));border-bottom:1px solid rgba(255,255,255,.06)}:root[data-theme=light] .editor-dialog .dialog-header{border-bottom-color:#00000014}.editor-dialog .dialog-footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom));position:sticky;bottom:0;z-index:45;background:var(--editor-surface, var(--card));box-shadow:0 -10px 24px #00000038}:root[data-theme=light] .editor-dialog .dialog-footer{box-shadow:0 -10px 24px #0000001a}.image-dialog.editor-dialog .dialog-footer .note-actions{gap:12px;flex-wrap:wrap;align-items:center}.image-dialog.editor-dialog .dialog-footer .note-actions .tiny{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:0}.image-dialog.editor-dialog .dialog-footer .note-actions .tiny svg,.image-dialog.editor-dialog .dialog-footer .note-actions .palette-svg{width:36px!important;height:36px!important}.image-dialog.editor-dialog .dialog-footer .note-actions .tiny.editor-more{font-size:30px;line-height:1}}.prefs-backdrop{padding:16px}.prefs-dialog{width:420px;max-width:min(520px,calc(100vw - 32px));background:#181818;color:#fff;border-radius:10px;padding:12px;border:1px solid rgba(255,255,255,.04);display:flex;flex-direction:column;max-height:80vh;box-sizing:border-box}:root[data-theme=light] .prefs-dialog{background:#fff;color:#000;border:1px solid rgba(0,0,0,.08)}.prefs-header{gap:10px}.prefs-title{text-align:center;flex:1 1 auto}.prefs-back{min-width:44px;display:inline-flex;align-items:center;justify-content:center}.prefs-body{padding:12px}.prefs-list{display:flex;flex-direction:column;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;overflow:hidden}:root[data-theme=light] .prefs-list{border-color:#0000001a;background:#00000008}.prefs-item{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:none;color:inherit;cursor:pointer;padding:14px;display:flex;align-items:center;justify-content:space-between;font-size:16px;font-weight:650}.prefs-item+.prefs-item{border-top:1px solid rgba(255,255,255,.08)}:root[data-theme=light] .prefs-item+.prefs-item{border-top-color:#00000014}.prefs-item:active{background:#ffffff0f}:root[data-theme=light] .prefs-item:active{background:#0000000f}.prefs-item__label{min-width:0}.prefs-item__chev{opacity:.65;font-size:18px}.prefs-item--danger{color:#ff6b6b}:root[data-theme=light] .prefs-item--danger{color:#c23b3b}@media (pointer: coarse) and (max-width: 720px){.prefs-backdrop.phone{align-items:stretch;justify-content:stretch;padding:0}.prefs-dialog.phone{width:100vw;height:100dvh;max-width:none;max-height:none;border-radius:0;padding:0;border:none}.prefs-dialog.phone .prefs-header{padding:calc(10px + env(safe-area-inset-top)) 12px 10px;background:var(--editor-surface, var(--card));border-bottom:1px solid rgba(255,255,255,.06)}:root[data-theme=light] .prefs-dialog.phone .prefs-header{border-bottom-color:#00000014}.prefs-dialog.phone .prefs-body{padding:12px 12px calc(12px + env(safe-area-inset-bottom))}}.about-hero-group{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:18px auto;width:100%;max-width:420px;position:relative;padding-bottom:38px}.about-hero{display:flex;align-items:center;justify-content:flex-start;gap:20px;width:100%}.about-hero-icon{width:160px;height:160px;object-fit:contain;filter:drop-shadow(0 14px 30px rgba(0,0,0,.6))}.about-hero-wordmark{width:220px;max-width:calc(100% - 180px);object-fit:contain;filter:drop-shadow(0 8px 22px rgba(0,0,0,.45));align-self:center}.about-version-row{position:absolute;left:8px;bottom:6px;display:flex;align-items:center;gap:4px}.about-version-icon{width:28px;height:28px;object-fit:contain}.about-version-text{font-size:1.2rem;font-weight:700;letter-spacing:.03em}.about-description{margin-top:8px;line-height:1.5;color:var(--muted)}.image-dialog,.image-dialog *,.prefs-dialog,.prefs-dialog *{font-family:var(--app-font-family)!important}.image-url-input{width:100%;padding:8px;border-radius:6px;border:1px solid rgba(255,255,255,.04);background:#1c1c1c;color:#fff}:root[data-theme=light] .image-url-input{background:#f7f7f9;color:#000;border:1px solid rgba(0,0,0,.1)}.dialog-header{display:flex;align-items:center;justify-content:space-between}.dialog-body{padding:12px;overflow:auto;flex:1 1 auto}.image-dialog .dialog-body{padding:0 12px 12px;background:var(--editor-surface, var(--card))}.dialog-footer{padding:12px;border-top:1px solid rgba(255,255,255,.03);display:flex;gap:8px;align-items:center}:root[data-theme=light] .dialog-footer{border-top:1px solid rgba(0,0,0,.06)}.image-dialog .dialog-footer .note-actions{justify-content:flex-start}.create-collection-toggle{display:flex;align-items:center;gap:10px;min-width:0;padding:8px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:inherit;cursor:pointer}:root[data-theme=light] .create-collection-toggle{border-color:#0000001a;background:#0000000a}.create-collection-toggle input{width:18px;height:18px;accent-color:var(--accent);flex:0 0 auto}.create-collection-toggle__text{font-weight:700;opacity:.95;flex:0 0 auto}.create-collection-toggle__path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}@media (pointer: coarse){.create-collection-toggle{padding:10px 12px}.create-collection-toggle input{width:22px;height:22px}}.delete-item{background:transparent;border:none;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .14s;padding:4px 6px;border-radius:6px;align-self:center;pointer-events:none}.checklist-item:hover .delete-item,.checklist-item.is-active .delete-item{opacity:1;pointer-events:auto}.image-dialog.checklist-editor .checklist-item .rt-item,.image-dialog.checklist-editor .checklist-item .rt-item:focus,.image-dialog.checklist-editor .checklist-item .rt-item:focus-visible,.image-dialog.checklist-editor .checklist-item .ProseMirror:focus,.image-dialog.checklist-editor .checklist-item .ProseMirror-focused{outline:none!important;box-shadow:none!important;border:none!important}.btn{background:#ffffff0a;border:1px solid rgba(255,255,255,.03);padding:8px 10px;border-radius:6px;color:#fff;cursor:pointer}.btn:hover{background:#ffffff0f}:root[data-theme=light] .btn{color:#000;background:#0000000a;border-color:#0000000f}:root[data-theme=light] .btn:hover{background:#0000000f}.note-card .btn,.image-dialog .btn,.prefs-dialog .btn{color:inherit}.completed-toggle{display:inline-flex;align-items:center;gap:8px;background:transparent;border:none;padding:6px;color:inherit;cursor:pointer;margin-bottom:var(--checklist-gap)}.reminder-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:60}.reminder-popover{width:min(320px,var(--note-card-width));background:#181818;color:#fff;border-radius:10px;padding:12px;border:1px solid rgba(255,255,255,.04)}:root[data-theme=light] .reminder-popover{background:#fff;color:#000;border:1px solid rgba(0,0,0,.08)}.reminder-popover input[type=date],.reminder-popover input[type=time]{background:#1c1c1c;color:#fff;border:1px solid rgba(255,255,255,.04);padding:6px;border-radius:6px}:root[data-theme=light] .reminder-popover input[type=date],:root[data-theme=light] .reminder-popover input[type=time]{background:#f7f7f9;color:#000;border:1px solid rgba(0,0,0,.1)}.more-menu{background:#232323;border-radius:8px;padding:6px 8px;box-shadow:0 6px 18px #0009;display:flex;flex-direction:column;box-sizing:border-box;color:#fff}:root[data-theme=light] .more-menu{background:#fff;color:#000;box-shadow:0 6px 18px #00000026;border:1px solid rgba(0,0,0,.06)}.more-item{background:transparent;border:none;color:#fff;padding:6px 10px;text-align:left;cursor:pointer}.more-item{white-space:nowrap}.more-item:hover{background:#ffffff05;color:#fff}:root[data-theme=light] .more-item{color:#000}:root[data-theme=light] .more-item:hover{background:#0000000f;color:inherit}.more-sep{border:none;border-top:1px solid rgba(255,255,255,.06);margin:6px 0}:root[data-theme=light] .more-sep{border-top-color:#00000014}.collab-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:60}.collab-modal{width:420px;background:#181818;color:#fff;border-radius:10px;padding:12px;border:1px solid rgba(255,255,255,.04)}:root[data-theme=light] .collab-modal{background:#fff;color:#000;border:1px solid rgba(0,0,0,.08)}.collab-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.icon-close{background:transparent;border:none;color:#fff;cursor:pointer}.collab-search{width:100%;padding:8px;border-radius:6px;border:1px solid rgba(255,255,255,.04);background:#1c1c1c;color:#fff;margin-bottom:8px}:root[data-theme=light] .collab-search{background:#f7f7f9;color:#000;border:1px solid rgba(0,0,0,.1)}.collab-list{max-height:220px;overflow:auto}.collab-item{display:flex;gap:10px;align-items:center;padding:8px;border-radius:6px;cursor:pointer}.collab-item:hover{background:#ffffff05}.collab-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(90deg,#2ea7ff,#9b59ff);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600}.collab-email{font-size:13px;color:inherit}.collab-empty{padding:12px;color:var(--muted);text-align:center;font-size:13px}.image-dialog .icon-close,.image-dialog .icon-close:hover,.image-dialog .dialog-header strong,.image-dialog .dialog-header .tiny,.prefs-dialog .icon-close,.prefs-dialog .icon-close:hover,.prefs-dialog .dialog-header strong,.collab-modal .icon-close,.collab-modal .icon-close:hover,.collab-modal .collab-header strong{color:inherit}.note-actions .tiny{filter:grayscale(100%);opacity:.9;transition:transform .14s cubic-bezier(.2,0,0,1),opacity .12s ease;transform:translateY(0) scale(1);background:transparent;border:none;cursor:pointer;font-size:18px}.note-card:hover .note-actions .tiny{transform:translateY(-2px) scale(1.08);opacity:1}.note-card{padding-bottom:62px}.note-footer{position:absolute;left:0;right:0;bottom:0;height:52px;border-bottom-left-radius:8px;border-bottom-right-radius:8px;background:#161616;display:flex;align-items:center;justify-content:center;padding:6px 10px;box-shadow:0 -1px #ffffff05 inset,0 6px 18px #0009;transition:transform .16s ease,opacity .16s ease;opacity:0;transform:translateY(6px);pointer-events:none;z-index:20;color:#fff}:root[data-theme=light] .note-footer{background:#f2f2f4;box-shadow:0 -1px #0000000d inset,0 6px 18px #00000014;color:#000}.footer-hover-zone{position:absolute;left:0;right:0;bottom:0;height:60px;background:transparent;pointer-events:auto;z-index:19}.footer-hover-zone:hover+.note-footer{opacity:1;transform:translateY(0);pointer-events:auto}.note-footer:hover{opacity:1;transform:translateY(0);pointer-events:auto}.note-actions{display:flex;align-items:center;width:100%;justify-content:space-between;gap:0}.note-footer .tiny{width:clamp(20px,calc(var(--note-card-width) * .14),36px);height:clamp(20px,calc(var(--note-card-width) * .14),36px);display:inline-flex;align-items:center;justify-content:center;border-radius:6px;filter:grayscale(100%);opacity:.95;transition:transform .14s cubic-bezier(.2,0,0,1),opacity .12s ease;transform:translateY(0) scale(1);background:transparent;border:none;cursor:pointer;font-size:clamp(14px,calc(var(--note-card-width) * .055),18px);color:inherit;line-height:1;padding:0;flex:0 0 auto}.note-footer .tiny:hover{transform:translateY(-2px) scale(1.08);opacity:1}@media (pointer: coarse),(any-pointer: coarse),(hover: none),(any-hover: none){.note-card .footer-hover-zone,.note-card .note-footer{display:none!important}.note-card,.note-card.has-labels{padding-bottom:12px!important}.label-chips{position:static;left:auto;right:auto;bottom:auto;z-index:auto;max-height:none;overflow:visible;padding:4px 0 0;margin-top:10px}.note-collections{position:static;left:auto;right:auto;bottom:auto;z-index:auto;margin-top:6px}.note-collections-list{max-height:none;overflow:visible}.note-card.has-labels .note-images{margin-bottom:0}}@media (pointer: coarse),(any-pointer: coarse),(hover: none),(any-hover: none) and (max-width: 560px){.note-card,.note-card.has-labels{padding-bottom:10px!important}.label-chips{margin-top:8px}}.settings-dropdown{position:absolute;right:8px;top:44px;background:var(--card);color:#e6e6e6;border-radius:8px;box-shadow:0 8px 28px #0009;min-width:160px;z-index:2000;border:1px solid rgba(255,255,255,.03);overflow:hidden;transform-origin:top right;animation:dropdown-in .16s cubic-bezier(.2,0,.2,1) both}.settings-item{display:block;width:100%;text-align:left;padding:10px 12px;border:none;background:transparent;color:inherit;cursor:pointer}.settings-item:hover{background:#ffffff05}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:640px){.app-body>.sidebar{display:none}.search{max-width:40vw}.notes-grid{column-width:220px}}.take-note-expanded .note-footer{position:static;height:auto;background:transparent;box-shadow:none;opacity:1;transform:none;pointer-events:auto;padding:0}.take-note-expanded .note-actions{justify-content:flex-end;gap:8px} diff --git a/client-dist/assets/index-CIHictPt.js b/client-dist/assets/index-CIHictPt.js deleted file mode 100644 index 163097d..0000000 --- a/client-dist/assets/index-CIHictPt.js +++ /dev/null @@ -1,769 +0,0 @@ -var jj=Object.defineProperty;var Pj=(t,e,n)=>e in t?jj(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var bf=(t,e,n)=>Pj(t,typeof e!="symbol"?e+"":e,n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();function EN(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var NN={exports:{}},Tm={},TN={exports:{}},Xt={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var zd=Symbol.for("react.element"),Lj=Symbol.for("react.portal"),_j=Symbol.for("react.fragment"),zj=Symbol.for("react.strict_mode"),Fj=Symbol.for("react.profiler"),$j=Symbol.for("react.provider"),Bj=Symbol.for("react.context"),Uj=Symbol.for("react.forward_ref"),Hj=Symbol.for("react.suspense"),Vj=Symbol.for("react.memo"),Wj=Symbol.for("react.lazy"),B1=Symbol.iterator;function Kj(t){return t===null||typeof t!="object"?null:(t=B1&&t[B1]||t["@@iterator"],typeof t=="function"?t:null)}var AN={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},MN=Object.assign,IN={};function Mc(t,e,n){this.props=t,this.context=e,this.refs=IN,this.updater=n||AN}Mc.prototype.isReactComponent={};Mc.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};Mc.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function RN(){}RN.prototype=Mc.prototype;function Mw(t,e,n){this.props=t,this.context=e,this.refs=IN,this.updater=n||AN}var Iw=Mw.prototype=new RN;Iw.constructor=Mw;MN(Iw,Mc.prototype);Iw.isPureReactComponent=!0;var U1=Array.isArray,DN=Object.prototype.hasOwnProperty,Rw={current:null},ON={key:!0,ref:!0,__self:!0,__source:!0};function jN(t,e,n){var r,i={},s=null,o=null;if(e!=null)for(r in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)DN.call(e,r)&&!ON.hasOwnProperty(r)&&(i[r]=e[r]);var l=arguments.length-2;if(l===1)i.children=n;else if(1>>1,Q=q[Me];if(0>>1;Mei(J,xe))ati($t,J)?(q[Me]=$t,q[at]=xe,Me=at):(q[Me]=J,q[_t]=xe,Me=_t);else if(ati($t,xe))q[Me]=$t,q[at]=xe,Me=at;else break e}}return se}function i(q,se){var xe=q.sortIndex-se.sortIndex;return xe!==0?xe:q.id-se.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var a=[],c=[],u=1,d=null,f=3,p=!1,m=!1,g=!1,y=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,w=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function x(q){for(var se=n(c);se!==null;){if(se.callback===null)r(c);else if(se.startTime<=q)r(c),se.sortIndex=se.expirationTime,e(a,se);else break;se=n(c)}}function E(q){if(g=!1,x(q),!m)if(n(a)!==null)m=!0,Ae(k);else{var se=n(c);se!==null&&me(E,se.startTime-q)}}function k(q,se){m=!1,g&&(g=!1,v(z),z=-1),p=!0;var xe=f;try{for(x(se),d=n(a);d!==null&&(!(d.expirationTime>se)||q&&!H());){var Me=d.callback;if(typeof Me=="function"){d.callback=null,f=d.priorityLevel;var Q=Me(d.expirationTime<=se);se=t.unstable_now(),typeof Q=="function"?d.callback=Q:d===n(a)&&r(a),x(se)}else r(a);d=n(a)}if(d!==null)var Je=!0;else{var _t=n(c);_t!==null&&me(E,_t.startTime-se),Je=!1}return Je}finally{d=null,f=xe,p=!1}}var M=!1,N=null,z=-1,X=5,L=-1;function H(){return!(t.unstable_now()-Lq||125Me?(q.sortIndex=xe,e(c,q),n(a)===null&&q===n(c)&&(g?(v(z),z=-1):g=!0,me(E,xe-Me))):(q.sortIndex=Q,e(a,q),m||p||(m=!0,Ae(k))),q},t.unstable_shouldYield=H,t.unstable_wrapCallback=function(q){var se=f;return function(){var xe=f;f=se;try{return q.apply(this,arguments)}finally{f=xe}}}})(FN);zN.exports=FN;var rP=zN.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var iP=b,pi=rP;function Te(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),yv=Object.prototype.hasOwnProperty,sP=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,V1={},W1={};function oP(t){return yv.call(W1,t)?!0:yv.call(V1,t)?!1:sP.test(t)?W1[t]=!0:(V1[t]=!0,!1)}function lP(t,e,n,r){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function aP(t,e,n,r){if(e===null||typeof e>"u"||lP(t,e,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Yr(t,e,n,r,i,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var br={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){br[t]=new Yr(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];br[e]=new Yr(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){br[t]=new Yr(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){br[t]=new Yr(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){br[t]=new Yr(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){br[t]=new Yr(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){br[t]=new Yr(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){br[t]=new Yr(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){br[t]=new Yr(t,5,!1,t.toLowerCase(),null,!1,!1)});var Ow=/[\-:]([a-z])/g;function jw(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(Ow,jw);br[e]=new Yr(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(Ow,jw);br[e]=new Yr(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(Ow,jw);br[e]=new Yr(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){br[t]=new Yr(t,1,!1,t.toLowerCase(),null,!1,!1)});br.xlinkHref=new Yr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){br[t]=new Yr(t,1,!1,t.toLowerCase(),null,!0,!0)});function Pw(t,e,n,r){var i=br.hasOwnProperty(e)?br[e]:null;(i!==null?i.type!==0:r||!(2l||i[o]!==s[l]){var a=` -`+i[o].replace(" at new "," at ");return t.displayName&&a.includes("")&&(a=a.replace("",t.displayName)),a}while(1<=o&&0<=l);break}}}finally{Bg=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?au(t):""}function cP(t){switch(t.tag){case 5:return au(t.type);case 16:return au("Lazy");case 13:return au("Suspense");case 19:return au("SuspenseList");case 0:case 2:case 15:return t=Ug(t.type,!1),t;case 11:return t=Ug(t.type.render,!1),t;case 1:return t=Ug(t.type,!0),t;default:return""}}function xv(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case Aa:return"Fragment";case Ta:return"Portal";case vv:return"Profiler";case Lw:return"StrictMode";case wv:return"Suspense";case bv:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case UN:return(t.displayName||"Context")+".Consumer";case BN:return(t._context.displayName||"Context")+".Provider";case _w:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case zw:return e=t.displayName||null,e!==null?e:xv(t.type)||"Memo";case To:e=t._payload,t=t._init;try{return xv(t(e))}catch{}}return null}function uP(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return xv(e);case 8:return e===Lw?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function rl(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function VN(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function dP(t){var e=VN(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),r=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,s=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function Sf(t){t._valueTracker||(t._valueTracker=dP(t))}function WN(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),r="";return t&&(r=VN(t)?t.checked?"true":"false":t.value),t=r,t!==n?(e.setValue(t),!0):!1}function zh(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function kv(t,e){var n=e.checked;return Rn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??t._wrapperState.initialChecked})}function Y1(t,e){var n=e.defaultValue==null?"":e.defaultValue,r=e.checked!=null?e.checked:e.defaultChecked;n=rl(e.value!=null?e.value:n),t._wrapperState={initialChecked:r,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function KN(t,e){e=e.checked,e!=null&&Pw(t,"checked",e,!1)}function Sv(t,e){KN(t,e);var n=rl(e.value),r=e.type;if(n!=null)r==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(r==="submit"||r==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?Cv(t,e.type,n):e.hasOwnProperty("defaultValue")&&Cv(t,e.type,rl(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function q1(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var r=e.type;if(!(r!=="submit"&&r!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function Cv(t,e,n){(e!=="number"||zh(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var cu=Array.isArray;function Ba(t,e,n,r){if(t=t.options,e){e={};for(var i=0;i"+e.valueOf().toString()+"",e=Cf.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function Yu(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var vu={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},fP=["Webkit","ms","Moz","O"];Object.keys(vu).forEach(function(t){fP.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),vu[e]=vu[t]})});function GN(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||vu.hasOwnProperty(t)&&vu[t]?(""+e).trim():e+"px"}function XN(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=GN(n,e[n],r);n==="float"&&(n="cssFloat"),r?t.setProperty(n,i):t[n]=i}}var hP=Rn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Tv(t,e){if(e){if(hP[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(Te(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(Te(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(Te(61))}if(e.style!=null&&typeof e.style!="object")throw Error(Te(62))}}function Av(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Mv=null;function Fw(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var Iv=null,Ua=null,Ha=null;function X1(t){if(t=Bd(t)){if(typeof Iv!="function")throw Error(Te(280));var e=t.stateNode;e&&(e=Dm(e),Iv(t.stateNode,t.type,e))}}function QN(t){Ua?Ha?Ha.push(t):Ha=[t]:Ua=t}function ZN(){if(Ua){var t=Ua,e=Ha;if(Ha=Ua=null,X1(t),e)for(t=0;t>>=0,t===0?32:31-(CP(t)/EP|0)|0}var Ef=64,Nf=4194304;function uu(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Uh(t,e){var n=t.pendingLanes;if(n===0)return 0;var r=0,i=t.suspendedLanes,s=t.pingedLanes,o=n&268435455;if(o!==0){var l=o&~i;l!==0?r=uu(l):(s&=o,s!==0&&(r=uu(s)))}else o=n&~i,o!==0?r=uu(o):s!==0&&(r=uu(s));if(r===0)return 0;if(e!==0&&e!==r&&!(e&i)&&(i=r&-r,s=e&-e,i>=s||i===16&&(s&4194240)!==0))return e;if(r&4&&(r|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=r;0n;n++)e.push(t);return e}function Fd(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-Xi(e),t[e]=n}function MP(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var r=t.eventTimes;for(t=t.expirationTimes;0=bu),ok=" ",lk=!1;function wT(t,e){switch(t){case"keyup":return rL.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function bT(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Ma=!1;function sL(t,e){switch(t){case"compositionend":return bT(e);case"keypress":return e.which!==32?null:(lk=!0,ok);case"textInput":return t=e.data,t===ok&&lk?null:t;default:return null}}function oL(t,e){if(Ma)return t==="compositionend"||!Yw&&wT(t,e)?(t=yT(),dh=Vw=zo=null,Ma=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=dk(n)}}function CT(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?CT(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function ET(){for(var t=window,e=zh();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=zh(t.document)}return e}function qw(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function mL(t){var e=ET(),n=t.focusedElem,r=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&CT(n.ownerDocument.documentElement,n)){if(r!==null&&qw(n)){if(e=r.start,t=r.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!t.extend&&s>r&&(i=r,r=s,s=i),i=fk(n,s);var o=fk(n,r);i&&o&&(t.rangeCount!==1||t.anchorNode!==i.node||t.anchorOffset!==i.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(i.node,i.offset),t.removeAllRanges(),s>r?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Ia=null,Lv=null,ku=null,_v=!1;function hk(t,e,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;_v||Ia==null||Ia!==zh(r)||(r=Ia,"selectionStart"in r&&qw(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ku&&Zu(ku,r)||(ku=r,r=Wh(Lv,"onSelect"),0Oa||(t.current=Hv[Oa],Hv[Oa]=null,Oa--)}function bn(t,e){Oa++,Hv[Oa]=t.current,t.current=e}var il={},Rr=gl(il),ei=gl(!1),Wl=il;function sc(t,e){var n=t.type.contextTypes;if(!n)return il;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===e)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=e[s];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=i),i}function ti(t){return t=t.childContextTypes,t!=null}function Yh(){Sn(ei),Sn(Rr)}function bk(t,e,n){if(Rr.current!==il)throw Error(Te(168));bn(Rr,e),bn(ei,n)}function jT(t,e,n){var r=t.stateNode;if(e=e.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in e))throw Error(Te(108,uP(t)||"Unknown",i));return Rn({},n,r)}function qh(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||il,Wl=Rr.current,bn(Rr,t),bn(ei,ei.current),!0}function xk(t,e,n){var r=t.stateNode;if(!r)throw Error(Te(169));n?(t=jT(t,e,Wl),r.__reactInternalMemoizedMergedChildContext=t,Sn(ei),Sn(Rr),bn(Rr,t)):Sn(ei),bn(ei,n)}var Vs=null,Om=!1,ny=!1;function PT(t){Vs===null?Vs=[t]:Vs.push(t)}function TL(t){Om=!0,PT(t)}function yl(){if(!ny&&Vs!==null){ny=!0;var t=0,e=un;try{var n=Vs;for(un=1;t>=o,i-=o,Ys=1<<32-Xi(e)+i|n<z?(X=N,N=null):X=N.sibling;var L=f(v,N,x[z],E);if(L===null){N===null&&(N=X);break}t&&N&&L.alternate===null&&e(v,N),w=s(L,w,z),M===null?k=L:M.sibling=L,M=L,N=X}if(z===x.length)return n(v,N),Tn&&Sl(v,z),k;if(N===null){for(;zz?(X=N,N=null):X=N.sibling;var H=f(v,N,L.value,E);if(H===null){N===null&&(N=X);break}t&&N&&H.alternate===null&&e(v,N),w=s(H,w,z),M===null?k=H:M.sibling=H,M=H,N=X}if(L.done)return n(v,N),Tn&&Sl(v,z),k;if(N===null){for(;!L.done;z++,L=x.next())L=d(v,L.value,E),L!==null&&(w=s(L,w,z),M===null?k=L:M.sibling=L,M=L);return Tn&&Sl(v,z),k}for(N=r(v,N);!L.done;z++,L=x.next())L=p(N,v,z,L.value,E),L!==null&&(t&&L.alternate!==null&&N.delete(L.key===null?z:L.key),w=s(L,w,z),M===null?k=L:M.sibling=L,M=L);return t&&N.forEach(function(W){return e(v,W)}),Tn&&Sl(v,z),k}function y(v,w,x,E){if(typeof x=="object"&&x!==null&&x.type===Aa&&x.key===null&&(x=x.props.children),typeof x=="object"&&x!==null){switch(x.$$typeof){case kf:e:{for(var k=x.key,M=w;M!==null;){if(M.key===k){if(k=x.type,k===Aa){if(M.tag===7){n(v,M.sibling),w=i(M,x.props.children),w.return=v,v=w;break e}}else if(M.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===To&&Ck(k)===M.type){n(v,M.sibling),w=i(M,x.props),w.ref=Xc(v,M,x),w.return=v,v=w;break e}n(v,M);break}else e(v,M);M=M.sibling}x.type===Aa?(w=_l(x.props.children,v.mode,E,x.key),w.return=v,v=w):(E=wh(x.type,x.key,x.props,null,v.mode,E),E.ref=Xc(v,w,x),E.return=v,v=E)}return o(v);case Ta:e:{for(M=x.key;w!==null;){if(w.key===M)if(w.tag===4&&w.stateNode.containerInfo===x.containerInfo&&w.stateNode.implementation===x.implementation){n(v,w.sibling),w=i(w,x.children||[]),w.return=v,v=w;break e}else{n(v,w);break}else e(v,w);w=w.sibling}w=uy(x,v.mode,E),w.return=v,v=w}return o(v);case To:return M=x._init,y(v,w,M(x._payload),E)}if(cu(x))return m(v,w,x,E);if(Kc(x))return g(v,w,x,E);Of(v,x)}return typeof x=="string"&&x!==""||typeof x=="number"?(x=""+x,w!==null&&w.tag===6?(n(v,w.sibling),w=i(w,x),w.return=v,v=w):(n(v,w),w=cy(x,v.mode,E),w.return=v,v=w),o(v)):n(v,w)}return y}var lc=FT(!0),$T=FT(!1),Xh=gl(null),Qh=null,La=null,Qw=null;function Zw(){Qw=La=Qh=null}function eb(t){var e=Xh.current;Sn(Xh),t._currentValue=e}function Kv(t,e,n){for(;t!==null;){var r=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,r!==null&&(r.childLanes|=e)):r!==null&&(r.childLanes&e)!==e&&(r.childLanes|=e),t===n)break;t=t.return}}function Wa(t,e){Qh=t,Qw=La=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&e&&(Zr=!0),t.firstContext=null)}function ji(t){var e=t._currentValue;if(Qw!==t)if(t={context:t,memoizedValue:e,next:null},La===null){if(Qh===null)throw Error(Te(308));La=t,Qh.dependencies={lanes:0,firstContext:t}}else La=La.next=t;return e}var Ml=null;function tb(t){Ml===null?Ml=[t]:Ml.push(t)}function BT(t,e,n,r){var i=e.interleaved;return i===null?(n.next=n,tb(e)):(n.next=i.next,i.next=n),e.interleaved=n,so(t,r)}function so(t,e){t.lanes|=e;var n=t.alternate;for(n!==null&&(n.lanes|=e),n=t,t=t.return;t!==null;)t.childLanes|=e,n=t.alternate,n!==null&&(n.childLanes|=e),n=t,t=t.return;return n.tag===3?n.stateNode:null}var Ao=!1;function nb(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function UT(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Qs(t,e){return{eventTime:t,lane:e,tag:0,payload:null,callback:null,next:null}}function qo(t,e,n){var r=t.updateQueue;if(r===null)return null;if(r=r.shared,en&2){var i=r.pending;return i===null?e.next=e:(e.next=i.next,i.next=e),r.pending=e,so(t,n)}return i=r.interleaved,i===null?(e.next=e,tb(r)):(e.next=i.next,i.next=e),r.interleaved=e,so(t,n)}function hh(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194240)!==0)){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,Bw(t,n)}}function Ek(t,e){var n=t.updateQueue,r=t.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?i=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?i=s=e:s=s.next=e}else i=s=e;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:s,shared:r.shared,effects:r.effects},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}function Zh(t,e,n,r){var i=t.updateQueue;Ao=!1;var s=i.firstBaseUpdate,o=i.lastBaseUpdate,l=i.shared.pending;if(l!==null){i.shared.pending=null;var a=l,c=a.next;a.next=null,o===null?s=c:o.next=c,o=a;var u=t.alternate;u!==null&&(u=u.updateQueue,l=u.lastBaseUpdate,l!==o&&(l===null?u.firstBaseUpdate=c:l.next=c,u.lastBaseUpdate=a))}if(s!==null){var d=i.baseState;o=0,u=c=a=null,l=s;do{var f=l.lane,p=l.eventTime;if((r&f)===f){u!==null&&(u=u.next={eventTime:p,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=t,g=l;switch(f=e,p=n,g.tag){case 1:if(m=g.payload,typeof m=="function"){d=m.call(p,d,f);break e}d=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m=="function"?m.call(p,d,f):m,f==null)break e;d=Rn({},d,f);break e;case 2:Ao=!0}}l.callback!==null&&l.lane!==0&&(t.flags|=64,f=i.effects,f===null?i.effects=[l]:f.push(l))}else p={eventTime:p,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},u===null?(c=u=p,a=d):u=u.next=p,o|=f;if(l=l.next,l===null){if(l=i.shared.pending,l===null)break;f=l,l=f.next,f.next=null,i.lastBaseUpdate=f,i.shared.pending=null}}while(!0);if(u===null&&(a=d),i.baseState=a,i.firstBaseUpdate=c,i.lastBaseUpdate=u,e=i.shared.interleaved,e!==null){i=e;do o|=i.lane,i=i.next;while(i!==e)}else s===null&&(i.shared.lanes=0);ql|=o,t.lanes=o,t.memoizedState=d}}function Nk(t,e,n){if(t=e.effects,e.effects=null,t!==null)for(e=0;en?n:4,t(!0);var r=iy.transition;iy.transition={};try{t(!1),e()}finally{un=n,iy.transition=r}}function sA(){return Pi().memoizedState}function RL(t,e,n){var r=Go(t);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},oA(t))lA(e,n);else if(n=BT(t,e,n,r),n!==null){var i=$r();Qi(n,t,r,i),aA(n,e,r)}}function DL(t,e,n){var r=Go(t),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(oA(t))lA(e,i);else{var s=t.alternate;if(t.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,l=s(o,n);if(i.hasEagerState=!0,i.eagerState=l,es(l,o)){var a=e.interleaved;a===null?(i.next=i,tb(e)):(i.next=a.next,a.next=i),e.interleaved=i;return}}catch{}finally{}n=BT(t,e,i,r),n!==null&&(i=$r(),Qi(n,t,r,i),aA(n,e,r))}}function oA(t){var e=t.alternate;return t===In||e!==null&&e===In}function lA(t,e){Su=tp=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function aA(t,e,n){if(n&4194240){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,Bw(t,n)}}var np={readContext:ji,useCallback:Cr,useContext:Cr,useEffect:Cr,useImperativeHandle:Cr,useInsertionEffect:Cr,useLayoutEffect:Cr,useMemo:Cr,useReducer:Cr,useRef:Cr,useState:Cr,useDebugValue:Cr,useDeferredValue:Cr,useTransition:Cr,useMutableSource:Cr,useSyncExternalStore:Cr,useId:Cr,unstable_isNewReconciler:!1},OL={readContext:ji,useCallback:function(t,e){return ms().memoizedState=[t,e===void 0?null:e],t},useContext:ji,useEffect:Ak,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,mh(4194308,4,eA.bind(null,e,t),n)},useLayoutEffect:function(t,e){return mh(4194308,4,t,e)},useInsertionEffect:function(t,e){return mh(4,2,t,e)},useMemo:function(t,e){var n=ms();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var r=ms();return e=n!==void 0?n(e):e,r.memoizedState=r.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},r.queue=t,t=t.dispatch=RL.bind(null,In,t),[r.memoizedState,t]},useRef:function(t){var e=ms();return t={current:t},e.memoizedState=t},useState:Tk,useDebugValue:ub,useDeferredValue:function(t){return ms().memoizedState=t},useTransition:function(){var t=Tk(!1),e=t[0];return t=IL.bind(null,t[1]),ms().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var r=In,i=ms();if(Tn){if(n===void 0)throw Error(Te(407));n=n()}else{if(n=e(),ar===null)throw Error(Te(349));Yl&30||KT(r,e,n)}i.memoizedState=n;var s={value:n,getSnapshot:e};return i.queue=s,Ak(qT.bind(null,r,s,t),[t]),r.flags|=2048,ld(9,YT.bind(null,r,s,n,e),void 0,null),n},useId:function(){var t=ms(),e=ar.identifierPrefix;if(Tn){var n=qs,r=Ys;n=(r&~(1<<32-Xi(r)-1)).toString(32)+n,e=":"+e+"R"+n,n=sd++,0<\/script>",t=t.removeChild(t.firstChild)):typeof r.is=="string"?t=o.createElement(n,{is:r.is}):(t=o.createElement(n),n==="select"&&(o=t,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):t=o.createElementNS(t,n),t[vs]=e,t[nd]=r,vA(t,e,!1,!1),e.stateNode=t;e:{switch(o=Av(n,r),n){case"dialog":xn("cancel",t),xn("close",t),i=r;break;case"iframe":case"object":case"embed":xn("load",t),i=r;break;case"video":case"audio":for(i=0;iuc&&(e.flags|=128,r=!0,Qc(s,!1),e.lanes=4194304)}else{if(!r)if(t=ep(o),t!==null){if(e.flags|=128,r=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),Qc(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!Tn)return Er(e),null}else 2*_n()-s.renderingStartTime>uc&&n!==1073741824&&(e.flags|=128,r=!0,Qc(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(n=s.last,n!==null?n.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=_n(),e.sibling=null,n=An.current,bn(An,r?n&1|2:n&1),e):(Er(e),null);case 22:case 23:return gb(),r=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==r&&(e.flags|=8192),r&&e.mode&1?ci&1073741824&&(Er(e),e.subtreeFlags&6&&(e.flags|=8192)):Er(e),null;case 24:return null;case 25:return null}throw Error(Te(156,e.tag))}function BL(t,e){switch(Gw(e),e.tag){case 1:return ti(e.type)&&Yh(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return ac(),Sn(ei),Sn(Rr),sb(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return ib(e),null;case 13:if(Sn(An),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(Te(340));oc()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return Sn(An),null;case 4:return ac(),null;case 10:return eb(e.type._context),null;case 22:case 23:return gb(),null;case 24:return null;default:return null}}var Pf=!1,Ar=!1,UL=typeof WeakSet=="function"?WeakSet:Set,Qe=null;function _a(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){On(t,e,r)}else n.current=null}function t0(t,e,n){try{n()}catch(r){On(t,e,r)}}var Fk=!1;function HL(t,e){if(zv=Hh,t=ET(),qw(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,l=-1,a=-1,c=0,u=0,d=t,f=null;t:for(;;){for(var p;d!==n||i!==0&&d.nodeType!==3||(l=o+i),d!==s||r!==0&&d.nodeType!==3||(a=o+r),d.nodeType===3&&(o+=d.nodeValue.length),(p=d.firstChild)!==null;)f=d,d=p;for(;;){if(d===t)break t;if(f===n&&++c===i&&(l=o),f===s&&++u===r&&(a=o),(p=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=p}n=l===-1||a===-1?null:{start:l,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(Fv={focusedElem:t,selectionRange:n},Hh=!1,Qe=e;Qe!==null;)if(e=Qe,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,Qe=t;else for(;Qe!==null;){e=Qe;try{var m=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var g=m.memoizedProps,y=m.memoizedState,v=e.stateNode,w=v.getSnapshotBeforeUpdate(e.elementType===e.type?g:Wi(e.type,g),y);v.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var x=e.stateNode.containerInfo;x.nodeType===1?x.textContent="":x.nodeType===9&&x.documentElement&&x.removeChild(x.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Te(163))}}catch(E){On(e,e.return,E)}if(t=e.sibling,t!==null){t.return=e.return,Qe=t;break}Qe=e.return}return m=Fk,Fk=!1,m}function Cu(t,e,n){var r=e.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&t)===t){var s=i.destroy;i.destroy=void 0,s!==void 0&&t0(e,n,s)}i=i.next}while(i!==r)}}function Lm(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var r=n.create;n.destroy=r()}n=n.next}while(n!==e)}}function n0(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function xA(t){var e=t.alternate;e!==null&&(t.alternate=null,xA(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[vs],delete e[nd],delete e[Uv],delete e[EL],delete e[NL])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function kA(t){return t.tag===5||t.tag===3||t.tag===4}function $k(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||kA(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function r0(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=Kh));else if(r!==4&&(t=t.child,t!==null))for(r0(t,e,n),t=t.sibling;t!==null;)r0(t,e,n),t=t.sibling}function i0(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(r!==4&&(t=t.child,t!==null))for(i0(t,e,n),t=t.sibling;t!==null;)i0(t,e,n),t=t.sibling}var pr=null,Ki=!1;function So(t,e,n){for(n=n.child;n!==null;)SA(t,e,n),n=n.sibling}function SA(t,e,n){if(ks&&typeof ks.onCommitFiberUnmount=="function")try{ks.onCommitFiberUnmount(Am,n)}catch{}switch(n.tag){case 5:Ar||_a(n,e);case 6:var r=pr,i=Ki;pr=null,So(t,e,n),pr=r,Ki=i,pr!==null&&(Ki?(t=pr,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):pr.removeChild(n.stateNode));break;case 18:pr!==null&&(Ki?(t=pr,n=n.stateNode,t.nodeType===8?ty(t.parentNode,n):t.nodeType===1&&ty(t,n),Xu(t)):ty(pr,n.stateNode));break;case 4:r=pr,i=Ki,pr=n.stateNode.containerInfo,Ki=!0,So(t,e,n),pr=r,Ki=i;break;case 0:case 11:case 14:case 15:if(!Ar&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&t0(n,e,o),i=i.next}while(i!==r)}So(t,e,n);break;case 1:if(!Ar&&(_a(n,e),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){On(n,e,l)}So(t,e,n);break;case 21:So(t,e,n);break;case 22:n.mode&1?(Ar=(r=Ar)||n.memoizedState!==null,So(t,e,n),Ar=r):So(t,e,n);break;default:So(t,e,n)}}function Bk(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new UL),e.forEach(function(r){var i=QL.bind(null,t,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Hi(t,e){var n=e.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~s}if(r=i,r=_n()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*WL(r/1960))-r,10t?16:t,Fo===null)var r=!1;else{if(t=Fo,Fo=null,sp=0,en&6)throw Error(Te(331));var i=en;for(en|=4,Qe=t.current;Qe!==null;){var s=Qe,o=s.child;if(Qe.flags&16){var l=s.deletions;if(l!==null){for(var a=0;a_n()-pb?Ll(t,0):hb|=n),ni(t,e)}function RA(t,e){e===0&&(t.mode&1?(e=Nf,Nf<<=1,!(Nf&130023424)&&(Nf=4194304)):e=1);var n=$r();t=so(t,e),t!==null&&(Fd(t,e,n),ni(t,n))}function XL(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),RA(t,n)}function QL(t,e){var n=0;switch(t.tag){case 13:var r=t.stateNode,i=t.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=t.stateNode;break;default:throw Error(Te(314))}r!==null&&r.delete(e),RA(t,n)}var DA;DA=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||ei.current)Zr=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return Zr=!1,FL(t,e,n);Zr=!!(t.flags&131072)}else Zr=!1,Tn&&e.flags&1048576&<(e,Gh,e.index);switch(e.lanes=0,e.tag){case 2:var r=e.type;gh(t,e),t=e.pendingProps;var i=sc(e,Rr.current);Wa(e,n),i=lb(null,e,r,t,i,n);var s=ab();return e.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,ti(r)?(s=!0,qh(e)):s=!1,e.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,nb(e),i.updater=Pm,e.stateNode=i,i._reactInternals=e,qv(e,r,t,n),e=Xv(null,e,r,!0,s,n)):(e.tag=0,Tn&&s&&Jw(e),_r(null,e,i,n),e=e.child),e;case 16:r=e.elementType;e:{switch(gh(t,e),t=e.pendingProps,i=r._init,r=i(r._payload),e.type=r,i=e.tag=e_(r),t=Wi(r,t),i){case 0:e=Gv(null,e,r,t,n);break e;case 1:e=Lk(null,e,r,t,n);break e;case 11:e=jk(null,e,r,t,n);break e;case 14:e=Pk(null,e,r,Wi(r.type,t),n);break e}throw Error(Te(306,r,""))}return e;case 0:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Wi(r,i),Gv(t,e,r,i,n);case 1:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Wi(r,i),Lk(t,e,r,i,n);case 3:e:{if(mA(e),t===null)throw Error(Te(387));r=e.pendingProps,s=e.memoizedState,i=s.element,UT(t,e),Zh(e,r,null,n);var o=e.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){i=cc(Error(Te(423)),e),e=_k(t,e,r,n,i);break e}else if(r!==i){i=cc(Error(Te(424)),e),e=_k(t,e,r,n,i);break e}else for(di=Yo(e.stateNode.containerInfo.firstChild),fi=e,Tn=!0,Yi=null,n=$T(e,null,r,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(oc(),r===i){e=oo(t,e,n);break e}_r(t,e,r,n)}e=e.child}return e;case 5:return HT(e),t===null&&Wv(e),r=e.type,i=e.pendingProps,s=t!==null?t.memoizedProps:null,o=i.children,$v(r,i)?o=null:s!==null&&$v(r,s)&&(e.flags|=32),pA(t,e),_r(t,e,o,n),e.child;case 6:return t===null&&Wv(e),null;case 13:return gA(t,e,n);case 4:return rb(e,e.stateNode.containerInfo),r=e.pendingProps,t===null?e.child=lc(e,null,r,n):_r(t,e,r,n),e.child;case 11:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Wi(r,i),jk(t,e,r,i,n);case 7:return _r(t,e,e.pendingProps,n),e.child;case 8:return _r(t,e,e.pendingProps.children,n),e.child;case 12:return _r(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(r=e.type._context,i=e.pendingProps,s=e.memoizedProps,o=i.value,bn(Xh,r._currentValue),r._currentValue=o,s!==null)if(es(s.value,o)){if(s.children===i.children&&!ei.current){e=oo(t,e,n);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var l=s.dependencies;if(l!==null){o=s.child;for(var a=l.firstContext;a!==null;){if(a.context===r){if(s.tag===1){a=Qs(-1,n&-n),a.tag=2;var c=s.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?a.next=a:(a.next=u.next,u.next=a),c.pending=a}}s.lanes|=n,a=s.alternate,a!==null&&(a.lanes|=n),Kv(s.return,n,e),l.lanes|=n;break}a=a.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(Te(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Kv(o,n,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}_r(t,e,i.children,n),e=e.child}return e;case 9:return i=e.type,r=e.pendingProps.children,Wa(e,n),i=ji(i),r=r(i),e.flags|=1,_r(t,e,r,n),e.child;case 14:return r=e.type,i=Wi(r,e.pendingProps),i=Wi(r.type,i),Pk(t,e,r,i,n);case 15:return fA(t,e,e.type,e.pendingProps,n);case 17:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Wi(r,i),gh(t,e),e.tag=1,ti(r)?(t=!0,qh(e)):t=!1,Wa(e,n),cA(e,r,i),qv(e,r,i,n),Xv(null,e,r,!0,t,n);case 19:return yA(t,e,n);case 22:return hA(t,e,n)}throw Error(Te(156,e.tag))};function OA(t,e){return oT(t,e)}function ZL(t,e,n,r){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Mi(t,e,n,r){return new ZL(t,e,n,r)}function vb(t){return t=t.prototype,!(!t||!t.isReactComponent)}function e_(t){if(typeof t=="function")return vb(t)?1:0;if(t!=null){if(t=t.$$typeof,t===_w)return 11;if(t===zw)return 14}return 2}function Xo(t,e){var n=t.alternate;return n===null?(n=Mi(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function wh(t,e,n,r,i,s){var o=2;if(r=t,typeof t=="function")vb(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case Aa:return _l(n.children,i,s,e);case Lw:o=8,i|=8;break;case vv:return t=Mi(12,n,e,i|2),t.elementType=vv,t.lanes=s,t;case wv:return t=Mi(13,n,e,i),t.elementType=wv,t.lanes=s,t;case bv:return t=Mi(19,n,e,i),t.elementType=bv,t.lanes=s,t;case HN:return zm(n,i,s,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case BN:o=10;break e;case UN:o=9;break e;case _w:o=11;break e;case zw:o=14;break e;case To:o=16,r=null;break e}throw Error(Te(130,t==null?t:typeof t,""))}return e=Mi(o,n,e,i),e.elementType=t,e.type=r,e.lanes=s,e}function _l(t,e,n,r){return t=Mi(7,t,r,e),t.lanes=n,t}function zm(t,e,n,r){return t=Mi(22,t,r,e),t.elementType=HN,t.lanes=n,t.stateNode={isHidden:!1},t}function cy(t,e,n){return t=Mi(6,t,null,e),t.lanes=n,t}function uy(t,e,n){return e=Mi(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function t_(t,e,n,r,i){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Vg(0),this.expirationTimes=Vg(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vg(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function wb(t,e,n,r,i,s,o,l,a){return t=new t_(t,e,n,l,a),e===1?(e=1,s===!0&&(e|=8)):e=0,s=Mi(3,null,null,e),t.current=s,s.stateNode=t,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},nb(s),t}function n_(t,e,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(_A)}catch(t){console.error(t)}}_A(),_N.exports=mi;var zn=_N.exports;const l_=EN(zn);var zA,Jk=zn;zA=Jk.createRoot,Jk.hydrateRoot;const Gk="fn.deviceKey",Xk="fn.deviceName";function Qk(t){try{return localStorage.getItem(t)}catch{return null}}function Zk(t,e){try{localStorage.setItem(t,e)}catch{}}function a_(){try{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID()}catch{}return"dev_"+Math.random().toString(36).slice(2)+"_"+Date.now().toString(36)}function c_(){var t,e;try{const n=navigator.userAgentData,r=n&&typeof n.platform=="string"&&n.platform||navigator.platform||"device",s=!!(n&&typeof n.mobile=="boolean"?n.mobile:/Mobi|Android|iPhone|iPad/i.test(navigator.userAgent||""))?"Mobile":"Desktop",o=typeof window<"u"?(t=window.screen)==null?void 0:t.width:0,l=typeof window<"u"?(e=window.screen)==null?void 0:e.height:0,a=o&&l?`${Math.max(o,l)}x${Math.min(o,l)}`:"";return[r,s,a].filter(Boolean).join(" ")}catch{return"Device"}}function FA(){let t=Qk(Gk)||"";t||(t=a_(),Zk(Gk,t));let e=Qk(Xk)||"";return e||(e=c_(),Zk(Xk,e)),{deviceKey:t,deviceName:e}}function Hd(){const t=FA();return{"x-device-key":t.deviceKey,"x-device-name":t.deviceName}}async function u_(t,e,n,r){const i={email:t,password:e};n&&(i.name=n),r&&(i.inviteToken=r);const s=await fetch("/api/auth/register",{method:"POST",headers:{"Content-Type":"application/json",...Hd()},body:JSON.stringify(i)});if(!s.ok)throw new Error(await s.text());return s.json()}async function d_(t,e){const n=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json",...Hd()},body:JSON.stringify({email:t,password:e})});if(!n.ok)throw new Error(await n.text());return n.json()}async function f_(t){const e=await fetch("/api/auth/me",{headers:{Authorization:`Bearer ${t}`,...Hd()}});if(!e.ok)throw new Error(await e.text());return e.json()}async function h_(t,e){const n=await fetch("/api/auth/me",{method:"PATCH",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json",...Hd()},body:JSON.stringify(e)});if(!n.ok)throw new Error(await n.text());return n.json()}async function p_(t,e){const n=await fetch("/api/auth/me/photo",{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json",...Hd()},body:JSON.stringify({dataUrl:e})});if(!n.ok)throw new Error(await n.text());return n.json()}const $A=b.createContext(void 0);function Sr(){const t=b.useContext($A);if(!t)throw new Error("useAuth must be used within AuthProvider");return t}const m_=({children:t})=>{const[e,n]=b.useState(null),[r,i]=b.useState(()=>localStorage.getItem("fn_token"));b.useEffect(()=>{r&&f_(r).then(u=>n(u.user)).catch(()=>{n(null),i(null),localStorage.removeItem("fn_token")})},[r]),b.useEffect(()=>{if(e)try{if(e.fontFamily&&(document.documentElement.style.setProperty("--app-font-family",e.fontFamily),localStorage.setItem("prefs.fontFamily",e.fontFamily)),typeof e.noteWidth=="number"){const u=e.noteWidth;document.documentElement.style.setProperty("--note-card-width",String(u)+"px"),localStorage.setItem("prefs.noteWidth",String(u));try{window.dispatchEvent(new Event("notes-grid:recalc"))}catch{}}e.dragBehavior&&localStorage.setItem("prefs.dragBehavior",e.dragBehavior),e.animationSpeed&&localStorage.setItem("prefs.animationSpeed",e.animationSpeed),typeof e.checklistSpacing=="number"&&(document.documentElement.style.setProperty("--checklist-gap",String(e.checklistSpacing)+"px"),localStorage.setItem("prefs.checklistSpacing",String(e.checklistSpacing))),typeof e.checkboxSize=="number"&&(document.documentElement.style.setProperty("--checklist-checkbox-size",String(e.checkboxSize)+"px"),localStorage.setItem("prefs.checkboxSize",String(e.checkboxSize))),typeof e.checklistTextSize=="number"&&(document.documentElement.style.setProperty("--checklist-text-size",String(e.checklistTextSize)+"px"),localStorage.setItem("prefs.checklistTextSize",String(e.checklistTextSize))),typeof e.noteLineSpacing=="number"&&(document.documentElement.style.setProperty("--note-line-height",String(e.noteLineSpacing)),localStorage.setItem("prefs.noteLineSpacing",String(e.noteLineSpacing))),typeof e.imageThumbSize=="number"&&(document.documentElement.style.setProperty("--image-thumb-size",String(e.imageThumbSize)+"px"),localStorage.setItem("prefs.imageThumbSize",String(e.imageThumbSize))),e.checkboxBg&&(document.documentElement.style.setProperty("--checkbox-bg",e.checkboxBg),localStorage.setItem("prefs.checkboxBg",e.checkboxBg)),e.checkboxBorder&&(document.documentElement.style.setProperty("--checkbox-border",e.checkboxBorder),localStorage.setItem("prefs.checkboxBorder",e.checkboxBorder))}catch{}},[e]);async function s(u,d){const f=await d_(u,d),p=f.token;i(p),localStorage.setItem("fn_token",p),n(f.user)}async function o(u,d,f,p){const m=await u_(u,d,f,p),g=m.token;i(g),localStorage.setItem("fn_token",g),n(m.user)}async function l(u){const d=r||localStorage.getItem("fn_token");if(!d)throw new Error("Not authenticated");const f=await p_(d,u);f&&f.user&&n(f.user)}async function a(u){if(!r)throw new Error("Not authenticated");const d=await h_(r,u);d&&d.user?n(d.user):n(f=>f&&{...f,...u||{}})}function c(){i(null),n(null),localStorage.removeItem("fn_token")}return h.jsx($A.Provider,{value:{user:e,token:r,login:s,register:o,logout:c,uploadPhoto:l,updateMe:a},children:t})};function g_({onClose:t}){const{token:e}=Sr(),[n,r]=b.useState(""),[i,s]=b.useState("user"),[o,l]=b.useState(null),[a,c]=b.useState(!1);async function u(d){d&&d.preventDefault(),l(null),c(!0);try{const f=await fetch("/api/invite",{method:"POST",headers:{"Content-Type":"application/json",Authorization:e?`Bearer ${e}`:""},body:JSON.stringify({email:n,role:i})});if(!f.ok)throw new Error(await f.text());const p=await f.json();l(`Invite created for ${p.invite.email} (role: ${p.invite.role})`),r(""),s("user")}catch(f){l(`Error: ${(f==null?void 0:f.message)??String(f)}`)}finally{c(!1)}}return h.jsx("div",{className:"image-dialog-backdrop",children:h.jsxs("div",{className:"image-dialog",role:"dialog","aria-modal":!0,children:[h.jsxs("div",{className:"dialog-header",children:[h.jsx("strong",{children:"Settings"}),h.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),h.jsxs("div",{style:{padding:8},children:[h.jsx("h4",{children:"Invites"}),h.jsxs("form",{onSubmit:u,style:{display:"flex",gap:8,alignItems:"center"},children:[h.jsx("input",{placeholder:"Email to invite",value:n,onChange:d=>r(d.target.value),className:"image-url-input"}),h.jsxs("select",{value:i,onChange:d=>s(d.target.value),className:"image-url-input","aria-label":"Role",children:[h.jsx("option",{value:"user",children:"User"}),h.jsx("option",{value:"admin",children:"Admin"})]}),h.jsx("button",{className:"btn",type:"submit",disabled:a||!n,children:"Send invite"})]}),o&&h.jsx("div",{style:{marginTop:8},children:o})]})]})})}const BA=b.createContext(null);function eS(){try{return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}catch{return"dark"}}function tS(t){try{document.documentElement.dataset.theme=t}catch{}}function y_({children:t}){const[e,n]=b.useState(()=>{try{return localStorage.getItem("prefs.theme")||"system"}catch{return"system"}}),r=b.useMemo(()=>e==="system"?eS():e,[e]);b.useEffect(()=>{tS(r);try{localStorage.setItem("prefs.theme",e)}catch{}if(e==="system"){const s=window.matchMedia("(prefers-color-scheme: dark)"),o=()=>tS(eS());try{s.addEventListener("change",o)}catch{}return()=>{try{s.removeEventListener("change",o)}catch{}}}},[e,r]);const i={choice:e,effective:r,setChoice:n};return h.jsx(BA.Provider,{value:i,children:t})}function Sb(){const t=b.useContext(BA);if(!t)throw new Error("useTheme must be used within ThemeProvider");return t}const v_="0.4.6",w_="/icons/darkicon.png",b_="/icons/lighticon.png",x_="/icons/freemannotes.png",k_="/icons/version.png",S_="/icons/version-light.png";function C_({onClose:t}){var wt,ce,Ee,Ke,ze,Pe,it,ot,xt;const e=(()=>{try{return Sr()}catch{return null}})(),n=(()=>{try{return Sb()}catch{return null}})(),r=n&&n.effective||"dark",i=n&&n.choice||"system",s=n&&n.setChoice||(()=>{}),[o,l]=b.useState(()=>{try{const oe=localStorage.getItem("prefs.checklistSpacing");return oe?Number(oe):15}catch{return 15}}),[a,c]=b.useState(()=>{try{return Number(localStorage.getItem("prefs.checkboxSize")||"20")}catch{return 20}}),[u,d]=b.useState(()=>{try{return Number(localStorage.getItem("prefs.checklistTextSize")||"17")}catch{return 17}}),[f,p]=b.useState(()=>{var oe;try{const Ye=localStorage.getItem("prefs.noteLineSpacing");if(Ye)return Number(Ye);const Ge=e&&((oe=e.user)==null?void 0:oe.noteLineSpacing);return typeof Ge=="number"?Ge:1.38}catch{return 1.38}}),[m,g]=b.useState(()=>{try{const oe=localStorage.getItem("prefs.noteWidth");if(oe)return Number(oe);const Ye=getComputedStyle(document.documentElement);return Number(Ye.getPropertyValue("--note-card-width"))||300}catch{return 300}}),[y,v]=b.useState(()=>{var oe;try{const Ye=localStorage.getItem("prefs.imageThumbSize");if(Ye)return Number(Ye);const Ge=e&&((oe=e.user)==null?void 0:oe.imageThumbSize);if(typeof Ge=="number")return Ge;const Y=getComputedStyle(document.documentElement);return Number.parseInt(String(Y.getPropertyValue("--image-thumb-size")||"").trim(),10)||96}catch{return 96}}),[w,x]=b.useState(()=>{var oe;try{const Ye=e&&((oe=e.user)==null?void 0:oe.checkboxBg),Ge=localStorage.getItem("prefs.checkboxBg");return Ye||Ge||getComputedStyle(document.documentElement).getPropertyValue("--card").trim()||"#1e1e1e"}catch{return"#1e1e1e"}}),[E,k]=b.useState(()=>{var oe;try{const Ye=e&&((oe=e.user)==null?void 0:oe.checkboxBorder),Ge=localStorage.getItem("prefs.checkboxBorder");return Ye||Ge||getComputedStyle(document.documentElement).getPropertyValue("--checkbox-border-default").trim()||"#ffffff"}catch{return"#ffffff"}}),[M,N]=b.useState(!1),[z,X]=b.useState(()=>{try{return localStorage.getItem("prefs.fontFamily")||"Calibri, system-ui, Arial, sans-serif"}catch{return"Calibri, system-ui, Arial, sans-serif"}}),[L,H]=b.useState(()=>!1),[W,te]=b.useState(()=>{try{return localStorage.getItem("prefs.dragBehavior")||"swap"}catch{return"swap"}}),[ue,de]=b.useState(()=>{try{return localStorage.getItem("prefs.animationSpeed")||"normal"}catch{return"normal"}}),[Ae,me]=b.useState(()=>{var oe;try{return e&&((oe=e.user)==null?void 0:oe.chipDisplayMode)||"image+text"}catch{return"image+text"}}),q=(()=>{try{const oe=window.matchMedia,Ye=!!(oe&&(oe("(pointer: coarse)").matches||oe("(any-pointer: coarse)").matches)),Ge=window.visualViewport&&typeof window.visualViewport.width=="number"?window.visualViewport.width:window.innerWidth,Y=window.visualViewport&&typeof window.visualViewport.height=="number"?window.visualViewport.height:window.innerHeight,ge=Math.min(Ge,Y);return Ye&&ge<=600}catch{return!1}})();b.useEffect(()=>{var Ye,Ge,Y,ge,De,Be;const oe=(()=>{try{return Number(localStorage.getItem("prefs.checklistSpacing")||"8")}catch{return 8}})();l(oe);try{const Le=localStorage.getItem("prefs.fontFamily");Le&&X(Le)}catch{}try{const Le=localStorage.getItem("prefs.noteLineSpacing")??((e&&((Ye=e.user)==null?void 0:Ye.noteLineSpacing))!=null?String(e.user.noteLineSpacing):null);Le&&p(Number(Le))}catch{}try{const Le=localStorage.getItem("prefs.noteWidth")??((e&&((Ge=e.user)==null?void 0:Ge.noteWidth))!=null?String(e.user.noteWidth):null);Le&&g(Number(Le))}catch{}try{const Le=localStorage.getItem("prefs.imageThumbSize")??((e&&((Y=e.user)==null?void 0:Y.imageThumbSize))!=null?String(e.user.imageThumbSize):null);Le&&v(Number(Le))}catch{}try{const Le=localStorage.getItem("prefs.dragBehavior")||e&&((ge=e.user)==null?void 0:ge.dragBehavior)||"swap";Le&&te(Le)}catch{}try{const Le=localStorage.getItem("prefs.animationSpeed")||e&&((De=e.user)==null?void 0:De.animationSpeed)||"normal";Le&&de(Le)}catch{}try{const Le=e&&((Be=e.user)==null?void 0:Be.chipDisplayMode)||"image+text";Le&&me(Le)}catch{}},[]);async function se(){var oe;document.documentElement.style.setProperty("--checklist-gap",`${o}px`),document.documentElement.style.setProperty("--checklist-checkbox-size",`${a}px`),document.documentElement.style.setProperty("--checklist-text-size",`${u}px`),document.documentElement.style.setProperty("--note-line-height",String(f)),q||document.documentElement.style.setProperty("--note-card-width",`${m}px`),document.documentElement.style.setProperty("--image-thumb-size",`${y}px`);try{localStorage.setItem("prefs.checklistSpacing",String(o))}catch{}try{localStorage.setItem("prefs.checkboxSize",String(a))}catch{}try{localStorage.setItem("prefs.checklistTextSize",String(u))}catch{}try{localStorage.setItem("prefs.noteLineSpacing",String(f))}catch{}if(!q)try{localStorage.setItem("prefs.noteWidth",String(m))}catch{}try{localStorage.setItem("prefs.imageThumbSize",String(y))}catch{}try{localStorage.setItem("prefs.fontFamily",z)}catch{}try{localStorage.setItem("prefs.dragBehavior",W)}catch{}try{localStorage.setItem("prefs.animationSpeed",ue)}catch{}document.documentElement.style.setProperty("--app-font-family",z);try{window.dispatchEvent(new CustomEvent("notes-grid:recalc")),window.dispatchEvent(new Event("resize"))}catch{}try{const Ye={fontFamily:z,...q?{}:{noteWidth:m},dragBehavior:W,animationSpeed:ue,checklistSpacing:o,checkboxSize:a,checklistTextSize:u,noteLineSpacing:f,chipDisplayMode:Ae,imageThumbSize:y};await((oe=e==null?void 0:e.updateMe)==null?void 0:oe.call(e,Ye))}catch{}try{localStorage.removeItem("prefs.checkboxBg"),localStorage.removeItem("prefs.checkboxBorder")}catch{}t()}function xe(){N(!0);try{const oe=getComputedStyle(document.documentElement),Ye=oe.getPropertyValue("--card").trim()||"#1e1e1e",Ge=oe.getPropertyValue("--checkbox-border-default").trim()||"#ffffff";x(Ye),k(Ge)}catch{x("#1e1e1e"),k("#ffffff")}}function Me(){t()}const[Q,Je]=b.useState(!1),[_t,J]=b.useState(null),[at,$t]=b.useState(!1),[ct,nt]=b.useState(null);async function At(oe){var Ye;try{if(J(Y=>{try{Y&&URL.revokeObjectURL(Y)}catch{}return oe?URL.createObjectURL(oe):null}),!oe)return;$t(!0);const Ge=await Bt(oe);await((Ye=e==null?void 0:e.uploadPhoto)==null?void 0:Ye.call(e,Ge)),J(Y=>{try{Y&&URL.revokeObjectURL(Y)}catch{}return null})}catch(Ge){console.error("Failed to upload photo",Ge),window.alert("Failed to upload photo"),J(Y=>{try{Y&&URL.revokeObjectURL(Y)}catch{}return null})}finally{$t(!1)}}function Bt(oe){return new Promise((Ye,Ge)=>{const Y=new FileReader;Y.onload=()=>Ye(String(Y.result||"")),Y.onerror=ge=>Ge(ge),Y.readAsDataURL(oe)})}return B.useEffect(()=>()=>{try{_t&&URL.revokeObjectURL(_t)}catch{}},[_t]),h.jsxs("div",{className:"image-dialog-backdrop",children:[h.jsxs("div",{className:"prefs-dialog",role:"dialog","aria-modal":!0,children:[h.jsxs("div",{className:"dialog-header",children:[h.jsx("strong",{children:"Preferences"}),h.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),h.jsx("div",{style:{padding:12},children:ct==null?h.jsxs("div",{children:[h.jsxs("div",{style:{display:"grid",gap:10},children:[h.jsx("button",{className:"btn",onClick:()=>nt("about"),children:"About"}),h.jsx("button",{className:"btn",onClick:()=>nt("appearance"),children:"Appearance"}),!1,h.jsx("button",{className:"btn",onClick:()=>nt("drag"),children:"Drag & Animation"}),h.jsx("button",{className:"btn",onClick:()=>nt("collaborators"),children:"Collaborators"})]}),h.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[h.jsx("button",{className:"btn",onClick:Me,children:"Close"}),h.jsx("span",{style:{flex:1}}),((wt=e==null?void 0:e.user)==null?void 0:wt.role)==="admin"&&h.jsx("button",{className:"btn",onClick:()=>Je(!0),children:"Send Invite"}),h.jsx("button",{className:"btn",onClick:()=>{var oe;try{t()}catch{}try{(oe=e==null?void 0:e.logout)==null||oe.call(e)}catch{}},children:"Sign out"})]})]}):ct==="about"?h.jsxs("div",{children:[h.jsx("button",{className:"btn",onClick:()=>nt(null),"aria-label":"Back",children:"← Back"}),h.jsx("div",{style:{height:8}}),h.jsx("h4",{children:"About Freeman Notes"}),h.jsxs("div",{className:"about-hero-group",children:[h.jsxs("div",{className:"about-hero","aria-label":"Freeman Notes branding",children:[h.jsx("img",{src:r==="light"?b_:w_,alt:"Freeman Notes icon",className:"about-hero-icon"}),h.jsx("img",{src:x_,alt:"",role:"presentation",className:"about-hero-wordmark",onError:oe=>{oe.currentTarget.style.display="none"}})]}),h.jsxs("div",{className:"about-version-row","aria-label":"Current version",children:[h.jsx("img",{src:r==="light"?S_:k_,alt:"Version badge",className:"about-version-icon"}),h.jsx("span",{className:"about-version-text",children:v_})]})]}),h.jsxs("div",{className:"about-description",children:[h.jsx("p",{children:"Freeman Notes exists to prevent small thoughts from becoming resonance cascades."}),h.jsx("p",{children:"It captures ideas before they scatter, organizes them without Combine interference, and keeps Civil Protection out of your creative process."}),h.jsx("p",{children:"No manhacks. No surveillance. Just free notes, recorded and remembered on your terms."})]}),h.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[h.jsx("button",{className:"btn",onClick:()=>nt(null),children:"Back"}),h.jsx("button",{className:"btn",onClick:Me,children:"Close"}),h.jsx("span",{style:{flex:1}}),((ce=e==null?void 0:e.user)==null?void 0:ce.role)==="admin"&&h.jsx("button",{className:"btn",onClick:()=>Je(!0),children:"Send Invite"}),h.jsx("button",{className:"btn",onClick:()=>{var oe;try{t()}catch{}try{(oe=e==null?void 0:e.logout)==null||oe.call(e)}catch{}},children:"Sign out"})]})]}):ct==="appearance"?h.jsxs("div",{children:[h.jsx("button",{className:"btn",onClick:()=>nt(null),"aria-label":"Back",children:"← Back"}),h.jsx("div",{style:{height:8}}),h.jsx("h4",{children:"Appearance"}),h.jsxs("div",{style:{marginBottom:16},children:[h.jsx("h5",{style:{margin:0,color:"var(--muted)"},children:"Theme"}),h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Appearance"}),h.jsxs("select",{value:i,onChange:oe=>s(oe.target.value),children:[h.jsx("option",{value:"dark",children:"Dark"}),h.jsx("option",{value:"light",children:"Light"}),h.jsx("option",{value:"system",children:"System"})]})]})]}),h.jsxs("div",{style:{marginBottom:16},children:[h.jsx("h5",{style:{margin:0,color:"var(--muted)"},children:"Profile Photo"}),h.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[_t?h.jsx("img",{src:_t,alt:"Profile preview",style:{width:55,height:55,borderRadius:"50%",objectFit:"cover"}}):(Ee=e==null?void 0:e.user)!=null&&Ee.userImageUrl?h.jsx("img",{src:(e==null?void 0:e.user).userImageUrl,alt:"Profile",style:{width:55,height:55,borderRadius:"50%",objectFit:"cover"}}):h.jsx("div",{className:"avatar",style:{width:55,height:55,borderRadius:"50%",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:(((Ke=e==null?void 0:e.user)==null?void 0:Ke.name)||((ze=e==null?void 0:e.user)==null?void 0:ze.email)||"U")[0]}),h.jsx("input",{type:"file",accept:"image/*",disabled:at,onChange:oe=>{var Ye;return At(((Ye=oe.target.files)==null?void 0:Ye[0])||null)}}),at&&h.jsx("div",{style:{color:"var(--muted)",fontSize:13},children:"Uploading…"})]})]}),h.jsxs("div",{style:{display:"block"},children:[h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Checklist item spacing"}),h.jsx("input",{"aria-label":"checklist spacing",type:"range",min:2,max:24,value:o,onChange:oe=>l(Number(oe.target.value))}),h.jsxs("div",{style:{width:48,textAlign:"left"},children:[o,"px"]})]}),h.jsx("div",{style:{height:10}}),h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Note line spacing"}),h.jsx("input",{"aria-label":"note line spacing",type:"range",min:.9,max:1.8,step:.02,value:f,onChange:oe=>p(Number(oe.target.value))}),h.jsx("div",{style:{width:48,textAlign:"left"},children:f.toFixed(2)})]}),h.jsx("div",{style:{height:10}}),h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Checkbox size"}),h.jsx("input",{"aria-label":"checkbox size",type:"range",min:10,max:36,value:a,onChange:oe=>c(Number(oe.target.value))}),h.jsxs("div",{style:{width:48,textAlign:"left"},children:[a,"px"]})]}),h.jsx("div",{style:{height:10}}),h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Text size"}),h.jsx("input",{"aria-label":"checklist text size",type:"range",min:12,max:20,value:u,onChange:oe=>d(Number(oe.target.value))}),h.jsxs("div",{style:{width:48,textAlign:"left"},children:[u,"px"]})]}),h.jsx("div",{style:{height:10}}),q?h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start",opacity:.7},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Note width"}),h.jsx("div",{style:{color:"var(--muted)"},children:"Auto (disabled on mobile)"})]}):h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Note width"}),h.jsx("input",{"aria-label":"note width",type:"range",min:180,max:520,value:m,onChange:oe=>g(Number(oe.target.value))}),h.jsxs("div",{style:{width:64,textAlign:"left"},children:[m,"px"]})]}),h.jsx("div",{style:{height:10}}),h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Image thumbnails"}),h.jsx("input",{"aria-label":"image thumbnail size",type:"range",min:48,max:192,step:8,value:y,onChange:oe=>v(Number(oe.target.value))}),h.jsxs("div",{style:{width:64,textAlign:"left"},children:[y,"px"]})]}),h.jsx("div",{style:{height:10}}),h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"App font"}),h.jsxs("select",{value:z,onChange:oe=>X(oe.target.value),children:[h.jsx("option",{value:'Inter, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial',children:"Inter"}),h.jsx("option",{value:"Calibri, system-ui, Arial, sans-serif",children:"Calibri"}),h.jsx("option",{value:"Segoe UI, system-ui, Arial, sans-serif",children:"Segoe UI"}),h.jsx("option",{value:"Roboto, system-ui, Arial, sans-serif",children:"Roboto"}),h.jsx("option",{value:"Helvetica Neue, Helvetica, Arial, sans-serif",children:"Helvetica Neue"}),h.jsx("option",{value:"Arial, Helvetica, sans-serif",children:"Arial"}),h.jsx("option",{value:"Verdana, Geneva, sans-serif",children:"Verdana"}),h.jsx("option",{value:"Tahoma, Geneva, sans-serif",children:"Tahoma"}),h.jsx("option",{value:"Trebuchet MS, Helvetica, sans-serif",children:"Trebuchet MS"}),h.jsx("option",{value:"Gill Sans, Calibri, sans-serif",children:"Gill Sans"})]})]})]}),h.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[h.jsx("button",{className:"btn",onClick:()=>nt(null),children:"Back"}),h.jsx("button",{className:"btn",onClick:se,children:"Save"}),h.jsx("span",{style:{flex:1}}),((Pe=e==null?void 0:e.user)==null?void 0:Pe.role)==="admin"&&h.jsx("button",{className:"btn",onClick:()=>Je(!0),children:"Send Invite"}),h.jsx("button",{className:"btn",onClick:()=>{var oe;try{t()}catch{}try{(oe=e==null?void 0:e.logout)==null||oe.call(e)}catch{}},children:"Sign out"})]})]}):ct==="colors"?h.jsxs("div",{children:[h.jsx("button",{className:"btn",onClick:()=>nt(null),"aria-label":"Back",children:"← Back"}),h.jsx("div",{style:{height:8}}),h.jsx("h4",{children:"Colors"}),h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Checkbox background"}),h.jsx("input",{"aria-label":"checkbox bg",type:"color",value:w,onChange:oe=>x(oe.target.value),style:{width:44,height:28,padding:0}})]}),h.jsx("div",{style:{height:10}}),h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Checkbox border"}),h.jsx("input",{"aria-label":"checkbox border",type:"color",value:E,onChange:oe=>k(oe.target.value),style:{width:44,height:28,padding:0}})]}),h.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[h.jsx("button",{className:"btn",onClick:()=>nt(null),children:"Back"}),h.jsx("button",{className:"btn",onClick:xe,title:"Reset colors to defaults",children:"Reset colors"}),h.jsx("button",{className:"btn",onClick:se,children:"Save"}),h.jsx("span",{style:{flex:1}}),((it=e==null?void 0:e.user)==null?void 0:it.role)==="admin"&&h.jsx("button",{className:"btn",onClick:()=>Je(!0),children:"Send Invite"}),h.jsx("button",{className:"btn",onClick:()=>{var oe;try{t()}catch{}try{(oe=e==null?void 0:e.logout)==null||oe.call(e)}catch{}},children:"Sign out"})]})]}):ct==="drag"?h.jsxs("div",{children:[h.jsx("button",{className:"btn",onClick:()=>nt(null),"aria-label":"Back",children:"← Back"}),h.jsx("div",{style:{height:8}}),h.jsx("h4",{children:"Drag & Animation"}),h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Behavior"}),h.jsx("label",{style:{color:"var(--muted)"},children:"Swap"}),h.jsx("input",{"aria-label":"drag swap",type:"radio",name:"dragBehavior",checked:W==="swap",onChange:()=>te("swap")}),h.jsx("label",{style:{color:"var(--muted)"},children:"Rearrange"}),h.jsx("input",{"aria-label":"drag rearrange",type:"radio",name:"dragBehavior",checked:W==="rearrange",onChange:()=>te("rearrange")})]}),h.jsx("div",{style:{height:10}}),h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Speed"}),h.jsxs("select",{"aria-label":"animation speed",value:ue,onChange:oe=>de(oe.target.value),children:[h.jsx("option",{value:"fast",children:"Fast"}),h.jsx("option",{value:"normal",children:"Normal"}),h.jsx("option",{value:"slow",children:"Slow"})]})]}),h.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[h.jsx("button",{className:"btn",onClick:()=>nt(null),children:"Back"}),h.jsx("button",{className:"btn",onClick:se,children:"Save"}),h.jsx("span",{style:{flex:1}}),((ot=e==null?void 0:e.user)==null?void 0:ot.role)==="admin"&&h.jsx("button",{className:"btn",onClick:()=>Je(!0),children:"Send Invite"}),h.jsx("button",{className:"btn",onClick:()=>{var oe;try{t()}catch{}try{(oe=e==null?void 0:e.logout)==null||oe.call(e)}catch{}},children:"Sign out"})]})]}):h.jsxs("div",{children:[h.jsx("button",{className:"btn",onClick:()=>nt(null),"aria-label":"Back",children:"← Back"}),h.jsx("div",{style:{height:8}}),h.jsx("h4",{children:"Collaborators"}),h.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[h.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Display"}),h.jsxs("select",{"aria-label":"collaborator chip display",value:Ae,onChange:oe=>me(oe.target.value),children:[h.jsx("option",{value:"image+text",children:"Image + Text"}),h.jsx("option",{value:"image",children:"Image only"}),h.jsx("option",{value:"text",children:"Text only"})]})]}),h.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[h.jsx("button",{className:"btn",onClick:()=>nt(null),children:"Back"}),h.jsx("button",{className:"btn",onClick:se,children:"Save"}),h.jsx("span",{style:{flex:1}}),((xt=e==null?void 0:e.user)==null?void 0:xt.role)==="admin"&&h.jsx("button",{className:"btn",onClick:()=>Je(!0),children:"Send Invite"}),h.jsx("button",{className:"btn",onClick:()=>{var oe;try{t()}catch{}try{(oe=e==null?void 0:e.logout)==null||oe.call(e)}catch{}},children:"Sign out"})]})]})})]}),Q&&h.jsx(g_,{onClose:()=>Je(!1)})]})}function E_({onToggleSidebar:t,searchQuery:e,onSearchChange:n}){const[r,i]=b.useState(!1),{user:s}=Sr(),o=(()=>{try{return Sb()}catch{return{effective:"dark"}}})();return h.jsxs("header",{className:"app-header",children:[h.jsxs("div",{className:"header-left",children:[h.jsx("button",{className:"menu-btn","aria-label":"menu",onClick:()=>t&&t(),children:"☰"}),h.jsxs("div",{className:"brand-inline",children:[h.jsx("img",{src:o.effective==="light"?"/icons/lighticon.png":"/icons/darkicon.png",alt:"FreemanNotes icon",className:"app-icon"}),h.jsx("div",{className:"brand",children:"Freeman Notes"})]})]}),h.jsx("div",{className:"header-center",children:h.jsx("input",{className:"search",placeholder:"Search",value:e??"",onChange:l=>n&&n(l.target.value)})}),h.jsx("div",{className:"header-right",style:{position:"relative"},children:s?h.jsx(h.Fragment,{children:s.userImageUrl?h.jsx("img",{src:s.userImageUrl,alt:"User",className:"avatar",style:{width:33,height:33,borderRadius:"50%",objectFit:"cover",cursor:"pointer"},onClick:()=>i(!0)}):h.jsx("div",{className:"avatar",style:{width:33,height:33,borderRadius:"50%",display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:"pointer"},onClick:()=>i(!0),children:s.name&&s.email?(s.name||s.email)[0]:""})}):null}),r&&h.jsx(C_,{onClose:()=>i(!1)})]})}const Ks={sortKey:"default",sortDir:"desc",smartFilter:"none",groupBy:"none"};function nS({selectedLabelIds:t=[],onToggleLabel:e,onClearLabels:n,collapsed:r=!1,onRequestClose:i,collectionStack:s=[],onCollectionStackChange:o,sortConfig:l=Ks,onSortConfigChange:a}){const{token:c}=Sr(),[u,d]=b.useState([]),[f,p]=b.useState(!1),[m,g]=b.useState(!1),[y,v]=b.useState(!1),[w,x]=b.useState(!1),[E,k]=b.useState(!1),[M,N]=b.useState([]),[z,X]=b.useState(!1),[L,H]=b.useState("");b.useEffect(()=>{if(!c){d([]);return}fetch("/api/labels",{headers:{Authorization:`Bearer ${c}`}}).then(Ee=>Ee.json()).then(Ee=>d(Array.isArray(Ee.labels)?Ee.labels:[])).catch(()=>d([]));const ce=()=>{fetch("/api/labels",{headers:{Authorization:`Bearer ${c}`}}).then(Ee=>Ee.json()).then(Ee=>d(Array.isArray(Ee.labels)?Ee.labels:[])).catch(()=>{})};return typeof window<"u"&&window.addEventListener("labels:refresh",ce),()=>{typeof window<"u"&&window.removeEventListener("labels:refresh",ce)}},[c]);const W=ce=>{try{const Ee={...l,...ce};a&&a(Ee)}catch{}},te=(ce,Ee)=>{if(l.sortKey!==ce){W({sortKey:ce,sortDir:Ee});return}W({sortDir:l.sortDir==="asc"?"desc":"asc"})},ue=ce=>{W({groupBy:l.groupBy===ce?"none":ce})},de=ce=>{W({smartFilter:ce})},Ae=ce=>l.sortKey===ce,me={color:"var(--muted)",opacity:.7,cursor:"not-allowed"},q=()=>{try{a&&a(Ks)}catch{}try{g(!1)}catch{}try{v(!1)}catch{}try{x(!1)}catch{}try{n&&n()}catch{}try{o&&o([])}catch{}try{p(!1)}catch{}try{k(!1)}catch{}},se=()=>{q();try{i&&i()}catch{}},xe=()=>{p(ce=>{const Ee=!ce;if(!Ee){try{n&&n()}catch{}try{q()}catch{}}return Ee})},Me=()=>{g(ce=>{const Ee=!ce;if(!Ee)try{q()}catch{}return Ee})},Q=()=>{v(ce=>{const Ee=!ce;if(!Ee)try{de("none")}catch{}return Ee})},Je=()=>{x(ce=>{const Ee=!ce;if(!Ee)try{W({groupBy:"none"})}catch{}return Ee})},_t=Array.isArray(s)&&s.length?Number(s[s.length-1].id):null,J=B.useCallback(async()=>{if(!c){N([]);return}if(!r&&E){X(!0);try{const ce=_t==null?"":`?parentId=${encodeURIComponent(String(_t))}`,Ke=await(await fetch(`/api/collections${ce}`,{headers:{Authorization:`Bearer ${c}`}})).json(),ze=Array.isArray(Ke==null?void 0:Ke.collections)?Ke.collections:[];N(ze.map(Pe=>({id:Number(Pe.id),name:String(Pe.name||""),parentId:Pe.parentId==null?null:Number(Pe.parentId),hasChildren:!!Pe.hasChildren,noteCount:typeof Pe.noteCount=="number"?Number(Pe.noteCount):void 0})).filter(Pe=>Number.isFinite(Pe.id)&&Pe.name.length))}catch{N([])}finally{X(!1)}}},[c,r,E,_t]);b.useEffect(()=>{J()},[J]);const at=()=>{k(ce=>{const Ee=!ce;if(!Ee)try{H("")}catch{}return Ee})},$t=(ce,Ee)=>{const Ke=[...Array.isArray(s)?s:[],{id:Number(ce),name:String(Ee||"")}];try{o&&o(Ke)}catch{}},ct=()=>{const ce=Array.isArray(s)?s:[];if(ce.length)try{o&&o(ce.slice(0,-1))}catch{}},nt=()=>{try{o&&o([])}catch{}},At=async()=>{const ce=String(L||"").trim();if(!(!ce||!c))try{const Ee=await fetch("/api/collections",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c}`},body:JSON.stringify({name:ce,parentId:_t})});if(!Ee.ok)throw new Error(await Ee.text());try{H("")}catch{}try{window.dispatchEvent(new CustomEvent("collections:changed",{detail:{invalidateAll:!0,reason:"create"}}))}catch{}await J()}catch(Ee){window.alert("Failed to create collection: "+String(Ee))}},Bt=async(ce,Ee)=>{if(!c)return;const Ke=window.prompt("Rename collection:",Ee);if(Ke==null)return;const ze=String(Ke).trim();if(ze)try{const Pe=await fetch(`/api/collections/${encodeURIComponent(String(ce))}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c}`},body:JSON.stringify({name:ze})});if(!Pe.ok)throw new Error(await Pe.text());try{window.dispatchEvent(new CustomEvent("collections:changed",{detail:{invalidateAll:!0,reason:"rename",id:Number(ce)}}))}catch{}try{const it=Array.isArray(s)?s:[],ot=it.findIndex(xt=>Number(xt.id)===Number(ce));if(ot>=0){const xt=it.slice();xt[ot]={...xt[ot],name:ze},o&&o(xt)}}catch{}await J()}catch(Pe){window.alert("Failed to rename collection: "+String(Pe))}},wt=async(ce,Ee)=>{if(!(!c||!window.confirm(`Delete collection "${Ee}"? This will delete all nested collections.`)))try{const ze=await fetch(`/api/collections/${encodeURIComponent(String(ce))}`,{method:"DELETE",headers:{Authorization:`Bearer ${c}`}});if(!ze.ok)throw new Error(await ze.text());try{window.dispatchEvent(new CustomEvent("collections:changed",{detail:{invalidateAll:!0,reason:"delete",id:Number(ce)}}))}catch{}try{const Pe=Array.isArray(s)?s:[],it=Pe.findIndex(ot=>Number(ot.id)===Number(ce));it>=0&&o&&o(Pe.slice(0,it))}catch{}await J()}catch(ze){window.alert("Failed to delete collection: "+String(ze))}};return h.jsx("aside",{className:"sidebar"+(r?" collapsed":""),children:h.jsxs("div",{className:"sidebar-section",children:[h.jsxs("div",{className:"sidebar-item active",title:"Notes",style:{cursor:"pointer"},onClick:se,children:[h.jsx("span",{className:"icon","aria-hidden":!0,children:h.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:h.jsx("path",{d:"M6 3h9l3 3v15H6zM14 3v4h4"})})}),!r&&h.jsx("span",{className:"text",children:"Notes"})]}),h.jsxs("div",{className:"sidebar-item",title:"Reminders",children:[h.jsx("span",{className:"icon","aria-hidden":!0,children:h.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),h.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),!r&&h.jsx("span",{className:"text",children:"Reminders"})]}),h.jsxs("div",{className:"sidebar-item",onClick:xe,style:{cursor:"pointer"},title:"Labels",children:[h.jsx("span",{className:"icon","aria-hidden":!0,children:h.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:h.jsx("path",{d:"M6 3h12v18l-6-4-6 4V3z"})})}),!r&&h.jsxs("span",{className:"text",children:[h.jsx("span",{className:"sidebar-indicator leading",children:h.jsx("span",{className:"chev"+(f?" open":""),children:"▶"})}),"Labels"]})]}),f&&!r&&h.jsxs("div",{style:{paddingLeft:8},children:[u.length===0&&h.jsx("div",{className:"sidebar-item",style:{color:"var(--muted)"},children:"No labels"}),u.map(ce=>h.jsxs("label",{className:"sidebar-item",style:{display:"flex",alignItems:"center",gap:8},children:[h.jsx("input",{type:"checkbox",checked:t.includes(ce.id),onChange:()=>e&&e(ce.id)}),h.jsx("span",{children:ce.name})]},ce.id)),u.length>0&&h.jsx("button",{className:"btn",onClick:n,style:{marginTop:6},children:"Clear"})]}),h.jsxs("div",{className:"sidebar-item",onClick:Me,style:{cursor:"pointer"},title:"Sorting",children:[h.jsx("span",{className:"icon","aria-hidden":!0,children:h.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:h.jsx("path",{d:"M3 18h6v-2H3v2zm0-5h12v-2H3v2zm0-7v2h18V6H3z"})})}),!r&&h.jsxs("span",{className:"text",children:[h.jsx("span",{className:"sidebar-indicator leading",children:h.jsx("span",{className:"chev"+(m?" open":""),children:"▶"})}),"Sorting"]})]}),m&&!r&&h.jsxs("div",{style:{paddingLeft:8},children:[h.jsxs("div",{className:"sidebar-item",style:{cursor:"pointer",display:"flex",justifyContent:"space-between",fontWeight:l.sortKey==="createdAt"?700:void 0},onClick:()=>te("createdAt","desc"),title:"Sort by date created",children:[h.jsx("span",{className:"text",children:"Date created"}),h.jsx("span",{className:"sidebar-indicator"+(Ae("createdAt")?"":" placeholder"),"aria-hidden":!0,children:h.jsx("span",{className:"dir"+(l.sortDir==="desc"&&Ae("createdAt")?" desc":""),children:"▲"})})]}),h.jsxs("div",{className:"sidebar-item",style:{cursor:"pointer",display:"flex",justifyContent:"space-between",fontWeight:l.sortKey==="updatedAt"?700:void 0},onClick:()=>te("updatedAt","desc"),title:"Sort by date updated",children:[h.jsx("span",{className:"text",children:"Date updated"}),h.jsx("span",{className:"sidebar-indicator"+(Ae("updatedAt")?"":" placeholder"),"aria-hidden":!0,children:h.jsx("span",{className:"dir"+(l.sortDir==="desc"&&Ae("updatedAt")?" desc":""),children:"▲"})})]}),h.jsxs("div",{className:"sidebar-item",style:{cursor:"pointer",display:"flex",justifyContent:"space-between",fontWeight:l.sortKey==="title"?700:void 0},onClick:()=>te("title","asc"),title:"Sort alphabetically by title",children:[h.jsx("span",{className:"text",children:"Alphabetical"}),h.jsx("span",{className:"sidebar-indicator"+(Ae("title")?"":" placeholder"),"aria-hidden":!0,children:h.jsx("span",{className:"dir"+(l.sortDir==="desc"&&Ae("title")?" desc":""),children:"▲"})})]}),h.jsx("div",{className:"sidebar-item",onClick:Q,style:{cursor:"pointer",marginTop:4},title:"Filters",children:h.jsxs("span",{className:"text",children:[h.jsx("span",{className:"sidebar-indicator leading",children:h.jsx("span",{className:"chev"+(y?" open":""),children:"▶"})}),"Filters"]})}),y&&h.jsxs("div",{style:{paddingLeft:10},children:[h.jsx("div",{className:"sidebar-item",style:me,title:"Coming soon",children:h.jsx("span",{className:"text",children:"Due soon"})}),h.jsx("div",{className:"sidebar-item",style:me,title:"Coming soon",children:h.jsx("span",{className:"text",children:"Least accessed"})}),h.jsx("div",{className:"sidebar-item",style:me,title:"Coming soon",children:h.jsx("span",{className:"text",children:"Most edited"})}),h.jsx("div",{className:"sidebar-item",style:me,title:"Coming soon",children:h.jsx("span",{className:"text",children:"“At risk”"})}),h.jsx("div",{style:{display:"none"},children:h.jsx("button",{onClick:()=>de("none"),children:"none"})})]}),h.jsx("div",{className:"sidebar-item",onClick:Je,style:{cursor:"pointer",marginTop:4},title:"Grouping",children:h.jsxs("span",{className:"text",children:[h.jsx("span",{className:"sidebar-indicator leading",children:h.jsx("span",{className:"chev"+(w?" open":""),children:"▶"})}),"Grouping"]})}),w&&h.jsxs("div",{style:{paddingLeft:10},children:[h.jsx("div",{className:"sidebar-item",style:{cursor:"pointer",fontWeight:l.groupBy==="week"?700:void 0},onClick:()=>ue("week"),title:"Group by week",children:h.jsx("span",{className:"text",children:"By week"})}),h.jsx("div",{className:"sidebar-item",style:{cursor:"pointer",fontWeight:l.groupBy==="month"?700:void 0},onClick:()=>ue("month"),title:"Group by month",children:h.jsx("span",{className:"text",children:"By month"})})]})]}),h.jsxs("div",{className:"sidebar-item",title:"Collections",children:[h.jsx("span",{className:"icon","aria-hidden":!0,children:h.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:h.jsx("path",{d:"M3 7h6l2 2h10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z"})})}),!r&&h.jsxs("span",{className:"text",style:{cursor:"pointer"},onClick:at,children:[h.jsx("span",{className:"sidebar-indicator leading",children:h.jsx("span",{className:"chev"+(E?" open":""),children:"▶"})}),"Collections"]})]}),E&&!r&&h.jsxs("div",{style:{paddingLeft:8},children:[h.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,marginBottom:6},children:[h.jsx("div",{style:{display:"flex",gap:6,alignItems:"center"},children:s.length>0&&h.jsxs(h.Fragment,{children:[h.jsx("button",{className:"btn",onClick:ct,title:"Back",children:"Back"}),h.jsx("button",{className:"btn",onClick:nt,title:"All notes",children:"All"})]})}),s.length>0&&h.jsx("button",{className:"btn",title:"Delete this collection",onClick:()=>{const ce=s[s.length-1];wt(Number(ce.id),String(ce.name||""))},children:"Delete"})]}),s.length>0&&h.jsx("div",{className:"sidebar-item",style:{color:"var(--muted)",fontSize:12,paddingLeft:0},title:"Current path",children:s.map(ce=>String(ce.name||"")).join(" / ")}),h.jsx("div",{className:"sidebar-item"+(s.length?"":" active"),style:{cursor:"pointer"},onClick:()=>{nt()},title:"Show all notes",children:h.jsx("span",{className:"text",children:"All notes"})}),z&&h.jsx("div",{className:"sidebar-item",style:{color:"var(--muted)"},children:"Loading…"}),!z&&M.length===0&&h.jsx("div",{className:"sidebar-item",style:{color:"var(--muted)"},children:"No collections"}),M.map(ce=>h.jsxs("div",{className:"sidebar-item",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[h.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer",flex:1,minWidth:0},onClick:()=>{$t(ce.id,ce.name)},title:ce.name,children:[h.jsx("span",{className:"text",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:ce.name}),typeof ce.noteCount=="number"&&h.jsxs("span",{style:{color:"var(--muted)",fontSize:12},children:["(",ce.noteCount,")"]})]}),h.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[h.jsx("button",{className:"btn",title:"Rename",onClick:Ee=>{Ee.stopPropagation(),Bt(ce.id,ce.name)},children:"Rename"}),h.jsx("button",{className:"btn",title:"Delete",onClick:Ee=>{Ee.stopPropagation(),wt(ce.id,ce.name)},children:"✕"})]})]},ce.id)),h.jsxs("div",{style:{display:"flex",gap:6,marginTop:6},children:[h.jsx("input",{value:L,onChange:ce=>H(ce.target.value),placeholder:"New collection",style:{flex:1,minWidth:0,padding:"6px 8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--panel)",color:"var(--text)"},onKeyDown:ce=>{ce.key==="Enter"&&At()}}),h.jsx("button",{className:"btn",onClick:At,disabled:!L.trim(),children:"Add"})]})]}),h.jsxs("div",{className:"sidebar-item",title:"Archive",children:[h.jsx("span",{className:"icon","aria-hidden":!0,children:h.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:h.jsx("path",{d:"M20.54 5.23L19.4 4H4.6L3.46 5.23 3 6v2h18V6l-.46-.77zM6 10v9h12V10H6zm3 2h6v2H9v-2z"})})}),!r&&h.jsx("span",{className:"text",children:"Archive"})]}),h.jsxs("div",{className:"sidebar-item",title:"Bin",children:[h.jsx("span",{className:"icon","aria-hidden":!0,children:h.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M4 7h16"}),h.jsx("path",{d:"M6 7l1 12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-12"}),h.jsx("path",{d:"M9 7V5h6v2"})]})}),!r&&h.jsx("span",{className:"text",children:"Bin"})]})]})})}const Hm=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Dc(t){const e=Object.prototype.toString.call(t);return e==="[object Window]"||e==="[object global]"}function Cb(t){return"nodeType"in t}function qr(t){var e,n;return t?Dc(t)?t:Cb(t)&&(e=(n=t.ownerDocument)==null?void 0:n.defaultView)!=null?e:window:window}function Eb(t){const{Document:e}=qr(t);return t instanceof e}function Vd(t){return Dc(t)?!1:t instanceof qr(t).HTMLElement}function UA(t){return t instanceof qr(t).SVGElement}function Oc(t){return t?Dc(t)?t.document:Cb(t)?Eb(t)?t:Vd(t)||UA(t)?t.ownerDocument:document:document:document}const lo=Hm?b.useLayoutEffect:b.useEffect;function Vm(t){const e=b.useRef(t);return lo(()=>{e.current=t}),b.useCallback(function(){for(var n=arguments.length,r=new Array(n),i=0;i{t.current=setInterval(r,i)},[]),n=b.useCallback(()=>{t.current!==null&&(clearInterval(t.current),t.current=null)},[]);return[e,n]}function cd(t,e){e===void 0&&(e=[t]);const n=b.useRef(t);return lo(()=>{n.current!==t&&(n.current=t)},e),n}function Wd(t,e){const n=b.useRef();return b.useMemo(()=>{const r=t(n.current);return n.current=r,r},[...e])}function ap(t){const e=Vm(t),n=b.useRef(null),r=b.useCallback(i=>{i!==n.current&&(e==null||e(i,n.current)),n.current=i},[]);return[n,r]}function cp(t){const e=b.useRef();return b.useEffect(()=>{e.current=t},[t]),e.current}let dy={};function Wm(t,e){return b.useMemo(()=>{if(e)return e;const n=dy[t]==null?0:dy[t]+1;return dy[t]=n,t+"-"+n},[t,e])}function HA(t){return function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i{const l=Object.entries(o);for(const[a,c]of l){const u=s[a];u!=null&&(s[a]=u+t*c)}return s},{...e})}}const Ya=HA(1),up=HA(-1);function T_(t){return"clientX"in t&&"clientY"in t}function Nb(t){if(!t)return!1;const{KeyboardEvent:e}=qr(t.target);return e&&t instanceof e}function A_(t){if(!t)return!1;const{TouchEvent:e}=qr(t.target);return e&&t instanceof e}function dp(t){if(A_(t)){if(t.touches&&t.touches.length){const{clientX:e,clientY:n}=t.touches[0];return{x:e,y:n}}else if(t.changedTouches&&t.changedTouches.length){const{clientX:e,clientY:n}=t.changedTouches[0];return{x:e,y:n}}}return T_(t)?{x:t.clientX,y:t.clientY}:null}const ud=Object.freeze({Translate:{toString(t){if(!t)return;const{x:e,y:n}=t;return"translate3d("+(e?Math.round(e):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(t){if(!t)return;const{scaleX:e,scaleY:n}=t;return"scaleX("+e+") scaleY("+n+")"}},Transform:{toString(t){if(t)return[ud.Translate.toString(t),ud.Scale.toString(t)].join(" ")}},Transition:{toString(t){let{property:e,duration:n,easing:r}=t;return e+" "+n+"ms "+r}}}),rS="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function M_(t){return t.matches(rS)?t:t.querySelector(rS)}const I_={display:"none"};function R_(t){let{id:e,value:n}=t;return B.createElement("div",{id:e,style:I_},n)}function D_(t){let{id:e,announcement:n,ariaLiveType:r="assertive"}=t;const i={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return B.createElement("div",{id:e,style:i,role:"status","aria-live":r,"aria-atomic":!0},n)}function O_(){const[t,e]=b.useState("");return{announce:b.useCallback(r=>{r!=null&&e(r)},[]),announcement:t}}const VA=b.createContext(null);function j_(t){const e=b.useContext(VA);b.useEffect(()=>{if(!e)throw new Error("useDndMonitor must be used within a children of ");return e(t)},[t,e])}function P_(){const[t]=b.useState(()=>new Set),e=b.useCallback(r=>(t.add(r),()=>t.delete(r)),[t]);return[b.useCallback(r=>{let{type:i,event:s}=r;t.forEach(o=>{var l;return(l=o[i])==null?void 0:l.call(o,s)})},[t]),e]}const L_={draggable:` - To pick up a draggable item, press the space bar. - While dragging, use the arrow keys to move the item. - Press space again to drop the item in its new position, or press escape to cancel. - `},__={onDragStart(t){let{active:e}=t;return"Picked up draggable item "+e.id+"."},onDragOver(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was moved over droppable area "+n.id+".":"Draggable item "+e.id+" is no longer over a droppable area."},onDragEnd(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was dropped over droppable area "+n.id:"Draggable item "+e.id+" was dropped."},onDragCancel(t){let{active:e}=t;return"Dragging was cancelled. Draggable item "+e.id+" was dropped."}};function z_(t){let{announcements:e=__,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=L_}=t;const{announce:s,announcement:o}=O_(),l=Wm("DndLiveRegion"),[a,c]=b.useState(!1);if(b.useEffect(()=>{c(!0)},[]),j_(b.useMemo(()=>({onDragStart(d){let{active:f}=d;s(e.onDragStart({active:f}))},onDragMove(d){let{active:f,over:p}=d;e.onDragMove&&s(e.onDragMove({active:f,over:p}))},onDragOver(d){let{active:f,over:p}=d;s(e.onDragOver({active:f,over:p}))},onDragEnd(d){let{active:f,over:p}=d;s(e.onDragEnd({active:f,over:p}))},onDragCancel(d){let{active:f,over:p}=d;s(e.onDragCancel({active:f,over:p}))}}),[s,e])),!a)return null;const u=B.createElement(B.Fragment,null,B.createElement(R_,{id:r,value:i.draggable}),B.createElement(D_,{id:l,announcement:o}));return n?zn.createPortal(u,n):u}var Xn;(function(t){t.DragStart="dragStart",t.DragMove="dragMove",t.DragEnd="dragEnd",t.DragCancel="dragCancel",t.DragOver="dragOver",t.RegisterDroppable="registerDroppable",t.SetDroppableDisabled="setDroppableDisabled",t.UnregisterDroppable="unregisterDroppable"})(Xn||(Xn={}));function fp(){}function iS(t,e){return b.useMemo(()=>({sensor:t,options:e??{}}),[t,e])}function F_(){for(var t=arguments.length,e=new Array(t),n=0;n[...e].filter(r=>r!=null),[...e])}const ts=Object.freeze({x:0,y:0});function $_(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function B_(t,e){const n=dp(t);if(!n)return"0 0";const r={x:(n.x-e.left)/e.width*100,y:(n.y-e.top)/e.height*100};return r.x+"% "+r.y+"%"}function U_(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return n-r}function H_(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return r-n}function V_(t){let{left:e,top:n,height:r,width:i}=t;return[{x:e,y:n},{x:e+i,y:n},{x:e,y:n+r},{x:e+i,y:n+r}]}function W_(t,e){if(!t||t.length===0)return null;const[n]=t;return n[e]}function K_(t,e){const n=Math.max(e.top,t.top),r=Math.max(e.left,t.left),i=Math.min(e.left+e.width,t.left+t.width),s=Math.min(e.top+e.height,t.top+t.height),o=i-r,l=s-n;if(r{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const i=[];for(const s of r){const{id:o}=s,l=n.get(o);if(l){const a=K_(l,e);a>0&&i.push({id:o,data:{droppableContainer:s,value:a}})}}return i.sort(H_)};function q_(t,e){const{top:n,left:r,bottom:i,right:s}=e;return n<=t.y&&t.y<=i&&r<=t.x&&t.x<=s}const J_=t=>{let{droppableContainers:e,droppableRects:n,pointerCoordinates:r}=t;if(!r)return[];const i=[];for(const s of e){const{id:o}=s,l=n.get(o);if(l&&q_(r,l)){const c=V_(l).reduce((d,f)=>d+$_(r,f),0),u=Number((c/4).toFixed(4));i.push({id:o,data:{droppableContainer:s,value:u}})}}return i.sort(U_)};function G_(t,e,n){return{...t,scaleX:e&&n?e.width/n.width:1,scaleY:e&&n?e.height/n.height:1}}function WA(t,e){return t&&e?{x:t.left-e.left,y:t.top-e.top}:ts}function X_(t){return function(n){for(var r=arguments.length,i=new Array(r>1?r-1:0),s=1;s({...o,top:o.top+t*l.y,bottom:o.bottom+t*l.y,left:o.left+t*l.x,right:o.right+t*l.x}),{...n})}}const Q_=X_(1);function KA(t){if(t.startsWith("matrix3d(")){const e=t.slice(9,-1).split(/, /);return{x:+e[12],y:+e[13],scaleX:+e[0],scaleY:+e[5]}}else if(t.startsWith("matrix(")){const e=t.slice(7,-1).split(/, /);return{x:+e[4],y:+e[5],scaleX:+e[0],scaleY:+e[3]}}return null}function Z_(t,e,n){const r=KA(e);if(!r)return t;const{scaleX:i,scaleY:s,x:o,y:l}=r,a=t.left-o-(1-i)*parseFloat(n),c=t.top-l-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),u=i?t.width/i:t.width,d=s?t.height/s:t.height;return{width:u,height:d,top:c,right:a+u,bottom:c+d,left:a}}const e3={ignoreTransform:!1};function Kd(t,e){e===void 0&&(e=e3);let n=t.getBoundingClientRect();if(e.ignoreTransform){const{transform:c,transformOrigin:u}=qr(t).getComputedStyle(t);c&&(n=Z_(n,c,u))}const{top:r,left:i,width:s,height:o,bottom:l,right:a}=n;return{top:r,left:i,width:s,height:o,bottom:l,right:a}}function sS(t){return Kd(t,{ignoreTransform:!0})}function t3(t){const e=t.innerWidth,n=t.innerHeight;return{top:0,left:0,right:e,bottom:n,width:e,height:n}}function n3(t,e){return e===void 0&&(e=qr(t).getComputedStyle(t)),e.position==="fixed"}function r3(t,e){e===void 0&&(e=qr(t).getComputedStyle(t));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(i=>{const s=e[i];return typeof s=="string"?n.test(s):!1})}function Tb(t,e){const n=[];function r(i){if(e!=null&&n.length>=e||!i)return n;if(Eb(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!Vd(i)||UA(i)||n.includes(i))return n;const s=qr(t).getComputedStyle(i);return i!==t&&r3(i,s)&&n.push(i),n3(i,s)?n:r(i.parentNode)}return t?r(t):n}function YA(t){const[e]=Tb(t,1);return e??null}function fy(t){return!Hm||!t?null:Dc(t)?t:Cb(t)?Eb(t)||t===Oc(t).scrollingElement?window:Vd(t)?t:null:null}function qA(t){return Dc(t)?t.scrollX:t.scrollLeft}function JA(t){return Dc(t)?t.scrollY:t.scrollTop}function c0(t){return{x:qA(t),y:JA(t)}}var sr;(function(t){t[t.Forward=1]="Forward",t[t.Backward=-1]="Backward"})(sr||(sr={}));function GA(t){return!Hm||!t?!1:t===document.scrollingElement}function XA(t){const e={x:0,y:0},n=GA(t)?{height:window.innerHeight,width:window.innerWidth}:{height:t.clientHeight,width:t.clientWidth},r={x:t.scrollWidth-n.width,y:t.scrollHeight-n.height},i=t.scrollTop<=e.y,s=t.scrollLeft<=e.x,o=t.scrollTop>=r.y,l=t.scrollLeft>=r.x;return{isTop:i,isLeft:s,isBottom:o,isRight:l,maxScroll:r,minScroll:e}}const i3={x:.2,y:.2};function s3(t,e,n,r,i){let{top:s,left:o,right:l,bottom:a}=n;r===void 0&&(r=10),i===void 0&&(i=i3);const{isTop:c,isBottom:u,isLeft:d,isRight:f}=XA(t),p={x:0,y:0},m={x:0,y:0},g={height:e.height*i.y,width:e.width*i.x};return!c&&s<=e.top+g.height?(p.y=sr.Backward,m.y=r*Math.abs((e.top+g.height-s)/g.height)):!u&&a>=e.bottom-g.height&&(p.y=sr.Forward,m.y=r*Math.abs((e.bottom-g.height-a)/g.height)),!f&&l>=e.right-g.width?(p.x=sr.Forward,m.x=r*Math.abs((e.right-g.width-l)/g.width)):!d&&o<=e.left+g.width&&(p.x=sr.Backward,m.x=r*Math.abs((e.left+g.width-o)/g.width)),{direction:p,speed:m}}function o3(t){if(t===document.scrollingElement){const{innerWidth:s,innerHeight:o}=window;return{top:0,left:0,right:s,bottom:o,width:s,height:o}}const{top:e,left:n,right:r,bottom:i}=t.getBoundingClientRect();return{top:e,left:n,right:r,bottom:i,width:t.clientWidth,height:t.clientHeight}}function QA(t){return t.reduce((e,n)=>Ya(e,c0(n)),ts)}function l3(t){return t.reduce((e,n)=>e+qA(n),0)}function a3(t){return t.reduce((e,n)=>e+JA(n),0)}function ZA(t,e){if(e===void 0&&(e=Kd),!t)return;const{top:n,left:r,bottom:i,right:s}=e(t);YA(t)&&(i<=0||s<=0||n>=window.innerHeight||r>=window.innerWidth)&&t.scrollIntoView({block:"center",inline:"center"})}const c3=[["x",["left","right"],l3],["y",["top","bottom"],a3]];class Ab{constructor(e,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=Tb(n),i=QA(r);this.rect={...e},this.width=e.width,this.height=e.height;for(const[s,o,l]of c3)for(const a of o)Object.defineProperty(this,a,{get:()=>{const c=l(r),u=i[s]-c;return this.rect[a]+u},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Tu{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=e}add(e,n,r){var i;(i=this.target)==null||i.addEventListener(e,n,r),this.listeners.push([e,n,r])}}function u3(t){const{EventTarget:e}=qr(t);return t instanceof e?t:Oc(t)}function hy(t,e){const n=Math.abs(t.x),r=Math.abs(t.y);return typeof e=="number"?Math.sqrt(n**2+r**2)>e:"x"in e&&"y"in e?n>e.x&&r>e.y:"x"in e?n>e.x:"y"in e?r>e.y:!1}var ki;(function(t){t.Click="click",t.DragStart="dragstart",t.Keydown="keydown",t.ContextMenu="contextmenu",t.Resize="resize",t.SelectionChange="selectionchange",t.VisibilityChange="visibilitychange"})(ki||(ki={}));function oS(t){t.preventDefault()}function d3(t){t.stopPropagation()}var gn;(function(t){t.Space="Space",t.Down="ArrowDown",t.Right="ArrowRight",t.Left="ArrowLeft",t.Up="ArrowUp",t.Esc="Escape",t.Enter="Enter",t.Tab="Tab"})(gn||(gn={}));const eM={start:[gn.Space,gn.Enter],cancel:[gn.Esc],end:[gn.Space,gn.Enter,gn.Tab]},f3=(t,e)=>{let{currentCoordinates:n}=e;switch(t.code){case gn.Right:return{...n,x:n.x+25};case gn.Left:return{...n,x:n.x-25};case gn.Down:return{...n,y:n.y+25};case gn.Up:return{...n,y:n.y-25}}};class tM{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:n}}=e;this.props=e,this.listeners=new Tu(Oc(n)),this.windowListeners=new Tu(qr(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(ki.Resize,this.handleCancel),this.windowListeners.add(ki.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(ki.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:n}=this.props,r=e.node.current;r&&ZA(r),n(ts)}handleKeyDown(e){if(Nb(e)){const{active:n,context:r,options:i}=this.props,{keyboardCodes:s=eM,coordinateGetter:o=f3,scrollBehavior:l="smooth"}=i,{code:a}=e;if(s.end.includes(a)){this.handleEnd(e);return}if(s.cancel.includes(a)){this.handleCancel(e);return}const{collisionRect:c}=r.current,u=c?{x:c.left,y:c.top}:ts;this.referenceCoordinates||(this.referenceCoordinates=u);const d=o(e,{active:n,context:r.current,currentCoordinates:u});if(d){const f=up(d,u),p={x:0,y:0},{scrollableAncestors:m}=r.current;for(const g of m){const y=e.code,{isTop:v,isRight:w,isLeft:x,isBottom:E,maxScroll:k,minScroll:M}=XA(g),N=o3(g),z={x:Math.min(y===gn.Right?N.right-N.width/2:N.right,Math.max(y===gn.Right?N.left:N.left+N.width/2,d.x)),y:Math.min(y===gn.Down?N.bottom-N.height/2:N.bottom,Math.max(y===gn.Down?N.top:N.top+N.height/2,d.y))},X=y===gn.Right&&!w||y===gn.Left&&!x,L=y===gn.Down&&!E||y===gn.Up&&!v;if(X&&z.x!==d.x){const H=g.scrollLeft+f.x,W=y===gn.Right&&H<=k.x||y===gn.Left&&H>=M.x;if(W&&!f.y){g.scrollTo({left:H,behavior:l});return}W?p.x=g.scrollLeft-H:p.x=y===gn.Right?g.scrollLeft-k.x:g.scrollLeft-M.x,p.x&&g.scrollBy({left:-p.x,behavior:l});break}else if(L&&z.y!==d.y){const H=g.scrollTop+f.y,W=y===gn.Down&&H<=k.y||y===gn.Up&&H>=M.y;if(W&&!f.x){g.scrollTo({top:H,behavior:l});return}W?p.y=g.scrollTop-H:p.y=y===gn.Down?g.scrollTop-k.y:g.scrollTop-M.y,p.y&&g.scrollBy({top:-p.y,behavior:l});break}}this.handleMove(e,Ya(up(d,this.referenceCoordinates),p))}}}handleMove(e,n){const{onMove:r}=this.props;e.preventDefault(),r(n)}handleEnd(e){const{onEnd:n}=this.props;e.preventDefault(),this.detach(),n()}handleCancel(e){const{onCancel:n}=this.props;e.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}tM.activators=[{eventName:"onKeyDown",handler:(t,e,n)=>{let{keyboardCodes:r=eM,onActivation:i}=e,{active:s}=n;const{code:o}=t.nativeEvent;if(r.start.includes(o)){const l=s.activatorNode.current;return l&&t.target!==l?!1:(t.preventDefault(),i==null||i({event:t.nativeEvent}),!0)}return!1}}];function lS(t){return!!(t&&"distance"in t)}function aS(t){return!!(t&&"delay"in t)}class Mb{constructor(e,n,r){var i;r===void 0&&(r=u3(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=n;const{event:s}=e,{target:o}=s;this.props=e,this.events=n,this.document=Oc(o),this.documentListeners=new Tu(this.document),this.listeners=new Tu(r),this.windowListeners=new Tu(qr(o)),this.initialCoordinates=(i=dp(s))!=null?i:ts,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(ki.Resize,this.handleCancel),this.windowListeners.add(ki.DragStart,oS),this.windowListeners.add(ki.VisibilityChange,this.handleCancel),this.windowListeners.add(ki.ContextMenu,oS),this.documentListeners.add(ki.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(aS(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(lS(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,n){const{active:r,onPending:i}=this.props;i(r,e,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:e}=this,{onStart:n}=this.props;e&&(this.activated=!0,this.documentListeners.add(ki.Click,d3,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(ki.SelectionChange,this.removeTextSelection),n(e))}handleMove(e){var n;const{activated:r,initialCoordinates:i,props:s}=this,{onMove:o,options:{activationConstraint:l}}=s;if(!i)return;const a=(n=dp(e))!=null?n:ts,c=up(i,a);if(!r&&l){if(lS(l)){if(l.tolerance!=null&&hy(c,l.tolerance))return this.handleCancel();if(hy(c,l.distance))return this.handleStart()}if(aS(l)&&hy(c,l.tolerance))return this.handleCancel();this.handlePending(l,c);return}e.cancelable&&e.preventDefault(),o(a)}handleEnd(){const{onAbort:e,onEnd:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleCancel(){const{onAbort:e,onCancel:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleKeydown(e){e.code===gn.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}}const h3={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class nM extends Mb{constructor(e){const{event:n}=e,r=Oc(n.target);super(e,h3,r)}}nM.activators=[{eventName:"onPointerDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const p3={move:{name:"mousemove"},end:{name:"mouseup"}};var u0;(function(t){t[t.RightClick=2]="RightClick"})(u0||(u0={}));class rM extends Mb{constructor(e){super(e,p3,Oc(e.event.target))}}rM.activators=[{eventName:"onMouseDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return n.button===u0.RightClick?!1:(r==null||r({event:n}),!0)}}];const py={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class iM extends Mb{constructor(e){super(e,py)}static setup(){return window.addEventListener(py.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(py.move.name,e)};function e(){}}}iM.activators=[{eventName:"onTouchStart",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;const{touches:i}=n;return i.length>1?!1:(r==null||r({event:n}),!0)}}];var Au;(function(t){t[t.Pointer=0]="Pointer",t[t.DraggableRect=1]="DraggableRect"})(Au||(Au={}));var hp;(function(t){t[t.TreeOrder=0]="TreeOrder",t[t.ReversedTreeOrder=1]="ReversedTreeOrder"})(hp||(hp={}));function m3(t){let{acceleration:e,activator:n=Au.Pointer,canScroll:r,draggingRect:i,enabled:s,interval:o=5,order:l=hp.TreeOrder,pointerCoordinates:a,scrollableAncestors:c,scrollableAncestorRects:u,delta:d,threshold:f}=t;const p=y3({delta:d,disabled:!s}),[m,g]=N_(),y=b.useRef({x:0,y:0}),v=b.useRef({x:0,y:0}),w=b.useMemo(()=>{switch(n){case Au.Pointer:return a?{top:a.y,bottom:a.y,left:a.x,right:a.x}:null;case Au.DraggableRect:return i}},[n,i,a]),x=b.useRef(null),E=b.useCallback(()=>{const M=x.current;if(!M)return;const N=y.current.x*v.current.x,z=y.current.y*v.current.y;M.scrollBy(N,z)},[]),k=b.useMemo(()=>l===hp.TreeOrder?[...c].reverse():c,[l,c]);b.useEffect(()=>{if(!s||!c.length||!w){g();return}for(const M of k){if((r==null?void 0:r(M))===!1)continue;const N=c.indexOf(M),z=u[N];if(!z)continue;const{direction:X,speed:L}=s3(M,z,w,e,f);for(const H of["x","y"])p[H][X[H]]||(L[H]=0,X[H]=0);if(L.x>0||L.y>0){g(),x.current=M,m(E,o),y.current=L,v.current=X;return}}y.current={x:0,y:0},v.current={x:0,y:0},g()},[e,E,r,g,s,o,JSON.stringify(w),JSON.stringify(p),m,c,k,u,JSON.stringify(f)])}const g3={x:{[sr.Backward]:!1,[sr.Forward]:!1},y:{[sr.Backward]:!1,[sr.Forward]:!1}};function y3(t){let{delta:e,disabled:n}=t;const r=cp(e);return Wd(i=>{if(n||!r||!i)return g3;const s={x:Math.sign(e.x-r.x),y:Math.sign(e.y-r.y)};return{x:{[sr.Backward]:i.x[sr.Backward]||s.x===-1,[sr.Forward]:i.x[sr.Forward]||s.x===1},y:{[sr.Backward]:i.y[sr.Backward]||s.y===-1,[sr.Forward]:i.y[sr.Forward]||s.y===1}}},[n,e,r])}function v3(t,e){const n=e!=null?t.get(e):void 0,r=n?n.node.current:null;return Wd(i=>{var s;return e==null?null:(s=r??i)!=null?s:null},[r,e])}function w3(t,e){return b.useMemo(()=>t.reduce((n,r)=>{const{sensor:i}=r,s=i.activators.map(o=>({eventName:o.eventName,handler:e(o.handler,r)}));return[...n,...s]},[]),[t,e])}var dd;(function(t){t[t.Always=0]="Always",t[t.BeforeDragging=1]="BeforeDragging",t[t.WhileDragging=2]="WhileDragging"})(dd||(dd={}));var d0;(function(t){t.Optimized="optimized"})(d0||(d0={}));const cS=new Map;function b3(t,e){let{dragging:n,dependencies:r,config:i}=e;const[s,o]=b.useState(null),{frequency:l,measure:a,strategy:c}=i,u=b.useRef(t),d=y(),f=cd(d),p=b.useCallback(function(v){v===void 0&&(v=[]),!f.current&&o(w=>w===null?v:w.concat(v.filter(x=>!w.includes(x))))},[f]),m=b.useRef(null),g=Wd(v=>{if(d&&!n)return cS;if(!v||v===cS||u.current!==t||s!=null){const w=new Map;for(let x of t){if(!x)continue;if(s&&s.length>0&&!s.includes(x.id)&&x.rect.current){w.set(x.id,x.rect.current);continue}const E=x.node.current,k=E?new Ab(a(E),E):null;x.rect.current=k,k&&w.set(x.id,k)}return w}return v},[t,s,n,d,a]);return b.useEffect(()=>{u.current=t},[t]),b.useEffect(()=>{d||p()},[n,d]),b.useEffect(()=>{s&&s.length>0&&o(null)},[JSON.stringify(s)]),b.useEffect(()=>{d||typeof l!="number"||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},l))},[l,d,p,...r]),{droppableRects:g,measureDroppableContainers:p,measuringScheduled:s!=null};function y(){switch(c){case dd.Always:return!1;case dd.BeforeDragging:return n;default:return!n}}}function Ib(t,e){return Wd(n=>t?n||(typeof e=="function"?e(t):t):null,[e,t])}function x3(t,e){return Ib(t,e)}function k3(t){let{callback:e,disabled:n}=t;const r=Vm(e),i=b.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(r)},[r,n]);return b.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function Km(t){let{callback:e,disabled:n}=t;const r=Vm(e),i=b.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(r)},[n]);return b.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function S3(t){return new Ab(Kd(t),t)}function uS(t,e,n){e===void 0&&(e=S3);const[r,i]=b.useState(null);function s(){i(a=>{if(!t)return null;if(t.isConnected===!1){var c;return(c=a??n)!=null?c:null}const u=e(t);return JSON.stringify(a)===JSON.stringify(u)?a:u})}const o=k3({callback(a){if(t)for(const c of a){const{type:u,target:d}=c;if(u==="childList"&&d instanceof HTMLElement&&d.contains(t)){s();break}}}}),l=Km({callback:s});return lo(()=>{s(),t?(l==null||l.observe(t),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),o==null||o.disconnect())},[t]),r}function C3(t){const e=Ib(t);return WA(t,e)}const dS=[];function E3(t){const e=b.useRef(t),n=Wd(r=>t?r&&r!==dS&&t&&e.current&&t.parentNode===e.current.parentNode?r:Tb(t):dS,[t]);return b.useEffect(()=>{e.current=t},[t]),n}function N3(t){const[e,n]=b.useState(null),r=b.useRef(t),i=b.useCallback(s=>{const o=fy(s.target);o&&n(l=>l?(l.set(o,c0(o)),new Map(l)):null)},[]);return b.useEffect(()=>{const s=r.current;if(t!==s){o(s);const l=t.map(a=>{const c=fy(a);return c?(c.addEventListener("scroll",i,{passive:!0}),[c,c0(c)]):null}).filter(a=>a!=null);n(l.length?new Map(l):null),r.current=t}return()=>{o(t),o(s)};function o(l){l.forEach(a=>{const c=fy(a);c==null||c.removeEventListener("scroll",i)})}},[i,t]),b.useMemo(()=>t.length?e?Array.from(e.values()).reduce((s,o)=>Ya(s,o),ts):QA(t):ts,[t,e])}function fS(t,e){e===void 0&&(e=[]);const n=b.useRef(null);return b.useEffect(()=>{n.current=null},e),b.useEffect(()=>{const r=t!==ts;r&&!n.current&&(n.current=t),!r&&n.current&&(n.current=null)},[t]),n.current?up(t,n.current):ts}function T3(t){b.useEffect(()=>{if(!Hm)return;const e=t.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of e)n==null||n()}},t.map(e=>{let{sensor:n}=e;return n}))}function A3(t,e){return b.useMemo(()=>t.reduce((n,r)=>{let{eventName:i,handler:s}=r;return n[i]=o=>{s(o,e)},n},{}),[t,e])}function sM(t){return b.useMemo(()=>t?t3(t):null,[t])}const hS=[];function M3(t,e){e===void 0&&(e=Kd);const[n]=t,r=sM(n?qr(n):null),[i,s]=b.useState(hS);function o(){s(()=>t.length?t.map(a=>GA(a)?r:new Ab(e(a),a)):hS)}const l=Km({callback:o});return lo(()=>{l==null||l.disconnect(),o(),t.forEach(a=>l==null?void 0:l.observe(a))},[t]),i}function oM(t){if(!t)return null;if(t.children.length>1)return t;const e=t.children[0];return Vd(e)?e:t}function I3(t){let{measure:e}=t;const[n,r]=b.useState(null),i=b.useCallback(c=>{for(const{target:u}of c)if(Vd(u)){r(d=>{const f=e(u);return d?{...d,width:f.width,height:f.height}:f});break}},[e]),s=Km({callback:i}),o=b.useCallback(c=>{const u=oM(c);s==null||s.disconnect(),u&&(s==null||s.observe(u)),r(u?e(u):null)},[e,s]),[l,a]=ap(o);return b.useMemo(()=>({nodeRef:l,rect:n,setRef:a}),[n,l,a])}const R3=[{sensor:nM,options:{}},{sensor:tM,options:{}}],D3={current:{}},bh={draggable:{measure:sS},droppable:{measure:sS,strategy:dd.WhileDragging,frequency:d0.Optimized},dragOverlay:{measure:Kd}};class Mu extends Map{get(e){var n;return e!=null&&(n=super.get(e))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:n}=e;return!n})}getNodeFor(e){var n,r;return(n=(r=this.get(e))==null?void 0:r.node.current)!=null?n:void 0}}const O3={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Mu,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:fp},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:bh,measureDroppableContainers:fp,windowRect:null,measuringScheduled:!1},lM={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:fp,draggableNodes:new Map,over:null,measureDroppableContainers:fp},Yd=b.createContext(lM),aM=b.createContext(O3);function j3(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Mu}}}function P3(t,e){switch(e.type){case Xn.DragStart:return{...t,draggable:{...t.draggable,initialCoordinates:e.initialCoordinates,active:e.active}};case Xn.DragMove:return t.draggable.active==null?t:{...t,draggable:{...t.draggable,translate:{x:e.coordinates.x-t.draggable.initialCoordinates.x,y:e.coordinates.y-t.draggable.initialCoordinates.y}}};case Xn.DragEnd:case Xn.DragCancel:return{...t,draggable:{...t.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Xn.RegisterDroppable:{const{element:n}=e,{id:r}=n,i=new Mu(t.droppable.containers);return i.set(r,n),{...t,droppable:{...t.droppable,containers:i}}}case Xn.SetDroppableDisabled:{const{id:n,key:r,disabled:i}=e,s=t.droppable.containers.get(n);if(!s||r!==s.key)return t;const o=new Mu(t.droppable.containers);return o.set(n,{...s,disabled:i}),{...t,droppable:{...t.droppable,containers:o}}}case Xn.UnregisterDroppable:{const{id:n,key:r}=e,i=t.droppable.containers.get(n);if(!i||r!==i.key)return t;const s=new Mu(t.droppable.containers);return s.delete(n),{...t,droppable:{...t.droppable,containers:s}}}default:return t}}function L3(t){let{disabled:e}=t;const{active:n,activatorEvent:r,draggableNodes:i}=b.useContext(Yd),s=cp(r),o=cp(n==null?void 0:n.id);return b.useEffect(()=>{if(!e&&!r&&s&&o!=null){if(!Nb(s)||document.activeElement===s.target)return;const l=i.get(o);if(!l)return;const{activatorNode:a,node:c}=l;if(!a.current&&!c.current)return;requestAnimationFrame(()=>{for(const u of[a.current,c.current]){if(!u)continue;const d=M_(u);if(d){d.focus();break}}})}},[r,e,i,o,s]),null}function cM(t,e){let{transform:n,...r}=e;return t!=null&&t.length?t.reduce((i,s)=>s({transform:i,...r}),n):n}function _3(t){return b.useMemo(()=>({draggable:{...bh.draggable,...t==null?void 0:t.draggable},droppable:{...bh.droppable,...t==null?void 0:t.droppable},dragOverlay:{...bh.dragOverlay,...t==null?void 0:t.dragOverlay}}),[t==null?void 0:t.draggable,t==null?void 0:t.droppable,t==null?void 0:t.dragOverlay])}function z3(t){let{activeNode:e,measure:n,initialRect:r,config:i=!0}=t;const s=b.useRef(!1),{x:o,y:l}=typeof i=="boolean"?{x:i,y:i}:i;lo(()=>{if(!o&&!l||!e){s.current=!1;return}if(s.current||!r)return;const c=e==null?void 0:e.node.current;if(!c||c.isConnected===!1)return;const u=n(c),d=WA(u,r);if(o||(d.x=0),l||(d.y=0),s.current=!0,Math.abs(d.x)>0||Math.abs(d.y)>0){const f=YA(c);f&&f.scrollBy({top:d.y,left:d.x})}},[e,o,l,r,n])}const Ym=b.createContext({...ts,scaleX:1,scaleY:1});var Mo;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Initializing=1]="Initializing",t[t.Initialized=2]="Initialized"})(Mo||(Mo={}));const F3=b.memo(function(e){var n,r,i,s;let{id:o,accessibility:l,autoScroll:a=!0,children:c,sensors:u=R3,collisionDetection:d=Y_,measuring:f,modifiers:p,...m}=e;const g=b.useReducer(P3,void 0,j3),[y,v]=g,[w,x]=P_(),[E,k]=b.useState(Mo.Uninitialized),M=E===Mo.Initialized,{draggable:{active:N,nodes:z,translate:X},droppable:{containers:L}}=y,H=N!=null?z.get(N):null,W=b.useRef({initial:null,translated:null}),te=b.useMemo(()=>{var It;return N!=null?{id:N,data:(It=H==null?void 0:H.data)!=null?It:D3,rect:W}:null},[N,H]),ue=b.useRef(null),[de,Ae]=b.useState(null),[me,q]=b.useState(null),se=cd(m,Object.values(m)),xe=Wm("DndDescribedBy",o),Me=b.useMemo(()=>L.getEnabled(),[L]),Q=_3(f),{droppableRects:Je,measureDroppableContainers:_t,measuringScheduled:J}=b3(Me,{dragging:M,dependencies:[X.x,X.y],config:Q.droppable}),at=v3(z,N),$t=b.useMemo(()=>me?dp(me):null,[me]),ct=dn(),nt=x3(at,Q.draggable.measure);z3({activeNode:N!=null?z.get(N):null,config:ct.layoutShiftCompensation,initialRect:nt,measure:Q.draggable.measure});const At=uS(at,Q.draggable.measure,nt),Bt=uS(at?at.parentElement:null),wt=b.useRef({activatorEvent:null,active:null,activeNode:at,collisionRect:null,collisions:null,droppableRects:Je,draggableNodes:z,draggingNode:null,draggingNodeRect:null,droppableContainers:L,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ce=L.getNodeFor((n=wt.current.over)==null?void 0:n.id),Ee=I3({measure:Q.dragOverlay.measure}),Ke=(r=Ee.nodeRef.current)!=null?r:at,ze=M?(i=Ee.rect)!=null?i:At:null,Pe=!!(Ee.nodeRef.current&&Ee.rect),it=C3(Pe?null:At),ot=sM(Ke?qr(Ke):null),xt=E3(M?ce??at:null),oe=M3(xt),Ye=cM(p,{transform:{x:X.x-it.x,y:X.y-it.y,scaleX:1,scaleY:1},activatorEvent:me,active:te,activeNodeRect:At,containerNodeRect:Bt,draggingNodeRect:ze,over:wt.current.over,overlayNodeRect:Ee.rect,scrollableAncestors:xt,scrollableAncestorRects:oe,windowRect:ot}),Ge=$t?Ya($t,X):null,Y=N3(xt),ge=fS(Y),De=fS(Y,[At]),Be=Ya(Ye,ge),Le=ze?Q_(ze,Ye):null,j=te&&Le?d({active:te,collisionRect:Le,droppableRects:Je,droppableContainers:Me,pointerCoordinates:Ge}):null,G=W_(j,"id"),[fe,je]=b.useState(null),Ue=Pe?Ye:Ya(Ye,De),We=G_(Ue,(s=fe==null?void 0:fe.rect)!=null?s:null,At),Se=b.useRef(null),Xe=b.useCallback((It,Ot)=>{let{sensor:tn,options:ee}=Ot;if(ue.current==null)return;const re=z.get(ue.current);if(!re)return;const Oe=It.nativeEvent,Ze=new tn({active:ue.current,activeNode:re,event:Oe,options:ee,context:wt,onAbort(Ce){if(!z.get(Ce))return;const{onDragAbort:ut}=se.current,zt={id:Ce};ut==null||ut(zt),w({type:"onDragAbort",event:zt})},onPending(Ce,Fe,ut,zt){if(!z.get(Ce))return;const{onDragPending:Jt}=se.current,jt={id:Ce,constraint:Fe,initialCoordinates:ut,offset:zt};Jt==null||Jt(jt),w({type:"onDragPending",event:jt})},onStart(Ce){const Fe=ue.current;if(Fe==null)return;const ut=z.get(Fe);if(!ut)return;const{onDragStart:zt}=se.current,kt={activatorEvent:Oe,active:{id:Fe,data:ut.data,rect:W}};zn.unstable_batchedUpdates(()=>{zt==null||zt(kt),k(Mo.Initializing),v({type:Xn.DragStart,initialCoordinates:Ce,active:Fe}),w({type:"onDragStart",event:kt}),Ae(Se.current),q(Oe)})},onMove(Ce){v({type:Xn.DragMove,coordinates:Ce})},onEnd:pe(Xn.DragEnd),onCancel:pe(Xn.DragCancel)});Se.current=Ze;function pe(Ce){return async function(){const{active:ut,collisions:zt,over:kt,scrollAdjustedTranslate:Jt}=wt.current;let jt=null;if(ut&&Jt){const{cancelDrop:fn}=se.current;jt={activatorEvent:Oe,active:ut,collisions:zt,delta:Jt,over:kt},Ce===Xn.DragEnd&&typeof fn=="function"&&await Promise.resolve(fn(jt))&&(Ce=Xn.DragCancel)}ue.current=null,zn.unstable_batchedUpdates(()=>{v({type:Ce}),k(Mo.Uninitialized),je(null),Ae(null),q(null),Se.current=null;const fn=Ce===Xn.DragEnd?"onDragEnd":"onDragCancel";if(jt){const wn=se.current[fn];wn==null||wn(jt),w({type:fn,event:jt})}})}}},[z]),Tt=b.useCallback((It,Ot)=>(tn,ee)=>{const re=tn.nativeEvent,Oe=z.get(ee);if(ue.current!==null||!Oe||re.dndKit||re.defaultPrevented)return;const Ze={active:Oe};It(tn,Ot.options,Ze)===!0&&(re.dndKit={capturedBy:Ot.sensor},ue.current=ee,Xe(tn,Ot))},[z,Xe]),rt=w3(u,Tt);T3(u),lo(()=>{At&&E===Mo.Initializing&&k(Mo.Initialized)},[At,E]),b.useEffect(()=>{const{onDragMove:It}=se.current,{active:Ot,activatorEvent:tn,collisions:ee,over:re}=wt.current;if(!Ot||!tn)return;const Oe={active:Ot,activatorEvent:tn,collisions:ee,delta:{x:Be.x,y:Be.y},over:re};zn.unstable_batchedUpdates(()=>{It==null||It(Oe),w({type:"onDragMove",event:Oe})})},[Be.x,Be.y]),b.useEffect(()=>{const{active:It,activatorEvent:Ot,collisions:tn,droppableContainers:ee,scrollAdjustedTranslate:re}=wt.current;if(!It||ue.current==null||!Ot||!re)return;const{onDragOver:Oe}=se.current,Ze=ee.get(G),pe=Ze&&Ze.rect.current?{id:Ze.id,rect:Ze.rect.current,data:Ze.data,disabled:Ze.disabled}:null,Ce={active:It,activatorEvent:Ot,collisions:tn,delta:{x:re.x,y:re.y},over:pe};zn.unstable_batchedUpdates(()=>{je(pe),Oe==null||Oe(Ce),w({type:"onDragOver",event:Ce})})},[G]),lo(()=>{wt.current={activatorEvent:me,active:te,activeNode:at,collisionRect:Le,collisions:j,droppableRects:Je,draggableNodes:z,draggingNode:Ke,draggingNodeRect:ze,droppableContainers:L,over:fe,scrollableAncestors:xt,scrollAdjustedTranslate:Be},W.current={initial:ze,translated:Le}},[te,at,j,Le,z,Ke,ze,Je,L,fe,xt,Be]),m3({...ct,delta:X,draggingRect:Le,pointerCoordinates:Ge,scrollableAncestors:xt,scrollableAncestorRects:oe});const Wt=b.useMemo(()=>({active:te,activeNode:at,activeNodeRect:At,activatorEvent:me,collisions:j,containerNodeRect:Bt,dragOverlay:Ee,draggableNodes:z,droppableContainers:L,droppableRects:Je,over:fe,measureDroppableContainers:_t,scrollableAncestors:xt,scrollableAncestorRects:oe,measuringConfiguration:Q,measuringScheduled:J,windowRect:ot}),[te,at,At,me,j,Bt,Ee,z,L,Je,fe,_t,xt,oe,Q,J,ot]),Mt=b.useMemo(()=>({activatorEvent:me,activators:rt,active:te,activeNodeRect:At,ariaDescribedById:{draggable:xe},dispatch:v,draggableNodes:z,over:fe,measureDroppableContainers:_t}),[me,rt,te,At,v,xe,z,fe,_t]);return B.createElement(VA.Provider,{value:x},B.createElement(Yd.Provider,{value:Mt},B.createElement(aM.Provider,{value:Wt},B.createElement(Ym.Provider,{value:We},c)),B.createElement(L3,{disabled:(l==null?void 0:l.restoreFocus)===!1})),B.createElement(z_,{...l,hiddenTextDescribedById:xe}));function dn(){const It=(de==null?void 0:de.autoScrollEnabled)===!1,Ot=typeof a=="object"?a.enabled===!1:a===!1,tn=M&&!It&&!Ot;return typeof a=="object"?{...a,enabled:tn}:{enabled:tn}}}),$3=b.createContext(null),pS="button",B3="Draggable";function U3(t){let{id:e,data:n,disabled:r=!1,attributes:i}=t;const s=Wm(B3),{activators:o,activatorEvent:l,active:a,activeNodeRect:c,ariaDescribedById:u,draggableNodes:d,over:f}=b.useContext(Yd),{role:p=pS,roleDescription:m="draggable",tabIndex:g=0}=i??{},y=(a==null?void 0:a.id)===e,v=b.useContext(y?Ym:$3),[w,x]=ap(),[E,k]=ap(),M=A3(o,e),N=cd(n);lo(()=>(d.set(e,{id:e,key:s,node:w,activatorNode:E,data:N}),()=>{const X=d.get(e);X&&X.key===s&&d.delete(e)}),[d,e]);const z=b.useMemo(()=>({role:p,tabIndex:g,"aria-disabled":r,"aria-pressed":y&&p===pS?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,g,y,m,u.draggable]);return{active:a,activatorEvent:l,activeNodeRect:c,attributes:z,isDragging:y,listeners:r?void 0:M,node:w,over:f,setNodeRef:x,setActivatorNodeRef:k,transform:v}}function H3(){return b.useContext(aM)}const V3="Droppable",W3={timeout:25};function K3(t){let{data:e,disabled:n=!1,id:r,resizeObserverConfig:i}=t;const s=Wm(V3),{active:o,dispatch:l,over:a,measureDroppableContainers:c}=b.useContext(Yd),u=b.useRef({disabled:n}),d=b.useRef(!1),f=b.useRef(null),p=b.useRef(null),{disabled:m,updateMeasurementsFor:g,timeout:y}={...W3,...i},v=cd(g??r),w=b.useCallback(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{c(Array.isArray(v.current)?v.current:[v.current]),p.current=null},y)},[y]),x=Km({callback:w,disabled:m||!o}),E=b.useCallback((z,X)=>{x&&(X&&(x.unobserve(X),d.current=!1),z&&x.observe(z))},[x]),[k,M]=ap(E),N=cd(e);return b.useEffect(()=>{!x||!k.current||(x.disconnect(),d.current=!1,x.observe(k.current))},[k,x]),b.useEffect(()=>(l({type:Xn.RegisterDroppable,element:{id:r,key:s,disabled:n,node:k,rect:f,data:N}}),()=>l({type:Xn.UnregisterDroppable,key:s,id:r})),[r]),b.useEffect(()=>{n!==u.current.disabled&&(l({type:Xn.SetDroppableDisabled,id:r,key:s,disabled:n}),u.current.disabled=n)},[r,s,n,l]),{active:o,rect:f,isOver:(a==null?void 0:a.id)===r,node:k,over:a,setNodeRef:M}}function Y3(t){let{animation:e,children:n}=t;const[r,i]=b.useState(null),[s,o]=b.useState(null),l=cp(n);return!n&&!r&&l&&i(l),lo(()=>{if(!s)return;const a=r==null?void 0:r.key,c=r==null?void 0:r.props.id;if(a==null||c==null){i(null);return}Promise.resolve(e(c,s)).then(()=>{i(null)})},[e,r,s]),B.createElement(B.Fragment,null,n,r?b.cloneElement(r,{ref:o}):null)}const q3={x:0,y:0,scaleX:1,scaleY:1};function J3(t){let{children:e}=t;return B.createElement(Yd.Provider,{value:lM},B.createElement(Ym.Provider,{value:q3},e))}const G3={position:"fixed",touchAction:"none"},X3=t=>Nb(t)?"transform 250ms ease":void 0,Q3=b.forwardRef((t,e)=>{let{as:n,activatorEvent:r,adjustScale:i,children:s,className:o,rect:l,style:a,transform:c,transition:u=X3}=t;if(!l)return null;const d=i?c:{...c,scaleX:1,scaleY:1},f={...G3,width:l.width,height:l.height,top:l.top,left:l.left,transform:ud.Transform.toString(d),transformOrigin:i&&r?B_(r,l):void 0,transition:typeof u=="function"?u(r):u,...a};return B.createElement(n,{className:o,style:f,ref:e},s)}),Z3=t=>e=>{let{active:n,dragOverlay:r}=e;const i={},{styles:s,className:o}=t;if(s!=null&&s.active)for(const[l,a]of Object.entries(s.active))a!==void 0&&(i[l]=n.node.style.getPropertyValue(l),n.node.style.setProperty(l,a));if(s!=null&&s.dragOverlay)for(const[l,a]of Object.entries(s.dragOverlay))a!==void 0&&r.node.style.setProperty(l,a);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(const[a,c]of Object.entries(i))n.node.style.setProperty(a,c);o!=null&&o.active&&n.node.classList.remove(o.active)}},e4=t=>{let{transform:{initial:e,final:n}}=t;return[{transform:ud.Transform.toString(e)},{transform:ud.Transform.toString(n)}]},t4={duration:250,easing:"ease",keyframes:e4,sideEffects:Z3({styles:{active:{opacity:"0"}}})};function n4(t){let{config:e,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=t;return Vm((s,o)=>{if(e===null)return;const l=n.get(s);if(!l)return;const a=l.node.current;if(!a)return;const c=oM(o);if(!c)return;const{transform:u}=qr(o).getComputedStyle(o),d=KA(u);if(!d)return;const f=typeof e=="function"?e:r4(e);return ZA(a,i.draggable.measure),f({active:{id:s,data:l.data,node:a,rect:i.draggable.measure(a)},draggableNodes:n,dragOverlay:{node:o,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:d})})}function r4(t){const{duration:e,easing:n,sideEffects:r,keyframes:i}={...t4,...t};return s=>{let{active:o,dragOverlay:l,transform:a,...c}=s;if(!e)return;const u={x:l.rect.left-o.rect.left,y:l.rect.top-o.rect.top},d={scaleX:a.scaleX!==1?o.rect.width*a.scaleX/l.rect.width:1,scaleY:a.scaleY!==1?o.rect.height*a.scaleY/l.rect.height:1},f={x:a.x-u.x,y:a.y-u.y,...d},p=i({...c,active:o,dragOverlay:l,transform:{initial:a,final:f}}),[m]=p,g=p[p.length-1];if(JSON.stringify(m)===JSON.stringify(g))return;const y=r==null?void 0:r({active:o,dragOverlay:l,...c}),v=l.node.animate(p,{duration:e,easing:n,fill:"forwards"});return new Promise(w=>{v.onfinish=()=>{y==null||y(),w()}})}}let mS=0;function i4(t){return b.useMemo(()=>{if(t!=null)return mS++,mS},[t])}const s4=B.memo(t=>{let{adjustScale:e=!1,children:n,dropAnimation:r,style:i,transition:s,modifiers:o,wrapperElement:l="div",className:a,zIndex:c=999}=t;const{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggableNodes:m,droppableContainers:g,dragOverlay:y,over:v,measuringConfiguration:w,scrollableAncestors:x,scrollableAncestorRects:E,windowRect:k}=H3(),M=b.useContext(Ym),N=i4(d==null?void 0:d.id),z=cM(o,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggingNodeRect:y.rect,over:v,overlayNodeRect:y.rect,scrollableAncestors:x,scrollableAncestorRects:E,transform:M,windowRect:k}),X=Ib(f),L=n4({config:r,draggableNodes:m,droppableContainers:g,measuringConfiguration:w}),H=X?y.setRef:void 0;return B.createElement(J3,null,B.createElement(Y3,{animation:L},d&&N?B.createElement(Q3,{key:N,id:d.id,ref:H,as:l,activatorEvent:u,adjustScale:e,className:a,transition:s,rect:X,style:{zIndex:c,...i},transform:z},n):null))});/*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */const{entries:uM,setPrototypeOf:gS,isFrozen:o4,getPrototypeOf:l4,getOwnPropertyDescriptor:a4}=Object;let{freeze:Ur,seal:Li,create:f0}=Object,{apply:h0,construct:p0}=typeof Reflect<"u"&&Reflect;Ur||(Ur=function(e){return e});Li||(Li=function(e){return e});h0||(h0=function(e,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),s=2;s1?n-1:0),i=1;i1?n-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:xh;gS&&gS(t,null);let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){const s=n(i);s!==i&&(o4(e)||(e[r]=s),i=s)}t[i]=!0}return t}function p4(t){for(let e=0;e/gm),w4=Li(/\$\{[\w\W]*/gm),b4=Li(/^data-[\-\w.\u00B7-\uFFFF]+$/),x4=Li(/^aria-[\-\w]+$/),dM=Li(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),k4=Li(/^(?:\w+script|data):/i),S4=Li(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),fM=Li(/^html$/i),C4=Li(/^[a-z][.\w]*(-[.\w]+)+$/i);var kS=Object.freeze({__proto__:null,ARIA_ATTR:x4,ATTR_WHITESPACE:S4,CUSTOM_ELEMENT:C4,DATA_ATTR:b4,DOCTYPE_NAME:fM,ERB_EXPR:v4,IS_ALLOWED_URI:dM,IS_SCRIPT_OR_DATA:k4,MUSTACHE_EXPR:y4,TMPLIT_EXPR:w4});const iu={element:1,text:3,progressingInstruction:7,comment:8,document:9},E4=function(){return typeof window>"u"?null:window},N4=function(e,n){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null;const i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(r=n.getAttribute(i));const s="dompurify"+(r?"#"+r:"");try{return e.createPolicy(s,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+s+" could not be created."),null}},SS=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function hM(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:E4();const e=$=>hM($);if(e.version="3.3.1",e.removed=[],!t||!t.document||t.document.nodeType!==iu.document||!t.Element)return e.isSupported=!1,e;let{document:n}=t;const r=n,i=r.currentScript,{DocumentFragment:s,HTMLTemplateElement:o,Node:l,Element:a,NodeFilter:c,NamedNodeMap:u=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:d,DOMParser:f,trustedTypes:p}=t,m=a.prototype,g=ru(m,"cloneNode"),y=ru(m,"remove"),v=ru(m,"nextSibling"),w=ru(m,"childNodes"),x=ru(m,"parentNode");if(typeof o=="function"){const $=n.createElement("template");$.content&&$.content.ownerDocument&&(n=$.content.ownerDocument)}let E,k="";const{implementation:M,createNodeIterator:N,createDocumentFragment:z,getElementsByTagName:X}=n,{importNode:L}=r;let H=SS();e.isSupported=typeof uM=="function"&&typeof x=="function"&&M&&M.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:W,ERB_EXPR:te,TMPLIT_EXPR:ue,DATA_ATTR:de,ARIA_ATTR:Ae,IS_SCRIPT_OR_DATA:me,ATTR_WHITESPACE:q,CUSTOM_ELEMENT:se}=kS;let{IS_ALLOWED_URI:xe}=kS,Me=null;const Q=qt({},[...vS,...yy,...vy,...wy,...wS]);let Je=null;const _t=qt({},[...bS,...by,...xS,...Ff]);let J=Object.seal(f0(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),at=null,$t=null;const ct=Object.seal(f0(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let nt=!0,At=!0,Bt=!1,wt=!0,ce=!1,Ee=!0,Ke=!1,ze=!1,Pe=!1,it=!1,ot=!1,xt=!1,oe=!0,Ye=!1;const Ge="user-content-";let Y=!0,ge=!1,De={},Be=null;const Le=qt({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let j=null;const G=qt({},["audio","video","img","source","image","track"]);let fe=null;const je=qt({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ue="http://www.w3.org/1998/Math/MathML",We="http://www.w3.org/2000/svg",Se="http://www.w3.org/1999/xhtml";let Xe=Se,Tt=!1,rt=null;const Wt=qt({},[Ue,We,Se],my);let Mt=qt({},["mi","mo","mn","ms","mtext"]),dn=qt({},["annotation-xml"]);const It=qt({},["title","style","font","a","script"]);let Ot=null;const tn=["application/xhtml+xml","text/html"],ee="text/html";let re=null,Oe=null;const Ze=n.createElement("form"),pe=function(S){return S instanceof RegExp||S instanceof Function},Ce=function(){let S=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Oe&&Oe===S)){if((!S||typeof S!="object")&&(S={}),S=ps(S),Ot=tn.indexOf(S.PARSER_MEDIA_TYPE)===-1?ee:S.PARSER_MEDIA_TYPE,re=Ot==="application/xhtml+xml"?my:xh,Me=Vi(S,"ALLOWED_TAGS")?qt({},S.ALLOWED_TAGS,re):Q,Je=Vi(S,"ALLOWED_ATTR")?qt({},S.ALLOWED_ATTR,re):_t,rt=Vi(S,"ALLOWED_NAMESPACES")?qt({},S.ALLOWED_NAMESPACES,my):Wt,fe=Vi(S,"ADD_URI_SAFE_ATTR")?qt(ps(je),S.ADD_URI_SAFE_ATTR,re):je,j=Vi(S,"ADD_DATA_URI_TAGS")?qt(ps(G),S.ADD_DATA_URI_TAGS,re):G,Be=Vi(S,"FORBID_CONTENTS")?qt({},S.FORBID_CONTENTS,re):Le,at=Vi(S,"FORBID_TAGS")?qt({},S.FORBID_TAGS,re):ps({}),$t=Vi(S,"FORBID_ATTR")?qt({},S.FORBID_ATTR,re):ps({}),De=Vi(S,"USE_PROFILES")?S.USE_PROFILES:!1,nt=S.ALLOW_ARIA_ATTR!==!1,At=S.ALLOW_DATA_ATTR!==!1,Bt=S.ALLOW_UNKNOWN_PROTOCOLS||!1,wt=S.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ce=S.SAFE_FOR_TEMPLATES||!1,Ee=S.SAFE_FOR_XML!==!1,Ke=S.WHOLE_DOCUMENT||!1,it=S.RETURN_DOM||!1,ot=S.RETURN_DOM_FRAGMENT||!1,xt=S.RETURN_TRUSTED_TYPE||!1,Pe=S.FORCE_BODY||!1,oe=S.SANITIZE_DOM!==!1,Ye=S.SANITIZE_NAMED_PROPS||!1,Y=S.KEEP_CONTENT!==!1,ge=S.IN_PLACE||!1,xe=S.ALLOWED_URI_REGEXP||dM,Xe=S.NAMESPACE||Se,Mt=S.MATHML_TEXT_INTEGRATION_POINTS||Mt,dn=S.HTML_INTEGRATION_POINTS||dn,J=S.CUSTOM_ELEMENT_HANDLING||{},S.CUSTOM_ELEMENT_HANDLING&&pe(S.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(J.tagNameCheck=S.CUSTOM_ELEMENT_HANDLING.tagNameCheck),S.CUSTOM_ELEMENT_HANDLING&&pe(S.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(J.attributeNameCheck=S.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),S.CUSTOM_ELEMENT_HANDLING&&typeof S.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(J.allowCustomizedBuiltInElements=S.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ce&&(At=!1),ot&&(it=!0),De&&(Me=qt({},wS),Je=[],De.html===!0&&(qt(Me,vS),qt(Je,bS)),De.svg===!0&&(qt(Me,yy),qt(Je,by),qt(Je,Ff)),De.svgFilters===!0&&(qt(Me,vy),qt(Je,by),qt(Je,Ff)),De.mathMl===!0&&(qt(Me,wy),qt(Je,xS),qt(Je,Ff))),S.ADD_TAGS&&(typeof S.ADD_TAGS=="function"?ct.tagCheck=S.ADD_TAGS:(Me===Q&&(Me=ps(Me)),qt(Me,S.ADD_TAGS,re))),S.ADD_ATTR&&(typeof S.ADD_ATTR=="function"?ct.attributeCheck=S.ADD_ATTR:(Je===_t&&(Je=ps(Je)),qt(Je,S.ADD_ATTR,re))),S.ADD_URI_SAFE_ATTR&&qt(fe,S.ADD_URI_SAFE_ATTR,re),S.FORBID_CONTENTS&&(Be===Le&&(Be=ps(Be)),qt(Be,S.FORBID_CONTENTS,re)),S.ADD_FORBID_CONTENTS&&(Be===Le&&(Be=ps(Be)),qt(Be,S.ADD_FORBID_CONTENTS,re)),Y&&(Me["#text"]=!0),Ke&&qt(Me,["html","head","body"]),Me.table&&(qt(Me,["tbody"]),delete at.tbody),S.TRUSTED_TYPES_POLICY){if(typeof S.TRUSTED_TYPES_POLICY.createHTML!="function")throw nu('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof S.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw nu('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=S.TRUSTED_TYPES_POLICY,k=E.createHTML("")}else E===void 0&&(E=N4(p,i)),E!==null&&typeof k=="string"&&(k=E.createHTML(""));Ur&&Ur(S),Oe=S}},Fe=qt({},[...yy,...vy,...m4]),ut=qt({},[...wy,...g4]),zt=function(S){let V=x(S);(!V||!V.tagName)&&(V={namespaceURI:Xe,tagName:"template"});const he=xh(S.tagName),tt=xh(V.tagName);return rt[S.namespaceURI]?S.namespaceURI===We?V.namespaceURI===Se?he==="svg":V.namespaceURI===Ue?he==="svg"&&(tt==="annotation-xml"||Mt[tt]):!!Fe[he]:S.namespaceURI===Ue?V.namespaceURI===Se?he==="math":V.namespaceURI===We?he==="math"&&dn[tt]:!!ut[he]:S.namespaceURI===Se?V.namespaceURI===We&&!dn[tt]||V.namespaceURI===Ue&&!Mt[tt]?!1:!ut[he]&&(It[he]||!Fe[he]):!!(Ot==="application/xhtml+xml"&&rt[S.namespaceURI]):!1},kt=function(S){eu(e.removed,{element:S});try{x(S).removeChild(S)}catch{y(S)}},Jt=function(S,V){try{eu(e.removed,{attribute:V.getAttributeNode(S),from:V})}catch{eu(e.removed,{attribute:null,from:V})}if(V.removeAttribute(S),S==="is")if(it||ot)try{kt(V)}catch{}else try{V.setAttribute(S,"")}catch{}},jt=function(S){let V=null,he=null;if(Pe)S=""+S;else{const Kt=gy(S,/^[\r\n\t ]+/);he=Kt&&Kt[0]}Ot==="application/xhtml+xml"&&Xe===Se&&(S=''+S+"");const tt=E?E.createHTML(S):S;if(Xe===Se)try{V=new f().parseFromString(tt,Ot)}catch{}if(!V||!V.documentElement){V=M.createDocument(Xe,"template",null);try{V.documentElement.innerHTML=Tt?k:tt}catch{}}const Ft=V.body||V.documentElement;return S&&he&&Ft.insertBefore(n.createTextNode(he),Ft.childNodes[0]||null),Xe===Se?X.call(V,Ke?"html":"body")[0]:Ke?V.documentElement:Ft},fn=function(S){return N.call(S.ownerDocument||S,S,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},wn=function(S){return S instanceof d&&(typeof S.nodeName!="string"||typeof S.textContent!="string"||typeof S.removeChild!="function"||!(S.attributes instanceof u)||typeof S.removeAttribute!="function"||typeof S.setAttribute!="function"||typeof S.namespaceURI!="string"||typeof S.insertBefore!="function"||typeof S.hasChildNodes!="function")},nn=function(S){return typeof l=="function"&&S instanceof l};function rn($,S,V){zf($,he=>{he.call(e,S,V,Oe)})}const Pr=function(S){let V=null;if(rn(H.beforeSanitizeElements,S,null),wn(S))return kt(S),!0;const he=re(S.nodeName);if(rn(H.uponSanitizeElement,S,{tagName:he,allowedTags:Me}),Ee&&S.hasChildNodes()&&!nn(S.firstElementChild)&&Lr(/<[/\w!]/g,S.innerHTML)&&Lr(/<[/\w!]/g,S.textContent)||S.nodeType===iu.progressingInstruction||Ee&&S.nodeType===iu.comment&&Lr(/<[/\w]/g,S.data))return kt(S),!0;if(!(ct.tagCheck instanceof Function&&ct.tagCheck(he))&&(!Me[he]||at[he])){if(!at[he]&&U(he)&&(J.tagNameCheck instanceof RegExp&&Lr(J.tagNameCheck,he)||J.tagNameCheck instanceof Function&&J.tagNameCheck(he)))return!1;if(Y&&!Be[he]){const tt=x(S)||S.parentNode,Ft=w(S)||S.childNodes;if(Ft&&tt){const Kt=Ft.length;for(let Zt=Kt-1;Zt>=0;--Zt){const $n=g(Ft[Zt],!0);$n.__removalCount=(S.__removalCount||0)+1,tt.insertBefore($n,v(S))}}}return kt(S),!0}return S instanceof a&&!zt(S)||(he==="noscript"||he==="noembed"||he==="noframes")&&Lr(/<\/no(script|embed|frames)/i,S.innerHTML)?(kt(S),!0):(ce&&S.nodeType===iu.text&&(V=S.textContent,zf([W,te,ue],tt=>{V=tu(V,tt," ")}),S.textContent!==V&&(eu(e.removed,{element:S.cloneNode()}),S.textContent=V)),rn(H.afterSanitizeElements,S,null),!1)},I=function(S,V,he){if(oe&&(V==="id"||V==="name")&&(he in n||he in Ze))return!1;if(!(At&&!$t[V]&&Lr(de,V))){if(!(nt&&Lr(Ae,V))){if(!(ct.attributeCheck instanceof Function&&ct.attributeCheck(V,S))){if(!Je[V]||$t[V]){if(!(U(S)&&(J.tagNameCheck instanceof RegExp&&Lr(J.tagNameCheck,S)||J.tagNameCheck instanceof Function&&J.tagNameCheck(S))&&(J.attributeNameCheck instanceof RegExp&&Lr(J.attributeNameCheck,V)||J.attributeNameCheck instanceof Function&&J.attributeNameCheck(V,S))||V==="is"&&J.allowCustomizedBuiltInElements&&(J.tagNameCheck instanceof RegExp&&Lr(J.tagNameCheck,he)||J.tagNameCheck instanceof Function&&J.tagNameCheck(he))))return!1}else if(!fe[V]){if(!Lr(xe,tu(he,q,""))){if(!((V==="src"||V==="xlink:href"||V==="href")&&S!=="script"&&d4(he,"data:")===0&&j[S])){if(!(Bt&&!Lr(me,tu(he,q,"")))){if(he)return!1}}}}}}}return!0},U=function(S){return S!=="annotation-xml"&&gy(S,se)},K=function(S){rn(H.beforeSanitizeAttributes,S,null);const{attributes:V}=S;if(!V||wn(S))return;const he={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Je,forceKeepAttr:void 0};let tt=V.length;for(;tt--;){const Ft=V[tt],{name:Kt,namespaceURI:Zt,value:$n}=Ft,sn=re(Kt),A=$n;let ne=Kt==="value"?A:f4(A);if(he.attrName=sn,he.attrValue=ne,he.keepAttr=!0,he.forceKeepAttr=void 0,rn(H.uponSanitizeAttribute,S,he),ne=he.attrValue,Ye&&(sn==="id"||sn==="name")&&(Jt(Kt,S),ne=Ge+ne),Ee&&Lr(/((--!?|])>)|<\/(style|title|textarea)/i,ne)){Jt(Kt,S);continue}if(sn==="attributename"&&gy(ne,"href")){Jt(Kt,S);continue}if(he.forceKeepAttr)continue;if(!he.keepAttr){Jt(Kt,S);continue}if(!wt&&Lr(/\/>/i,ne)){Jt(Kt,S);continue}ce&&zf([W,te,ue],Z=>{ne=tu(ne,Z," ")});const we=re(S.nodeName);if(!I(we,sn,ne)){Jt(Kt,S);continue}if(E&&typeof p=="object"&&typeof p.getAttributeType=="function"&&!Zt)switch(p.getAttributeType(we,sn)){case"TrustedHTML":{ne=E.createHTML(ne);break}case"TrustedScriptURL":{ne=E.createScriptURL(ne);break}}if(ne!==A)try{Zt?S.setAttributeNS(Zt,Kt,ne):S.setAttribute(Kt,ne),wn(S)?kt(S):yS(e.removed)}catch{Jt(Kt,S)}}rn(H.afterSanitizeAttributes,S,null)},le=function $(S){let V=null;const he=fn(S);for(rn(H.beforeSanitizeShadowDOM,S,null);V=he.nextNode();)rn(H.uponSanitizeShadowNode,V,null),Pr(V),K(V),V.content instanceof s&&$(V.content);rn(H.afterSanitizeShadowDOM,S,null)};return e.sanitize=function($){let S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},V=null,he=null,tt=null,Ft=null;if(Tt=!$,Tt&&($=""),typeof $!="string"&&!nn($))if(typeof $.toString=="function"){if($=$.toString(),typeof $!="string")throw nu("dirty is not a string, aborting")}else throw nu("toString is not a function");if(!e.isSupported)return $;if(ze||Ce(S),e.removed=[],typeof $=="string"&&(ge=!1),ge){if($.nodeName){const $n=re($.nodeName);if(!Me[$n]||at[$n])throw nu("root node is forbidden and cannot be sanitized in-place")}}else if($ instanceof l)V=jt(""),he=V.ownerDocument.importNode($,!0),he.nodeType===iu.element&&he.nodeName==="BODY"||he.nodeName==="HTML"?V=he:V.appendChild(he);else{if(!it&&!ce&&!Ke&&$.indexOf("<")===-1)return E&&xt?E.createHTML($):$;if(V=jt($),!V)return it?null:xt?k:""}V&&Pe&&kt(V.firstChild);const Kt=fn(ge?$:V);for(;tt=Kt.nextNode();)Pr(tt),K(tt),tt.content instanceof s&&le(tt.content);if(ge)return $;if(it){if(ot)for(Ft=z.call(V.ownerDocument);V.firstChild;)Ft.appendChild(V.firstChild);else Ft=V;return(Je.shadowroot||Je.shadowrootmode)&&(Ft=L.call(r,Ft,!0)),Ft}let Zt=Ke?V.outerHTML:V.innerHTML;return Ke&&Me["!doctype"]&&V.ownerDocument&&V.ownerDocument.doctype&&V.ownerDocument.doctype.name&&Lr(fM,V.ownerDocument.doctype.name)&&(Zt=" -`+Zt),ce&&zf([W,te,ue],$n=>{Zt=tu(Zt,$n," ")}),E&&xt?E.createHTML(Zt):Zt},e.setConfig=function(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ce($),ze=!0},e.clearConfig=function(){Oe=null,ze=!1},e.isValidAttribute=function($,S,V){Oe||Ce({});const he=re($),tt=re(S);return I(he,tt,V)},e.addHook=function($,S){typeof S=="function"&&eu(H[$],S)},e.removeHook=function($,S){if(S!==void 0){const V=c4(H[$],S);return V===-1?void 0:u4(H[$],V,1)[0]}return yS(H[$])},e.removeHooks=function($){H[$]=[]},e.removeAllHooks=function(){H=SS()},e}var ka=hM(),pM={exports:{}},mM={};/** - * @license React - * use-sync-external-store-shim.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var dc=b;function T4(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var A4=typeof Object.is=="function"?Object.is:T4,M4=dc.useState,I4=dc.useEffect,R4=dc.useLayoutEffect,D4=dc.useDebugValue;function O4(t,e){var n=e(),r=M4({inst:{value:n,getSnapshot:e}}),i=r[0].inst,s=r[1];return R4(function(){i.value=n,i.getSnapshot=e,xy(i)&&s({inst:i})},[t,n,e]),I4(function(){return xy(i)&&s({inst:i}),t(function(){xy(i)&&s({inst:i})})},[t]),D4(n),n}function xy(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!A4(t,n)}catch{return!0}}function j4(t,e){return e()}var P4=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?j4:O4;mM.useSyncExternalStore=dc.useSyncExternalStore!==void 0?dc.useSyncExternalStore:P4;pM.exports=mM;var Rb=pM.exports;function mr(t){this.content=t}mr.prototype={constructor:mr,find:function(t){for(var e=0;e>1}};mr.from=function(t){if(t instanceof mr)return t;var e=[];if(t)for(var n in t)e.push(n,t[n]);return new mr(e)};function gM(t,e,n){for(let r=0;;r++){if(r==t.childCount||r==e.childCount)return t.childCount==e.childCount?null:n;let i=t.child(r),s=e.child(r);if(i==s){n+=i.nodeSize;continue}if(!i.sameMarkup(s))return n;if(i.isText&&i.text!=s.text){for(let o=0;i.text[o]==s.text[o];o++)n++;return n}if(i.content.size||s.content.size){let o=gM(i.content,s.content,n+1);if(o!=null)return o}n+=i.nodeSize}}function yM(t,e,n,r){for(let i=t.childCount,s=e.childCount;;){if(i==0||s==0)return i==s?null:{a:n,b:r};let o=t.child(--i),l=e.child(--s),a=o.nodeSize;if(o==l){n-=a,r-=a;continue}if(!o.sameMarkup(l))return{a:n,b:r};if(o.isText&&o.text!=l.text){let c=0,u=Math.min(o.text.length,l.text.length);for(;ce&&r(a,i+l,s||null,o)!==!1&&a.content.size){let u=l+1;a.nodesBetween(Math.max(0,e-u),Math.min(a.content.size,n-u),r,i+u)}l=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,n,r,i){let s="",o=!0;return this.nodesBetween(e,n,(l,a)=>{let c=l.isText?l.text.slice(Math.max(e,a)-a,n-a):l.isLeaf?i?typeof i=="function"?i(l):i:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&c||l.isTextblock)&&r&&(o?o=!1:s+=r),s+=c},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let n=this.lastChild,r=e.firstChild,i=this.content.slice(),s=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),s=1);se)for(let s=0,o=0;oe&&((on)&&(l.isText?l=l.cut(Math.max(0,e-o),Math.min(l.text.length,n-o)):l=l.cut(Math.max(0,e-o-1),Math.min(l.content.size,n-o-1))),r.push(l),i+=l.nodeSize),o=a}return new ve(r,i)}cutByIndex(e,n){return e==n?ve.empty:e==0&&n==this.content.length?this:new ve(this.content.slice(e,n))}replaceChild(e,n){let r=this.content[e];if(r==n)return this;let i=this.content.slice(),s=this.size+n.nodeSize-r.nodeSize;return i[e]=n,new ve(i,s)}addToStart(e){return new ve([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new ve(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let n=0;nthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let n=0,r=0;;n++){let i=this.child(n),s=r+i.nodeSize;if(s>=e)return s==e?$f(n+1,s):$f(n,r);r=s}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,n){if(!n)return ve.empty;if(!Array.isArray(n))throw new RangeError("Invalid input for Fragment.fromJSON");return new ve(n.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return ve.empty;let n,r=0;for(let i=0;ithis.type.rank&&(n||(n=e.slice(0,i)),n.push(this),r=!0),n&&n.push(s)}}return n||(n=e.slice()),r||n.push(this),n}removeFromSet(e){for(let n=0;nr.type.rank-i.type.rank),n}};vn.none=[];class mp extends Error{}class _e{constructor(e,n,r){this.content=e,this.openStart=n,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,n){let r=wM(this.content,e+this.openStart,n);return r&&new _e(r,this.openStart,this.openEnd)}removeBetween(e,n){return new _e(vM(this.content,e+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,n){if(!n)return _e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!="number"||typeof i!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new _e(ve.fromJSON(e,n.content),r,i)}static maxOpen(e,n=!0){let r=0,i=0;for(let s=e.firstChild;s&&!s.isLeaf&&(n||!s.type.spec.isolating);s=s.firstChild)r++;for(let s=e.lastChild;s&&!s.isLeaf&&(n||!s.type.spec.isolating);s=s.lastChild)i++;return new _e(e,r,i)}}_e.empty=new _e(ve.empty,0,0);function vM(t,e,n){let{index:r,offset:i}=t.findIndex(e),s=t.maybeChild(r),{index:o,offset:l}=t.findIndex(n);if(i==e||s.isText){if(l!=n&&!t.child(o).isText)throw new RangeError("Removing non-flat range");return t.cut(0,e).append(t.cut(n))}if(r!=o)throw new RangeError("Removing non-flat range");return t.replaceChild(r,s.copy(vM(s.content,e-i-1,n-i-1)))}function wM(t,e,n,r){let{index:i,offset:s}=t.findIndex(e),o=t.maybeChild(i);if(s==e||o.isText)return r&&!r.canReplace(i,i,n)?null:t.cut(0,e).append(n).append(t.cut(e));let l=wM(o.content,e-s-1,n,o);return l&&t.replaceChild(i,o.copy(l))}function L4(t,e,n){if(n.openStart>t.depth)throw new mp("Inserted content deeper than insertion position");if(t.depth-n.openStart!=e.depth-n.openEnd)throw new mp("Inconsistent open depths");return bM(t,e,n,0)}function bM(t,e,n,r){let i=t.index(r),s=t.node(r);if(i==e.index(r)&&r=0&&t.isText&&t.sameMarkup(e[n])?e[n]=t.withText(e[n].text+t.text):e.push(t)}function Iu(t,e,n,r){let i=(e||t).node(n),s=0,o=e?e.index(n):i.childCount;t&&(s=t.index(n),t.depth>n?s++:t.textOffset&&(zl(t.nodeAfter,r),s++));for(let l=s;li&&g0(t,e,i+1),o=r.depth>i&&g0(n,r,i+1),l=[];return Iu(null,t,i,l),s&&o&&e.index(i)==n.index(i)?(xM(s,o),zl(Fl(s,kM(t,e,n,r,i+1)),l)):(s&&zl(Fl(s,gp(t,e,i+1)),l),Iu(e,n,i,l),o&&zl(Fl(o,gp(n,r,i+1)),l)),Iu(r,null,i,l),new ve(l)}function gp(t,e,n){let r=[];if(Iu(null,t,n,r),t.depth>n){let i=g0(t,e,n+1);zl(Fl(i,gp(t,e,n+1)),r)}return Iu(e,null,n,r),new ve(r)}function _4(t,e){let n=e.depth-t.openStart,i=e.node(n).copy(t.content);for(let s=n-1;s>=0;s--)i=e.node(s).copy(ve.from(i));return{start:i.resolveNoCache(t.openStart+n),end:i.resolveNoCache(i.content.size-t.openEnd-n)}}class fd{constructor(e,n,r){this.pos=e,this.path=n,this.parentOffset=r,this.depth=n.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,n=this.index(this.depth);if(n==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],i=e.child(n);return r?e.child(n).cut(r):i}get nodeBefore(){let e=this.index(this.depth),n=this.pos-this.path[this.path.length-1];return n?this.parent.child(e).cut(0,n):e==0?null:this.parent.child(e-1)}posAtIndex(e,n){n=this.resolveDepth(n);let r=this.path[n*3],i=n==0?0:this.path[n*3-1]+1;for(let s=0;s0;n--)if(this.start(n)<=e&&this.end(n)>=e)return n;return 0}blockRange(e=this,n){if(e.pos=0;r--)if(e.pos<=this.end(r)&&(!n||n(this.node(r))))return new yp(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&n<=e.content.size))throw new RangeError("Position "+n+" out of range");let r=[],i=0,s=n;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(s),c=s-a;if(r.push(o,l,i+a),!c||(o=o.child(l),o.isText))break;s=c-1,i+=a+1}return new fd(n,r,s)}static resolveCached(e,n){let r=CS.get(e);if(r)for(let s=0;se&&this.nodesBetween(e,n,s=>(r.isInSet(s.marks)&&(i=!0),!i)),i}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),SM(this.marks,e)}contentMatchAt(e){let n=this.type.contentMatch.matchFragment(this.content,0,e);if(!n)throw new Error("Called contentMatchAt on a node with invalid content");return n}canReplace(e,n,r=ve.empty,i=0,s=r.childCount){let o=this.contentMatchAt(e).matchFragment(r,i,s),l=o&&o.matchFragment(this.content,n);if(!l||!l.validEnd)return!1;for(let a=i;an.type.name)}`);this.content.forEach(n=>n.check())}toJSON(){let e={type:this.type.name};for(let n in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(n=>n.toJSON())),e}static fromJSON(e,n){if(!n)throw new RangeError("Invalid input for Node.fromJSON");let r;if(n.marks){if(!Array.isArray(n.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=n.marks.map(e.markFromJSON)}if(n.type=="text"){if(typeof n.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(n.text,r)}let i=ve.fromJSON(e,n.content),s=e.nodeType(n.type).create(n.attrs,i,r);return s.type.checkAttrs(s.attrs),s}};Qo.prototype.text=void 0;class vp extends Qo{constructor(e,n,r,i){if(super(e,n,null,i),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):SM(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,n){return this.text.slice(e,n)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new vp(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new vp(this.type,this.attrs,e,this.marks)}cut(e=0,n=this.text.length){return e==0&&n==this.text.length?this:this.withText(this.text.slice(e,n))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function SM(t,e){for(let n=t.length-1;n>=0;n--)e=t[n].type.name+"("+e+")";return e}class Gl{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,n){let r=new B4(e,n);if(r.next==null)return Gl.empty;let i=CM(r);r.next&&r.err("Unexpected trailing text");let s=q4(Y4(i));return J4(s,r),s}matchType(e){for(let n=0;nc.createAndFill()));for(let c=0;c=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function n(r){e.push(r);for(let i=0;i{let s=i+(r.validEnd?"*":" ")+" ";for(let o=0;o"+e.indexOf(r.next[o].next);return s}).join(` -`)}}Gl.empty=new Gl(!0);class B4{constructor(e,n){this.string=e,this.nodeTypes=n,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function CM(t){let e=[];do e.push(U4(t));while(t.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function U4(t){let e=[];do e.push(H4(t));while(t.next&&t.next!=")"&&t.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function H4(t){let e=K4(t);for(;;)if(t.eat("+"))e={type:"plus",expr:e};else if(t.eat("*"))e={type:"star",expr:e};else if(t.eat("?"))e={type:"opt",expr:e};else if(t.eat("{"))e=V4(t,e);else break;return e}function ES(t){/\D/.test(t.next)&&t.err("Expected number, got '"+t.next+"'");let e=Number(t.next);return t.pos++,e}function V4(t,e){let n=ES(t),r=n;return t.eat(",")&&(t.next!="}"?r=ES(t):r=-1),t.eat("}")||t.err("Unclosed braced range"),{type:"range",min:n,max:r,expr:e}}function W4(t,e){let n=t.nodeTypes,r=n[e];if(r)return[r];let i=[];for(let s in n){let o=n[s];o.isInGroup(e)&&i.push(o)}return i.length==0&&t.err("No node type or group '"+e+"' found"),i}function K4(t){if(t.eat("(")){let e=CM(t);return t.eat(")")||t.err("Missing closing paren"),e}else if(/\W/.test(t.next))t.err("Unexpected token '"+t.next+"'");else{let e=W4(t,t.next).map(n=>(t.inline==null?t.inline=n.isInline:t.inline!=n.isInline&&t.err("Mixing inline and block content"),{type:"name",value:n}));return t.pos++,e.length==1?e[0]:{type:"choice",exprs:e}}}function Y4(t){let e=[[]];return i(s(t,0),n()),e;function n(){return e.push([])-1}function r(o,l,a){let c={term:a,to:l};return e[o].push(c),c}function i(o,l){o.forEach(a=>a.to=l)}function s(o,l){if(o.type=="choice")return o.exprs.reduce((a,c)=>a.concat(s(c,l)),[]);if(o.type=="seq")for(let a=0;;a++){let c=s(o.exprs[a],l);if(a==o.exprs.length-1)return c;i(c,l=n())}else if(o.type=="star"){let a=n();return r(l,a),i(s(o.expr,a),a),[r(a)]}else if(o.type=="plus"){let a=n();return i(s(o.expr,l),a),i(s(o.expr,a),a),[r(a)]}else{if(o.type=="opt")return[r(l)].concat(s(o.expr,l));if(o.type=="range"){let a=l;for(let c=0;c{t[o].forEach(({term:l,to:a})=>{if(!l)return;let c;for(let u=0;u{c||i.push([l,c=[]]),c.indexOf(u)==-1&&c.push(u)})})});let s=e[r.join(",")]=new Gl(r.indexOf(t.length-1)>-1);for(let o=0;o-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:TM(this.attrs,e)}create(e=null,n,r){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new Qo(this,this.computeAttrs(e),ve.from(n),vn.setFrom(r))}createChecked(e=null,n,r){return n=ve.from(n),this.checkContent(n),new Qo(this,this.computeAttrs(e),n,vn.setFrom(r))}createAndFill(e=null,n,r){if(e=this.computeAttrs(e),n=ve.from(n),n.size){let o=this.contentMatch.fillBefore(n);if(!o)return null;n=o.append(n)}let i=this.contentMatch.matchFragment(n),s=i&&i.fillBefore(ve.empty,!0);return s?new Qo(this,e,n.append(s),vn.setFrom(r)):null}validContent(e){let n=this.contentMatch.matchFragment(e);if(!n||!n.validEnd)return!1;for(let r=0;r-1}allowsMarks(e){if(this.markSet==null)return!0;for(let n=0;nr[s]=new IM(s,n,o));let i=n.spec.topNode||"doc";if(!r[i])throw new RangeError("Schema is missing its top node type ('"+i+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let s in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}};function G4(t,e,n){let r=n.split("|");return i=>{let s=i===null?"null":typeof i;if(r.indexOf(s)<0)throw new RangeError(`Expected value of type ${r} for attribute ${e} on type ${t}, got ${s}`)}}class X4{constructor(e,n,r){this.hasDefault=Object.prototype.hasOwnProperty.call(r,"default"),this.default=r.default,this.validate=typeof r.validate=="string"?G4(e,n,r.validate):r.validate}get isRequired(){return!this.hasDefault}}class qm{constructor(e,n,r,i){this.name=e,this.rank=n,this.schema=r,this.spec=i,this.attrs=MM(e,i.attrs),this.excluded=null;let s=NM(this.attrs);this.instance=s?new vn(this,s):null}create(e=null){return!e&&this.instance?this.instance:new vn(this,TM(this.attrs,e))}static compile(e,n){let r=Object.create(null),i=0;return e.forEach((s,o)=>r[s]=new qm(s,i++,n,o)),r}removeFromSet(e){for(var n=0;n-1}}let RM=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let n=this.spec={};for(let i in e)n[i]=e[i];n.nodes=mr.from(e.nodes),n.marks=mr.from(e.marks||{}),this.nodes=TS.compile(this.spec.nodes,this),this.marks=qm.compile(this.spec.marks,this);let r=Object.create(null);for(let i in this.nodes){if(i in this.marks)throw new RangeError(i+" can not be both a node and a mark");let s=this.nodes[i],o=s.spec.content||"",l=s.spec.marks;if(s.contentMatch=r[o]||(r[o]=Gl.parse(o,this.nodes)),s.inlineContent=s.contentMatch.inlineContent,s.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!s.isInline||!s.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=s}s.markSet=l=="_"?null:l?AS(this,l.split(" ")):l==""||!s.inlineContent?[]:null}for(let i in this.marks){let s=this.marks[i],o=s.spec.excludes;s.excluded=o==null?[s]:o==""?[]:AS(this,o.split(" "))}this.nodeFromJSON=i=>Qo.fromJSON(this,i),this.markFromJSON=i=>vn.fromJSON(this,i),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,n=null,r,i){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof TS){if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}else throw new RangeError("Invalid node type: "+e);return e.createChecked(n,r,i)}text(e,n){let r=this.nodes.text;return new vp(r,r.defaultAttrs,e,vn.setFrom(n))}mark(e,n){return typeof e=="string"&&(e=this.marks[e]),e.create(n)}nodeType(e){let n=this.nodes[e];if(!n)throw new RangeError("Unknown node type: "+e);return n}};function AS(t,e){let n=[];for(let r=0;r-1)&&n.push(o=a)}if(!o)throw new SyntaxError("Unknown mark type: '"+e[r]+"'")}return n}function Q4(t){return t.tag!=null}function Z4(t){return t.style!=null}let Ru=class v0{constructor(e,n){this.schema=e,this.rules=n,this.tags=[],this.styles=[];let r=this.matchedStyles=[];n.forEach(i=>{if(Q4(i))this.tags.push(i);else if(Z4(i)){let s=/[^=]*/.exec(i.style)[0];r.indexOf(s)<0&&r.push(s),this.styles.push(i)}}),this.normalizeLists=!this.tags.some(i=>{if(!/^(ul|ol)\b/.test(i.tag)||!i.node)return!1;let s=e.nodes[i.node];return s.contentMatch.matchType(s)})}parse(e,n={}){let r=new IS(this,n,!1);return r.addAll(e,vn.none,n.from,n.to),r.finish()}parseSlice(e,n={}){let r=new IS(this,n,!0);return r.addAll(e,vn.none,n.from,n.to),_e.maxOpen(r.finish())}matchTag(e,n,r){for(let i=r?this.tags.indexOf(r)+1:0;ie.length&&(l.charCodeAt(e.length)!=61||l.slice(e.length+1)!=n))){if(o.getAttrs){let a=o.getAttrs(n);if(a===!1)continue;o.attrs=a||void 0}return o}}}static schemaRules(e){let n=[];function r(i){let s=i.priority==null?50:i.priority,o=0;for(;o{r(o=RS(o)),o.mark||o.ignore||o.clearMark||(o.mark=i)})}for(let i in e.nodes){let s=e.nodes[i].spec.parseDOM;s&&s.forEach(o=>{r(o=RS(o)),o.node||o.ignore||o.mark||(o.node=i)})}return n}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new v0(e,v0.schemaRules(e)))}};const DM={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},ez={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},OM={ol:!0,ul:!0},hd=1,w0=2,Du=4;function MS(t,e,n){return e!=null?(e?hd:0)|(e==="full"?w0:0):t&&t.whitespace=="pre"?hd|w0:n&~Du}class Bf{constructor(e,n,r,i,s,o){this.type=e,this.attrs=n,this.marks=r,this.solid=i,this.options=o,this.content=[],this.activeMarks=vn.none,this.match=s||(o&Du?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let n=this.type.contentMatch.fillBefore(ve.from(e));if(n)this.match=this.type.contentMatch.matchFragment(n);else{let r=this.type.contentMatch,i;return(i=r.findWrapping(e.type))?(this.match=r,i):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&hd)){let r=this.content[this.content.length-1],i;if(r&&r.isText&&(i=/[ \t\r\n\u000c]+$/.exec(r.text))){let s=r;r.text.length==i[0].length?this.content.pop():this.content[this.content.length-1]=s.withText(s.text.slice(0,s.text.length-i[0].length))}}let n=ve.from(this.content);return!e&&this.match&&(n=n.append(this.match.fillBefore(ve.empty,!0))),this.type?this.type.create(this.attrs,n,this.marks):n}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!DM.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class IS{constructor(e,n,r){this.parser=e,this.options=n,this.isOpen=r,this.open=0,this.localPreserveWS=!1;let i=n.topNode,s,o=MS(null,n.preserveWhitespace,0)|(r?Du:0);i?s=new Bf(i.type,i.attrs,vn.none,!0,n.topMatch||i.type.contentMatch,o):r?s=new Bf(null,null,vn.none,!0,null,o):s=new Bf(e.schema.topNodeType,null,vn.none,!0,null,o),this.nodes=[s],this.find=n.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,n){e.nodeType==3?this.addTextNode(e,n):e.nodeType==1&&this.addElement(e,n)}addTextNode(e,n){let r=e.nodeValue,i=this.top,s=i.options&w0?"full":this.localPreserveWS||(i.options&hd)>0,{schema:o}=this.parser;if(s==="full"||i.inlineContext(e)||/[^ \t\r\n\u000c]/.test(r)){if(s)if(s==="full")r=r.replace(/\r\n?/g,` -`);else if(o.linebreakReplacement&&/[\r\n]/.test(r)&&this.top.findWrapping(o.linebreakReplacement.create())){let l=r.split(/\r?\n|\r/);for(let a=0;a!a.clearMark(c)):n=n.concat(this.parser.schema.marks[a.mark].create(a.attrs)),a.consuming===!1)l=a;else break}}return n}addElementByRule(e,n,r,i){let s,o;if(n.node)if(o=this.parser.schema.nodes[n.node],o.isLeaf)this.insertNode(o.create(n.attrs),r,e.nodeName=="BR")||this.leafFallback(e,r);else{let a=this.enter(o,n.attrs||null,r,n.preserveWhitespace);a&&(s=!0,r=a)}else{let a=this.parser.schema.marks[n.mark];r=r.concat(a.create(n.attrs))}let l=this.top;if(o&&o.isLeaf)this.findInside(e);else if(i)this.addElement(e,r,i);else if(n.getContent)this.findInside(e),n.getContent(e,this.parser.schema).forEach(a=>this.insertNode(a,r,!1));else{let a=e;typeof n.contentElement=="string"?a=e.querySelector(n.contentElement):typeof n.contentElement=="function"?a=n.contentElement(e):n.contentElement&&(a=n.contentElement),this.findAround(e,a,!0),this.addAll(a,r),this.findAround(e,a,!1)}s&&this.sync(l)&&this.open--}addAll(e,n,r,i){let s=r||0;for(let o=r?e.childNodes[r]:e.firstChild,l=i==null?null:e.childNodes[i];o!=l;o=o.nextSibling,++s)this.findAtPoint(e,s),this.addDOM(o,n);this.findAtPoint(e,s)}findPlace(e,n,r){let i,s;for(let o=this.open,l=0;o>=0;o--){let a=this.nodes[o],c=a.findWrapping(e);if(c&&(!i||i.length>c.length+l)&&(i=c,s=a,!c.length))break;if(a.solid){if(r)break;l+=2}}if(!i)return null;this.sync(s);for(let o=0;o(o.type?o.type.allowsMarkType(c.type):DS(c.type,e))?(a=c.addToSet(a),!1):!0),this.nodes.push(new Bf(e,n,a,i,null,l)),this.open++,r}closeExtra(e=!1){let n=this.nodes.length-1;if(n>this.open){for(;n>this.open;n--)this.nodes[n-1].content.push(this.nodes[n].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let n=this.open;n>=0;n--){if(this.nodes[n]==e)return this.open=n,!0;this.localPreserveWS&&(this.nodes[n].options|=hd)}return!1}get currentPos(){this.closeExtra();let e=0;for(let n=this.open;n>=0;n--){let r=this.nodes[n].content;for(let i=r.length-1;i>=0;i--)e+=r[i].nodeSize;n&&e++}return e}findAtPoint(e,n){if(this.find)for(let r=0;r-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let n=e.split("/"),r=this.options.context,i=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),s=-(r?r.depth+1:0)+(i?0:1),o=(l,a)=>{for(;l>=0;l--){let c=n[l];if(c==""){if(l==n.length-1||l==0)continue;for(;a>=s;a--)if(o(l-1,a))return!0;return!1}else{let u=a>0||a==0&&i?this.nodes[a].type:r&&a>=s?r.node(a-s).type:null;if(!u||u.name!=c&&!u.isInGroup(c))return!1;a--}}return!0};return o(n.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let n=e.depth;n>=0;n--){let r=e.node(n).contentMatchAt(e.indexAfter(n)).defaultType;if(r&&r.isTextblock&&r.defaultAttrs)return r}for(let n in this.parser.schema.nodes){let r=this.parser.schema.nodes[n];if(r.isTextblock&&r.defaultAttrs)return r}}}function tz(t){for(let e=t.firstChild,n=null;e;e=e.nextSibling){let r=e.nodeType==1?e.nodeName.toLowerCase():null;r&&OM.hasOwnProperty(r)&&n?(n.appendChild(e),e=n):r=="li"?n=e:r&&(n=null)}}function nz(t,e){return(t.matches||t.msMatchesSelector||t.webkitMatchesSelector||t.mozMatchesSelector).call(t,e)}function RS(t){let e={};for(let n in t)e[n]=t[n];return e}function DS(t,e){let n=e.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(t))continue;let s=[],o=l=>{s.push(l);for(let a=0;a{if(s.length||o.marks.length){let l=0,a=0;for(;l=0;i--){let s=this.serializeMark(e.marks[i],e.isInline,n);s&&((s.contentDOM||s.dom).appendChild(r),r=s.dom)}return r}serializeMark(e,n,r={}){let i=this.marks[e.type.name];return i&&kh(Sy(r),i(e,n),null,e.attrs)}static renderSpec(e,n,r=null,i){return kh(e,n,r,i)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new ua(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let n=OS(e.nodes);return n.text||(n.text=r=>r.text),n}static marksFromSchema(e){return OS(e.marks)}}function OS(t){let e={};for(let n in t){let r=t[n].spec.toDOM;r&&(e[n]=r)}return e}function Sy(t){return t.document||window.document}const jS=new WeakMap;function rz(t){let e=jS.get(t);return e===void 0&&jS.set(t,e=iz(t)),e}function iz(t){let e=null;function n(r){if(r&&typeof r=="object")if(Array.isArray(r))if(typeof r[0]=="string")e||(e=[]),e.push(r);else for(let i=0;i-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let o=i.indexOf(" ");o>0&&(n=i.slice(0,o),i=i.slice(o+1));let l,a=n?t.createElementNS(n,i):t.createElement(i),c=e[1],u=1;if(c&&typeof c=="object"&&c.nodeType==null&&!Array.isArray(c)){u=2;for(let d in c)if(c[d]!=null){let f=d.indexOf(" ");f>0?a.setAttributeNS(d.slice(0,f),d.slice(f+1),c[d]):d=="style"&&a.style?a.style.cssText=c[d]:a.setAttribute(d,c[d])}}for(let d=u;du)throw new RangeError("Content hole must be the only child of its parent node");return{dom:a,contentDOM:a}}else{let{dom:p,contentDOM:m}=kh(t,f,n,r);if(a.appendChild(p),m){if(l)throw new RangeError("Multiple content holes");l=m}}}return{dom:a,contentDOM:l}}const jM=65535,PM=Math.pow(2,16);function sz(t,e){return t+e*PM}function PS(t){return t&jM}function oz(t){return(t-(t&jM))/PM}const LM=1,_M=2,Sh=4,zM=8;class b0{constructor(e,n,r){this.pos=e,this.delInfo=n,this.recover=r}get deleted(){return(this.delInfo&zM)>0}get deletedBefore(){return(this.delInfo&(LM|Sh))>0}get deletedAfter(){return(this.delInfo&(_M|Sh))>0}get deletedAcross(){return(this.delInfo&Sh)>0}}class ui{constructor(e,n=!1){if(this.ranges=e,this.inverted=n,!e.length&&ui.empty)return ui.empty}recover(e){let n=0,r=PS(e);if(!this.inverted)for(let i=0;ie)break;let c=this.ranges[l+s],u=this.ranges[l+o],d=a+c;if(e<=d){let f=c?e==a?-1:e==d?1:n:n,p=a+i+(f<0?0:u);if(r)return p;let m=e==(n<0?a:d)?null:sz(l/3,e-a),g=e==a?_M:e==d?LM:Sh;return(n<0?e!=a:e!=d)&&(g|=zM),new b0(p,g,m)}i+=u-c}return r?e+i:new b0(e+i,0,null)}touches(e,n){let r=0,i=PS(n),s=this.inverted?2:1,o=this.inverted?1:2;for(let l=0;le)break;let c=this.ranges[l+s],u=a+c;if(e<=u&&l==i*3)return!0;r+=this.ranges[l+o]-c}return!1}forEach(e){let n=this.inverted?2:1,r=this.inverted?1:2;for(let i=0,s=0;i=0;n--){let i=e.getMirror(n);this.appendMap(e._maps[n].invert(),i!=null&&i>n?r-i-1:void 0)}}invert(){let e=new pd;return e.appendMappingInverted(this),e}map(e,n=1){if(this.mirror)return this._map(e,n,!0);for(let r=this.from;rs&&a!o.isAtom||!l.type.allowsMarkType(this.mark.type)?o:o.mark(this.mark.addToSet(o.marks)),i),n.openStart,n.openEnd);return Wn.fromReplace(e,this.from,this.to,s)}invert(){return new Ji(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new $o(n.pos,r.pos,this.mark)}merge(e){return e instanceof $o&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new $o(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new $o(n.from,n.to,e.markFromJSON(n.mark))}}Or.jsonID("addMark",$o);class Ji extends Or{constructor(e,n,r){super(),this.from=e,this.to=n,this.mark=r}apply(e){let n=e.slice(this.from,this.to),r=new _e(Db(n.content,i=>i.mark(this.mark.removeFromSet(i.marks)),e),n.openStart,n.openEnd);return Wn.fromReplace(e,this.from,this.to,r)}invert(){return new $o(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new Ji(n.pos,r.pos,this.mark)}merge(e){return e instanceof Ji&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Ji(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new Ji(n.from,n.to,e.markFromJSON(n.mark))}}Or.jsonID("removeMark",Ji);class Bo extends Or{constructor(e,n){super(),this.pos=e,this.mark=n}apply(e){let n=e.nodeAt(this.pos);if(!n)return Wn.fail("No node at mark step's position");let r=n.type.create(n.attrs,null,this.mark.addToSet(n.marks));return Wn.fromReplace(e,this.pos,this.pos+1,new _e(ve.from(r),0,n.isLeaf?0:1))}invert(e){let n=e.nodeAt(this.pos);if(n){let r=this.mark.addToSet(n.marks);if(r.length==n.marks.length){for(let i=0;ir.pos?null:new cr(n.pos,r.pos,i,s,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number"||typeof n.gapFrom!="number"||typeof n.gapTo!="number"||typeof n.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new cr(n.from,n.to,n.gapFrom,n.gapTo,_e.fromJSON(e,n.slice),n.insert,!!n.structure)}}Or.jsonID("replaceAround",cr);function x0(t,e,n){let r=t.resolve(e),i=n-e,s=r.depth;for(;i>0&&s>0&&r.indexAfter(s)==r.node(s).childCount;)s--,i--;if(i>0){let o=r.node(s).maybeChild(r.indexAfter(s));for(;i>0;){if(!o||o.isLeaf)return!0;o=o.firstChild,i--}}return!1}function lz(t,e,n,r){let i=[],s=[],o,l;t.doc.nodesBetween(e,n,(a,c,u)=>{if(!a.isInline)return;let d=a.marks;if(!r.isInSet(d)&&u.type.allowsMarkType(r.type)){let f=Math.max(c,e),p=Math.min(c+a.nodeSize,n),m=r.addToSet(d);for(let g=0;gt.step(a)),s.forEach(a=>t.step(a))}function az(t,e,n,r){let i=[],s=0;t.doc.nodesBetween(e,n,(o,l)=>{if(!o.isInline)return;s++;let a=null;if(r instanceof qm){let c=o.marks,u;for(;u=r.isInSet(c);)(a||(a=[])).push(u),c=u.removeFromSet(c)}else r?r.isInSet(o.marks)&&(a=[r]):a=o.marks;if(a&&a.length){let c=Math.min(l+o.nodeSize,n);for(let u=0;ut.step(new Ji(o.from,o.to,o.style)))}function Ob(t,e,n,r=n.contentMatch,i=!0){let s=t.doc.nodeAt(e),o=[],l=e+1;for(let a=0;a=0;a--)t.step(o[a])}function cz(t,e,n){return(e==0||t.canReplace(e,t.childCount))&&(n==t.childCount||t.canReplace(0,n))}function jc(t){let n=t.parent.content.cutByIndex(t.startIndex,t.endIndex);for(let r=t.depth,i=0,s=0;;--r){let o=t.$from.node(r),l=t.$from.index(r)+i,a=t.$to.indexAfter(r)-s;if(rn;m--)g||r.index(m)>0?(g=!0,u=ve.from(r.node(m).copy(u)),d++):a--;let f=ve.empty,p=0;for(let m=s,g=!1;m>n;m--)g||i.after(m+1)=0;o--){if(r.size){let l=n[o].type.contentMatch.matchFragment(r);if(!l||!l.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}r=ve.from(n[o].type.create(n[o].attrs,r))}let i=e.start,s=e.end;t.step(new cr(i,s,i,s,new _e(r,0,0),n.length,!0))}function pz(t,e,n,r,i){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let s=t.steps.length;t.doc.nodesBetween(e,n,(o,l)=>{let a=typeof i=="function"?i(o):i;if(o.isTextblock&&!o.hasMarkup(r,a)&&mz(t.doc,t.mapping.slice(s).map(l),r)){let c=null;if(r.schema.linebreakReplacement){let p=r.whitespace=="pre",m=!!r.contentMatch.matchType(r.schema.linebreakReplacement);p&&!m?c=!1:!p&&m&&(c=!0)}c===!1&&$M(t,o,l,s),Ob(t,t.mapping.slice(s).map(l,1),r,void 0,c===null);let u=t.mapping.slice(s),d=u.map(l,1),f=u.map(l+o.nodeSize,1);return t.step(new cr(d,f,d+1,f-1,new _e(ve.from(r.create(a,null,o.marks)),0,0),1,!0)),c===!0&&FM(t,o,l,s),!1}})}function FM(t,e,n,r){e.forEach((i,s)=>{if(i.isText){let o,l=/\r?\n|\r/g;for(;o=l.exec(i.text);){let a=t.mapping.slice(r).map(n+1+s+o.index);t.replaceWith(a,a+1,e.type.schema.linebreakReplacement.create())}}})}function $M(t,e,n,r){e.forEach((i,s)=>{if(i.type==i.type.schema.linebreakReplacement){let o=t.mapping.slice(r).map(n+1+s);t.replaceWith(o,o+1,e.type.schema.text(` -`))}})}function mz(t,e,n){let r=t.resolve(e),i=r.index();return r.parent.canReplaceWith(i,i+1,n)}function gz(t,e,n,r,i){let s=t.doc.nodeAt(e);if(!s)throw new RangeError("No node at given position");n||(n=s.type);let o=n.create(r,null,i||s.marks);if(s.isLeaf)return t.replaceWith(e,e+s.nodeSize,o);if(!n.validContent(s.content))throw new RangeError("Invalid content for node type "+n.name);t.step(new cr(e,e+s.nodeSize,e+1,e+s.nodeSize-1,new _e(ve.from(o),0,0),1,!0))}function Zs(t,e,n=1,r){let i=t.resolve(e),s=i.depth-n,o=r&&r[r.length-1]||i.parent;if(s<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!o.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let c=i.depth-1,u=n-2;c>s;c--,u--){let d=i.node(c),f=i.index(c);if(d.type.spec.isolating)return!1;let p=d.content.cutByIndex(f,d.childCount),m=r&&r[u+1];m&&(p=p.replaceChild(0,m.type.create(m.attrs)));let g=r&&r[u]||d;if(!d.canReplace(f+1,d.childCount)||!g.type.validContent(p))return!1}let l=i.indexAfter(s),a=r&&r[0];return i.node(s).canReplaceWith(l,l,a?a.type:i.node(s+1).type)}function yz(t,e,n=1,r){let i=t.doc.resolve(e),s=ve.empty,o=ve.empty;for(let l=i.depth,a=i.depth-n,c=n-1;l>a;l--,c--){s=ve.from(i.node(l).copy(s));let u=r&&r[c];o=ve.from(u?u.type.create(u.attrs,o):i.node(l).copy(o))}t.step(new or(e,e,new _e(s.append(o),n,n),!0))}function vl(t,e){let n=t.resolve(e),r=n.index();return BM(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(r,r+1)}function vz(t,e){e.content.size||t.type.compatibleContent(e.type);let n=t.contentMatchAt(t.childCount),{linebreakReplacement:r}=t.type.schema;for(let i=0;i0?(s=r.node(i+1),l++,o=r.node(i).maybeChild(l)):(s=r.node(i).maybeChild(l-1),o=r.node(i+1)),s&&!s.isTextblock&&BM(s,o)&&r.node(i).canReplace(l,l+1))return e;if(i==0)break;e=n<0?r.before(i):r.after(i)}}function wz(t,e,n){let r=null,{linebreakReplacement:i}=t.doc.type.schema,s=t.doc.resolve(e-n),o=s.node().type;if(i&&o.inlineContent){let u=o.whitespace=="pre",d=!!o.contentMatch.matchType(i);u&&!d?r=!1:!u&&d&&(r=!0)}let l=t.steps.length;if(r===!1){let u=t.doc.resolve(e+n);$M(t,u.node(),u.before(),l)}o.inlineContent&&Ob(t,e+n-1,o,s.node().contentMatchAt(s.index()),r==null);let a=t.mapping.slice(l),c=a.map(e-n);if(t.step(new or(c,a.map(e+n,-1),_e.empty,!0)),r===!0){let u=t.doc.resolve(c);FM(t,u.node(),u.before(),t.steps.length)}return t}function bz(t,e,n){let r=t.resolve(e);if(r.parent.canReplaceWith(r.index(),r.index(),n))return e;if(r.parentOffset==0)for(let i=r.depth-1;i>=0;i--){let s=r.index(i);if(r.node(i).canReplaceWith(s,s,n))return r.before(i+1);if(s>0)return null}if(r.parentOffset==r.parent.content.size)for(let i=r.depth-1;i>=0;i--){let s=r.indexAfter(i);if(r.node(i).canReplaceWith(s,s,n))return r.after(i+1);if(s=0;o--){let l=o==r.depth?0:r.pos<=(r.start(o+1)+r.end(o+1))/2?-1:1,a=r.index(o)+(l>0?1:0),c=r.node(o),u=!1;if(s==1)u=c.canReplace(a,a,i);else{let d=c.contentMatchAt(a).findWrapping(i.firstChild.type);u=d&&c.canReplaceWith(a,a,d[0])}if(u)return l==0?r.pos:l<0?r.before(o+1):r.after(o+1)}return null}function Gm(t,e,n=e,r=_e.empty){if(e==n&&!r.size)return null;let i=t.resolve(e),s=t.resolve(n);return HM(i,s,r)?new or(e,n,r):new xz(i,s,r).fit()}function HM(t,e,n){return!n.openStart&&!n.openEnd&&t.start()==e.start()&&t.parent.canReplace(t.index(),e.index(),n.content)}class xz{constructor(e,n,r){this.$from=e,this.$to=n,this.unplaced=r,this.frontier=[],this.placed=ve.empty;for(let i=0;i<=e.depth;i++){let s=e.node(i);this.frontier.push({type:s.type,match:s.contentMatchAt(e.indexAfter(i))})}for(let i=e.depth;i>0;i--)this.placed=ve.from(e.node(i).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let c=this.findFittable();c?this.placeNodes(c):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),n=this.placed.size-this.depth-this.$from.depth,r=this.$from,i=this.close(e<0?this.$to:r.doc.resolve(e));if(!i)return null;let s=this.placed,o=r.depth,l=i.depth;for(;o&&l&&s.childCount==1;)s=s.firstChild.content,o--,l--;let a=new _e(s,o,l);return e>-1?new cr(r.pos,e,this.$to.pos,this.$to.end(),a,n):a.size||r.pos!=this.$to.pos?new or(r.pos,i.pos,a):null}findFittable(){let e=this.unplaced.openStart;for(let n=this.unplaced.content,r=0,i=this.unplaced.openEnd;r1&&(i=0),s.type.spec.isolating&&i<=r){e=r;break}n=s.content}for(let n=1;n<=2;n++)for(let r=n==1?e:this.unplaced.openStart;r>=0;r--){let i,s=null;r?(s=Ey(this.unplaced.content,r-1).firstChild,i=s.content):i=this.unplaced.content;let o=i.firstChild;for(let l=this.depth;l>=0;l--){let{type:a,match:c}=this.frontier[l],u,d=null;if(n==1&&(o?c.matchType(o.type)||(d=c.fillBefore(ve.from(o),!1)):s&&a.compatibleContent(s.type)))return{sliceDepth:r,frontierDepth:l,parent:s,inject:d};if(n==2&&o&&(u=c.findWrapping(o.type)))return{sliceDepth:r,frontierDepth:l,parent:s,wrap:u};if(s&&c.matchType(s.type))break}}}openMore(){let{content:e,openStart:n,openEnd:r}=this.unplaced,i=Ey(e,n);return!i.childCount||i.firstChild.isLeaf?!1:(this.unplaced=new _e(e,n+1,Math.max(r,i.size+n>=e.size-r?n+1:0)),!0)}dropNode(){let{content:e,openStart:n,openEnd:r}=this.unplaced,i=Ey(e,n);if(i.childCount<=1&&n>0){let s=e.size-n<=n+i.size;this.unplaced=new _e(fu(e,n-1,1),n-1,s?n-1:r)}else this.unplaced=new _e(fu(e,n,1),n,r)}placeNodes({sliceDepth:e,frontierDepth:n,parent:r,inject:i,wrap:s}){for(;this.depth>n;)this.closeFrontierNode();if(s)for(let g=0;g1||a==0||g.content.size)&&(d=y,u.push(VM(g.mark(f.allowedMarks(g.marks)),c==1?a:0,c==l.childCount?p:-1)))}let m=c==l.childCount;m||(p=-1),this.placed=hu(this.placed,n,ve.from(u)),this.frontier[n].match=d,m&&p<0&&r&&r.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let g=0,y=l;g1&&i==this.$to.end(--r);)++i;return i}findCloseLevel(e){e:for(let n=Math.min(this.depth,e.depth);n>=0;n--){let{match:r,type:i}=this.frontier[n],s=n=0;l--){let{match:a,type:c}=this.frontier[l],u=Ny(e,l,c,a,!0);if(!u||u.childCount)continue e}return{depth:n,fit:o,move:s?e.doc.resolve(e.after(n+1)):e}}}}close(e){let n=this.findCloseLevel(e);if(!n)return null;for(;this.depth>n.depth;)this.closeFrontierNode();n.fit.childCount&&(this.placed=hu(this.placed,n.depth,n.fit)),e=n.move;for(let r=n.depth+1;r<=e.depth;r++){let i=e.node(r),s=i.type.contentMatch.fillBefore(i.content,!0,e.index(r));this.openFrontierNode(i.type,i.attrs,s)}return e}openFrontierNode(e,n=null,r){let i=this.frontier[this.depth];i.match=i.match.matchType(e),this.placed=hu(this.placed,this.depth,ve.from(e.create(n,r))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let n=this.frontier.pop().match.fillBefore(ve.empty,!0);n.childCount&&(this.placed=hu(this.placed,this.frontier.length,n))}}function fu(t,e,n){return e==0?t.cutByIndex(n,t.childCount):t.replaceChild(0,t.firstChild.copy(fu(t.firstChild.content,e-1,n)))}function hu(t,e,n){return e==0?t.append(n):t.replaceChild(t.childCount-1,t.lastChild.copy(hu(t.lastChild.content,e-1,n)))}function Ey(t,e){for(let n=0;n1&&(r=r.replaceChild(0,VM(r.firstChild,e-1,r.childCount==1?n-1:0))),e>0&&(r=t.type.contentMatch.fillBefore(r).append(r),n<=0&&(r=r.append(t.type.contentMatch.matchFragment(r).fillBefore(ve.empty,!0)))),t.copy(r)}function Ny(t,e,n,r,i){let s=t.node(e),o=i?t.indexAfter(e):t.index(e);if(o==s.childCount&&!n.compatibleContent(s.type))return null;let l=r.fillBefore(s.content,!0,o);return l&&!kz(n,s.content,o)?l:null}function kz(t,e,n){for(let r=n;r0;f--,p--){let m=i.node(f).type.spec;if(m.defining||m.definingAsContext||m.isolating)break;o.indexOf(f)>-1?l=f:i.before(f)==p&&o.splice(1,0,-f)}let a=o.indexOf(l),c=[],u=r.openStart;for(let f=r.content,p=0;;p++){let m=f.firstChild;if(c.push(m),p==r.openStart)break;f=m.content}for(let f=u-1;f>=0;f--){let p=c[f],m=Sz(p.type);if(m&&!p.sameMarkup(i.node(Math.abs(l)-1)))u=f;else if(m||!p.type.isTextblock)break}for(let f=r.openStart;f>=0;f--){let p=(f+u+1)%(r.openStart+1),m=c[p];if(m)for(let g=0;g=0&&(t.replace(e,n,r),!(t.steps.length>d));f--){let p=o[f];p<0||(e=i.before(p),n=s.after(p))}}function WM(t,e,n,r,i){if(er){let s=i.contentMatchAt(0),o=s.fillBefore(t).append(t);t=o.append(s.matchFragment(o).fillBefore(ve.empty,!0))}return t}function Ez(t,e,n,r){if(!r.isInline&&e==n&&t.doc.resolve(e).parent.content.size){let i=bz(t.doc,e,r.type);i!=null&&(e=n=i)}t.replaceRange(e,n,new _e(ve.from(r),0,0))}function Nz(t,e,n){let r=t.doc.resolve(e),i=t.doc.resolve(n),s=KM(r,i);for(let o=0;o0&&(a||r.node(l-1).canReplace(r.index(l-1),i.indexAfter(l-1))))return t.delete(r.before(l),i.after(l))}for(let o=1;o<=r.depth&&o<=i.depth;o++)if(e-r.start(o)==r.depth-o&&n>r.end(o)&&i.end(o)-n!=i.depth-o&&r.start(o-1)==i.start(o-1)&&r.node(o-1).canReplace(r.index(o-1),i.index(o-1)))return t.delete(r.before(o),n);t.delete(e,n)}function KM(t,e){let n=[],r=Math.min(t.depth,e.depth);for(let i=r;i>=0;i--){let s=t.start(i);if(se.pos+(e.depth-i)||t.node(i).type.spec.isolating||e.node(i).type.spec.isolating)break;(s==e.start(i)||i==t.depth&&i==e.depth&&t.parent.inlineContent&&e.parent.inlineContent&&i&&e.start(i-1)==s-1)&&n.push(i)}return n}class qa extends Or{constructor(e,n,r){super(),this.pos=e,this.attr=n,this.value=r}apply(e){let n=e.nodeAt(this.pos);if(!n)return Wn.fail("No node at attribute step's position");let r=Object.create(null);for(let s in n.attrs)r[s]=n.attrs[s];r[this.attr]=this.value;let i=n.type.create(r,null,n.marks);return Wn.fromReplace(e,this.pos,this.pos+1,new _e(ve.from(i),0,n.isLeaf?0:1))}getMap(){return ui.empty}invert(e){return new qa(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new qa(n.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.pos!="number"||typeof n.attr!="string")throw new RangeError("Invalid input for AttrStep.fromJSON");return new qa(n.pos,n.attr,n.value)}}Or.jsonID("attr",qa);class md extends Or{constructor(e,n){super(),this.attr=e,this.value=n}apply(e){let n=Object.create(null);for(let i in e.attrs)n[i]=e.attrs[i];n[this.attr]=this.value;let r=e.type.create(n,e.content,e.marks);return Wn.ok(r)}getMap(){return ui.empty}invert(e){return new md(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.attr!="string")throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new md(n.attr,n.value)}}Or.jsonID("docAttr",md);let fc=class extends Error{};fc=function t(e){let n=Error.call(this,e);return n.__proto__=t.prototype,n};fc.prototype=Object.create(Error.prototype);fc.prototype.constructor=fc;fc.prototype.name="TransformError";class YM{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new pd}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let n=this.maybeStep(e);if(n.failed)throw new fc(n.failed);return this}maybeStep(e){let n=e.apply(this.doc);return n.failed||this.addStep(e,n.doc),n}get docChanged(){return this.steps.length>0}changedRange(){let e=1e9,n=-1e9;for(let r=0;r{e=Math.min(e,l),n=Math.max(n,a)})}return e==1e9?null:{from:e,to:n}}addStep(e,n){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=n}replace(e,n=e,r=_e.empty){let i=Gm(this.doc,e,n,r);return i&&this.step(i),this}replaceWith(e,n,r){return this.replace(e,n,new _e(ve.from(r),0,0))}delete(e,n){return this.replace(e,n,_e.empty)}insert(e,n){return this.replaceWith(e,e,n)}replaceRange(e,n,r){return Cz(this,e,n,r),this}replaceRangeWith(e,n,r){return Ez(this,e,n,r),this}deleteRange(e,n){return Nz(this,e,n),this}lift(e,n){return uz(this,e,n),this}join(e,n=1){return wz(this,e,n),this}wrap(e,n){return hz(this,e,n),this}setBlockType(e,n=e,r,i=null){return pz(this,e,n,r,i),this}setNodeMarkup(e,n,r=null,i){return gz(this,e,n,r,i),this}setNodeAttribute(e,n,r){return this.step(new qa(e,n,r)),this}setDocAttribute(e,n){return this.step(new md(e,n)),this}addNodeMark(e,n){return this.step(new Bo(e,n)),this}removeNodeMark(e,n){let r=this.doc.nodeAt(e);if(!r)throw new RangeError("No node at position "+e);if(n instanceof vn)n.isInSet(r.marks)&&this.step(new Xl(e,n));else{let i=r.marks,s,o=[];for(;s=n.isInSet(i);)o.push(new Xl(e,s)),i=s.removeFromSet(i);for(let l=o.length-1;l>=0;l--)this.step(o[l])}return this}split(e,n=1,r){return yz(this,e,n,r),this}addMark(e,n,r){return lz(this,e,n,r),this}removeMark(e,n,r){return az(this,e,n,r),this}clearIncompatible(e,n,r){return Ob(this,e,n,r),this}}const Ty=Object.create(null);class Nt{constructor(e,n,r){this.$anchor=e,this.$head=n,this.ranges=r||[new qM(e.min(n),e.max(n))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let n=0;n=0;s--){let o=n<0?Sa(e.node(0),e.node(s),e.before(s+1),e.index(s),n,r):Sa(e.node(0),e.node(s),e.after(s+1),e.index(s)+1,n,r);if(o)return o}return null}static near(e,n=1){return this.findFrom(e,n)||this.findFrom(e,-n)||new ri(e.node(0))}static atStart(e){return Sa(e,e,0,0,1)||new ri(e)}static atEnd(e){return Sa(e,e,e.content.size,e.childCount,-1)||new ri(e)}static fromJSON(e,n){if(!n||!n.type)throw new RangeError("Invalid input for Selection.fromJSON");let r=Ty[n.type];if(!r)throw new RangeError(`No selection type ${n.type} defined`);return r.fromJSON(e,n)}static jsonID(e,n){if(e in Ty)throw new RangeError("Duplicate use of selection JSON ID "+e);return Ty[e]=n,n.prototype.jsonID=e,n}getBookmark(){return St.between(this.$anchor,this.$head).getBookmark()}}Nt.prototype.visible=!0;class qM{constructor(e,n){this.$from=e,this.$to=n}}let _S=!1;function zS(t){!_S&&!t.parent.inlineContent&&(_S=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+t.parent.type.name+")"))}class St extends Nt{constructor(e,n=e){zS(e),zS(n),super(e,n)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,n){let r=e.resolve(n.map(this.head));if(!r.parent.inlineContent)return Nt.near(r);let i=e.resolve(n.map(this.anchor));return new St(i.parent.inlineContent?i:r,r)}replace(e,n=_e.empty){if(super.replace(e,n),n==_e.empty){let r=this.$from.marksAcross(this.$to);r&&e.ensureMarks(r)}}eq(e){return e instanceof St&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new Xm(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(e,n){if(typeof n.anchor!="number"||typeof n.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new St(e.resolve(n.anchor),e.resolve(n.head))}static create(e,n,r=n){let i=e.resolve(n);return new this(i,r==n?i:e.resolve(r))}static between(e,n,r){let i=e.pos-n.pos;if((!r||i)&&(r=i>=0?1:-1),!n.parent.inlineContent){let s=Nt.findFrom(n,r,!0)||Nt.findFrom(n,-r,!0);if(s)n=s.$head;else return Nt.near(n,r)}return e.parent.inlineContent||(i==0?e=n:(e=(Nt.findFrom(e,-r,!0)||Nt.findFrom(e,r,!0)).$anchor,e.pos0?0:1);i>0?o=0;o+=i){let l=e.child(o);if(l.isAtom){if(!s&&pt.isSelectable(l))return pt.create(t,n-(i<0?l.nodeSize:0))}else{let a=Sa(t,l,n+i,i<0?l.childCount:0,i,s);if(a)return a}n+=l.nodeSize*i}return null}function FS(t,e,n){let r=t.steps.length-1;if(r{o==null&&(o=u)}),t.setSelection(Nt.near(t.doc.resolve(o),n))}const $S=1,Uf=2,BS=4;let Az=class extends YM{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(e){return this.storedMarks=e,this.updated|=Uf,this}ensureMarks(e){return vn.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&Uf)>0}addStep(e,n){super.addStep(e,n),this.updated=this.updated&~Uf,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,n=!0){let r=this.selection;return n&&(e=e.mark(this.storedMarks||(r.empty?r.$from.marks():r.$from.marksAcross(r.$to)||vn.none))),r.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,n,r){let i=this.doc.type.schema;if(n==null)return e?this.replaceSelectionWith(i.text(e),!0):this.deleteSelection();{if(r==null&&(r=n),!e)return this.deleteRange(n,r);let s=this.storedMarks;if(!s){let o=this.doc.resolve(n);s=r==n?o.marks():o.marksAcross(this.doc.resolve(r))}return this.replaceRangeWith(n,r,i.text(e,s)),!this.selection.empty&&this.selection.to==n+e.length&&this.setSelection(Nt.near(this.selection.$to)),this}}setMeta(e,n){return this.meta[typeof e=="string"?e:e.key]=n,this}getMeta(e){return this.meta[typeof e=="string"?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=BS,this}get scrolledIntoView(){return(this.updated&BS)>0}};function US(t,e){return!e||!t?t:t.bind(e)}class pu{constructor(e,n,r){this.name=e,this.init=US(n.init,r),this.apply=US(n.apply,r)}}const Mz=[new pu("doc",{init(t){return t.doc||t.schema.topNodeType.createAndFill()},apply(t){return t.doc}}),new pu("selection",{init(t,e){return t.selection||Nt.atStart(e.doc)},apply(t){return t.selection}}),new pu("storedMarks",{init(t){return t.storedMarks||null},apply(t,e,n,r){return r.selection.$cursor?t.storedMarks:null}}),new pu("scrollToSelection",{init(){return 0},apply(t,e){return t.scrolledIntoView?e+1:e}})];class Ay{constructor(e,n){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=Mz.slice(),n&&n.forEach(r=>{if(this.pluginsByKey[r.key])throw new RangeError("Adding different instances of a keyed plugin ("+r.key+")");this.plugins.push(r),this.pluginsByKey[r.key]=r,r.spec.state&&this.fields.push(new pu(r.key,r.spec.state,r))})}}class Fa{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,n=-1){for(let r=0;rr.toJSON())),e&&typeof e=="object")for(let r in e){if(r=="doc"||r=="selection")throw new RangeError("The JSON fields `doc` and `selection` are reserved");let i=e[r],s=i.spec.state;s&&s.toJSON&&(n[r]=s.toJSON.call(i,this[i.key]))}return n}static fromJSON(e,n,r){if(!n)throw new RangeError("Invalid input for EditorState.fromJSON");if(!e.schema)throw new RangeError("Required config field 'schema' missing");let i=new Ay(e.schema,e.plugins),s=new Fa(i);return i.fields.forEach(o=>{if(o.name=="doc")s.doc=Qo.fromJSON(e.schema,n.doc);else if(o.name=="selection")s.selection=Nt.fromJSON(s.doc,n.selection);else if(o.name=="storedMarks")n.storedMarks&&(s.storedMarks=n.storedMarks.map(e.schema.markFromJSON));else{if(r)for(let l in r){let a=r[l],c=a.spec.state;if(a.key==o.name&&c&&c.fromJSON&&Object.prototype.hasOwnProperty.call(n,l)){s[o.name]=c.fromJSON.call(a,e,n[l],s);return}}s[o.name]=o.init(e,s)}}),s}}function JM(t,e,n){for(let r in t){let i=t[r];i instanceof Function?i=i.bind(e):r=="handleDOMEvents"&&(i=JM(i,e,{})),n[r]=i}return n}class hn{constructor(e){this.spec=e,this.props={},e.props&&JM(e.props,this,this.props),this.key=e.key?e.key.key:GM("plugin")}getState(e){return e[this.key]}}const My=Object.create(null);function GM(t){return t in My?t+"$"+ ++My[t]:(My[t]=0,t+"$")}class pn{constructor(e="key"){this.key=GM(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}}const Lb=(t,e)=>t.selection.empty?!1:(e&&e(t.tr.deleteSelection().scrollIntoView()),!0);function XM(t,e){let{$cursor:n}=t.selection;return!n||(e?!e.endOfTextblock("backward",t):n.parentOffset>0)?null:n}const QM=(t,e,n)=>{let r=XM(t,n);if(!r)return!1;let i=_b(r);if(!i){let o=r.blockRange(),l=o&&jc(o);return l==null?!1:(e&&e(t.tr.lift(o,l).scrollIntoView()),!0)}let s=i.nodeBefore;if(lI(t,i,e,-1))return!0;if(r.parent.content.size==0&&(hc(s,"end")||pt.isSelectable(s)))for(let o=r.depth;;o--){let l=Gm(t.doc,r.before(o),r.after(o),_e.empty);if(l&&l.slice.size1)break}return s.isAtom&&i.depth==r.depth-1?(e&&e(t.tr.delete(i.pos-s.nodeSize,i.pos).scrollIntoView()),!0):!1},Iz=(t,e,n)=>{let r=XM(t,n);if(!r)return!1;let i=_b(r);return i?ZM(t,i,e):!1},Rz=(t,e,n)=>{let r=tI(t,n);if(!r)return!1;let i=zb(r);return i?ZM(t,i,e):!1};function ZM(t,e,n){let r=e.nodeBefore,i=r,s=e.pos-1;for(;!i.isTextblock;s--){if(i.type.spec.isolating)return!1;let u=i.lastChild;if(!u)return!1;i=u}let o=e.nodeAfter,l=o,a=e.pos+1;for(;!l.isTextblock;a++){if(l.type.spec.isolating)return!1;let u=l.firstChild;if(!u)return!1;l=u}let c=Gm(t.doc,s,a,_e.empty);if(!c||c.from!=s||c instanceof or&&c.slice.size>=a-s)return!1;if(n){let u=t.tr.step(c);u.setSelection(St.create(u.doc,s)),n(u.scrollIntoView())}return!0}function hc(t,e,n=!1){for(let r=t;r;r=e=="start"?r.firstChild:r.lastChild){if(r.isTextblock)return!0;if(n&&r.childCount!=1)return!1}return!1}const eI=(t,e,n)=>{let{$head:r,empty:i}=t.selection,s=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("backward",t):r.parentOffset>0)return!1;s=_b(r)}let o=s&&s.nodeBefore;return!o||!pt.isSelectable(o)?!1:(e&&e(t.tr.setSelection(pt.create(t.doc,s.pos-o.nodeSize)).scrollIntoView()),!0)};function _b(t){if(!t.parent.type.spec.isolating)for(let e=t.depth-1;e>=0;e--){if(t.index(e)>0)return t.doc.resolve(t.before(e+1));if(t.node(e).type.spec.isolating)break}return null}function tI(t,e){let{$cursor:n}=t.selection;return!n||(e?!e.endOfTextblock("forward",t):n.parentOffset{let r=tI(t,n);if(!r)return!1;let i=zb(r);if(!i)return!1;let s=i.nodeAfter;if(lI(t,i,e,1))return!0;if(r.parent.content.size==0&&(hc(s,"start")||pt.isSelectable(s))){let o=Gm(t.doc,r.before(),r.after(),_e.empty);if(o&&o.slice.size{let{$head:r,empty:i}=t.selection,s=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("forward",t):r.parentOffset=0;e--){let n=t.node(e);if(t.index(e)+1{let n=t.selection,r=n instanceof pt,i;if(r){if(n.node.isTextblock||!vl(t.doc,n.from))return!1;i=n.from}else if(i=Jm(t.doc,n.from,-1),i==null)return!1;if(e){let s=t.tr.join(i);r&&s.setSelection(pt.create(s.doc,i-t.doc.resolve(i).nodeBefore.nodeSize)),e(s.scrollIntoView())}return!0},Oz=(t,e)=>{let n=t.selection,r;if(n instanceof pt){if(n.node.isTextblock||!vl(t.doc,n.to))return!1;r=n.to}else if(r=Jm(t.doc,n.to,1),r==null)return!1;return e&&e(t.tr.join(r).scrollIntoView()),!0},jz=(t,e)=>{let{$from:n,$to:r}=t.selection,i=n.blockRange(r),s=i&&jc(i);return s==null?!1:(e&&e(t.tr.lift(i,s).scrollIntoView()),!0)},iI=(t,e)=>{let{$head:n,$anchor:r}=t.selection;return!n.parent.type.spec.code||!n.sameParent(r)?!1:(e&&e(t.tr.insertText(` -`).scrollIntoView()),!0)};function Fb(t){for(let e=0;e{let{$head:n,$anchor:r}=t.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let i=n.node(-1),s=n.indexAfter(-1),o=Fb(i.contentMatchAt(s));if(!o||!i.canReplaceWith(s,s,o))return!1;if(e){let l=n.after(),a=t.tr.replaceWith(l,l,o.createAndFill());a.setSelection(Nt.near(a.doc.resolve(l),1)),e(a.scrollIntoView())}return!0},sI=(t,e)=>{let n=t.selection,{$from:r,$to:i}=n;if(n instanceof ri||r.parent.inlineContent||i.parent.inlineContent)return!1;let s=Fb(i.parent.contentMatchAt(i.indexAfter()));if(!s||!s.isTextblock)return!1;if(e){let o=(!r.parentOffset&&i.index(){let{$cursor:n}=t.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let s=n.before();if(Zs(t.doc,s))return e&&e(t.tr.split(s).scrollIntoView()),!0}let r=n.blockRange(),i=r&&jc(r);return i==null?!1:(e&&e(t.tr.lift(r,i).scrollIntoView()),!0)};function Lz(t){return(e,n)=>{let{$from:r,$to:i}=e.selection;if(e.selection instanceof pt&&e.selection.node.isBlock)return!r.parentOffset||!Zs(e.doc,r.pos)?!1:(n&&n(e.tr.split(r.pos).scrollIntoView()),!0);if(!r.depth)return!1;let s=[],o,l,a=!1,c=!1;for(let p=r.depth;;p--)if(r.node(p).isBlock){a=r.end(p)==r.pos+(r.depth-p),c=r.start(p)==r.pos-(r.depth-p),l=Fb(r.node(p-1).contentMatchAt(r.indexAfter(p-1))),s.unshift(a&&l?{type:l}:null),o=p;break}else{if(p==1)return!1;s.unshift(null)}let u=e.tr;(e.selection instanceof St||e.selection instanceof ri)&&u.deleteSelection();let d=u.mapping.map(r.pos),f=Zs(u.doc,d,s.length,s);if(f||(s[0]=l?{type:l}:null,f=Zs(u.doc,d,s.length,s)),!f)return!1;if(u.split(d,s.length,s),!a&&c&&r.node(o).type!=l){let p=u.mapping.map(r.before(o)),m=u.doc.resolve(p);l&&r.node(o-1).canReplaceWith(m.index(),m.index()+1,l)&&u.setNodeMarkup(u.mapping.map(r.before(o)),l)}return n&&n(u.scrollIntoView()),!0}}const _z=Lz(),zz=(t,e)=>{let{$from:n,to:r}=t.selection,i,s=n.sharedDepth(r);return s==0?!1:(i=n.before(s),e&&e(t.tr.setSelection(pt.create(t.doc,i))),!0)};function Fz(t,e,n){let r=e.nodeBefore,i=e.nodeAfter,s=e.index();return!r||!i||!r.type.compatibleContent(i.type)?!1:!r.content.size&&e.parent.canReplace(s-1,s)?(n&&n(t.tr.delete(e.pos-r.nodeSize,e.pos).scrollIntoView()),!0):!e.parent.canReplace(s,s+1)||!(i.isTextblock||vl(t.doc,e.pos))?!1:(n&&n(t.tr.join(e.pos).scrollIntoView()),!0)}function lI(t,e,n,r){let i=e.nodeBefore,s=e.nodeAfter,o,l,a=i.type.spec.isolating||s.type.spec.isolating;if(!a&&Fz(t,e,n))return!0;let c=!a&&e.parent.canReplace(e.index(),e.index()+1);if(c&&(o=(l=i.contentMatchAt(i.childCount)).findWrapping(s.type))&&l.matchType(o[0]||s.type).validEnd){if(n){let p=e.pos+s.nodeSize,m=ve.empty;for(let v=o.length-1;v>=0;v--)m=ve.from(o[v].create(null,m));m=ve.from(i.copy(m));let g=t.tr.step(new cr(e.pos-1,p,e.pos,p,new _e(m,1,0),o.length,!0)),y=g.doc.resolve(p+2*o.length);y.nodeAfter&&y.nodeAfter.type==i.type&&vl(g.doc,y.pos)&&g.join(y.pos),n(g.scrollIntoView())}return!0}let u=s.type.spec.isolating||r>0&&a?null:Nt.findFrom(e,1),d=u&&u.$from.blockRange(u.$to),f=d&&jc(d);if(f!=null&&f>=e.depth)return n&&n(t.tr.lift(d,f).scrollIntoView()),!0;if(c&&hc(s,"start",!0)&&hc(i,"end")){let p=i,m=[];for(;m.push(p),!p.isTextblock;)p=p.lastChild;let g=s,y=1;for(;!g.isTextblock;g=g.firstChild)y++;if(p.canReplace(p.childCount,p.childCount,g.content)){if(n){let v=ve.empty;for(let x=m.length-1;x>=0;x--)v=ve.from(m[x].copy(v));let w=t.tr.step(new cr(e.pos-m.length,e.pos+s.nodeSize,e.pos+y,e.pos+s.nodeSize-y,new _e(v,m.length,0),0,!0));n(w.scrollIntoView())}return!0}}return!1}function aI(t){return function(e,n){let r=e.selection,i=t<0?r.$from:r.$to,s=i.depth;for(;i.node(s).isInline;){if(!s)return!1;s--}return i.node(s).isTextblock?(n&&n(e.tr.setSelection(St.create(e.doc,t<0?i.start(s):i.end(s)))),!0):!1}}const $z=aI(-1),Bz=aI(1);function Uz(t,e=null){return function(n,r){let{$from:i,$to:s}=n.selection,o=i.blockRange(s),l=o&&jb(o,t,e);return l?(r&&r(n.tr.wrap(o,l).scrollIntoView()),!0):!1}}function HS(t,e=null){return function(n,r){let i=!1;for(let s=0;s{if(i)return!1;if(!(!a.isTextblock||a.hasMarkup(t,e)))if(a.type==t)i=!0;else{let u=n.doc.resolve(c),d=u.index();i=u.parent.canReplaceWith(d,d+1,t)}})}if(!i)return!1;if(r){let s=n.tr;for(let o=0;o=2&&e.$from.node(e.depth-1).type.compatibleContent(n)&&e.startIndex==0){if(e.$from.index(e.depth-1)==0)return!1;let a=o.resolve(e.start-2);s=new yp(a,a,e.depth),e.endIndex=0;u--)s=ve.from(n[u].type.create(n[u].attrs,s));t.step(new cr(e.start-(r?2:0),e.end,e.start,e.end,new _e(s,0,0),n.length,!0));let o=0;for(let u=0;uo.childCount>0&&o.firstChild.type==t);return s?n?r.node(s.depth-1).type==t?Yz(e,n,t,s):qz(e,n,s):!0:!1}}function Yz(t,e,n,r){let i=t.tr,s=r.end,o=r.$to.end(r.depth);sg;m--)p-=i.child(m).nodeSize,r.delete(p-1,p+1);let s=r.doc.resolve(n.start),o=s.nodeAfter;if(r.mapping.map(n.end)!=n.start+s.nodeAfter.nodeSize)return!1;let l=n.startIndex==0,a=n.endIndex==i.childCount,c=s.node(-1),u=s.index(-1);if(!c.canReplace(u+(l?0:1),u+1,o.content.append(a?ve.empty:ve.from(i))))return!1;let d=s.pos,f=d+o.nodeSize;return r.step(new cr(d-(l?1:0),f+(a?1:0),d+1,f-1,new _e((l?ve.empty:ve.from(i.copy(ve.empty))).append(a?ve.empty:ve.from(i.copy(ve.empty))),l?0:1,a?0:1),l?0:1)),e(r.scrollIntoView()),!0}function Jz(t){return function(e,n){let{$from:r,$to:i}=e.selection,s=r.blockRange(i,c=>c.childCount>0&&c.firstChild.type==t);if(!s)return!1;let o=s.startIndex;if(o==0)return!1;let l=s.parent,a=l.child(o-1);if(a.type!=t)return!1;if(n){let c=a.lastChild&&a.lastChild.type==l.type,u=ve.from(c?t.create():null),d=new _e(ve.from(t.create(null,ve.from(l.type.create(null,u)))),c?3:1,0),f=s.start,p=s.end;n(e.tr.step(new cr(f-(c?3:1),p,f,p,d,1,!0)).scrollIntoView())}return!0}}const yr=function(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e},pc=function(t){let e=t.assignedSlot||t.parentNode;return e&&e.nodeType==11?e.host:e};let k0=null;const Hs=function(t,e,n){let r=k0||(k0=document.createRange());return r.setEnd(t,n??t.nodeValue.length),r.setStart(t,e||0),r},Gz=function(){k0=null},Ql=function(t,e,n,r){return n&&(VS(t,e,n,r,-1)||VS(t,e,n,r,1))},Xz=/^(img|br|input|textarea|hr)$/i;function VS(t,e,n,r,i){for(var s;;){if(t==n&&e==r)return!0;if(e==(i<0?0:Ni(t))){let o=t.parentNode;if(!o||o.nodeType!=1||qd(t)||Xz.test(t.nodeName)||t.contentEditable=="false")return!1;e=yr(t)+(i<0?0:1),t=o}else if(t.nodeType==1){let o=t.childNodes[e+(i<0?-1:0)];if(o.nodeType==1&&o.contentEditable=="false")if(!((s=o.pmViewDesc)===null||s===void 0)&&s.ignoreForSelection)e+=i;else return!1;else t=o,e=i<0?Ni(t):0}else return!1}}function Ni(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function Qz(t,e){for(;;){if(t.nodeType==3&&e)return t;if(t.nodeType==1&&e>0){if(t.contentEditable=="false")return null;t=t.childNodes[e-1],e=Ni(t)}else if(t.parentNode&&!qd(t))e=yr(t),t=t.parentNode;else return null}}function Zz(t,e){for(;;){if(t.nodeType==3&&e2),Si=mc||(Ts?/Mac/.test(Ts.platform):!1),dI=Ts?/Win/.test(Ts.platform):!1,Js=/Android \d/.test(wl),Jd=!!WS&&"webkitFontSmoothing"in WS.documentElement.style,rF=Jd?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function iF(t){let e=t.defaultView&&t.defaultView.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.documentElement.clientWidth,top:0,bottom:t.documentElement.clientHeight}}function Os(t,e){return typeof t=="number"?t:t[e]}function sF(t){let e=t.getBoundingClientRect(),n=e.width/t.offsetWidth||1,r=e.height/t.offsetHeight||1;return{left:e.left,right:e.left+t.clientWidth*n,top:e.top,bottom:e.top+t.clientHeight*r}}function KS(t,e,n){let r=t.someProp("scrollThreshold")||0,i=t.someProp("scrollMargin")||5,s=t.dom.ownerDocument;for(let o=n||t.dom;o;){if(o.nodeType!=1){o=pc(o);continue}let l=o,a=l==s.body,c=a?iF(s):sF(l),u=0,d=0;if(e.topc.bottom-Os(r,"bottom")&&(d=e.bottom-e.top>c.bottom-c.top?e.top+Os(i,"top")-c.top:e.bottom-c.bottom+Os(i,"bottom")),e.leftc.right-Os(r,"right")&&(u=e.right-c.right+Os(i,"right")),u||d)if(a)s.defaultView.scrollBy(u,d);else{let p=l.scrollLeft,m=l.scrollTop;d&&(l.scrollTop+=d),u&&(l.scrollLeft+=u);let g=l.scrollLeft-p,y=l.scrollTop-m;e={left:e.left-g,top:e.top-y,right:e.right-g,bottom:e.bottom-y}}let f=a?"fixed":getComputedStyle(o).position;if(/^(fixed|sticky)$/.test(f))break;o=f=="absolute"?o.offsetParent:pc(o)}}function oF(t){let e=t.dom.getBoundingClientRect(),n=Math.max(0,e.top),r,i;for(let s=(e.left+e.right)/2,o=n+1;o=n-20){r=l,i=a.top;break}}return{refDOM:r,refTop:i,stack:fI(t.dom)}}function fI(t){let e=[],n=t.ownerDocument;for(let r=t;r&&(e.push({dom:r,top:r.scrollTop,left:r.scrollLeft}),t!=n);r=pc(r));return e}function lF({refDOM:t,refTop:e,stack:n}){let r=t?t.getBoundingClientRect().top:0;hI(n,r==0?0:r-e)}function hI(t,e){for(let n=0;n=l){o=Math.max(m.bottom,o),l=Math.min(m.top,l);let g=m.left>e.left?m.left-e.left:m.right=(m.left+m.right)/2?1:0));continue}}else m.top>e.top&&!a&&m.left<=e.left&&m.right>=e.left&&(a=u,c={left:Math.max(m.left,Math.min(m.right,e.left)),top:m.top});!n&&(e.left>=m.right&&e.top>=m.top||e.left>=m.left&&e.top>=m.bottom)&&(s=d+1)}}return!n&&a&&(n=a,i=c,r=0),n&&n.nodeType==3?cF(n,i):!n||r&&n.nodeType==1?{node:t,offset:s}:pI(n,i)}function cF(t,e){let n=t.nodeValue.length,r=document.createRange(),i;for(let s=0;s=(o.left+o.right)/2?1:0)};break}}return r.detach(),i||{node:t,offset:0}}function Bb(t,e){return t.left>=e.left-1&&t.left<=e.right+1&&t.top>=e.top-1&&t.top<=e.bottom+1}function uF(t,e){let n=t.parentNode;return n&&/^li$/i.test(n.nodeName)&&e.left(o.left+o.right)/2?1:-1}return t.docView.posFromDOM(r,i,s)}function fF(t,e,n,r){let i=-1;for(let s=e,o=!1;s!=t.dom;){let l=t.docView.nearestDesc(s,!0),a;if(!l)return null;if(l.dom.nodeType==1&&(l.node.isBlock&&l.parent||!l.contentDOM)&&((a=l.dom.getBoundingClientRect()).width||a.height)&&(l.node.isBlock&&l.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(l.dom.nodeName)&&(!o&&a.left>r.left||a.top>r.top?i=l.posBefore:(!o&&a.right-1?i:t.docView.posFromDOM(e,n,-1)}function mI(t,e,n){let r=t.childNodes.length;if(r&&n.tope.top&&i++}let c;Jd&&i&&r.nodeType==1&&(c=r.childNodes[i-1]).nodeType==1&&c.contentEditable=="false"&&c.getBoundingClientRect().top>=e.top&&i--,r==t.dom&&i==r.childNodes.length-1&&r.lastChild.nodeType==1&&e.top>r.lastChild.getBoundingClientRect().bottom?l=t.state.doc.content.size:(i==0||r.nodeType!=1||r.childNodes[i-1].nodeName!="BR")&&(l=fF(t,r,i,e))}l==null&&(l=dF(t,o,e));let a=t.docView.nearestDesc(o,!0);return{pos:l,inside:a?a.posAtStart-a.border:-1}}function YS(t){return t.top=0&&i==r.nodeValue.length?(a--,u=1):n<0?a--:c++,su(No(Hs(r,a,c),u),u<0)}if(!t.state.doc.resolve(e-(s||0)).parent.inlineContent){if(s==null&&i&&(n<0||i==Ni(r))){let a=r.childNodes[i-1];if(a.nodeType==1)return Iy(a.getBoundingClientRect(),!1)}if(s==null&&i=0)}if(s==null&&i&&(n<0||i==Ni(r))){let a=r.childNodes[i-1],c=a.nodeType==3?Hs(a,Ni(a)-(o?0:1)):a.nodeType==1&&(a.nodeName!="BR"||!a.nextSibling)?a:null;if(c)return su(No(c,1),!1)}if(s==null&&i=0)}function su(t,e){if(t.width==0)return t;let n=e?t.left:t.right;return{top:t.top,bottom:t.bottom,left:n,right:n}}function Iy(t,e){if(t.height==0)return t;let n=e?t.top:t.bottom;return{top:n,bottom:n,left:t.left,right:t.right}}function yI(t,e,n){let r=t.state,i=t.root.activeElement;r!=e&&t.updateState(e),i!=t.dom&&t.focus();try{return n()}finally{r!=e&&t.updateState(r),i!=t.dom&&i&&i.focus()}}function mF(t,e,n){let r=e.selection,i=n=="up"?r.$from:r.$to;return yI(t,e,()=>{let{node:s}=t.docView.domFromPos(i.pos,n=="up"?-1:1);for(;;){let l=t.docView.nearestDesc(s,!0);if(!l)break;if(l.node.isBlock){s=l.contentDOM||l.dom;break}s=l.dom.parentNode}let o=gI(t,i.pos,1);for(let l=s.firstChild;l;l=l.nextSibling){let a;if(l.nodeType==1)a=l.getClientRects();else if(l.nodeType==3)a=Hs(l,0,l.nodeValue.length).getClientRects();else continue;for(let c=0;cu.top+1&&(n=="up"?o.top-u.top>(u.bottom-o.top)*2:u.bottom-o.bottom>(o.bottom-u.top)*2))return!1}}return!0})}const gF=/[\u0590-\u08ac]/;function yF(t,e,n){let{$head:r}=e.selection;if(!r.parent.isTextblock)return!1;let i=r.parentOffset,s=!i,o=i==r.parent.content.size,l=t.domSelection();return l?!gF.test(r.parent.textContent)||!l.modify?n=="left"||n=="backward"?s:o:yI(t,e,()=>{let{focusNode:a,focusOffset:c,anchorNode:u,anchorOffset:d}=t.domSelectionRange(),f=l.caretBidiLevel;l.modify("move",n,"character");let p=r.depth?t.docView.domAfterPos(r.before()):t.dom,{focusNode:m,focusOffset:g}=t.domSelectionRange(),y=m&&!p.contains(m.nodeType==1?m:m.parentNode)||a==m&&c==g;try{l.collapse(u,d),a&&(a!=u||c!=d)&&l.extend&&l.extend(a,c)}catch{}return f!=null&&(l.caretBidiLevel=f),y}):r.pos==r.start()||r.pos==r.end()}let qS=null,JS=null,GS=!1;function vF(t,e,n){return qS==e&&JS==n?GS:(qS=e,JS=n,GS=n=="up"||n=="down"?mF(t,e,n):yF(t,e,n))}const Di=0,XS=1,Rl=2,As=3;class Gd{constructor(e,n,r,i){this.parent=e,this.children=n,this.dom=r,this.contentDOM=i,this.dirty=Di,r.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,n,r){return!1}matchesHack(e){return!1}parseRule(){return null}stopEvent(e){return!1}get size(){let e=0;for(let n=0;nyr(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))i=e.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(n==0)for(let s=e;;s=s.parentNode){if(s==this.dom){i=!1;break}if(s.previousSibling)break}if(i==null&&n==e.childNodes.length)for(let s=e;;s=s.parentNode){if(s==this.dom){i=!0;break}if(s.nextSibling)break}}return i??r>0?this.posAtEnd:this.posAtStart}nearestDesc(e,n=!1){for(let r=!0,i=e;i;i=i.parentNode){let s=this.getDesc(i),o;if(s&&(!n||s.node))if(r&&(o=s.nodeDOM)&&!(o.nodeType==1?o.contains(e.nodeType==1?e:e.parentNode):o==e))r=!1;else return s}}getDesc(e){let n=e.pmViewDesc;for(let r=n;r;r=r.parent)if(r==this)return n}posFromDOM(e,n,r){for(let i=e;i;i=i.parentNode){let s=this.getDesc(i);if(s)return s.localPosFromDOM(e,n,r)}return-1}descAt(e){for(let n=0,r=0;ne||o instanceof wI){i=e-s;break}s=l}if(i)return this.children[r].domFromPos(i-this.children[r].border,n);for(let s;r&&!(s=this.children[r-1]).size&&s instanceof vI&&s.side>=0;r--);if(n<=0){let s,o=!0;for(;s=r?this.children[r-1]:null,!(!s||s.dom.parentNode==this.contentDOM);r--,o=!1);return s&&n&&o&&!s.border&&!s.domAtom?s.domFromPos(s.size,n):{node:this.contentDOM,offset:s?yr(s.dom)+1:0}}else{let s,o=!0;for(;s=r=u&&n<=c-a.border&&a.node&&a.contentDOM&&this.contentDOM.contains(a.contentDOM))return a.parseRange(e,n,u);e=o;for(let d=l;d>0;d--){let f=this.children[d-1];if(f.size&&f.dom.parentNode==this.contentDOM&&!f.emptyChildAt(1)){i=yr(f.dom)+1;break}e-=f.size}i==-1&&(i=0)}if(i>-1&&(c>n||l==this.children.length-1)){n=c;for(let u=l+1;um&&on){let m=l;l=a,a=m}let p=document.createRange();p.setEnd(a.node,a.offset),p.setStart(l.node,l.offset),c.removeAllRanges(),c.addRange(p)}}ignoreMutation(e){return!this.contentDOM&&e.type!="selection"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,n){for(let r=0,i=0;i=r:er){let l=r+s.border,a=o-s.border;if(e>=l&&n<=a){this.dirty=e==r||n==o?Rl:XS,e==l&&n==a&&(s.contentLost||s.dom.parentNode!=this.contentDOM)?s.dirty=As:s.markDirty(e-l,n-l);return}else s.dirty=s.dom==s.contentDOM&&s.dom.parentNode==this.contentDOM&&!s.children.length?Rl:As}r=o}this.dirty=Rl}markParentsDirty(){let e=1;for(let n=this.parent;n;n=n.parent,e++){let r=e==1?Rl:XS;n.dirty{if(!s)return i;if(s.parent)return s.parent.posBeforeChild(s)})),!n.type.spec.raw){if(o.nodeType!=1){let l=document.createElement("span");l.appendChild(o),o=l}o.contentEditable="false",o.classList.add("ProseMirror-widget")}super(e,[],o,null),this.widget=n,this.widget=n,s=this}matchesWidget(e){return this.dirty==Di&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let n=this.widget.spec.stopEvent;return n?n(e):!1}ignoreMutation(e){return e.type!="selection"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}}class wF extends Gd{constructor(e,n,r,i){super(e,[],n,null),this.textDOM=r,this.text=i}get size(){return this.text.length}localPosFromDOM(e,n){return e!=this.textDOM?this.posAtStart+(n?this.size:0):this.posAtStart+n}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return e.type==="characterData"&&e.target.nodeValue==e.oldValue}}class Zl extends Gd{constructor(e,n,r,i,s){super(e,[],r,i),this.mark=n,this.spec=s}static create(e,n,r,i){let s=i.nodeViews[n.type.name],o=s&&s(n,i,r);return(!o||!o.dom)&&(o=ua.renderSpec(document,n.type.spec.toDOM(n,r),null,n.attrs)),new Zl(e,n,o.dom,o.contentDOM||o.dom,o)}parseRule(){return this.dirty&As||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return this.dirty!=As&&this.mark.eq(e)}markDirty(e,n){if(super.markDirty(e,n),this.dirty!=Di){let r=this.parent;for(;!r.node;)r=r.parent;r.dirty0&&(s=T0(s,0,e,r));for(let l=0;l{if(!a)return o;if(a.parent)return a.parent.posBeforeChild(a)},r,i),u=c&&c.dom,d=c&&c.contentDOM;if(n.isText){if(!u)u=document.createTextNode(n.text);else if(u.nodeType!=3)throw new RangeError("Text must be rendered as a DOM text node")}else u||({dom:u,contentDOM:d}=ua.renderSpec(document,n.type.spec.toDOM(n),null,n.attrs));!d&&!n.isText&&u.nodeName!="BR"&&(u.hasAttribute("contenteditable")||(u.contentEditable="false"),n.type.spec.draggable&&(u.draggable=!0));let f=u;return u=kI(u,r,n),c?a=new bF(e,n,r,i,u,d||null,f,c,s,o+1):n.isText?new Zm(e,n,r,i,u,f,s):new el(e,n,r,i,u,d||null,f,s,o+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let e={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace=="pre"&&(e.preserveWhitespace="full"),!this.contentDOM)e.getContent=()=>this.node.content;else if(!this.contentLost)e.contentElement=this.contentDOM;else{for(let n=this.children.length-1;n>=0;n--){let r=this.children[n];if(this.dom.contains(r.dom.parentNode)){e.contentElement=r.dom.parentNode;break}}e.contentElement||(e.getContent=()=>ve.empty)}return e}matchesNode(e,n,r){return this.dirty==Di&&e.eq(this.node)&&wp(n,this.outerDeco)&&r.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(e,n){let r=this.node.inlineContent,i=n,s=e.composing?this.localCompositionInfo(e,n):null,o=s&&s.pos>-1?s:null,l=s&&s.pos<0,a=new kF(this,o&&o.node,e);EF(this.node,this.innerDeco,(c,u,d)=>{c.spec.marks?a.syncToMarks(c.spec.marks,r,e,u):c.type.side>=0&&!d&&a.syncToMarks(u==this.node.childCount?vn.none:this.node.child(u).marks,r,e,u),a.placeWidget(c,e,i)},(c,u,d,f)=>{a.syncToMarks(c.marks,r,e,f);let p;a.findNodeMatch(c,u,d,f)||l&&e.state.selection.from>i&&e.state.selection.to-1&&a.updateNodeAt(c,u,d,p,e)||a.updateNextNode(c,u,d,e,f,i)||a.addNode(c,u,d,e,i),i+=c.nodeSize}),a.syncToMarks([],r,e,0),this.node.isTextblock&&a.addTextblockHacks(),a.destroyRest(),(a.changed||this.dirty==Rl)&&(o&&this.protectLocalComposition(e,o),bI(this.contentDOM,this.children,e),mc&&NF(this.dom))}localCompositionInfo(e,n){let{from:r,to:i}=e.state.selection;if(!(e.state.selection instanceof St)||rn+this.node.content.size)return null;let s=e.input.compositionNode;if(!s||!this.dom.contains(s.parentNode))return null;if(this.node.inlineContent){let o=s.nodeValue,l=TF(this.node.content,o,r-n,i-n);return l<0?null:{node:s,pos:l,text:o}}else return{node:s,pos:-1,text:""}}protectLocalComposition(e,{node:n,pos:r,text:i}){if(this.getDesc(n))return;let s=n;for(;s.parentNode!=this.contentDOM;s=s.parentNode){for(;s.previousSibling;)s.parentNode.removeChild(s.previousSibling);for(;s.nextSibling;)s.parentNode.removeChild(s.nextSibling);s.pmViewDesc&&(s.pmViewDesc=void 0)}let o=new wF(this,s,n,i);e.input.compositionNodes.push(o),this.children=T0(this.children,r,r+i.length,e,o)}update(e,n,r,i){return this.dirty==As||!e.sameMarkup(this.node)?!1:(this.updateInner(e,n,r,i),!0)}updateInner(e,n,r,i){this.updateOuterDeco(n),this.node=e,this.innerDeco=r,this.contentDOM&&this.updateChildren(i,this.posAtStart),this.dirty=Di}updateOuterDeco(e){if(wp(e,this.outerDeco))return;let n=this.nodeDOM.nodeType!=1,r=this.dom;this.dom=xI(this.dom,this.nodeDOM,N0(this.outerDeco,this.node,n),N0(e,this.node,n)),this.dom!=r&&(r.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.add("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&(this.nodeDOM.draggable=!0))}deselectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.remove("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&this.nodeDOM.removeAttribute("draggable"))}get domAtom(){return this.node.isAtom}}function QS(t,e,n,r,i){kI(r,e,t);let s=new el(void 0,t,e,n,r,r,r,i,0);return s.contentDOM&&s.updateChildren(i,0),s}class Zm extends el{constructor(e,n,r,i,s,o,l){super(e,n,r,i,s,null,o,l,0)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,n,r,i){return this.dirty==As||this.dirty!=Di&&!this.inParent()||!e.sameMarkup(this.node)?!1:(this.updateOuterDeco(n),(this.dirty!=Di||e.text!=this.node.text)&&e.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=e.text,i.trackWrites==this.nodeDOM&&(i.trackWrites=null)),this.node=e,this.dirty=Di,!0)}inParent(){let e=this.parent.contentDOM;for(let n=this.nodeDOM;n;n=n.parentNode)if(n==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,n,r){return e==this.nodeDOM?this.posAtStart+Math.min(n,this.node.text.length):super.localPosFromDOM(e,n,r)}ignoreMutation(e){return e.type!="characterData"&&e.type!="selection"}slice(e,n,r){let i=this.node.cut(e,n),s=document.createTextNode(i.text);return new Zm(this.parent,i,this.outerDeco,this.innerDeco,s,s,r)}markDirty(e,n){super.markDirty(e,n),this.dom!=this.nodeDOM&&(e==0||n==this.nodeDOM.nodeValue.length)&&(this.dirty=As)}get domAtom(){return!1}isText(e){return this.node.text==e}}class wI extends Gd{parseRule(){return{ignore:!0}}matchesHack(e){return this.dirty==Di&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName=="IMG"}}class bF extends el{constructor(e,n,r,i,s,o,l,a,c,u){super(e,n,r,i,s,o,l,c,u),this.spec=a}update(e,n,r,i){if(this.dirty==As)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let s=this.spec.update(e,n,r);return s&&this.updateInner(e,n,r,i),s}else return!this.contentDOM&&!e.isLeaf?!1:super.update(e,n,r,i)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,n,r,i){this.spec.setSelection?this.spec.setSelection(e,n,r.root):super.setSelection(e,n,r,i)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return this.spec.stopEvent?this.spec.stopEvent(e):!1}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}}function bI(t,e,n){let r=t.firstChild,i=!1;for(let s=0;s>1,l=Math.min(o,e.length);for(;s-1)a>this.index&&(this.changed=!0,this.destroyBetween(this.index,a)),this.top=this.top.children[this.index];else{let u=Zl.create(this.top,e[o],n,r);this.top.children.splice(this.index,0,u),this.top=u,this.changed=!0}this.index=0,o++}}findNodeMatch(e,n,r,i){let s=-1,o;if(i>=this.preMatch.index&&(o=this.preMatch.matches[i-this.preMatch.index]).parent==this.top&&o.matchesNode(e,n,r))s=this.top.children.indexOf(o,this.index);else for(let l=this.index,a=Math.min(this.top.children.length,l+5);l0;){let l;for(;;)if(r){let c=n.children[r-1];if(c instanceof Zl)n=c,r=c.children.length;else{l=c,r--;break}}else{if(n==e)break e;r=n.parent.children.indexOf(n),n=n.parent}let a=l.node;if(a){if(a!=t.child(i-1))break;--i,s.set(l,i),o.push(l)}}return{index:i,matched:s,matches:o.reverse()}}function CF(t,e){return t.type.side-e.type.side}function EF(t,e,n,r){let i=e.locals(t),s=0;if(i.length==0){for(let c=0;cs;)l.push(i[o++]);let m=s+f.nodeSize;if(f.isText){let y=m;o!y.inline):l.slice();r(f,g,e.forChild(s,f),p),s=m}}function NF(t){if(t.nodeName=="UL"||t.nodeName=="OL"){let e=t.style.cssText;t.style.cssText=e+"; list-style: square !important",window.getComputedStyle(t).listStyle,t.style.cssText=e}}function TF(t,e,n,r){for(let i=0,s=0;i=n){if(s>=r&&a.slice(r-e.length-l,r-l)==e)return r-e.length;let c=l=0&&c+e.length+l>=n)return l+c;if(n==r&&a.length>=r+e.length-l&&a.slice(r-l,r-l+e.length)==e)return r}}return-1}function T0(t,e,n,r,i){let s=[];for(let o=0,l=0;o=n||u<=e?s.push(a):(cn&&s.push(a.slice(n-c,a.size,r)))}return s}function Ub(t,e=null){let n=t.domSelectionRange(),r=t.state.doc;if(!n.focusNode)return null;let i=t.docView.nearestDesc(n.focusNode),s=i&&i.size==0,o=t.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(o<0)return null;let l=r.resolve(o),a,c;if(Qm(n)){for(a=o;i&&!i.node;)i=i.parent;let d=i.node;if(i&&d.isAtom&&pt.isSelectable(d)&&i.parent&&!(d.isInline&&eF(n.focusNode,n.focusOffset,i.dom))){let f=i.posBefore;c=new pt(o==f?l:r.resolve(f))}}else{if(n instanceof t.dom.ownerDocument.defaultView.Selection&&n.rangeCount>1){let d=o,f=o;for(let p=0;p{(n.anchorNode!=r||n.anchorOffset!=i)&&(e.removeEventListener("selectionchange",t.input.hideSelectionGuard),setTimeout(()=>{(!SI(t)||t.state.selection.visible)&&t.dom.classList.remove("ProseMirror-hideselection")},20))})}function MF(t){let e=t.domSelection();if(!e)return;let n=t.cursorWrapper.dom,r=n.nodeName=="IMG";r?e.collapse(n.parentNode,yr(n)+1):e.collapse(n,0),!r&&!t.state.selection.visible&&ii&&Zo<=11&&(n.disabled=!0,n.disabled=!1)}function CI(t,e){if(e instanceof pt){let n=t.docView.descAt(e.from);n!=t.lastSelectedViewDesc&&(rC(t),n&&n.selectNode(),t.lastSelectedViewDesc=n)}else rC(t)}function rC(t){t.lastSelectedViewDesc&&(t.lastSelectedViewDesc.parent&&t.lastSelectedViewDesc.deselectNode(),t.lastSelectedViewDesc=void 0)}function Hb(t,e,n,r){return t.someProp("createSelectionBetween",i=>i(t,e,n))||St.between(e,n,r)}function iC(t){return t.editable&&!t.hasFocus()?!1:EI(t)}function EI(t){let e=t.domSelectionRange();if(!e.anchorNode)return!1;try{return t.dom.contains(e.anchorNode.nodeType==3?e.anchorNode.parentNode:e.anchorNode)&&(t.editable||t.dom.contains(e.focusNode.nodeType==3?e.focusNode.parentNode:e.focusNode))}catch{return!1}}function IF(t){let e=t.docView.domFromPos(t.state.selection.anchor,0),n=t.domSelectionRange();return Ql(e.node,e.offset,n.anchorNode,n.anchorOffset)}function A0(t,e){let{$anchor:n,$head:r}=t.selection,i=e>0?n.max(r):n.min(r),s=i.parent.inlineContent?i.depth?t.doc.resolve(e>0?i.after():i.before()):null:i;return s&&Nt.findFrom(s,e)}function Io(t,e){return t.dispatch(t.state.tr.setSelection(e).scrollIntoView()),!0}function sC(t,e,n){let r=t.state.selection;if(r instanceof St)if(n.indexOf("s")>-1){let{$head:i}=r,s=i.textOffset?null:e<0?i.nodeBefore:i.nodeAfter;if(!s||s.isText||!s.isLeaf)return!1;let o=t.state.doc.resolve(i.pos+s.nodeSize*(e<0?-1:1));return Io(t,new St(r.$anchor,o))}else if(r.empty){if(t.endOfTextblock(e>0?"forward":"backward")){let i=A0(t.state,e);return i&&i instanceof pt?Io(t,i):!1}else if(!(Si&&n.indexOf("m")>-1)){let i=r.$head,s=i.textOffset?null:e<0?i.nodeBefore:i.nodeAfter,o;if(!s||s.isText)return!1;let l=e<0?i.pos-s.nodeSize:i.pos;return s.isAtom||(o=t.docView.descAt(l))&&!o.contentDOM?pt.isSelectable(s)?Io(t,new pt(e<0?t.state.doc.resolve(i.pos-s.nodeSize):i)):Jd?Io(t,new St(t.state.doc.resolve(e<0?l:l+s.nodeSize))):!1:!1}}else return!1;else{if(r instanceof pt&&r.node.isInline)return Io(t,new St(e>0?r.$to:r.$from));{let i=A0(t.state,e);return i?Io(t,i):!1}}}function bp(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function ju(t,e){let n=t.pmViewDesc;return n&&n.size==0&&(e<0||t.nextSibling||t.nodeName!="BR")}function va(t,e){return e<0?RF(t):DF(t)}function RF(t){let e=t.domSelectionRange(),n=e.focusNode,r=e.focusOffset;if(!n)return;let i,s,o=!1;for(Ri&&n.nodeType==1&&r0){if(n.nodeType!=1)break;{let l=n.childNodes[r-1];if(ju(l,-1))i=n,s=--r;else if(l.nodeType==3)n=l,r=n.nodeValue.length;else break}}else{if(NI(n))break;{let l=n.previousSibling;for(;l&&ju(l,-1);)i=n.parentNode,s=yr(l),l=l.previousSibling;if(l)n=l,r=bp(n);else{if(n=n.parentNode,n==t.dom)break;r=0}}}o?M0(t,n,r):i&&M0(t,i,s)}function DF(t){let e=t.domSelectionRange(),n=e.focusNode,r=e.focusOffset;if(!n)return;let i=bp(n),s,o;for(;;)if(r{t.state==i&&eo(t)},50)}function oC(t,e){let n=t.state.doc.resolve(e);if(!(lr||dI)&&n.parent.inlineContent){let i=t.coordsAtPos(e);if(e>n.start()){let s=t.coordsAtPos(e-1),o=(s.top+s.bottom)/2;if(o>i.top&&o1)return s.lefti.top&&o1)return s.left>i.left?"ltr":"rtl"}}return getComputedStyle(t.dom).direction=="rtl"?"rtl":"ltr"}function lC(t,e,n){let r=t.state.selection;if(r instanceof St&&!r.empty||n.indexOf("s")>-1||Si&&n.indexOf("m")>-1)return!1;let{$from:i,$to:s}=r;if(!i.parent.inlineContent||t.endOfTextblock(e<0?"up":"down")){let o=A0(t.state,e);if(o&&o instanceof pt)return Io(t,o)}if(!i.parent.inlineContent){let o=e<0?i:s,l=r instanceof ri?Nt.near(o,e):Nt.findFrom(o,e);return l?Io(t,l):!1}return!1}function aC(t,e){if(!(t.state.selection instanceof St))return!0;let{$head:n,$anchor:r,empty:i}=t.state.selection;if(!n.sameParent(r))return!0;if(!i)return!1;if(t.endOfTextblock(e>0?"forward":"backward"))return!0;let s=!n.textOffset&&(e<0?n.nodeBefore:n.nodeAfter);if(s&&!s.isText){let o=t.state.tr;return e<0?o.delete(n.pos-s.nodeSize,n.pos):o.delete(n.pos,n.pos+s.nodeSize),t.dispatch(o),!0}return!1}function cC(t,e,n){t.domObserver.stop(),e.contentEditable=n,t.domObserver.start()}function PF(t){if(!xr||t.state.selection.$head.parentOffset>0)return!1;let{focusNode:e,focusOffset:n}=t.domSelectionRange();if(e&&e.nodeType==1&&n==0&&e.firstChild&&e.firstChild.contentEditable=="false"){let r=e.firstChild;cC(t,r,"true"),setTimeout(()=>cC(t,r,"false"),20)}return!1}function LF(t){let e="";return t.ctrlKey&&(e+="c"),t.metaKey&&(e+="m"),t.altKey&&(e+="a"),t.shiftKey&&(e+="s"),e}function _F(t,e){let n=e.keyCode,r=LF(e);if(n==8||Si&&n==72&&r=="c")return aC(t,-1)||va(t,-1);if(n==46&&!e.shiftKey||Si&&n==68&&r=="c")return aC(t,1)||va(t,1);if(n==13||n==27)return!0;if(n==37||Si&&n==66&&r=="c"){let i=n==37?oC(t,t.state.selection.from)=="ltr"?-1:1:-1;return sC(t,i,r)||va(t,i)}else if(n==39||Si&&n==70&&r=="c"){let i=n==39?oC(t,t.state.selection.from)=="ltr"?1:-1:1;return sC(t,i,r)||va(t,i)}else{if(n==38||Si&&n==80&&r=="c")return lC(t,-1,r)||va(t,-1);if(n==40||Si&&n==78&&r=="c")return PF(t)||lC(t,1,r)||va(t,1);if(r==(Si?"m":"c")&&(n==66||n==73||n==89||n==90))return!0}return!1}function Vb(t,e){t.someProp("transformCopied",p=>{e=p(e,t)});let n=[],{content:r,openStart:i,openEnd:s}=e;for(;i>1&&s>1&&r.childCount==1&&r.firstChild.childCount==1;){i--,s--;let p=r.firstChild;n.push(p.type.name,p.attrs!=p.type.defaultAttrs?p.attrs:null),r=p.content}let o=t.someProp("clipboardSerializer")||ua.fromSchema(t.state.schema),l=DI(),a=l.createElement("div");a.appendChild(o.serializeFragment(r,{document:l}));let c=a.firstChild,u,d=0;for(;c&&c.nodeType==1&&(u=RI[c.nodeName.toLowerCase()]);){for(let p=u.length-1;p>=0;p--){let m=l.createElement(u[p]);for(;a.firstChild;)m.appendChild(a.firstChild);a.appendChild(m),d++}c=a.firstChild}c&&c.nodeType==1&&c.setAttribute("data-pm-slice",`${i} ${s}${d?` -${d}`:""} ${JSON.stringify(n)}`);let f=t.someProp("clipboardTextSerializer",p=>p(e,t))||e.content.textBetween(0,e.content.size,` - -`);return{dom:a,text:f,slice:e}}function TI(t,e,n,r,i){let s=i.parent.type.spec.code,o,l;if(!n&&!e)return null;let a=!!e&&(r||s||!n);if(a){if(t.someProp("transformPastedText",f=>{e=f(e,s||r,t)}),s)return l=new _e(ve.from(t.state.schema.text(e.replace(/\r\n?/g,` -`))),0,0),t.someProp("transformPasted",f=>{l=f(l,t,!0)}),l;let d=t.someProp("clipboardTextParser",f=>f(e,i,r,t));if(d)l=d;else{let f=i.marks(),{schema:p}=t.state,m=ua.fromSchema(p);o=document.createElement("div"),e.split(/(?:\r\n?|\n)+/).forEach(g=>{let y=o.appendChild(document.createElement("p"));g&&y.appendChild(m.serializeNode(p.text(g,f)))})}}else t.someProp("transformPastedHTML",d=>{n=d(n,t)}),o=BF(n),Jd&&UF(o);let c=o&&o.querySelector("[data-pm-slice]"),u=c&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(c.getAttribute("data-pm-slice")||"");if(u&&u[3])for(let d=+u[3];d>0;d--){let f=o.firstChild;for(;f&&f.nodeType!=1;)f=f.nextSibling;if(!f)break;o=f}if(l||(l=(t.someProp("clipboardParser")||t.someProp("domParser")||Ru.fromSchema(t.state.schema)).parseSlice(o,{preserveWhitespace:!!(a||u),context:i,ruleFromNode(f){return f.nodeName=="BR"&&!f.nextSibling&&f.parentNode&&!zF.test(f.parentNode.nodeName)?{ignore:!0}:null}})),u)l=HF(uC(l,+u[1],+u[2]),u[4]);else if(l=_e.maxOpen(FF(l.content,i),!0),l.openStart||l.openEnd){let d=0,f=0;for(let p=l.content.firstChild;d{l=d(l,t,a)}),l}const zF=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function FF(t,e){if(t.childCount<2)return t;for(let n=e.depth;n>=0;n--){let i=e.node(n).contentMatchAt(e.index(n)),s,o=[];if(t.forEach(l=>{if(!o)return;let a=i.findWrapping(l.type),c;if(!a)return o=null;if(c=o.length&&s.length&&MI(a,s,l,o[o.length-1],0))o[o.length-1]=c;else{o.length&&(o[o.length-1]=II(o[o.length-1],s.length));let u=AI(l,a);o.push(u),i=i.matchType(u.type),s=a}}),o)return ve.from(o)}return t}function AI(t,e,n=0){for(let r=e.length-1;r>=n;r--)t=e[r].create(null,ve.from(t));return t}function MI(t,e,n,r,i){if(i1&&(s=0),i=n&&(l=e<0?o.contentMatchAt(0).fillBefore(l,s<=i).append(l):l.append(o.contentMatchAt(o.childCount).fillBefore(ve.empty,!0))),t.replaceChild(e<0?0:t.childCount-1,o.copy(l))}function uC(t,e,n){return en})),Dy.createHTML(t)):t}function BF(t){let e=/^(\s*]*>)*/.exec(t);e&&(t=t.slice(e[0].length));let n=DI().createElement("div"),r=/<([a-z][^>\s]+)/i.exec(t),i;if((i=r&&RI[r[1].toLowerCase()])&&(t=i.map(s=>"<"+s+">").join("")+t+i.map(s=>"").reverse().join("")),n.innerHTML=$F(t),i)for(let s=0;s=0;l-=2){let a=n.nodes[r[l]];if(!a||a.hasRequiredAttrs())break;i=ve.from(a.create(r[l+1],i)),s++,o++}return new _e(i,s,o)}const Vr={},Wr={},VF={touchstart:!0,touchmove:!0};class WF{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:"",button:0},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastChromeDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.badSafariComposition=!1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function KF(t){for(let e in Vr){let n=Vr[e];t.dom.addEventListener(e,t.input.eventHandlers[e]=r=>{qF(t,r)&&!Wb(t,r)&&(t.editable||!(r.type in Wr))&&n(t,r)},VF[e]?{passive:!0}:void 0)}xr&&t.dom.addEventListener("input",()=>null),R0(t)}function Uo(t,e){t.input.lastSelectionOrigin=e,t.input.lastSelectionTime=Date.now()}function YF(t){t.domObserver.stop();for(let e in t.input.eventHandlers)t.dom.removeEventListener(e,t.input.eventHandlers[e]);clearTimeout(t.input.composingTimeout),clearTimeout(t.input.lastIOSEnterFallbackTimeout)}function R0(t){t.someProp("handleDOMEvents",e=>{for(let n in e)t.input.eventHandlers[n]||t.dom.addEventListener(n,t.input.eventHandlers[n]=r=>Wb(t,r))})}function Wb(t,e){return t.someProp("handleDOMEvents",n=>{let r=n[e.type];return r?r(t,e)||e.defaultPrevented:!1})}function qF(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target;n!=t.dom;n=n.parentNode)if(!n||n.nodeType==11||n.pmViewDesc&&n.pmViewDesc.stopEvent(e))return!1;return!0}function JF(t,e){!Wb(t,e)&&Vr[e.type]&&(t.editable||!(e.type in Wr))&&Vr[e.type](t,e)}Wr.keydown=(t,e)=>{let n=e;if(t.input.shiftKey=n.keyCode==16||n.shiftKey,!jI(t,n)&&(t.input.lastKeyCode=n.keyCode,t.input.lastKeyCodeTime=Date.now(),!(Js&&lr&&n.keyCode==13)))if(n.keyCode!=229&&t.domObserver.forceFlush(),mc&&n.keyCode==13&&!n.ctrlKey&&!n.altKey&&!n.metaKey){let r=Date.now();t.input.lastIOSEnter=r,t.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{t.input.lastIOSEnter==r&&(t.someProp("handleKeyDown",i=>i(t,Nl(13,"Enter"))),t.input.lastIOSEnter=0)},200)}else t.someProp("handleKeyDown",r=>r(t,n))||_F(t,n)?n.preventDefault():Uo(t,"key")};Wr.keyup=(t,e)=>{e.keyCode==16&&(t.input.shiftKey=!1)};Wr.keypress=(t,e)=>{let n=e;if(jI(t,n)||!n.charCode||n.ctrlKey&&!n.altKey||Si&&n.metaKey)return;if(t.someProp("handleKeyPress",i=>i(t,n))){n.preventDefault();return}let r=t.state.selection;if(!(r instanceof St)||!r.$from.sameParent(r.$to)){let i=String.fromCharCode(n.charCode),s=()=>t.state.tr.insertText(i).scrollIntoView();!/[\r\n]/.test(i)&&!t.someProp("handleTextInput",o=>o(t,r.$from.pos,r.$to.pos,i,s))&&t.dispatch(s()),n.preventDefault()}};function eg(t){return{left:t.clientX,top:t.clientY}}function GF(t,e){let n=e.x-t.clientX,r=e.y-t.clientY;return n*n+r*r<100}function Kb(t,e,n,r,i){if(r==-1)return!1;let s=t.state.doc.resolve(r);for(let o=s.depth+1;o>0;o--)if(t.someProp(e,l=>o>s.depth?l(t,n,s.nodeAfter,s.before(o),i,!0):l(t,n,s.node(o),s.before(o),i,!1)))return!0;return!1}function Ja(t,e,n){if(t.focused||t.focus(),t.state.selection.eq(e))return;let r=t.state.tr.setSelection(e);r.setMeta("pointer",!0),t.dispatch(r)}function XF(t,e){if(e==-1)return!1;let n=t.state.doc.resolve(e),r=n.nodeAfter;return r&&r.isAtom&&pt.isSelectable(r)?(Ja(t,new pt(n)),!0):!1}function QF(t,e){if(e==-1)return!1;let n=t.state.selection,r,i;n instanceof pt&&(r=n.node);let s=t.state.doc.resolve(e);for(let o=s.depth+1;o>0;o--){let l=o>s.depth?s.nodeAfter:s.node(o);if(pt.isSelectable(l)){r&&n.$from.depth>0&&o>=n.$from.depth&&s.before(n.$from.depth+1)==n.$from.pos?i=s.before(n.$from.depth):i=s.before(o);break}}return i!=null?(Ja(t,pt.create(t.state.doc,i)),!0):!1}function ZF(t,e,n,r,i){return Kb(t,"handleClickOn",e,n,r)||t.someProp("handleClick",s=>s(t,e,r))||(i?QF(t,n):XF(t,n))}function e$(t,e,n,r){return Kb(t,"handleDoubleClickOn",e,n,r)||t.someProp("handleDoubleClick",i=>i(t,e,r))}function t$(t,e,n,r){return Kb(t,"handleTripleClickOn",e,n,r)||t.someProp("handleTripleClick",i=>i(t,e,r))||n$(t,n,r)}function n$(t,e,n){if(n.button!=0)return!1;let r=t.state.doc;if(e==-1)return r.inlineContent?(Ja(t,St.create(r,0,r.content.size)),!0):!1;let i=r.resolve(e);for(let s=i.depth+1;s>0;s--){let o=s>i.depth?i.nodeAfter:i.node(s),l=i.before(s);if(o.inlineContent)Ja(t,St.create(r,l+1,l+1+o.content.size));else if(pt.isSelectable(o))Ja(t,pt.create(r,l));else continue;return!0}}function Yb(t){return xp(t)}const OI=Si?"metaKey":"ctrlKey";Vr.mousedown=(t,e)=>{let n=e;t.input.shiftKey=n.shiftKey;let r=Yb(t),i=Date.now(),s="singleClick";i-t.input.lastClick.time<500&&GF(n,t.input.lastClick)&&!n[OI]&&t.input.lastClick.button==n.button&&(t.input.lastClick.type=="singleClick"?s="doubleClick":t.input.lastClick.type=="doubleClick"&&(s="tripleClick")),t.input.lastClick={time:i,x:n.clientX,y:n.clientY,type:s,button:n.button};let o=t.posAtCoords(eg(n));o&&(s=="singleClick"?(t.input.mouseDown&&t.input.mouseDown.done(),t.input.mouseDown=new r$(t,o,n,!!r)):(s=="doubleClick"?e$:t$)(t,o.pos,o.inside,n)?n.preventDefault():Uo(t,"pointer"))};class r${constructor(e,n,r,i){this.view=e,this.pos=n,this.event=r,this.flushed=i,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!r[OI],this.allowDefault=r.shiftKey;let s,o;if(n.inside>-1)s=e.state.doc.nodeAt(n.inside),o=n.inside;else{let u=e.state.doc.resolve(n.pos);s=u.parent,o=u.depth?u.before():0}const l=i?null:r.target,a=l?e.docView.nearestDesc(l,!0):null;this.target=a&&a.nodeDOM.nodeType==1?a.nodeDOM:null;let{selection:c}=e.state;(r.button==0&&s.type.spec.draggable&&s.type.spec.selectable!==!1||c instanceof pt&&c.from<=o&&c.to>o)&&(this.mightDrag={node:s,pos:o,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&Ri&&!this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),e.root.addEventListener("mouseup",this.up=this.up.bind(this)),e.root.addEventListener("mousemove",this.move=this.move.bind(this)),Uo(e,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>eo(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let n=this.pos;this.view.state.doc!=this.startDoc&&(n=this.view.posAtCoords(eg(e))),this.updateAllowDefault(e),this.allowDefault||!n?Uo(this.view,"pointer"):ZF(this.view,n.pos,n.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||xr&&this.mightDrag&&!this.mightDrag.node.isAtom||lr&&!this.view.state.selection.visible&&Math.min(Math.abs(n.pos-this.view.state.selection.from),Math.abs(n.pos-this.view.state.selection.to))<=2)?(Ja(this.view,Nt.near(this.view.state.doc.resolve(n.pos))),e.preventDefault()):Uo(this.view,"pointer")}move(e){this.updateAllowDefault(e),Uo(this.view,"pointer"),e.buttons==0&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}}Vr.touchstart=t=>{t.input.lastTouch=Date.now(),Yb(t),Uo(t,"pointer")};Vr.touchmove=t=>{t.input.lastTouch=Date.now(),Uo(t,"pointer")};Vr.contextmenu=t=>Yb(t);function jI(t,e){return t.composing?!0:xr&&Math.abs(e.timeStamp-t.input.compositionEndedAt)<500?(t.input.compositionEndedAt=-2e8,!0):!1}const i$=Js?5e3:-1;Wr.compositionstart=Wr.compositionupdate=t=>{if(!t.composing){t.domObserver.flush();let{state:e}=t,n=e.selection.$to;if(e.selection instanceof St&&(e.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(r=>r.type.spec.inclusive===!1)||lr&&dI&&s$(t)))t.markCursor=t.state.storedMarks||n.marks(),xp(t,!0),t.markCursor=null;else if(xp(t,!e.selection.empty),Ri&&e.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let r=t.domSelectionRange();for(let i=r.focusNode,s=r.focusOffset;i&&i.nodeType==1&&s!=0;){let o=s<0?i.lastChild:i.childNodes[s-1];if(!o)break;if(o.nodeType==3){let l=t.domSelection();l&&l.collapse(o,o.nodeValue.length);break}else i=o,s=-1}}t.input.composing=!0}PI(t,i$)};function s$(t){let{focusNode:e,focusOffset:n}=t.domSelectionRange();if(!e||e.nodeType!=1||n>=e.childNodes.length)return!1;let r=e.childNodes[n];return r.nodeType==1&&r.contentEditable=="false"}Wr.compositionend=(t,e)=>{t.composing&&(t.input.composing=!1,t.input.compositionEndedAt=e.timeStamp,t.input.compositionPendingChanges=t.domObserver.pendingRecords().length?t.input.compositionID:0,t.input.compositionNode=null,t.input.badSafariComposition?t.domObserver.forceFlush():t.input.compositionPendingChanges&&Promise.resolve().then(()=>t.domObserver.flush()),t.input.compositionID++,PI(t,20))};function PI(t,e){clearTimeout(t.input.composingTimeout),e>-1&&(t.input.composingTimeout=setTimeout(()=>xp(t),e))}function LI(t){for(t.composing&&(t.input.composing=!1,t.input.compositionEndedAt=l$());t.input.compositionNodes.length>0;)t.input.compositionNodes.pop().markParentsDirty()}function o$(t){let e=t.domSelectionRange();if(!e.focusNode)return null;let n=Qz(e.focusNode,e.focusOffset),r=Zz(e.focusNode,e.focusOffset);if(n&&r&&n!=r){let i=r.pmViewDesc,s=t.domObserver.lastChangedTextNode;if(n==s||r==s)return s;if(!i||!i.isText(r.nodeValue))return r;if(t.input.compositionNode==r){let o=n.pmViewDesc;if(!(!o||!o.isText(n.nodeValue)))return r}}return n||r}function l$(){let t=document.createEvent("Event");return t.initEvent("event",!0,!0),t.timeStamp}function xp(t,e=!1){if(!(Js&&t.domObserver.flushingSoon>=0)){if(t.domObserver.forceFlush(),LI(t),e||t.docView&&t.docView.dirty){let n=Ub(t),r=t.state.selection;return n&&!n.eq(r)?t.dispatch(t.state.tr.setSelection(n)):(t.markCursor||e)&&!r.$from.node(r.$from.sharedDepth(r.to)).inlineContent?t.dispatch(t.state.tr.deleteSelection()):t.updateState(t.state),!0}return!1}}function a$(t,e){if(!t.dom.parentNode)return;let n=t.dom.parentNode.appendChild(document.createElement("div"));n.appendChild(e),n.style.cssText="position: fixed; left: -10000px; top: 10px";let r=getSelection(),i=document.createRange();i.selectNodeContents(e),t.dom.blur(),r.removeAllRanges(),r.addRange(i),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),t.focus()},50)}const gd=ii&&Zo<15||mc&&rF<604;Vr.copy=Wr.cut=(t,e)=>{let n=e,r=t.state.selection,i=n.type=="cut";if(r.empty)return;let s=gd?null:n.clipboardData,o=r.content(),{dom:l,text:a}=Vb(t,o);s?(n.preventDefault(),s.clearData(),s.setData("text/html",l.innerHTML),s.setData("text/plain",a)):a$(t,l),i&&t.dispatch(t.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))};function c$(t){return t.openStart==0&&t.openEnd==0&&t.content.childCount==1?t.content.firstChild:null}function u$(t,e){if(!t.dom.parentNode)return;let n=t.input.shiftKey||t.state.selection.$from.parent.type.spec.code,r=t.dom.parentNode.appendChild(document.createElement(n?"textarea":"div"));n||(r.contentEditable="true"),r.style.cssText="position: fixed; left: -10000px; top: 10px",r.focus();let i=t.input.shiftKey&&t.input.lastKeyCode!=45;setTimeout(()=>{t.focus(),r.parentNode&&r.parentNode.removeChild(r),n?yd(t,r.value,null,i,e):yd(t,r.textContent,r.innerHTML,i,e)},50)}function yd(t,e,n,r,i){let s=TI(t,e,n,r,t.state.selection.$from);if(t.someProp("handlePaste",a=>a(t,i,s||_e.empty)))return!0;if(!s)return!1;let o=c$(s),l=o?t.state.tr.replaceSelectionWith(o,r):t.state.tr.replaceSelection(s);return t.dispatch(l.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function _I(t){let e=t.getData("text/plain")||t.getData("Text");if(e)return e;let n=t.getData("text/uri-list");return n?n.replace(/\r?\n/g," "):""}Wr.paste=(t,e)=>{let n=e;if(t.composing&&!Js)return;let r=gd?null:n.clipboardData,i=t.input.shiftKey&&t.input.lastKeyCode!=45;r&&yd(t,_I(r),r.getData("text/html"),i,n)?n.preventDefault():u$(t,n)};class zI{constructor(e,n,r){this.slice=e,this.move=n,this.node=r}}const d$=Si?"altKey":"ctrlKey";function FI(t,e){let n=t.someProp("dragCopies",r=>!r(e));return n??!e[d$]}Vr.dragstart=(t,e)=>{let n=e,r=t.input.mouseDown;if(r&&r.done(),!n.dataTransfer)return;let i=t.state.selection,s=i.empty?null:t.posAtCoords(eg(n)),o;if(!(s&&s.pos>=i.from&&s.pos<=(i instanceof pt?i.to-1:i.to))){if(r&&r.mightDrag)o=pt.create(t.state.doc,r.mightDrag.pos);else if(n.target&&n.target.nodeType==1){let d=t.docView.nearestDesc(n.target,!0);d&&d.node.type.spec.draggable&&d!=t.docView&&(o=pt.create(t.state.doc,d.posBefore))}}let l=(o||t.state.selection).content(),{dom:a,text:c,slice:u}=Vb(t,l);(!n.dataTransfer.files.length||!lr||uI>120)&&n.dataTransfer.clearData(),n.dataTransfer.setData(gd?"Text":"text/html",a.innerHTML),n.dataTransfer.effectAllowed="copyMove",gd||n.dataTransfer.setData("text/plain",c),t.dragging=new zI(u,FI(t,n),o)};Vr.dragend=t=>{let e=t.dragging;window.setTimeout(()=>{t.dragging==e&&(t.dragging=null)},50)};Wr.dragover=Wr.dragenter=(t,e)=>e.preventDefault();Wr.drop=(t,e)=>{try{f$(t,e,t.dragging)}finally{t.dragging=null}};function f$(t,e,n){if(!e.dataTransfer)return;let r=t.posAtCoords(eg(e));if(!r)return;let i=t.state.doc.resolve(r.pos),s=n&&n.slice;s?t.someProp("transformPasted",p=>{s=p(s,t,!1)}):s=TI(t,_I(e.dataTransfer),gd?null:e.dataTransfer.getData("text/html"),!1,i);let o=!!(n&&FI(t,e));if(t.someProp("handleDrop",p=>p(t,e,s||_e.empty,o))){e.preventDefault();return}if(!s)return;e.preventDefault();let l=s?UM(t.state.doc,i.pos,s):i.pos;l==null&&(l=i.pos);let a=t.state.tr;if(o){let{node:p}=n;p?p.replace(a):a.deleteSelection()}let c=a.mapping.map(l),u=s.openStart==0&&s.openEnd==0&&s.content.childCount==1,d=a.doc;if(u?a.replaceRangeWith(c,c,s.content.firstChild):a.replaceRange(c,c,s),a.doc.eq(d))return;let f=a.doc.resolve(c);if(u&&pt.isSelectable(s.content.firstChild)&&f.nodeAfter&&f.nodeAfter.sameMarkup(s.content.firstChild))a.setSelection(new pt(f));else{let p=a.mapping.map(l);a.mapping.maps[a.mapping.maps.length-1].forEach((m,g,y,v)=>p=v),a.setSelection(Hb(t,f,a.doc.resolve(p)))}t.focus(),t.dispatch(a.setMeta("uiEvent","drop"))}Vr.focus=t=>{t.input.lastFocus=Date.now(),t.focused||(t.domObserver.stop(),t.dom.classList.add("ProseMirror-focused"),t.domObserver.start(),t.focused=!0,setTimeout(()=>{t.docView&&t.hasFocus()&&!t.domObserver.currentSelection.eq(t.domSelectionRange())&&eo(t)},20))};Vr.blur=(t,e)=>{let n=e;t.focused&&(t.domObserver.stop(),t.dom.classList.remove("ProseMirror-focused"),t.domObserver.start(),n.relatedTarget&&t.dom.contains(n.relatedTarget)&&t.domObserver.currentSelection.clear(),t.focused=!1)};Vr.beforeinput=(t,e)=>{if(lr&&Js&&e.inputType=="deleteContentBackward"){t.domObserver.flushSoon();let{domChangeCount:r}=t.input;setTimeout(()=>{if(t.input.domChangeCount!=r||(t.dom.blur(),t.focus(),t.someProp("handleKeyDown",s=>s(t,Nl(8,"Backspace")))))return;let{$cursor:i}=t.state.selection;i&&i.pos>0&&t.dispatch(t.state.tr.delete(i.pos-1,i.pos).scrollIntoView())},50)}};for(let t in Wr)Vr[t]=Wr[t];function vd(t,e){if(t==e)return!0;for(let n in t)if(t[n]!==e[n])return!1;for(let n in e)if(!(n in t))return!1;return!0}class kp{constructor(e,n){this.toDOM=e,this.spec=n||$l,this.side=this.spec.side||0}map(e,n,r,i){let{pos:s,deleted:o}=e.mapResult(n.from+i,this.side<0?-1:1);return o?null:new Fr(s-r,s-r,this)}valid(){return!0}eq(e){return this==e||e instanceof kp&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&vd(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}}class tl{constructor(e,n){this.attrs=e,this.spec=n||$l}map(e,n,r,i){let s=e.map(n.from+i,this.spec.inclusiveStart?-1:1)-r,o=e.map(n.to+i,this.spec.inclusiveEnd?1:-1)-r;return s>=o?null:new Fr(s,o,this)}valid(e,n){return n.from=e&&(!s||s(l.spec))&&r.push(l.copy(l.from+i,l.to+i))}for(let o=0;oe){let l=this.children[o]+1;this.children[o+2].findInner(e-l,n-l,r,i+l,s)}}map(e,n,r){return this==Nr||e.maps.length==0?this:this.mapInner(e,n,0,0,r||$l)}mapInner(e,n,r,i,s){let o;for(let l=0;l{let c=a+r,u;if(u=BI(n,l,c)){for(i||(i=this.children.slice());sl&&d.to=e){this.children[l]==e&&(r=this.children[l+2]);break}let s=e+1,o=s+n.content.size;for(let l=0;ls&&a.type instanceof tl){let c=Math.max(s,a.from)-s,u=Math.min(o,a.to)-s;ci.map(e,n,$l));return Po.from(r)}forChild(e,n){if(n.isLeaf)return Mn.empty;let r=[];for(let i=0;in instanceof Mn)?e:e.reduce((n,r)=>n.concat(r instanceof Mn?r:r.members),[]))}}forEachSet(e){for(let n=0;n{let y=g-m-(p-f);for(let v=0;vw+u-d)continue;let x=l[v]+u-d;p>=x?l[v+1]=f<=x?-2:-1:f>=u&&y&&(l[v]+=y,l[v+1]+=y)}d+=y}),u=n.maps[c].map(u,-1)}let a=!1;for(let c=0;c=r.content.size){a=!0;continue}let f=n.map(t[c+1]+s,-1),p=f-i,{index:m,offset:g}=r.content.findIndex(d),y=r.maybeChild(m);if(y&&g==d&&g+y.nodeSize==p){let v=l[c+2].mapInner(n,y,u+1,t[c]+s+1,o);v!=Nr?(l[c]=d,l[c+1]=p,l[c+2]=v):(l[c+1]=-2,a=!0)}else a=!0}if(a){let c=p$(l,t,e,n,i,s,o),u=Sp(c,r,0,o);e=u.local;for(let d=0;dn&&o.to{let c=BI(t,l,a+n);if(c){s=!0;let u=Sp(c,l,n+a+1,r);u!=Nr&&i.push(a,a+l.nodeSize,u)}});let o=$I(s?UI(t):t,-n).sort(Bl);for(let l=0;l0;)e++;t.splice(e,0,n)}function Oy(t){let e=[];return t.someProp("decorations",n=>{let r=n(t.state);r&&r!=Nr&&e.push(r)}),t.cursorWrapper&&e.push(Mn.create(t.state.doc,[t.cursorWrapper.deco])),Po.from(e)}const m$={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},g$=ii&&Zo<=11;class y${constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}}class v${constructor(e,n){this.view=e,this.handleDOMChange=n,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new y$,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(r=>{for(let i=0;ii.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():xr&&e.composing&&r.some(i=>i.type=="childList"&&i.target.nodeName=="TR")?(e.input.badSafariComposition=!0,this.flushSoon()):this.flush()}),g$&&(this.onCharData=r=>{this.queue.push({target:r.target,type:"characterData",oldValue:r.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,m$)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let n=0;nthis.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(iC(this.view)){if(this.suppressingSelectionUpdates)return eo(this.view);if(ii&&Zo<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&Ql(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let n=new Set,r;for(let s=e.focusNode;s;s=pc(s))n.add(s);for(let s=e.anchorNode;s;s=pc(s))if(n.has(s)){r=s;break}let i=r&&this.view.docView.nearestDesc(r);if(i&&i.ignoreMutation({type:"selection",target:r.nodeType==3?r.parentNode:r}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let n=this.pendingRecords();n.length&&(this.queue=[]);let r=e.domSelectionRange(),i=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(r)&&iC(e)&&!this.ignoreSelectionChange(r),s=-1,o=-1,l=!1,a=[];if(e.editable)for(let u=0;ud.nodeName=="BR");if(u.length==2){let[d,f]=u;d.parentNode&&d.parentNode.parentNode==f.parentNode?f.remove():d.remove()}else{let{focusNode:d}=this.currentSelection;for(let f of u){let p=f.parentNode;p&&p.nodeName=="LI"&&(!d||x$(e,d)!=p)&&f.remove()}}}else if((lr||xr)&&a.some(u=>u.nodeName=="BR")&&(e.input.lastKeyCode==8||e.input.lastKeyCode==46)){for(let u of a)if(u.nodeName=="BR"&&u.parentNode){let d=u.nextSibling;d&&d.nodeType==1&&d.contentEditable=="false"&&u.parentNode.removeChild(u)}}let c=null;s<0&&i&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)-1||i)&&(s>-1&&(e.docView.markDirty(s,o),w$(e)),e.input.badSafariComposition&&(e.input.badSafariComposition=!1,k$(e,a)),this.handleDOMChange(s,o,l,a),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(r)||eo(e),this.currentSelection.set(r))}registerMutation(e,n){if(n.indexOf(e.target)>-1)return null;let r=this.view.docView.nearestDesc(e.target);if(e.type=="attributes"&&(r==this.view.docView||e.attributeName=="contenteditable"||e.attributeName=="style"&&!e.oldValue&&!e.target.getAttribute("style"))||!r||r.ignoreMutation(e))return null;if(e.type=="childList"){for(let u=0;ui;y--){let v=r.childNodes[y-1],w=v.pmViewDesc;if(v.nodeName=="BR"&&!w){s=y;break}if(!w||w.size)break}let d=t.state.doc,f=t.someProp("domParser")||Ru.fromSchema(t.state.schema),p=d.resolve(o),m=null,g=f.parse(r,{topNode:p.parent,topMatch:p.parent.contentMatchAt(p.index()),topOpen:!0,from:i,to:s,preserveWhitespace:p.parent.type.whitespace=="pre"?"full":!0,findPositions:c,ruleFromNode:C$,context:p});if(c&&c[0].pos!=null){let y=c[0].pos,v=c[1]&&c[1].pos;v==null&&(v=y),m={anchor:y+o,head:v+o}}return{doc:g,sel:m,from:o,to:l}}function C$(t){let e=t.pmViewDesc;if(e)return e.parseRule();if(t.nodeName=="BR"&&t.parentNode){if(xr&&/^(ul|ol)$/i.test(t.parentNode.nodeName)){let n=document.createElement("div");return n.appendChild(document.createElement("li")),{skip:n}}else if(t.parentNode.lastChild==t||xr&&/^(tr|table)$/i.test(t.parentNode.nodeName))return{ignore:!0}}else if(t.nodeName=="IMG"&&t.getAttribute("mark-placeholder"))return{ignore:!0};return null}const E$=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|img|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function N$(t,e,n,r,i){let s=t.input.compositionPendingChanges||(t.composing?t.input.compositionID:0);if(t.input.compositionPendingChanges=0,e<0){let N=t.input.lastSelectionTime>Date.now()-50?t.input.lastSelectionOrigin:null,z=Ub(t,N);if(z&&!t.state.selection.eq(z)){if(lr&&Js&&t.input.lastKeyCode===13&&Date.now()-100L(t,Nl(13,"Enter"))))return;let X=t.state.tr.setSelection(z);N=="pointer"?X.setMeta("pointer",!0):N=="key"&&X.scrollIntoView(),s&&X.setMeta("composition",s),t.dispatch(X)}return}let o=t.state.doc.resolve(e),l=o.sharedDepth(n);e=o.before(l+1),n=t.state.doc.resolve(n).after(l+1);let a=t.state.selection,c=S$(t,e,n),u=t.state.doc,d=u.slice(c.from,c.to),f,p;t.input.lastKeyCode===8&&Date.now()-100Date.now()-225||Js)&&i.some(N=>N.nodeType==1&&!E$.test(N.nodeName))&&(!m||m.endA>=m.endB)&&t.someProp("handleKeyDown",N=>N(t,Nl(13,"Enter")))){t.input.lastIOSEnter=0;return}if(!m)if(r&&a instanceof St&&!a.empty&&a.$head.sameParent(a.$anchor)&&!t.composing&&!(c.sel&&c.sel.anchor!=c.sel.head))m={start:a.from,endA:a.to,endB:a.to};else{if(c.sel){let N=gC(t,t.state.doc,c.sel);if(N&&!N.eq(t.state.selection)){let z=t.state.tr.setSelection(N);s&&z.setMeta("composition",s),t.dispatch(z)}}return}t.state.selection.fromt.state.selection.from&&m.start<=t.state.selection.from+2&&t.state.selection.from>=c.from?m.start=t.state.selection.from:m.endA=t.state.selection.to-2&&t.state.selection.to<=c.to&&(m.endB+=t.state.selection.to-m.endA,m.endA=t.state.selection.to)),ii&&Zo<=11&&m.endB==m.start+1&&m.endA==m.start&&m.start>c.from&&c.doc.textBetween(m.start-c.from-1,m.start-c.from+1)=="  "&&(m.start--,m.endA--,m.endB--);let g=c.doc.resolveNoCache(m.start-c.from),y=c.doc.resolveNoCache(m.endB-c.from),v=u.resolve(m.start),w=g.sameParent(y)&&g.parent.inlineContent&&v.end()>=m.endA;if((mc&&t.input.lastIOSEnter>Date.now()-225&&(!w||i.some(N=>N.nodeName=="DIV"||N.nodeName=="P"))||!w&&g.posN(t,Nl(13,"Enter")))){t.input.lastIOSEnter=0;return}if(t.state.selection.anchor>m.start&&A$(u,m.start,m.endA,g,y)&&t.someProp("handleKeyDown",N=>N(t,Nl(8,"Backspace")))){Js&&lr&&t.domObserver.suppressSelectionUpdates();return}lr&&m.endB==m.start&&(t.input.lastChromeDelete=Date.now()),Js&&!w&&g.start()!=y.start()&&y.parentOffset==0&&g.depth==y.depth&&c.sel&&c.sel.anchor==c.sel.head&&c.sel.head==m.endA&&(m.endB-=2,y=c.doc.resolveNoCache(m.endB-c.from),setTimeout(()=>{t.someProp("handleKeyDown",function(N){return N(t,Nl(13,"Enter"))})},20));let x=m.start,E=m.endA,k=N=>{let z=N||t.state.tr.replace(x,E,c.doc.slice(m.start-c.from,m.endB-c.from));if(c.sel){let X=gC(t,z.doc,c.sel);X&&!(lr&&t.composing&&X.empty&&(m.start!=m.endB||t.input.lastChromeDeleteeo(t),20));let N=k(t.state.tr.delete(x,E)),z=u.resolve(m.start).marksAcross(u.resolve(m.endA));z&&N.ensureMarks(z),t.dispatch(N)}else if(m.endA==m.endB&&(M=T$(g.parent.content.cut(g.parentOffset,y.parentOffset),v.parent.content.cut(v.parentOffset,m.endA-v.start())))){let N=k(t.state.tr);M.type=="add"?N.addMark(x,E,M.mark):N.removeMark(x,E,M.mark),t.dispatch(N)}else if(g.parent.child(g.index()).isText&&g.index()==y.index()-(y.textOffset?0:1)){let N=g.parent.textBetween(g.parentOffset,y.parentOffset),z=()=>k(t.state.tr.insertText(N,x,E));t.someProp("handleTextInput",X=>X(t,x,E,N,z))||t.dispatch(z())}else t.dispatch(k());else t.dispatch(k())}function gC(t,e,n){return Math.max(n.anchor,n.head)>e.content.size?null:Hb(t,e.resolve(n.anchor),e.resolve(n.head))}function T$(t,e){let n=t.firstChild.marks,r=e.firstChild.marks,i=n,s=r,o,l,a;for(let u=0;uu.mark(l.addToSet(u.marks));else if(i.length==0&&s.length==1)l=s[0],o="remove",a=u=>u.mark(l.removeFromSet(u.marks));else return null;let c=[];for(let u=0;un||jy(o,!0,!1)0&&(e||t.indexAfter(r)==t.node(r).childCount);)r--,i++,e=!1;if(n){let s=t.node(r).maybeChild(t.indexAfter(r));for(;s&&!s.isLeaf;)s=s.firstChild,i++}return i}function M$(t,e,n,r,i){let s=t.findDiffStart(e,n);if(s==null)return null;let{a:o,b:l}=t.findDiffEnd(e,n+t.size,n+e.size);if(i=="end"){let a=Math.max(0,s-Math.min(o,l));r-=o+a-s}if(o=o?s-r:0;s-=a,s&&s=l?s-r:0;s-=a,s&&s=56320&&e<=57343&&n>=55296&&n<=56319}class HI{constructor(e,n){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new WF,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=n,this.state=n.state,this.directPlugins=n.plugins||[],this.directPlugins.forEach(kC),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement("div"),e&&(e.appendChild?e.appendChild(this.dom):typeof e=="function"?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=bC(this),wC(this),this.nodeViews=xC(this),this.docView=QS(this.state.doc,vC(this),Oy(this),this.dom,this),this.domObserver=new v$(this,(r,i,s,o)=>N$(this,r,i,s,o)),this.domObserver.start(),KF(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let n in e)this._props[n]=e[n];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&R0(this);let n=this._props;this._props=e,e.plugins&&(e.plugins.forEach(kC),this.directPlugins=e.plugins),this.updateStateInner(e.state,n)}setProps(e){let n={};for(let r in this._props)n[r]=this._props[r];n.state=this.state;for(let r in e)n[r]=e[r];this.update(n)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,n){var r;let i=this.state,s=!1,o=!1;e.storedMarks&&this.composing&&(LI(this),o=!0),this.state=e;let l=i.plugins!=e.plugins||this._props.plugins!=n.plugins;if(l||this._props.plugins!=n.plugins||this._props.nodeViews!=n.nodeViews){let p=xC(this);R$(p,this.nodeViews)&&(this.nodeViews=p,s=!0)}(l||n.handleDOMEvents!=this._props.handleDOMEvents)&&R0(this),this.editable=bC(this),wC(this);let a=Oy(this),c=vC(this),u=i.plugins!=e.plugins&&!i.doc.eq(e.doc)?"reset":e.scrollToSelection>i.scrollToSelection?"to selection":"preserve",d=s||!this.docView.matchesNode(e.doc,c,a);(d||!e.selection.eq(i.selection))&&(o=!0);let f=u=="preserve"&&o&&this.dom.style.overflowAnchor==null&&oF(this);if(o){this.domObserver.stop();let p=d&&(ii||lr)&&!this.composing&&!i.selection.empty&&!e.selection.empty&&I$(i.selection,e.selection);if(d){let m=lr?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=o$(this)),(s||!this.docView.update(e.doc,c,a,this))&&(this.docView.updateOuterDeco(c),this.docView.destroy(),this.docView=QS(e.doc,c,a,this.dom,this)),m&&(!this.trackWrites||!this.dom.contains(this.trackWrites))&&(p=!0)}p||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&IF(this))?eo(this,p):(CI(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(i),!((r=this.dragging)===null||r===void 0)&&r.node&&!i.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,i),u=="reset"?this.dom.scrollTop=0:u=="to selection"?this.scrollToSelection():f&&lF(f)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!(!e||!this.dom.contains(e.nodeType==1?e:e.parentNode))){if(!this.someProp("handleScrollToSelection",n=>n(this)))if(this.state.selection instanceof pt){let n=this.docView.domAfterPos(this.state.selection.from);n.nodeType==1&&KS(this,n.getBoundingClientRect(),e)}else KS(this,this.coordsAtPos(this.state.selection.head,1),e)}}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let n=0;n0&&this.state.doc.nodeAt(s))==r.node&&(i=s)}this.dragging=new zI(e.slice,e.move,i<0?void 0:pt.create(this.state.doc,i))}someProp(e,n){let r=this._props&&this._props[e],i;if(r!=null&&(i=n?n(r):r))return i;for(let o=0;on.ownerDocument.getSelection()),this._root=n}return e||document}updateRoot(){this._root=null}posAtCoords(e){return hF(this,e)}coordsAtPos(e,n=1){return gI(this,e,n)}domAtPos(e,n=0){return this.docView.domFromPos(e,n)}nodeDOM(e){let n=this.docView.descAt(e);return n?n.nodeDOM:null}posAtDOM(e,n,r=-1){let i=this.docView.posFromDOM(e,n,r);if(i==null)throw new RangeError("DOM position not inside the editor");return i}endOfTextblock(e,n){return vF(this,n||this.state,e)}pasteHTML(e,n){return yd(this,"",e,!1,n||new ClipboardEvent("paste"))}pasteText(e,n){return yd(this,e,null,!0,n||new ClipboardEvent("paste"))}serializeForClipboard(e){return Vb(this,e)}destroy(){this.docView&&(YF(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],Oy(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,Gz())}get isDestroyed(){return this.docView==null}dispatchEvent(e){return JF(this,e)}domSelectionRange(){let e=this.domSelection();return e?xr&&this.root.nodeType===11&&tF(this.dom.ownerDocument)==this.dom&&b$(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}}HI.prototype.dispatch=function(t){let e=this._props.dispatchTransaction;e?e.call(this,t):this.updateState(this.state.apply(t))};function vC(t){let e=Object.create(null);return e.class="ProseMirror",e.contenteditable=String(t.editable),t.someProp("attributes",n=>{if(typeof n=="function"&&(n=n(t.state)),n)for(let r in n)r=="class"?e.class+=" "+n[r]:r=="style"?e.style=(e.style?e.style+";":"")+n[r]:!e[r]&&r!="contenteditable"&&r!="nodeName"&&(e[r]=String(n[r]))}),e.translate||(e.translate="no"),[Fr.node(0,t.state.doc.content.size,e)]}function wC(t){if(t.markCursor){let e=document.createElement("img");e.className="ProseMirror-separator",e.setAttribute("mark-placeholder","true"),e.setAttribute("alt",""),t.cursorWrapper={dom:e,deco:Fr.widget(t.state.selection.from,e,{raw:!0,marks:t.markCursor})}}else t.cursorWrapper=null}function bC(t){return!t.someProp("editable",e=>e(t.state)===!1)}function I$(t,e){let n=Math.min(t.$anchor.sharedDepth(t.head),e.$anchor.sharedDepth(e.head));return t.$anchor.start(n)!=e.$anchor.start(n)}function xC(t){let e=Object.create(null);function n(r){for(let i in r)Object.prototype.hasOwnProperty.call(e,i)||(e[i]=r[i])}return t.someProp("nodeViews",n),t.someProp("markViews",n),e}function R$(t,e){let n=0,r=0;for(let i in t){if(t[i]!=e[i])return!0;n++}for(let i in e)r++;return n!=r}function kC(t){if(t.spec.state||t.spec.filterTransaction||t.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}var sl={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Cp={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},D$=typeof navigator<"u"&&/Mac/.test(navigator.platform),O$=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var vr=0;vr<10;vr++)sl[48+vr]=sl[96+vr]=String(vr);for(var vr=1;vr<=24;vr++)sl[vr+111]="F"+vr;for(var vr=65;vr<=90;vr++)sl[vr]=String.fromCharCode(vr+32),Cp[vr]=String.fromCharCode(vr);for(var Py in sl)Cp.hasOwnProperty(Py)||(Cp[Py]=sl[Py]);function j$(t){var e=D$&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||O$&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",n=!e&&t.key||(t.shiftKey?Cp:sl)[t.keyCode]||t.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}const P$=typeof navigator<"u"&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),L$=typeof navigator<"u"&&/Win/.test(navigator.platform);function _$(t){let e=t.split(/-(?!$)/),n=e[e.length-1];n=="Space"&&(n=" ");let r,i,s,o;for(let l=0;l{for(var n in e)$$(t,n,{get:e[n],enumerable:!0})};function tg(t){const{state:e,transaction:n}=t;let{selection:r}=n,{doc:i}=n,{storedMarks:s}=n;return{...e,apply:e.apply.bind(e),applyTransaction:e.applyTransaction.bind(e),plugins:e.plugins,schema:e.schema,reconfigure:e.reconfigure.bind(e),toJSON:e.toJSON.bind(e),get storedMarks(){return s},get selection(){return r},get doc(){return i},get tr(){return r=n.selection,i=n.doc,s=n.storedMarks,n}}}var ng=class{constructor(t){this.editor=t.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=t.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){const{rawCommands:t,editor:e,state:n}=this,{view:r}=e,{tr:i}=n,s=this.buildProps(i);return Object.fromEntries(Object.entries(t).map(([o,l])=>[o,(...c)=>{const u=l(...c)(s);return!i.getMeta("preventDispatch")&&!this.hasCustomState&&r.dispatch(i),u}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(t,e=!0){const{rawCommands:n,editor:r,state:i}=this,{view:s}=r,o=[],l=!!t,a=t||i.tr,c=()=>(!l&&e&&!a.getMeta("preventDispatch")&&!this.hasCustomState&&s.dispatch(a),o.every(d=>d===!0)),u={...Object.fromEntries(Object.entries(n).map(([d,f])=>[d,(...m)=>{const g=this.buildProps(a,e),y=f(...m)(g);return o.push(y),u}])),run:c};return u}createCan(t){const{rawCommands:e,state:n}=this,r=!1,i=t||n.tr,s=this.buildProps(i,r);return{...Object.fromEntries(Object.entries(e).map(([l,a])=>[l,(...c)=>a(...c)({...s,dispatch:void 0})])),chain:()=>this.createChain(i,r)}}buildProps(t,e=!0){const{rawCommands:n,editor:r,state:i}=this,{view:s}=r,o={tr:t,editor:r,view:s,state:tg({state:i,transaction:t}),dispatch:e?()=>{}:void 0,chain:()=>this.createChain(t,e),can:()=>this.createCan(t),get commands(){return Object.fromEntries(Object.entries(n).map(([l,a])=>[l,(...c)=>a(...c)(o)]))}};return o}},VI={};Xb(VI,{blur:()=>B$,clearContent:()=>U$,clearNodes:()=>H$,command:()=>V$,createParagraphNear:()=>W$,cut:()=>K$,deleteCurrentNode:()=>Y$,deleteNode:()=>q$,deleteRange:()=>J$,deleteSelection:()=>G$,enter:()=>X$,exitCode:()=>Q$,extendMarkRange:()=>Z$,first:()=>eB,focus:()=>nB,forEach:()=>rB,insertContent:()=>iB,insertContentAt:()=>lB,joinBackward:()=>uB,joinDown:()=>cB,joinForward:()=>dB,joinItemBackward:()=>fB,joinItemForward:()=>hB,joinTextblockBackward:()=>pB,joinTextblockForward:()=>mB,joinUp:()=>aB,keyboardShortcut:()=>yB,lift:()=>vB,liftEmptyBlock:()=>wB,liftListItem:()=>bB,newlineInCode:()=>xB,resetAttributes:()=>kB,scrollIntoView:()=>SB,selectAll:()=>CB,selectNodeBackward:()=>EB,selectNodeForward:()=>NB,selectParentNode:()=>TB,selectTextblockEnd:()=>AB,selectTextblockStart:()=>MB,setContent:()=>IB,setMark:()=>qB,setMeta:()=>JB,setNode:()=>GB,setNodeSelection:()=>XB,setTextDirection:()=>QB,setTextSelection:()=>ZB,sinkListItem:()=>e5,splitBlock:()=>t5,splitListItem:()=>n5,toggleList:()=>r5,toggleMark:()=>i5,toggleNode:()=>s5,toggleWrap:()=>o5,undoInputRule:()=>l5,unsetAllMarks:()=>a5,unsetMark:()=>c5,unsetTextDirection:()=>u5,updateAttributes:()=>d5,wrapIn:()=>f5,wrapInList:()=>h5});var B$=()=>({editor:t,view:e})=>(requestAnimationFrame(()=>{var n;t.isDestroyed||(e.dom.blur(),(n=window==null?void 0:window.getSelection())==null||n.removeAllRanges())}),!0),U$=(t=!0)=>({commands:e})=>e.setContent("",{emitUpdate:t}),H$=()=>({state:t,tr:e,dispatch:n})=>{const{selection:r}=e,{ranges:i}=r;return n&&i.forEach(({$from:s,$to:o})=>{t.doc.nodesBetween(s.pos,o.pos,(l,a)=>{if(l.type.isText)return;const{doc:c,mapping:u}=e,d=c.resolve(u.map(a)),f=c.resolve(u.map(a+l.nodeSize)),p=d.blockRange(f);if(!p)return;const m=jc(p);if(l.type.isTextblock){const{defaultType:g}=d.parent.contentMatchAt(d.index());e.setNodeMarkup(p.start,g)}(m||m===0)&&e.lift(p,m)})}),!0},V$=t=>e=>t(e),W$=()=>({state:t,dispatch:e})=>sI(t,e),K$=(t,e)=>({editor:n,tr:r})=>{const{state:i}=n,s=i.doc.slice(t.from,t.to);r.deleteRange(t.from,t.to);const o=r.mapping.map(e);return r.insert(o,s.content),r.setSelection(new St(r.doc.resolve(Math.max(o-1,0)))),!0},Y$=()=>({tr:t,dispatch:e})=>{const{selection:n}=t,r=n.$anchor.node();if(r.content.size>0)return!1;const i=t.selection.$anchor;for(let s=i.depth;s>0;s-=1)if(i.node(s).type===r.type){if(e){const l=i.before(s),a=i.after(s);t.delete(l,a).scrollIntoView()}return!0}return!1};function Kn(t,e){if(typeof t=="string"){if(!e.nodes[t])throw Error(`There is no node type named '${t}'. Maybe you forgot to add the extension?`);return e.nodes[t]}return t}var q$=t=>({tr:e,state:n,dispatch:r})=>{const i=Kn(t,n.schema),s=e.selection.$anchor;for(let o=s.depth;o>0;o-=1)if(s.node(o).type===i){if(r){const a=s.before(o),c=s.after(o);e.delete(a,c).scrollIntoView()}return!0}return!1},J$=t=>({tr:e,dispatch:n})=>{const{from:r,to:i}=t;return n&&e.delete(r,i),!0},G$=()=>({state:t,dispatch:e})=>Lb(t,e),X$=()=>({commands:t})=>t.keyboardShortcut("Enter"),Q$=()=>({state:t,dispatch:e})=>Pz(t,e);function Qb(t){return Object.prototype.toString.call(t)==="[object RegExp]"}function Ep(t,e,n={strict:!0}){const r=Object.keys(e);return r.length?r.every(i=>n.strict?e[i]===t[i]:Qb(e[i])?e[i].test(t[i]):e[i]===t[i]):!0}function WI(t,e,n={}){return t.find(r=>r.type===e&&Ep(Object.fromEntries(Object.keys(n).map(i=>[i,r.attrs[i]])),n))}function SC(t,e,n={}){return!!WI(t,e,n)}function Zb(t,e,n){var r;if(!t||!e)return;let i=t.parent.childAfter(t.parentOffset);if((!i.node||!i.node.marks.some(u=>u.type===e))&&(i=t.parent.childBefore(t.parentOffset)),!i.node||!i.node.marks.some(u=>u.type===e)||(n=n||((r=i.node.marks[0])==null?void 0:r.attrs),!WI([...i.node.marks],e,n)))return;let o=i.index,l=t.start()+i.offset,a=o+1,c=l+i.node.nodeSize;for(;o>0&&SC([...t.parent.child(o-1).marks],e,n);)o-=1,l-=t.parent.child(o).nodeSize;for(;a({tr:n,state:r,dispatch:i})=>{const s=mo(t,r.schema),{doc:o,selection:l}=n,{$from:a,from:c,to:u}=l;if(i){const d=Zb(a,s,e);if(d&&d.from<=c&&d.to>=u){const f=St.create(o,d.from,d.to);n.setSelection(f)}}return!0},eB=t=>e=>{const n=typeof t=="function"?t(e):t;for(let r=0;r({editor:n,view:r,tr:i,dispatch:s})=>{e={scrollIntoView:!0,...e};const o=()=>{(Np()||CC())&&r.dom.focus(),tB()&&!Np()&&!CC()&&r.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),e!=null&&e.scrollIntoView&&n.commands.scrollIntoView())})};try{if(r.hasFocus()&&t===null||t===!1)return!0}catch{return!1}if(s&&t===null&&!ex(n.state.selection))return o(),!0;const l=KI(i.doc,t)||n.state.selection,a=n.state.selection.eq(l);return s&&(a||i.setSelection(l),a&&i.storedMarks&&i.setStoredMarks(i.storedMarks),o()),!0},rB=(t,e)=>n=>t.every((r,i)=>e(r,{...n,index:i})),iB=(t,e)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},t,e),YI=t=>{const e=t.childNodes;for(let n=e.length-1;n>=0;n-=1){const r=e[n];r.nodeType===3&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?t.removeChild(r):r.nodeType===1&&YI(r)}return t};function Hf(t){if(typeof window>"u")throw new Error("[tiptap error]: there is no window object available, so this function cannot be used");const e=`${t}`,n=new window.DOMParser().parseFromString(e,"text/html").body;return YI(n)}function wd(t,e,n){if(t instanceof Qo||t instanceof ve)return t;n={slice:!0,parseOptions:{},...n};const r=typeof t=="object"&&t!==null,i=typeof t=="string";if(r)try{if(Array.isArray(t)&&t.length>0)return ve.fromArray(t.map(l=>e.nodeFromJSON(l)));const o=e.nodeFromJSON(t);return n.errorOnInvalidContent&&o.check(),o}catch(s){if(n.errorOnInvalidContent)throw new Error("[tiptap error]: Invalid JSON content",{cause:s});return console.warn("[tiptap warn]: Invalid content.","Passed value:",t,"Error:",s),wd("",e,n)}if(i){if(n.errorOnInvalidContent){let o=!1,l="";const a=new RM({topNode:e.spec.topNode,marks:e.spec.marks,nodes:e.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:c=>(o=!0,l=typeof c=="string"?c:c.outerHTML,null)}]}})});if(n.slice?Ru.fromSchema(a).parseSlice(Hf(t),n.parseOptions):Ru.fromSchema(a).parse(Hf(t),n.parseOptions),n.errorOnInvalidContent&&o)throw new Error("[tiptap error]: Invalid HTML content",{cause:new Error(`Invalid element found: ${l}`)})}const s=Ru.fromSchema(e);return n.slice?s.parseSlice(Hf(t),n.parseOptions).content:s.parse(Hf(t),n.parseOptions)}return wd("",e,n)}function sB(t,e,n){const r=t.steps.length-1;if(r{o===0&&(o=u)}),t.setSelection(Nt.near(t.doc.resolve(o),n))}var oB=t=>!("type"in t),lB=(t,e,n)=>({tr:r,dispatch:i,editor:s})=>{var o;if(i){n={parseOptions:s.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let l;const a=y=>{s.emit("contentError",{editor:s,error:y,disableCollaboration:()=>{"collaboration"in s.storage&&typeof s.storage.collaboration=="object"&&s.storage.collaboration&&(s.storage.collaboration.isDisabled=!0)}})},c={preserveWhitespace:"full",...n.parseOptions};if(!n.errorOnInvalidContent&&!s.options.enableContentCheck&&s.options.emitContentError)try{wd(e,s.schema,{parseOptions:c,errorOnInvalidContent:!0})}catch(y){a(y)}try{l=wd(e,s.schema,{parseOptions:c,errorOnInvalidContent:(o=n.errorOnInvalidContent)!=null?o:s.options.enableContentCheck})}catch(y){return a(y),!1}let{from:u,to:d}=typeof t=="number"?{from:t,to:t}:{from:t.from,to:t.to},f=!0,p=!0;if((oB(l)?l:[l]).forEach(y=>{y.check(),f=f?y.isText&&y.marks.length===0:!1,p=p?y.isBlock:!1}),u===d&&p){const{parent:y}=r.doc.resolve(u);y.isTextblock&&!y.type.spec.code&&!y.childCount&&(u-=1,d+=1)}let g;if(f){if(Array.isArray(e))g=e.map(y=>y.text||"").join("");else if(e instanceof ve){let y="";e.forEach(v=>{v.text&&(y+=v.text)}),g=y}else typeof e=="object"&&e&&e.text?g=e.text:g=e;r.insertText(g,u,d)}else{g=l;const y=r.doc.resolve(u),v=y.node(),w=y.parentOffset===0,x=v.isText||v.isTextblock,E=v.content.size>0;w&&x&&E&&(u=Math.max(0,u-1)),r.replaceWith(u,d,g)}n.updateSelection&&sB(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta("applyInputRules",{from:u,text:g}),n.applyPasteRules&&r.setMeta("applyPasteRules",{from:u,text:g})}return!0},aB=()=>({state:t,dispatch:e})=>Dz(t,e),cB=()=>({state:t,dispatch:e})=>Oz(t,e),uB=()=>({state:t,dispatch:e})=>QM(t,e),dB=()=>({state:t,dispatch:e})=>nI(t,e),fB=()=>({state:t,dispatch:e,tr:n})=>{try{const r=Jm(t.doc,t.selection.$from.pos,-1);return r==null?!1:(n.join(r,2),e&&e(n),!0)}catch{return!1}},hB=()=>({state:t,dispatch:e,tr:n})=>{try{const r=Jm(t.doc,t.selection.$from.pos,1);return r==null?!1:(n.join(r,2),e&&e(n),!0)}catch{return!1}},pB=()=>({state:t,dispatch:e})=>Iz(t,e),mB=()=>({state:t,dispatch:e})=>Rz(t,e);function qI(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function gB(t){const e=t.split(/-(?!$)/);let n=e[e.length-1];n==="Space"&&(n=" ");let r,i,s,o;for(let l=0;l({editor:e,view:n,tr:r,dispatch:i})=>{const s=gB(t).split(/-(?!$)/),o=s.find(c=>!["Alt","Ctrl","Meta","Shift"].includes(c)),l=new KeyboardEvent("keydown",{key:o==="Space"?" ":o,altKey:s.includes("Alt"),ctrlKey:s.includes("Ctrl"),metaKey:s.includes("Meta"),shiftKey:s.includes("Shift"),bubbles:!0,cancelable:!0}),a=e.captureTransaction(()=>{n.someProp("handleKeyDown",c=>c(n,l))});return a==null||a.steps.forEach(c=>{const u=c.map(r.mapping);u&&i&&r.maybeStep(u)}),!0};function ol(t,e,n={}){const{from:r,to:i,empty:s}=t.selection,o=e?Kn(e,t.schema):null,l=[];t.doc.nodesBetween(r,i,(d,f)=>{if(d.isText)return;const p=Math.max(r,f),m=Math.min(i,f+d.nodeSize);l.push({node:d,from:p,to:m})});const a=i-r,c=l.filter(d=>o?o.name===d.node.type.name:!0).filter(d=>Ep(d.node.attrs,n,{strict:!1}));return s?!!c.length:c.reduce((d,f)=>d+f.to-f.from,0)>=a}var vB=(t,e={})=>({state:n,dispatch:r})=>{const i=Kn(t,n.schema);return ol(n,i,e)?jz(n,r):!1},wB=()=>({state:t,dispatch:e})=>oI(t,e),bB=t=>({state:e,dispatch:n})=>{const r=Kn(t,e.schema);return Kz(r)(e,n)},xB=()=>({state:t,dispatch:e})=>iI(t,e);function rg(t,e){return e.nodes[t]?"node":e.marks[t]?"mark":null}function EC(t,e){const n=typeof e=="string"?[e]:e;return Object.keys(t).reduce((r,i)=>(n.includes(i)||(r[i]=t[i]),r),{})}var kB=(t,e)=>({tr:n,state:r,dispatch:i})=>{let s=null,o=null;const l=rg(typeof t=="string"?t:t.name,r.schema);if(!l)return!1;l==="node"&&(s=Kn(t,r.schema)),l==="mark"&&(o=mo(t,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{r.doc.nodesBetween(c.$from.pos,c.$to.pos,(u,d)=>{s&&s===u.type&&(a=!0,i&&n.setNodeMarkup(d,void 0,EC(u.attrs,e))),o&&u.marks.length&&u.marks.forEach(f=>{o===f.type&&(a=!0,i&&n.addMark(d,d+u.nodeSize,o.create(EC(f.attrs,e))))})})}),a},SB=()=>({tr:t,dispatch:e})=>(e&&t.scrollIntoView(),!0),CB=()=>({tr:t,dispatch:e})=>{if(e){const n=new ri(t.doc);t.setSelection(n)}return!0},EB=()=>({state:t,dispatch:e})=>eI(t,e),NB=()=>({state:t,dispatch:e})=>rI(t,e),TB=()=>({state:t,dispatch:e})=>zz(t,e),AB=()=>({state:t,dispatch:e})=>Bz(t,e),MB=()=>({state:t,dispatch:e})=>$z(t,e);function D0(t,e,n={},r={}){return wd(t,e,{slice:!1,parseOptions:n,errorOnInvalidContent:r.errorOnInvalidContent})}var IB=(t,{errorOnInvalidContent:e,emitUpdate:n=!0,parseOptions:r={}}={})=>({editor:i,tr:s,dispatch:o,commands:l})=>{const{doc:a}=s;if(r.preserveWhitespace!=="full"){const c=D0(t,i.schema,r,{errorOnInvalidContent:e??i.options.enableContentCheck});return o&&s.replaceWith(0,a.content.size,c).setMeta("preventUpdate",!n),!0}return o&&s.setMeta("preventUpdate",!n),l.insertContentAt({from:0,to:a.content.size},t,{parseOptions:r,errorOnInvalidContent:e??i.options.enableContentCheck})};function JI(t,e){const n=mo(e,t.schema),{from:r,to:i,empty:s}=t.selection,o=[];s?(t.storedMarks&&o.push(...t.storedMarks),o.push(...t.selection.$head.marks())):t.doc.nodesBetween(r,i,a=>{o.push(...a.marks)});const l=o.find(a=>a.type.name===n.name);return l?{...l.attrs}:{}}function GI(t,e){const n=new YM(t);return e.forEach(r=>{r.steps.forEach(i=>{n.step(i)})}),n}function RB(t){for(let e=0;e{n(i)&&r.push({node:i,pos:s})}),r}function OB(t,e){for(let n=t.depth;n>0;n-=1){const r=t.node(n);if(e(r))return{pos:n>0?t.before(n):0,start:t.start(n),depth:n,node:r}}}function ig(t){return e=>OB(e.$from,t)}function ht(t,e,n){return t.config[e]===void 0&&t.parent?ht(t.parent,e,n):typeof t.config[e]=="function"?t.config[e].bind({...n,parent:t.parent?ht(t.parent,e,n):null}):t.config[e]}function tx(t){return t.map(e=>{const n={name:e.name,options:e.options,storage:e.storage},r=ht(e,"addExtensions",n);return r?[e,...tx(r())]:e}).flat(10)}function nx(t,e){const n=ua.fromSchema(e).serializeFragment(t),i=document.implementation.createHTMLDocument().createElement("div");return i.appendChild(n),i.innerHTML}function XI(t){return typeof t=="function"}function an(t,e=void 0,...n){return XI(t)?e?t.bind(e)(...n):t(...n):t}function jB(t={}){return Object.keys(t).length===0&&t.constructor===Object}function gc(t){const e=t.filter(i=>i.type==="extension"),n=t.filter(i=>i.type==="node"),r=t.filter(i=>i.type==="mark");return{baseExtensions:e,nodeExtensions:n,markExtensions:r}}function QI(t){const e=[],{nodeExtensions:n,markExtensions:r}=gc(t),i=[...n,...r],s={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1};return t.forEach(o=>{const l={name:o.name,options:o.options,storage:o.storage,extensions:i},a=ht(o,"addGlobalAttributes",l);if(!a)return;a().forEach(u=>{u.types.forEach(d=>{Object.entries(u.attributes).forEach(([f,p])=>{e.push({type:d,name:f,attribute:{...s,...p}})})})})}),i.forEach(o=>{const l={name:o.name,options:o.options,storage:o.storage},a=ht(o,"addAttributes",l);if(!a)return;const c=a();Object.entries(c).forEach(([u,d])=>{const f={...s,...d};typeof(f==null?void 0:f.default)=="function"&&(f.default=f.default()),f!=null&&f.isRequired&&(f==null?void 0:f.default)===void 0&&delete f.default,e.push({type:o.name,name:u,attribute:f})})}),e}function Yn(...t){return t.filter(e=>!!e).reduce((e,n)=>{const r={...e};return Object.entries(n).forEach(([i,s])=>{if(!r[i]){r[i]=s;return}if(i==="class"){const l=s?String(s).split(" "):[],a=r[i]?r[i].split(" "):[],c=l.filter(u=>!a.includes(u));r[i]=[...a,...c].join(" ")}else if(i==="style"){const l=s?s.split(";").map(u=>u.trim()).filter(Boolean):[],a=r[i]?r[i].split(";").map(u=>u.trim()).filter(Boolean):[],c=new Map;a.forEach(u=>{const[d,f]=u.split(":").map(p=>p.trim());c.set(d,f)}),l.forEach(u=>{const[d,f]=u.split(":").map(p=>p.trim());c.set(d,f)}),r[i]=Array.from(c.entries()).map(([u,d])=>`${u}: ${d}`).join("; ")}else r[i]=s}),r},{})}function bd(t,e){return e.filter(n=>n.type===t.type.name).filter(n=>n.attribute.rendered).map(n=>n.attribute.renderHTML?n.attribute.renderHTML(t.attrs)||{}:{[n.name]:t.attrs[n.name]}).reduce((n,r)=>Yn(n,r),{})}function PB(t){return typeof t!="string"?t:t.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(t):t==="true"?!0:t==="false"?!1:t}function NC(t,e){return"style"in t?t:{...t,getAttrs:n=>{const r=t.getAttrs?t.getAttrs(n):t.attrs;if(r===!1)return!1;const i=e.reduce((s,o)=>{const l=o.attribute.parseHTML?o.attribute.parseHTML(n):PB(n.getAttribute(o.name));return l==null?s:{...s,[o.name]:l}},{});return{...r,...i}}}}function TC(t){return Object.fromEntries(Object.entries(t).filter(([e,n])=>e==="attrs"&&jB(n)?!1:n!=null))}function AC(t){var e,n;const r={};return!((e=t==null?void 0:t.attribute)!=null&&e.isRequired)&&"default"in((t==null?void 0:t.attribute)||{})&&(r.default=t.attribute.default),((n=t==null?void 0:t.attribute)==null?void 0:n.validate)!==void 0&&(r.validate=t.attribute.validate),[t.name,r]}function LB(t,e){var n;const r=QI(t),{nodeExtensions:i,markExtensions:s}=gc(t),o=(n=i.find(c=>ht(c,"topNode")))==null?void 0:n.name,l=Object.fromEntries(i.map(c=>{const u=r.filter(v=>v.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:e},f=t.reduce((v,w)=>{const x=ht(w,"extendNodeSchema",d);return{...v,...x?x(c):{}}},{}),p=TC({...f,content:an(ht(c,"content",d)),marks:an(ht(c,"marks",d)),group:an(ht(c,"group",d)),inline:an(ht(c,"inline",d)),atom:an(ht(c,"atom",d)),selectable:an(ht(c,"selectable",d)),draggable:an(ht(c,"draggable",d)),code:an(ht(c,"code",d)),whitespace:an(ht(c,"whitespace",d)),linebreakReplacement:an(ht(c,"linebreakReplacement",d)),defining:an(ht(c,"defining",d)),isolating:an(ht(c,"isolating",d)),attrs:Object.fromEntries(u.map(AC))}),m=an(ht(c,"parseHTML",d));m&&(p.parseDOM=m.map(v=>NC(v,u)));const g=ht(c,"renderHTML",d);g&&(p.toDOM=v=>g({node:v,HTMLAttributes:bd(v,u)}));const y=ht(c,"renderText",d);return y&&(p.toText=y),[c.name,p]})),a=Object.fromEntries(s.map(c=>{const u=r.filter(y=>y.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:e},f=t.reduce((y,v)=>{const w=ht(v,"extendMarkSchema",d);return{...y,...w?w(c):{}}},{}),p=TC({...f,inclusive:an(ht(c,"inclusive",d)),excludes:an(ht(c,"excludes",d)),group:an(ht(c,"group",d)),spanning:an(ht(c,"spanning",d)),code:an(ht(c,"code",d)),attrs:Object.fromEntries(u.map(AC))}),m=an(ht(c,"parseHTML",d));m&&(p.parseDOM=m.map(y=>NC(y,u)));const g=ht(c,"renderHTML",d);return g&&(p.toDOM=y=>g({mark:y,HTMLAttributes:bd(y,u)})),[c.name,p]}));return new RM({topNode:o,nodes:l,marks:a})}function _B(t){const e=t.filter((n,r)=>t.indexOf(n)!==r);return Array.from(new Set(e))}function Tp(t){return t.sort((n,r)=>{const i=ht(n,"priority")||100,s=ht(r,"priority")||100;return i>s?-1:ir.name));return n.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${n.map(r=>`'${r}'`).join(", ")}]. This can lead to issues.`),e}function e2(t,e,n){const{from:r,to:i}=e,{blockSeparator:s=` - -`,textSerializers:o={}}=n||{};let l="";return t.nodesBetween(r,i,(a,c,u,d)=>{var f;a.isBlock&&c>r&&(l+=s);const p=o==null?void 0:o[a.type.name];if(p)return u&&(l+=p({node:a,pos:c,parent:u,index:d,range:e})),!1;a.isText&&(l+=(f=a==null?void 0:a.text)==null?void 0:f.slice(Math.max(r,c)-c,i-c))}),l}function t2(t,e){const n={from:0,to:t.content.size};return e2(t,n,e)}function rx(t){return Object.fromEntries(Object.entries(t.nodes).filter(([,e])=>e.spec.toText).map(([e,n])=>[e,n.spec.toText]))}function zB(t,e){const n=Kn(e,t.schema),{from:r,to:i}=t.selection,s=[];t.doc.nodesBetween(r,i,l=>{s.push(l)});const o=s.reverse().find(l=>l.type.name===n.name);return o?{...o.attrs}:{}}function n2(t,e){const n=rg(typeof e=="string"?e:e.name,t.schema);return n==="node"?zB(t,e):n==="mark"?JI(t,e):{}}function FB(t,e=JSON.stringify){const n={};return t.filter(r=>{const i=e(r);return Object.prototype.hasOwnProperty.call(n,i)?!1:n[i]=!0})}function $B(t){const e=FB(t);return e.length===1?e:e.filter((n,r)=>!e.filter((s,o)=>o!==r).some(s=>n.oldRange.from>=s.oldRange.from&&n.oldRange.to<=s.oldRange.to&&n.newRange.from>=s.newRange.from&&n.newRange.to<=s.newRange.to))}function r2(t){const{mapping:e,steps:n}=t,r=[];return e.maps.forEach((i,s)=>{const o=[];if(i.ranges.length)i.forEach((l,a)=>{o.push({from:l,to:a})});else{const{from:l,to:a}=n[s];if(l===void 0||a===void 0)return;o.push({from:l,to:a})}o.forEach(({from:l,to:a})=>{const c=e.slice(s).map(l,-1),u=e.slice(s).map(a),d=e.invert().map(c,-1),f=e.invert().map(u);r.push({oldRange:{from:d,to:f},newRange:{from:c,to:u}})})}),$B(r)}function ix(t,e,n){const r=[];return t===e?n.resolve(t).marks().forEach(i=>{const s=n.resolve(t),o=Zb(s,i.type);o&&r.push({mark:i,...o})}):n.nodesBetween(t,e,(i,s)=>{!i||(i==null?void 0:i.nodeSize)===void 0||r.push(...i.marks.map(o=>({from:s,to:s+i.nodeSize,mark:o})))}),r}var BB=(t,e,n,r=20)=>{const i=t.doc.resolve(n);let s=r,o=null;for(;s>0&&o===null;){const l=i.node(s);(l==null?void 0:l.type.name)===e?o=l:s-=1}return[o,s]};function Vf(t,e){return e.nodes[t]||e.marks[t]||null}function Ch(t,e,n){return Object.fromEntries(Object.entries(n).filter(([r])=>{const i=t.find(s=>s.type===e&&s.name===r);return i?i.attribute.keepOnSplit:!1}))}var UB=(t,e=500)=>{let n="";const r=t.parentOffset;return t.parent.nodesBetween(Math.max(0,r-e),r,(i,s,o,l)=>{var a,c;const u=((c=(a=i.type.spec).toText)==null?void 0:c.call(a,{node:i,pos:s,parent:o,index:l}))||i.textContent||"%leaf%";n+=i.isAtom&&!i.isText?u:u.slice(0,Math.max(0,r-s))}),n};function O0(t,e,n={}){const{empty:r,ranges:i}=t.selection,s=e?mo(e,t.schema):null;if(r)return!!(t.storedMarks||t.selection.$from.marks()).filter(d=>s?s.name===d.type.name:!0).find(d=>Ep(d.attrs,n,{strict:!1}));let o=0;const l=[];if(i.forEach(({$from:d,$to:f})=>{const p=d.pos,m=f.pos;t.doc.nodesBetween(p,m,(g,y)=>{if(!g.isText&&!g.marks.length)return;const v=Math.max(p,y),w=Math.min(m,y+g.nodeSize),x=w-v;o+=x,l.push(...g.marks.map(E=>({mark:E,from:v,to:w})))})}),o===0)return!1;const a=l.filter(d=>s?s.name===d.mark.type.name:!0).filter(d=>Ep(d.mark.attrs,n,{strict:!1})).reduce((d,f)=>d+f.to-f.from,0),c=l.filter(d=>s?d.mark.type!==s&&d.mark.type.excludes(s):!0).reduce((d,f)=>d+f.to-f.from,0);return(a>0?a+c:a)>=o}function HB(t,e,n={}){if(!e)return ol(t,null,n)||O0(t,null,n);const r=rg(e,t.schema);return r==="node"?ol(t,e,n):r==="mark"?O0(t,e,n):!1}var VB=(t,e)=>{const{$from:n,$to:r,$anchor:i}=t.selection;if(e){const s=ig(l=>l.type.name===e)(t.selection);if(!s)return!1;const o=t.doc.resolve(s.pos+1);return i.pos+1===o.end()}return!(r.parentOffset{const{$from:e,$to:n}=t.selection;return!(e.parentOffset>0||e.pos!==n.pos)};function MC(t,e){return Array.isArray(e)?e.some(n=>(typeof n=="string"?n:n.name)===t.name):e}function IC(t,e){const{nodeExtensions:n}=gc(e),r=n.find(o=>o.name===t);if(!r)return!1;const i={name:r.name,options:r.options,storage:r.storage},s=an(ht(r,"group",i));return typeof s!="string"?!1:s.split(" ").includes("list")}function sg(t,{checkChildren:e=!0,ignoreWhitespace:n=!1}={}){var r;if(n){if(t.type.name==="hardBreak")return!0;if(t.isText)return/^\s*$/m.test((r=t.text)!=null?r:"")}if(t.isText)return!t.text;if(t.isAtom||t.isLeaf)return!1;if(t.content.childCount===0)return!0;if(e){let i=!0;return t.content.forEach(s=>{i!==!1&&(sg(s,{ignoreWhitespace:n,checkChildren:e})||(i=!1))}),i}return!1}function i2(t){return t instanceof pt}var sx=class s2{constructor(e){this.position=e}static fromJSON(e){return new s2(e.position)}toJSON(){return{position:this.position}}};function o2(t,e){const n=e.mapping.mapResult(t.position);return{position:new sx(n.pos),mapResult:n}}function KB(t){return new sx(t)}function l2(t,e,n){const i=t.state.doc.content.size,s=Gs(e,0,i),o=Gs(n,0,i),l=t.coordsAtPos(s),a=t.coordsAtPos(o,-1),c=Math.min(l.top,a.top),u=Math.max(l.bottom,a.bottom),d=Math.min(l.left,a.left),f=Math.max(l.right,a.right),p=f-d,m=u-c,v={top:c,bottom:u,left:d,right:f,width:p,height:m,x:d,y:c};return{...v,toJSON:()=>v}}function YB(t,e,n){var r;const{selection:i}=e;let s=null;if(ex(i)&&(s=i.$cursor),s){const l=(r=t.storedMarks)!=null?r:s.marks();return s.parent.type.allowsMarkType(n)&&(!!n.isInSet(l)||!l.some(c=>c.type.excludes(n)))}const{ranges:o}=i;return o.some(({$from:l,$to:a})=>{let c=l.depth===0?t.doc.inlineContent&&t.doc.type.allowsMarkType(n):!1;return t.doc.nodesBetween(l.pos,a.pos,(u,d,f)=>{if(c)return!1;if(u.isInline){const p=!f||f.type.allowsMarkType(n),m=!!n.isInSet(u.marks)||!u.marks.some(g=>g.type.excludes(n));c=p&&m}return!c}),c})}var qB=(t,e={})=>({tr:n,state:r,dispatch:i})=>{const{selection:s}=n,{empty:o,ranges:l}=s,a=mo(t,r.schema);if(i)if(o){const c=JI(r,a);n.addStoredMark(a.create({...c,...e}))}else l.forEach(c=>{const u=c.$from.pos,d=c.$to.pos;r.doc.nodesBetween(u,d,(f,p)=>{const m=Math.max(p,u),g=Math.min(p+f.nodeSize,d);f.marks.find(v=>v.type===a)?f.marks.forEach(v=>{a===v.type&&n.addMark(m,g,a.create({...v.attrs,...e}))}):n.addMark(m,g,a.create(e))})});return YB(r,n,a)},JB=(t,e)=>({tr:n})=>(n.setMeta(t,e),!0),GB=(t,e={})=>({state:n,dispatch:r,chain:i})=>{const s=Kn(t,n.schema);let o;return n.selection.$anchor.sameParent(n.selection.$head)&&(o=n.selection.$anchor.parent.attrs),s.isTextblock?i().command(({commands:l})=>HS(s,{...o,...e})(n)?!0:l.clearNodes()).command(({state:l})=>HS(s,{...o,...e})(l,r)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},XB=t=>({tr:e,dispatch:n})=>{if(n){const{doc:r}=e,i=Gs(t,0,r.content.size),s=pt.create(r,i);e.setSelection(s)}return!0},QB=(t,e)=>({tr:n,state:r,dispatch:i})=>{const{selection:s}=r;let o,l;return typeof e=="number"?(o=e,l=e):e&&"from"in e&&"to"in e?(o=e.from,l=e.to):(o=s.from,l=s.to),i&&n.doc.nodesBetween(o,l,(a,c)=>{a.isText||n.setNodeMarkup(c,void 0,{...a.attrs,dir:t})}),!0},ZB=t=>({tr:e,dispatch:n})=>{if(n){const{doc:r}=e,{from:i,to:s}=typeof t=="number"?{from:t,to:t}:t,o=St.atStart(r).from,l=St.atEnd(r).to,a=Gs(i,o,l),c=Gs(s,o,l),u=St.create(r,a,c);e.setSelection(u)}return!0},e5=t=>({state:e,dispatch:n})=>{const r=Kn(t,e.schema);return Jz(r)(e,n)};function RC(t,e){const n=t.storedMarks||t.selection.$to.parentOffset&&t.selection.$from.marks();if(n){const r=n.filter(i=>e==null?void 0:e.includes(i.type.name));t.tr.ensureMarks(r)}}var t5=({keepMarks:t=!0}={})=>({tr:e,state:n,dispatch:r,editor:i})=>{const{selection:s,doc:o}=e,{$from:l,$to:a}=s,c=i.extensionManager.attributes,u=Ch(c,l.node().type.name,l.node().attrs);if(s instanceof pt&&s.node.isBlock)return!l.parentOffset||!Zs(o,l.pos)?!1:(r&&(t&&RC(n,i.extensionManager.splittableMarks),e.split(l.pos).scrollIntoView()),!0);if(!l.parent.isBlock)return!1;const d=a.parentOffset===a.parent.content.size,f=l.depth===0?void 0:RB(l.node(-1).contentMatchAt(l.indexAfter(-1)));let p=d&&f?[{type:f,attrs:u}]:void 0,m=Zs(e.doc,e.mapping.map(l.pos),1,p);if(!p&&!m&&Zs(e.doc,e.mapping.map(l.pos),1,f?[{type:f}]:void 0)&&(m=!0,p=f?[{type:f,attrs:u}]:void 0),r){if(m&&(s instanceof St&&e.deleteSelection(),e.split(e.mapping.map(l.pos),1,p),f&&!d&&!l.parentOffset&&l.parent.type!==f)){const g=e.mapping.map(l.before()),y=e.doc.resolve(g);l.node(-1).canReplaceWith(y.index(),y.index()+1,f)&&e.setNodeMarkup(e.mapping.map(l.before()),f)}t&&RC(n,i.extensionManager.splittableMarks),e.scrollIntoView()}return m},n5=(t,e={})=>({tr:n,state:r,dispatch:i,editor:s})=>{var o;const l=Kn(t,r.schema),{$from:a,$to:c}=r.selection,u=r.selection.node;if(u&&u.isBlock||a.depth<2||!a.sameParent(c))return!1;const d=a.node(-1);if(d.type!==l)return!1;const f=s.extensionManager.attributes;if(a.parent.content.size===0&&a.node(-1).childCount===a.indexAfter(-1)){if(a.depth===2||a.node(-3).type!==l||a.index(-2)!==a.node(-2).childCount-1)return!1;if(i){let v=ve.empty;const w=a.index(-1)?1:a.index(-2)?2:3;for(let z=a.depth-w;z>=a.depth-3;z-=1)v=ve.from(a.node(z).copy(v));const x=a.indexAfter(-1){if(N>-1)return!1;z.isTextblock&&z.content.size===0&&(N=X+1)}),N>-1&&n.setSelection(St.near(n.doc.resolve(N))),n.scrollIntoView()}return!0}const p=c.pos===a.end()?d.contentMatchAt(0).defaultType:null,m={...Ch(f,d.type.name,d.attrs),...e},g={...Ch(f,a.node().type.name,a.node().attrs),...e};n.delete(a.pos,c.pos);const y=p?[{type:l,attrs:m},{type:p,attrs:g}]:[{type:l,attrs:m}];if(!Zs(n.doc,a.pos,2))return!1;if(i){const{selection:v,storedMarks:w}=r,{splittableMarks:x}=s.extensionManager,E=w||v.$to.parentOffset&&v.$from.marks();if(n.split(a.pos,2,y).scrollIntoView(),!E||!i)return!0;const k=E.filter(M=>x.includes(M.type.name));n.ensureMarks(k)}return!0},_y=(t,e)=>{const n=ig(o=>o.type===e)(t.selection);if(!n)return!0;const r=t.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(r===void 0)return!0;const i=t.doc.nodeAt(r);return n.node.type===(i==null?void 0:i.type)&&vl(t.doc,n.pos)&&t.join(n.pos),!0},zy=(t,e)=>{const n=ig(o=>o.type===e)(t.selection);if(!n)return!0;const r=t.doc.resolve(n.start).after(n.depth);if(r===void 0)return!0;const i=t.doc.nodeAt(r);return n.node.type===(i==null?void 0:i.type)&&vl(t.doc,r)&&t.join(r),!0},r5=(t,e,n,r={})=>({editor:i,tr:s,state:o,dispatch:l,chain:a,commands:c,can:u})=>{const{extensions:d,splittableMarks:f}=i.extensionManager,p=Kn(t,o.schema),m=Kn(e,o.schema),{selection:g,storedMarks:y}=o,{$from:v,$to:w}=g,x=v.blockRange(w),E=y||g.$to.parentOffset&&g.$from.marks();if(!x)return!1;const k=ig(M=>IC(M.type.name,d))(g);if(x.depth>=1&&k&&x.depth-k.depth<=1){if(k.node.type===p)return c.liftListItem(m);if(IC(k.node.type.name,d)&&p.validContent(k.node.content)&&l)return a().command(()=>(s.setNodeMarkup(k.pos,p),!0)).command(()=>_y(s,p)).command(()=>zy(s,p)).run()}return!n||!E||!l?a().command(()=>u().wrapInList(p,r)?!0:c.clearNodes()).wrapInList(p,r).command(()=>_y(s,p)).command(()=>zy(s,p)).run():a().command(()=>{const M=u().wrapInList(p,r),N=E.filter(z=>f.includes(z.type.name));return s.ensureMarks(N),M?!0:c.clearNodes()}).wrapInList(p,r).command(()=>_y(s,p)).command(()=>zy(s,p)).run()},i5=(t,e={},n={})=>({state:r,commands:i})=>{const{extendEmptyMarkRange:s=!1}=n,o=mo(t,r.schema);return O0(r,o,e)?i.unsetMark(o,{extendEmptyMarkRange:s}):i.setMark(o,e)},s5=(t,e,n={})=>({state:r,commands:i})=>{const s=Kn(t,r.schema),o=Kn(e,r.schema),l=ol(r,s,n);let a;return r.selection.$anchor.sameParent(r.selection.$head)&&(a=r.selection.$anchor.parent.attrs),l?i.setNode(o,a):i.setNode(s,{...a,...n})},o5=(t,e={})=>({state:n,commands:r})=>{const i=Kn(t,n.schema);return ol(n,i,e)?r.lift(i):r.wrapIn(i,e)},l5=()=>({state:t,dispatch:e})=>{const n=t.plugins;for(let r=0;r=0;a-=1)o.step(l.steps[a].invert(l.docs[a]));if(s.text){const a=o.doc.resolve(s.from).marks();o.replaceWith(s.from,s.to,t.schema.text(s.text,a))}else o.delete(s.from,s.to)}return!0}}return!1},a5=()=>({tr:t,dispatch:e})=>{const{selection:n}=t,{empty:r,ranges:i}=n;return r||e&&i.forEach(s=>{t.removeMark(s.$from.pos,s.$to.pos)}),!0},c5=(t,e={})=>({tr:n,state:r,dispatch:i})=>{var s;const{extendEmptyMarkRange:o=!1}=e,{selection:l}=n,a=mo(t,r.schema),{$from:c,empty:u,ranges:d}=l;if(!i)return!0;if(u&&o){let{from:f,to:p}=l;const m=(s=c.marks().find(y=>y.type===a))==null?void 0:s.attrs,g=Zb(c,a,m);g&&(f=g.from,p=g.to),n.removeMark(f,p,a)}else d.forEach(f=>{n.removeMark(f.$from.pos,f.$to.pos,a)});return n.removeStoredMark(a),!0},u5=t=>({tr:e,state:n,dispatch:r})=>{const{selection:i}=n;let s,o;return typeof t=="number"?(s=t,o=t):t&&"from"in t&&"to"in t?(s=t.from,o=t.to):(s=i.from,o=i.to),r&&e.doc.nodesBetween(s,o,(l,a)=>{if(l.isText)return;const c={...l.attrs};delete c.dir,e.setNodeMarkup(a,void 0,c)}),!0},d5=(t,e={})=>({tr:n,state:r,dispatch:i})=>{let s=null,o=null;const l=rg(typeof t=="string"?t:t.name,r.schema);if(!l)return!1;l==="node"&&(s=Kn(t,r.schema)),l==="mark"&&(o=mo(t,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{const u=c.$from.pos,d=c.$to.pos;let f,p,m,g;n.selection.empty?r.doc.nodesBetween(u,d,(y,v)=>{s&&s===y.type&&(a=!0,m=Math.max(v,u),g=Math.min(v+y.nodeSize,d),f=v,p=y)}):r.doc.nodesBetween(u,d,(y,v)=>{v=u&&v<=d&&(s&&s===y.type&&(a=!0,i&&n.setNodeMarkup(v,void 0,{...y.attrs,...e})),o&&y.marks.length&&y.marks.forEach(w=>{if(o===w.type&&(a=!0,i)){const x=Math.max(v,u),E=Math.min(v+y.nodeSize,d);n.addMark(x,E,o.create({...w.attrs,...e}))}}))}),p&&(f!==void 0&&i&&n.setNodeMarkup(f,void 0,{...p.attrs,...e}),o&&p.marks.length&&p.marks.forEach(y=>{o===y.type&&i&&n.addMark(m,g,o.create({...y.attrs,...e}))}))}),a},f5=(t,e={})=>({state:n,dispatch:r})=>{const i=Kn(t,n.schema);return Uz(i,e)(n,r)},h5=(t,e={})=>({state:n,dispatch:r})=>{const i=Kn(t,n.schema);return Hz(i,e)(n,r)},p5=class{constructor(){this.callbacks={}}on(t,e){return this.callbacks[t]||(this.callbacks[t]=[]),this.callbacks[t].push(e),this}emit(t,...e){const n=this.callbacks[t];return n&&n.forEach(r=>r.apply(this,e)),this}off(t,e){const n=this.callbacks[t];return n&&(e?this.callbacks[t]=n.filter(r=>r!==e):delete this.callbacks[t]),this}once(t,e){const n=(...r)=>{this.off(t,n),e.apply(this,r)};return this.on(t,n)}removeAllListeners(){this.callbacks={}}},og=class{constructor(t){var e;this.find=t.find,this.handler=t.handler,this.undoable=(e=t.undoable)!=null?e:!0}},m5=(t,e)=>{if(Qb(e))return e.exec(t);const n=e(t);if(!n)return null;const r=[n.text];return r.index=n.index,r.input=t,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(n.replaceWith)),r};function Wf(t){var e;const{editor:n,from:r,to:i,text:s,rules:o,plugin:l}=t,{view:a}=n;if(a.composing)return!1;const c=a.state.doc.resolve(r);if(c.parent.type.spec.code||(e=c.nodeBefore||c.nodeAfter)!=null&&e.marks.find(f=>f.type.spec.code))return!1;let u=!1;const d=UB(c)+s;return o.forEach(f=>{if(u)return;const p=m5(d,f.find);if(!p)return;const m=a.state.tr,g=tg({state:a.state,transaction:m}),y={from:r-(p[0].length-s.length),to:i},{commands:v,chain:w,can:x}=new ng({editor:n,state:g});f.handler({state:g,range:y,match:p,commands:v,chain:w,can:x})===null||!m.steps.length||(f.undoable&&m.setMeta(l,{transform:m,from:r,to:i,text:s}),a.dispatch(m),u=!0)}),u}function g5(t){const{editor:e,rules:n}=t,r=new hn({state:{init(){return null},apply(i,s,o){const l=i.getMeta(r);if(l)return l;const a=i.getMeta("applyInputRules");return!!a&&setTimeout(()=>{let{text:u}=a;typeof u=="string"?u=u:u=nx(ve.from(u),o.schema);const{from:d}=a,f=d+u.length;Wf({editor:e,from:d,to:f,text:u,rules:n,plugin:r})}),i.selectionSet||i.docChanged?null:s}},props:{handleTextInput(i,s,o,l){return Wf({editor:e,from:s,to:o,text:l,rules:n,plugin:r})},handleDOMEvents:{compositionend:i=>(setTimeout(()=>{const{$cursor:s}=i.state.selection;s&&Wf({editor:e,from:s.pos,to:s.pos,text:"",rules:n,plugin:r})}),!1)},handleKeyDown(i,s){if(s.key!=="Enter")return!1;const{$cursor:o}=i.state.selection;return o?Wf({editor:e,from:o.pos,to:o.pos,text:` -`,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function y5(t){return Object.prototype.toString.call(t).slice(8,-1)}function Kf(t){return y5(t)!=="Object"?!1:t.constructor===Object&&Object.getPrototypeOf(t)===Object.prototype}function a2(t,e){const n={...t};return Kf(t)&&Kf(e)&&Object.keys(e).forEach(r=>{Kf(e[r])&&Kf(t[r])?n[r]=a2(t[r],e[r]):n[r]=e[r]}),n}var ox=class{constructor(t={}){this.type="extendable",this.parent=null,this.child=null,this.name="",this.config={name:this.name},this.config={...this.config,...t},this.name=this.config.name}get options(){return{...an(ht(this,"addOptions",{name:this.name}))||{}}}get storage(){return{...an(ht(this,"addStorage",{name:this.name,options:this.options}))||{}}}configure(t={}){const e=this.extend({...this.config,addOptions:()=>a2(this.options,t)});return e.name=this.name,e.parent=this.parent,e}extend(t={}){const e=new this.constructor({...this.config,...t});return e.parent=this,this.child=e,e.name="name"in t?t.name:e.parent.name,e}},da=class c2 extends ox{constructor(){super(...arguments),this.type="mark"}static create(e={}){const n=typeof e=="function"?e():e;return new c2(n)}static handleExit({editor:e,mark:n}){const{tr:r}=e.state,i=e.state.selection.$from;if(i.pos===i.end()){const o=i.marks();if(!!!o.find(c=>(c==null?void 0:c.type.name)===n.name))return!1;const a=o.find(c=>(c==null?void 0:c.type.name)===n.name);return a&&r.removeStoredMark(a),r.insertText(" ",i.pos),e.view.dispatch(r),!0}return!1}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}};function v5(t){return typeof t=="number"}var w5=class{constructor(t){this.find=t.find,this.handler=t.handler}},b5=(t,e,n)=>{if(Qb(e))return[...t.matchAll(e)];const r=e(t,n);return r?r.map(i=>{const s=[i.text];return s.index=i.index,s.input=t,s.data=i.data,i.replaceWith&&(i.text.includes(i.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),s.push(i.replaceWith)),s}):[]};function x5(t){const{editor:e,state:n,from:r,to:i,rule:s,pasteEvent:o,dropEvent:l}=t,{commands:a,chain:c,can:u}=new ng({editor:e,state:n}),d=[];return n.doc.nodesBetween(r,i,(p,m)=>{var g,y,v,w,x;if((y=(g=p.type)==null?void 0:g.spec)!=null&&y.code||!(p.isText||p.isTextblock||p.isInline))return;const E=(x=(w=(v=p.content)==null?void 0:v.size)!=null?w:p.nodeSize)!=null?x:0,k=Math.max(r,m),M=Math.min(i,m+E);if(k>=M)return;const N=p.isText?p.text||"":p.textBetween(k-m,M-m,void 0,"");b5(N,s.find,o).forEach(X=>{if(X.index===void 0)return;const L=k+X.index+1,H=L+X[0].length,W={from:n.tr.mapping.map(L),to:n.tr.mapping.map(H)},te=s.handler({state:n,range:W,match:X,commands:a,chain:c,can:u,pasteEvent:o,dropEvent:l});d.push(te)})}),d.every(p=>p!==null)}var Yf=null,k5=t=>{var e;const n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(e=n.clipboardData)==null||e.setData("text/html",t),n};function S5(t){const{editor:e,rules:n}=t;let r=null,i=!1,s=!1,o=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,l;try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}const a=({state:u,from:d,to:f,rule:p,pasteEvt:m})=>{const g=u.tr,y=tg({state:u,transaction:g});if(!(!x5({editor:e,state:y,from:Math.max(d-1,0),to:f.b-1,rule:p,pasteEvent:m,dropEvent:l})||!g.steps.length)){try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}return o=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,g}};return n.map(u=>new hn({view(d){const f=m=>{var g;r=(g=d.dom.parentElement)!=null&&g.contains(m.target)?d.dom.parentElement:null,r&&(Yf=e)},p=()=>{Yf&&(Yf=null)};return window.addEventListener("dragstart",f),window.addEventListener("dragend",p),{destroy(){window.removeEventListener("dragstart",f),window.removeEventListener("dragend",p)}}},props:{handleDOMEvents:{drop:(d,f)=>{if(s=r===d.dom.parentElement,l=f,!s){const p=Yf;p!=null&&p.isEditable&&setTimeout(()=>{const m=p.state.selection;m&&p.commands.deleteRange({from:m.from,to:m.to})},10)}return!1},paste:(d,f)=>{var p;const m=(p=f.clipboardData)==null?void 0:p.getData("text/html");return o=f,i=!!(m!=null&&m.includes("data-pm-slice")),!1}}},appendTransaction:(d,f,p)=>{const m=d[0],g=m.getMeta("uiEvent")==="paste"&&!i,y=m.getMeta("uiEvent")==="drop"&&!s,v=m.getMeta("applyPasteRules"),w=!!v;if(!g&&!y&&!w)return;if(w){let{text:k}=v;typeof k=="string"?k=k:k=nx(ve.from(k),p.schema);const{from:M}=v,N=M+k.length,z=k5(k);return a({rule:u,state:p,from:M,to:{b:N},pasteEvt:z})}const x=f.doc.content.findDiffStart(p.doc.content),E=f.doc.content.findDiffEnd(p.doc.content);if(!(!v5(x)||!E||x===E.b))return a({rule:u,state:p,from:x,to:E,pasteEvt:o})}}))}var lg=class{constructor(t,e){this.splittableMarks=[],this.editor=e,this.baseExtensions=t,this.extensions=ZI(t),this.schema=LB(this.extensions,e),this.setupExtensions()}get commands(){return this.extensions.reduce((t,e)=>{const n={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:Vf(e.name,this.schema)},r=ht(e,"addCommands",n);return r?{...t,...r()}:t},{})}get plugins(){const{editor:t}=this;return Tp([...this.extensions].reverse()).flatMap(r=>{const i={name:r.name,options:r.options,storage:this.editor.extensionStorage[r.name],editor:t,type:Vf(r.name,this.schema)},s=[],o=ht(r,"addKeyboardShortcuts",i);let l={};if(r.type==="mark"&&ht(r,"exitable",i)&&(l.ArrowRight=()=>da.handleExit({editor:t,mark:r})),o){const f=Object.fromEntries(Object.entries(o()).map(([p,m])=>[p,()=>m({editor:t})]));l={...l,...f}}const a=F$(l);s.push(a);const c=ht(r,"addInputRules",i);if(MC(r,t.options.enableInputRules)&&c){const f=c();if(f&&f.length){const p=g5({editor:t,rules:f}),m=Array.isArray(p)?p:[p];s.push(...m)}}const u=ht(r,"addPasteRules",i);if(MC(r,t.options.enablePasteRules)&&u){const f=u();if(f&&f.length){const p=S5({editor:t,rules:f});s.push(...p)}}const d=ht(r,"addProseMirrorPlugins",i);if(d){const f=d();s.push(...f)}return s})}get attributes(){return QI(this.extensions)}get nodeViews(){const{editor:t}=this,{nodeExtensions:e}=gc(this.extensions);return Object.fromEntries(e.filter(n=>!!ht(n,"addNodeView")).map(n=>{const r=this.attributes.filter(a=>a.type===n.name),i={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:Kn(n.name,this.schema)},s=ht(n,"addNodeView",i);if(!s)return[];const o=s();if(!o)return[];const l=(a,c,u,d,f)=>{const p=bd(a,r);return o({node:a,view:c,getPos:u,decorations:d,innerDecorations:f,editor:t,extension:n,HTMLAttributes:p})};return[n.name,l]}))}dispatchTransaction(t){const{editor:e}=this;return Tp([...this.extensions].reverse()).reduceRight((r,i)=>{const s={name:i.name,options:i.options,storage:this.editor.extensionStorage[i.name],editor:e,type:Vf(i.name,this.schema)},o=ht(i,"dispatchTransaction",s);return o?l=>{o.call(s,{transaction:l,next:r})}:r},t)}get markViews(){const{editor:t}=this,{markExtensions:e}=gc(this.extensions);return Object.fromEntries(e.filter(n=>!!ht(n,"addMarkView")).map(n=>{const r=this.attributes.filter(l=>l.type===n.name),i={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:mo(n.name,this.schema)},s=ht(n,"addMarkView",i);if(!s)return[];const o=(l,a,c)=>{const u=bd(l,r);return s()({mark:l,view:a,inline:c,editor:t,extension:n,HTMLAttributes:u,updateAttributes:d=>{L5(l,t,d)}})};return[n.name,o]}))}setupExtensions(){const t=this.extensions;this.editor.extensionStorage=Object.fromEntries(t.map(e=>[e.name,e.storage])),t.forEach(e=>{var n;const r={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:Vf(e.name,this.schema)};e.type==="mark"&&((n=an(ht(e,"keepOnSplit",r)))==null||n)&&this.splittableMarks.push(e.name);const i=ht(e,"onBeforeCreate",r),s=ht(e,"onCreate",r),o=ht(e,"onUpdate",r),l=ht(e,"onSelectionUpdate",r),a=ht(e,"onTransaction",r),c=ht(e,"onFocus",r),u=ht(e,"onBlur",r),d=ht(e,"onDestroy",r);i&&this.editor.on("beforeCreate",i),s&&this.editor.on("create",s),o&&this.editor.on("update",o),l&&this.editor.on("selectionUpdate",l),a&&this.editor.on("transaction",a),c&&this.editor.on("focus",c),u&&this.editor.on("blur",u),d&&this.editor.on("destroy",d)})}};lg.resolve=ZI;lg.sort=Tp;lg.flatten=tx;var C5={};Xb(C5,{ClipboardTextSerializer:()=>d2,Commands:()=>f2,Delete:()=>h2,Drop:()=>p2,Editable:()=>m2,FocusEvents:()=>y2,Keymap:()=>v2,Paste:()=>w2,Tabindex:()=>b2,TextDirection:()=>x2,focusEventsPluginKey:()=>g2});var mn=class u2 extends ox{constructor(){super(...arguments),this.type="extension"}static create(e={}){const n=typeof e=="function"?e():e;return new u2(n)}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}},d2=mn.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new hn({key:new pn("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{const{editor:t}=this,{state:e,schema:n}=t,{doc:r,selection:i}=e,{ranges:s}=i,o=Math.min(...s.map(u=>u.$from.pos)),l=Math.max(...s.map(u=>u.$to.pos)),a=rx(n);return e2(r,{from:o,to:l},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:a})}}})]}}),f2=mn.create({name:"commands",addCommands(){return{...VI}}}),h2=mn.create({name:"delete",onUpdate({transaction:t,appendedTransactions:e}){var n,r,i;const s=()=>{var o,l,a,c;if((c=(a=(l=(o=this.editor.options.coreExtensionOptions)==null?void 0:o.delete)==null?void 0:l.filterTransaction)==null?void 0:a.call(l,t))!=null?c:t.getMeta("y-sync$"))return;const u=GI(t.before,[t,...e]);r2(u).forEach(p=>{u.mapping.mapResult(p.oldRange.from).deletedAfter&&u.mapping.mapResult(p.oldRange.to).deletedBefore&&u.before.nodesBetween(p.oldRange.from,p.oldRange.to,(m,g)=>{const y=g+m.nodeSize-2,v=p.oldRange.from<=g&&y<=p.oldRange.to;this.editor.emit("delete",{type:"node",node:m,from:g,to:y,newFrom:u.mapping.map(g),newTo:u.mapping.map(y),deletedRange:p.oldRange,newRange:p.newRange,partial:!v,editor:this.editor,transaction:t,combinedTransform:u})})});const f=u.mapping;u.steps.forEach((p,m)=>{var g,y;if(p instanceof Ji){const v=f.slice(m).map(p.from,-1),w=f.slice(m).map(p.to),x=f.invert().map(v,-1),E=f.invert().map(w),k=(g=u.doc.nodeAt(v-1))==null?void 0:g.marks.some(N=>N.eq(p.mark)),M=(y=u.doc.nodeAt(w))==null?void 0:y.marks.some(N=>N.eq(p.mark));this.editor.emit("delete",{type:"mark",mark:p.mark,from:p.from,to:p.to,deletedRange:{from:x,to:E},newRange:{from:v,to:w},partial:!!(M||k),editor:this.editor,transaction:t,combinedTransform:u})}})};(i=(r=(n=this.editor.options.coreExtensionOptions)==null?void 0:n.delete)==null?void 0:r.async)==null||i?setTimeout(s,0):s()}}),p2=mn.create({name:"drop",addProseMirrorPlugins(){return[new hn({key:new pn("tiptapDrop"),props:{handleDrop:(t,e,n,r)=>{this.editor.emit("drop",{editor:this.editor,event:e,slice:n,moved:r})}}})]}}),m2=mn.create({name:"editable",addProseMirrorPlugins(){return[new hn({key:new pn("editable"),props:{editable:()=>this.editor.options.editable}})]}}),g2=new pn("focusEvents"),y2=mn.create({name:"focusEvents",addProseMirrorPlugins(){const{editor:t}=this;return[new hn({key:g2,props:{handleDOMEvents:{focus:(e,n)=>{t.isFocused=!0;const r=t.state.tr.setMeta("focus",{event:n}).setMeta("addToHistory",!1);return e.dispatch(r),!1},blur:(e,n)=>{t.isFocused=!1;const r=t.state.tr.setMeta("blur",{event:n}).setMeta("addToHistory",!1);return e.dispatch(r),!1}}}})]}}),v2=mn.create({name:"keymap",addKeyboardShortcuts(){const t=()=>this.editor.commands.first(({commands:o})=>[()=>o.undoInputRule(),()=>o.command(({tr:l})=>{const{selection:a,doc:c}=l,{empty:u,$anchor:d}=a,{pos:f,parent:p}=d,m=d.parent.isTextblock&&f>0?l.doc.resolve(f-1):d,g=m.parent.type.spec.isolating,y=d.pos-d.parentOffset,v=g&&m.parent.childCount===1?y===d.pos:Nt.atStart(c).from===f;return!u||!p.type.isTextblock||p.textContent.length||!v||v&&d.parent.type.name==="paragraph"?!1:o.clearNodes()}),()=>o.deleteSelection(),()=>o.joinBackward(),()=>o.selectNodeBackward()]),e=()=>this.editor.commands.first(({commands:o})=>[()=>o.deleteSelection(),()=>o.deleteCurrentNode(),()=>o.joinForward(),()=>o.selectNodeForward()]),r={Enter:()=>this.editor.commands.first(({commands:o})=>[()=>o.newlineInCode(),()=>o.createParagraphNear(),()=>o.liftEmptyBlock(),()=>o.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:t,"Mod-Backspace":t,"Shift-Backspace":t,Delete:e,"Mod-Delete":e,"Mod-a":()=>this.editor.commands.selectAll()},i={...r},s={...r,"Ctrl-h":t,"Alt-Backspace":t,"Ctrl-d":e,"Ctrl-Alt-Backspace":e,"Alt-Delete":e,"Alt-d":e,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return Np()||qI()?s:i},addProseMirrorPlugins(){return[new hn({key:new pn("clearDocument"),appendTransaction:(t,e,n)=>{if(t.some(g=>g.getMeta("composition")))return;const r=t.some(g=>g.docChanged)&&!e.doc.eq(n.doc),i=t.some(g=>g.getMeta("preventClearDocument"));if(!r||i)return;const{empty:s,from:o,to:l}=e.selection,a=Nt.atStart(e.doc).from,c=Nt.atEnd(e.doc).to;if(s||!(o===a&&l===c)||!sg(n.doc))return;const f=n.tr,p=tg({state:n,transaction:f}),{commands:m}=new ng({editor:this.editor,state:p});if(m.clearNodes(),!!f.steps.length)return f}})]}}),w2=mn.create({name:"paste",addProseMirrorPlugins(){return[new hn({key:new pn("tiptapPaste"),props:{handlePaste:(t,e,n)=>{this.editor.emit("paste",{editor:this.editor,event:e,slice:n})}}})]}}),b2=mn.create({name:"tabindex",addProseMirrorPlugins(){return[new hn({key:new pn("tabindex"),props:{attributes:()=>this.editor.isEditable?{tabindex:"0"}:{}}})]}}),x2=mn.create({name:"textDirection",addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];const{nodeExtensions:t}=gc(this.extensions);return[{types:t.filter(e=>e.name!=="text").map(e=>e.name),attributes:{dir:{default:this.options.direction,parseHTML:e=>{const n=e.getAttribute("dir");return n&&(n==="ltr"||n==="rtl"||n==="auto")?n:this.options.direction},renderHTML:e=>e.dir?{dir:e.dir}:{}}}}]},addProseMirrorPlugins(){return[new hn({key:new pn("textDirection"),props:{attributes:()=>{const t=this.options.direction;return t?{dir:t}:{}}}})]}}),E5=class mu{constructor(e,n,r=!1,i=null){this.currentNode=null,this.actualDepth=null,this.isBlock=r,this.resolvedPos=e,this.editor=n,this.currentNode=i}get name(){return this.node.type.name}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){var e;return(e=this.actualDepth)!=null?e:this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(e){let n=this.from,r=this.to;if(this.isBlock){if(this.content.size===0){console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);return}n=this.from+1,r=this.to-1}this.editor.commands.insertContentAt({from:n,to:r},e)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){return this.isBlock?this.pos:this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){return this.isBlock?this.pos+this.size:this.resolvedPos.end(this.resolvedPos.depth)+(this.node.isText?0:1)}get parent(){if(this.depth===0)return null;const e=this.resolvedPos.start(this.resolvedPos.depth-1),n=this.resolvedPos.doc.resolve(e);return new mu(n,this.editor)}get before(){let e=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));return e.depth!==this.depth&&(e=this.resolvedPos.doc.resolve(this.from-3)),new mu(e,this.editor)}get after(){let e=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));return e.depth!==this.depth&&(e=this.resolvedPos.doc.resolve(this.to+3)),new mu(e,this.editor)}get children(){const e=[];return this.node.content.forEach((n,r)=>{const i=n.isBlock&&!n.isTextblock,s=n.isAtom&&!n.isText,o=n.isInline,l=this.pos+r+(s?0:1);if(l<0||l>this.resolvedPos.doc.nodeSize-2)return;const a=this.resolvedPos.doc.resolve(l);if(!i&&!o&&a.depth<=this.depth)return;const c=new mu(a,this.editor,i,i||o?n:null);i&&(c.actualDepth=this.depth+1),e.push(c)}),e}get firstChild(){return this.children[0]||null}get lastChild(){const e=this.children;return e[e.length-1]||null}closest(e,n={}){let r=null,i=this.parent;for(;i&&!r;){if(i.node.type.name===e)if(Object.keys(n).length>0){const s=i.node.attrs,o=Object.keys(n);for(let l=0;l{r&&i.length>0||(o.node.type.name===e&&s.every(a=>n[a]===o.node.attrs[a])&&i.push(o),!(r&&i.length>0)&&(i=i.concat(o.querySelectorAll(e,n,r))))}),i}setAttribute(e){const{tr:n}=this.editor.state;n.setNodeMarkup(this.from,void 0,{...this.node.attrs,...e}),this.editor.view.dispatch(n)}},N5=`.ProseMirror { - position: relative; -} - -.ProseMirror { - word-wrap: break-word; - white-space: pre-wrap; - white-space: break-spaces; - -webkit-font-variant-ligatures: none; - font-variant-ligatures: none; - font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */ -} - -.ProseMirror [contenteditable="false"] { - white-space: normal; -} - -.ProseMirror [contenteditable="false"] [contenteditable="true"] { - white-space: pre-wrap; -} - -.ProseMirror pre { - white-space: pre-wrap; -} - -img.ProseMirror-separator { - display: inline !important; - border: none !important; - margin: 0 !important; - width: 0 !important; - height: 0 !important; -} - -.ProseMirror-gapcursor { - display: none; - pointer-events: none; - position: absolute; - margin: 0; -} - -.ProseMirror-gapcursor:after { - content: ""; - display: block; - position: absolute; - top: -2px; - width: 20px; - border-top: 1px solid black; - animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite; -} - -@keyframes ProseMirror-cursor-blink { - to { - visibility: hidden; - } -} - -.ProseMirror-hideselection *::selection { - background: transparent; -} - -.ProseMirror-hideselection *::-moz-selection { - background: transparent; -} - -.ProseMirror-hideselection * { - caret-color: transparent; -} - -.ProseMirror-focused .ProseMirror-gapcursor { - display: block; -}`;function T5(t,e,n){const r=document.querySelector("style[data-tiptap-style]");if(r!==null)return r;const i=document.createElement("style");return e&&i.setAttribute("nonce",e),i.setAttribute("data-tiptap-style",""),i.innerHTML=t,document.getElementsByTagName("head")[0].appendChild(i),i}var ag=class extends p5{constructor(t={}){super(),this.css=null,this.className="tiptap",this.editorView=null,this.isFocused=!1,this.isInitialized=!1,this.extensionStorage={},this.instanceId=Math.random().toString(36).slice(2,9),this.options={element:typeof document<"u"?document.createElement("div"):null,content:"",injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,textDirection:void 0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,emitContentError:!1,onBeforeCreate:()=>null,onCreate:()=>null,onMount:()=>null,onUnmount:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:r})=>{throw r},onPaste:()=>null,onDrop:()=>null,onDelete:()=>null,enableExtensionDispatchTransaction:!0},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.utils={getUpdatedPosition:o2,createMappablePosition:KB},this.setOptions(t),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on("beforeCreate",this.options.onBeforeCreate),this.emit("beforeCreate",{editor:this}),this.on("mount",this.options.onMount),this.on("unmount",this.options.onUnmount),this.on("contentError",this.options.onContentError),this.on("create",this.options.onCreate),this.on("update",this.options.onUpdate),this.on("selectionUpdate",this.options.onSelectionUpdate),this.on("transaction",this.options.onTransaction),this.on("focus",this.options.onFocus),this.on("blur",this.options.onBlur),this.on("destroy",this.options.onDestroy),this.on("drop",({event:r,slice:i,moved:s})=>this.options.onDrop(r,i,s)),this.on("paste",({event:r,slice:i})=>this.options.onPaste(r,i)),this.on("delete",this.options.onDelete);const e=this.createDoc(),n=KI(e,this.options.autofocus);this.editorState=Fa.create({doc:e,schema:this.schema,selection:n||void 0}),this.options.element&&this.mount(this.options.element)}mount(t){if(typeof document>"u")throw new Error("[tiptap error]: The editor cannot be mounted because there is no 'document' defined in this environment.");this.createView(t),this.emit("mount",{editor:this}),this.css&&!document.head.contains(this.css)&&document.head.appendChild(this.css),window.setTimeout(()=>{this.isDestroyed||(this.options.autofocus!==!1&&this.options.autofocus!==null&&this.commands.focus(this.options.autofocus),this.emit("create",{editor:this}),this.isInitialized=!0)},0)}unmount(){if(this.editorView){const t=this.editorView.dom;t!=null&&t.editor&&delete t.editor,this.editorView.destroy()}if(this.editorView=null,this.isInitialized=!1,this.css&&!document.querySelectorAll(`.${this.className}`).length)try{typeof this.css.remove=="function"?this.css.remove():this.css.parentNode&&this.css.parentNode.removeChild(this.css)}catch(t){console.warn("Failed to remove CSS element:",t)}this.css=null,this.emit("unmount",{editor:this})}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager.chain()}can(){return this.commandManager.can()}injectCSS(){this.options.injectCSS&&typeof document<"u"&&(this.css=T5(N5,this.options.injectNonce))}setOptions(t={}){this.options={...this.options,...t},!(!this.editorView||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(t,e=!0){this.setOptions({editable:t}),e&&this.emit("update",{editor:this,transaction:this.state.tr,appendedTransactions:[]})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get view(){return this.editorView?this.editorView:new Proxy({state:this.editorState,updateState:t=>{this.editorState=t},dispatch:t=>{this.dispatchTransaction(t)},composing:!1,dragging:null,editable:!0,isDestroyed:!1},{get:(t,e)=>{if(this.editorView)return this.editorView[e];if(e==="state")return this.editorState;if(e in t)return Reflect.get(t,e);throw new Error(`[tiptap error]: The editor view is not available. Cannot access view['${e}']. The editor may not be mounted yet.`)}})}get state(){return this.editorView&&(this.editorState=this.view.state),this.editorState}registerPlugin(t,e){const n=XI(e)?e(t,[...this.state.plugins]):[...this.state.plugins,t],r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}unregisterPlugin(t){if(this.isDestroyed)return;const e=this.state.plugins;let n=e;if([].concat(t).forEach(i=>{const s=typeof i=="string"?`${i}$`:i.key;n=n.filter(o=>!o.key.startsWith(s))}),e.length===n.length)return;const r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}createExtensionManager(){var t,e;const r=[...this.options.enableCoreExtensions?[m2,d2.configure({blockSeparator:(e=(t=this.options.coreExtensionOptions)==null?void 0:t.clipboardTextSerializer)==null?void 0:e.blockSeparator}),f2,y2,v2,b2,p2,w2,h2,x2.configure({direction:this.options.textDirection})].filter(i=>typeof this.options.enableCoreExtensions=="object"?this.options.enableCoreExtensions[i.name]!==!1:!0):[],...this.options.extensions].filter(i=>["extension","node","mark"].includes(i==null?void 0:i.type));this.extensionManager=new lg(r,this)}createCommandManager(){this.commandManager=new ng({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createDoc(){let t;try{t=D0(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(e){if(!(e instanceof Error)||!["[tiptap error]: Invalid JSON content","[tiptap error]: Invalid HTML content"].includes(e.message))throw e;this.emit("contentError",{editor:this,error:e,disableCollaboration:()=>{"collaboration"in this.storage&&typeof this.storage.collaboration=="object"&&this.storage.collaboration&&(this.storage.collaboration.isDisabled=!0),this.options.extensions=this.options.extensions.filter(n=>n.name!=="collaboration"),this.createExtensionManager()}}),t=D0(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1})}return t}createView(t){const{editorProps:e,enableExtensionDispatchTransaction:n}=this.options,r=e.dispatchTransaction||this.dispatchTransaction.bind(this),i=n?this.extensionManager.dispatchTransaction(r):r;this.editorView=new HI(t,{...e,attributes:{role:"textbox",...e==null?void 0:e.attributes},dispatchTransaction:i,state:this.editorState,markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews});const s=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(s),this.prependClass(),this.injectCSS();const o=this.view.dom;o.editor=this}createNodeViews(){this.view.isDestroyed||this.view.setProps({markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`${this.className} ${this.view.dom.className}`}captureTransaction(t){this.isCapturingTransaction=!0,t(),this.isCapturingTransaction=!1;const e=this.capturedTransaction;return this.capturedTransaction=null,e}dispatchTransaction(t){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=t;return}t.steps.forEach(c=>{var u;return(u=this.capturedTransaction)==null?void 0:u.step(c)});return}const{state:e,transactions:n}=this.state.applyTransaction(t),r=!this.state.selection.eq(e.selection),i=n.includes(t),s=this.state;if(this.emit("beforeTransaction",{editor:this,transaction:t,nextState:e}),!i)return;this.view.updateState(e),this.emit("transaction",{editor:this,transaction:t,appendedTransactions:n.slice(1)}),r&&this.emit("selectionUpdate",{editor:this,transaction:t});const o=n.findLast(c=>c.getMeta("focus")||c.getMeta("blur")),l=o==null?void 0:o.getMeta("focus"),a=o==null?void 0:o.getMeta("blur");l&&this.emit("focus",{editor:this,event:l.event,transaction:o}),a&&this.emit("blur",{editor:this,event:a.event,transaction:o}),!(t.getMeta("preventUpdate")||!n.some(c=>c.docChanged)||s.doc.eq(e.doc))&&this.emit("update",{editor:this,transaction:t,appendedTransactions:n.slice(1)})}getAttributes(t){return n2(this.state,t)}isActive(t,e){const n=typeof t=="string"?t:null,r=typeof t=="string"?e:t;return HB(this.state,n,r)}getJSON(){return this.state.doc.toJSON()}getHTML(){return nx(this.state.doc.content,this.schema)}getText(t){const{blockSeparator:e=` - -`,textSerializers:n={}}=t||{};return t2(this.state.doc,{blockSeparator:e,textSerializers:{...rx(this.schema),...n}})}get isEmpty(){return sg(this.state.doc)}destroy(){this.emit("destroy"),this.unmount(),this.removeAllListeners()}get isDestroyed(){var t,e;return(e=(t=this.editorView)==null?void 0:t.isDestroyed)!=null?e:!0}$node(t,e){var n;return((n=this.$doc)==null?void 0:n.querySelector(t,e))||null}$nodes(t,e){var n;return((n=this.$doc)==null?void 0:n.querySelectorAll(t,e))||null}$pos(t){const e=this.state.doc.resolve(t);return new E5(e,this)}get $doc(){return this.$pos(0)}};function yc(t){return new og({find:t.find,handler:({state:e,range:n,match:r})=>{const i=an(t.getAttributes,void 0,r);if(i===!1||i===null)return null;const{tr:s}=e,o=r[r.length-1],l=r[0];if(o){const a=l.search(/\S/),c=n.from+l.indexOf(o),u=c+o.length;if(ix(n.from,n.to,e.doc).filter(p=>p.mark.type.excluded.find(g=>g===t.type&&g!==p.mark.type)).filter(p=>p.to>c).length)return null;un.from&&s.delete(n.from+a,c);const f=n.from+a+o.length;s.addMark(n.from+a,f,t.type.create(i||{})),s.removeStoredMark(t.type)}},undoable:t.undoable})}function A5(t){return new og({find:t.find,handler:({state:e,range:n,match:r})=>{const i=an(t.getAttributes,void 0,r)||{},{tr:s}=e,o=n.from;let l=n.to;const a=t.type.create(i);if(r[1]){const c=r[0].lastIndexOf(r[1]);let u=o+c;u>l?u=l:l=u+r[1].length;const d=r[0][r[0].length-1];s.insertText(d,o+r[0].length-1),s.replaceWith(u,l,a)}else if(r[0]){const c=t.type.isInline?o:o-1;s.insert(c,t.type.create(i)).delete(s.mapping.map(o),s.mapping.map(l))}s.scrollIntoView()},undoable:t.undoable})}function j0(t){return new og({find:t.find,handler:({state:e,range:n,match:r})=>{const i=e.doc.resolve(n.from),s=an(t.getAttributes,void 0,r)||{};if(!i.node(-1).canReplaceWith(i.index(-1),i.indexAfter(-1),t.type))return null;e.tr.delete(n.from,n.to).setBlockType(n.from,n.from,t.type,s)},undoable:t.undoable})}function vc(t){return new og({find:t.find,handler:({state:e,range:n,match:r,chain:i})=>{const s=an(t.getAttributes,void 0,r)||{},o=e.tr.delete(n.from,n.to),a=o.doc.resolve(n.from).blockRange(),c=a&&jb(a,t.type,s);if(!c)return null;if(o.wrap(a,c),t.keepMarks&&t.editor){const{selection:d,storedMarks:f}=e,{splittableMarks:p}=t.editor.extensionManager,m=f||d.$to.parentOffset&&d.$from.marks();if(m){const g=m.filter(y=>p.includes(y.type.name));o.ensureMarks(g)}}if(t.keepAttributes){const d=t.type.name==="bulletList"||t.type.name==="orderedList"?"listItem":"taskList";i().updateAttributes(d,s).run()}const u=o.doc.resolve(n.from-1).nodeBefore;u&&u.type===t.type&&vl(o.doc,n.from-1)&&(!t.joinPredicate||t.joinPredicate(r,u))&&o.join(n.from-1)},undoable:t.undoable})}function M5(t,e){const{selection:n}=t,{$from:r}=n;if(n instanceof pt){const s=r.index();return r.parent.canReplaceWith(s,s+1,e)}let i=r.depth;for(;i>=0;){const s=r.index(i);if(r.node(i).contentMatchAt(s).matchType(e))return!0;i-=1}return!1}var I5={};Xb(I5,{createAtomBlockMarkdownSpec:()=>R5,createBlockMarkdownSpec:()=>D5,createInlineMarkdownSpec:()=>P5,parseAttributes:()=>lx,parseIndentedBlocks:()=>P0,renderNestedMarkdownContent:()=>cx,serializeAttributes:()=>ax});function lx(t){if(!(t!=null&&t.trim()))return{};const e={},n=[],r=t.replace(/["']([^"']*)["']/g,c=>(n.push(c),`__QUOTED_${n.length-1}__`)),i=r.match(/(?:^|\s)\.([a-zA-Z][\w-]*)/g);if(i){const c=i.map(u=>u.trim().slice(1));e.class=c.join(" ")}const s=r.match(/(?:^|\s)#([a-zA-Z][\w-]*)/);s&&(e.id=s[1]);const o=/([a-zA-Z][\w-]*)\s*=\s*(__QUOTED_\d+__)/g;Array.from(r.matchAll(o)).forEach(([,c,u])=>{var d;const f=parseInt(((d=u.match(/__QUOTED_(\d+)__/))==null?void 0:d[1])||"0",10),p=n[f];p&&(e[c]=p.slice(1,-1))});const a=r.replace(/(?:^|\s)\.([a-zA-Z][\w-]*)/g,"").replace(/(?:^|\s)#([a-zA-Z][\w-]*)/g,"").replace(/([a-zA-Z][\w-]*)\s*=\s*__QUOTED_\d+__/g,"").trim();return a&&a.split(/\s+/).filter(Boolean).forEach(u=>{u.match(/^[a-zA-Z][\w-]*$/)&&(e[u]=!0)}),e}function ax(t){if(!t||Object.keys(t).length===0)return"";const e=[];return t.class&&String(t.class).split(/\s+/).filter(Boolean).forEach(r=>e.push(`.${r}`)),t.id&&e.push(`#${t.id}`),Object.entries(t).forEach(([n,r])=>{n==="class"||n==="id"||(r===!0?e.push(n):r!==!1&&r!=null&&e.push(`${n}="${String(r)}"`))}),e.join(" ")}function R5(t){const{nodeName:e,name:n,parseAttributes:r=lx,serializeAttributes:i=ax,defaultAttributes:s={},requiredAttributes:o=[],allowedAttributes:l}=t,a=n||e,c=u=>{if(!l)return u;const d={};return l.forEach(f=>{f in u&&(d[f]=u[f])}),d};return{parseMarkdown:(u,d)=>{const f={...s,...u.attributes};return d.createNode(e,f,[])},markdownTokenizer:{name:e,level:"block",start(u){var d;const f=new RegExp(`^:::${a}(?:\\s|$)`,"m"),p=(d=u.match(f))==null?void 0:d.index;return p!==void 0?p:-1},tokenize(u,d,f){const p=new RegExp(`^:::${a}(?:\\s+\\{([^}]*)\\})?\\s*:::(?:\\n|$)`),m=u.match(p);if(!m)return;const g=m[1]||"",y=r(g);if(!o.find(w=>!(w in y)))return{type:e,raw:m[0],attributes:y}}},renderMarkdown:u=>{const d=c(u.attrs||{}),f=i(d),p=f?` {${f}}`:"";return`:::${a}${p} :::`}}}function D5(t){const{nodeName:e,name:n,getContent:r,parseAttributes:i=lx,serializeAttributes:s=ax,defaultAttributes:o={},content:l="block",allowedAttributes:a}=t,c=n||e,u=d=>{if(!a)return d;const f={};return a.forEach(p=>{p in d&&(f[p]=d[p])}),f};return{parseMarkdown:(d,f)=>{let p;if(r){const g=r(d);p=typeof g=="string"?[{type:"text",text:g}]:g}else l==="block"?p=f.parseChildren(d.tokens||[]):p=f.parseInline(d.tokens||[]);const m={...o,...d.attributes};return f.createNode(e,m,p)},markdownTokenizer:{name:e,level:"block",start(d){var f;const p=new RegExp(`^:::${c}`,"m"),m=(f=d.match(p))==null?void 0:f.index;return m!==void 0?m:-1},tokenize(d,f,p){var m;const g=new RegExp(`^:::${c}(?:\\s+\\{([^}]*)\\})?\\s*\\n`),y=d.match(g);if(!y)return;const[v,w=""]=y,x=i(w);let E=1;const k=v.length;let M="";const N=/^:::([\w-]*)(\s.*)?/gm,z=d.slice(k);for(N.lastIndex=0;;){const X=N.exec(z);if(X===null)break;const L=X.index,H=X[1];if(!((m=X[2])!=null&&m.endsWith(":::"))){if(H)E+=1;else if(E-=1,E===0){const W=z.slice(0,L);M=W.trim();const te=d.slice(0,k+L+X[0].length);let ue=[];if(M)if(l==="block")for(ue=p.blockTokens(W),ue.forEach(de=>{de.text&&(!de.tokens||de.tokens.length===0)&&(de.tokens=p.inlineTokens(de.text))});ue.length>0;){const de=ue[ue.length-1];if(de.type==="paragraph"&&(!de.text||de.text.trim()===""))ue.pop();else break}else ue=p.inlineTokens(M);return{type:e,raw:te,attributes:x,content:M,tokens:ue}}}}}},renderMarkdown:(d,f)=>{const p=u(d.attrs||{}),m=s(p),g=m?` {${m}}`:"",y=f.renderChildren(d.content||[],` - -`);return`:::${c}${g} - -${y} - -:::`}}}function O5(t){if(!t.trim())return{};const e={},n=/(\w+)=(?:"([^"]*)"|'([^']*)')/g;let r=n.exec(t);for(;r!==null;){const[,i,s,o]=r;e[i]=s||o,r=n.exec(t)}return e}function j5(t){return Object.entries(t).filter(([,e])=>e!=null).map(([e,n])=>`${e}="${n}"`).join(" ")}function P5(t){const{nodeName:e,name:n,getContent:r,parseAttributes:i=O5,serializeAttributes:s=j5,defaultAttributes:o={},selfClosing:l=!1,allowedAttributes:a}=t,c=n||e,u=f=>{if(!a)return f;const p={};return a.forEach(m=>{const g=typeof m=="string"?m:m.name,y=typeof m=="string"?void 0:m.skipIfDefault;if(g in f){const v=f[g];if(y!==void 0&&v===y)return;p[g]=v}}),p},d=c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return{parseMarkdown:(f,p)=>{const m={...o,...f.attributes};if(l)return p.createNode(e,m);const g=r?r(f):f.content||"";return g?p.createNode(e,m,[p.createTextNode(g)]):p.createNode(e,m,[])},markdownTokenizer:{name:e,level:"inline",start(f){const p=l?new RegExp(`\\[${d}\\s*[^\\]]*\\]`):new RegExp(`\\[${d}\\s*[^\\]]*\\][\\s\\S]*?\\[\\/${d}\\]`),m=f.match(p),g=m==null?void 0:m.index;return g!==void 0?g:-1},tokenize(f,p,m){const g=l?new RegExp(`^\\[${d}\\s*([^\\]]*)\\]`):new RegExp(`^\\[${d}\\s*([^\\]]*)\\]([\\s\\S]*?)\\[\\/${d}\\]`),y=f.match(g);if(!y)return;let v="",w="";if(l){const[,E]=y;w=E}else{const[,E,k]=y;w=E,v=k||""}const x=i(w.trim());return{type:e,raw:y[0],content:v.trim(),attributes:x}}},renderMarkdown:f=>{let p="";r?p=r(f):f.content&&f.content.length>0&&(p=f.content.filter(v=>v.type==="text").map(v=>v.text).join(""));const m=u(f.attrs||{}),g=s(m),y=g?` ${g}`:"";return l?`[${c}${y}]`:`[${c}${y}]${p}[/${c}]`}}}function P0(t,e,n){var r,i,s,o;const l=t.split(` -`),a=[];let c="",u=0;const d=e.baseIndentSize||2;for(;u0)break;if(f.trim()===""){u+=1,c=`${c}${f} -`;continue}else return}const m=e.extractItemData(p),{indentLevel:g,mainContent:y}=m;c=`${c}${f} -`;const v=[y];for(u+=1;uL.trim()!=="");if(N===-1)break;if((((i=(r=l[u+1+N].match(/^(\s*)/))==null?void 0:r[1])==null?void 0:i.length)||0)>g){v.push(k),c=`${c}${k} -`,u+=1;continue}else break}if((((o=(s=k.match(/^(\s*)/))==null?void 0:s[1])==null?void 0:o.length)||0)>g)v.push(k),c=`${c}${k} -`,u+=1;else break}let w;const x=v.slice(1);if(x.length>0){const k=x.map(M=>M.slice(g+d)).join(` -`);k.trim()&&(e.customNestedParser?w=e.customNestedParser(k):w=n.blockTokens(k))}const E=e.createToken(m,w);a.push(E)}if(a.length!==0)return{items:a,raw:c}}function cx(t,e,n,r){if(!t||!Array.isArray(t.content))return"";const i=typeof n=="function"?n(r):n,[s,...o]=t.content,l=e.renderChildren([s]),a=[`${i}${l}`];return o&&o.length>0&&o.forEach(c=>{const u=e.renderChildren([c]);if(u){const d=u.split(` -`).map(f=>f?e.indent(f):"").join(` -`);a.push(d)}}),a.join(` -`)}function L5(t,e,n={}){const{state:r}=e,{doc:i,tr:s}=r,o=t;i.descendants((l,a)=>{const c=s.mapping.map(a),u=s.mapping.map(a)+l.nodeSize;let d=null;if(l.marks.forEach(p=>{if(p!==o)return!1;d=p}),!d)return;let f=!1;if(Object.keys(n).forEach(p=>{n[p]!==d.attrs[p]&&(f=!0)}),f){const p=t.type.create({...t.attrs,...n});s.removeMark(c,u,t.type),s.addMark(c,u,p)}}),s.docChanged&&e.view.dispatch(s)}var yi=class k2 extends ox{constructor(){super(...arguments),this.type="node"}static create(e={}){const n=typeof e=="function"?e():e;return new k2(n)}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}};function ea(t){return new w5({find:t.find,handler:({state:e,range:n,match:r,pasteEvent:i})=>{const s=an(t.getAttributes,void 0,r,i);if(s===!1||s===null)return null;const{tr:o}=e,l=r[r.length-1],a=r[0];let c=n.to;if(l){const u=a.search(/\S/),d=n.from+a.indexOf(l),f=d+l.length;if(ix(n.from,n.to,e.doc).filter(m=>m.mark.type.excluded.find(y=>y===t.type&&y!==m.mark.type)).filter(m=>m.to>d).length)return null;fn.from&&o.delete(n.from+u,d),c=n.from+u+l.length,o.addMark(n.from+u,c,t.type.create(s||{})),o.removeStoredMark(t.type)}}})}const{getOwnPropertyNames:_5,getOwnPropertySymbols:z5}=Object,{hasOwnProperty:F5}=Object.prototype;function Fy(t,e){return function(r,i,s){return t(r,i,s)&&e(r,i,s)}}function qf(t){return function(n,r,i){if(!n||!r||typeof n!="object"||typeof r!="object")return t(n,r,i);const{cache:s}=i,o=s.get(n),l=s.get(r);if(o&&l)return o===r&&l===n;s.set(n,r),s.set(r,n);const a=t(n,r,i);return s.delete(n),s.delete(r),a}}function $5(t){return t!=null?t[Symbol.toStringTag]:void 0}function DC(t){return _5(t).concat(z5(t))}const B5=Object.hasOwn||((t,e)=>F5.call(t,e));function fa(t,e){return t===e||!t&&!e&&t!==t&&e!==e}const U5="__v",H5="__o",V5="_owner",{getOwnPropertyDescriptor:OC,keys:jC}=Object;function W5(t,e){return t.byteLength===e.byteLength&&Ap(new Uint8Array(t),new Uint8Array(e))}function K5(t,e,n){let r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(!n.equals(t[r],e[r],r,r,t,e,n))return!1;return!0}function Y5(t,e){return t.byteLength===e.byteLength&&Ap(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}function q5(t,e){return fa(t.getTime(),e.getTime())}function J5(t,e){return t.name===e.name&&t.message===e.message&&t.cause===e.cause&&t.stack===e.stack}function G5(t,e){return t===e}function PC(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const i=new Array(r),s=t.entries();let o,l,a=0;for(;(o=s.next())&&!o.done;){const c=e.entries();let u=!1,d=0;for(;(l=c.next())&&!l.done;){if(i[d]){d++;continue}const f=o.value,p=l.value;if(n.equals(f[0],p[0],a,d,t,e,n)&&n.equals(f[1],p[1],f[0],p[0],t,e,n)){u=i[d]=!0;break}d++}if(!u)return!1;a++}return!0}const X5=fa;function Q5(t,e,n){const r=jC(t);let i=r.length;if(jC(e).length!==i)return!1;for(;i-- >0;)if(!S2(t,e,n,r[i]))return!1;return!0}function ou(t,e,n){const r=DC(t);let i=r.length;if(DC(e).length!==i)return!1;let s,o,l;for(;i-- >0;)if(s=r[i],!S2(t,e,n,s)||(o=OC(t,s),l=OC(e,s),(o||l)&&(!o||!l||o.configurable!==l.configurable||o.enumerable!==l.enumerable||o.writable!==l.writable)))return!1;return!0}function Z5(t,e){return fa(t.valueOf(),e.valueOf())}function e6(t,e){return t.source===e.source&&t.flags===e.flags}function LC(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const i=new Array(r),s=t.values();let o,l;for(;(o=s.next())&&!o.done;){const a=e.values();let c=!1,u=0;for(;(l=a.next())&&!l.done;){if(!i[u]&&n.equals(o.value,l.value,o.value,l.value,t,e,n)){c=i[u]=!0;break}u++}if(!c)return!1}return!0}function Ap(t,e){let n=t.byteLength;if(e.byteLength!==n||t.byteOffset!==e.byteOffset)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}function t6(t,e){return t.hostname===e.hostname&&t.pathname===e.pathname&&t.protocol===e.protocol&&t.port===e.port&&t.hash===e.hash&&t.username===e.username&&t.password===e.password}function S2(t,e,n,r){return(r===V5||r===H5||r===U5)&&(t.$$typeof||e.$$typeof)?!0:B5(e,r)&&n.equals(t[r],e[r],r,r,t,e,n)}const n6="[object ArrayBuffer]",r6="[object Arguments]",i6="[object Boolean]",s6="[object DataView]",o6="[object Date]",l6="[object Error]",a6="[object Map]",c6="[object Number]",u6="[object Object]",d6="[object RegExp]",f6="[object Set]",h6="[object String]",p6={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},m6="[object URL]",g6=Object.prototype.toString;function y6({areArrayBuffersEqual:t,areArraysEqual:e,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:i,areFunctionsEqual:s,areMapsEqual:o,areNumbersEqual:l,areObjectsEqual:a,arePrimitiveWrappersEqual:c,areRegExpsEqual:u,areSetsEqual:d,areTypedArraysEqual:f,areUrlsEqual:p,unknownTagComparators:m}){return function(y,v,w){if(y===v)return!0;if(y==null||v==null)return!1;const x=typeof y;if(x!==typeof v)return!1;if(x!=="object")return x==="number"?l(y,v,w):x==="function"?s(y,v,w):!1;const E=y.constructor;if(E!==v.constructor)return!1;if(E===Object)return a(y,v,w);if(Array.isArray(y))return e(y,v,w);if(E===Date)return r(y,v,w);if(E===RegExp)return u(y,v,w);if(E===Map)return o(y,v,w);if(E===Set)return d(y,v,w);const k=g6.call(y);if(k===o6)return r(y,v,w);if(k===d6)return u(y,v,w);if(k===a6)return o(y,v,w);if(k===f6)return d(y,v,w);if(k===u6)return typeof y.then!="function"&&typeof v.then!="function"&&a(y,v,w);if(k===m6)return p(y,v,w);if(k===l6)return i(y,v,w);if(k===r6)return a(y,v,w);if(p6[k])return f(y,v,w);if(k===n6)return t(y,v,w);if(k===s6)return n(y,v,w);if(k===i6||k===c6||k===h6)return c(y,v,w);if(m){let M=m[k];if(!M){const N=$5(y);N&&(M=m[N])}if(M)return M(y,v,w)}return!1}}function v6({circular:t,createCustomConfig:e,strict:n}){let r={areArrayBuffersEqual:W5,areArraysEqual:n?ou:K5,areDataViewsEqual:Y5,areDatesEqual:q5,areErrorsEqual:J5,areFunctionsEqual:G5,areMapsEqual:n?Fy(PC,ou):PC,areNumbersEqual:X5,areObjectsEqual:n?ou:Q5,arePrimitiveWrappersEqual:Z5,areRegExpsEqual:e6,areSetsEqual:n?Fy(LC,ou):LC,areTypedArraysEqual:n?Fy(Ap,ou):Ap,areUrlsEqual:t6,unknownTagComparators:void 0};if(e&&(r=Object.assign({},r,e(r))),t){const i=qf(r.areArraysEqual),s=qf(r.areMapsEqual),o=qf(r.areObjectsEqual),l=qf(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:i,areMapsEqual:s,areObjectsEqual:o,areSetsEqual:l})}return r}function w6(t){return function(e,n,r,i,s,o,l){return t(e,n,l)}}function b6({circular:t,comparator:e,createState:n,equals:r,strict:i}){if(n)return function(l,a){const{cache:c=t?new WeakMap:void 0,meta:u}=n();return e(l,a,{cache:c,equals:r,meta:u,strict:i})};if(t)return function(l,a){return e(l,a,{cache:new WeakMap,equals:r,meta:void 0,strict:i})};const s={cache:void 0,equals:r,meta:void 0,strict:i};return function(l,a){return e(l,a,s)}}const x6=bl();bl({strict:!0});bl({circular:!0});bl({circular:!0,strict:!0});bl({createInternalComparator:()=>fa});bl({strict:!0,createInternalComparator:()=>fa});bl({circular:!0,createInternalComparator:()=>fa});bl({circular:!0,createInternalComparator:()=>fa,strict:!0});function bl(t={}){const{circular:e=!1,createInternalComparator:n,createState:r,strict:i=!1}=t,s=v6(t),o=y6(s),l=n?n(o):w6(o);return b6({circular:e,comparator:o,createState:r,equals:l,strict:i})}var C2={exports:{}},E2={};/** - * @license React - * use-sync-external-store-shim/with-selector.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var cg=b,k6=Rb;function S6(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var C6=typeof Object.is=="function"?Object.is:S6,E6=k6.useSyncExternalStore,N6=cg.useRef,T6=cg.useEffect,A6=cg.useMemo,M6=cg.useDebugValue;E2.useSyncExternalStoreWithSelector=function(t,e,n,r,i){var s=N6(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=A6(function(){function a(p){if(!c){if(c=!0,u=p,p=r(p),i!==void 0&&o.hasValue){var m=o.value;if(i(m,p))return d=m}return d=p}if(m=d,C6(u,p))return m;var g=r(p);return i!==void 0&&i(m,g)?(u=p,m):(u=p,d=g)}var c=!1,u,d,f=n===void 0?null:n;return[function(){return a(e())},f===null?void 0:function(){return a(f())}]},[e,n,r,i]);var l=E6(t,s[0],s[1]);return T6(function(){o.hasValue=!0,o.value=l},[l]),M6(l),l};C2.exports=E2;var I6=C2.exports;const N2=["top","right","bottom","left"],_C=["start","end"],zC=N2.reduce((t,e)=>t.concat(e,e+"-"+_C[0],e+"-"+_C[1]),[]),Ms=Math.min,zr=Math.max,Mp=Math.round,Cs=t=>({x:t,y:t}),R6={left:"right",right:"left",bottom:"top",top:"bottom"},D6={start:"end",end:"start"};function L0(t,e,n){return zr(t,Ms(e,n))}function go(t,e){return typeof t=="function"?t(e):t}function _i(t){return t.split("-")[0]}function Zi(t){return t.split("-")[1]}function T2(t){return t==="x"?"y":"x"}function ux(t){return t==="y"?"height":"width"}const O6=new Set(["top","bottom"]);function ws(t){return O6.has(_i(t))?"y":"x"}function dx(t){return T2(ws(t))}function A2(t,e,n){n===void 0&&(n=!1);const r=Zi(t),i=dx(t),s=ux(i);let o=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[s]>e.floating[s]&&(o=Rp(o)),[o,Rp(o)]}function j6(t){const e=Rp(t);return[Ip(t),e,Ip(e)]}function Ip(t){return t.replace(/start|end/g,e=>D6[e])}const FC=["left","right"],$C=["right","left"],P6=["top","bottom"],L6=["bottom","top"];function _6(t,e,n){switch(t){case"top":case"bottom":return n?e?$C:FC:e?FC:$C;case"left":case"right":return e?P6:L6;default:return[]}}function z6(t,e,n,r){const i=Zi(t);let s=_6(_i(t),n==="start",r);return i&&(s=s.map(o=>o+"-"+i),e&&(s=s.concat(s.map(Ip)))),s}function Rp(t){return t.replace(/left|right|bottom|top/g,e=>R6[e])}function F6(t){return{top:0,right:0,bottom:0,left:0,...t}}function fx(t){return typeof t!="number"?F6(t):{top:t,right:t,bottom:t,left:t}}function wc(t){const{x:e,y:n,width:r,height:i}=t;return{width:r,height:i,top:n,left:e,right:e+r,bottom:n+i,x:e,y:n}}function BC(t,e,n){let{reference:r,floating:i}=t;const s=ws(e),o=dx(e),l=ux(o),a=_i(e),c=s==="y",u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[l]/2-i[l]/2;let p;switch(a){case"top":p={x:u,y:r.y-i.height};break;case"bottom":p={x:u,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:d};break;case"left":p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(Zi(e)){case"start":p[o]-=f*(n&&c?-1:1);break;case"end":p[o]+=f*(n&&c?-1:1);break}return p}async function $6(t,e){var n;e===void 0&&(e={});const{x:r,y:i,platform:s,rects:o,elements:l,strategy:a}=t,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:f=!1,padding:p=0}=go(e,t),m=fx(p),y=l[f?d==="floating"?"reference":"floating":d],v=wc(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(y)))==null||n?y:y.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(l.floating)),boundary:c,rootBoundary:u,strategy:a})),w=d==="floating"?{x:r,y:i,width:o.floating.width,height:o.floating.height}:o.reference,x=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l.floating)),E=await(s.isElement==null?void 0:s.isElement(x))?await(s.getScale==null?void 0:s.getScale(x))||{x:1,y:1}:{x:1,y:1},k=wc(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:w,offsetParent:x,strategy:a}):w);return{top:(v.top-k.top+m.top)/E.y,bottom:(k.bottom-v.bottom+m.bottom)/E.y,left:(v.left-k.left+m.left)/E.x,right:(k.right-v.right+m.right)/E.x}}const B6=async(t,e,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:s=[],platform:o}=n,l=s.filter(Boolean),a=await(o.isRTL==null?void 0:o.isRTL(e));let c=await o.getElementRects({reference:t,floating:e,strategy:i}),{x:u,y:d}=BC(c,r,a),f=r,p={},m=0;for(let y=0;y({name:"arrow",options:t,async fn(e){const{x:n,y:r,placement:i,rects:s,platform:o,elements:l,middlewareData:a}=e,{element:c,padding:u=0}=go(t,e)||{};if(c==null)return{};const d=fx(u),f={x:n,y:r},p=dx(i),m=ux(p),g=await o.getDimensions(c),y=p==="y",v=y?"top":"left",w=y?"bottom":"right",x=y?"clientHeight":"clientWidth",E=s.reference[m]+s.reference[p]-f[p]-s.floating[m],k=f[p]-s.reference[p],M=await(o.getOffsetParent==null?void 0:o.getOffsetParent(c));let N=M?M[x]:0;(!N||!await(o.isElement==null?void 0:o.isElement(M)))&&(N=l.floating[x]||s.floating[m]);const z=E/2-k/2,X=N/2-g[m]/2-1,L=Ms(d[v],X),H=Ms(d[w],X),W=L,te=N-g[m]-H,ue=N/2-g[m]/2+z,de=L0(W,ue,te),Ae=!a.arrow&&Zi(i)!=null&&ue!==de&&s.reference[m]/2-(ueZi(i)===t),...n.filter(i=>Zi(i)!==t)]:n.filter(i=>_i(i)===i)).filter(i=>t?Zi(i)===t||(e?Ip(i)!==i:!1):!0)}const V6=function(t){return t===void 0&&(t={}),{name:"autoPlacement",options:t,async fn(e){var n,r,i;const{rects:s,middlewareData:o,placement:l,platform:a,elements:c}=e,{crossAxis:u=!1,alignment:d,allowedPlacements:f=zC,autoAlignment:p=!0,...m}=go(t,e),g=d!==void 0||f===zC?H6(d||null,p,f):f,y=await a.detectOverflow(e,m),v=((n=o.autoPlacement)==null?void 0:n.index)||0,w=g[v];if(w==null)return{};const x=A2(w,s,await(a.isRTL==null?void 0:a.isRTL(c.floating)));if(l!==w)return{reset:{placement:g[0]}};const E=[y[_i(w)],y[x[0]],y[x[1]]],k=[...((r=o.autoPlacement)==null?void 0:r.overflows)||[],{placement:w,overflows:E}],M=g[v+1];if(M)return{data:{index:v+1,overflows:k},reset:{placement:M}};const N=k.map(L=>{const H=Zi(L.placement);return[L.placement,H&&u?L.overflows.slice(0,2).reduce((W,te)=>W+te,0):L.overflows[0],L.overflows]}).sort((L,H)=>L[1]-H[1]),X=((i=N.filter(L=>L[2].slice(0,Zi(L[0])?2:3).every(H=>H<=0))[0])==null?void 0:i[0])||N[0][0];return X!==l?{data:{index:v+1,overflows:k},reset:{placement:X}}:{}}}},W6=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,r;const{placement:i,middlewareData:s,rects:o,initialPlacement:l,platform:a,elements:c}=e,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:f,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:m="none",flipAlignment:g=!0,...y}=go(t,e);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const v=_i(i),w=ws(l),x=_i(l)===l,E=await(a.isRTL==null?void 0:a.isRTL(c.floating)),k=f||(x||!g?[Rp(l)]:j6(l)),M=m!=="none";!f&&M&&k.push(...z6(l,g,m,E));const N=[l,...k],z=await a.detectOverflow(e,y),X=[];let L=((r=s.flip)==null?void 0:r.overflows)||[];if(u&&X.push(z[v]),d){const ue=A2(i,o,E);X.push(z[ue[0]],z[ue[1]])}if(L=[...L,{placement:i,overflows:X}],!X.every(ue=>ue<=0)){var H,W;const ue=(((H=s.flip)==null?void 0:H.index)||0)+1,de=N[ue];if(de&&(!(d==="alignment"?w!==ws(de):!1)||L.every(q=>ws(q.placement)===w?q.overflows[0]>0:!0)))return{data:{index:ue,overflows:L},reset:{placement:de}};let Ae=(W=L.filter(me=>me.overflows[0]<=0).sort((me,q)=>me.overflows[1]-q.overflows[1])[0])==null?void 0:W.placement;if(!Ae)switch(p){case"bestFit":{var te;const me=(te=L.filter(q=>{if(M){const se=ws(q.placement);return se===w||se==="y"}return!0}).map(q=>[q.placement,q.overflows.filter(se=>se>0).reduce((se,xe)=>se+xe,0)]).sort((q,se)=>q[1]-se[1])[0])==null?void 0:te[0];me&&(Ae=me);break}case"initialPlacement":Ae=l;break}if(i!==Ae)return{reset:{placement:Ae}}}return{}}}};function UC(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function HC(t){return N2.some(e=>t[e]>=0)}const K6=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){const{rects:n,platform:r}=e,{strategy:i="referenceHidden",...s}=go(t,e);switch(i){case"referenceHidden":{const o=await r.detectOverflow(e,{...s,elementContext:"reference"}),l=UC(o,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:HC(l)}}}case"escaped":{const o=await r.detectOverflow(e,{...s,altBoundary:!0}),l=UC(o,n.floating);return{data:{escapedOffsets:l,escaped:HC(l)}}}default:return{}}}}};function M2(t){const e=Ms(...t.map(s=>s.left)),n=Ms(...t.map(s=>s.top)),r=zr(...t.map(s=>s.right)),i=zr(...t.map(s=>s.bottom));return{x:e,y:n,width:r-e,height:i-n}}function Y6(t){const e=t.slice().sort((i,s)=>i.y-s.y),n=[];let r=null;for(let i=0;ir.height/2?n.push([s]):n[n.length-1].push(s),r=s}return n.map(i=>wc(M2(i)))}const q6=function(t){return t===void 0&&(t={}),{name:"inline",options:t,async fn(e){const{placement:n,elements:r,rects:i,platform:s,strategy:o}=e,{padding:l=2,x:a,y:c}=go(t,e),u=Array.from(await(s.getClientRects==null?void 0:s.getClientRects(r.reference))||[]),d=Y6(u),f=wc(M2(u)),p=fx(l);function m(){if(d.length===2&&d[0].left>d[1].right&&a!=null&&c!=null)return d.find(y=>a>y.left-p.left&&ay.top-p.top&&c=2){if(ws(n)==="y"){const L=d[0],H=d[d.length-1],W=_i(n)==="top",te=L.top,ue=H.bottom,de=W?L.left:H.left,Ae=W?L.right:H.right,me=Ae-de,q=ue-te;return{top:te,bottom:ue,left:de,right:Ae,width:me,height:q,x:de,y:te}}const y=_i(n)==="left",v=zr(...d.map(L=>L.right)),w=Ms(...d.map(L=>L.left)),x=d.filter(L=>y?L.left===w:L.right===v),E=x[0].top,k=x[x.length-1].bottom,M=w,N=v,z=N-M,X=k-E;return{top:E,bottom:k,left:M,right:N,width:z,height:X,x:M,y:E}}return f}const g=await s.getElementRects({reference:{getBoundingClientRect:m},floating:r.floating,strategy:o});return i.reference.x!==g.reference.x||i.reference.y!==g.reference.y||i.reference.width!==g.reference.width||i.reference.height!==g.reference.height?{reset:{rects:g}}:{}}}},J6=new Set(["left","top"]);async function G6(t,e){const{placement:n,platform:r,elements:i}=t,s=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=_i(n),l=Zi(n),a=ws(n)==="y",c=J6.has(o)?-1:1,u=s&&a?-1:1,d=go(e,t);let{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&typeof m=="number"&&(p=l==="end"?m*-1:m),a?{x:p*u,y:f*c}:{x:f*c,y:p*u}}const X6=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,r;const{x:i,y:s,placement:o,middlewareData:l}=e,a=await G6(e,t);return o===((n=l.offset)==null?void 0:n.placement)&&(r=l.arrow)!=null&&r.alignmentOffset?{}:{x:i+a.x,y:s+a.y,data:{...a,placement:o}}}}},Q6=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:r,placement:i,platform:s}=e,{mainAxis:o=!0,crossAxis:l=!1,limiter:a={fn:v=>{let{x:w,y:x}=v;return{x:w,y:x}}},...c}=go(t,e),u={x:n,y:r},d=await s.detectOverflow(e,c),f=ws(_i(i)),p=T2(f);let m=u[p],g=u[f];if(o){const v=p==="y"?"top":"left",w=p==="y"?"bottom":"right",x=m+d[v],E=m-d[w];m=L0(x,m,E)}if(l){const v=f==="y"?"top":"left",w=f==="y"?"bottom":"right",x=g+d[v],E=g-d[w];g=L0(x,g,E)}const y=a.fn({...e,[p]:m,[f]:g});return{...y,data:{x:y.x-n,y:y.y-r,enabled:{[p]:o,[f]:l}}}}}},Z6=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){var n,r;const{placement:i,rects:s,platform:o,elements:l}=e,{apply:a=()=>{},...c}=go(t,e),u=await o.detectOverflow(e,c),d=_i(i),f=Zi(i),p=ws(i)==="y",{width:m,height:g}=s.floating;let y,v;d==="top"||d==="bottom"?(y=d,v=f===(await(o.isRTL==null?void 0:o.isRTL(l.floating))?"start":"end")?"left":"right"):(v=d,y=f==="end"?"top":"bottom");const w=g-u.top-u.bottom,x=m-u.left-u.right,E=Ms(g-u[y],w),k=Ms(m-u[v],x),M=!e.middlewareData.shift;let N=E,z=k;if((n=e.middlewareData.shift)!=null&&n.enabled.x&&(z=x),(r=e.middlewareData.shift)!=null&&r.enabled.y&&(N=w),M&&!f){const L=zr(u.left,0),H=zr(u.right,0),W=zr(u.top,0),te=zr(u.bottom,0);p?z=m-2*(L!==0||H!==0?L+H:zr(u.left,u.right)):N=g-2*(W!==0||te!==0?W+te:zr(u.top,u.bottom))}await a({...e,availableWidth:z,availableHeight:N});const X=await o.getDimensions(l.floating);return m!==X.width||g!==X.height?{reset:{rects:!0}}:{}}}};function ug(){return typeof window<"u"}function Pc(t){return I2(t)?(t.nodeName||"").toLowerCase():"#document"}function hi(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function yo(t){var e;return(e=(I2(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function I2(t){return ug()?t instanceof Node||t instanceof hi(t).Node:!1}function ns(t){return ug()?t instanceof Element||t instanceof hi(t).Element:!1}function Is(t){return ug()?t instanceof HTMLElement||t instanceof hi(t).HTMLElement:!1}function VC(t){return!ug()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof hi(t).ShadowRoot}const eU=new Set(["inline","contents"]);function Xd(t){const{overflow:e,overflowX:n,overflowY:r,display:i}=rs(t);return/auto|scroll|overlay|hidden|clip/.test(e+r+n)&&!eU.has(i)}const tU=new Set(["table","td","th"]);function nU(t){return tU.has(Pc(t))}const rU=[":popover-open",":modal"];function dg(t){return rU.some(e=>{try{return t.matches(e)}catch{return!1}})}const iU=["transform","translate","scale","rotate","perspective"],sU=["transform","translate","scale","rotate","perspective","filter"],oU=["paint","layout","strict","content"];function hx(t){const e=px(),n=ns(t)?rs(t):t;return iU.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||sU.some(r=>(n.willChange||"").includes(r))||oU.some(r=>(n.contain||"").includes(r))}function lU(t){let e=ll(t);for(;Is(e)&&!bc(e);){if(hx(e))return e;if(dg(e))return null;e=ll(e)}return null}function px(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const aU=new Set(["html","body","#document"]);function bc(t){return aU.has(Pc(t))}function rs(t){return hi(t).getComputedStyle(t)}function fg(t){return ns(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function ll(t){if(Pc(t)==="html")return t;const e=t.assignedSlot||t.parentNode||VC(t)&&t.host||yo(t);return VC(e)?e.host:e}function R2(t){const e=ll(t);return bc(e)?t.ownerDocument?t.ownerDocument.body:t.body:Is(e)&&Xd(e)?e:R2(e)}function D2(t,e,n){var r;e===void 0&&(e=[]);const i=R2(t),s=i===((r=t.ownerDocument)==null?void 0:r.body),o=hi(i);return s?(_0(o),e.concat(o,o.visualViewport||[],Xd(i)?i:[],[])):e.concat(i,D2(i,[]))}function _0(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function O2(t){const e=rs(t);let n=parseFloat(e.width)||0,r=parseFloat(e.height)||0;const i=Is(t),s=i?t.offsetWidth:n,o=i?t.offsetHeight:r,l=Mp(n)!==s||Mp(r)!==o;return l&&(n=s,r=o),{width:n,height:r,$:l}}function j2(t){return ns(t)?t:t.contextElement}function Ga(t){const e=j2(t);if(!Is(e))return Cs(1);const n=e.getBoundingClientRect(),{width:r,height:i,$:s}=O2(e);let o=(s?Mp(n.width):n.width)/r,l=(s?Mp(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!l||!Number.isFinite(l))&&(l=1),{x:o,y:l}}const cU=Cs(0);function P2(t){const e=hi(t);return!px()||!e.visualViewport?cU:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function uU(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==hi(t)?!1:e}function xd(t,e,n,r){e===void 0&&(e=!1),n===void 0&&(n=!1);const i=t.getBoundingClientRect(),s=j2(t);let o=Cs(1);e&&(r?ns(r)&&(o=Ga(r)):o=Ga(t));const l=uU(s,n,r)?P2(s):Cs(0);let a=(i.left+l.x)/o.x,c=(i.top+l.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(s){const f=hi(s),p=r&&ns(r)?hi(r):r;let m=f,g=_0(m);for(;g&&r&&p!==m;){const y=Ga(g),v=g.getBoundingClientRect(),w=rs(g),x=v.left+(g.clientLeft+parseFloat(w.paddingLeft))*y.x,E=v.top+(g.clientTop+parseFloat(w.paddingTop))*y.y;a*=y.x,c*=y.y,u*=y.x,d*=y.y,a+=x,c+=E,m=hi(g),g=_0(m)}}return wc({width:u,height:d,x:a,y:c})}function hg(t,e){const n=fg(t).scrollLeft;return e?e.left+n:xd(yo(t)).left+n}function L2(t,e){const n=t.getBoundingClientRect(),r=n.left+e.scrollLeft-hg(t,n),i=n.top+e.scrollTop;return{x:r,y:i}}function dU(t){let{elements:e,rect:n,offsetParent:r,strategy:i}=t;const s=i==="fixed",o=yo(r),l=e?dg(e.floating):!1;if(r===o||l&&s)return n;let a={scrollLeft:0,scrollTop:0},c=Cs(1);const u=Cs(0),d=Is(r);if((d||!d&&!s)&&((Pc(r)!=="body"||Xd(o))&&(a=fg(r)),Is(r))){const p=xd(r);c=Ga(r),u.x=p.x+r.clientLeft,u.y=p.y+r.clientTop}const f=o&&!d&&!s?L2(o,a):Cs(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-a.scrollLeft*c.x+u.x+f.x,y:n.y*c.y-a.scrollTop*c.y+u.y+f.y}}function fU(t){return Array.from(t.getClientRects())}function hU(t){const e=yo(t),n=fg(t),r=t.ownerDocument.body,i=zr(e.scrollWidth,e.clientWidth,r.scrollWidth,r.clientWidth),s=zr(e.scrollHeight,e.clientHeight,r.scrollHeight,r.clientHeight);let o=-n.scrollLeft+hg(t);const l=-n.scrollTop;return rs(r).direction==="rtl"&&(o+=zr(e.clientWidth,r.clientWidth)-i),{width:i,height:s,x:o,y:l}}const WC=25;function pU(t,e){const n=hi(t),r=yo(t),i=n.visualViewport;let s=r.clientWidth,o=r.clientHeight,l=0,a=0;if(i){s=i.width,o=i.height;const u=px();(!u||u&&e==="fixed")&&(l=i.offsetLeft,a=i.offsetTop)}const c=hg(r);if(c<=0){const u=r.ownerDocument,d=u.body,f=getComputedStyle(d),p=u.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,m=Math.abs(r.clientWidth-d.clientWidth-p);m<=WC&&(s-=m)}else c<=WC&&(s+=c);return{width:s,height:o,x:l,y:a}}const mU=new Set(["absolute","fixed"]);function gU(t,e){const n=xd(t,!0,e==="fixed"),r=n.top+t.clientTop,i=n.left+t.clientLeft,s=Is(t)?Ga(t):Cs(1),o=t.clientWidth*s.x,l=t.clientHeight*s.y,a=i*s.x,c=r*s.y;return{width:o,height:l,x:a,y:c}}function KC(t,e,n){let r;if(e==="viewport")r=pU(t,n);else if(e==="document")r=hU(yo(t));else if(ns(e))r=gU(e,n);else{const i=P2(t);r={x:e.x-i.x,y:e.y-i.y,width:e.width,height:e.height}}return wc(r)}function _2(t,e){const n=ll(t);return n===e||!ns(n)||bc(n)?!1:rs(n).position==="fixed"||_2(n,e)}function yU(t,e){const n=e.get(t);if(n)return n;let r=D2(t,[]).filter(l=>ns(l)&&Pc(l)!=="body"),i=null;const s=rs(t).position==="fixed";let o=s?ll(t):t;for(;ns(o)&&!bc(o);){const l=rs(o),a=hx(o);!a&&l.position==="fixed"&&(i=null),(s?!a&&!i:!a&&l.position==="static"&&!!i&&mU.has(i.position)||Xd(o)&&!a&&_2(t,o))?r=r.filter(u=>u!==o):i=l,o=ll(o)}return e.set(t,r),r}function vU(t){let{element:e,boundary:n,rootBoundary:r,strategy:i}=t;const o=[...n==="clippingAncestors"?dg(e)?[]:yU(e,this._c):[].concat(n),r],l=o[0],a=o.reduce((c,u)=>{const d=KC(e,u,i);return c.top=zr(d.top,c.top),c.right=Ms(d.right,c.right),c.bottom=Ms(d.bottom,c.bottom),c.left=zr(d.left,c.left),c},KC(e,l,i));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}}function wU(t){const{width:e,height:n}=O2(t);return{width:e,height:n}}function bU(t,e,n){const r=Is(e),i=yo(e),s=n==="fixed",o=xd(t,!0,s,e);let l={scrollLeft:0,scrollTop:0};const a=Cs(0);function c(){a.x=hg(i)}if(r||!r&&!s)if((Pc(e)!=="body"||Xd(i))&&(l=fg(e)),r){const p=xd(e,!0,s,e);a.x=p.x+e.clientLeft,a.y=p.y+e.clientTop}else i&&c();s&&!r&&i&&c();const u=i&&!r&&!s?L2(i,l):Cs(0),d=o.left+l.scrollLeft-a.x-u.x,f=o.top+l.scrollTop-a.y-u.y;return{x:d,y:f,width:o.width,height:o.height}}function $y(t){return rs(t).position==="static"}function YC(t,e){if(!Is(t)||rs(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return yo(t)===n&&(n=n.ownerDocument.body),n}function z2(t,e){const n=hi(t);if(dg(t))return n;if(!Is(t)){let i=ll(t);for(;i&&!bc(i);){if(ns(i)&&!$y(i))return i;i=ll(i)}return n}let r=YC(t,e);for(;r&&nU(r)&&$y(r);)r=YC(r,e);return r&&bc(r)&&$y(r)&&!hx(r)?n:r||lU(t)||n}const xU=async function(t){const e=this.getOffsetParent||z2,n=this.getDimensions,r=await n(t.floating);return{reference:bU(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function kU(t){return rs(t).direction==="rtl"}const SU={convertOffsetParentRelativeRectToViewportRelativeRect:dU,getDocumentElement:yo,getClippingRect:vU,getOffsetParent:z2,getElementRects:xU,getClientRects:fU,getDimensions:wU,getScale:Ga,isElement:ns,isRTL:kU},F2=X6,$2=V6,B2=Q6,U2=W6,H2=Z6,V2=K6,W2=U6,K2=q6,Y2=(t,e,n)=>{const r=new Map,i={platform:SU,...n},s={...i.platform,_c:r};return B6(t,e,{...i,platform:s})};let z0,F0;if(typeof WeakMap<"u"){let t=new WeakMap;z0=e=>t.get(e),F0=(e,n)=>(t.set(e,n),n)}else{const t=[];let n=0;z0=r=>{for(let i=0;i(n==10&&(n=0),t[n++]=r,t[n++]=i)}var Ws=class{constructor(t,e,n,r){this.width=t,this.height=e,this.map=n,this.problems=r}findCell(t){for(let e=0;e=n){(s||(s=[])).push({type:"overlong_rowspan",pos:u,n:v-x});break}const E=i+x*e;for(let k=0;kr&&(s+=c.attrs.colspan)}}for(let o=0;o1&&(n=!0)}e==-1?e=s:e!=s&&(e=Math.max(e,s))}return e}function NU(t,e,n){t.problems||(t.problems=[]);const r={};for(let i=0;i0;e--)if(t.node(e).type.spec.tableRole=="row")return t.node(0).resolve(t.before(e+1));return null}function q2(t){const e=t.selection.$head;for(let n=e.depth;n>0;n--)if(e.node(n).type.spec.tableRole=="row")return!0;return!1}function MU(t){const e=t.selection;if("$anchorCell"in e&&e.$anchorCell)return e.$anchorCell.pos>e.$headCell.pos?e.$anchorCell:e.$headCell;if("node"in e&&e.node&&e.node.type.spec.tableRole=="cell")return e.$anchor;const n=AU(e.$head)||IU(e.$head);if(n)return n;throw new RangeError(`No cell found around position ${e.head}`)}function IU(t){for(let e=t.nodeAfter,n=t.pos;e;e=e.firstChild,n++){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return t.doc.resolve(n)}for(let e=t.nodeBefore,n=t.pos;e;e=e.lastChild,n--){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return t.doc.resolve(n-e.nodeSize)}}function qC(t){return t.parent.type.spec.tableRole=="row"&&!!t.nodeAfter}function J2(t,e){return t.depth==e.depth&&t.pos>=e.start(-1)&&t.pos<=e.end(-1)}function G2(t,e,n){const r=t.node(-1),i=Ws.get(r),s=t.start(-1),o=i.nextCell(t.pos-s,e,n);return o==null?null:t.node(0).resolve(s+o)}function JC(t,e,n=1){const r={...t,colspan:t.colspan-n};return r.colwidth&&(r.colwidth=r.colwidth.slice(),r.colwidth.splice(e,n),r.colwidth.some(i=>i>0)||(r.colwidth=null)),r}var Es=class $s extends Nt{constructor(e,n=e){const r=e.node(-1),i=Ws.get(r),s=e.start(-1),o=i.rectBetween(e.pos-s,n.pos-s),l=e.node(0),a=i.cellsInRect(o).filter(u=>u!=n.pos-s);a.unshift(n.pos-s);const c=a.map(u=>{const d=r.nodeAt(u);if(!d)throw new RangeError(`No cell with offset ${u} found`);const f=s+u+1;return new qM(l.resolve(f),l.resolve(f+d.content.size))});super(c[0].$from,c[0].$to,c),this.$anchorCell=e,this.$headCell=n}map(e,n){const r=e.resolve(n.map(this.$anchorCell.pos)),i=e.resolve(n.map(this.$headCell.pos));if(qC(r)&&qC(i)&&J2(r,i)){const s=this.$anchorCell.node(-1)!=r.node(-1);return s&&this.isRowSelection()?$s.rowSelection(r,i):s&&this.isColSelection()?$s.colSelection(r,i):new $s(r,i)}return St.between(r,i)}content(){const e=this.$anchorCell.node(-1),n=Ws.get(e),r=this.$anchorCell.start(-1),i=n.rectBetween(this.$anchorCell.pos-r,this.$headCell.pos-r),s={},o=[];for(let a=i.top;a0||y>0){let v=m.attrs;if(g>0&&(v=JC(v,0,g)),y>0&&(v=JC(v,v.colspan-y,y)),p.lefti.bottom){const v={...m.attrs,rowspan:Math.min(p.bottom,i.bottom)-Math.max(p.top,i.top)};p.top0)return!1;const r=e+this.$anchorCell.nodeAfter.attrs.rowspan,i=n+this.$headCell.nodeAfter.attrs.rowspan;return Math.max(r,i)==this.$headCell.node(-1).childCount}static colSelection(e,n=e){const r=e.node(-1),i=Ws.get(r),s=e.start(-1),o=i.findCell(e.pos-s),l=i.findCell(n.pos-s),a=e.node(0);return o.top<=l.top?(o.top>0&&(e=a.resolve(s+i.map[o.left])),l.bottom0&&(n=a.resolve(s+i.map[l.left])),o.bottom0)return!1;const o=i+this.$anchorCell.nodeAfter.attrs.colspan,l=s+this.$headCell.nodeAfter.attrs.colspan;return Math.max(o,l)==n.width}eq(e){return e instanceof $s&&e.$anchorCell.pos==this.$anchorCell.pos&&e.$headCell.pos==this.$headCell.pos}static rowSelection(e,n=e){const r=e.node(-1),i=Ws.get(r),s=e.start(-1),o=i.findCell(e.pos-s),l=i.findCell(n.pos-s),a=e.node(0);return o.left<=l.left?(o.left>0&&(e=a.resolve(s+i.map[o.top*i.width])),l.right0&&(n=a.resolve(s+i.map[l.top*i.width])),o.righti.table.nodeAt(a));for(let a=0;a{const p=f+s.tableStart,m=o.doc.nodeAt(p);m&&o.setNodeMarkup(p,d,m.attrs)}),r(o)}return!0}}gx("row",{useDeprecatedLogic:!0});gx("column",{useDeprecatedLogic:!0});gx("cell",{useDeprecatedLogic:!0});function Jf(t,e){const n=t.selection;if(!(n instanceof Es))return!1;if(e){const r=t.tr,i=mx(t.schema).cell.createAndFill().content;n.forEachCell((s,o)=>{s.content.eq(i)||r.replace(r.mapping.map(o+1),r.mapping.map(o+s.nodeSize-1),new _e(i,0,0))}),r.docChanged&&e(r)}return!0}Gb({ArrowLeft:Gf("horiz",-1),ArrowRight:Gf("horiz",1),ArrowUp:Gf("vert",-1),ArrowDown:Gf("vert",1),"Shift-ArrowLeft":Xf("horiz",-1),"Shift-ArrowRight":Xf("horiz",1),"Shift-ArrowUp":Xf("vert",-1),"Shift-ArrowDown":Xf("vert",1),Backspace:Jf,"Mod-Backspace":Jf,Delete:Jf,"Mod-Delete":Jf});function Eh(t,e,n){return n.eq(t.selection)?!1:(e&&e(t.tr.setSelection(n).scrollIntoView()),!0)}function Gf(t,e){return(n,r,i)=>{if(!i)return!1;const s=n.selection;if(s instanceof Es)return Eh(n,r,Nt.near(s.$headCell,e));if(t!="horiz"&&!s.empty)return!1;const o=Z2(i,t,e);if(o==null)return!1;if(t=="horiz")return Eh(n,r,Nt.near(n.doc.resolve(s.head+e),e));{const l=n.doc.resolve(o),a=G2(l,t,e);let c;return a?c=Nt.near(a,1):e<0?c=Nt.near(n.doc.resolve(l.before(-1)),-1):c=Nt.near(n.doc.resolve(l.after(-1)),1),Eh(n,r,c)}}}function Xf(t,e){return(n,r,i)=>{if(!i)return!1;const s=n.selection;let o;if(s instanceof Es)o=s;else{const a=Z2(i,t,e);if(a==null)return!1;o=new Es(n.doc.resolve(a))}const l=G2(o.$headCell,t,e);return l?Eh(n,r,new Es(o.$anchorCell,l)):!1}}function Z2(t,e,n){if(!(t.state.selection instanceof St))return null;const{$head:r}=t.state.selection;for(let i=r.depth-1;i>=0;i--){const s=r.node(i);if((n<0?r.index(i):r.indexAfter(i))!=(n<0?0:s.childCount))return null;if(s.type.spec.tableRole=="cell"||s.type.spec.tableRole=="header_cell"){const o=r.before(i),l=e=="vert"?n>0?"down":"up":n>0?"right":"left";return t.endOfTextblock(l)?o:null}}return null}new pn("tableColumnResizing");function OU(t,e){const n=Math.min(t.top,e.top),r=Math.max(t.bottom,e.bottom),i=Math.min(t.left,e.left),o=Math.max(t.right,e.right)-i,l=r-n,a=i,c=n;return new DOMRect(a,c,o,l)}var jU=class{constructor({editor:t,element:e,view:n,updateDelay:r=250,resizeDelay:i=60,shouldShow:s,appendTo:o,getReferencedVirtualElement:l,options:a}){this.preventHide=!1,this.isVisible=!1,this.scrollTarget=window,this.floatingUIOptions={strategy:"absolute",placement:"top",offset:8,flip:{},shift:{},arrow:!1,size:!1,autoPlacement:!1,hide:!1,inline:!1,onShow:void 0,onHide:void 0,onUpdate:void 0,onDestroy:void 0},this.shouldShow=({view:u,state:d,from:f,to:p})=>{const{doc:m,selection:g}=d,{empty:y}=g,v=!m.textBetween(f,p).length&&ex(d.selection),w=this.element.contains(document.activeElement);return!(!(u.hasFocus()||w)||y||v||!this.editor.isEditable)},this.mousedownHandler=()=>{this.preventHide=!0},this.dragstartHandler=()=>{this.hide()},this.resizeHandler=()=>{this.resizeDebounceTimer&&clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=window.setTimeout(()=>{this.updatePosition()},this.resizeDelay)},this.focusHandler=()=>{setTimeout(()=>this.update(this.editor.view))},this.blurHandler=({event:u})=>{var d;if(this.editor.isDestroyed){this.destroy();return}if(this.preventHide){this.preventHide=!1;return}u!=null&&u.relatedTarget&&((d=this.element.parentNode)!=null&&d.contains(u.relatedTarget))||(u==null?void 0:u.relatedTarget)!==this.editor.view.dom&&this.hide()},this.handleDebouncedUpdate=(u,d)=>{const f=!(d!=null&&d.selection.eq(u.state.selection)),p=!(d!=null&&d.doc.eq(u.state.doc));!f&&!p||(this.updateDebounceTimer&&clearTimeout(this.updateDebounceTimer),this.updateDebounceTimer=window.setTimeout(()=>{this.updateHandler(u,f,p,d)},this.updateDelay))},this.updateHandler=(u,d,f,p)=>{const{composing:m}=u;if(m||!d&&!f)return;if(!this.getShouldShow(p)){this.hide();return}this.updatePosition(),this.show()},this.transactionHandler=({transaction:u})=>{const d=u.getMeta("bubbleMenu");d==="updatePosition"?this.updatePosition():d&&typeof d=="object"&&d.type==="updateOptions"&&this.updateOptions(d.options)};var c;this.editor=t,this.element=e,this.view=n,this.updateDelay=r,this.resizeDelay=i,this.appendTo=o,this.scrollTarget=(c=a==null?void 0:a.scrollTarget)!=null?c:window,this.getReferencedVirtualElement=l,this.floatingUIOptions={...this.floatingUIOptions,...a},this.element.tabIndex=0,s&&(this.shouldShow=s),this.element.addEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.view.dom.addEventListener("dragstart",this.dragstartHandler),this.editor.on("focus",this.focusHandler),this.editor.on("blur",this.blurHandler),this.editor.on("transaction",this.transactionHandler),window.addEventListener("resize",this.resizeHandler),this.scrollTarget.addEventListener("scroll",this.resizeHandler),this.update(n,n.state),this.getShouldShow()&&(this.show(),this.updatePosition())}get middlewares(){const t=[];return this.floatingUIOptions.flip&&t.push(U2(typeof this.floatingUIOptions.flip!="boolean"?this.floatingUIOptions.flip:void 0)),this.floatingUIOptions.shift&&t.push(B2(typeof this.floatingUIOptions.shift!="boolean"?this.floatingUIOptions.shift:void 0)),this.floatingUIOptions.offset&&t.push(F2(typeof this.floatingUIOptions.offset!="boolean"?this.floatingUIOptions.offset:void 0)),this.floatingUIOptions.arrow&&t.push(W2(this.floatingUIOptions.arrow)),this.floatingUIOptions.size&&t.push(H2(typeof this.floatingUIOptions.size!="boolean"?this.floatingUIOptions.size:void 0)),this.floatingUIOptions.autoPlacement&&t.push($2(typeof this.floatingUIOptions.autoPlacement!="boolean"?this.floatingUIOptions.autoPlacement:void 0)),this.floatingUIOptions.hide&&t.push(V2(typeof this.floatingUIOptions.hide!="boolean"?this.floatingUIOptions.hide:void 0)),this.floatingUIOptions.inline&&t.push(K2(typeof this.floatingUIOptions.inline!="boolean"?this.floatingUIOptions.inline:void 0)),t}get virtualElement(){var t,e,n;const{selection:r}=this.editor.state,i=(t=this.getReferencedVirtualElement)==null?void 0:t.call(this);if(i)return i;if(!((n=(e=this.view)==null?void 0:e.dom)!=null&&n.parentNode))return;const s=l2(this.view,r.from,r.to);let o={getBoundingClientRect:()=>s,getClientRects:()=>[s]};if(r instanceof pt){let l=this.view.nodeDOM(r.from);const a=l.dataset.nodeViewWrapper?l:l.querySelector("[data-node-view-wrapper]");a&&(l=a),l&&(o={getBoundingClientRect:()=>l.getBoundingClientRect(),getClientRects:()=>[l.getBoundingClientRect()]})}if(r instanceof Es){const{$anchorCell:l,$headCell:a}=r,c=l?l.pos:a.pos,u=a?a.pos:l.pos,d=this.view.nodeDOM(c),f=this.view.nodeDOM(u);if(!d||!f)return;const p=d===f?d.getBoundingClientRect():OU(d.getBoundingClientRect(),f.getBoundingClientRect());o={getBoundingClientRect:()=>p,getClientRects:()=>[p]}}return o}updatePosition(){const t=this.virtualElement;t&&Y2(t,this.element,{placement:this.floatingUIOptions.placement,strategy:this.floatingUIOptions.strategy,middleware:this.middlewares}).then(({x:e,y:n,strategy:r,middlewareData:i})=>{var s,o;if((s=i.hide)!=null&&s.referenceHidden||(o=i.hide)!=null&&o.escaped){this.element.style.visibility="hidden";return}this.element.style.visibility="visible",this.element.style.width="max-content",this.element.style.position=r,this.element.style.left=`${e}px`,this.element.style.top=`${n}px`,this.isVisible&&this.floatingUIOptions.onUpdate&&this.floatingUIOptions.onUpdate()})}update(t,e){const{state:n}=t,r=n.selection.from!==n.selection.to;if(this.updateDelay>0&&r){this.handleDebouncedUpdate(t,e);return}const i=!(e!=null&&e.selection.eq(t.state.selection)),s=!(e!=null&&e.doc.eq(t.state.doc));this.updateHandler(t,i,s,e)}getShouldShow(t){var e;const{state:n}=this.view,{selection:r}=n,{ranges:i}=r,s=Math.min(...i.map(a=>a.$from.pos)),o=Math.max(...i.map(a=>a.$to.pos));return((e=this.shouldShow)==null?void 0:e.call(this,{editor:this.editor,element:this.element,view:this.view,state:n,oldState:t,from:s,to:o}))||!1}show(){var t;if(this.isVisible)return;this.element.style.visibility="visible",this.element.style.opacity="1";const e=typeof this.appendTo=="function"?this.appendTo():this.appendTo;(t=e??this.view.dom.parentElement)==null||t.appendChild(this.element),this.floatingUIOptions.onShow&&this.floatingUIOptions.onShow(),this.isVisible=!0}hide(){this.isVisible&&(this.element.style.visibility="hidden",this.element.style.opacity="0",this.element.remove(),this.floatingUIOptions.onHide&&this.floatingUIOptions.onHide(),this.isVisible=!1)}updateOptions(t){var e;if(t.updateDelay!==void 0&&(this.updateDelay=t.updateDelay),t.resizeDelay!==void 0&&(this.resizeDelay=t.resizeDelay),t.appendTo!==void 0&&(this.appendTo=t.appendTo),t.getReferencedVirtualElement!==void 0&&(this.getReferencedVirtualElement=t.getReferencedVirtualElement),t.shouldShow!==void 0&&t.shouldShow&&(this.shouldShow=t.shouldShow),t.options!==void 0){const n=(e=t.options.scrollTarget)!=null?e:window;n!==this.scrollTarget&&(this.scrollTarget.removeEventListener("scroll",this.resizeHandler),this.scrollTarget=n,this.scrollTarget.addEventListener("scroll",this.resizeHandler)),this.floatingUIOptions={...this.floatingUIOptions,...t.options}}}destroy(){this.hide(),this.element.removeEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.view.dom.removeEventListener("dragstart",this.dragstartHandler),window.removeEventListener("resize",this.resizeHandler),this.scrollTarget.removeEventListener("scroll",this.resizeHandler),this.editor.off("focus",this.focusHandler),this.editor.off("blur",this.blurHandler),this.editor.off("transaction",this.transactionHandler),this.floatingUIOptions.onDestroy&&this.floatingUIOptions.onDestroy()}},eR=t=>new hn({key:typeof t.pluginKey=="string"?new pn(t.pluginKey):t.pluginKey,view:e=>new jU({view:e,...t})});mn.create({name:"bubbleMenu",addOptions(){return{element:null,pluginKey:"bubbleMenu",updateDelay:void 0,appendTo:void 0,shouldShow:null}},addProseMirrorPlugins(){return this.options.element?[eR({pluginKey:this.options.pluginKey,editor:this.editor,element:this.options.element,updateDelay:this.options.updateDelay,options:this.options.options,appendTo:this.options.appendTo,getReferencedVirtualElement:this.options.getReferencedVirtualElement,shouldShow:this.options.shouldShow})]:[]}});var PU=class{constructor({editor:t,element:e,view:n,updateDelay:r=250,resizeDelay:i=60,options:s,appendTo:o,shouldShow:l}){this.preventHide=!1,this.isVisible=!1,this.scrollTarget=window,this.shouldShow=({view:c,state:u})=>{const{selection:d}=u,{$anchor:f,empty:p}=d,m=f.depth===1,g=f.parent.isTextblock&&!f.parent.type.spec.code&&!f.parent.textContent&&f.parent.childCount===0&&!this.getTextContent(f.parent);return!(!c.hasFocus()||!p||!m||!g||!this.editor.isEditable)},this.floatingUIOptions={strategy:"absolute",placement:"right",offset:8,flip:{},shift:{},arrow:!1,size:!1,autoPlacement:!1,hide:!1,inline:!1},this.updateHandler=(c,u,d,f)=>{const{composing:p}=c;if(p||!u&&!d)return;if(!this.getShouldShow(f)){this.hide();return}this.updatePosition(),this.show()},this.mousedownHandler=()=>{this.preventHide=!0},this.focusHandler=()=>{setTimeout(()=>this.update(this.editor.view))},this.blurHandler=({event:c})=>{var u;if(this.preventHide){this.preventHide=!1;return}c!=null&&c.relatedTarget&&((u=this.element.parentNode)!=null&&u.contains(c.relatedTarget))||(c==null?void 0:c.relatedTarget)!==this.editor.view.dom&&this.hide()},this.transactionHandler=({transaction:c})=>{const u=c.getMeta("floatingMenu");u==="updatePosition"?this.updatePosition():u&&typeof u=="object"&&u.type==="updateOptions"&&this.updateOptions(u.options)},this.resizeHandler=()=>{this.resizeDebounceTimer&&clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=window.setTimeout(()=>{this.updatePosition()},this.resizeDelay)};var a;this.editor=t,this.element=e,this.view=n,this.updateDelay=r,this.resizeDelay=i,this.appendTo=o,this.scrollTarget=(a=s==null?void 0:s.scrollTarget)!=null?a:window,this.floatingUIOptions={...this.floatingUIOptions,...s},this.element.tabIndex=0,l&&(this.shouldShow=l),this.element.addEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.editor.on("focus",this.focusHandler),this.editor.on("blur",this.blurHandler),this.editor.on("transaction",this.transactionHandler),window.addEventListener("resize",this.resizeHandler),this.scrollTarget.addEventListener("scroll",this.resizeHandler),this.update(n,n.state),this.getShouldShow()&&(this.show(),this.updatePosition())}getTextContent(t){return t2(t,{textSerializers:rx(this.editor.schema)})}get middlewares(){const t=[];return this.floatingUIOptions.flip&&t.push(U2(typeof this.floatingUIOptions.flip!="boolean"?this.floatingUIOptions.flip:void 0)),this.floatingUIOptions.shift&&t.push(B2(typeof this.floatingUIOptions.shift!="boolean"?this.floatingUIOptions.shift:void 0)),this.floatingUIOptions.offset&&t.push(F2(typeof this.floatingUIOptions.offset!="boolean"?this.floatingUIOptions.offset:void 0)),this.floatingUIOptions.arrow&&t.push(W2(this.floatingUIOptions.arrow)),this.floatingUIOptions.size&&t.push(H2(typeof this.floatingUIOptions.size!="boolean"?this.floatingUIOptions.size:void 0)),this.floatingUIOptions.autoPlacement&&t.push($2(typeof this.floatingUIOptions.autoPlacement!="boolean"?this.floatingUIOptions.autoPlacement:void 0)),this.floatingUIOptions.hide&&t.push(V2(typeof this.floatingUIOptions.hide!="boolean"?this.floatingUIOptions.hide:void 0)),this.floatingUIOptions.inline&&t.push(K2(typeof this.floatingUIOptions.inline!="boolean"?this.floatingUIOptions.inline:void 0)),t}getShouldShow(t){var e;const{state:n}=this.view,{selection:r}=n,{ranges:i}=r,s=Math.min(...i.map(a=>a.$from.pos)),o=Math.max(...i.map(a=>a.$to.pos));return(e=this.shouldShow)==null?void 0:e.call(this,{editor:this.editor,view:this.view,state:n,oldState:t,from:s,to:o})}updateOptions(t){var e;if(t.updateDelay!==void 0&&(this.updateDelay=t.updateDelay),t.resizeDelay!==void 0&&(this.resizeDelay=t.resizeDelay),t.appendTo!==void 0&&(this.appendTo=t.appendTo),t.shouldShow!==void 0&&t.shouldShow&&(this.shouldShow=t.shouldShow),t.options!==void 0){const n=(e=t.options.scrollTarget)!=null?e:window;n!==this.scrollTarget&&(this.scrollTarget.removeEventListener("scroll",this.resizeHandler),this.scrollTarget=n,this.scrollTarget.addEventListener("scroll",this.resizeHandler)),this.floatingUIOptions={...this.floatingUIOptions,...t.options}}}updatePosition(){const{selection:t}=this.editor.state,e=l2(this.view,t.from,t.to);Y2({getBoundingClientRect:()=>e,getClientRects:()=>[e]},this.element,{placement:this.floatingUIOptions.placement,strategy:this.floatingUIOptions.strategy,middleware:this.middlewares}).then(({x:r,y:i,strategy:s,middlewareData:o})=>{var l,a;if((l=o.hide)!=null&&l.referenceHidden||(a=o.hide)!=null&&a.escaped){this.element.style.visibility="hidden";return}this.element.style.visibility="visible",this.element.style.width="max-content",this.element.style.position=s,this.element.style.left=`${r}px`,this.element.style.top=`${i}px`,this.isVisible&&this.floatingUIOptions.onUpdate&&this.floatingUIOptions.onUpdate()})}update(t,e){const n=!(e!=null&&e.selection.eq(t.state.selection)),r=!(e!=null&&e.doc.eq(t.state.doc));this.updateHandler(t,n,r,e)}show(){var t;if(this.isVisible)return;this.element.style.visibility="visible",this.element.style.opacity="1";const e=typeof this.appendTo=="function"?this.appendTo():this.appendTo;(t=e??this.view.dom.parentElement)==null||t.appendChild(this.element),this.floatingUIOptions.onShow&&this.floatingUIOptions.onShow(),this.isVisible=!0}hide(){this.isVisible&&(this.element.style.visibility="hidden",this.element.style.opacity="0",this.element.remove(),this.floatingUIOptions.onHide&&this.floatingUIOptions.onHide(),this.isVisible=!1)}destroy(){this.hide(),this.element.removeEventListener("mousedown",this.mousedownHandler,{capture:!0}),window.removeEventListener("resize",this.resizeHandler),this.scrollTarget.removeEventListener("scroll",this.resizeHandler),this.editor.off("focus",this.focusHandler),this.editor.off("blur",this.blurHandler),this.editor.off("transaction",this.transactionHandler),this.floatingUIOptions.onDestroy&&this.floatingUIOptions.onDestroy()}},tR=t=>new hn({key:typeof t.pluginKey=="string"?new pn(t.pluginKey):t.pluginKey,view:e=>new PU({view:e,...t})});mn.create({name:"floatingMenu",addOptions(){return{element:null,options:{},pluginKey:"floatingMenu",updateDelay:void 0,resizeDelay:void 0,appendTo:void 0,shouldShow:null}},addCommands(){return{updateFloatingMenuPosition:()=>({tr:t,dispatch:e})=>(e&&t.setMeta("floatingMenu","updatePosition"),!0)}},addProseMirrorPlugins(){return this.options.element?[tR({pluginKey:this.options.pluginKey,editor:this.editor,element:this.options.element,updateDelay:this.options.updateDelay,resizeDelay:this.options.resizeDelay,options:this.options.options,appendTo:this.options.appendTo,shouldShow:this.options.shouldShow})]:[]}});var LU=(...t)=>e=>{t.forEach(n=>{typeof n=="function"?n(e):n&&(n.current=e)})},_U=({contentComponent:t})=>{const e=Rb.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getServerSnapshot);return h.jsx(h.Fragment,{children:Object.values(e)})};function zU(){const t=new Set;let e={};return{subscribe(n){return t.add(n),()=>{t.delete(n)}},getSnapshot(){return e},getServerSnapshot(){return e},setRenderer(n,r){e={...e,[n]:l_.createPortal(r.reactElement,r.element,n)},t.forEach(i=>i())},removeRenderer(n){const r={...e};delete r[n],e=r,t.forEach(i=>i())}}}var FU=class extends B.Component{constructor(t){var e;super(t),this.editorContentRef=B.createRef(),this.initialized=!1,this.state={hasContentComponentInitialized:!!((e=t.editor)!=null&&e.contentComponent)}}componentDidMount(){this.init()}componentDidUpdate(){this.init()}init(){var t;const e=this.props.editor;if(e&&!e.isDestroyed&&((t=e.view.dom)!=null&&t.parentNode)){if(e.contentComponent)return;const n=this.editorContentRef.current;n.append(...e.view.dom.parentNode.childNodes),e.setOptions({element:n}),e.contentComponent=zU(),this.state.hasContentComponentInitialized||(this.unsubscribeToContentComponent=e.contentComponent.subscribe(()=>{this.setState(r=>r.hasContentComponentInitialized?r:{hasContentComponentInitialized:!0}),this.unsubscribeToContentComponent&&this.unsubscribeToContentComponent()})),e.createNodeViews(),this.initialized=!0}}componentWillUnmount(){var t;const e=this.props.editor;if(e){this.initialized=!1,e.isDestroyed||e.view.setProps({nodeViews:{}}),this.unsubscribeToContentComponent&&this.unsubscribeToContentComponent(),e.contentComponent=null;try{if(!((t=e.view.dom)!=null&&t.parentNode))return;const n=document.createElement("div");n.append(...e.view.dom.parentNode.childNodes),e.setOptions({element:n})}catch{}}}render(){const{editor:t,innerRef:e,...n}=this.props;return h.jsxs(h.Fragment,{children:[h.jsx("div",{ref:LU(e,this.editorContentRef),...n}),(t==null?void 0:t.contentComponent)&&h.jsx(_U,{contentComponent:t.contentComponent})]})}},$U=b.forwardRef((t,e)=>{const n=B.useMemo(()=>Math.floor(Math.random()*4294967295).toString(),[t.editor]);return B.createElement(FU,{key:n,innerRef:e,...t})}),Qd=B.memo($U),BU=typeof window<"u"?b.useLayoutEffect:b.useEffect,UU=class{constructor(t){this.transactionNumber=0,this.lastTransactionNumber=0,this.subscribers=new Set,this.editor=t,this.lastSnapshot={editor:t,transactionNumber:0},this.getSnapshot=this.getSnapshot.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.watch=this.watch.bind(this),this.subscribe=this.subscribe.bind(this)}getSnapshot(){return this.transactionNumber===this.lastTransactionNumber?this.lastSnapshot:(this.lastTransactionNumber=this.transactionNumber,this.lastSnapshot={editor:this.editor,transactionNumber:this.transactionNumber},this.lastSnapshot)}getServerSnapshot(){return{editor:null,transactionNumber:0}}subscribe(t){return this.subscribers.add(t),()=>{this.subscribers.delete(t)}}watch(t){if(this.editor=t,this.editor){const e=()=>{this.transactionNumber+=1,this.subscribers.forEach(r=>r())},n=this.editor;return n.on("transaction",e),()=>{n.off("transaction",e)}}}};function HU(t){var e;const[n]=b.useState(()=>new UU(t.editor)),r=I6.useSyncExternalStoreWithSelector(n.subscribe,n.getSnapshot,n.getServerSnapshot,t.selector,(e=t.equalityFn)!=null?e:x6);return BU(()=>n.watch(t.editor),[t.editor,n]),b.useDebugValue(r),r}var VU=!1,$0=typeof window>"u",WU=$0||!!(typeof window<"u"&&window.next),KU=class nR{constructor(e){this.editor=null,this.subscriptions=new Set,this.isComponentMounted=!1,this.previousDeps=null,this.instanceId="",this.options=e,this.subscriptions=new Set,this.setEditor(this.getInitialEditor()),this.scheduleDestroy(),this.getEditor=this.getEditor.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.subscribe=this.subscribe.bind(this),this.refreshEditorInstance=this.refreshEditorInstance.bind(this),this.scheduleDestroy=this.scheduleDestroy.bind(this),this.onRender=this.onRender.bind(this),this.createEditor=this.createEditor.bind(this)}setEditor(e){this.editor=e,this.instanceId=Math.random().toString(36).slice(2,9),this.subscriptions.forEach(n=>n())}getInitialEditor(){return this.options.current.immediatelyRender===void 0?$0||WU?null:this.createEditor():(this.options.current.immediatelyRender,this.options.current.immediatelyRender?this.createEditor():null)}createEditor(){const e={...this.options.current,onBeforeCreate:(...r)=>{var i,s;return(s=(i=this.options.current).onBeforeCreate)==null?void 0:s.call(i,...r)},onBlur:(...r)=>{var i,s;return(s=(i=this.options.current).onBlur)==null?void 0:s.call(i,...r)},onCreate:(...r)=>{var i,s;return(s=(i=this.options.current).onCreate)==null?void 0:s.call(i,...r)},onDestroy:(...r)=>{var i,s;return(s=(i=this.options.current).onDestroy)==null?void 0:s.call(i,...r)},onFocus:(...r)=>{var i,s;return(s=(i=this.options.current).onFocus)==null?void 0:s.call(i,...r)},onSelectionUpdate:(...r)=>{var i,s;return(s=(i=this.options.current).onSelectionUpdate)==null?void 0:s.call(i,...r)},onTransaction:(...r)=>{var i,s;return(s=(i=this.options.current).onTransaction)==null?void 0:s.call(i,...r)},onUpdate:(...r)=>{var i,s;return(s=(i=this.options.current).onUpdate)==null?void 0:s.call(i,...r)},onContentError:(...r)=>{var i,s;return(s=(i=this.options.current).onContentError)==null?void 0:s.call(i,...r)},onDrop:(...r)=>{var i,s;return(s=(i=this.options.current).onDrop)==null?void 0:s.call(i,...r)},onPaste:(...r)=>{var i,s;return(s=(i=this.options.current).onPaste)==null?void 0:s.call(i,...r)},onDelete:(...r)=>{var i,s;return(s=(i=this.options.current).onDelete)==null?void 0:s.call(i,...r)}};return new ag(e)}getEditor(){return this.editor}getServerSnapshot(){return null}subscribe(e){return this.subscriptions.add(e),()=>{this.subscriptions.delete(e)}}static compareOptions(e,n){return Object.keys(e).every(r=>["onCreate","onBeforeCreate","onDestroy","onUpdate","onTransaction","onFocus","onBlur","onSelectionUpdate","onContentError","onDrop","onPaste"].includes(r)?!0:r==="extensions"&&e.extensions&&n.extensions?e.extensions.length!==n.extensions.length?!1:e.extensions.every((i,s)=>{var o;return i===((o=n.extensions)==null?void 0:o[s])}):e[r]===n[r])}onRender(e){return()=>(this.isComponentMounted=!0,clearTimeout(this.scheduledDestructionTimeout),this.editor&&!this.editor.isDestroyed&&e.length===0?nR.compareOptions(this.options.current,this.editor.options)||this.editor.setOptions({...this.options.current,editable:this.editor.isEditable}):this.refreshEditorInstance(e),()=>{this.isComponentMounted=!1,this.scheduleDestroy()})}refreshEditorInstance(e){if(this.editor&&!this.editor.isDestroyed){if(this.previousDeps===null){this.previousDeps=e;return}if(this.previousDeps.length===e.length&&this.previousDeps.every((r,i)=>r===e[i]))return}this.editor&&!this.editor.isDestroyed&&this.editor.destroy(),this.setEditor(this.createEditor()),this.previousDeps=e}scheduleDestroy(){const e=this.instanceId,n=this.editor;this.scheduledDestructionTimeout=setTimeout(()=>{if(this.isComponentMounted&&this.instanceId===e){n&&n.setOptions(this.options.current);return}n&&!n.isDestroyed&&(n.destroy(),this.instanceId===e&&this.setEditor(null))},1)}};function pg(t={},e=[]){const n=b.useRef(t);n.current=t;const[r]=b.useState(()=>new KU(n)),i=Rb.useSyncExternalStore(r.subscribe,r.getEditor,r.getServerSnapshot);return b.useDebugValue(i),b.useEffect(r.onRender(e)),HU({editor:i,selector:({transactionNumber:s})=>t.shouldRerenderOnTransaction===!1||t.shouldRerenderOnTransaction===void 0?null:t.immediatelyRender&&s===0?0:s+1}),i}var yx=b.createContext({editor:null});yx.Consumer;var rR=()=>b.useContext(yx),YU=b.createContext({onDragStart:()=>{},nodeViewContentChildren:void 0,nodeViewContentRef:()=>{}}),qU=()=>b.useContext(YU);B.forwardRef((t,e)=>{const{onDragStart:n}=qU(),r=t.as||"div";return h.jsx(r,{...t,ref:e,"data-node-view-wrapper":"",onDragStart:n,style:{whiteSpace:"normal",...t.style}})});B.createContext({markViewContentRef:()=>{}});var JU=B.forwardRef(({pluginKey:t="bubbleMenu",editor:e,updateDelay:n,resizeDelay:r,appendTo:i,shouldShow:s=null,getReferencedVirtualElement:o,options:l,children:a,...c},u)=>{const d=b.useRef(document.createElement("div"));typeof u=="function"?u(d.current):u&&(u.current=d.current);const{editor:f}=rR(),p=e||f,m={updateDelay:n,resizeDelay:r,appendTo:i,pluginKey:t,shouldShow:s,getReferencedVirtualElement:o,options:l},g=b.useRef(m);g.current=m;const[y,v]=b.useState(!1),w=b.useRef(!0);return b.useEffect(()=>{if(p!=null&&p.isDestroyed)return;if(!p){console.warn("BubbleMenu component is not rendered inside of an editor component or does not have editor prop.");return}const x=d.current;x.style.visibility="hidden",x.style.position="absolute";const E=eR({...g.current,editor:p,element:x});p.registerPlugin(E);const k=g.current.pluginKey;return w.current=!0,v(!0),()=>{v(!1),p.unregisterPlugin(k),window.requestAnimationFrame(()=>{x.parentNode&&x.parentNode.removeChild(x)})}},[p]),b.useEffect(()=>{if(!(!y||!p||p.isDestroyed)){if(w.current){w.current=!1;return}p.view.dispatch(p.state.tr.setMeta("bubbleMenu",{type:"updateOptions",options:g.current}))}},[y,p,n,r,s,l,i,o]),zn.createPortal(h.jsx("div",{...c,children:a}),d.current)}),GU=B.forwardRef(({pluginKey:t="floatingMenu",editor:e,updateDelay:n,resizeDelay:r,appendTo:i,shouldShow:s=null,options:o,children:l,...a},c)=>{const u=b.useRef(document.createElement("div"));typeof c=="function"?c(u.current):c&&(c.current=u.current);const{editor:d}=rR(),f=e||d,p={updateDelay:n,resizeDelay:r,appendTo:i,pluginKey:t,shouldShow:s,options:o},m=b.useRef(p);m.current=p;const[g,y]=b.useState(!1),v=b.useRef(!0);return b.useEffect(()=>{if(f!=null&&f.isDestroyed)return;if(!f){console.warn("FloatingMenu component is not rendered inside of an editor component or does not have editor prop.");return}const w=u.current;w.style.visibility="hidden",w.style.position="absolute";const x=tR({...m.current,editor:f,element:w});f.registerPlugin(x);const E=m.current.pluginKey;return v.current=!0,y(!0),()=>{y(!1),f.unregisterPlugin(E),window.requestAnimationFrame(()=>{w.parentNode&&w.parentNode.removeChild(w)})}},[f]),b.useEffect(()=>{if(!(!g||!f||f.isDestroyed)){if(v.current){v.current=!1;return}f.view.dispatch(f.state.tr.setMeta("floatingMenu",{type:"updateOptions",options:m.current}))}},[g,f,n,r,s,o,i]),zn.createPortal(h.jsx("div",{...a,children:l}),u.current)}),vx=b.createContext({editor:null,isReady:!1});vx.displayName="TiptapContext";var mg=()=>b.useContext(vx);function iR({instance:t,children:e}){var n;const[r,i]=b.useState((n=t==null?void 0:t.isInitialized)!=null?n:!1);b.useEffect(()=>{if(!t){i(!1);return}if(t.isInitialized){i(!0);return}const l=()=>{i(!0)};return t.on("create",l),()=>{t.off("create",l)}},[t]);const s=b.useMemo(()=>({editor:t,isReady:r}),[t,r]),o=b.useMemo(()=>({editor:t}),[t]);return h.jsx(yx.Provider,{value:o,children:h.jsx(vx.Provider,{value:s,children:e})})}iR.displayName="Tiptap";function sR({...t}){const{editor:e}=mg();return h.jsx(Qd,{editor:e,...t})}sR.displayName="Tiptap.Content";function oR({children:t}){const{isReady:e}=mg();return e?null:t}oR.displayName="Tiptap.Loading";function lR({children:t,...e}){const{editor:n}=mg();return n?h.jsx(JU,{editor:n,...e,children:t}):null}lR.displayName="Tiptap.BubbleMenu";function aR({children:t,...e}){const{editor:n}=mg();return n?h.jsx(GU,{...e,editor:n,children:t}):null}aR.displayName="Tiptap.FloatingMenu";Object.assign(iR,{Content:sR,Loading:oR,BubbleMenu:lR,FloatingMenu:aR});var Dp=(t,e)=>{if(t==="slot")return 0;if(t instanceof Function)return t(e);const{children:n,...r}=e??{};if(t==="svg")throw new Error("SVG elements are not supported in the JSX syntax, use the array syntax instead");return[t,r,n]},XU=/^\s*>\s$/,QU=yi.create({name:"blockquote",addOptions(){return{HTMLAttributes:{}}},content:"block+",group:"block",defining:!0,parseHTML(){return[{tag:"blockquote"}]},renderHTML({HTMLAttributes:t}){return Dp("blockquote",{...Yn(this.options.HTMLAttributes,t),children:Dp("slot",{})})},parseMarkdown:(t,e)=>e.createNode("blockquote",void 0,e.parseChildren(t.tokens||[])),renderMarkdown:(t,e)=>{if(!t.content)return"";const n=">",r=[];return t.content.forEach(i=>{const l=e.renderChildren([i]).split(` -`).map(a=>a.trim()===""?n:`${n} ${a}`);r.push(l.join(` -`))}),r.join(` -${n} -`)},addCommands(){return{setBlockquote:()=>({commands:t})=>t.wrapIn(this.name),toggleBlockquote:()=>({commands:t})=>t.toggleWrap(this.name),unsetBlockquote:()=>({commands:t})=>t.lift(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote()}},addInputRules(){return[vc({find:XU,type:this.type})]}}),ZU=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,e8=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,t8=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,n8=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,r8=da.create({name:"bold",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"strong"},{tag:"b",getAttrs:t=>t.style.fontWeight!=="normal"&&null},{style:"font-weight=400",clearMark:t=>t.type.name===this.name},{style:"font-weight",getAttrs:t=>/^(bold(er)?|[5-9]\d{2,})$/.test(t)&&null}]},renderHTML({HTMLAttributes:t}){return Dp("strong",{...Yn(this.options.HTMLAttributes,t),children:Dp("slot",{})})},markdownTokenName:"strong",parseMarkdown:(t,e)=>e.applyMark("bold",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`**${e.renderChildren(t)}**`,addCommands(){return{setBold:()=>({commands:t})=>t.setMark(this.name),toggleBold:()=>({commands:t})=>t.toggleMark(this.name),unsetBold:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[yc({find:ZU,type:this.type}),yc({find:t8,type:this.type})]},addPasteRules(){return[ea({find:e8,type:this.type}),ea({find:n8,type:this.type})]}}),i8=/(^|[^`])`([^`]+)`(?!`)$/,s8=/(^|[^`])`([^`]+)`(?!`)/g,o8=da.create({name:"code",addOptions(){return{HTMLAttributes:{}}},excludes:"_",code:!0,exitable:!0,parseHTML(){return[{tag:"code"}]},renderHTML({HTMLAttributes:t}){return["code",Yn(this.options.HTMLAttributes,t),0]},markdownTokenName:"codespan",parseMarkdown:(t,e)=>e.applyMark("code",[{type:"text",text:t.text||""}]),renderMarkdown:(t,e)=>t.content?`\`${e.renderChildren(t.content)}\``:"",addCommands(){return{setCode:()=>({commands:t})=>t.setMark(this.name),toggleCode:()=>({commands:t})=>t.toggleMark(this.name),unsetCode:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[yc({find:i8,type:this.type})]},addPasteRules(){return[ea({find:s8,type:this.type})]}}),By=4,l8=/^```([a-z]+)?[\s\n]$/,a8=/^~~~([a-z]+)?[\s\n]$/,c8=yi.create({name:"codeBlock",addOptions(){return{languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,defaultLanguage:null,enableTabIndentation:!1,tabSize:By,HTMLAttributes:{}}},content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:this.options.defaultLanguage,parseHTML:t=>{var e;const{languageClassPrefix:n}=this.options;if(!n)return null;const s=[...((e=t.firstElementChild)==null?void 0:e.classList)||[]].filter(o=>o.startsWith(n)).map(o=>o.replace(n,""))[0];return s||null},rendered:!1}}},parseHTML(){return[{tag:"pre",preserveWhitespace:"full"}]},renderHTML({node:t,HTMLAttributes:e}){return["pre",Yn(this.options.HTMLAttributes,e),["code",{class:t.attrs.language?this.options.languageClassPrefix+t.attrs.language:null},0]]},markdownTokenName:"code",parseMarkdown:(t,e)=>{var n;return((n=t.raw)==null?void 0:n.startsWith("```"))===!1&&t.codeBlockStyle!=="indented"?[]:e.createNode("codeBlock",{language:t.lang||null},t.text?[e.createTextNode(t.text)]:[])},renderMarkdown:(t,e)=>{var n;let r="";const i=((n=t.attrs)==null?void 0:n.language)||"";return t.content?r=[`\`\`\`${i}`,e.renderChildren(t.content),"```"].join(` -`):r=`\`\`\`${i} - -\`\`\``,r},addCommands(){return{setCodeBlock:t=>({commands:e})=>e.setNode(this.name,t),toggleCodeBlock:t=>({commands:e})=>e.toggleNode(this.name,"paragraph",t)}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{const{empty:t,$anchor:e}=this.editor.state.selection,n=e.pos===1;return!t||e.parent.type.name!==this.name?!1:n||!e.parent.textContent.length?this.editor.commands.clearNodes():!1},Tab:({editor:t})=>{var e;if(!this.options.enableTabIndentation)return!1;const n=(e=this.options.tabSize)!=null?e:By,{state:r}=t,{selection:i}=r,{$from:s,empty:o}=i;if(s.parent.type!==this.type)return!1;const l=" ".repeat(n);return o?t.commands.insertContent(l):t.commands.command(({tr:a})=>{const{from:c,to:u}=i,p=r.doc.textBetween(c,u,` -`,` -`).split(` -`).map(m=>l+m).join(` -`);return a.replaceWith(c,u,r.schema.text(p)),!0})},"Shift-Tab":({editor:t})=>{var e;if(!this.options.enableTabIndentation)return!1;const n=(e=this.options.tabSize)!=null?e:By,{state:r}=t,{selection:i}=r,{$from:s,empty:o}=i;return s.parent.type!==this.type?!1:o?t.commands.command(({tr:l})=>{var a;const{pos:c}=s,u=s.start(),d=s.end(),p=r.doc.textBetween(u,d,` -`,` -`).split(` -`);let m=0,g=0;const y=c-u;for(let M=0;M=y){m=M;break}g+=p[M].length+1}const w=((a=p[m].match(/^ */))==null?void 0:a[0])||"",x=Math.min(w.length,n);if(x===0)return!0;let E=u;for(let M=0;M{const{from:a,to:c}=i,f=r.doc.textBetween(a,c,` -`,` -`).split(` -`).map(p=>{var m;const g=((m=p.match(/^ */))==null?void 0:m[0])||"",y=Math.min(g.length,n);return p.slice(y)}).join(` -`);return l.replaceWith(a,c,r.schema.text(f)),!0})},Enter:({editor:t})=>{if(!this.options.exitOnTripleEnter)return!1;const{state:e}=t,{selection:n}=e,{$from:r,empty:i}=n;if(!i||r.parent.type!==this.type)return!1;const s=r.parentOffset===r.parent.nodeSize-2,o=r.parent.textContent.endsWith(` - -`);return!s||!o?!1:t.chain().command(({tr:l})=>(l.delete(r.pos-2,r.pos),!0)).exitCode().run()},ArrowDown:({editor:t})=>{if(!this.options.exitOnArrowDown)return!1;const{state:e}=t,{selection:n,doc:r}=e,{$from:i,empty:s}=n;if(!s||i.parent.type!==this.type||!(i.parentOffset===i.parent.nodeSize-2))return!1;const l=i.after();return l===void 0?!1:r.nodeAt(l)?t.commands.command(({tr:c})=>(c.setSelection(Nt.near(r.resolve(l))),!0)):t.commands.exitCode()}}},addInputRules(){return[j0({find:l8,type:this.type,getAttributes:t=>({language:t[1]})}),j0({find:a8,type:this.type,getAttributes:t=>({language:t[1]})})]},addProseMirrorPlugins(){return[new hn({key:new pn("codeBlockVSCodeHandler"),props:{handlePaste:(t,e)=>{if(!e.clipboardData||this.editor.isActive(this.type.name))return!1;const n=e.clipboardData.getData("text/plain"),r=e.clipboardData.getData("vscode-editor-data"),i=r?JSON.parse(r):void 0,s=i==null?void 0:i.mode;if(!n||!s)return!1;const{tr:o,schema:l}=t.state,a=l.text(n.replace(/\r\n?/g,` -`));return o.replaceSelectionWith(this.type.create({language:s},a)),o.selection.$from.parent.type!==this.type&&o.setSelection(St.near(o.doc.resolve(Math.max(0,o.selection.from-2)))),o.setMeta("paste",!0),t.dispatch(o),!0}}})]}}),u8=yi.create({name:"doc",topNode:!0,content:"block+",renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,` - -`):""}),d8=yi.create({name:"hardBreak",markdownTokenName:"br",addOptions(){return{keepMarks:!0,HTMLAttributes:{}}},inline:!0,group:"inline",selectable:!1,linebreakReplacement:!0,parseHTML(){return[{tag:"br"}]},renderHTML({HTMLAttributes:t}){return["br",Yn(this.options.HTMLAttributes,t)]},renderText(){return` -`},renderMarkdown:()=>` -`,parseMarkdown:()=>({type:"hardBreak"}),addCommands(){return{setHardBreak:()=>({commands:t,chain:e,state:n,editor:r})=>t.first([()=>t.exitCode(),()=>t.command(()=>{const{selection:i,storedMarks:s}=n;if(i.$from.parent.type.spec.isolating)return!1;const{keepMarks:o}=this.options,{splittableMarks:l}=r.extensionManager,a=s||i.$to.parentOffset&&i.$from.marks();return e().insertContent({type:this.name}).command(({tr:c,dispatch:u})=>{if(u&&a&&o){const d=a.filter(f=>l.includes(f.type.name));c.ensureMarks(d)}return!0}).run()})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),f8=yi.create({name:"heading",addOptions(){return{levels:[1,2,3,4,5,6],HTMLAttributes:{}}},content:"inline*",group:"block",defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map(t=>({tag:`h${t}`,attrs:{level:t}}))},renderHTML({node:t,HTMLAttributes:e}){return[`h${this.options.levels.includes(t.attrs.level)?t.attrs.level:this.options.levels[0]}`,Yn(this.options.HTMLAttributes,e),0]},parseMarkdown:(t,e)=>e.createNode("heading",{level:t.depth||1},e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>{var n;const r=(n=t.attrs)!=null&&n.level?parseInt(t.attrs.level,10):1,i="#".repeat(r);return t.content?`${i} ${e.renderChildren(t.content)}`:""},addCommands(){return{setHeading:t=>({commands:e})=>this.options.levels.includes(t.level)?e.setNode(this.name,t):!1,toggleHeading:t=>({commands:e})=>this.options.levels.includes(t.level)?e.toggleNode(this.name,"paragraph",t):!1}},addKeyboardShortcuts(){return this.options.levels.reduce((t,e)=>({...t,[`Mod-Alt-${e}`]:()=>this.editor.commands.toggleHeading({level:e})}),{})},addInputRules(){return this.options.levels.map(t=>j0({find:new RegExp(`^(#{${Math.min(...this.options.levels)},${t}})\\s$`),type:this.type,getAttributes:{level:t}}))}}),h8=yi.create({name:"horizontalRule",addOptions(){return{HTMLAttributes:{},nextNodeType:"paragraph"}},group:"block",parseHTML(){return[{tag:"hr"}]},renderHTML({HTMLAttributes:t}){return["hr",Yn(this.options.HTMLAttributes,t)]},markdownTokenName:"hr",parseMarkdown:(t,e)=>e.createNode("horizontalRule"),renderMarkdown:()=>"---",addCommands(){return{setHorizontalRule:()=>({chain:t,state:e})=>{if(!M5(e,e.schema.nodes[this.name]))return!1;const{selection:n}=e,{$to:r}=n,i=t();return i2(n)?i.insertContentAt(r.pos,{type:this.name}):i.insertContent({type:this.name}),i.command(({state:s,tr:o,dispatch:l})=>{if(l){const{$to:a}=o.selection,c=a.end();if(a.nodeAfter)a.nodeAfter.isTextblock?o.setSelection(St.create(o.doc,a.pos+1)):a.nodeAfter.isBlock?o.setSelection(pt.create(o.doc,a.pos)):o.setSelection(St.create(o.doc,a.pos));else{const u=s.schema.nodes[this.options.nextNodeType]||a.parent.type.contentMatch.defaultType,d=u==null?void 0:u.create();d&&(o.insert(c,d),o.setSelection(St.create(o.doc,c+1)))}o.scrollIntoView()}return!0}).run()}}},addInputRules(){return[A5({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}}),p8=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,m8=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,g8=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,y8=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,v8=da.create({name:"italic",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"em"},{tag:"i",getAttrs:t=>t.style.fontStyle!=="normal"&&null},{style:"font-style=normal",clearMark:t=>t.type.name===this.name},{style:"font-style=italic"}]},renderHTML({HTMLAttributes:t}){return["em",Yn(this.options.HTMLAttributes,t),0]},addCommands(){return{setItalic:()=>({commands:t})=>t.setMark(this.name),toggleItalic:()=>({commands:t})=>t.toggleMark(this.name),unsetItalic:()=>({commands:t})=>t.unsetMark(this.name)}},markdownTokenName:"em",parseMarkdown:(t,e)=>e.applyMark("italic",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`*${e.renderChildren(t)}*`,addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[yc({find:p8,type:this.type}),yc({find:g8,type:this.type})]},addPasteRules(){return[ea({find:m8,type:this.type}),ea({find:y8,type:this.type})]}});const w8="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",b8="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",B0="numeric",U0="ascii",H0="alpha",Pu="asciinumeric",gu="alphanumeric",V0="domain",cR="emoji",x8="scheme",k8="slashscheme",Uy="whitespace";function S8(t,e){return t in e||(e[t]=[]),e[t]}function Ol(t,e,n){e[B0]&&(e[Pu]=!0,e[gu]=!0),e[U0]&&(e[Pu]=!0,e[H0]=!0),e[Pu]&&(e[gu]=!0),e[H0]&&(e[gu]=!0),e[gu]&&(e[V0]=!0),e[cR]&&(e[V0]=!0);for(const r in e){const i=S8(r,n);i.indexOf(t)<0&&i.push(t)}}function C8(t,e){const n={};for(const r in e)e[r].indexOf(t)>=0&&(n[r]=!0);return n}function Xr(t=null){this.j={},this.jr=[],this.jd=null,this.t=t}Xr.groups={};Xr.prototype={accepts(){return!!this.t},go(t){const e=this,n=e.j[t];if(n)return n;for(let r=0;rt.ta(e,n,r,i),Dn=(t,e,n,r,i)=>t.tr(e,n,r,i),XC=(t,e,n,r,i)=>t.ts(e,n,r,i),Ne=(t,e,n,r,i)=>t.tt(e,n,r,i),Bs="WORD",W0="UWORD",uR="ASCIINUMERICAL",dR="ALPHANUMERICAL",kd="LOCALHOST",K0="TLD",Y0="UTLD",Nh="SCHEME",Ea="SLASH_SCHEME",wx="NUM",q0="WS",bx="NL",Lu="OPENBRACE",_u="CLOSEBRACE",Op="OPENBRACKET",jp="CLOSEBRACKET",Pp="OPENPAREN",Lp="CLOSEPAREN",_p="OPENANGLEBRACKET",zp="CLOSEANGLEBRACKET",Fp="FULLWIDTHLEFTPAREN",$p="FULLWIDTHRIGHTPAREN",Bp="LEFTCORNERBRACKET",Up="RIGHTCORNERBRACKET",Hp="LEFTWHITECORNERBRACKET",Vp="RIGHTWHITECORNERBRACKET",Wp="FULLWIDTHLESSTHAN",Kp="FULLWIDTHGREATERTHAN",Yp="AMPERSAND",qp="APOSTROPHE",Jp="ASTERISK",Ro="AT",Gp="BACKSLASH",Xp="BACKTICK",Qp="CARET",Lo="COLON",xx="COMMA",Zp="DOLLAR",gs="DOT",em="EQUALS",kx="EXCLAMATION",xi="HYPHEN",zu="PERCENT",tm="PIPE",nm="PLUS",rm="POUND",Fu="QUERY",Sx="QUOTE",fR="FULLWIDTHMIDDLEDOT",Cx="SEMI",ys="SLASH",$u="TILDE",im="UNDERSCORE",hR="EMOJI",sm="SYM";var pR=Object.freeze({__proto__:null,ALPHANUMERICAL:dR,AMPERSAND:Yp,APOSTROPHE:qp,ASCIINUMERICAL:uR,ASTERISK:Jp,AT:Ro,BACKSLASH:Gp,BACKTICK:Xp,CARET:Qp,CLOSEANGLEBRACKET:zp,CLOSEBRACE:_u,CLOSEBRACKET:jp,CLOSEPAREN:Lp,COLON:Lo,COMMA:xx,DOLLAR:Zp,DOT:gs,EMOJI:hR,EQUALS:em,EXCLAMATION:kx,FULLWIDTHGREATERTHAN:Kp,FULLWIDTHLEFTPAREN:Fp,FULLWIDTHLESSTHAN:Wp,FULLWIDTHMIDDLEDOT:fR,FULLWIDTHRIGHTPAREN:$p,HYPHEN:xi,LEFTCORNERBRACKET:Bp,LEFTWHITECORNERBRACKET:Hp,LOCALHOST:kd,NL:bx,NUM:wx,OPENANGLEBRACKET:_p,OPENBRACE:Lu,OPENBRACKET:Op,OPENPAREN:Pp,PERCENT:zu,PIPE:tm,PLUS:nm,POUND:rm,QUERY:Fu,QUOTE:Sx,RIGHTCORNERBRACKET:Up,RIGHTWHITECORNERBRACKET:Vp,SCHEME:Nh,SEMI:Cx,SLASH:ys,SLASH_SCHEME:Ea,SYM:sm,TILDE:$u,TLD:K0,UNDERSCORE:im,UTLD:Y0,UWORD:W0,WORD:Bs,WS:q0});const js=/[a-z]/,lu=new RegExp("\\p{L}","u"),Hy=new RegExp("\\p{Emoji}","u"),Ps=/\d/,Vy=/\s/,QC="\r",Wy=` -`,E8="️",N8="‍",Ky="";let Qf=null,Zf=null;function T8(t=[]){const e={};Xr.groups=e;const n=new Xr;Qf==null&&(Qf=ZC(w8)),Zf==null&&(Zf=ZC(b8)),Ne(n,"'",qp),Ne(n,"{",Lu),Ne(n,"}",_u),Ne(n,"[",Op),Ne(n,"]",jp),Ne(n,"(",Pp),Ne(n,")",Lp),Ne(n,"<",_p),Ne(n,">",zp),Ne(n,"(",Fp),Ne(n,")",$p),Ne(n,"「",Bp),Ne(n,"」",Up),Ne(n,"『",Hp),Ne(n,"』",Vp),Ne(n,"<",Wp),Ne(n,">",Kp),Ne(n,"&",Yp),Ne(n,"*",Jp),Ne(n,"@",Ro),Ne(n,"`",Xp),Ne(n,"^",Qp),Ne(n,":",Lo),Ne(n,",",xx),Ne(n,"$",Zp),Ne(n,".",gs),Ne(n,"=",em),Ne(n,"!",kx),Ne(n,"-",xi),Ne(n,"%",zu),Ne(n,"|",tm),Ne(n,"+",nm),Ne(n,"#",rm),Ne(n,"?",Fu),Ne(n,'"',Sx),Ne(n,"/",ys),Ne(n,";",Cx),Ne(n,"~",$u),Ne(n,"_",im),Ne(n,"\\",Gp),Ne(n,"・",fR);const r=Dn(n,Ps,wx,{[B0]:!0});Dn(r,Ps,r);const i=Dn(r,js,uR,{[Pu]:!0}),s=Dn(r,lu,dR,{[gu]:!0}),o=Dn(n,js,Bs,{[U0]:!0});Dn(o,Ps,i),Dn(o,js,o),Dn(i,Ps,i),Dn(i,js,i);const l=Dn(n,lu,W0,{[H0]:!0});Dn(l,js),Dn(l,Ps,s),Dn(l,lu,l),Dn(s,Ps,s),Dn(s,js),Dn(s,lu,s);const a=Ne(n,Wy,bx,{[Uy]:!0}),c=Ne(n,QC,q0,{[Uy]:!0}),u=Dn(n,Vy,q0,{[Uy]:!0});Ne(n,Ky,u),Ne(c,Wy,a),Ne(c,Ky,u),Dn(c,Vy,u),Ne(u,QC),Ne(u,Wy),Dn(u,Vy,u),Ne(u,Ky,u);const d=Dn(n,Hy,hR,{[cR]:!0});Ne(d,"#"),Dn(d,Hy,d),Ne(d,E8,d);const f=Ne(d,N8);Ne(f,"#"),Dn(f,Hy,d);const p=[[js,o],[Ps,i]],m=[[js,null],[lu,l],[Ps,s]];for(let g=0;gg[0]>y[0]?1:-1);for(let g=0;g=0?w[V0]=!0:js.test(y)?Ps.test(y)?w[Pu]=!0:w[U0]=!0:w[B0]=!0,XC(n,y,y,w)}return XC(n,"localhost",kd,{ascii:!0}),n.jd=new Xr(sm),{start:n,tokens:Object.assign({groups:e},pR)}}function mR(t,e){const n=A8(e.replace(/[A-Z]/g,l=>l.toLowerCase())),r=n.length,i=[];let s=0,o=0;for(;o=0&&(d+=n[o].length,f++),c+=n[o].length,s+=n[o].length,o++;s-=d,o-=f,c-=d,i.push({t:u.t,v:e.slice(s-c,s),s:s-c,e:s})}return i}function A8(t){const e=[],n=t.length;let r=0;for(;r56319||r+1===n||(s=t.charCodeAt(r+1))<56320||s>57343?t[r]:t.slice(r,r+2);e.push(o),r+=o.length}return e}function Co(t,e,n,r,i){let s;const o=e.length;for(let l=0;l=0;)s++;if(s>0){e.push(n.join(""));for(let o=parseInt(t.substring(r,r+s),10);o>0;o--)n.pop();r+=s}else n.push(t[r]),r++}return e}const Sd={defaultProtocol:"http",events:null,format:eE,formatHref:eE,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function Ex(t,e=null){let n=Object.assign({},Sd);t&&(n=Object.assign(n,t instanceof Ex?t.o:t));const r=n.ignoreTags,i=[];for(let s=0;sn?r.substring(0,n)+"…":r},toFormattedHref(t){return t.get("formatHref",this.toHref(t.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(t=Sd.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(t),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(t){return{type:this.t,value:this.toFormattedString(t),isLink:this.isLink,href:this.toFormattedHref(t),start:this.startIndex(),end:this.endIndex()}},validate(t){return t.get("validate",this.toString(),this)},render(t){const e=this,n=this.toHref(t.get("defaultProtocol")),r=t.get("formatHref",n,this),i=t.get("tagName",n,e),s=this.toFormattedString(t),o={},l=t.get("className",n,e),a=t.get("target",n,e),c=t.get("rel",n,e),u=t.getObj("attributes",n,e),d=t.getObj("events",n,e);return o.href=r,l&&(o.class=l),a&&(o.target=a),c&&(o.rel=c),u&&Object.assign(o,u),{tagName:i,attributes:o,content:s,eventListeners:d}}};function gg(t,e){class n extends gR{constructor(i,s){super(i,s),this.t=t}}for(const r in e)n.prototype[r]=e[r];return n.t=t,n}const tE=gg("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),nE=gg("text"),M8=gg("nl"),eh=gg("url",{isLink:!0,toHref(t=Sd.defaultProtocol){return this.hasProtocol()?this.v:`${t}://${this.v}`},hasProtocol(){const t=this.tk;return t.length>=2&&t[0].t!==kd&&t[1].t===Lo}}),bi=t=>new Xr(t);function I8({groups:t}){const e=t.domain.concat([Yp,Jp,Ro,Gp,Xp,Qp,Zp,em,xi,wx,zu,tm,nm,rm,ys,sm,$u,im]),n=[qp,Lo,xx,gs,kx,zu,Fu,Sx,Cx,_p,zp,Lu,_u,jp,Op,Pp,Lp,Fp,$p,Bp,Up,Hp,Vp,Wp,Kp],r=[Yp,qp,Jp,Gp,Xp,Qp,Zp,em,xi,Lu,_u,zu,tm,nm,rm,Fu,ys,sm,$u,im],i=bi(),s=Ne(i,$u);Vt(s,r,s),Vt(s,t.domain,s);const o=bi(),l=bi(),a=bi();Vt(i,t.domain,o),Vt(i,t.scheme,l),Vt(i,t.slashscheme,a),Vt(o,r,s),Vt(o,t.domain,o);const c=Ne(o,Ro);Ne(s,Ro,c),Ne(l,Ro,c),Ne(a,Ro,c);const u=Ne(s,gs);Vt(u,r,s),Vt(u,t.domain,s);const d=bi();Vt(c,t.domain,d),Vt(d,t.domain,d);const f=Ne(d,gs);Vt(f,t.domain,d);const p=bi(tE);Vt(f,t.tld,p),Vt(f,t.utld,p),Ne(c,kd,p);const m=Ne(d,xi);Ne(m,xi,m),Vt(m,t.domain,d),Vt(p,t.domain,d),Ne(p,gs,f),Ne(p,xi,m);const g=Ne(p,Lo);Vt(g,t.numeric,tE);const y=Ne(o,xi),v=Ne(o,gs);Ne(y,xi,y),Vt(y,t.domain,o),Vt(v,r,s),Vt(v,t.domain,o);const w=bi(eh);Vt(v,t.tld,w),Vt(v,t.utld,w),Vt(w,t.domain,o),Vt(w,r,s),Ne(w,gs,v),Ne(w,xi,y),Ne(w,Ro,c);const x=Ne(w,Lo),E=bi(eh);Vt(x,t.numeric,E);const k=bi(eh),M=bi();Vt(k,e,k),Vt(k,n,M),Vt(M,e,k),Vt(M,n,M),Ne(w,ys,k),Ne(E,ys,k);const N=Ne(l,Lo),z=Ne(a,Lo),X=Ne(z,ys),L=Ne(X,ys);Vt(l,t.domain,o),Ne(l,gs,v),Ne(l,xi,y),Vt(a,t.domain,o),Ne(a,gs,v),Ne(a,xi,y),Vt(N,t.domain,k),Ne(N,ys,k),Ne(N,Fu,k),Vt(L,t.domain,k),Vt(L,e,k),Ne(L,ys,k);const H=[[Lu,_u],[Op,jp],[Pp,Lp],[_p,zp],[Fp,$p],[Bp,Up],[Hp,Vp],[Wp,Kp]];for(let W=0;W=0&&f++,i++,u++;if(f<0)i-=u,i0&&(s.push(Yy(nE,e,o)),o=[]),i-=f,u-=f;const p=d.t,m=n.slice(i-u,i);s.push(Yy(p,e,m))}}return o.length>0&&s.push(Yy(nE,e,o)),s}function Yy(t,e,n){const r=n[0].s,i=n[n.length-1].e,s=e.slice(r,i);return new t(s,n)}const D8=typeof console<"u"&&console&&console.warn||(()=>{}),O8="until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.",kn={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function j8(){return Xr.groups={},kn.scanner=null,kn.parser=null,kn.tokenQueue=[],kn.pluginQueue=[],kn.customSchemes=[],kn.initialized=!1,kn}function rE(t,e=!1){if(kn.initialized&&D8(`linkifyjs: already initialized - will not register custom scheme "${t}" ${O8}`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(t))throw new Error(`linkifyjs: incorrect scheme format. -1. Must only contain digits, lowercase ASCII letters or "-" -2. Cannot start or end with "-" -3. "-" cannot repeat`);kn.customSchemes.push([t,e])}function P8(){kn.scanner=T8(kn.customSchemes);for(let t=0;t{const i=e.some(c=>c.docChanged)&&!n.doc.eq(r.doc),s=e.some(c=>c.getMeta("preventAutolink"));if(!i||s)return;const{tr:o}=r,l=GI(n.doc,[...e]);if(r2(l).forEach(({newRange:c})=>{const u=DB(r.doc,c,p=>p.isTextblock);let d,f;if(u.length>1)d=u[0],f=r.doc.textBetween(d.pos,d.pos+d.node.nodeSize,void 0," ");else if(u.length){const p=r.doc.textBetween(c.from,c.to," "," ");if(!_8.test(p))return;d=u[0],f=r.doc.textBetween(d.pos,c.to,void 0," ")}if(d&&f){const p=f.split(L8).filter(Boolean);if(p.length<=0)return!1;const m=p[p.length-1],g=d.pos+f.lastIndexOf(m);if(!m)return!1;const y=Nx(m).map(v=>v.toObject(t.defaultProtocol));if(!F8(y))return!1;y.filter(v=>v.isLink).map(v=>({...v,from:g+v.start+1,to:g+v.end+1})).filter(v=>r.schema.marks.code?!r.doc.rangeHasMark(v.from,v.to,r.schema.marks.code):!0).filter(v=>t.validate(v.value)).filter(v=>t.shouldAutoLink(v.value)).forEach(v=>{ix(v.from,v.to,r.doc).some(w=>w.mark.type===t.type)||o.addMark(v.from,v.to,t.type.create({href:v.href}))})}}),!!o.steps.length)return o}})}function B8(t){return new hn({key:new pn("handleClickLink"),props:{handleClick:(e,n,r)=>{var i,s;if(r.button!==0||!e.editable)return!1;let o=null;if(r.target instanceof HTMLAnchorElement)o=r.target;else{const a=r.target;if(!a)return!1;const c=t.editor.view.dom;o=a.closest("a"),o&&!c.contains(o)&&(o=null)}if(!o)return!1;let l=!1;if(t.enableClickSelection&&(l=t.editor.commands.extendMarkRange(t.type.name)),t.openOnClick){const a=n2(e.state,t.type.name),c=(i=o.href)!=null?i:a.href,u=(s=o.target)!=null?s:a.target;c&&(window.open(c,u),l=!0)}return l}}})}function U8(t){return new hn({key:new pn("handlePasteLink"),props:{handlePaste:(e,n,r)=>{const{shouldAutoLink:i}=t,{state:s}=e,{selection:o}=s,{empty:l}=o;if(l)return!1;let a="";r.content.forEach(u=>{a+=u.textContent});const c=yR(a,{defaultProtocol:t.defaultProtocol}).find(u=>u.isLink&&u.value===a);return!a||!c||i!==void 0&&!i(c.value)?!1:t.editor.commands.setMark(t.type,{href:c.href})}}})}function kl(t,e){const n=["http","https","ftp","ftps","mailto","tel","callto","sms","cid","xmpp"];return e&&e.forEach(r=>{const i=typeof r=="string"?r:r.scheme;i&&n.push(i)}),!t||t.replace(z8,"").match(new RegExp(`^(?:(?:${n.join("|")}):|[^a-z]|[a-z0-9+.-]+(?:[^a-z+.-:]|$))`,"i"))}var vR=da.create({name:"link",priority:1e3,keepOnSplit:!1,exitable:!0,onCreate(){this.options.validate&&!this.options.shouldAutoLink&&(this.options.shouldAutoLink=this.options.validate,console.warn("The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.")),this.options.protocols.forEach(t=>{if(typeof t=="string"){rE(t);return}rE(t.scheme,t.optionalSlashes)})},onDestroy(){j8()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,enableClickSelection:!1,linkOnPaste:!0,autolink:!0,protocols:[],defaultProtocol:"http",HTMLAttributes:{target:"_blank",rel:"noopener noreferrer nofollow",class:null},isAllowedUri:(t,e)=>!!kl(t,e.protocols),validate:t=>!!t,shouldAutoLink:t=>{const e=/^[a-z][a-z0-9+.-]*:\/\//i.test(t),n=/^[a-z][a-z0-9+.-]*:/i.test(t);if(e||n&&!t.includes("@"))return!0;const i=(t.includes("@")?t.split("@").pop():t).split(/[/?#:]/)[0];return!(/^\d{1,3}(\.\d{1,3}){3}$/.test(i)||!/\./.test(i))}}},addAttributes(){return{href:{default:null,parseHTML(t){return t.getAttribute("href")}},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class}}},parseHTML(){return[{tag:"a[href]",getAttrs:t=>{const e=t.getAttribute("href");return!e||!this.options.isAllowedUri(e,{defaultValidate:n=>!!kl(n,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:null}}]},renderHTML({HTMLAttributes:t}){return this.options.isAllowedUri(t.href,{defaultValidate:e=>!!kl(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?["a",Yn(this.options.HTMLAttributes,t),0]:["a",Yn(this.options.HTMLAttributes,{...t,href:""}),0]},markdownTokenName:"link",parseMarkdown:(t,e)=>e.applyMark("link",e.parseInline(t.tokens||[]),{href:t.href,title:t.title||null}),renderMarkdown:(t,e)=>{var n;const r=((n=t.attrs)==null?void 0:n.href)||"";return`[${e.renderChildren(t)}](${r})`},addCommands(){return{setLink:t=>({chain:e})=>{const{href:n}=t;return this.options.isAllowedUri(n,{defaultValidate:r=>!!kl(r,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?e().setMark(this.name,t).setMeta("preventAutolink",!0).run():!1},toggleLink:t=>({chain:e})=>{const{href:n}=t||{};return n&&!this.options.isAllowedUri(n,{defaultValidate:r=>!!kl(r,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:e().toggleMark(this.name,t,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()},unsetLink:()=>({chain:t})=>t().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()}},addPasteRules(){return[ea({find:t=>{const e=[];if(t){const{protocols:n,defaultProtocol:r}=this.options,i=yR(t).filter(s=>s.isLink&&this.options.isAllowedUri(s.value,{defaultValidate:o=>!!kl(o,n),protocols:n,defaultProtocol:r}));i.length&&i.forEach(s=>{this.options.shouldAutoLink(s.value)&&e.push({text:s.value,data:{href:s.href},index:s.start})})}return e},type:this.type,getAttributes:t=>{var e;return{href:(e=t.data)==null?void 0:e.href}}})]},addProseMirrorPlugins(){const t=[],{protocols:e,defaultProtocol:n}=this.options;return this.options.autolink&&t.push($8({type:this.type,defaultProtocol:this.options.defaultProtocol,validate:r=>this.options.isAllowedUri(r,{defaultValidate:i=>!!kl(i,e),protocols:e,defaultProtocol:n}),shouldAutoLink:this.options.shouldAutoLink})),t.push(B8({type:this.type,editor:this.editor,openOnClick:this.options.openOnClick==="whenNotEditable"?!0:this.options.openOnClick,enableClickSelection:this.options.enableClickSelection})),this.options.linkOnPaste&&t.push(U8({editor:this.editor,defaultProtocol:this.options.defaultProtocol,type:this.type,shouldAutoLink:this.options.shouldAutoLink})),t}}),wR=vR,H8=Object.defineProperty,V8=(t,e)=>{for(var n in e)H8(t,n,{get:e[n],enumerable:!0})},W8="listItem",iE="textStyle",sE=/^\s*([-+*])\s$/,bR=yi.create({name:"bulletList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:"ul"}]},renderHTML({HTMLAttributes:t}){return["ul",Yn(this.options.HTMLAttributes,t),0]},markdownTokenName:"list",parseMarkdown:(t,e)=>t.type!=="list"||t.ordered?[]:{type:"bulletList",content:t.items?e.parseChildren(t.items):[]},renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,` -`):"",markdownOptions:{indentsContent:!0},addCommands(){return{toggleBulletList:()=>({commands:t,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(W8,this.editor.getAttributes(iE)).run():t.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let t=vc({find:sE,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(t=vc({find:sE,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(iE),editor:this.editor})),[t]}}),xR=yi.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:t}){return["li",Yn(this.options.HTMLAttributes,t),0]},markdownTokenName:"list_item",parseMarkdown:(t,e)=>{if(t.type!=="list_item")return[];let n=[];if(t.tokens&&t.tokens.length>0)if(t.tokens.some(i=>i.type==="paragraph"))n=e.parseChildren(t.tokens);else{const i=t.tokens[0];if(i&&i.type==="text"&&i.tokens&&i.tokens.length>0){if(n=[{type:"paragraph",content:e.parseInline(i.tokens)}],t.tokens.length>1){const o=t.tokens.slice(1),l=e.parseChildren(o);n.push(...l)}}else n=e.parseChildren(t.tokens)}return n.length===0&&(n=[{type:"paragraph",content:[]}]),{type:"listItem",content:n}},renderMarkdown:(t,e,n)=>cx(t,e,r=>{var i,s;return r.parentType==="bulletList"?"- ":r.parentType==="orderedList"?`${(((s=(i=r.meta)==null?void 0:i.parentAttrs)==null?void 0:s.start)||1)+r.index}. `:"- "},n),addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),K8={};V8(K8,{findListItemPos:()=>Zd,getNextListDepth:()=>Ax,handleBackspace:()=>J0,handleDelete:()=>G0,hasListBefore:()=>kR,hasListItemAfter:()=>Y8,hasListItemBefore:()=>SR,listItemHasSubList:()=>CR,nextListIsDeeper:()=>ER,nextListIsHigher:()=>NR});var Zd=(t,e)=>{const{$from:n}=e.selection,r=Kn(t,e.schema);let i=null,s=n.depth,o=n.pos,l=null;for(;s>0&&l===null;)i=n.node(s),i.type===r?l=s:(s-=1,o-=1);return l===null?null:{$pos:e.doc.resolve(o),depth:l}},Ax=(t,e)=>{const n=Zd(t,e);if(!n)return!1;const[,r]=BB(e,t,n.$pos.pos+4);return r},kR=(t,e,n)=>{const{$anchor:r}=t.selection,i=Math.max(0,r.pos-2),s=t.doc.resolve(i).node();return!(!s||!n.includes(s.type.name))},SR=(t,e)=>{var n;const{$anchor:r}=e.selection,i=e.doc.resolve(r.pos-2);return!(i.index()===0||((n=i.nodeBefore)==null?void 0:n.type.name)!==t)},CR=(t,e,n)=>{if(!n)return!1;const r=Kn(t,e.schema);let i=!1;return n.descendants(s=>{s.type===r&&(i=!0)}),i},J0=(t,e,n)=>{if(t.commands.undoInputRule())return!0;if(t.state.selection.from!==t.state.selection.to)return!1;if(!ol(t.state,e)&&kR(t.state,e,n)){const{$anchor:l}=t.state.selection,a=t.state.doc.resolve(l.before()-1),c=[];a.node().descendants((f,p)=>{f.type.name===e&&c.push({node:f,pos:p})});const u=c.at(-1);if(!u)return!1;const d=t.state.doc.resolve(a.start()+u.pos+1);return t.chain().cut({from:l.start()-1,to:l.end()+1},d.end()).joinForward().run()}if(!ol(t.state,e)||!WB(t.state))return!1;const r=Zd(e,t.state);if(!r)return!1;const s=t.state.doc.resolve(r.$pos.pos-2).node(r.depth),o=CR(e,t.state,s);return SR(e,t.state)&&!o?t.commands.joinItemBackward():t.chain().liftListItem(e).run()},ER=(t,e)=>{const n=Ax(t,e),r=Zd(t,e);return!r||!n?!1:n>r.depth},NR=(t,e)=>{const n=Ax(t,e),r=Zd(t,e);return!r||!n?!1:n{if(!ol(t.state,e)||!VB(t.state,e))return!1;const{selection:n}=t.state,{$from:r,$to:i}=n;return!n.empty&&r.sameParent(i)?!1:ER(e,t.state)?t.chain().focus(t.state.selection.from+4).lift(e).joinBackward().run():NR(e,t.state)?t.chain().joinForward().joinBackward().run():t.commands.joinItemForward()},Y8=(t,e)=>{var n;const{$anchor:r}=e.selection,i=e.doc.resolve(r.pos-r.parentOffset-2);return!(i.index()===i.parent.childCount-1||((n=i.nodeAfter)==null?void 0:n.type.name)!==t)},TR=mn.create({name:"listKeymap",addOptions(){return{listTypes:[{itemName:"listItem",wrapperNames:["bulletList","orderedList"]},{itemName:"taskItem",wrapperNames:["taskList"]}]}},addKeyboardShortcuts(){return{Delete:({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n})=>{t.state.schema.nodes[n]!==void 0&&G0(t,n)&&(e=!0)}),e},"Mod-Delete":({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n})=>{t.state.schema.nodes[n]!==void 0&&G0(t,n)&&(e=!0)}),e},Backspace:({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:r})=>{t.state.schema.nodes[n]!==void 0&&J0(t,n,r)&&(e=!0)}),e},"Mod-Backspace":({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:r})=>{t.state.schema.nodes[n]!==void 0&&J0(t,n,r)&&(e=!0)}),e}}}}),oE=/^(\s*)(\d+)\.\s+(.*)$/,q8=/^\s/;function J8(t){const e=[];let n=0,r=0;for(;ne;)f.push(t[d]),d+=1;if(f.length>0){const p=Math.min(...f.map(g=>g.indent)),m=AR(f,p,n);c.push({type:"list",ordered:!0,start:f[0].number,items:m,raw:f.map(g=>g.raw).join(` -`)})}i.push({type:"list_item",raw:o.raw,tokens:c}),s=d}else s+=1}return i}function G8(t,e){return t.map(n=>{if(n.type!=="list_item")return e.parseChildren([n])[0];const r=[];return n.tokens&&n.tokens.length>0&&n.tokens.forEach(i=>{if(i.type==="paragraph"||i.type==="list"||i.type==="blockquote"||i.type==="code")r.push(...e.parseChildren([i]));else if(i.type==="text"&&i.tokens){const s=e.parseChildren([i]);r.push({type:"paragraph",content:s})}else{const s=e.parseChildren([i]);s.length>0&&r.push(...s)}}),{type:"listItem",content:r}})}var X8="listItem",lE="textStyle",aE=/^(\d+)\.\s$/,MR=yi.create({name:"orderedList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},addAttributes(){return{start:{default:1,parseHTML:t=>t.hasAttribute("start")?parseInt(t.getAttribute("start")||"",10):1},type:{default:null,parseHTML:t=>t.getAttribute("type")}}},parseHTML(){return[{tag:"ol"}]},renderHTML({HTMLAttributes:t}){const{start:e,...n}=t;return e===1?["ol",Yn(this.options.HTMLAttributes,n),0]:["ol",Yn(this.options.HTMLAttributes,t),0]},markdownTokenName:"list",parseMarkdown:(t,e)=>{if(t.type!=="list"||!t.ordered)return[];const n=t.start||1,r=t.items?G8(t.items,e):[];return n!==1?{type:"orderedList",attrs:{start:n},content:r}:{type:"orderedList",content:r}},renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,` -`):"",markdownTokenizer:{name:"orderedList",level:"block",start:t=>{const e=t.match(/^(\s*)(\d+)\.\s+/),n=e==null?void 0:e.index;return n!==void 0?n:-1},tokenize:(t,e,n)=>{var r;const i=t.split(` -`),[s,o]=J8(i);if(s.length===0)return;const l=AR(s,0,n);return l.length===0?void 0:{type:"list",ordered:!0,start:((r=s[0])==null?void 0:r.number)||1,items:l,raw:i.slice(0,o).join(` -`)}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleOrderedList:()=>({commands:t,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(X8,this.editor.getAttributes(lE)).run():t.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let t=vc({find:aE,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:(e,n)=>n.childCount+n.attrs.start===+e[1]});return(this.options.keepMarks||this.options.keepAttributes)&&(t=vc({find:aE,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(lE)}),joinPredicate:(e,n)=>n.childCount+n.attrs.start===+e[1],editor:this.editor})),[t]}}),Q8=/^\s*(\[([( |x])?\])\s$/,Z8=yi.create({name:"taskItem",addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:"taskList",a11y:void 0}},content(){return this.options.nested?"paragraph block*":"paragraph+"},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:t=>{const e=t.getAttribute("data-checked");return e===""||e==="true"},renderHTML:t=>({"data-checked":t.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:t,HTMLAttributes:e}){return["li",Yn(this.options.HTMLAttributes,e,{"data-type":this.name}),["label",["input",{type:"checkbox",checked:t.attrs.checked?"checked":null}],["span"]],["div",0]]},parseMarkdown:(t,e)=>{const n=[];if(t.tokens&&t.tokens.length>0?n.push(e.createNode("paragraph",{},e.parseInline(t.tokens))):t.text?n.push(e.createNode("paragraph",{},[e.createNode("text",{text:t.text})])):n.push(e.createNode("paragraph",{},[])),t.nestedTokens&&t.nestedTokens.length>0){const r=e.parseChildren(t.nestedTokens);n.push(...r)}return e.createNode("taskItem",{checked:t.checked||!1},n)},renderMarkdown:(t,e)=>{var n;const i=`- [${(n=t.attrs)!=null&&n.checked?"x":" "}] `;return cx(t,e,i)},addKeyboardShortcuts(){const t={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...t,Tab:()=>this.editor.commands.sinkListItem(this.name)}:t},addNodeView(){return({node:t,HTMLAttributes:e,getPos:n,editor:r})=>{const i=document.createElement("li"),s=document.createElement("label"),o=document.createElement("span"),l=document.createElement("input"),a=document.createElement("div"),c=d=>{var f,p;l.ariaLabel=((p=(f=this.options.a11y)==null?void 0:f.checkboxLabel)==null?void 0:p.call(f,d,l.checked))||`Task item checkbox for ${d.textContent||"empty task item"}`};c(t),s.contentEditable="false",l.type="checkbox",l.addEventListener("mousedown",d=>d.preventDefault()),l.addEventListener("change",d=>{if(!r.isEditable&&!this.options.onReadOnlyChecked){l.checked=!l.checked;return}const{checked:f}=d.target;r.isEditable&&typeof n=="function"&&r.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:p})=>{const m=n();if(typeof m!="number")return!1;const g=p.doc.nodeAt(m);return p.setNodeMarkup(m,void 0,{...g==null?void 0:g.attrs,checked:f}),!0}).run(),!r.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(t,f)||(l.checked=!l.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([d,f])=>{i.setAttribute(d,f)}),i.dataset.checked=t.attrs.checked,l.checked=t.attrs.checked,s.append(l,o),i.append(s,a),Object.entries(e).forEach(([d,f])=>{i.setAttribute(d,f)});let u=new Set(Object.keys(e));return{dom:i,contentDOM:a,update:d=>{if(d.type!==this.type)return!1;i.dataset.checked=d.attrs.checked,l.checked=d.attrs.checked,c(d);const f=r.extensionManager.attributes,p=bd(d,f),m=new Set(Object.keys(p)),g=this.options.HTMLAttributes;return u.forEach(y=>{m.has(y)||(y in g?i.setAttribute(y,g[y]):i.removeAttribute(y))}),Object.entries(p).forEach(([y,v])=>{v==null?y in g?i.setAttribute(y,g[y]):i.removeAttribute(y):i.setAttribute(y,v)}),u=m,!0}}}},addInputRules(){return[vc({find:Q8,type:this.type,getAttributes:t=>({checked:t[t.length-1]==="x"})})]}}),eH=yi.create({name:"taskList",addOptions(){return{itemTypeName:"taskItem",HTMLAttributes:{}}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:t}){return["ul",Yn(this.options.HTMLAttributes,t,{"data-type":this.name}),0]},parseMarkdown:(t,e)=>e.createNode("taskList",{},e.parseChildren(t.items||[])),renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,` -`):"",markdownTokenizer:{name:"taskList",level:"block",start(t){var e;const n=(e=t.match(/^\s*[-+*]\s+\[([ xX])\]\s+/))==null?void 0:e.index;return n!==void 0?n:-1},tokenize(t,e,n){const r=s=>{const o=P0(s,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:l=>({indentLevel:l[1].length,mainContent:l[4],checked:l[3].toLowerCase()==="x"}),createToken:(l,a)=>({type:"taskItem",raw:"",mainContent:l.mainContent,indentLevel:l.indentLevel,checked:l.checked,text:l.mainContent,tokens:n.inlineTokens(l.mainContent),nestedTokens:a}),customNestedParser:r},n);return o?[{type:"taskList",raw:o.raw,items:o.items}]:n.blockTokens(s)},i=P0(t,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:s=>({indentLevel:s[1].length,mainContent:s[4],checked:s[3].toLowerCase()==="x"}),createToken:(s,o)=>({type:"taskItem",raw:"",mainContent:s.mainContent,indentLevel:s.indentLevel,checked:s.checked,text:s.mainContent,tokens:n.inlineTokens(s.mainContent),nestedTokens:o}),customNestedParser:r},n);if(i)return{type:"taskList",raw:i.raw,items:i.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:t})=>t.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});mn.create({name:"listKit",addExtensions(){const t=[];return this.options.bulletList!==!1&&t.push(bR.configure(this.options.bulletList)),this.options.listItem!==!1&&t.push(xR.configure(this.options.listItem)),this.options.listKeymap!==!1&&t.push(TR.configure(this.options.listKeymap)),this.options.orderedList!==!1&&t.push(MR.configure(this.options.orderedList)),this.options.taskItem!==!1&&t.push(Z8.configure(this.options.taskItem)),this.options.taskList!==!1&&t.push(eH.configure(this.options.taskList)),t}});var cE=" ",tH=" ",nH=yi.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:t}){return["p",Yn(this.options.HTMLAttributes,t),0]},parseMarkdown:(t,e)=>{const n=t.tokens||[];if(n.length===1&&n[0].type==="image")return e.parseChildren([n[0]]);const r=e.parseInline(n);return r.length===1&&r[0].type==="text"&&(r[0].text===cE||r[0].text===tH)?e.createNode("paragraph",void 0,[]):e.createNode("paragraph",void 0,r)},renderMarkdown:(t,e)=>{if(!t)return"";const n=Array.isArray(t.content)?t.content:[];return n.length===0?cE:e.renderChildren(n)},addCommands(){return{setParagraph:()=>({commands:t})=>t.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),rH=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,iH=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,sH=da.create({name:"strike",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:t=>t.includes("line-through")?{}:!1}]},renderHTML({HTMLAttributes:t}){return["s",Yn(this.options.HTMLAttributes,t),0]},markdownTokenName:"del",parseMarkdown:(t,e)=>e.applyMark("strike",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`~~${e.renderChildren(t)}~~`,addCommands(){return{setStrike:()=>({commands:t})=>t.setMark(this.name),toggleStrike:()=>({commands:t})=>t.toggleMark(this.name),unsetStrike:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[yc({find:rH,type:this.type})]},addPasteRules(){return[ea({find:iH,type:this.type})]}}),oH=yi.create({name:"text",group:"inline",parseMarkdown:t=>({type:"text",text:t.text||""}),renderMarkdown:t=>t.text||""}),IR=da.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:t=>t.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:t}){return["u",Yn(this.options.HTMLAttributes,t),0]},parseMarkdown(t,e){return e.applyMark(this.name||"underline",e.parseInline(t.tokens||[]))},renderMarkdown(t,e){return`++${e.renderChildren(t)}++`},markdownTokenizer:{name:"underline",level:"inline",start(t){return t.indexOf("++")},tokenize(t,e,n){const i=/^(\+\+)([\s\S]+?)(\+\+)/.exec(t);if(!i)return;const s=i[2].trim();return{type:"underline",raw:i[0],text:s,tokens:n.inlineTokens(s)}}},addCommands(){return{setUnderline:()=>({commands:t})=>t.setMark(this.name),toggleUnderline:()=>({commands:t})=>t.toggleMark(this.name),unsetUnderline:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),yg=IR;function lH(t={}){return new hn({view(e){return new aH(e,t)}})}class aH{constructor(e,n){var r;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=(r=n.width)!==null&&r!==void 0?r:1,this.color=n.color===!1?void 0:n.color||"black",this.class=n.class,this.handlers=["dragover","dragend","drop","dragleave"].map(i=>{let s=o=>{this[i](o)};return e.dom.addEventListener(i,s),{name:i,handler:s}})}destroy(){this.handlers.forEach(({name:e,handler:n})=>this.editorView.dom.removeEventListener(e,n))}update(e,n){this.cursorPos!=null&&n.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),n=!e.parent.inlineContent,r,i=this.editorView.dom,s=i.getBoundingClientRect(),o=s.width/i.offsetWidth,l=s.height/i.offsetHeight;if(n){let d=e.nodeBefore,f=e.nodeAfter;if(d||f){let p=this.editorView.nodeDOM(this.cursorPos-(d?d.nodeSize:0));if(p){let m=p.getBoundingClientRect(),g=d?m.bottom:m.top;d&&f&&(g=(g+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let y=this.width/2*l;r={left:m.left,right:m.right,top:g-y,bottom:g+y}}}}if(!r){let d=this.editorView.coordsAtPos(this.cursorPos),f=this.width/2*o;r={left:d.left-f,right:d.left+f,top:d.top,bottom:d.bottom}}let a=this.editorView.dom.offsetParent;this.element||(this.element=a.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",n),this.element.classList.toggle("prosemirror-dropcursor-inline",!n);let c,u;if(!a||a==document.body&&getComputedStyle(a).position=="static")c=-pageXOffset,u=-pageYOffset;else{let d=a.getBoundingClientRect(),f=d.width/a.offsetWidth,p=d.height/a.offsetHeight;c=d.left-a.scrollLeft*f,u=d.top-a.scrollTop*p}this.element.style.left=(r.left-c)/o+"px",this.element.style.top=(r.top-u)/l+"px",this.element.style.width=(r.right-r.left)/o+"px",this.element.style.height=(r.bottom-r.top)/l+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let n=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),r=n&&n.inside>=0&&this.editorView.state.doc.nodeAt(n.inside),i=r&&r.type.spec.disableDropCursor,s=typeof i=="function"?i(this.editorView,n,e):i;if(n&&!s){let o=n.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let l=UM(this.editorView.state.doc,o,this.editorView.dragging.slice);l!=null&&(o=l)}this.setCursor(o),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}class Pn extends Nt{constructor(e){super(e,e)}map(e,n){let r=e.resolve(n.map(this.head));return Pn.valid(r)?new Pn(r):Nt.near(r)}content(){return _e.empty}eq(e){return e instanceof Pn&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new Pn(e.resolve(n.pos))}getBookmark(){return new Mx(this.anchor)}static valid(e){let n=e.parent;if(n.isTextblock||!cH(e)||!uH(e))return!1;let r=n.type.spec.allowGapCursor;if(r!=null)return r;let i=n.contentMatchAt(e.index()).defaultType;return i&&i.isTextblock}static findGapCursorFrom(e,n,r=!1){e:for(;;){if(!r&&Pn.valid(e))return e;let i=e.pos,s=null;for(let o=e.depth;;o--){let l=e.node(o);if(n>0?e.indexAfter(o)0){s=l.child(n>0?e.indexAfter(o):e.index(o)-1);break}else if(o==0)return null;i+=n;let a=e.doc.resolve(i);if(Pn.valid(a))return a}for(;;){let o=n>0?s.firstChild:s.lastChild;if(!o){if(s.isAtom&&!s.isText&&!pt.isSelectable(s)){e=e.doc.resolve(i+s.nodeSize*n),r=!1;continue e}break}s=o,i+=n;let l=e.doc.resolve(i);if(Pn.valid(l))return l}return null}}}Pn.prototype.visible=!1;Pn.findFrom=Pn.findGapCursorFrom;Nt.jsonID("gapcursor",Pn);class Mx{constructor(e){this.pos=e}map(e){return new Mx(e.map(this.pos))}resolve(e){let n=e.resolve(this.pos);return Pn.valid(n)?new Pn(n):Nt.near(n)}}function RR(t){return t.isAtom||t.spec.isolating||t.spec.createGapCursor}function cH(t){for(let e=t.depth;e>=0;e--){let n=t.index(e),r=t.node(e);if(n==0){if(r.type.spec.isolating)return!0;continue}for(let i=r.child(n-1);;i=i.lastChild){if(i.childCount==0&&!i.inlineContent||RR(i.type))return!0;if(i.inlineContent)return!1}}return!0}function uH(t){for(let e=t.depth;e>=0;e--){let n=t.indexAfter(e),r=t.node(e);if(n==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let i=r.child(n);;i=i.firstChild){if(i.childCount==0&&!i.inlineContent||RR(i.type))return!0;if(i.inlineContent)return!1}}return!0}function dH(){return new hn({props:{decorations:mH,createSelectionBetween(t,e,n){return e.pos==n.pos&&Pn.valid(n)?new Pn(n):null},handleClick:hH,handleKeyDown:fH,handleDOMEvents:{beforeinput:pH}}})}const fH=Gb({ArrowLeft:th("horiz",-1),ArrowRight:th("horiz",1),ArrowUp:th("vert",-1),ArrowDown:th("vert",1)});function th(t,e){const n=t=="vert"?e>0?"down":"up":e>0?"right":"left";return function(r,i,s){let o=r.selection,l=e>0?o.$to:o.$from,a=o.empty;if(o instanceof St){if(!s.endOfTextblock(n)||l.depth==0)return!1;a=!1,l=r.doc.resolve(e>0?l.after():l.before())}let c=Pn.findGapCursorFrom(l,e,a);return c?(i&&i(r.tr.setSelection(new Pn(c))),!0):!1}}function hH(t,e,n){if(!t||!t.editable)return!1;let r=t.state.doc.resolve(e);if(!Pn.valid(r))return!1;let i=t.posAtCoords({left:n.clientX,top:n.clientY});return i&&i.inside>-1&&pt.isSelectable(t.state.doc.nodeAt(i.inside))?!1:(t.dispatch(t.state.tr.setSelection(new Pn(r))),!0)}function pH(t,e){if(e.inputType!="insertCompositionText"||!(t.state.selection instanceof Pn))return!1;let{$from:n}=t.state.selection,r=n.parent.contentMatchAt(n.index()).findWrapping(t.state.schema.nodes.text);if(!r)return!1;let i=ve.empty;for(let o=r.length-1;o>=0;o--)i=ve.from(r[o].createAndFill(null,i));let s=t.state.tr.replace(n.pos,n.pos,new _e(i,0,0));return s.setSelection(St.near(s.doc.resolve(n.pos+1))),t.dispatch(s),!1}function mH(t){if(!(t.selection instanceof Pn))return null;let e=document.createElement("div");return e.className="ProseMirror-gapcursor",Mn.create(t.doc,[Fr.widget(t.selection.head,e,{key:"gapcursor"})])}var om=200,ur=function(){};ur.prototype.append=function(e){return e.length?(e=ur.from(e),!this.length&&e||e.length=n?ur.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,n))};ur.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)};ur.prototype.forEach=function(e,n,r){n===void 0&&(n=0),r===void 0&&(r=this.length),n<=r?this.forEachInner(e,n,r,0):this.forEachInvertedInner(e,n,r,0)};ur.prototype.map=function(e,n,r){n===void 0&&(n=0),r===void 0&&(r=this.length);var i=[];return this.forEach(function(s,o){return i.push(e(s,o))},n,r),i};ur.from=function(e){return e instanceof ur?e:e&&e.length?new DR(e):ur.empty};var DR=function(t){function e(r){t.call(this),this.values=r}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var n={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(i,s){return i==0&&s==this.length?this:new e(this.values.slice(i,s))},e.prototype.getInner=function(i){return this.values[i]},e.prototype.forEachInner=function(i,s,o,l){for(var a=s;a=o;a--)if(i(this.values[a],l+a)===!1)return!1},e.prototype.leafAppend=function(i){if(this.length+i.length<=om)return new e(this.values.concat(i.flatten()))},e.prototype.leafPrepend=function(i){if(this.length+i.length<=om)return new e(i.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(e.prototype,n),e}(ur);ur.empty=new DR([]);var gH=function(t){function e(n,r){t.call(this),this.left=n,this.right=r,this.length=n.length+r.length,this.depth=Math.max(n.depth,r.depth)+1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(r){return rl&&this.right.forEachInner(r,Math.max(i-l,0),Math.min(this.length,s)-l,o+l)===!1)return!1},e.prototype.forEachInvertedInner=function(r,i,s,o){var l=this.left.length;if(i>l&&this.right.forEachInvertedInner(r,i-l,Math.max(s,l)-l,o+l)===!1||s=s?this.right.slice(r-s,i-s):this.left.slice(r,s).append(this.right.slice(0,i-s))},e.prototype.leafAppend=function(r){var i=this.right.leafAppend(r);if(i)return new e(this.left,i)},e.prototype.leafPrepend=function(r){var i=this.left.leafPrepend(r);if(i)return new e(i,this.right)},e.prototype.appendInner=function(r){return this.left.depth>=Math.max(this.right.depth,r.depth)+1?new e(this.left,new e(this.right,r)):new e(this,r)},e}(ur);const yH=500;class qi{constructor(e,n){this.items=e,this.eventCount=n}popEvent(e,n){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,s;n&&(i=this.remapping(r,this.items.length),s=i.maps.length);let o=e.tr,l,a,c=[],u=[];return this.items.forEach((d,f)=>{if(!d.step){i||(i=this.remapping(r,f+1),s=i.maps.length),s--,u.push(d);return}if(i){u.push(new Eo(d.map));let p=d.step.map(i.slice(s)),m;p&&o.maybeStep(p).doc&&(m=o.mapping.maps[o.mapping.maps.length-1],c.push(new Eo(m,void 0,void 0,c.length+u.length))),s--,m&&i.appendMap(m,s)}else o.maybeStep(d.step);if(d.selection)return l=i?d.selection.map(i.slice(s)):d.selection,a=new qi(this.items.slice(0,r).append(u.reverse().concat(c)),this.eventCount-1),!1},this.items.length,0),{remaining:a,transform:o,selection:l}}addTransform(e,n,r,i){let s=[],o=this.eventCount,l=this.items,a=!i&&l.length?l.get(l.length-1):null;for(let u=0;uwH&&(l=vH(l,c),o-=c),new qi(l.append(s),o)}remapping(e,n){let r=new pd;return this.items.forEach((i,s)=>{let o=i.mirrorOffset!=null&&s-i.mirrorOffset>=e?r.maps.length-i.mirrorOffset:void 0;r.appendMap(i.map,o)},e,n),r}addMaps(e){return this.eventCount==0?this:new qi(this.items.append(e.map(n=>new Eo(n))),this.eventCount)}rebased(e,n){if(!this.eventCount)return this;let r=[],i=Math.max(0,this.items.length-n),s=e.mapping,o=e.steps.length,l=this.eventCount;this.items.forEach(f=>{f.selection&&l--},i);let a=n;this.items.forEach(f=>{let p=s.getMirror(--a);if(p==null)return;o=Math.min(o,p);let m=s.maps[p];if(f.step){let g=e.steps[p].invert(e.docs[p]),y=f.selection&&f.selection.map(s.slice(a+1,p));y&&l++,r.push(new Eo(m,g,y))}else r.push(new Eo(m))},i);let c=[];for(let f=n;fyH&&(d=d.compress(this.items.length-r.length)),d}emptyItemCount(){let e=0;return this.items.forEach(n=>{n.step||e++}),e}compress(e=this.items.length){let n=this.remapping(0,e),r=n.maps.length,i=[],s=0;return this.items.forEach((o,l)=>{if(l>=e)i.push(o),o.selection&&s++;else if(o.step){let a=o.step.map(n.slice(r)),c=a&&a.getMap();if(r--,c&&n.appendMap(c,r),a){let u=o.selection&&o.selection.map(n.slice(r));u&&s++;let d=new Eo(c.invert(),a,u),f,p=i.length-1;(f=i.length&&i[p].merge(d))?i[p]=f:i.push(d)}}else o.map&&r--},this.items.length,0),new qi(ur.from(i.reverse()),s)}}qi.empty=new qi(ur.empty,0);function vH(t,e){let n;return t.forEach((r,i)=>{if(r.selection&&e--==0)return n=i,!1}),t.slice(n)}let Eo=class OR{constructor(e,n,r,i){this.map=e,this.step=n,this.selection=r,this.mirrorOffset=i}merge(e){if(this.step&&e.step&&!e.selection){let n=e.step.merge(this.step);if(n)return new OR(n.getMap().invert(),n,this.selection)}}};class Do{constructor(e,n,r,i,s){this.done=e,this.undone=n,this.prevRanges=r,this.prevTime=i,this.prevComposition=s}}const wH=20;function bH(t,e,n,r){let i=n.getMeta(Ul),s;if(i)return i.historyState;n.getMeta(SH)&&(t=new Do(t.done,t.undone,null,0,-1));let o=n.getMeta("appendedTransaction");if(n.steps.length==0)return t;if(o&&o.getMeta(Ul))return o.getMeta(Ul).redo?new Do(t.done.addTransform(n,void 0,r,Th(e)),t.undone,uE(n.mapping.maps),t.prevTime,t.prevComposition):new Do(t.done,t.undone.addTransform(n,void 0,r,Th(e)),null,t.prevTime,t.prevComposition);if(n.getMeta("addToHistory")!==!1&&!(o&&o.getMeta("addToHistory")===!1)){let l=n.getMeta("composition"),a=t.prevTime==0||!o&&t.prevComposition!=l&&(t.prevTime<(n.time||0)-r.newGroupDelay||!xH(n,t.prevRanges)),c=o?qy(t.prevRanges,n.mapping):uE(n.mapping.maps);return new Do(t.done.addTransform(n,a?e.selection.getBookmark():void 0,r,Th(e)),qi.empty,c,n.time,l??t.prevComposition)}else return(s=n.getMeta("rebased"))?new Do(t.done.rebased(n,s),t.undone.rebased(n,s),qy(t.prevRanges,n.mapping),t.prevTime,t.prevComposition):new Do(t.done.addMaps(n.mapping.maps),t.undone.addMaps(n.mapping.maps),qy(t.prevRanges,n.mapping),t.prevTime,t.prevComposition)}function xH(t,e){if(!e)return!1;if(!t.docChanged)return!0;let n=!1;return t.mapping.maps[0].forEach((r,i)=>{for(let s=0;s=e[s]&&(n=!0)}),n}function uE(t){let e=[];for(let n=t.length-1;n>=0&&e.length==0;n--)t[n].forEach((r,i,s,o)=>e.push(s,o));return e}function qy(t,e){if(!t)return null;let n=[];for(let r=0;r{let i=Ul.getState(n);if(!i||(t?i.undone:i.done).eventCount==0)return!1;if(r){let s=kH(i,n,t);s&&r(e?s.scrollIntoView():s)}return!0}}const PR=jR(!1,!0),LR=jR(!0,!0);mn.create({name:"characterCount",addOptions(){return{limit:null,mode:"textSize",textCounter:t=>t.length,wordCounter:t=>t.split(" ").filter(e=>e!=="").length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=t=>{const e=(t==null?void 0:t.node)||this.editor.state.doc;if(((t==null?void 0:t.mode)||this.options.mode)==="textSize"){const r=e.textBetween(0,e.content.size,void 0," ");return this.options.textCounter(r)}return e.nodeSize},this.storage.words=t=>{const e=(t==null?void 0:t.node)||this.editor.state.doc,n=e.textBetween(0,e.content.size," "," ");return this.options.wordCounter(n)}},addProseMirrorPlugins(){let t=!1;return[new hn({key:new pn("characterCount"),appendTransaction:(e,n,r)=>{if(t)return;const i=this.options.limit;if(i==null||i===0){t=!0;return}const s=this.storage.characters({node:r.doc});if(s>i){const o=s-i,l=0,a=o;console.warn(`[CharacterCount] Initial content exceeded limit of ${i} characters. Content was automatically trimmed.`);const c=r.tr.deleteRange(l,a);return t=!0,c}t=!0},filterTransaction:(e,n)=>{const r=this.options.limit;if(!e.docChanged||r===0||r===null||r===void 0)return!0;const i=this.storage.characters({node:n.doc}),s=this.storage.characters({node:e.doc});if(s<=r||i>r&&s>r&&s<=i)return!0;if(i>r&&s>r&&s>i||!e.getMeta("paste"))return!1;const l=e.selection.$head.pos,a=s-r,c=l-a,u=l;return e.deleteRange(c,u),!(this.storage.characters({node:e.doc})>r)}})]}});var EH=mn.create({name:"dropCursor",addOptions(){return{color:"currentColor",width:1,class:void 0}},addProseMirrorPlugins(){return[lH(this.options)]}});mn.create({name:"focus",addOptions(){return{className:"has-focus",mode:"all"}},addProseMirrorPlugins(){return[new hn({key:new pn("focus"),props:{decorations:({doc:t,selection:e})=>{const{isEditable:n,isFocused:r}=this.editor,{anchor:i}=e,s=[];if(!n||!r)return Mn.create(t,[]);let o=0;this.options.mode==="deepest"&&t.descendants((a,c)=>{if(a.isText)return;if(!(i>=c&&i<=c+a.nodeSize-1))return!1;o+=1});let l=0;return t.descendants((a,c)=>{if(a.isText||!(i>=c&&i<=c+a.nodeSize-1))return!1;if(l+=1,this.options.mode==="deepest"&&o-l>0||this.options.mode==="shallowest"&&l>1)return this.options.mode==="deepest";s.push(Fr.node(c,c+a.nodeSize,{class:this.options.className}))}),Mn.create(t,s)}}})]}});var NH=mn.create({name:"gapCursor",addProseMirrorPlugins(){return[dH()]},extendNodeSchema(t){var e;const n={name:t.name,options:t.options,storage:t.storage};return{allowGapCursor:(e=an(ht(t,"allowGapCursor",n)))!=null?e:null}}}),fE="placeholder";function TH(t){return t.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9-]/g,"").replace(/^[0-9-]+/,"").replace(/^-+/,"").toLowerCase()}mn.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",dataAttribute:fE,placeholder:"Write something …",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){const t=this.options.dataAttribute?`data-${TH(this.options.dataAttribute)}`:`data-${fE}`;return[new hn({key:new pn("placeholder"),props:{decorations:({doc:e,selection:n})=>{const r=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:i}=n,s=[];if(!r)return null;const o=this.editor.isEmpty;return e.descendants((l,a)=>{const c=i>=a&&i<=a+l.nodeSize,u=!l.isLeaf&&sg(l);if((c||!this.options.showOnlyCurrent)&&u){const d=[this.options.emptyNodeClass];o&&d.push(this.options.emptyEditorClass);const f=Fr.node(a,a+l.nodeSize,{class:d.join(" "),[t]:typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:l,pos:a,hasAnchor:c}):this.options.placeholder});s.push(f)}return this.options.includeChildren}),Mn.create(e,s)}}})]}});mn.create({name:"selection",addOptions(){return{className:"selection"}},addProseMirrorPlugins(){const{editor:t,options:e}=this;return[new hn({key:new pn("selection"),props:{decorations(n){return n.selection.empty||t.isFocused||!t.isEditable||i2(n.selection)||t.view.dragging?null:Mn.create(n.doc,[Fr.inline(n.selection.from,n.selection.to,{class:e.className})])}}})]}});function hE({types:t,node:e}){return e&&Array.isArray(t)&&t.includes(e.type)||(e==null?void 0:e.type)===t}var AH=mn.create({name:"trailingNode",addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){var t;const e=new pn(this.name),n=this.options.node||((t=this.editor.schema.topNodeType.contentMatch.defaultType)==null?void 0:t.name)||"paragraph",r=Object.entries(this.editor.schema.nodes).map(([,i])=>i).filter(i=>(this.options.notAfter||[]).concat(n).includes(i.name));return[new hn({key:e,appendTransaction:(i,s,o)=>{const{doc:l,tr:a,schema:c}=o,u=e.getState(o),d=l.content.size,f=c.nodes[n];if(u)return a.insert(d,f.create())},state:{init:(i,s)=>{const o=s.tr.doc.lastChild;return!hE({node:o,types:r})},apply:(i,s)=>{if(!i.docChanged||i.getMeta("__uniqueIDTransaction"))return s;const o=i.doc.lastChild;return!hE({node:o,types:r})}}})]}}),MH=mn.create({name:"undoRedo",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:t,dispatch:e})=>PR(t,e),redo:()=>({state:t,dispatch:e})=>LR(t,e)}},addProseMirrorPlugins(){return[CH(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),IH=mn.create({name:"starterKit",addExtensions(){var t,e,n,r;const i=[];return this.options.bold!==!1&&i.push(r8.configure(this.options.bold)),this.options.blockquote!==!1&&i.push(QU.configure(this.options.blockquote)),this.options.bulletList!==!1&&i.push(bR.configure(this.options.bulletList)),this.options.code!==!1&&i.push(o8.configure(this.options.code)),this.options.codeBlock!==!1&&i.push(c8.configure(this.options.codeBlock)),this.options.document!==!1&&i.push(u8.configure(this.options.document)),this.options.dropcursor!==!1&&i.push(EH.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&i.push(NH.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&i.push(d8.configure(this.options.hardBreak)),this.options.heading!==!1&&i.push(f8.configure(this.options.heading)),this.options.undoRedo!==!1&&i.push(MH.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&i.push(h8.configure(this.options.horizontalRule)),this.options.italic!==!1&&i.push(v8.configure(this.options.italic)),this.options.listItem!==!1&&i.push(xR.configure(this.options.listItem)),this.options.listKeymap!==!1&&i.push(TR.configure((t=this.options)==null?void 0:t.listKeymap)),this.options.link!==!1&&i.push(vR.configure((e=this.options)==null?void 0:e.link)),this.options.orderedList!==!1&&i.push(MR.configure(this.options.orderedList)),this.options.paragraph!==!1&&i.push(nH.configure(this.options.paragraph)),this.options.strike!==!1&&i.push(sH.configure(this.options.strike)),this.options.text!==!1&&i.push(oH.configure(this.options.text)),this.options.underline!==!1&&i.push(IR.configure((n=this.options)==null?void 0:n.underline)),this.options.trailingNode!==!1&&i.push(AH.configure((r=this.options)==null?void 0:r.trailingNode)),i}}),ta=IH;function Ix({value:t,onChange:e,onEnter:n,onArrowUp:r,onArrowDown:i,onFocus:s,placeholder:o,autoFocus:l,onBackspaceEmpty:a}){(t||"").replace(/<[^>]+>/g,"");const c=pg({extensions:[ta.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,codeBlock:!1,blockquote:!1,horizontalRule:!1}),yg],content:t||"",editorProps:{attributes:{class:"rt-item"},handleKeyDown(u,d){if(d.ctrlKey||d.metaKey)switch((d.key||"").toLowerCase()){case"b":{if(d.preventDefault(),!c)return!0;const p=c.state.selection;if(p&&p.empty){const m=p.$from;let g=m.depth;for(;g>0&&!m.node(g).isBlock;)g--;const y=m.start(g),v=m.end(g);c.chain().focus().setTextSelection({from:y,to:v}).toggleBold().run();try{c.chain().setTextSelection(p.from).run()}catch{}}else c.chain().focus().toggleBold().run();return!0}case"i":{if(d.preventDefault(),!c)return!0;const p=c.state.selection;if(p&&p.empty){const m=p.$from;let g=m.depth;for(;g>0&&!m.node(g).isBlock;)g--;const y=m.start(g),v=m.end(g);c.chain().focus().setTextSelection({from:y,to:v}).toggleItalic().run();try{c.chain().setTextSelection(p.from).run()}catch{}}else c.chain().focus().toggleItalic().run();return!0}case"u":{if(d.preventDefault(),!c)return!0;const p=c.state.selection;if(p&&p.empty){const m=p.$from;let g=m.depth;for(;g>0&&!m.node(g).isBlock;)g--;const y=m.start(g),v=m.end(g);c.chain().focus().setTextSelection({from:y,to:v}).toggleUnderline().run();try{c.chain().setTextSelection(p.from).run()}catch{}}else c.chain().focus().toggleUnderline().run();return!0}}if(d.key==="Enter"&&!d.shiftKey)return d.preventDefault(),n&&n(),!0;if(d.key==="ArrowUp")return d.preventDefault(),r&&r(),!0;if(d.key==="ArrowDown")return d.preventDefault(),i&&i(),!0;if(d.key==="Backspace")try{if(((c==null?void 0:c.getText())||"").trim().length===0)return d.preventDefault(),a&&a(),!0}catch{}return!1}},onUpdate({editor:u}){e(u.getHTML())},onFocus({editor:u}){s&&s(u)},onSelectionUpdate({editor:u}){s&&s(u)}});return B.useEffect(()=>{if(c){if(s&&s(c),l)try{c.chain().focus().run()}catch{}return()=>{}}},[c]),B.useEffect(()=>{if(c)try{if(c.isFocused)return;const u=c.getHTML(),d=t||"";u!==d&&c.commands.setContent(d,{emitUpdate:!1})}catch{}},[t,c]),h.jsx("div",{children:h.jsx(Qd,{editor:c})})}const RH=["","#ffffff","#fff9c4","#fffde7","#fff8e1","#fff3e0","#fff1f0","#fff0f6","#f5f5f5","#f0f0f0","#f3e5f5","#fce4ec","#e3f2fd","#e8f5e9","#f9fbe7","#fff3b0","#ffd7a6","#ffccbc","#f8bbd0","#e1bee7","#b3e5fc","#ffe082","#ffb74d","#ff8a65","#f06292","#ba68c8","#4fc3f7","#c8e6c9","#a5d6a7","#2b2b2b","#1f2933","#121212","#263238","#37474f","#212121"];function ef({anchorRef:t,onPick:e,onClose:n}){const r=b.useRef(null),[i,s]=b.useState({visibility:"hidden",position:"fixed",top:0,left:0});b.useLayoutEffect(()=>{const l=t&&t.current,a=r.current;if(!l||!a){const u=Math.max(8,(window.innerWidth-a.offsetWidth)/2),d=Math.max(8,(window.innerHeight-a.offsetHeight)/2);s(f=>({...f,left:u,top:d,visibility:"visible"}));return}const c=l.getBoundingClientRect();s(u=>({...u,visibility:"hidden"})),requestAnimationFrame(()=>{const u=a.offsetWidth,d=a.offsetHeight,f=8;let p=c.left;p+u>window.innerWidth-8&&(p=Math.max(8,window.innerWidth-u-8)),p=Math.max(8,p);let m=c.bottom+f;m+d>window.innerHeight-8&&(m=c.top-d-f,m<8&&(m=Math.max(8,window.innerHeight-d-8))),s({position:"fixed",top:m,left:p,visibility:"visible",zIndex:200})})},[t]),b.useLayoutEffect(()=>{function l(a){r.current&&(r.current.contains(a.target)||n())}return document.addEventListener("mousedown",l),()=>document.removeEventListener("mousedown",l)},[n]);const o=h.jsx("div",{ref:r,className:"palette-popover",style:i,children:h.jsx("div",{className:"palette-grid",children:RH.map((l,a)=>h.jsx("button",{className:"palette-swatch",onClick:()=>{e(l)},style:{background:l||"var(--card)"},title:l||"Default","aria-label":l||"Default color"},a))})});return zn.createPortal(o,document.body)}function tf({onClose:t,onSet:e}){const n=new Date,r=c=>c.toString().padStart(2,"0"),[i,s]=b.useState(`${n.getFullYear()}-${r(n.getMonth()+1)}-${r(n.getDate())}`),[o,l]=b.useState(`${r(n.getHours())}:${r(n.getMinutes())}`);function a(){const c=new Date(`${i}T${o}:00`).toISOString();e(c)}return h.jsx("div",{className:"reminder-backdrop",onClick:t,children:h.jsxs("div",{className:"reminder-popover",onClick:c=>c.stopPropagation(),children:[h.jsxs("div",{className:"dialog-header",children:[h.jsx("strong",{children:"Set reminder"}),h.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),h.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:8},children:[h.jsx("input",{type:"date",value:i,onChange:c=>s(c.target.value)}),h.jsx("input",{type:"time",value:o,onChange:c=>l(c.target.value)})]}),h.jsxs("div",{style:{display:"flex",gap:8,marginTop:12},children:[h.jsx("button",{className:"btn",onClick:a,children:"Set"}),h.jsx("button",{className:"btn",onClick:t,children:"Cancel"})]})]})})}function xc({onClose:t,onSelect:e,current:n,onRemove:r,ownerId:i}){const{token:s,user:o}=Sr(),[l,a]=b.useState(""),[c,u]=b.useState([]);b.useEffect(()=>{(async()=>{try{const m=await fetch("/api/users",{headers:{Authorization:s?`Bearer ${s}`:""}});if(!m.ok)throw new Error(await m.text());const g=await m.json();u(Array.isArray(g.users)?g.users:[])}catch(m){console.warn("Failed to load users",m)}})()},[s]);const d=b.useMemo(()=>new Set(n.map(m=>m.userId)),[n]),f=b.useMemo(()=>c.filter(m=>{const g=m.email.includes(l)||(m.name||m.email.split("@")[0]).toLowerCase().includes(l.toLowerCase()),y=o?m.id!==o.id:!0,v=!d.has(m.id);return g&&y&&v}),[l,c,o,d]),p=h.jsx("div",{className:"collab-modal-backdrop",onClick:t,style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.35)",zIndex:1e3},children:h.jsxs("div",{className:"collab-modal",onClick:m=>m.stopPropagation(),style:{width:"min(720px, 95vw)",maxHeight:"80vh",overflowY:"auto",margin:"10vh auto 0",borderRadius:8,boxShadow:"0 10px 28px rgba(0,0,0,0.5)",padding:16},children:[h.jsxs("div",{className:"collab-header",style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[h.jsx("strong",{children:"Add collaborators"}),h.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),h.jsx("input",{className:"collab-search",placeholder:"Search users...",value:l,onChange:m=>a(m.target.value),style:{width:"100%",marginBottom:12}}),h.jsxs("div",{className:"collab-current",style:{marginBottom:16},children:[h.jsx("div",{className:"collab-section-title",style:{fontWeight:600,opacity:.8,marginBottom:6},children:"Current collaborators"}),n.length===0&&h.jsx("div",{className:"collab-empty",children:"None"}),n.map(m=>h.jsxs("div",{className:"collab-item",style:{display:"flex",alignItems:"center",gap:8,padding:"6px 0"},children:[m.userImageUrl?h.jsx("img",{src:m.userImageUrl,alt:"",style:{width:28,height:28,borderRadius:"50%",objectFit:"cover"}}):h.jsx("div",{className:"collab-avatar",style:{width:28,height:28,borderRadius:"50%",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:(m.name||m.email.split("@")[0])[0].toUpperCase()}),h.jsx("div",{className:"collab-info",style:{flex:1},children:h.jsx("div",{className:"collab-name",title:m.email,children:m.name||m.email.split("@")[0]})}),typeof m.collabId=="number"&&((o==null?void 0:o.id)===i||(o==null?void 0:o.id)===m.userId)&&h.jsx("button",{className:"tiny danger",onClick:()=>m.collabId&&r(m.collabId),"aria-label":"Remove collaborator",title:"Remove",children:"🗑"})]},m.userId))]}),h.jsxs("div",{className:"collab-list",children:[h.jsx("div",{className:"collab-section-title",style:{fontWeight:600,opacity:.8,marginBottom:6},children:"Other users"}),f.map(m=>h.jsxs("div",{className:"collab-item",onClick:()=>e(m),style:{display:"flex",alignItems:"center",gap:8,padding:"6px 0",cursor:"pointer"},children:[m.userImageUrl?h.jsx("img",{src:m.userImageUrl,alt:"",style:{width:28,height:28,borderRadius:"50%",objectFit:"cover"}}):h.jsx("div",{className:"collab-avatar",style:{width:28,height:28,borderRadius:"50%",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:(m.name||m.email.split("@")[0])[0].toUpperCase()}),h.jsx("div",{className:"collab-info",style:{flex:1},children:h.jsx("div",{className:"collab-name",title:m.email,children:m.name||m.email.split("@")[0]})})]},m.id)),f.length===0&&h.jsx("div",{className:"collab-empty",children:"No users found"})]})]})});try{if(typeof document<"u")return zn.createPortal(p,document.body)}catch{}return p}function nf({onClose:t,onAdd:e}){const[n,r]=b.useState(""),i=b.useRef(null);b.useEffect(()=>(window.dispatchEvent(new Event("freemannotes:editor-modal-open")),()=>{window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}),[]);function s(){var c;(c=i.current)==null||c.click()}function o(c){const u=c.target.files&&c.target.files[0];if(!u)return;const d=new FileReader;d.onload=()=>{e(String(d.result))},d.readAsDataURL(u),t()}function l(c){c==null||c.preventDefault(),n&&(e(n),t())}const a=h.jsx("div",{className:"image-dialog-backdrop",onClick:t,children:h.jsxs("div",{className:"image-dialog",onClick:c=>c.stopPropagation(),children:[h.jsxs("div",{className:"dialog-header",children:[h.jsx("strong",{children:"Add image"}),h.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),h.jsxs("form",{onSubmit:l,className:"image-form",children:[h.jsx("input",{placeholder:"Image URL",value:n,onChange:c=>r(c.target.value),className:"image-url-input"}),h.jsxs("div",{style:{display:"flex",gap:8,marginTop:8},children:[h.jsx("button",{type:"submit",className:"btn",children:"Add URL"}),h.jsx("button",{type:"button",className:"btn",onClick:s,children:"Choose file"})]})]}),h.jsx("input",{ref:i,type:"file",accept:"image/*",style:{display:"none"},onChange:o})]})});return typeof document<"u"?zn.createPortal(a,document.body):a}function _R({url:t,onClose:e}){const n=B.useRef(null),[r,i]=B.useState("fit"),[s,o]=B.useState(1),[l,a]=B.useState({x:0,y:0}),c=B.useRef(!1),u=B.useRef(null);B.useEffect(()=>{const x=E=>{E.key==="Escape"&&e()};return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[e]);const d=(x,E,k)=>Math.min(Math.max(x,E),k),f=(x,E,k)=>{const M=typeof k=="number"?k:s,N=n.current;if(!N)return{x,y:E};const z=N.clientWidth,X=N.clientHeight,L=z*(M-1)/2,H=X*(M-1)/2;return{x:d(x,-L,L),y:d(E,-H,H)}},p=()=>{r==="fit"?(i("zoom"),o(1.6),a(f(l.x,l.y,1.6))):(i("fit"),o(1),a({x:0,y:0}),c.current=!1,u.current=null)},m=x=>{if(r!=="zoom")return;x.preventDefault();const k=x.deltaY>0?.92:1.08,M=d(s*k,1,6);o(M),a(N=>f(N.x,N.y,M))},g=x=>{r==="zoom"&&x.button===0&&(c.current=!0,u.current={x:x.clientX,y:x.clientY})},y=x=>{if(!c.current||r!=="zoom")return;const E=u.current;if(!E)return;const k=x.clientX-E.x,M=x.clientY-E.y;u.current={x:x.clientX,y:x.clientY},a(N=>f(N.x+k,N.y+M))},v=()=>{c.current=!1,u.current=null},w=h.jsx("div",{className:"lightbox-backdrop",onClick:e,style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.7)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4},children:h.jsxs("div",{className:"lightbox-content",ref:n,onClick:x=>{x.stopPropagation(),p()},onWheel:m,onMouseDown:g,onMouseMove:y,onMouseUp:v,onMouseLeave:v,style:{width:"96vw",height:"92vh",position:"relative",display:"flex",alignItems:"center",justifyContent:"center",cursor:r==="fit"?"zoom-in":c.current?"grabbing":"grab"},children:[h.jsx("img",{src:t,alt:"full view",style:{width:"100%",height:"100%",objectFit:"contain",borderRadius:8,display:"block",transform:`translate(${l.x}px, ${l.y}px) scale(${s})`,transition:c.current?"none":"transform 120ms ease"}}),r==="zoom"&&h.jsxs("div",{style:{position:"absolute",top:10,left:10,display:"flex",gap:8},onClick:x=>x.stopPropagation(),children:[h.jsx("button",{className:"btn","aria-label":"Zoom in",onClick:()=>{const x=d(s*1.12,1,6);o(x),a(E=>f(E.x,E.y,x))},children:"+"}),h.jsx("button",{className:"btn","aria-label":"Zoom out",onClick:()=>{const x=d(s/1.12,1,6);o(x),a(E=>f(E.x,E.y,x))},children:"-"}),h.jsx("button",{className:"btn","aria-label":"Reset",onClick:()=>{o(1),a({x:0,y:0}),i("fit")},children:"Reset"})]}),h.jsx("button",{className:"btn",onClick:x=>{x.stopPropagation(),e()},style:{position:"absolute",top:10,right:10},"aria-label":"Close",children:"Close"})]})});return typeof document<"u"?zn.createPortal(w,document.body):w}/*! - * Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2025 Fonticons, Inc. - */function X0(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(a){throw a},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s,o=!0,l=!1;return{s:function(){n=n.call(t)},n:function(){var a=n.next();return o=a.done,a},e:function(a){l=!0,s=a},f:function(){try{o||n.return==null||n.return()}finally{if(l)throw s}}}}function Ut(t,e,n){return(e=zR(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _H(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function zH(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,s,o,l=[],a=!0,c=!1;try{if(s=(n=n.call(t)).next,e===0){if(Object(n)!==n)return;a=!1}else for(;!(a=(r=s.call(n)).done)&&(l.push(r.value),l.length!==e);a=!0);}catch(u){c=!0,i=u}finally{try{if(!a&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw i}}return l}}function FH(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $H(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pE(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Re(t){for(var e=1;e-1;i--){var s=n[i],o=(s.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(r=s)}return Cn.head.insertBefore(e,r),t}}var R7="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function SE(){for(var t=12,e="";t-- >0;)e+=R7[Math.random()*62|0];return e}function Lc(t){for(var e=[],n=(t||[]).length>>>0;n--;)e[n]=t[n];return e}function Lx(t){return t.classList?Lc(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(e){return e})}function vD(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function D7(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,'="').concat(vD(t[n]),'" ')},"").trim()}function wg(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,": ").concat(t[n].trim(),";")},"")}function _x(t){return t.size!==bs.size||t.x!==bs.x||t.y!==bs.y||t.rotate!==bs.rotate||t.flipX||t.flipY}function O7(t){var e=t.transform,n=t.containerWidth,r=t.iconWidth,i={transform:"translate(".concat(n/2," 256)")},s="translate(".concat(e.x*32,", ").concat(e.y*32,") "),o="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),l="rotate(".concat(e.rotate," 0 0)"),a={transform:"".concat(s," ").concat(o," ").concat(l)},c={transform:"translate(".concat(r/2*-1," -256)")};return{outer:i,inner:a,path:c}}function j7(t){var e=t.transform,n=t.width,r=n===void 0?Z0:n,i=t.height,s=i===void 0?Z0:i,o="";return UR?o+="translate(".concat(e.x/wa-r/2,"em, ").concat(e.y/wa-s/2,"em) "):o+="translate(calc(-50% + ".concat(e.x/wa,"em), calc(-50% + ").concat(e.y/wa,"em)) "),o+="scale(".concat(e.size/wa*(e.flipX?-1:1),", ").concat(e.size/wa*(e.flipY?-1:1),") "),o+="rotate(".concat(e.rotate,"deg) "),o}var P7=`:root, :host { - --fa-font-solid: normal 900 1em/1 "Font Awesome 7 Free"; - --fa-font-regular: normal 400 1em/1 "Font Awesome 7 Free"; - --fa-font-light: normal 300 1em/1 "Font Awesome 7 Pro"; - --fa-font-thin: normal 100 1em/1 "Font Awesome 7 Pro"; - --fa-font-duotone: normal 900 1em/1 "Font Awesome 7 Duotone"; - --fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 7 Duotone"; - --fa-font-duotone-light: normal 300 1em/1 "Font Awesome 7 Duotone"; - --fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 7 Duotone"; - --fa-font-brands: normal 400 1em/1 "Font Awesome 7 Brands"; - --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 7 Sharp"; - --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 7 Sharp"; - --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 7 Sharp"; - --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 7 Sharp"; - --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 7 Sharp Duotone"; - --fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 7 Sharp Duotone"; - --fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 7 Sharp Duotone"; - --fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 7 Sharp Duotone"; - --fa-font-slab-regular: normal 400 1em/1 "Font Awesome 7 Slab"; - --fa-font-slab-press-regular: normal 400 1em/1 "Font Awesome 7 Slab Press"; - --fa-font-whiteboard-semibold: normal 600 1em/1 "Font Awesome 7 Whiteboard"; - --fa-font-thumbprint-light: normal 300 1em/1 "Font Awesome 7 Thumbprint"; - --fa-font-notdog-solid: normal 900 1em/1 "Font Awesome 7 Notdog"; - --fa-font-notdog-duo-solid: normal 900 1em/1 "Font Awesome 7 Notdog Duo"; - --fa-font-etch-solid: normal 900 1em/1 "Font Awesome 7 Etch"; - --fa-font-jelly-regular: normal 400 1em/1 "Font Awesome 7 Jelly"; - --fa-font-jelly-fill-regular: normal 400 1em/1 "Font Awesome 7 Jelly Fill"; - --fa-font-jelly-duo-regular: normal 400 1em/1 "Font Awesome 7 Jelly Duo"; - --fa-font-chisel-regular: normal 400 1em/1 "Font Awesome 7 Chisel"; - --fa-font-utility-semibold: normal 600 1em/1 "Font Awesome 7 Utility"; - --fa-font-utility-duo-semibold: normal 600 1em/1 "Font Awesome 7 Utility Duo"; - --fa-font-utility-fill-semibold: normal 600 1em/1 "Font Awesome 7 Utility Fill"; -} - -.svg-inline--fa { - box-sizing: content-box; - display: var(--fa-display, inline-block); - height: 1em; - overflow: visible; - vertical-align: -0.125em; - width: var(--fa-width, 1.25em); -} -.svg-inline--fa.fa-2xs { - vertical-align: 0.1em; -} -.svg-inline--fa.fa-xs { - vertical-align: 0em; -} -.svg-inline--fa.fa-sm { - vertical-align: -0.0714285714em; -} -.svg-inline--fa.fa-lg { - vertical-align: -0.2em; -} -.svg-inline--fa.fa-xl { - vertical-align: -0.25em; -} -.svg-inline--fa.fa-2xl { - vertical-align: -0.3125em; -} -.svg-inline--fa.fa-pull-left, -.svg-inline--fa .fa-pull-start { - float: inline-start; - margin-inline-end: var(--fa-pull-margin, 0.3em); -} -.svg-inline--fa.fa-pull-right, -.svg-inline--fa .fa-pull-end { - float: inline-end; - margin-inline-start: var(--fa-pull-margin, 0.3em); -} -.svg-inline--fa.fa-li { - width: var(--fa-li-width, 2em); - inset-inline-start: calc(-1 * var(--fa-li-width, 2em)); - inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */ -} - -.fa-layers-counter, .fa-layers-text { - display: inline-block; - position: absolute; - text-align: center; -} - -.fa-layers { - display: inline-block; - height: 1em; - position: relative; - text-align: center; - vertical-align: -0.125em; - width: var(--fa-width, 1.25em); -} -.fa-layers .svg-inline--fa { - inset: 0; - margin: auto; - position: absolute; - transform-origin: center center; -} - -.fa-layers-text { - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - transform-origin: center center; -} - -.fa-layers-counter { - background-color: var(--fa-counter-background-color, #ff253a); - border-radius: var(--fa-counter-border-radius, 1em); - box-sizing: border-box; - color: var(--fa-inverse, #fff); - line-height: var(--fa-counter-line-height, 1); - max-width: var(--fa-counter-max-width, 5em); - min-width: var(--fa-counter-min-width, 1.5em); - overflow: hidden; - padding: var(--fa-counter-padding, 0.25em 0.5em); - right: var(--fa-right, 0); - text-overflow: ellipsis; - top: var(--fa-top, 0); - transform: scale(var(--fa-counter-scale, 0.25)); - transform-origin: top right; -} - -.fa-layers-bottom-right { - bottom: var(--fa-bottom, 0); - right: var(--fa-right, 0); - top: auto; - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: bottom right; -} - -.fa-layers-bottom-left { - bottom: var(--fa-bottom, 0); - left: var(--fa-left, 0); - right: auto; - top: auto; - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: bottom left; -} - -.fa-layers-top-right { - top: var(--fa-top, 0); - right: var(--fa-right, 0); - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: top right; -} - -.fa-layers-top-left { - left: var(--fa-left, 0); - right: auto; - top: var(--fa-top, 0); - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: top left; -} - -.fa-1x { - font-size: 1em; -} - -.fa-2x { - font-size: 2em; -} - -.fa-3x { - font-size: 3em; -} - -.fa-4x { - font-size: 4em; -} - -.fa-5x { - font-size: 5em; -} - -.fa-6x { - font-size: 6em; -} - -.fa-7x { - font-size: 7em; -} - -.fa-8x { - font-size: 8em; -} - -.fa-9x { - font-size: 9em; -} - -.fa-10x { - font-size: 10em; -} - -.fa-2xs { - font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that's relative to the scale's 16px base */ - line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it's parent */ - vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ -} - -.fa-xs { - font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that's relative to the scale's 16px base */ - line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it's parent */ - vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ -} - -.fa-sm { - font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that's relative to the scale's 16px base */ - line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it's parent */ - vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ -} - -.fa-lg { - font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that's relative to the scale's 16px base */ - line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it's parent */ - vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ -} - -.fa-xl { - font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that's relative to the scale's 16px base */ - line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it's parent */ - vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ -} - -.fa-2xl { - font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that's relative to the scale's 16px base */ - line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it's parent */ - vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ -} - -.fa-width-auto { - --fa-width: auto; -} - -.fa-fw, -.fa-width-fixed { - --fa-width: 1.25em; -} - -.fa-ul { - list-style-type: none; - margin-inline-start: var(--fa-li-margin, 2.5em); - padding-inline-start: 0; -} -.fa-ul > li { - position: relative; -} - -.fa-li { - inset-inline-start: calc(-1 * var(--fa-li-width, 2em)); - position: absolute; - text-align: center; - width: var(--fa-li-width, 2em); - line-height: inherit; -} - -/* Heads Up: Bordered Icons will not be supported in the future! - - This feature will be deprecated in the next major release of Font Awesome (v8)! - - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8. -*/ -/* Notes: -* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size) -* --@{v.$css-prefix}-border-padding = - ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it's vertical alignment) - ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon) -*/ -.fa-border { - border-color: var(--fa-border-color, #eee); - border-radius: var(--fa-border-radius, 0.1em); - border-style: var(--fa-border-style, solid); - border-width: var(--fa-border-width, 0.0625em); - box-sizing: var(--fa-border-box-sizing, content-box); - padding: var(--fa-border-padding, 0.1875em 0.25em); -} - -.fa-pull-left, -.fa-pull-start { - float: inline-start; - margin-inline-end: var(--fa-pull-margin, 0.3em); -} - -.fa-pull-right, -.fa-pull-end { - float: inline-end; - margin-inline-start: var(--fa-pull-margin, 0.3em); -} - -.fa-beat { - animation-name: fa-beat; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); -} - -.fa-bounce { - animation-name: fa-bounce; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); -} - -.fa-fade { - animation-name: fa-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); -} - -.fa-beat-fade { - animation-name: fa-beat-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); -} - -.fa-flip { - animation-name: fa-flip; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); -} - -.fa-shake { - animation-name: fa-shake; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); -} - -.fa-spin { - animation-name: fa-spin; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 2s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); -} - -.fa-spin-reverse { - --fa-animation-direction: reverse; -} - -.fa-pulse, -.fa-spin-pulse { - animation-name: fa-spin; - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, steps(8)); -} - -@media (prefers-reduced-motion: reduce) { - .fa-beat, - .fa-bounce, - .fa-fade, - .fa-beat-fade, - .fa-flip, - .fa-pulse, - .fa-shake, - .fa-spin, - .fa-spin-pulse { - animation: none !important; - transition: none !important; - } -} -@keyframes fa-beat { - 0%, 90% { - transform: scale(1); - } - 45% { - transform: scale(var(--fa-beat-scale, 1.25)); - } -} -@keyframes fa-bounce { - 0% { - transform: scale(1, 1) translateY(0); - } - 10% { - transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); - } - 30% { - transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); - } - 50% { - transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); - } - 57% { - transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); - } - 64% { - transform: scale(1, 1) translateY(0); - } - 100% { - transform: scale(1, 1) translateY(0); - } -} -@keyframes fa-fade { - 50% { - opacity: var(--fa-fade-opacity, 0.4); - } -} -@keyframes fa-beat-fade { - 0%, 100% { - opacity: var(--fa-beat-fade-opacity, 0.4); - transform: scale(1); - } - 50% { - opacity: 1; - transform: scale(var(--fa-beat-fade-scale, 1.125)); - } -} -@keyframes fa-flip { - 50% { - transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); - } -} -@keyframes fa-shake { - 0% { - transform: rotate(-15deg); - } - 4% { - transform: rotate(15deg); - } - 8%, 24% { - transform: rotate(-18deg); - } - 12%, 28% { - transform: rotate(18deg); - } - 16% { - transform: rotate(-22deg); - } - 20% { - transform: rotate(22deg); - } - 32% { - transform: rotate(-12deg); - } - 36% { - transform: rotate(12deg); - } - 40%, 100% { - transform: rotate(0deg); - } -} -@keyframes fa-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -.fa-rotate-90 { - transform: rotate(90deg); -} - -.fa-rotate-180 { - transform: rotate(180deg); -} - -.fa-rotate-270 { - transform: rotate(270deg); -} - -.fa-flip-horizontal { - transform: scale(-1, 1); -} - -.fa-flip-vertical { - transform: scale(1, -1); -} - -.fa-flip-both, -.fa-flip-horizontal.fa-flip-vertical { - transform: scale(-1, -1); -} - -.fa-rotate-by { - transform: rotate(var(--fa-rotate-angle, 0)); -} - -.svg-inline--fa .fa-primary { - fill: var(--fa-primary-color, currentColor); - opacity: var(--fa-primary-opacity, 1); -} - -.svg-inline--fa .fa-secondary { - fill: var(--fa-secondary-color, currentColor); - opacity: var(--fa-secondary-opacity, 0.4); -} - -.svg-inline--fa.fa-swap-opacity .fa-primary { - opacity: var(--fa-secondary-opacity, 0.4); -} - -.svg-inline--fa.fa-swap-opacity .fa-secondary { - opacity: var(--fa-primary-opacity, 1); -} - -.svg-inline--fa mask .fa-primary, -.svg-inline--fa mask .fa-secondary { - fill: black; -} - -.svg-inline--fa.fa-inverse { - fill: var(--fa-inverse, #fff); -} - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; -} - -.fa-inverse { - color: var(--fa-inverse, #fff); -} - -.svg-inline--fa.fa-stack-1x { - --fa-width: 1.25em; - height: 1em; - width: var(--fa-width); -} -.svg-inline--fa.fa-stack-2x { - --fa-width: 2.5em; - height: 2em; - width: var(--fa-width); -} - -.fa-stack-1x, -.fa-stack-2x { - inset: 0; - margin: auto; - position: absolute; - z-index: var(--fa-stack-z-index, auto); -}`;function wD(){var t=dD,e=fD,n=gt.cssPrefix,r=gt.replacementClass,i=P7;if(n!==t||r!==e){var s=new RegExp("\\.".concat(t,"\\-"),"g"),o=new RegExp("\\--".concat(t,"\\-"),"g"),l=new RegExp("\\.".concat(e),"g");i=i.replace(s,".".concat(n,"-")).replace(o,"--".concat(n,"-")).replace(l,".".concat(r))}return i}var CE=!1;function Zy(){gt.autoAddCss&&!CE&&(I7(wD()),CE=!0)}var L7={mixout:function(){return{dom:{css:wD,insertCss:Zy}}},hooks:function(){return{beforeDOMElementCreation:function(){Zy()},beforeI2svg:function(){Zy()}}}},co=al||{};co[ao]||(co[ao]={});co[ao].styles||(co[ao].styles={});co[ao].hooks||(co[ao].hooks={});co[ao].shims||(co[ao].shims=[]);var Gi=co[ao],bD=[],xD=function(){Cn.removeEventListener("DOMContentLoaded",xD),am=1,bD.map(function(e){return e()})},am=!1;vo&&(am=(Cn.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(Cn.readyState),am||Cn.addEventListener("DOMContentLoaded",xD));function _7(t){vo&&(am?setTimeout(t,0):bD.push(t))}function of(t){var e=t.tag,n=t.attributes,r=n===void 0?{}:n,i=t.children,s=i===void 0?[]:i;return typeof t=="string"?vD(t):"<".concat(e," ").concat(D7(r),">").concat(s.map(of).join(""),"")}function EE(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}var ev=function(e,n,r,i){var s=Object.keys(e),o=s.length,l=n,a,c,u;for(r===void 0?(a=1,u=e[s[0]]):(a=0,u=r);a2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,i=r===void 0?!1:r,s=NE(e);typeof Gi.hooks.addPack=="function"&&!i?Gi.hooks.addPack(t,NE(e)):Gi.styles[t]=Re(Re({},Gi.styles[t]||{}),s),t==="fas"&&iw("fa",e)}var Cd=Gi.styles,z7=Gi.shims,SD=Object.keys(Px),F7=SD.reduce(function(t,e){return t[e]=Object.keys(Px[e]),t},{}),zx=null,CD={},ED={},ND={},TD={},AD={};function $7(t){return~E7.indexOf(t)}function B7(t,e){var n=e.split("-"),r=n[0],i=n.slice(1).join("-");return r===t&&i!==""&&!$7(i)?i:null}var MD=function(){var e=function(s){return ev(Cd,function(o,l,a){return o[a]=ev(l,s,{}),o},{})};CD=e(function(i,s,o){if(s[3]&&(i[s[3]]=o),s[2]){var l=s[2].filter(function(a){return typeof a=="number"});l.forEach(function(a){i[a.toString(16)]=o})}return i}),ED=e(function(i,s,o){if(i[o]=o,s[2]){var l=s[2].filter(function(a){return typeof a=="string"});l.forEach(function(a){i[a]=o})}return i}),AD=e(function(i,s,o){var l=s[2];return i[o]=o,l.forEach(function(a){i[a]=o}),i});var n="far"in Cd||gt.autoFetchSvg,r=ev(z7,function(i,s){var o=s[0],l=s[1],a=s[2];return l==="far"&&!n&&(l="fas"),typeof o=="string"&&(i.names[o]={prefix:l,iconName:a}),typeof o=="number"&&(i.unicodes[o.toString(16)]={prefix:l,iconName:a}),i},{names:{},unicodes:{}});ND=r.names,TD=r.unicodes,zx=bg(gt.styleDefault,{family:gt.familyDefault})};M7(function(t){zx=bg(t.styleDefault,{family:gt.familyDefault})});MD();function Fx(t,e){return(CD[t]||{})[e]}function U7(t,e){return(ED[t]||{})[e]}function jl(t,e){return(AD[t]||{})[e]}function ID(t){return ND[t]||{prefix:null,iconName:null}}function H7(t){var e=TD[t],n=Fx("fas",t);return e||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function cl(){return zx}var RD=function(){return{prefix:null,iconName:null,rest:[]}};function V7(t){var e=kr,n=SD.reduce(function(r,i){return r[i]="".concat(gt.cssPrefix,"-").concat(i),r},{});return lD.forEach(function(r){(t.includes(n[r])||t.some(function(i){return F7[r].includes(i)}))&&(e=r)}),e}function bg(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.family,r=n===void 0?kr:n,i=b7[r][t];if(r===rf&&!t)return"fad";var s=kE[r][t]||kE[r][i],o=t in Gi.styles?t:null,l=s||o||null;return l}function W7(t){var e=[],n=null;return t.forEach(function(r){var i=B7(gt.cssPrefix,r);i?n=i:r&&e.push(r)}),{iconName:n,rest:e}}function TE(t){return t.sort().filter(function(e,n,r){return r.indexOf(e)===n})}var AE=cD.concat(aD);function xg(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.skipLookups,r=n===void 0?!1:n,i=null,s=TE(t.filter(function(p){return AE.includes(p)})),o=TE(t.filter(function(p){return!AE.includes(p)})),l=s.filter(function(p){return i=p,!VR.includes(p)}),a=vg(l,1),c=a[0],u=c===void 0?null:c,d=V7(s),f=Re(Re({},W7(o)),{},{prefix:bg(u,{family:d})});return Re(Re(Re({},f),J7({values:t,family:d,styles:Cd,config:gt,canonical:f,givenPrefix:i})),K7(r,i,f))}function K7(t,e,n){var r=n.prefix,i=n.iconName;if(t||!r||!i)return{prefix:r,iconName:i};var s=e==="fa"?ID(i):{},o=jl(r,i);return i=s.iconName||o||i,r=s.prefix||r,r==="far"&&!Cd.far&&Cd.fas&&!gt.autoFetchSvg&&(r="fas"),{prefix:r,iconName:i}}var Y7=lD.filter(function(t){return t!==kr||t!==rf}),q7=Object.keys(Q0).filter(function(t){return t!==kr}).map(function(t){return Object.keys(Q0[t])}).flat();function J7(t){var e=t.values,n=t.family,r=t.canonical,i=t.givenPrefix,s=i===void 0?"":i,o=t.styles,l=o===void 0?{}:o,a=t.config,c=a===void 0?{}:a,u=n===rf,d=e.includes("fa-duotone")||e.includes("fad"),f=c.familyDefault==="duotone",p=r.prefix==="fad"||r.prefix==="fa-duotone";if(!u&&(d||f||p)&&(r.prefix="fad"),(e.includes("fa-brands")||e.includes("fab"))&&(r.prefix="fab"),!r.prefix&&Y7.includes(n)){var m=Object.keys(l).find(function(y){return q7.includes(y)});if(m||c.autoFetchSvg){var g=fV.get(n).defaultShortPrefixId;r.prefix=g,r.iconName=jl(r.prefix,r.iconName)||r.iconName}}return(r.prefix==="fa"||s==="fa")&&(r.prefix=cl()||"fas"),r}var G7=function(){function t(){jH(this,t),this.definitions={}}return LH(t,[{key:"add",value:function(){for(var n=this,r=arguments.length,i=new Array(r),s=0;s0&&u.forEach(function(d){typeof d=="string"&&(n[l][d]=c)}),n[l][a]=c}),n}}])}(),ME=[],$a={},Xa={},X7=Object.keys(Xa);function Q7(t,e){var n=e.mixoutsTo;return ME=t,$a={},Object.keys(Xa).forEach(function(r){X7.indexOf(r)===-1&&delete Xa[r]}),ME.forEach(function(r){var i=r.mixout?r.mixout():{};if(Object.keys(i).forEach(function(o){typeof i[o]=="function"&&(n[o]=i[o]),lm(i[o])==="object"&&Object.keys(i[o]).forEach(function(l){n[o]||(n[o]={}),n[o][l]=i[o][l]})}),r.hooks){var s=r.hooks();Object.keys(s).forEach(function(o){$a[o]||($a[o]=[]),$a[o].push(s[o])})}r.provides&&r.provides(Xa)}),n}function sw(t,e){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i1?e-1:0),r=1;r0&&arguments[0]!==void 0?arguments[0]:{};return vo?(ra("beforeI2svg",e),ul("pseudoElements2svg",e),ul("i2svg",e)):Promise.reject(new Error("Operation requires a DOM of some kind."))},watch:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot;gt.autoReplaceSvg===!1&&(gt.autoReplaceSvg=!0),gt.observeMutations=!0,_7(function(){nW({autoReplaceSvgRoot:n}),ra("watch",e)})}},tW={icon:function(e){if(e===null)return null;if(lm(e)==="object"&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:jl(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&e.length===2){var n=e[1].indexOf("fa-")===0?e[1].slice(3):e[1],r=bg(e[0]);return{prefix:r,iconName:jl(r,n)||n}}if(typeof e=="string"&&(e.indexOf("".concat(gt.cssPrefix,"-"))>-1||e.match(x7))){var i=xg(e.split(" "),{skipLookups:!0});return{prefix:i.prefix||cl(),iconName:jl(i.prefix,i.iconName)||i.iconName}}if(typeof e=="string"){var s=cl();return{prefix:s,iconName:jl(s,e)||e}}}},vi={noAuto:Z7,config:gt,dom:eW,parse:tW,library:DD,findIconDefinition:ow,toHtml:of},nW=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot,r=n===void 0?Cn:n;(Object.keys(Gi.styles).length>0||gt.autoFetchSvg)&&vo&>.autoReplaceSvg&&vi.dom.i2svg({node:r})};function kg(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map(function(r){return of(r)})}}),Object.defineProperty(t,"node",{get:function(){if(vo){var r=Cn.createElement("div");return r.innerHTML=t.html,r.children}}}),t}function rW(t){var e=t.children,n=t.main,r=t.mask,i=t.attributes,s=t.styles,o=t.transform;if(_x(o)&&n.found&&!r.found){var l=n.width,a=n.height,c={x:l/a/2,y:.5};i.style=wg(Re(Re({},s),{},{"transform-origin":"".concat(c.x+o.x/16,"em ").concat(c.y+o.y/16,"em")}))}return[{tag:"svg",attributes:i,children:e}]}function iW(t){var e=t.prefix,n=t.iconName,r=t.children,i=t.attributes,s=t.symbol,o=s===!0?"".concat(e,"-").concat(gt.cssPrefix,"-").concat(n):s;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Re(Re({},i),{},{id:o}),children:r}]}]}function sW(t){var e=["aria-label","aria-labelledby","title","role"];return e.some(function(n){return n in t})}function $x(t){var e=t.icons,n=e.main,r=e.mask,i=t.prefix,s=t.iconName,o=t.transform,l=t.symbol,a=t.maskId,c=t.extra,u=t.watchable,d=u===void 0?!1:u,f=r.found?r:n,p=f.width,m=f.height,g=[gt.replacementClass,s?"".concat(gt.cssPrefix,"-").concat(s):""].filter(function(k){return c.classes.indexOf(k)===-1}).filter(function(k){return k!==""||!!k}).concat(c.classes).join(" "),y={children:[],attributes:Re(Re({},c.attributes),{},{"data-prefix":i,"data-icon":s,class:g,role:c.attributes.role||"img",viewBox:"0 0 ".concat(p," ").concat(m)})};!sW(c.attributes)&&!c.attributes["aria-hidden"]&&(y.attributes["aria-hidden"]="true"),d&&(y.attributes[na]="");var v=Re(Re({},y),{},{prefix:i,iconName:s,main:n,mask:r,maskId:a,transform:o,symbol:l,styles:Re({},c.styles)}),w=r.found&&n.found?ul("generateAbstractMask",v)||{children:[],attributes:{}}:ul("generateAbstractIcon",v)||{children:[],attributes:{}},x=w.children,E=w.attributes;return v.children=x,v.attributes=E,l?iW(v):rW(v)}function IE(t){var e=t.content,n=t.width,r=t.height,i=t.transform,s=t.extra,o=t.watchable,l=o===void 0?!1:o,a=Re(Re({},s.attributes),{},{class:s.classes.join(" ")});l&&(a[na]="");var c=Re({},s.styles);_x(i)&&(c.transform=j7({transform:i,width:n,height:r}),c["-webkit-transform"]=c.transform);var u=wg(c);u.length>0&&(a.style=u);var d=[];return d.push({tag:"span",attributes:a,children:[e]}),d}function oW(t){var e=t.content,n=t.extra,r=Re(Re({},n.attributes),{},{class:n.classes.join(" ")}),i=wg(n.styles);i.length>0&&(r.style=i);var s=[];return s.push({tag:"span",attributes:r,children:[e]}),s}var tv=Gi.styles;function lw(t){var e=t[0],n=t[1],r=t.slice(4),i=vg(r,1),s=i[0],o=null;return Array.isArray(s)?o={tag:"g",attributes:{class:"".concat(gt.cssPrefix,"-").concat(Qy.GROUP)},children:[{tag:"path",attributes:{class:"".concat(gt.cssPrefix,"-").concat(Qy.SECONDARY),fill:"currentColor",d:s[0]}},{tag:"path",attributes:{class:"".concat(gt.cssPrefix,"-").concat(Qy.PRIMARY),fill:"currentColor",d:s[1]}}]}:o={tag:"path",attributes:{fill:"currentColor",d:s}},{found:!0,width:e,height:n,icon:o}}var lW={found:!1,width:512,height:512};function aW(t,e){!pD&&!gt.showMissingIcons&&t&&console.error('Icon with name "'.concat(t,'" and prefix "').concat(e,'" is missing.'))}function aw(t,e){var n=e;return e==="fa"&>.styleDefault!==null&&(e=cl()),new Promise(function(r,i){if(n==="fa"){var s=ID(t)||{};t=s.iconName||t,e=s.prefix||e}if(t&&e&&tv[e]&&tv[e][t]){var o=tv[e][t];return r(lw(o))}aW(t,e),r(Re(Re({},lW),{},{icon:gt.showMissingIcons&&t?ul("missingIconAbstract")||{}:{}}))})}var RE=function(){},cw=gt.measurePerformance&&nh&&nh.mark&&nh.measure?nh:{mark:RE,measure:RE},yu='FA "7.1.0"',cW=function(e){return cw.mark("".concat(yu," ").concat(e," begins")),function(){return OD(e)}},OD=function(e){cw.mark("".concat(yu," ").concat(e," ends")),cw.measure("".concat(yu," ").concat(e),"".concat(yu," ").concat(e," begins"),"".concat(yu," ").concat(e," ends"))},Bx={begin:cW,end:OD},Mh=function(){};function DE(t){var e=t.getAttribute?t.getAttribute(na):null;return typeof e=="string"}function uW(t){var e=t.getAttribute?t.getAttribute(Ox):null,n=t.getAttribute?t.getAttribute(jx):null;return e&&n}function dW(t){return t&&t.classList&&t.classList.contains&&t.classList.contains(gt.replacementClass)}function fW(){if(gt.autoReplaceSvg===!0)return Ih.replace;var t=Ih[gt.autoReplaceSvg];return t||Ih.replace}function hW(t){return Cn.createElementNS("http://www.w3.org/2000/svg",t)}function pW(t){return Cn.createElement(t)}function jD(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.ceFn,r=n===void 0?t.tag==="svg"?hW:pW:n;if(typeof t=="string")return Cn.createTextNode(t);var i=r(t.tag);Object.keys(t.attributes||[]).forEach(function(o){i.setAttribute(o,t.attributes[o])});var s=t.children||[];return s.forEach(function(o){i.appendChild(jD(o,{ceFn:r}))}),i}function mW(t){var e=" ".concat(t.outerHTML," ");return e="".concat(e,"Font Awesome fontawesome.com "),e}var Ih={replace:function(e){var n=e[0];if(n.parentNode)if(e[1].forEach(function(i){n.parentNode.insertBefore(jD(i),n)}),n.getAttribute(na)===null&>.keepOriginalSource){var r=Cn.createComment(mW(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(e){var n=e[0],r=e[1];if(~Lx(n).indexOf(gt.replacementClass))return Ih.replace(e);var i=new RegExp("".concat(gt.cssPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var s=r[0].attributes.class.split(" ").reduce(function(l,a){return a===gt.replacementClass||a.match(i)?l.toSvg.push(a):l.toNode.push(a),l},{toNode:[],toSvg:[]});r[0].attributes.class=s.toSvg.join(" "),s.toNode.length===0?n.removeAttribute("class"):n.setAttribute("class",s.toNode.join(" "))}var o=r.map(function(l){return of(l)}).join(` -`);n.setAttribute(na,""),n.innerHTML=o}};function OE(t){t()}function PD(t,e){var n=typeof e=="function"?e:Mh;if(t.length===0)n();else{var r=OE;gt.mutateApproach===v7&&(r=al.requestAnimationFrame||OE),r(function(){var i=fW(),s=Bx.begin("mutate");t.map(i),s(),n()})}}var Ux=!1;function LD(){Ux=!0}function uw(){Ux=!1}var cm=null;function jE(t){if(vE&>.observeMutations){var e=t.treeCallback,n=e===void 0?Mh:e,r=t.nodeCallback,i=r===void 0?Mh:r,s=t.pseudoElementsCallback,o=s===void 0?Mh:s,l=t.observeMutationsRoot,a=l===void 0?Cn:l;cm=new vE(function(c){if(!Ux){var u=cl();Lc(c).forEach(function(d){if(d.type==="childList"&&d.addedNodes.length>0&&!DE(d.addedNodes[0])&&(gt.searchPseudoElements&&o(d.target),n(d.target)),d.type==="attributes"&&d.target.parentNode&>.searchPseudoElements&&o([d.target],!0),d.type==="attributes"&&DE(d.target)&&~C7.indexOf(d.attributeName))if(d.attributeName==="class"&&uW(d.target)){var f=xg(Lx(d.target)),p=f.prefix,m=f.iconName;d.target.setAttribute(Ox,p||u),m&&d.target.setAttribute(jx,m)}else dW(d.target)&&i(d.target)})}}),vo&&cm.observe(a,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function gW(){cm&&cm.disconnect()}function yW(t){var e=t.getAttribute("style"),n=[];return e&&(n=e.split(";").reduce(function(r,i){var s=i.split(":"),o=s[0],l=s.slice(1);return o&&l.length>0&&(r[o]=l.join(":").trim()),r},{})),n}function vW(t){var e=t.getAttribute("data-prefix"),n=t.getAttribute("data-icon"),r=t.innerText!==void 0?t.innerText.trim():"",i=xg(Lx(t));return i.prefix||(i.prefix=cl()),e&&n&&(i.prefix=e,i.iconName=n),i.iconName&&i.prefix||(i.prefix&&r.length>0&&(i.iconName=U7(i.prefix,t.innerText)||Fx(i.prefix,kD(t.innerText))),!i.iconName&>.autoFetchSvg&&t.firstChild&&t.firstChild.nodeType===Node.TEXT_NODE&&(i.iconName=t.firstChild.data)),i}function wW(t){var e=Lc(t.attributes).reduce(function(n,r){return n.name!=="class"&&n.name!=="style"&&(n[r.name]=r.value),n},{});return e}function bW(){return{iconName:null,prefix:null,transform:bs,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function PE(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=vW(t),r=n.iconName,i=n.prefix,s=n.rest,o=wW(t),l=sw("parseNodeAttributes",{},t),a=e.styleParser?yW(t):[];return Re({iconName:r,prefix:i,transform:bs,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:s,styles:a,attributes:o}},l)}var xW=Gi.styles;function _D(t){var e=gt.autoReplaceSvg==="nest"?PE(t,{styleParser:!1}):PE(t);return~e.extra.classes.indexOf(gD)?ul("generateLayersText",t,e):ul("generateSvgReplacementMutation",t,e)}function kW(){return[].concat(is(aD),is(cD))}function LE(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!vo)return Promise.resolve();var n=Cn.documentElement.classList,r=function(d){return n.add("".concat(xE,"-").concat(d))},i=function(d){return n.remove("".concat(xE,"-").concat(d))},s=gt.autoFetchSvg?kW():VR.concat(Object.keys(xW));s.includes("fa")||s.push("fa");var o=[".".concat(gD,":not([").concat(na,"])")].concat(s.map(function(u){return".".concat(u,":not([").concat(na,"])")})).join(", ");if(o.length===0)return Promise.resolve();var l=[];try{l=Lc(t.querySelectorAll(o))}catch{}if(l.length>0)r("pending"),i("complete");else return Promise.resolve();var a=Bx.begin("onTree"),c=l.reduce(function(u,d){try{var f=_D(d);f&&u.push(f)}catch(p){pD||p.name==="MissingIcon"&&console.error(p)}return u},[]);return new Promise(function(u,d){Promise.all(c).then(function(f){PD(f,function(){r("active"),r("complete"),i("pending"),typeof e=="function"&&e(),a(),u()})}).catch(function(f){a(),d(f)})})}function SW(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;_D(t).then(function(n){n&&PD([n],e)})}function CW(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(e||{}).icon?e:ow(e||{}),i=n.mask;return i&&(i=(i||{}).icon?i:ow(i||{})),t(r,Re(Re({},n),{},{mask:i}))}}var EW=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,i=r===void 0?bs:r,s=n.symbol,o=s===void 0?!1:s,l=n.mask,a=l===void 0?null:l,c=n.maskId,u=c===void 0?null:c,d=n.classes,f=d===void 0?[]:d,p=n.attributes,m=p===void 0?{}:p,g=n.styles,y=g===void 0?{}:g;if(e){var v=e.prefix,w=e.iconName,x=e.icon;return kg(Re({type:"icon"},e),function(){return ra("beforeDOMElementCreation",{iconDefinition:e,params:n}),$x({icons:{main:lw(x),mask:a?lw(a.icon):{found:!1,width:null,height:null,icon:{}}},prefix:v,iconName:w,transform:Re(Re({},bs),i),symbol:o,maskId:u,extra:{attributes:m,styles:y,classes:f}})})}},NW={mixout:function(){return{icon:CW(EW)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=LE,n.nodeCallback=SW,n}}},provides:function(e){e.i2svg=function(n){var r=n.node,i=r===void 0?Cn:r,s=n.callback,o=s===void 0?function(){}:s;return LE(i,o)},e.generateSvgReplacementMutation=function(n,r){var i=r.iconName,s=r.prefix,o=r.transform,l=r.symbol,a=r.mask,c=r.maskId,u=r.extra;return new Promise(function(d,f){Promise.all([aw(i,s),a.iconName?aw(a.iconName,a.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(p){var m=vg(p,2),g=m[0],y=m[1];d([n,$x({icons:{main:g,mask:y},prefix:s,iconName:i,transform:o,symbol:l,maskId:c,extra:u,watchable:!0})])}).catch(f)})},e.generateAbstractIcon=function(n){var r=n.children,i=n.attributes,s=n.main,o=n.transform,l=n.styles,a=wg(l);a.length>0&&(i.style=a);var c;return _x(o)&&(c=ul("generateAbstractTransformGrouping",{main:s,transform:o,containerWidth:s.width,iconWidth:s.width})),r.push(c||s.icon),{children:r,attributes:i}}}},TW={mixout:function(){return{layer:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.classes,s=i===void 0?[]:i;return kg({type:"layer"},function(){ra("beforeDOMElementCreation",{assembler:n,params:r});var o=[];return n(function(l){Array.isArray(l)?l.map(function(a){o=o.concat(a.abstract)}):o=o.concat(l.abstract)}),[{tag:"span",attributes:{class:["".concat(gt.cssPrefix,"-layers")].concat(is(s)).join(" ")},children:o}]})}}}},AW={mixout:function(){return{counter:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};r.title;var i=r.classes,s=i===void 0?[]:i,o=r.attributes,l=o===void 0?{}:o,a=r.styles,c=a===void 0?{}:a;return kg({type:"counter",content:n},function(){return ra("beforeDOMElementCreation",{content:n,params:r}),oW({content:n.toString(),extra:{attributes:l,styles:c,classes:["".concat(gt.cssPrefix,"-layers-counter")].concat(is(s))}})})}}}},MW={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.transform,s=i===void 0?bs:i,o=r.classes,l=o===void 0?[]:o,a=r.attributes,c=a===void 0?{}:a,u=r.styles,d=u===void 0?{}:u;return kg({type:"text",content:n},function(){return ra("beforeDOMElementCreation",{content:n,params:r}),IE({content:n,transform:Re(Re({},bs),s),extra:{attributes:c,styles:d,classes:["".concat(gt.cssPrefix,"-layers-text")].concat(is(l))}})})}}},provides:function(e){e.generateLayersText=function(n,r){var i=r.transform,s=r.extra,o=null,l=null;if(UR){var a=parseInt(getComputedStyle(n).fontSize,10),c=n.getBoundingClientRect();o=c.width/a,l=c.height/a}return Promise.resolve([n,IE({content:n.innerHTML,width:o,height:l,transform:i,extra:s,watchable:!0})])}}},zD=new RegExp('"',"ug"),_E=[1105920,1112319],zE=Re(Re(Re(Re({},{FontAwesome:{normal:"fas",400:"fas"}}),dV),g7),bV),dw=Object.keys(zE).reduce(function(t,e){return t[e.toLowerCase()]=zE[e],t},{}),IW=Object.keys(dw).reduce(function(t,e){var n=dw[e];return t[e]=n[900]||is(Object.entries(n))[0][1],t},{});function RW(t){var e=t.replace(zD,"");return kD(is(e)[0]||"")}function DW(t){var e=t.getPropertyValue("font-feature-settings").includes("ss01"),n=t.getPropertyValue("content"),r=n.replace(zD,""),i=r.codePointAt(0),s=i>=_E[0]&&i<=_E[1],o=r.length===2?r[0]===r[1]:!1;return s||o||e}function OW(t,e){var n=t.replace(/^['"]|['"]$/g,"").toLowerCase(),r=parseInt(e),i=isNaN(r)?"normal":r;return(dw[n]||{})[i]||IW[n]}function FE(t,e){var n="".concat(y7).concat(e.replace(":","-"));return new Promise(function(r,i){if(t.getAttribute(n)!==null)return r();var s=Lc(t.children),o=s.filter(function(M){return M.getAttribute(ew)===e})[0],l=al.getComputedStyle(t,e),a=l.getPropertyValue("font-family"),c=a.match(k7),u=l.getPropertyValue("font-weight"),d=l.getPropertyValue("content");if(o&&!c)return t.removeChild(o),r();if(c&&d!=="none"&&d!==""){var f=l.getPropertyValue("content"),p=OW(a,u),m=RW(f),g=c[0].startsWith("FontAwesome"),y=DW(l),v=Fx(p,m),w=v;if(g){var x=H7(m);x.iconName&&x.prefix&&(v=x.iconName,p=x.prefix)}if(v&&!y&&(!o||o.getAttribute(Ox)!==p||o.getAttribute(jx)!==w)){t.setAttribute(n,w),o&&t.removeChild(o);var E=bW(),k=E.extra;k.attributes[ew]=e,aw(v,p).then(function(M){var N=$x(Re(Re({},E),{},{icons:{main:M,mask:RD()},prefix:p,iconName:w,extra:k,watchable:!0})),z=Cn.createElementNS("http://www.w3.org/2000/svg","svg");e==="::before"?t.insertBefore(z,t.firstChild):t.appendChild(z),z.outerHTML=N.map(function(X){return of(X)}).join(` -`),t.removeAttribute(n),r()}).catch(i)}else r()}else r()})}function jW(t){return Promise.all([FE(t,"::before"),FE(t,"::after")])}function PW(t){return t.parentNode!==document.head&&!~w7.indexOf(t.tagName.toUpperCase())&&!t.getAttribute(ew)&&(!t.parentNode||t.parentNode.tagName!=="svg")}var LW=function(e){return!!e&&hD.some(function(n){return e.includes(n)})},_W=function(e){if(!e)return[];var n=new Set,r=e.split(/,(?![^()]*\))/).map(function(a){return a.trim()});r=r.flatMap(function(a){return a.includes("(")?a:a.split(",").map(function(c){return c.trim()})});var i=Ah(r),s;try{for(i.s();!(s=i.n()).done;){var o=s.value;if(LW(o)){var l=hD.reduce(function(a,c){return a.replace(c,"")},o);l!==""&&l!=="*"&&n.add(l)}}}catch(a){i.e(a)}finally{i.f()}return n};function $E(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(vo){var n;if(e)n=t;else if(gt.searchPseudoElementsFullScan)n=t.querySelectorAll("*");else{var r=new Set,i=Ah(document.styleSheets),s;try{for(i.s();!(s=i.n()).done;){var o=s.value;try{var l=Ah(o.cssRules),a;try{for(l.s();!(a=l.n()).done;){var c=a.value,u=_W(c.selectorText),d=Ah(u),f;try{for(d.s();!(f=d.n()).done;){var p=f.value;r.add(p)}}catch(g){d.e(g)}finally{d.f()}}}catch(g){l.e(g)}finally{l.f()}}catch(g){gt.searchPseudoElementsWarnings&&console.warn("Font Awesome: cannot parse stylesheet: ".concat(o.href," (").concat(g.message,`) -If it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin="anonymous" to the , enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.`))}}}catch(g){i.e(g)}finally{i.f()}if(!r.size)return;var m=Array.from(r).join(", ");try{n=t.querySelectorAll(m)}catch{}}return new Promise(function(g,y){var v=Lc(n).filter(PW).map(jW),w=Bx.begin("searchPseudoElements");LD(),Promise.all(v).then(function(){w(),uw(),g()}).catch(function(){w(),uw(),y()})})}}var zW={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=$E,n}}},provides:function(e){e.pseudoElements2svg=function(n){var r=n.node,i=r===void 0?Cn:r;gt.searchPseudoElements&&$E(i)}}},BE=!1,FW={mixout:function(){return{dom:{unwatch:function(){LD(),BE=!0}}}},hooks:function(){return{bootstrap:function(){jE(sw("mutationObserverCallbacks",{}))},noAuto:function(){gW()},watch:function(n){var r=n.observeMutationsRoot;BE?uw():jE(sw("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},UE=function(e){var n={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e.toLowerCase().split(" ").reduce(function(r,i){var s=i.toLowerCase().split("-"),o=s[0],l=s.slice(1).join("-");if(o&&l==="h")return r.flipX=!0,r;if(o&&l==="v")return r.flipY=!0,r;if(l=parseFloat(l),isNaN(l))return r;switch(o){case"grow":r.size=r.size+l;break;case"shrink":r.size=r.size-l;break;case"left":r.x=r.x-l;break;case"right":r.x=r.x+l;break;case"up":r.y=r.y-l;break;case"down":r.y=r.y+l;break;case"rotate":r.rotate=r.rotate+l;break}return r},n)},$W={mixout:function(){return{parse:{transform:function(n){return UE(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-transform");return i&&(n.transform=UE(i)),n}}},provides:function(e){e.generateAbstractTransformGrouping=function(n){var r=n.main,i=n.transform,s=n.containerWidth,o=n.iconWidth,l={transform:"translate(".concat(s/2," 256)")},a="translate(".concat(i.x*32,", ").concat(i.y*32,") "),c="scale(".concat(i.size/16*(i.flipX?-1:1),", ").concat(i.size/16*(i.flipY?-1:1),") "),u="rotate(".concat(i.rotate," 0 0)"),d={transform:"".concat(a," ").concat(c," ").concat(u)},f={transform:"translate(".concat(o/2*-1," -256)")},p={outer:l,inner:d,path:f};return{tag:"g",attributes:Re({},p.outer),children:[{tag:"g",attributes:Re({},p.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:Re(Re({},r.icon.attributes),p.path)}]}]}}}},nv={x:0,y:0,width:"100%",height:"100%"};function HE(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}function BW(t){return t.tag==="g"?t.children:[t]}var UW={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-mask"),s=i?xg(i.split(" ").map(function(o){return o.trim()})):RD();return s.prefix||(s.prefix=cl()),n.mask=s,n.maskId=r.getAttribute("data-fa-mask-id"),n}}},provides:function(e){e.generateAbstractMask=function(n){var r=n.children,i=n.attributes,s=n.main,o=n.mask,l=n.maskId,a=n.transform,c=s.width,u=s.icon,d=o.width,f=o.icon,p=O7({transform:a,containerWidth:d,iconWidth:c}),m={tag:"rect",attributes:Re(Re({},nv),{},{fill:"white"})},g=u.children?{children:u.children.map(HE)}:{},y={tag:"g",attributes:Re({},p.inner),children:[HE(Re({tag:u.tag,attributes:Re(Re({},u.attributes),p.path)},g))]},v={tag:"g",attributes:Re({},p.outer),children:[y]},w="mask-".concat(l||SE()),x="clip-".concat(l||SE()),E={tag:"mask",attributes:Re(Re({},nv),{},{id:w,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[m,v]},k={tag:"defs",children:[{tag:"clipPath",attributes:{id:x},children:BW(f)},E]};return r.push(k,{tag:"rect",attributes:Re({fill:"currentColor","clip-path":"url(#".concat(x,")"),mask:"url(#".concat(w,")")},nv)}),{children:r,attributes:i}}}},HW={provides:function(e){var n=!1;al.matchMedia&&(n=al.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var r=[],i={fill:"currentColor"},s={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};r.push({tag:"path",attributes:Re(Re({},i),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var o=Re(Re({},s),{},{attributeName:"opacity"}),l={tag:"circle",attributes:Re(Re({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||l.children.push({tag:"animate",attributes:Re(Re({},s),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Re(Re({},o),{},{values:"1;0;1;1;0;1;"})}),r.push(l),r.push({tag:"path",attributes:Re(Re({},i),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:n?[]:[{tag:"animate",attributes:Re(Re({},o),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:Re(Re({},i),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Re(Re({},o),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},VW={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-symbol"),s=i===null?!1:i===""?!0:i;return n.symbol=s,n}}}},WW=[L7,NW,TW,AW,MW,zW,FW,$W,UW,HW,VW];Q7(WW,{mixoutsTo:vi});vi.noAuto;var Ed=vi.config;vi.library;vi.dom;var FD=vi.parse;vi.findIconDefinition;vi.toHtml;var KW=vi.icon;vi.layer;vi.text;vi.counter;function YW(t){return t=t-0,t===t}function $D(t){return YW(t)?t:(t=t.replace(/[_-]+(.)?/g,(e,n)=>n?n.toUpperCase():""),t.charAt(0).toLowerCase()+t.slice(1))}function qW(t){return t.charAt(0).toUpperCase()+t.slice(1)}var ba=new Map,JW=1e3;function GW(t){if(ba.has(t))return ba.get(t);const e={};let n=0;const r=t.length;for(;n0){const a=o.slice(0,l).trim(),c=o.slice(l+1).trim();if(a&&c){const u=$D(a);e[u.startsWith("webkit")?qW(u):u]=c}}}n=s+1}if(ba.size===JW){const i=ba.keys().next().value;i&&ba.delete(i)}return ba.set(t,e),e}function BD(t,e,n={}){if(typeof e=="string")return e;const r=(e.children||[]).map(u=>BD(t,u)),i=e.attributes||{},s={};for(const[u,d]of Object.entries(i))switch(!0){case u==="class":{s.className=d;break}case u==="style":{s.style=GW(String(d));break}case u.startsWith("aria-"):case u.startsWith("data-"):{s[u.toLowerCase()]=d;break}default:s[$D(u)]=d}const{style:o,role:l,"aria-label":a,...c}=n;return o&&(s.style=s.style?{...s.style,...o}:o),l&&(s.role=l),a&&(s["aria-label"]=a,s["aria-hidden"]="false"),t(e.tag,{...c,...s},...r)}var XW=BD.bind(null,B.createElement),VE=(t,e)=>{const n=b.useId();return t||(e?n:void 0)},QW=class{constructor(t="react-fontawesome"){this.enabled=!1;let e=!1;try{e=typeof process<"u"&&!1}catch{}this.scope=t,this.enabled=e}log(...t){this.enabled&&console.log(`[${this.scope}]`,...t)}warn(...t){this.enabled&&console.warn(`[${this.scope}]`,...t)}error(...t){this.enabled&&console.error(`[${this.scope}]`,...t)}},ZW="searchPseudoElementsFullScan"in Ed?"7.0.0":"6.0.0",e9=Number.parseInt(ZW)>=7,Hu="fa",Ls={beat:"fa-beat",fade:"fa-fade",beatFade:"fa-beat-fade",bounce:"fa-bounce",shake:"fa-shake",spin:"fa-spin",spinPulse:"fa-spin-pulse",spinReverse:"fa-spin-reverse",pulse:"fa-pulse"},t9={left:"fa-pull-left",right:"fa-pull-right"},n9={90:"fa-rotate-90",180:"fa-rotate-180",270:"fa-rotate-270"},r9={"2xs":"fa-2xs",xs:"fa-xs",sm:"fa-sm",lg:"fa-lg",xl:"fa-xl","2xl":"fa-2xl","1x":"fa-1x","2x":"fa-2x","3x":"fa-3x","4x":"fa-4x","5x":"fa-5x","6x":"fa-6x","7x":"fa-7x","8x":"fa-8x","9x":"fa-9x","10x":"fa-10x"},_s={border:"fa-border",fixedWidth:"fa-fw",flip:"fa-flip",flipHorizontal:"fa-flip-horizontal",flipVertical:"fa-flip-vertical",inverse:"fa-inverse",rotateBy:"fa-rotate-by",swapOpacity:"fa-swap-opacity",widthAuto:"fa-width-auto"};function i9(t){const e=Ed.cssPrefix||Ed.familyPrefix||Hu;return e===Hu?t:t.replace(new RegExp(String.raw`(?<=^|\s)${Hu}-`,"g"),`${e}-`)}function s9(t){const{beat:e,fade:n,beatFade:r,bounce:i,shake:s,spin:o,spinPulse:l,spinReverse:a,pulse:c,fixedWidth:u,inverse:d,border:f,flip:p,size:m,rotation:g,pull:y,swapOpacity:v,rotateBy:w,widthAuto:x,className:E}=t,k=[];return E&&k.push(...E.split(" ")),e&&k.push(Ls.beat),n&&k.push(Ls.fade),r&&k.push(Ls.beatFade),i&&k.push(Ls.bounce),s&&k.push(Ls.shake),o&&k.push(Ls.spin),a&&k.push(Ls.spinReverse),l&&k.push(Ls.spinPulse),c&&k.push(Ls.pulse),u&&k.push(_s.fixedWidth),d&&k.push(_s.inverse),f&&k.push(_s.border),p===!0&&k.push(_s.flip),(p==="horizontal"||p==="both")&&k.push(_s.flipHorizontal),(p==="vertical"||p==="both")&&k.push(_s.flipVertical),m!=null&&k.push(r9[m]),g!=null&&g!==0&&k.push(n9[g]),y!=null&&k.push(t9[y]),v&&k.push(_s.swapOpacity),e9?(w&&k.push(_s.rotateBy),x&&k.push(_s.widthAuto),(Ed.cssPrefix||Ed.familyPrefix||Hu)===Hu?k:k.map(i9)):k}var o9=t=>typeof t=="object"&&"icon"in t&&!!t.icon;function WE(t){if(t)return o9(t)?t:FD.icon(t)}function l9(t){return Object.keys(t)}var KE=new QW("FontAwesomeIcon"),UD={border:!1,className:"",mask:void 0,maskId:void 0,fixedWidth:!1,inverse:!1,flip:!1,icon:void 0,listItem:!1,pull:void 0,pulse:!1,rotation:void 0,rotateBy:!1,size:void 0,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:void 0,transform:void 0,swapOpacity:!1,widthAuto:!1},a9=new Set(Object.keys(UD)),Xs=B.forwardRef((t,e)=>{const n={...UD,...t},{icon:r,mask:i,symbol:s,title:o,titleId:l,maskId:a,transform:c}=n,u=VE(a,!!i),d=VE(l,!!o),f=WE(r);if(!f)return KE.error("Icon lookup is undefined",r),null;const p=s9(n),m=typeof c=="string"?FD.transform(c):c,g=WE(i),y=KW(f,{...p.length>0&&{classes:p},...m&&{transform:m},...g&&{mask:g},symbol:s,title:o,titleId:d,maskId:u});if(!y)return KE.error("Could not find icon",f),null;const{abstract:v}=y,w={ref:e};for(const x of l9(n))a9.has(x)||(w[x]=n[x]);return XW(v[0],w)});Xs.displayName="FontAwesomeIcon";/*! - * Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2025 Fonticons, Inc. - */var lf={prefix:"fas",iconName:"palette",icon:[512,512,[127912],"f53f","M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},c9={prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M320 16a104 104 0 1 1 0 208 104 104 0 1 1 0-208zM96 88a72 72 0 1 1 0 144 72 72 0 1 1 0-144zM0 416c0-70.7 57.3-128 128-128 12.8 0 25.2 1.9 36.9 5.4-32.9 36.8-52.9 85.4-52.9 138.6l0 16c0 11.4 2.4 22.2 6.7 32L32 480c-17.7 0-32-14.3-32-32l0-32zm521.3 64c4.3-9.8 6.7-20.6 6.7-32l0-16c0-53.2-20-101.8-52.9-138.6 11.7-3.5 24.1-5.4 36.9-5.4 70.7 0 128 57.3 128 128l0 32c0 17.7-14.3 32-32 32l-86.7 0zM472 160a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 432c0-88.4 71.6-160 160-160s160 71.6 160 160l0 16c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-16z"]},u9={prefix:"fas",iconName:"folder",icon:[512,512,[128193,128447,61716,"folder-blank"],"f07b","M64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z"]},d9={prefix:"fas",iconName:"tag",icon:[512,512,[127991],"f02b","M32.5 96l0 149.5c0 17 6.7 33.3 18.7 45.3l192 192c25 25 65.5 25 90.5 0L483.2 333.3c25-25 25-65.5 0-90.5l-192-192C279.2 38.7 263 32 246 32L96.5 32c-35.3 0-64 28.7-64 64zm112 16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]};function Hx({anchorRef:t,anchorPoint:e,itemsCount:n=4,onClose:r,onDelete:i,onMoveToCollection:s,onAddLabel:o,onUncheckAll:l,onCheckAll:a,onSetWidth:c}){const u=b.useRef(null),[d,f]=b.useState({position:"fixed",visibility:"hidden",left:0,top:0,zIndex:1e4});b.useLayoutEffect(()=>{const m=t==null?void 0:t.current,g=u.current;if(!g)return;const y=8,v=()=>{g.style.width="auto",g.style.height="auto";const x=Math.ceil(g.offsetWidth),E=Math.ceil(g.offsetHeight);return{w:x,h:E}};if(!m){const{w:x,h:E}=v();let k,M;e?(k=Math.round(e.x-x),M=Math.round(e.y-E)):(k=Math.round(window.innerWidth-x-y),M=Math.round(window.innerHeight-E-y)),kwindow.innerWidth-y&&(k=Math.max(y,window.innerWidth-x-y)),Mwindow.innerHeight-y&&(M=Math.max(y,window.innerHeight-E-y)),f({position:"fixed",left:k,top:M,visibility:"visible",zIndex:1e4,width:`${x}px`,height:`${E}px`});return}const w=m.getBoundingClientRect();requestAnimationFrame(()=>{const{w:x,h:E}=v();let k=Math.round(w.right-x),M=Math.round(w.bottom-E);kwindow.innerWidth-y&&(k=Math.max(y,window.innerWidth-x-y)),Mwindow.innerHeight-y&&(M=Math.max(y,window.innerHeight-E-y)),f({position:"fixed",left:k,top:M,visibility:"visible",zIndex:1e4,width:`${x}px`,height:`${E}px`})})},[t,e,n]),b.useLayoutEffect(()=>{function m(g){u.current&&(u.current.contains(g.target)||r())}return document.addEventListener("pointerdown",m),document.addEventListener("mousedown",m),()=>{document.removeEventListener("pointerdown",m),document.removeEventListener("mousedown",m)}},[r]);const p=h.jsxs("div",{ref:u,className:"more-menu",style:d,role:"dialog","aria-label":"More options",children:[h.jsx("button",{className:"more-item",onClick:()=>{i(),r()},children:"Delete"}),s&&h.jsx("button",{className:"more-item",onClick:()=>{s(),r()},children:"Add to collection…"}),h.jsx("button",{className:"more-item",onClick:()=>{o(),r()},children:"Add label"}),l&&h.jsx("button",{className:"more-item",onClick:()=>{l(),r()},children:"Uncheck all"}),a&&h.jsx("button",{className:"more-item",onClick:()=>{a(),r()},children:"Check all"}),h.jsx("hr",{className:"more-sep"}),h.jsxs("div",{style:{display:"grid",gap:6},children:[h.jsx("button",{className:"more-item",onClick:()=>{c(1),r()},children:"Card width: Regular"}),h.jsx("button",{className:"more-item",onClick:()=>{c(2),r()},children:"Card width: Double"}),h.jsx("button",{className:"more-item",onClick:()=>{c(3),r()},children:"Card width: Triple"})]})]});return zn.createPortal(p,document.body)}const si=()=>new Map,fw=t=>{const e=si();return t.forEach((n,r)=>{e.set(r,n)}),e},as=(t,e,n)=>{let r=t.get(e);return r===void 0&&t.set(e,r=n()),r},f9=(t,e)=>{const n=[];for(const[r,i]of t)n.push(e(i,r));return n},h9=(t,e)=>{for(const[n,r]of t)if(e(r,n))return!0;return!1},uo=()=>new Set,rv=t=>t[t.length-1],p9=(t,e)=>{for(let n=0;n{for(let n=0;n{for(let n=0;n{const n=new Array(t);for(let r=0;r{this.off(e,r),n(...i)};this.on(e,r)}off(e,n){const r=this._observers.get(e);r!==void 0&&(r.delete(n),r.size===0&&this._observers.delete(e))}emit(e,n){return fo((this._observers.get(e)||si()).values()).forEach(r=>r(...n))}destroy(){this._observers=si()}}class VD{constructor(){this._observers=si()}on(e,n){as(this._observers,e,uo).add(n)}once(e,n){const r=(...i)=>{this.off(e,r),n(...i)};this.on(e,r)}off(e,n){const r=this._observers.get(e);r!==void 0&&(r.delete(n),r.size===0&&this._observers.delete(e))}emit(e,n){return fo((this._observers.get(e)||si()).values()).forEach(r=>r(...n))}destroy(){this._observers=si()}}const zi=Math.floor,Rh=Math.abs,ia=(t,e)=>tt>e?t:e,g9=Math.pow,WD=t=>t!==0?t<0:1/t<0,YE=1,qE=2,iv=4,sv=8,Nd=32,to=64,Br=128,y9=1<<29,Sg=31,hw=63,Hl=127,v9=2147483647,um=Number.MAX_SAFE_INTEGER,JE=Number.MIN_SAFE_INTEGER,w9=Number.isInteger||(t=>typeof t=="number"&&isFinite(t)&&zi(t)===t),KD=String.fromCharCode,b9=t=>t.toLowerCase(),x9=/^\s*/g,k9=t=>t.replace(x9,""),S9=/([A-Z])/g,GE=(t,e)=>k9(t.replace(S9,n=>`${e}${b9(n)}`)),C9=t=>{const e=unescape(encodeURIComponent(t)),n=e.length,r=new Uint8Array(n);for(let i=0;iTd.encode(t),N9=Td?E9:C9;let Vu=typeof TextDecoder>"u"?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Vu&&Vu.decode(new Uint8Array).length===1&&(Vu=null);const T9=(t,e)=>m9(e,()=>t).join("");class af{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const gr=()=>new af,A9=t=>{const e=gr();return t(e),Nn(e)},Kx=t=>{let e=t.cpos;for(let n=0;n{const e=new Uint8Array(Kx(t));let n=0;for(let r=0;r{const n=t.cbuf.length;n-t.cpos{const n=t.cbuf.length;t.cpos===n&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(n*2),t.cpos=0),t.cbuf[t.cpos++]=e},pw=rr,vt=(t,e)=>{for(;e>Hl;)rr(t,Br|Hl&e),e=zi(e/128);rr(t,Hl&e)},Yx=(t,e)=>{const n=WD(e);for(n&&(e=-e),rr(t,(e>hw?Br:0)|(n?to:0)|hw&e),e=zi(e/64);e>0;)rr(t,(e>Hl?Br:0)|Hl&e),e=zi(e/128)},mw=new Uint8Array(3e4),I9=mw.length/3,R9=(t,e)=>{if(e.length{const n=unescape(encodeURIComponent(e)),r=n.length;vt(t,r);for(let i=0;i{const n=t.cbuf.length,r=t.cpos,i=ia(n-r,e.length),s=e.length-i;t.cbuf.set(e.subarray(0,i),r),t.cpos+=i,s>0&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(ho(n*2,s)),t.cbuf.set(e.subarray(i)),t.cpos=s)},Ln=(t,e)=>{vt(t,e.byteLength),Cg(t,e)},qx=(t,e)=>{M9(t,e);const n=new DataView(t.cbuf.buffer,t.cpos,e);return t.cpos+=e,n},O9=(t,e)=>qx(t,4).setFloat32(0,e,!1),j9=(t,e)=>qx(t,8).setFloat64(0,e,!1),P9=(t,e)=>qx(t,8).setBigInt64(0,e,!1),XE=new DataView(new ArrayBuffer(4)),L9=t=>(XE.setFloat32(0,t),XE.getFloat32(0)===t),Cc=(t,e)=>{switch(typeof e){case"string":rr(t,119),Vl(t,e);break;case"number":w9(e)&&Rh(e)<=v9?(rr(t,125),Yx(t,e)):L9(e)?(rr(t,124),O9(t,e)):(rr(t,123),j9(t,e));break;case"bigint":rr(t,122),P9(t,e);break;case"object":if(e===null)rr(t,126);else if(Sc(e)){rr(t,117),vt(t,e.length);for(let n=0;n0&&vt(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const ZE=t=>{t.count>0&&(Yx(t.encoder,t.count===1?t.s:-t.s),t.count>1&&vt(t.encoder,t.count-2))};class Dh{constructor(){this.encoder=new af,this.s=0,this.count=0}write(e){this.s===e?this.count++:(ZE(this),this.count=1,this.s=e)}toUint8Array(){return ZE(this),Nn(this.encoder)}}const eN=t=>{if(t.count>0){const e=t.diff*2+(t.count===1?0:1);Yx(t.encoder,e),t.count>1&&vt(t.encoder,t.count-2)}};class ov{constructor(){this.encoder=new af,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(eN(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return eN(this),Nn(this.encoder)}}class _9{constructor(){this.sarr=[],this.s="",this.lensE=new Dh}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new af;return this.sarr.push(this.s),this.s="",Vl(e,this.sarr.join("")),Cg(e,this.lensE.toUint8Array()),Nn(e)}}const Rs=t=>new Error(t),Oi=()=>{throw Rs("Method unimplemented")},Dr=()=>{throw Rs("Unexpected case")},YD=Rs("Unexpected end of array"),qD=Rs("Integer out of Range");class Eg{constructor(e){this.arr=e,this.pos=0}}const xl=t=>new Eg(t),z9=t=>t.pos!==t.arr.length,F9=(t,e)=>{const n=new Uint8Array(t.arr.buffer,t.pos+t.arr.byteOffset,e);return t.pos+=e,n},Tr=t=>F9(t,Lt(t)),Ec=t=>t.arr[t.pos++],Lt=t=>{let e=0,n=1;const r=t.arr.length;for(;t.posum)throw qD}throw YD},Jx=t=>{let e=t.arr[t.pos++],n=e&hw,r=64;const i=(e&to)>0?-1:1;if(!(e&Br))return i*n;const s=t.arr.length;for(;t.posum)throw qD}throw YD},$9=t=>{let e=Lt(t);if(e===0)return"";{let n=String.fromCodePoint(Ec(t));if(--e<100)for(;e--;)n+=String.fromCodePoint(Ec(t));else for(;e>0;){const r=e<1e4?e:1e4,i=t.arr.subarray(t.pos,t.pos+r);t.pos+=r,n+=String.fromCodePoint.apply(null,i),e-=r}return decodeURIComponent(escape(n))}},B9=t=>Vu.decode(Tr(t)),nl=Vu?B9:$9,Gx=(t,e)=>{const n=new DataView(t.arr.buffer,t.arr.byteOffset+t.pos,e);return t.pos+=e,n},U9=t=>Gx(t,4).getFloat32(0,!1),H9=t=>Gx(t,8).getFloat64(0,!1),V9=t=>Gx(t,8).getBigInt64(0,!1),W9=[t=>{},t=>null,Jx,U9,H9,V9,t=>!1,t=>!0,nl,t=>{const e=Lt(t),n={};for(let r=0;r{const e=Lt(t),n=[];for(let r=0;rW9[127-Ec(t)](t);class tN extends Eg{constructor(e,n){super(e),this.reader=n,this.s=null,this.count=0}read(){return this.count===0&&(this.s=this.reader(this),z9(this)?this.count=Lt(this)+1:this.count=-1),this.count--,this.s}}class Oh extends Eg{constructor(e){super(e),this.s=0,this.count=0}read(){if(this.count===0){this.s=Jx(this);const e=WD(this.s);this.count=1,e&&(this.s=-this.s,this.count=Lt(this)+2)}return this.count--,this.s}}class lv extends Eg{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(this.count===0){const e=Jx(this),n=e&1;this.diff=zi(e/2),this.count=1,n&&(this.count=Lt(this)+2)}return this.s+=this.diff,this.count--,this.s}}class K9{constructor(e){this.decoder=new Oh(e),this.str=nl(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),n=this.str.slice(this.spos,e);return this.spos=e,n}}const Y9=crypto.getRandomValues.bind(crypto),q9=Math.random,JD=()=>Y9(new Uint32Array(1))[0],J9=t=>t[zi(q9()*t.length)],G9="10000000-1000-4000-8000"+-1e11,X9=()=>G9.replace(/[018]/g,t=>(t^JD()&15>>t/4).toString(16)),dl=Date.now,nN=t=>new Promise(t);Promise.all.bind(Promise);const rN=t=>t===void 0?null:t;class Q9{constructor(){this.map=new Map}setItem(e,n){this.map.set(e,n)}getItem(e){return this.map.get(e)}}let GD=new Q9,Xx=!0;try{typeof localStorage<"u"&&localStorage&&(GD=localStorage,Xx=!1)}catch{}const XD=GD,Z9=t=>Xx||addEventListener("storage",t),eK=t=>Xx||removeEventListener("storage",t),Md=Symbol("Equality"),QD=(t,e)=>{var n;return t===e||!!((n=t==null?void 0:t[Md])!=null&&n.call(t,e))||!1},tK=t=>typeof t=="object",nK=Object.assign,ZD=Object.keys,rK=(t,e)=>{for(const n in t)e(t[n],n)},iK=(t,e)=>{const n=[];for(const r in t)n.push(e(t[r],r));return n},dm=t=>ZD(t).length,sK=t=>{for(const e in t)return!1;return!0},_c=(t,e)=>{for(const n in t)if(!e(t[n],n))return!1;return!0},Qx=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),oK=(t,e)=>t===e||dm(t)===dm(e)&&_c(t,(n,r)=>(n!==void 0||Qx(e,r))&&QD(e[r],n)),lK=Object.freeze,eO=t=>{for(const e in t){const n=t[e];(typeof n=="object"||typeof n=="function")&&eO(t[e])}return lK(t)},Zx=(t,e,n=0)=>{try{for(;nt,Qa=(t,e)=>{if(t===e)return!0;if(t==null||e==null||t.constructor!==e.constructor&&(t.constructor||Object)!==(e.constructor||Object))return!1;if(t[Md]!=null)return t[Md](e);switch(t.constructor){case ArrayBuffer:t=new Uint8Array(t),e=new Uint8Array(e);case Uint8Array:{if(t.byteLength!==e.byteLength)return!1;for(let n=0;ne.includes(t);var tO={};const fl=typeof process<"u"&&process.release&&/node|io\.js/.test(process.release.name)&&Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]",e1=typeof window<"u"&&typeof document<"u"&&!fl;let hs;const uK=()=>{if(hs===void 0)if(fl){hs=si();const t=process.argv;let e=null;for(let n=0;n{if(t.length!==0){const[e,n]=t.split("=");hs.set(`--${GE(e,"-")}`,n),hs.set(`-${GE(e,"-")}`,n)}})):hs=si();return hs},gw=t=>uK().has(t),fm=t=>rN(fl?tO[t.toUpperCase().replaceAll("-","_")]:XD.getItem(t)),nO=t=>gw("--"+t)||fm(t)!==null,dK=nO("production"),fK=fl&&cK(tO.FORCE_COLOR,["true","1","2"]),hK=fK||!gw("--no-colors")&&!nO("no-color")&&(!fl||process.stdout.isTTY)&&(!fl||gw("--color")||fm("COLORTERM")!==null||(fm("TERM")||"").includes("color")),rO=t=>new Uint8Array(t),pK=(t,e,n)=>new Uint8Array(t,e,n),mK=t=>new Uint8Array(t),gK=t=>{let e="";for(let n=0;nBuffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64"),vK=t=>{const e=atob(t),n=rO(e.length);for(let r=0;r{const e=Buffer.from(t,"base64");return pK(e.buffer,e.byteOffset,e.byteLength)},iO=e1?gK:yK,bK=e1?vK:wK,xK=t=>{const e=rO(t.byteLength);return e.set(t),e},kK=t=>A9(e=>Cc(e,t));class SK{constructor(e,n){this.left=e,this.right=n}}const zs=(t,e)=>new SK(t,e),iN=t=>t.next()>=.5,av=(t,e,n)=>zi(t.next()*(n+1-e)+e),sO=(t,e,n)=>zi(t.next()*(n+1-e)+e),t1=(t,e,n)=>sO(t,e,n),CK=t=>KD(t1(t,97,122)),EK=(t,e=0,n=20)=>{const r=t1(t,e,n);let i="";for(let s=0;se[t1(t,0,e.length-1)],NK=Symbol("0schema");class TK{constructor(){this._rerrs=[]}extend(e,n,r,i=null){this._rerrs.push({path:e,expected:n,has:r,message:i})}toString(){const e=[];for(let n=this._rerrs.length-1;n>0;n--){const r=this._rerrs[n];e.push(T9(" ",(this._rerrs.length-n)*2)+`${r.path!=null?`[${r.path}] `:""}${r.has} doesn't match ${r.expected}. ${r.message}`)}return e.join(` -`)}}const yw=(t,e)=>t===e?!0:t==null||e==null||t.constructor!==e.constructor?!1:t[Md]?QD(t,e):Sc(t)?Vx(t,n=>Wx(e,r=>yw(n,r))):tK(t)?_c(t,(n,r)=>yw(n,e[r])):!1;class jr{extends(e){let[n,r]=[this.shape,e.shape];return this.constructor._dilutes&&([r,n]=[n,r]),yw(n,r)}equals(e){return this.constructor===e.constructor&&Qa(this.shape,e.shape)}[NK](){return!0}[Md](e){return this.equals(e)}validate(e){return this.check(e)}check(e,n){Oi()}get nullable(){return zc(this,Ig)}get optional(){return new aO(this)}cast(e){return sN(e,this),e}expect(e){return sN(e,this),e}}bf(jr,"_dilutes",!1);class n1 extends jr{constructor(e,n){super(),this.shape=e,this._c=n}check(e,n=void 0){const r=(e==null?void 0:e.constructor)===this.shape&&(this._c==null||this._c(e));return!r&&(n==null||n.extend(null,this.shape.name,e==null?void 0:e.constructor.name,(e==null?void 0:e.constructor)!==this.shape?"Constructor match failed":"Check failed")),r}}const Jn=(t,e=null)=>new n1(t,e);Jn(n1);class r1 extends jr{constructor(e){super(),this.shape=e}check(e,n){const r=this.shape(e);return!r&&(n==null||n.extend(null,"custom prop",e==null?void 0:e.constructor.name,"failed to check custom prop")),r}}const fr=t=>new r1(t);Jn(r1);class Ng extends jr{constructor(e){super(),this.shape=e}check(e,n){const r=this.shape.some(i=>i===e);return!r&&(n==null||n.extend(null,this.shape.join(" | "),e.toString())),r}}const Tg=(...t)=>new Ng(t),oO=Jn(Ng),AK=RegExp.escape||(t=>t.replace(/[().|&,$^[\]]/g,e=>"\\"+e)),lO=t=>{if(Nc.check(t))return[AK(t)];if(oO.check(t))return t.shape.map(e=>e+"");if(yO.check(t))return["[+-]?\\d+.?\\d*"];if(vO.check(t))return[".*"];if(pm.check(t))return t.shape.map(lO).flat(1);Dr()};class MK extends jr{constructor(e){super(),this.shape=e,this._r=new RegExp("^"+e.map(lO).map(n=>`(${n.join("|")})`).join("")+"$")}check(e,n){const r=this._r.exec(e)!=null;return!r&&(n==null||n.extend(null,this._r.toString(),e.toString(),"String doesn't match string template.")),r}}Jn(MK);const IK=Symbol("optional");class aO extends jr{constructor(e){super(),this.shape=e}check(e,n){const r=e===void 0||this.shape.check(e);return!r&&(n==null||n.extend(null,"undefined (optional)","()")),r}get[IK](){return!0}}const RK=Jn(aO);class DK extends jr{check(e,n){return n==null||n.extend(null,"never",typeof e),!1}}Jn(DK);const Nm=class Nm extends jr{constructor(e,n=!1){super(),this.shape=e,this._isPartial=n}get partial(){return new Nm(this.shape,!0)}check(e,n){return e==null?(n==null||n.extend(null,"object","null"),!1):_c(this.shape,(r,i)=>{const s=this._isPartial&&!Qx(e,i)||r.check(e[i],n);return!s&&(n==null||n.extend(i.toString(),r.toString(),typeof e[i],"Object property does not match")),s})}};bf(Nm,"_dilutes",!0);let hm=Nm;const OK=t=>new hm(t),jK=Jn(hm),PK=fr(t=>t!=null&&(t.constructor===Object||t.constructor==null));class cO extends jr{constructor(e,n){super(),this.shape={keys:e,values:n}}check(e,n){return e!=null&&_c(e,(r,i)=>{const s=this.shape.keys.check(i,n);return!s&&(n==null||n.extend(i+"","Record",typeof e,s?"Key doesn't match schema":"Value doesn't match value")),s&&this.shape.values.check(r,n)})}}const uO=(t,e)=>new cO(t,e),LK=Jn(cO);class dO extends jr{constructor(e){super(),this.shape=e}check(e,n){return e!=null&&_c(this.shape,(r,i)=>{const s=r.check(e[i],n);return!s&&(n==null||n.extend(i.toString(),"Tuple",typeof r)),s})}}const _K=(...t)=>new dO(t);Jn(dO);class fO extends jr{constructor(e){super(),this.shape=e.length===1?e[0]:new Ag(e)}check(e,n){const r=Sc(e)&&Vx(e,i=>this.shape.check(i));return!r&&(n==null||n.extend(null,"Array","")),r}}const hO=(...t)=>new fO(t),zK=Jn(fO),FK=fr(t=>Sc(t));class pO extends jr{constructor(e,n){super(),this.shape=e,this._c=n}check(e,n){const r=e instanceof this.shape&&(this._c==null||this._c(e));return!r&&(n==null||n.extend(null,this.shape.name,e==null?void 0:e.constructor.name)),r}}const $K=(t,e=null)=>new pO(t,e);Jn(pO);const BK=$K(jr);class UK extends jr{constructor(e){super(),this.len=e.length-1,this.args=_K(...e.slice(-1)),this.res=e[this.len]}check(e,n){const r=e.constructor===Function&&e.length<=this.len;return!r&&(n==null||n.extend(null,"function",typeof e)),r}}const HK=Jn(UK),VK=fr(t=>typeof t=="function");class WK extends jr{constructor(e){super(),this.shape=e}check(e,n){const r=Vx(this.shape,i=>i.check(e,n));return!r&&(n==null||n.extend(null,"Intersectinon",typeof e)),r}}Jn(WK,t=>t.shape.length>0);class Ag extends jr{constructor(e){super(),this.shape=e}check(e,n){const r=Wx(this.shape,i=>i.check(e,n));return n==null||n.extend(null,"Union",typeof e),r}}bf(Ag,"_dilutes",!0);const zc=(...t)=>t.findIndex(e=>pm.check(e))>=0?zc(...t.map(e=>Id(e)).map(e=>pm.check(e)?e.shape:[e]).flat(1)):t.length===1?t[0]:new Ag(t),pm=Jn(Ag),mO=()=>!0,mm=fr(mO),KK=Jn(r1,t=>t.shape===mO),i1=fr(t=>typeof t=="bigint"),YK=fr(t=>t===i1),gO=fr(t=>typeof t=="symbol");fr(t=>t===gO);const Za=fr(t=>typeof t=="number"),yO=fr(t=>t===Za),Nc=fr(t=>typeof t=="string"),vO=fr(t=>t===Nc),Mg=fr(t=>typeof t=="boolean"),qK=fr(t=>t===Mg),wO=Tg(void 0);Jn(Ng,t=>t.shape.length===1&&t.shape[0]===void 0);Tg(void 0);const Ig=Tg(null),JK=Jn(Ng,t=>t.shape.length===1&&t.shape[0]===null);Jn(Uint8Array);Jn(n1,t=>t.shape===Uint8Array);const GK=zc(Za,Nc,Ig,wO,i1,Mg,gO);(()=>{const t=hO(mm),e=uO(Nc,mm),n=zc(Za,Nc,Ig,Mg,t,e);return t.shape=n,e.shape.values=n,n})();const Id=t=>{if(BK.check(t))return t;if(PK.check(t)){const e={};for(const n in t)e[n]=Id(t[n]);return OK(e)}else{if(FK.check(t))return zc(...t.map(Id));if(GK.check(t))return Tg(t);if(VK.check(t))return Jn(t)}Dr()},sN=dK?()=>{}:(t,e)=>{const n=new TK;if(!e.check(t,n))throw Rs(`Expected value to be of type ${e.constructor.name}. -${n.toString()}`)};class XK{constructor(e){this.patterns=[],this.$state=e}if(e,n){return this.patterns.push({if:Id(e),h:n}),this}else(e){return this.if(mm,e)}done(){return(e,n)=>{for(let r=0;rnew XK(t),bO=QK(mm).if(yO,(t,e)=>av(e,JE,um)).if(vO,(t,e)=>EK(e)).if(qK,(t,e)=>iN(e)).if(YK,(t,e)=>BigInt(av(e,JE,um))).if(pm,(t,e)=>xa(e,cv(e,t.shape))).if(jK,(t,e)=>{const n={};for(const r in t.shape){let i=t.shape[r];if(RK.check(i)){if(iN(e))continue;i=i.shape}n[r]=bO(i,e)}return n}).if(zK,(t,e)=>{const n=[],r=sO(e,0,42);for(let i=0;icv(e,t.shape)).if(JK,(t,e)=>null).if(HK,(t,e)=>{const n=xa(e,t.res);return()=>n}).if(KK,(t,e)=>xa(e,cv(e,[Za,Nc,Ig,wO,i1,Mg,hO(Za),uO(zc("a","b","c"),Za)]))).if(LK,(t,e)=>{const n={},r=av(e,0,3);for(let i=0;ibO(Id(e),t),cf=typeof document<"u"?document:{};fr(t=>t.nodeType===rY);typeof DOMParser<"u"&&new DOMParser;fr(t=>t.nodeType===eY);fr(t=>t.nodeType===tY);const ZK=t=>f9(t,(e,n)=>`${n}:${e};`).join(""),eY=cf.ELEMENT_NODE,tY=cf.TEXT_NODE,nY=cf.DOCUMENT_NODE,rY=cf.DOCUMENT_FRAGMENT_NODE;fr(t=>t.nodeType===nY);const iY=t=>class{constructor(n){this._=n}destroy(){t(this._)}},sY=iY(clearTimeout),xO=(t,e)=>new sY(setTimeout(e,t)),wo=Symbol,kO=wo(),SO=wo(),oY=wo(),lY=wo(),aY=wo(),CO=wo(),cY=wo(),s1=wo(),uY=wo(),dY=t=>{var i;t.length===1&&((i=t[0])==null?void 0:i.constructor)===Function&&(t=t[0]());const e=[],n=[];let r=0;for(;r0&&n.push(e.join(""));r{var o;t.length===1&&((o=t[0])==null?void 0:o.constructor)===Function&&(t=t[0]());const e=[],n=[],r=si();let i=[],s=0;for(;s0||c.length>0?(e.push("%c"+l),n.push(c)):e.push(l)}else break}}for(s>0&&(i=n,i.unshift(e.join("")));s{console.log(...EO(t)),TO.forEach(e=>e.print(t))},NO=(...t)=>{console.warn(...EO(t)),t.unshift(s1),TO.forEach(e=>e.print(t))},TO=uo(),AO=t=>({[Symbol.iterator](){return this},next:t}),mY=(t,e)=>AO(()=>{let n;do n=t.next();while(!n.done&&!e(n.value));return n}),uv=(t,e)=>AO(()=>{const{done:n,value:r}=t.next();return{done:n,value:n?void 0:e(r)}});class o1{constructor(e,n){this.clock=e,this.len=n}}class Fc{constructor(){this.clients=new Map}}const hl=(t,e,n)=>e.clients.forEach((r,i)=>{const s=t.doc.store.clients.get(i);if(s!=null){const o=s[s.length-1],l=o.id.clock+o.length;for(let a=0,c=r[a];a{let n=0,r=t.length-1;for(;n<=r;){const i=zi((n+r)/2),s=t[i],o=s.clock;if(o<=e){if(e{const n=t.clients.get(e.client);return n!==void 0&&gY(n,e.clock)!==null},l1=t=>{t.clients.forEach(e=>{e.sort((i,s)=>i.clock-s.clock);let n,r;for(n=1,r=1;n=s.clock?i.len=ho(i.len,s.clock+s.len-i.clock):(r{const e=new Fc;for(let n=0;n{if(!e.clients.has(i)){const s=r.slice();for(let o=n+1;o{as(t.clients,e,()=>[]).push(new o1(n,r))},MO=()=>new Fc,IO=t=>{const e=MO();return t.clients.forEach((n,r)=>{const i=[];for(let s=0;s0&&e.clients.set(r,i)}),e},Bc=(t,e)=>{vt(t.restEncoder,e.clients.size),fo(e.clients.entries()).sort((n,r)=>r[0]-n[0]).forEach(([n,r])=>{t.resetDsCurVal(),vt(t.restEncoder,n);const i=r.length;vt(t.restEncoder,i);for(let s=0;s{const e=new Fc,n=Lt(t.restDecoder);for(let r=0;r0){const o=as(e.clients,i,()=>[]);for(let l=0;l{const r=new Fc,i=Lt(t.restDecoder);for(let s=0;s0){const s=new sa;return vt(s.restEncoder,0),Bc(s,r),s.toUint8Array()}return null},RO=JD;class Fi extends HD{constructor({guid:e=X9(),collectionid:n=null,gc:r=!0,gcFilter:i=()=>!0,meta:s=null,autoLoad:o=!1,shouldLoad:l=!0}={}){super(),this.gc=r,this.gcFilter=i,this.clientID=RO(),this.guid=e,this.collectionid=n,this.share=new Map,this.store=new $O,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=l,this.autoLoad=o,this.meta=s,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=nN(c=>{this.on("load",()=>{this.isLoaded=!0,c(this)})});const a=()=>nN(c=>{const u=d=>{(d===void 0||d===!0)&&(this.off("sync",u),c())};this.on("sync",u)});this.on("sync",c=>{c===!1&&this.isSynced&&(this.whenSynced=a()),this.isSynced=c===void 0||c===!0,this.isSynced&&!this.isLoaded&&this.emit("load",[this])}),this.whenSynced=a()}load(){const e=this._item;e!==null&&!this.shouldLoad&&yn(e.parent.doc,n=>{n.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(fo(this.subdocs).map(e=>e.guid))}transact(e,n=null){return yn(this,e,n)}get(e,n=dr){const r=as(this.share,e,()=>{const s=new n;return s._integrate(this,null),s}),i=r.constructor;if(n!==dr&&i!==n)if(i===dr){const s=new n;s._map=r._map,r._map.forEach(o=>{for(;o!==null;o=o.left)o.parent=s}),s._start=r._start;for(let o=s._start;o!==null;o=o.right)o.parent=s;return s._length=r._length,this.share.set(e,s),s._integrate(this,null),s}else throw new Error(`Type with the name ${e} has already been defined with a different constructor`);return r}getArray(e=""){return this.get(e,nc)}getText(e=""){return this.get(e,pl)}getMap(e=""){return this.get(e,xs)}getXmlElement(e=""){return this.get(e,Mr)}getXmlFragment(e=""){return this.get(e,oa)}toJSON(){const e={};return this.share.forEach((n,r)=>{e[r]=n.toJSON()}),e}destroy(){this.isDestroyed=!0,fo(this.subdocs).forEach(n=>n.destroy());const e=this._item;if(e!==null){this._item=null;const n=e.content;n.doc=new Fi({guid:this.guid,...n.opts,shouldLoad:!1}),n.doc._item=e,yn(e.parent.doc,r=>{const i=n.doc;e.deleted||r.subdocsAdded.add(i),r.subdocsRemoved.add(this)},null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class DO{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return Lt(this.restDecoder)}readDsLen(){return Lt(this.restDecoder)}}class OO extends DO{readLeftID(){return Ht(Lt(this.restDecoder),Lt(this.restDecoder))}readRightID(){return Ht(Lt(this.restDecoder),Lt(this.restDecoder))}readClient(){return Lt(this.restDecoder)}readInfo(){return Ec(this.restDecoder)}readString(){return nl(this.restDecoder)}readParentInfo(){return Lt(this.restDecoder)===1}readTypeRef(){return Lt(this.restDecoder)}readLen(){return Lt(this.restDecoder)}readAny(){return Ad(this.restDecoder)}readBuf(){return xK(Tr(this.restDecoder))}readJSON(){return JSON.parse(nl(this.restDecoder))}readKey(){return nl(this.restDecoder)}}class yY{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=Lt(this.restDecoder),this.dsCurrVal}readDsLen(){const e=Lt(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Tc extends yY{constructor(e){super(e),this.keys=[],Lt(e),this.keyClockDecoder=new lv(Tr(e)),this.clientDecoder=new Oh(Tr(e)),this.leftClockDecoder=new lv(Tr(e)),this.rightClockDecoder=new lv(Tr(e)),this.infoDecoder=new tN(Tr(e),Ec),this.stringDecoder=new K9(Tr(e)),this.parentInfoDecoder=new tN(Tr(e),Ec),this.typeRefDecoder=new Oh(Tr(e)),this.lenDecoder=new Oh(Tr(e))}readLeftID(){return new ec(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new ec(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return this.parentInfoDecoder.read()===1}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return Ad(this.restDecoder)}readBuf(){return Tr(this.restDecoder)}readJSON(){return Ad(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e{r=ho(r,e[0].id.clock);const i=ss(e,r);vt(t.restEncoder,e.length-i),t.writeClient(n),vt(t.restEncoder,r);const s=e[i];s.write(t,r-s.id.clock);for(let o=i+1;o{const r=new Map;n.forEach((i,s)=>{Fn(e,s)>i&&r.set(s,i)}),df(e).forEach((i,s)=>{n.has(s)||r.set(s,0)}),vt(t.restEncoder,r.size),fo(r.entries()).sort((i,s)=>s[0]-i[0]).forEach(([i,s])=>{vY(t,e.clients.get(i),i,s)})},wY=(t,e)=>{const n=si(),r=Lt(t.restDecoder);for(let i=0;i{const r=[];let i=fo(n.keys()).sort((p,m)=>p-m);if(i.length===0)return null;const s=()=>{if(i.length===0)return null;let p=n.get(i[i.length-1]);for(;p.refs.length===p.i;)if(i.pop(),i.length>0)p=n.get(i[i.length-1]);else return null;return p};let o=s();if(o===null)return null;const l=new $O,a=new Map,c=(p,m)=>{const g=a.get(p);(g==null||g>m)&&a.set(p,m)};let u=o.refs[o.i++];const d=new Map,f=()=>{for(const p of r){const m=p.id.client,g=n.get(m);g?(g.i--,l.clients.set(m,g.refs.slice(g.i)),n.delete(m),g.i=0,g.refs=[]):l.clients.set(m,[p]),i=i.filter(y=>y!==m)}r.length=0};for(;;){if(u.constructor!==Ai){const m=as(d,u.id.client,()=>Fn(e,u.id.client))-u.id.clock;if(m<0)r.push(u),c(u.id.client,u.id.clock-1),f();else{const g=u.getMissing(t,e);if(g!==null){r.push(u);const y=n.get(g)||{refs:[],i:0};if(y.refs.length===y.i)c(g,Fn(e,g)),f();else{u=y.refs[y.i++];continue}}else(m===0||m0)u=r.pop();else if(o!==null&&o.i0){const p=new sa;return c1(p,l,new Map),vt(p.restEncoder,0),{missing:a,update:p.toUint8Array()}}return null},xY=(t,e)=>c1(t,e.doc.store,e.beforeState),kY=(t,e,n,r=new Tc(t))=>yn(e,i=>{i.local=!1;let s=!1;const o=i.doc,l=o.store,a=wY(r,o),c=bY(i,l,a),u=l.pendingStructs;if(u){for(const[f,p]of u.missing)if(pp)&&u.missing.set(f,p)}u.update=vm([u.update,c.update])}}else l.pendingStructs=c;const d=oN(r,i,l);if(l.pendingDs){const f=new Tc(xl(l.pendingDs));Lt(f.restDecoder);const p=oN(f,i,l);d&&p?l.pendingDs=vm([d,p]):l.pendingDs=d||p}else l.pendingDs=d;if(s){const f=l.pendingStructs.update;l.pendingStructs=null,gm(i.doc,f)}},n,!1),gm=(t,e,n,r=Tc)=>{const i=xl(e);kY(i,t,n,new r(i))},SY=(t,e,n)=>gm(t,e,n,OO),CY=(t,e,n=new Map)=>{c1(t,e.store,n),Bc(t,IO(e.store))},EY=(t,e=new Uint8Array([0]),n=new sa)=>{const r=LO(e);CY(n,t,r);const i=[n.toUint8Array()];if(t.store.pendingDs&&i.push(t.store.pendingDs),t.store.pendingStructs&&i.push(WY(t.store.pendingStructs.update,e)),i.length>1){if(n.constructor===uf)return HY(i.map((s,o)=>o===0?s:YY(s)));if(n.constructor===sa)return vm(i)}return i[0]},NY=(t,e)=>EY(t,e,new uf),TY=t=>{const e=new Map,n=Lt(t.restDecoder);for(let r=0;rTY(new DO(xl(t))),_O=(t,e)=>(vt(t.restEncoder,e.size),fo(e.entries()).sort((n,r)=>r[0]-n[0]).forEach(([n,r])=>{vt(t.restEncoder,n),vt(t.restEncoder,r)}),t),AY=(t,e)=>_O(t,df(e.store)),MY=(t,e=new PO)=>(t instanceof Map?_O(e,t):AY(e,t),e.toUint8Array()),IY=t=>MY(t,new jO);class RY{constructor(){this.l=[]}}const lN=()=>new RY,aN=(t,e)=>t.l.push(e),cN=(t,e)=>{const n=t.l,r=n.length;t.l=n.filter(i=>e!==i),r===t.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},zO=(t,e,n)=>Zx(t.l,[e,n]);class ec{constructor(e,n){this.client=e,this.clock=n}}const ih=(t,e)=>t===e||t!==null&&e!==null&&t.client===e.client&&t.clock===e.clock,Ht=(t,e)=>new ec(t,e),Dd=t=>{for(const[e,n]of t.doc.share.entries())if(n===t)return e;throw Dr()},Od=(t,e)=>{for(;e!==null;){if(e.parent===t)return!0;e=e.parent._item}return!1};class ym{constructor(e,n,r,i=0){this.type=e,this.tname=n,this.item=r,this.assoc=i}}class DY{constructor(e,n,r=0){this.type=e,this.index=n,this.assoc=r}}const OY=(t,e,n=0)=>new DY(t,e,n),sh=(t,e,n)=>{let r=null,i=null;return t._item===null?i=Dd(t):r=Ht(t._item.id.client,t._item.id.clock),new ym(r,i,e,n)},dv=(t,e,n=0)=>{let r=t._start;if(n<0){if(e===0)return sh(t,null,n);e--}for(;r!==null;){if(!r.deleted&&r.countable){if(r.length>e)return sh(t,Ht(r.id.client,r.id.clock+e),n);e-=r.length}if(r.right===null&&n<0)return sh(t,r.lastId,n);r=r.right}return sh(t,null,n)},jY=(t,e)=>{const n=tc(t,e),r=e.clock-n.id.clock;return{item:n,diff:r}},PY=(t,e,n=!0)=>{const r=e.store,i=t.item,s=t.type,o=t.tname,l=t.assoc;let a=null,c=0;if(i!==null){if(Fn(r,i.client)<=i.clock)return null;const u=n?kw(r,i):jY(r,i),d=u.item;if(!(d instanceof cn))return null;if(a=d.parent,a._item===null||!a._item.deleted){c=d.deleted||!d.countable?0:u.diff+(l>=0?0:1);let f=d.left;for(;f!==null;)!f.deleted&&f.countable&&(c+=f.length),f=f.left}}else{if(o!==null)a=e.get(o);else if(s!==null){if(Fn(r,s.client)<=s.clock)return null;const{item:u}=n?kw(r,s):{item:tc(r,s)};if(u instanceof cn&&u.content instanceof cs)a=u.content.type;else return null}else throw Dr();l>=0?c=a._length:c=0}return OY(a,c,t.assoc)};class u1{constructor(e,n){this.ds=e,this.sv=n}}const FO=(t,e)=>new u1(t,e),fv=t=>FO(IO(t.store),df(t.store)),Tl=(t,e)=>e===void 0?!t.deleted:e.sv.has(t.id.client)&&(e.sv.get(t.id.client)||0)>t.id.clock&&!$c(e.ds,t.id),ww=(t,e)=>{const n=as(t.meta,ww,uo),r=t.doc.store;n.has(e)||(e.sv.forEach((i,s)=>{i{}),n.add(e))};class $O{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const df=t=>{const e=new Map;return t.clients.forEach((n,r)=>{const i=n[n.length-1];e.set(r,i.id.clock+i.length)}),e},Fn=(t,e)=>{const n=t.clients.get(e);if(n===void 0)return 0;const r=n[n.length-1];return r.id.clock+r.length},BO=(t,e)=>{let n=t.clients.get(e.id.client);if(n===void 0)n=[],t.clients.set(e.id.client,n);else{const r=n[n.length-1];if(r.id.clock+r.length!==e.id.clock)throw Dr()}n.push(e)},ss=(t,e)=>{let n=0,r=t.length-1,i=t[r],s=i.id.clock;if(s===e)return r;let o=zi(e/(s+i.length-1)*r);for(;n<=r;){if(i=t[o],s=i.id.clock,s<=e){if(e{const n=t.clients.get(e.client);return n[ss(n,e.clock)]},tc=LY,bw=(t,e,n)=>{const r=ss(e,n),i=e[r];return i.id.clock{const n=t.doc.store.clients.get(e.client);return n[bw(t,n,e.clock)]},uN=(t,e,n)=>{const r=e.clients.get(n.client),i=ss(r,n.clock),s=r[i];return n.clock!==s.id.clock+s.length-1&&s.constructor!==Ti&&r.splice(i+1,0,Sm(t,s,n.clock-s.id.clock+1)),s},_Y=(t,e,n)=>{const r=t.clients.get(e.id.client);r[ss(r,e.id.clock)]=n},UO=(t,e,n,r,i)=>{if(r===0)return;const s=n+r;let o=bw(t,e,n),l;do l=e[o++],se.deleteSet.clients.size===0&&!h9(e.afterState,(n,r)=>e.beforeState.get(r)!==n)?!1:(l1(e.deleteSet),xY(t,e),Bc(t,e.deleteSet),!0),fN=(t,e,n)=>{const r=e._item;(r===null||r.id.clock<(t.beforeState.get(r.id.client)||0)&&!r.deleted)&&as(t.changed,e,uo).add(n)},jh=(t,e)=>{let n=t[e],r=t[e-1],i=e;for(;i>0;n=r,r=t[--i-1]){if(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n)){n instanceof cn&&n.parentSub!==null&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);continue}break}const s=e-i;return s&&t.splice(e+1-s,s),s},FY=(t,e,n)=>{for(const[r,i]of t.clients.entries()){const s=e.clients.get(r);for(let o=i.length-1;o>=0;o--){const l=i[o],a=l.clock+l.len;for(let c=ss(s,l.clock),u=s[c];c{t.clients.forEach((n,r)=>{const i=e.clients.get(r);for(let s=n.length-1;s>=0;s--){const o=n[s],l=ia(i.length-1,1+ss(i,o.clock+o.len-1));for(let a=l,c=i[a];a>0&&c.id.clock>=o.clock;c=i[a])a-=1+jh(i,a)}})},HO=(t,e)=>{if(el.push(()=>{(c._item===null||!c._item.deleted)&&c._callObserver(n,a)})),l.push(()=>{n.changedParentTypes.forEach((a,c)=>{c._dEH.l.length>0&&(c._item===null||!c._item.deleted)&&(a=a.filter(u=>u.target._item===null||!u.target._item.deleted),a.forEach(u=>{u.currentTarget=c,u._path=null}),a.sort((u,d)=>u.path.length-d.path.length),l.push(()=>{zO(c._dEH,a,n)}))}),l.push(()=>r.emit("afterTransaction",[n,r])),l.push(()=>{n._needFormattingCleanup&&lq(n)})}),Zx(l,[])}finally{r.gc&&FY(s,i,r.gcFilter),$Y(s,i),n.afterState.forEach((u,d)=>{const f=n.beforeState.get(d)||0;if(f!==u){const p=i.clients.get(d),m=ho(ss(p,f),1);for(let g=p.length-1;g>=m;)g-=1+jh(p,g)}});for(let u=o.length-1;u>=0;u--){const{client:d,clock:f}=o[u].id,p=i.clients.get(d),m=ss(p,f);m+11||m>0&&jh(p,m)}if(!n.local&&n.afterState.get(r.clientID)!==n.beforeState.get(r.clientID)&&(pY(s1,kO,"[yjs] ",SO,CO,"Changed the client-id because another client seems to be using it."),r.clientID=RO()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const u=new uf;dN(u,n)&&r.emit("update",[u.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const u=new sa;dN(u,n)&&r.emit("updateV2",[u.toUint8Array(),n.origin,r,n])}const{subdocsAdded:l,subdocsLoaded:a,subdocsRemoved:c}=n;(l.size>0||c.size>0||a.size>0)&&(l.forEach(u=>{u.clientID=r.clientID,u.collectionid==null&&(u.collectionid=r.collectionid),r.subdocs.add(u)}),c.forEach(u=>r.subdocs.delete(u)),r.emit("subdocs",[{loaded:a,added:l,removed:c},r,n]),c.forEach(u=>u.destroy())),t.length<=e+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,t])):HO(t,e+1)}}},yn=(t,e,n=null,r=!0)=>{const i=t._transactionCleanups;let s=!1,o=null;t._transaction===null&&(s=!0,t._transaction=new zY(t,n,r),i.push(t._transaction),i.length===1&&t.emit("beforeAllTransactions",[t]),t.emit("beforeTransaction",[t._transaction,t]));try{o=e(t._transaction)}finally{if(s){const l=t._transaction===i[0];t._transaction=null,l&&HO(i,0)}}return o};class BY{constructor(e,n){this.insertions=n,this.deletions=e,this.meta=new Map}}const hN=(t,e,n)=>{hl(t,n.deletions,r=>{r instanceof cn&&e.scope.some(i=>i===t.doc||Od(i,r))&&v1(r,!1)})},pN=(t,e,n)=>{let r=null;const i=t.doc,s=t.scope;yn(i,l=>{for(;e.length>0&&t.currStackItem===null;){const a=i.store,c=e.pop(),u=new Set,d=[];let f=!1;hl(l,c.insertions,p=>{if(p instanceof cn){if(p.redone!==null){let{item:m,diff:g}=kw(a,p.id);g>0&&(m=Qr(l,Ht(m.id.client,m.id.clock+g))),p=m}!p.deleted&&s.some(m=>m===l.doc||Od(m,p))&&d.push(p)}}),hl(l,c.deletions,p=>{p instanceof cn&&s.some(m=>m===l.doc||Od(m,p))&&!$c(c.insertions,p.id)&&u.add(p)}),u.forEach(p=>{f=cj(l,p,u,c.insertions,t.ignoreRemoteMapChanges,t)!==null||f});for(let p=d.length-1;p>=0;p--){const m=d[p];t.deleteFilter(m)&&(m.delete(l),f=!0)}t.currStackItem=f?c:null}l.changed.forEach((a,c)=>{a.has(null)&&c._searchMarker&&(c._searchMarker.length=0)}),r=l},t);const o=t.currStackItem;if(o!=null){const l=r.changedParentTypes;t.emit("stack-item-popped",[{stackItem:o,type:n,changedParentTypes:l,origin:t},t]),t.currStackItem=null}return o};class VO extends HD{constructor(e,{captureTimeout:n=500,captureTransaction:r=a=>!0,deleteFilter:i=()=>!0,trackedOrigins:s=new Set([null]),ignoreRemoteMapChanges:o=!1,doc:l=Sc(e)?e[0].doc:e instanceof Fi?e:e.doc}={}){super(),this.scope=[],this.doc=l,this.addToScope(e),this.deleteFilter=i,s.add(this),this.trackedOrigins=s,this.captureTransaction=r,this.undoStack=[],this.redoStack=[],this.undoing=!1,this.redoing=!1,this.currStackItem=null,this.lastChange=0,this.ignoreRemoteMapChanges=o,this.captureTimeout=n,this.afterTransactionHandler=a=>{if(!this.captureTransaction(a)||!this.scope.some(y=>a.changedParentTypes.has(y)||y===this.doc)||!this.trackedOrigins.has(a.origin)&&(!a.origin||!this.trackedOrigins.has(a.origin.constructor)))return;const c=this.undoing,u=this.redoing,d=c?this.redoStack:this.undoStack;c?this.stopCapturing():u||this.clear(!1,!0);const f=new Fc;a.afterState.forEach((y,v)=>{const w=a.beforeState.get(v)||0,x=y-w;x>0&&Rd(f,v,w,x)});const p=dl();let m=!1;if(this.lastChange>0&&p-this.lastChange0&&!c&&!u){const y=d[d.length-1];y.deletions=vw([y.deletions,a.deleteSet]),y.insertions=vw([y.insertions,f])}else d.push(new BY(a.deleteSet,f)),m=!0;!c&&!u&&(this.lastChange=p),hl(a,a.deleteSet,y=>{y instanceof cn&&this.scope.some(v=>v===a.doc||Od(v,y))&&v1(y,!0)});const g=[{stackItem:d[d.length-1],origin:a.origin,type:c?"redo":"undo",changedParentTypes:a.changedParentTypes},this];m?this.emit("stack-item-added",g):this.emit("stack-item-updated",g)},this.doc.on("afterTransaction",this.afterTransactionHandler),this.doc.on("destroy",()=>{this.destroy()})}addToScope(e){const n=new Set(this.scope);e=Sc(e)?e:[e],e.forEach(r=>{n.has(r)||(n.add(r),(r instanceof dr?r.doc!==this.doc:r!==this.doc)&&NO("[yjs#509] Not same Y.Doc"),this.scope.push(r))})}addTrackedOrigin(e){this.trackedOrigins.add(e)}removeTrackedOrigin(e){this.trackedOrigins.delete(e)}clear(e=!0,n=!0){(e&&this.canUndo()||n&&this.canRedo())&&this.doc.transact(r=>{e&&(this.undoStack.forEach(i=>hN(r,this,i)),this.undoStack=[]),n&&(this.redoStack.forEach(i=>hN(r,this,i)),this.redoStack=[]),this.emit("stack-cleared",[{undoStackCleared:e,redoStackCleared:n}])})}stopCapturing(){this.lastChange=0}undo(){this.undoing=!0;let e;try{e=pN(this,this.undoStack,"undo")}finally{this.undoing=!1}return e}redo(){this.redoing=!0;let e;try{e=pN(this,this.redoStack,"redo")}finally{this.redoing=!1}return e}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}destroy(){this.trackedOrigins.delete(this),this.doc.off("afterTransaction",this.afterTransactionHandler),super.destroy()}}function*UY(t){const e=Lt(t.restDecoder);for(let n=0;nvm(t,OO,uf),VY=(t,e)=>{if(t.constructor===Ti){const{client:n,clock:r}=t.id;return new Ti(Ht(n,r+e),t.length-e)}else if(t.constructor===Ai){const{client:n,clock:r}=t.id;return new Ai(Ht(n,r+e),t.length-e)}else{const n=t,{client:r,clock:i}=n.id;return new cn(Ht(r,i+e),null,Ht(r,i+e-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(e))}},vm=(t,e=Tc,n=sa)=>{if(t.length===1)return t[0];const r=t.map(u=>new e(xl(u)));let i=r.map(u=>new d1(u,!0)),s=null;const o=new n,l=new f1(o);for(;i=i.filter(f=>f.curr!==null),i.sort((f,p)=>{if(f.curr.id.client===p.curr.id.client){const m=f.curr.id.clock-p.curr.id.clock;return m===0?f.curr.constructor===p.curr.constructor?0:f.curr.constructor===Ai?1:-1:m}else return p.curr.id.client-f.curr.id.client}),i.length!==0;){const u=i[0],d=u.curr.id.client;if(s!==null){let f=u.curr,p=!1;for(;f!==null&&f.id.clock+f.length<=s.struct.id.clock+s.struct.length&&f.id.client>=s.struct.id.client;)f=u.next(),p=!0;if(f===null||f.id.client!==d||p&&f.id.clock>s.struct.id.clock+s.struct.length)continue;if(d!==s.struct.id.client)_o(l,s.struct,s.offset),s={struct:f,offset:0},u.next();else if(s.struct.id.clock+s.struct.length0&&(s.struct.constructor===Ai?s.struct.length-=m:f=VY(f,m)),s.struct.mergeWith(f)||(_o(l,s.struct,s.offset),s={struct:f,offset:0},u.next())}}else s={struct:u.curr,offset:0},u.next();for(let f=u.curr;f!==null&&f.id.client===d&&f.id.clock===s.struct.id.clock+s.struct.length&&f.constructor!==Ai;f=u.next())_o(l,s.struct,s.offset),s={struct:f,offset:0}}s!==null&&(_o(l,s.struct,s.offset),s=null),h1(l);const a=r.map(u=>a1(u)),c=vw(a);return Bc(o,c),o.toUint8Array()},WY=(t,e,n=Tc,r=sa)=>{const i=LO(e),s=new r,o=new f1(s),l=new n(xl(t)),a=new d1(l,!1);for(;a.curr;){const u=a.curr,d=u.id.client,f=i.get(d)||0;if(a.curr.constructor===Ai){a.next();continue}if(u.id.clock+u.length>f)for(_o(o,u,ho(f-u.id.clock,0)),a.next();a.curr&&a.curr.id.client===d;)_o(o,a.curr,0),a.next();else for(;a.curr&&a.curr.id.client===d&&a.curr.id.clock+a.curr.length<=f;)a.next()}h1(o);const c=a1(l);return Bc(s,c),s.toUint8Array()},WO=t=>{t.written>0&&(t.clientStructs.push({written:t.written,restEncoder:Nn(t.encoder.restEncoder)}),t.encoder.restEncoder=gr(),t.written=0)},_o=(t,e,n)=>{t.written>0&&t.currClient!==e.id.client&&WO(t),t.written===0&&(t.currClient=e.id.client,t.encoder.writeClient(e.id.client),vt(t.encoder.restEncoder,e.id.clock+n)),e.write(t.encoder,n),t.written++},h1=t=>{WO(t);const e=t.encoder.restEncoder;vt(e,t.clientStructs.length);for(let n=0;n{const i=new n(xl(t)),s=new d1(i,!1),o=new r,l=new f1(o);for(let c=s.curr;c!==null;c=s.next())_o(l,e(c),0);h1(l);const a=a1(i);return Bc(o,a),o.toUint8Array()},YY=t=>KY(t,aK,Tc,uf),mN="You must not compute changes after the event-handler fired.";class Rg{constructor(e,n){this.target=e,this.currentTarget=e,this.transaction=n,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=qY(this.currentTarget,this.target))}deletes(e){return $c(this.transaction.deleteSet,e.id)}get keys(){if(this._keys===null){if(this.transaction.doc._transactionCleanups.length===0)throw Rs(mN);const e=new Map,n=this.target;this.transaction.changed.get(n).forEach(i=>{if(i!==null){const s=n._map.get(i);let o,l;if(this.adds(s)){let a=s.left;for(;a!==null&&this.adds(a);)a=a.left;if(this.deletes(s))if(a!==null&&this.deletes(a))o="delete",l=rv(a.content.getContent());else return;else a!==null&&this.deletes(a)?(o="update",l=rv(a.content.getContent())):(o="add",l=void 0)}else if(this.deletes(s))o="delete",l=rv(s.content.getContent());else return;e.set(i,{action:o,oldValue:l})}}),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(e===null){if(this.transaction.doc._transactionCleanups.length===0)throw Rs(mN);const n=this.target,r=uo(),i=uo(),s=[];if(e={added:r,deleted:i,delta:s,keys:this.keys},this.transaction.changed.get(n).has(null)){let l=null;const a=()=>{l&&s.push(l)};for(let c=n._start;c!==null;c=c.right)c.deleted?this.deletes(c)&&!this.adds(c)&&((l===null||l.delete===void 0)&&(a(),l={delete:0}),l.delete+=c.length,i.add(c)):this.adds(c)?((l===null||l.insert===void 0)&&(a(),l={insert:[]}),l.insert=l.insert.concat(c.content.getContent()),r.add(c)):((l===null||l.retain===void 0)&&(a(),l={retain:0}),l.retain+=c.length);l!==null&&l.retain===void 0&&a()}this._changes=e}return e}}const qY=(t,e)=>{const n=[];for(;e._item!==null&&e!==t;){if(e._item.parentSub!==null)n.unshift(e._item.parentSub);else{let r=0,i=e._item.parent._start;for(;i!==e._item&&i!==null;)!i.deleted&&i.countable&&(r+=i.length),i=i.right;n.unshift(r)}e=e._item.parent}return n},Ir=()=>{NO("Invalid access: Add Yjs type to a document before reading data.")},KO=80;let p1=0;class JY{constructor(e,n){e.marker=!0,this.p=e,this.index=n,this.timestamp=p1++}}const GY=t=>{t.timestamp=p1++},YO=(t,e,n)=>{t.p.marker=!1,t.p=e,e.marker=!0,t.index=n,t.timestamp=p1++},XY=(t,e,n)=>{if(t.length>=KO){const r=t.reduce((i,s)=>i.timestamp{if(t._start===null||e===0||t._searchMarker===null)return null;const n=t._searchMarker.length===0?null:t._searchMarker.reduce((s,o)=>Rh(e-s.index)e;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);for(;r.left!==null&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);return n!==null&&Rh(n.index-i){for(let r=t.length-1;r>=0;r--){const i=t[r];if(n>0){let s=i.p;for(s.marker=!1;s&&(s.deleted||!s.countable);)s=s.left,s&&!s.deleted&&s.countable&&(i.index-=s.length);if(s===null||s.marker===!0){t.splice(r,1);continue}i.p=s,s.marker=!0}(e0&&e===i.index)&&(i.index=ho(e,i.index+n))}},Og=(t,e,n)=>{const r=t,i=e.changedParentTypes;for(;as(i,t,()=>[]).push(n),t._item!==null;)t=t._item.parent;zO(r._eH,n,e)};class dr{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=lN(),this._dEH=lN(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,n){this.doc=e,this._item=n}_copy(){throw Oi()}clone(){throw Oi()}_write(e){}get _first(){let e=this._start;for(;e!==null&&e.deleted;)e=e.right;return e}_callObserver(e,n){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){aN(this._eH,e)}observeDeep(e){aN(this._dEH,e)}unobserve(e){cN(this._eH,e)}unobserveDeep(e){cN(this._dEH,e)}toJSON(){}}const qO=(t,e,n)=>{t.doc??Ir(),e<0&&(e=t._length+e),n<0&&(n=t._length+n);let r=n-e;const i=[];let s=t._start;for(;s!==null&&r>0;){if(s.countable&&!s.deleted){const o=s.content.getContent();if(o.length<=e)e-=o.length;else{for(let l=e;l0;l++)i.push(o[l]),r--;e=0}}s=s.right}return i},JO=t=>{t.doc??Ir();const e=[];let n=t._start;for(;n!==null;){if(n.countable&&!n.deleted){const r=n.content.getContent();for(let i=0;i{const n=[];let r=t._start;for(;r!==null;){if(r.countable&&Tl(r,e)){const i=r.content.getContent();for(let s=0;s{let n=0,r=t._start;for(t.doc??Ir();r!==null;){if(r.countable&&!r.deleted){const i=r.content.getContent();for(let s=0;s{const n=[];return Pd(t,(r,i)=>{n.push(e(r,i,t))}),n},QY=t=>{let e=t._start,n=null,r=0;return{[Symbol.iterator](){return this},next:()=>{if(n===null){for(;e!==null&&e.deleted;)e=e.right;if(e===null)return{done:!0,value:void 0};n=e.content.getContent(),r=0,e=e.right}const i=n[r++];return n.length<=r&&(n=null),{done:!1,value:i}}}},QO=(t,e)=>{t.doc??Ir();const n=Dg(t,e);let r=t._start;for(n!==null&&(r=n.p,e-=n.index);r!==null;r=r.right)if(!r.deleted&&r.countable){if(e{let i=n;const s=t.doc,o=s.clientID,l=s.store,a=n===null?e._start:n.right;let c=[];const u=()=>{c.length>0&&(i=new cn(Ht(o,Fn(l,o)),i,i&&i.lastId,a,a&&a.id,e,null,new la(c)),i.integrate(t,0),c=[])};r.forEach(d=>{if(d===null)c.push(d);else switch(d.constructor){case Number:case Object:case Boolean:case Array:case String:c.push(d);break;default:switch(u(),d.constructor){case Uint8Array:case ArrayBuffer:i=new cn(Ht(o,Fn(l,o)),i,i&&i.lastId,a,a&&a.id,e,null,new ff(new Uint8Array(d))),i.integrate(t,0);break;case Fi:i=new cn(Ht(o,Fn(l,o)),i,i&&i.lastId,a,a&&a.id,e,null,new hf(d)),i.integrate(t,0);break;default:if(d instanceof dr)i=new cn(Ht(o,Fn(l,o)),i,i&&i.lastId,a,a&&a.id,e,null,new cs(d)),i.integrate(t,0);else throw new Error("Unexpected content type in insert operation")}}}),u()},ZO=()=>Rs("Length exceeded!"),ej=(t,e,n,r)=>{if(n>e._length)throw ZO();if(n===0)return e._searchMarker&&jd(e._searchMarker,n,r.length),wm(t,e,null,r);const i=n,s=Dg(e,n);let o=e._start;for(s!==null&&(o=s.p,n-=s.index,n===0&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));o!==null;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n{let i=(e._searchMarker||[]).reduce((s,o)=>o.index>s.index?o:s,{index:0,p:e._start}).p;if(i)for(;i.right;)i=i.right;return wm(t,e,i,n)},tj=(t,e,n,r)=>{if(r===0)return;const i=n,s=r,o=Dg(e,n);let l=e._start;for(o!==null&&(l=o.p,n-=o.index);l!==null&&n>0;l=l.right)!l.deleted&&l.countable&&(n0&&l!==null;)l.deleted||(r0)throw ZO();e._searchMarker&&jd(e._searchMarker,i,-s+r)},bm=(t,e,n)=>{const r=e._map.get(n);r!==void 0&&r.delete(t)},m1=(t,e,n,r)=>{const i=e._map.get(n)||null,s=t.doc,o=s.clientID;let l;if(r==null)l=new la([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new la([r]);break;case Uint8Array:l=new ff(r);break;case Fi:l=new hf(r);break;default:if(r instanceof dr)l=new cs(r);else throw new Error("Unexpected content type")}new cn(Ht(o,Fn(s.store,o)),i,i&&i.lastId,null,null,e,n,l).integrate(t,0)},g1=(t,e)=>{t.doc??Ir();const n=t._map.get(e);return n!==void 0&&!n.deleted?n.content.getContent()[n.length-1]:void 0},nj=t=>{const e={};return t.doc??Ir(),t._map.forEach((n,r)=>{n.deleted||(e[r]=n.content.getContent()[n.length-1])}),e},rj=(t,e)=>{t.doc??Ir();const n=t._map.get(e);return n!==void 0&&!n.deleted},eq=(t,e)=>{const n={};return t._map.forEach((r,i)=>{let s=r;for(;s!==null&&(!e.sv.has(s.id.client)||s.id.clock>=(e.sv.get(s.id.client)||0));)s=s.left;s!==null&&Tl(s,e)&&(n[i]=s.content.getContent()[s.length-1])}),n},oh=t=>(t.doc??Ir(),mY(t._map.entries(),e=>!e[1].deleted));class tq extends Rg{}class nc extends dr{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const n=new nc;return n.push(e),n}_integrate(e,n){super._integrate(e,n),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new nc}clone(){const e=new nc;return e.insert(0,this.toArray().map(n=>n instanceof dr?n.clone():n)),e}get length(){return this.doc??Ir(),this._length}_callObserver(e,n){super._callObserver(e,n),Og(this,e,new tq(this,e))}insert(e,n){this.doc!==null?yn(this.doc,r=>{ej(r,this,e,n)}):this._prelimContent.splice(e,0,...n)}push(e){this.doc!==null?yn(this.doc,n=>{ZY(n,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,n=1){this.doc!==null?yn(this.doc,r=>{tj(r,this,e,n)}):this._prelimContent.splice(e,n)}get(e){return QO(this,e)}toArray(){return JO(this)}slice(e=0,n=this.length){return qO(this,e,n)}toJSON(){return this.map(e=>e instanceof dr?e.toJSON():e)}map(e){return XO(this,e)}forEach(e){Pd(this,e)}[Symbol.iterator](){return QY(this)}_write(e){e.writeTypeRef(Nq)}}const nq=t=>new nc;class rq extends Rg{constructor(e,n,r){super(e,n),this.keysChanged=r}}class xs extends dr{constructor(e){super(),this._prelimContent=null,e===void 0?this._prelimContent=new Map:this._prelimContent=new Map(e)}_integrate(e,n){super._integrate(e,n),this._prelimContent.forEach((r,i)=>{this.set(i,r)}),this._prelimContent=null}_copy(){return new xs}clone(){const e=new xs;return this.forEach((n,r)=>{e.set(r,n instanceof dr?n.clone():n)}),e}_callObserver(e,n){Og(this,e,new rq(this,e,n))}toJSON(){this.doc??Ir();const e={};return this._map.forEach((n,r)=>{if(!n.deleted){const i=n.content.getContent()[n.length-1];e[r]=i instanceof dr?i.toJSON():i}}),e}get size(){return[...oh(this)].length}keys(){return uv(oh(this),e=>e[0])}values(){return uv(oh(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return uv(oh(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??Ir(),this._map.forEach((n,r)=>{n.deleted||e(n.content.getContent()[n.length-1],r,this)})}[Symbol.iterator](){return this.entries()}delete(e){this.doc!==null?yn(this.doc,n=>{bm(n,this,e)}):this._prelimContent.delete(e)}set(e,n){return this.doc!==null?yn(this.doc,r=>{m1(r,this,e,n)}):this._prelimContent.set(e,n),n}get(e){return g1(this,e)}has(e){return rj(this,e)}clear(){this.doc!==null?yn(this.doc,e=>{this.forEach(function(n,r,i){bm(e,i,r)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(Tq)}}const iq=t=>new xs,Ho=(t,e)=>t===e||typeof t=="object"&&typeof e=="object"&&t&&e&&oK(t,e);class xw{constructor(e,n,r,i){this.left=e,this.right=n,this.index=r,this.currentAttributes=i}forward(){switch(this.right===null&&Dr(),this.right.content.constructor){case qn:this.right.deleted||Uc(this.currentAttributes,this.right.content);break;default:this.right.deleted||(this.index+=this.right.length);break}this.left=this.right,this.right=this.right.right}}const gN=(t,e,n)=>{for(;e.right!==null&&n>0;){switch(e.right.content.constructor){case qn:e.right.deleted||Uc(e.currentAttributes,e.right.content);break;default:e.right.deleted||(n{const i=new Map,s=r?Dg(e,n):null;if(s){const o=new xw(s.p.left,s.p,s.index,i);return gN(t,o,n-s.index)}else{const o=new xw(null,e._start,0,i);return gN(t,o,n)}},ij=(t,e,n,r)=>{for(;n.right!==null&&(n.right.deleted===!0||n.right.content.constructor===qn&&Ho(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();const i=t.doc,s=i.clientID;r.forEach((o,l)=>{const a=n.left,c=n.right,u=new cn(Ht(s,Fn(i.store,s)),a,a&&a.lastId,c,c&&c.id,e,null,new qn(l,o));u.integrate(t,0),n.right=u,n.forward()})},Uc=(t,e)=>{const{key:n,value:r}=e;r===null?t.delete(n):t.set(n,r)},sj=(t,e)=>{for(;t.right!==null;){if(!(t.right.deleted||t.right.content.constructor===qn&&Ho(e[t.right.content.key]??null,t.right.content.value)))break;t.forward()}},oj=(t,e,n,r)=>{const i=t.doc,s=i.clientID,o=new Map;for(const l in r){const a=r[l],c=n.currentAttributes.get(l)??null;if(!Ho(c,a)){o.set(l,c);const{left:u,right:d}=n;n.right=new cn(Ht(s,Fn(i.store,s)),u,u&&u.lastId,d,d&&d.id,e,null,new qn(l,a)),n.right.integrate(t,0),n.forward()}}return o},hv=(t,e,n,r,i)=>{n.currentAttributes.forEach((f,p)=>{i[p]===void 0&&(i[p]=null)});const s=t.doc,o=s.clientID;sj(n,i);const l=oj(t,e,n,i),a=r.constructor===String?new ls(r):r instanceof dr?new cs(r):new ha(r);let{left:c,right:u,index:d}=n;e._searchMarker&&jd(e._searchMarker,n.index,a.getLength()),u=new cn(Ht(o,Fn(s.store,o)),c,c&&c.lastId,u,u&&u.id,e,null,a),u.integrate(t,0),n.right=u,n.index=d,n.forward(),ij(t,e,n,l)},yN=(t,e,n,r,i)=>{const s=t.doc,o=s.clientID;sj(n,i);const l=oj(t,e,n,i);e:for(;n.right!==null&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===qn));){if(!n.right.deleted)switch(n.right.content.constructor){case qn:{const{key:a,value:c}=n.right.content,u=i[a];if(u!==void 0){if(Ho(u,c))l.delete(a);else{if(r===0)break e;l.set(a,c)}n.right.delete(t)}else n.currentAttributes.set(a,c);break}default:r0){let a="";for(;r>0;r--)a+=` -`;n.right=new cn(Ht(o,Fn(s.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,e,null,new ls(a)),n.right.integrate(t,0),n.forward()}ij(t,e,n,l)},lj=(t,e,n,r,i)=>{let s=e;const o=si();for(;s&&(!s.countable||s.deleted);){if(!s.deleted&&s.content.constructor===qn){const c=s.content;o.set(c.key,c)}s=s.right}let l=0,a=!1;for(;e!==s;){if(n===e&&(a=!0),!e.deleted){const c=e.content;switch(c.constructor){case qn:{const{key:u,value:d}=c,f=r.get(u)??null;(o.get(u)!==c||f===d)&&(e.delete(t),l++,!a&&(i.get(u)??null)===d&&f!==d&&(f===null?i.delete(u):i.set(u,f))),!a&&!e.deleted&&Uc(i,c);break}}}e=e.right}return l},sq=(t,e)=>{for(;e&&e.right&&(e.right.deleted||!e.right.countable);)e=e.right;const n=new Set;for(;e&&(e.deleted||!e.countable);){if(!e.deleted&&e.content.constructor===qn){const r=e.content.key;n.has(r)?e.delete(t):n.add(r)}e=e.left}},oq=t=>{let e=0;return yn(t.doc,n=>{let r=t._start,i=t._start,s=si();const o=fw(s);for(;i;){if(i.deleted===!1)switch(i.content.constructor){case qn:Uc(o,i.content);break;default:e+=lj(n,r,i,s,o),s=fw(o),r=i;break}i=i.right}}),e},lq=t=>{const e=new Set,n=t.doc;for(const[r,i]of t.afterState.entries()){const s=t.beforeState.get(r)||0;i!==s&&UO(t,n.store.clients.get(r),s,i,o=>{!o.deleted&&o.content.constructor===qn&&o.constructor!==Ti&&e.add(o.parent)})}yn(n,r=>{hl(t,t.deleteSet,i=>{if(i instanceof Ti||!i.parent._hasFormatting||e.has(i.parent))return;const s=i.parent;i.content.constructor===qn?e.add(s):sq(r,i)});for(const i of e)oq(i)})},vN=(t,e,n)=>{const r=n,i=fw(e.currentAttributes),s=e.right;for(;n>0&&e.right!==null;){if(e.right.deleted===!1)switch(e.right.content.constructor){case cs:case ha:case ls:n{i===null?this.childListChanged=!0:this.keysChanged.add(i)})}get changes(){if(this._changes===null){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(this._delta===null){const e=this.target.doc,n=[];yn(e,r=>{const i=new Map,s=new Map;let o=this.target._start,l=null;const a={};let c="",u=0,d=0;const f=()=>{if(l!==null){let p=null;switch(l){case"delete":d>0&&(p={delete:d}),d=0;break;case"insert":(typeof c=="object"||c.length>0)&&(p={insert:c},i.size>0&&(p.attributes={},i.forEach((m,g)=>{m!==null&&(p.attributes[g]=m)}))),c="";break;case"retain":u>0&&(p={retain:u},sK(a)||(p.attributes=nK({},a))),u=0;break}p&&n.push(p),l=null}};for(;o!==null;){switch(o.content.constructor){case cs:case ha:this.adds(o)?this.deletes(o)||(f(),l="insert",c=o.content.getContent()[0],f()):this.deletes(o)?(l!=="delete"&&(f(),l="delete"),d+=1):o.deleted||(l!=="retain"&&(f(),l="retain"),u+=1);break;case ls:this.adds(o)?this.deletes(o)||(l!=="insert"&&(f(),l="insert"),c+=o.content.str):this.deletes(o)?(l!=="delete"&&(f(),l="delete"),d+=o.length):o.deleted||(l!=="retain"&&(f(),l="retain"),u+=o.length);break;case qn:{const{key:p,value:m}=o.content;if(this.adds(o)){if(!this.deletes(o)){const g=i.get(p)??null;Ho(g,m)?m!==null&&o.delete(r):(l==="retain"&&f(),Ho(m,s.get(p)??null)?delete a[p]:a[p]=m)}}else if(this.deletes(o)){s.set(p,m);const g=i.get(p)??null;Ho(g,m)||(l==="retain"&&f(),a[p]=g)}else if(!o.deleted){s.set(p,m);const g=a[p];g!==void 0&&(Ho(g,m)?g!==null&&o.delete(r):(l==="retain"&&f(),m===null?delete a[p]:a[p]=m))}o.deleted||(l==="insert"&&f(),Uc(i,o.content));break}}o=o.right}for(f();n.length>0;){const p=n[n.length-1];if(p.retain!==void 0&&p.attributes===void 0)n.pop();else break}}),this._delta=n}return this._delta}}class pl extends dr{constructor(e){super(),this._pending=e!==void 0?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Ir(),this._length}_integrate(e,n){super._integrate(e,n);try{this._pending.forEach(r=>r())}catch(r){console.error(r)}this._pending=null}_copy(){return new pl}clone(){const e=new pl;return e.applyDelta(this.toDelta()),e}_callObserver(e,n){super._callObserver(e,n);const r=new aq(this,e,n);Og(this,e,r),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Ir();let e="",n=this._start;for(;n!==null;)!n.deleted&&n.countable&&n.content.constructor===ls&&(e+=n.content.str),n=n.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:n=!0}={}){this.doc!==null?yn(this.doc,r=>{const i=new xw(null,this._start,0,new Map);for(let s=0;s0)&&hv(r,this,i,l,o.attributes||{})}else o.retain!==void 0?yN(r,this,i,o.retain,o.attributes||{}):o.delete!==void 0&&vN(r,i,o.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,n,r){this.doc??Ir();const i=[],s=new Map,o=this.doc;let l="",a=this._start;function c(){if(l.length>0){const d={};let f=!1;s.forEach((m,g)=>{f=!0,d[g]=m});const p={insert:l};f&&(p.attributes=d),i.push(p),l=""}}const u=()=>{for(;a!==null;){if(Tl(a,e)||n!==void 0&&Tl(a,n))switch(a.content.constructor){case ls:{const d=s.get("ychange");e!==void 0&&!Tl(a,e)?(d===void 0||d.user!==a.id.client||d.type!=="removed")&&(c(),s.set("ychange",r?r("removed",a.id):{type:"removed"})):n!==void 0&&!Tl(a,n)?(d===void 0||d.user!==a.id.client||d.type!=="added")&&(c(),s.set("ychange",r?r("added",a.id):{type:"added"})):d!==void 0&&(c(),s.delete("ychange")),l+=a.content.str;break}case cs:case ha:{c();const d={insert:a.content.getContent()[0]};if(s.size>0){const f={};d.attributes=f,s.forEach((p,m)=>{f[m]=p})}i.push(d);break}case qn:Tl(a,e)&&(c(),Uc(s,a.content));break}a=a.right}c()};return e||n?yn(o,d=>{e&&ww(d,e),n&&ww(d,n),u()},"cleanup"):u(),i}insert(e,n,r){if(n.length<=0)return;const i=this.doc;i!==null?yn(i,s=>{const o=lh(s,this,e,!r);r||(r={},o.currentAttributes.forEach((l,a)=>{r[a]=l})),hv(s,this,o,n,r)}):this._pending.push(()=>this.insert(e,n,r))}insertEmbed(e,n,r){const i=this.doc;i!==null?yn(i,s=>{const o=lh(s,this,e,!r);hv(s,this,o,n,r||{})}):this._pending.push(()=>this.insertEmbed(e,n,r||{}))}delete(e,n){if(n===0)return;const r=this.doc;r!==null?yn(r,i=>{vN(i,lh(i,this,e,!0),n)}):this._pending.push(()=>this.delete(e,n))}format(e,n,r){if(n===0)return;const i=this.doc;i!==null?yn(i,s=>{const o=lh(s,this,e,!1);o.right!==null&&yN(s,this,o,n,r)}):this._pending.push(()=>this.format(e,n,r))}removeAttribute(e){this.doc!==null?yn(this.doc,n=>{bm(n,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,n){this.doc!==null?yn(this.doc,r=>{m1(r,this,e,n)}):this._pending.push(()=>this.setAttribute(e,n))}getAttribute(e){return g1(this,e)}getAttributes(){return nj(this)}_write(e){e.writeTypeRef(Aq)}}const cq=t=>new pl;class pv{constructor(e,n=()=>!0){this._filter=n,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Ir()}[Symbol.iterator](){return this}next(){let e=this._currentNode,n=e&&e.content&&e.content.type;if(e!==null&&(!this._firstCall||e.deleted||!this._filter(n)))do if(n=e.content.type,!e.deleted&&(n.constructor===Mr||n.constructor===oa)&&n._start!==null)e=n._start;else for(;e!==null;){const r=e.next;if(r!==null){e=r;break}else e.parent===this._root?e=null:e=e.parent._item}while(e!==null&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,e===null?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class oa extends dr{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,n){super._integrate(e,n),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new oa}clone(){const e=new oa;return e.insert(0,this.toArray().map(n=>n instanceof dr?n.clone():n)),e}get length(){return this.doc??Ir(),this._prelimContent===null?this._length:this._prelimContent.length}createTreeWalker(e){return new pv(this,e)}querySelector(e){e=e.toUpperCase();const r=new pv(this,i=>i.nodeName&&i.nodeName.toUpperCase()===e).next();return r.done?null:r.value}querySelectorAll(e){return e=e.toUpperCase(),fo(new pv(this,n=>n.nodeName&&n.nodeName.toUpperCase()===e))}_callObserver(e,n){Og(this,e,new fq(this,n,e))}toString(){return XO(this,e=>e.toString()).join("")}toJSON(){return this.toString()}toDOM(e=document,n={},r){const i=e.createDocumentFragment();return r!==void 0&&r._createAssociation(i,this),Pd(this,s=>{i.insertBefore(s.toDOM(e,n,r),null)}),i}insert(e,n){this.doc!==null?yn(this.doc,r=>{ej(r,this,e,n)}):this._prelimContent.splice(e,0,...n)}insertAfter(e,n){if(this.doc!==null)yn(this.doc,r=>{const i=e&&e instanceof dr?e._item:e;wm(r,this,i,n)});else{const r=this._prelimContent,i=e===null?0:r.findIndex(s=>s===e)+1;if(i===0&&e!==null)throw Rs("Reference item not found");r.splice(i,0,...n)}}delete(e,n=1){this.doc!==null?yn(this.doc,r=>{tj(r,this,e,n)}):this._prelimContent.splice(e,n)}toArray(){return JO(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return QO(this,e)}slice(e=0,n=this.length){return qO(this,e,n)}forEach(e){Pd(this,e)}_write(e){e.writeTypeRef(Iq)}}const uq=t=>new oa;class Mr extends oa{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,n){super._integrate(e,n),this._prelimAttrs.forEach((r,i)=>{this.setAttribute(i,r)}),this._prelimAttrs=null}_copy(){return new Mr(this.nodeName)}clone(){const e=new Mr(this.nodeName),n=this.getAttributes();return rK(n,(r,i)=>{e.setAttribute(i,r)}),e.insert(0,this.toArray().map(r=>r instanceof dr?r.clone():r)),e}toString(){const e=this.getAttributes(),n=[],r=[];for(const l in e)r.push(l);r.sort();const i=r.length;for(let l=0;l0?" "+n.join(" "):"";return`<${s}${o}>${super.toString()}`}removeAttribute(e){this.doc!==null?yn(this.doc,n=>{bm(n,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,n){this.doc!==null?yn(this.doc,r=>{m1(r,this,e,n)}):this._prelimAttrs.set(e,n)}getAttribute(e){return g1(this,e)}hasAttribute(e){return rj(this,e)}getAttributes(e){return e?eq(this,e):nj(this)}toDOM(e=document,n={},r){const i=e.createElement(this.nodeName),s=this.getAttributes();for(const o in s){const l=s[o];typeof l=="string"&&i.setAttribute(o,l)}return Pd(this,o=>{i.appendChild(o.toDOM(e,n,r))}),r!==void 0&&r._createAssociation(i,this),i}_write(e){e.writeTypeRef(Mq),e.writeKey(this.nodeName)}}const dq=t=>new Mr(t.readKey());class fq extends Rg{constructor(e,n,r){super(e,r),this.childListChanged=!1,this.attributesChanged=new Set,n.forEach(i=>{i===null?this.childListChanged=!0:this.attributesChanged.add(i)})}}class xm extends xs{constructor(e){super(),this.hookName=e}_copy(){return new xm(this.hookName)}clone(){const e=new xm(this.hookName);return this.forEach((n,r)=>{e.set(r,n)}),e}toDOM(e=document,n={},r){const i=n[this.hookName];let s;return i!==void 0?s=i.createDom(this):s=document.createElement(this.hookName),s.setAttribute("data-yjs-hook",this.hookName),r!==void 0&&r._createAssociation(s,this),s}_write(e){e.writeTypeRef(Rq),e.writeKey(this.hookName)}}const hq=t=>new xm(t.readKey());class oi extends pl{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new oi}clone(){const e=new oi;return e.applyDelta(this.toDelta()),e}toDOM(e=document,n,r){const i=e.createTextNode(this.toString());return r!==void 0&&r._createAssociation(i,this),i}toString(){return this.toDelta().map(e=>{const n=[];for(const i in e.attributes){const s=[];for(const o in e.attributes[i])s.push({key:o,value:e.attributes[i][o]});s.sort((o,l)=>o.keyi.nodeName=0;i--)r+=``;return r}).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Dq)}}const pq=t=>new oi;class y1{constructor(e,n){this.id=e,this.length=n}get deleted(){throw Oi()}mergeWith(e){return!1}write(e,n,r){throw Oi()}integrate(e,n){throw Oi()}}const mq=0;class Ti extends y1{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor!==e.constructor?!1:(this.length+=e.length,!0)}integrate(e,n){n>0&&(this.id.clock+=n,this.length-=n),BO(e.doc.store,this)}write(e,n){e.writeInfo(mq),e.writeLen(this.length-n)}getMissing(e,n){return null}}class ff{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new ff(this.content)}splice(e){throw Oi()}mergeWith(e){return!1}integrate(e,n){}delete(e){}gc(e){}write(e,n){e.writeBuf(this.content)}getRef(){return 3}}const gq=t=>new ff(t.readBuf());class Ld{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Ld(this.len)}splice(e){const n=new Ld(this.len-e);return this.len=e,n}mergeWith(e){return this.len+=e.len,!0}integrate(e,n){Rd(e.deleteSet,n.id.client,n.id.clock,this.len),n.markDeleted()}delete(e){}gc(e){}write(e,n){e.writeLen(this.len-n)}getRef(){return 1}}const yq=t=>new Ld(t.readLen()),aj=(t,e)=>new Fi({guid:t,...e,shouldLoad:e.shouldLoad||e.autoLoad||!1});class hf{constructor(e){e._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=e;const n={};this.opts=n,e.gc||(n.gc=!1),e.autoLoad&&(n.autoLoad=!0),e.meta!==null&&(n.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new hf(aj(this.doc.guid,this.opts))}splice(e){throw Oi()}mergeWith(e){return!1}integrate(e,n){this.doc._item=n,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,n){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}const vq=t=>new hf(aj(t.readString(),t.readAny()));class ha{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new ha(this.embed)}splice(e){throw Oi()}mergeWith(e){return!1}integrate(e,n){}delete(e){}gc(e){}write(e,n){e.writeJSON(this.embed)}getRef(){return 5}}const wq=t=>new ha(t.readJSON());class qn{constructor(e,n){this.key=e,this.value=n}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new qn(this.key,this.value)}splice(e){throw Oi()}mergeWith(e){return!1}integrate(e,n){const r=n.parent;r._searchMarker=null,r._hasFormatting=!0}delete(e){}gc(e){}write(e,n){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}const bq=t=>new qn(t.readKey(),t.readJSON());class km{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new km(this.arr)}splice(e){const n=new km(this.arr.slice(e));return this.arr=this.arr.slice(0,e),n}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,n){}delete(e){}gc(e){}write(e,n){const r=this.arr.length;e.writeLen(r-n);for(let i=n;i{const e=t.readLen(),n=[];for(let r=0;r{const e=t.readLen(),n=[];for(let r=0;r=55296&&r<=56319&&(this.str=this.str.slice(0,e-1)+"�",n.str="�"+n.str.slice(1)),n}mergeWith(e){return this.str+=e.str,!0}integrate(e,n){}delete(e){}gc(e){}write(e,n){e.writeString(n===0?this.str:this.str.slice(n))}getRef(){return 4}}const Cq=t=>new ls(t.readString()),Eq=[nq,iq,cq,dq,uq,hq,pq],Nq=0,Tq=1,Aq=2,Mq=3,Iq=4,Rq=5,Dq=6;class cs{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new cs(this.type._copy())}splice(e){throw Oi()}mergeWith(e){return!1}integrate(e,n){this.type._integrate(e.doc,n)}delete(e){let n=this.type._start;for(;n!==null;)n.deleted?n.id.clock<(e.beforeState.get(n.id.client)||0)&&e._mergeStructs.push(n):n.delete(e),n=n.right;this.type._map.forEach(r=>{r.deleted?r.id.clock<(e.beforeState.get(r.id.client)||0)&&e._mergeStructs.push(r):r.delete(e)}),e.changed.delete(this.type)}gc(e){let n=this.type._start;for(;n!==null;)n.gc(e,!0),n=n.right;this.type._start=null,this.type._map.forEach(r=>{for(;r!==null;)r.gc(e,!0),r=r.left}),this.type._map=new Map}write(e,n){this.type._write(e)}getRef(){return 7}}const Oq=t=>new cs(Eq[t.readTypeRef()](t)),kw=(t,e)=>{let n=e,r=0,i;do r>0&&(n=Ht(n.client,n.clock+r)),i=tc(t,n),r=n.clock-i.id.clock,n=i.redone;while(n!==null&&i instanceof cn);return{item:i,diff:r}},v1=(t,e)=>{for(;t!==null&&t.keep!==e;)t.keep=e,t=t.parent._item},Sm=(t,e,n)=>{const{client:r,clock:i}=e.id,s=new cn(Ht(r,i+n),e,Ht(r,i+n-1),e.right,e.rightOrigin,e.parent,e.parentSub,e.content.splice(n));return e.deleted&&s.markDeleted(),e.keep&&(s.keep=!0),e.redone!==null&&(s.redone=Ht(e.redone.client,e.redone.clock+n)),e.right=s,s.right!==null&&(s.right.left=s),t._mergeStructs.push(s),s.parentSub!==null&&s.right===null&&s.parent._map.set(s.parentSub,s),e.length=n,s},wN=(t,e)=>Wx(t,n=>$c(n.deletions,e)),cj=(t,e,n,r,i,s)=>{const o=t.doc,l=o.store,a=o.clientID,c=e.redone;if(c!==null)return Qr(t,c);let u=e.parent._item,d=null,f;if(u!==null&&u.deleted===!0){if(u.redone===null&&(!n.has(u)||cj(t,u,n,r,i,s)===null))return null;for(;u.redone!==null;)u=Qr(t,u.redone)}const p=u===null?e.parent:u.content.type;if(e.parentSub===null){for(d=e.left,f=e;d!==null;){let v=d;for(;v!==null&&v.parent._item!==u;)v=v.redone===null?null:Qr(t,v.redone);if(v!==null&&v.parent._item===u){d=v;break}d=d.left}for(;f!==null;){let v=f;for(;v!==null&&v.parent._item!==u;)v=v.redone===null?null:Qr(t,v.redone);if(v!==null&&v.parent._item===u){f=v;break}f=f.right}}else if(f=null,e.right&&!i){for(d=e;d!==null&&d.right!==null&&(d.right.redone||$c(r,d.right.id)||wN(s.undoStack,d.right.id)||wN(s.redoStack,d.right.id));)for(d=d.right;d.redone;)d=Qr(t,d.redone);if(d&&d.right!==null)return null}else d=p._map.get(e.parentSub)||null;const m=Fn(l,a),g=Ht(a,m),y=new cn(g,d,d&&d.lastId,f,f&&f.id,p,e.parentSub,e.content.copy());return e.redone=g,v1(y,!0),y.integrate(t,0),y};class cn extends y1{constructor(e,n,r,i,s,o,l,a){super(e,a.getLength()),this.origin=r,this.left=n,this.right=i,this.rightOrigin=s,this.parent=o,this.parentSub=l,this.redone=null,this.content=a,this.info=this.content.isCountable()?qE:0}set marker(e){(this.info&sv)>0!==e&&(this.info^=sv)}get marker(){return(this.info&sv)>0}get keep(){return(this.info&YE)>0}set keep(e){this.keep!==e&&(this.info^=YE)}get countable(){return(this.info&qE)>0}get deleted(){return(this.info&iv)>0}set deleted(e){this.deleted!==e&&(this.info^=iv)}markDeleted(){this.info|=iv}getMissing(e,n){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=Fn(n,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=Fn(n,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===ec&&this.id.client!==this.parent.client&&this.parent.clock>=Fn(n,this.parent.client))return this.parent.client;if(this.origin&&(this.left=uN(e,n,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Qr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Ti||this.right&&this.right.constructor===Ti)this.parent=null;else if(!this.parent)this.left&&this.left.constructor===cn?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===cn&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);else if(this.parent.constructor===ec){const r=tc(n,this.parent);r.constructor===Ti?this.parent=null:this.parent=r.content.type}return null}integrate(e,n){if(n>0&&(this.id.clock+=n,this.left=uN(e,e.doc.store,Ht(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(n),this.length-=n),this.parent){if(!this.left&&(!this.right||this.right.left!==null)||this.left&&this.left.right!==this.right){let r=this.left,i;if(r!==null)i=r.right;else if(this.parentSub!==null)for(i=this.parent._map.get(this.parentSub)||null;i!==null&&i.left!==null;)i=i.left;else i=this.parent._start;const s=new Set,o=new Set;for(;i!==null&&i!==this.right;){if(o.add(i),s.add(i),ih(this.origin,i.origin)){if(i.id.client{r.p===e&&(r.p=this,!this.deleted&&this.countable&&(r.index-=this.length))}),e.keep&&(this.keep=!0),this.right=e.right,this.right!==null&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const n=this.parent;this.countable&&this.parentSub===null&&(n._length-=this.length),this.markDeleted(),Rd(e.deleteSet,this.id.client,this.id.clock,this.length),fN(e,n,this.parentSub),this.content.delete(e)}}gc(e,n){if(!this.deleted)throw Dr();this.content.gc(e),n?_Y(e,this,new Ti(this.id,this.length)):this.content=new Ld(this.length)}write(e,n){const r=n>0?Ht(this.id.client,this.id.clock+n-1):this.origin,i=this.rightOrigin,s=this.parentSub,o=this.content.getRef()&Sg|(r===null?0:Br)|(i===null?0:to)|(s===null?0:Nd);if(e.writeInfo(o),r!==null&&e.writeLeftID(r),i!==null&&e.writeRightID(i),r===null&&i===null){const l=this.parent;if(l._item!==void 0){const a=l._item;if(a===null){const c=Dd(l);e.writeParentInfo(!0),e.writeString(c)}else e.writeParentInfo(!1),e.writeLeftID(a.id)}else l.constructor===String?(e.writeParentInfo(!0),e.writeString(l)):l.constructor===ec?(e.writeParentInfo(!1),e.writeLeftID(l)):Dr();s!==null&&e.writeString(s)}this.content.write(e,n)}}const uj=(t,e)=>jq[e&Sg](t),jq=[()=>{Dr()},yq,xq,gq,Cq,wq,bq,Oq,Sq,vq,()=>{Dr()}],Pq=10;class Ai extends y1{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor!==e.constructor?!1:(this.length+=e.length,!0)}integrate(e,n){Dr()}write(e,n){e.writeInfo(Pq),vt(e.restEncoder,this.length-n)}getMissing(e,n){return null}}const dj=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:{},fj="__ $YJS$ __";dj[fj]===!0&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438");dj[fj]=!0;const hj=new Map;class Lq{constructor(e){this.room=e,this.onmessage=null,this._onChange=n=>n.key===e&&this.onmessage!==null&&this.onmessage({data:bK(n.newValue||"")}),Z9(this._onChange)}postMessage(e){XD.setItem(this.room,iO(mK(e)))}close(){eK(this._onChange)}}const _q=typeof BroadcastChannel>"u"?Lq:BroadcastChannel,w1=t=>as(hj,t,()=>{const e=uo(),n=new _q(t);return n.onmessage=r=>e.forEach(i=>i(r.data,"broadcastchannel")),{bc:n,subs:e}}),zq=(t,e)=>(w1(t).subs.add(e),e),Fq=(t,e)=>{const n=w1(t),r=n.subs.delete(e);return r&&n.subs.size===0&&(n.bc.close(),hj.delete(t)),r},Na=(t,e,n=null)=>{const r=w1(t);r.bc.postMessage(e),r.subs.forEach(i=>i(e,n))},pj=0,b1=1,mj=2,Sw=(t,e)=>{vt(t,pj);const n=IY(e);Ln(t,n)},gj=(t,e,n)=>{vt(t,b1),Ln(t,NY(e,n))},$q=(t,e,n)=>gj(e,n,Tr(t)),yj=(t,e,n,r)=>{try{SY(e,Tr(t),n)}catch(i){r!=null&&r(i),console.error("Caught error while handling a Yjs update",i)}},Bq=(t,e)=>{vt(t,mj),Ln(t,e)},Uq=yj,Hq=(t,e,n,r,i)=>{const s=Lt(t);switch(s){case pj:$q(t,e,n);break;case b1:yj(t,n,r,i);break;case mj:Uq(t,n,r,i);break;default:throw new Error("Unknown message type")}return s},Vq=0,Wq=(t,e,n)=>{switch(Lt(t)){case Vq:n(e,nl(t))}},mv=3e4;class Kq extends VD{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const n=dl();this.getLocalState()!==null&&mv/2<=n-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const r=[];this.meta.forEach((i,s)=>{s!==this.clientID&&mv<=n-i.lastUpdated&&this.states.has(s)&&r.push(s)}),r.length>0&&x1(this,r,"timeout")},zi(mv/10)),e.on("destroy",()=>{this.destroy()}),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const n=this.clientID,r=this.meta.get(n),i=r===void 0?0:r.clock+1,s=this.states.get(n);e===null?this.states.delete(n):this.states.set(n,e),this.meta.set(n,{clock:i,lastUpdated:dl()});const o=[],l=[],a=[],c=[];e===null?c.push(n):s==null?e!=null&&o.push(n):(l.push(n),Qa(s,e)||a.push(n)),(o.length>0||a.length>0||c.length>0)&&this.emit("change",[{added:o,updated:a,removed:c},"local"]),this.emit("update",[{added:o,updated:l,removed:c},"local"])}setLocalStateField(e,n){const r=this.getLocalState();r!==null&&this.setLocalState({...r,[e]:n})}getStates(){return this.states}}const x1=(t,e,n)=>{const r=[];for(let i=0;i0&&(t.emit("change",[{added:[],updated:[],removed:r},n]),t.emit("update",[{added:[],updated:[],removed:r},n]))},Wu=(t,e,n=t.states)=>{const r=e.length,i=gr();vt(i,r);for(let s=0;s{const r=xl(e),i=dl(),s=[],o=[],l=[],a=[],c=Lt(r);for(let u=0;u0||l.length>0||a.length>0)&&t.emit("change",[{added:s,updated:l,removed:a},n]),(s.length>0||o.length>0||a.length>0)&&t.emit("update",[{added:s,updated:o,removed:a},n])},qq=t=>iK(t,(e,n)=>`${encodeURIComponent(n)}=${encodeURIComponent(e)}`).join("&"),Pl=0,vj=3,rc=1,Jq=2,pf=[];pf[Pl]=(t,e,n,r,i)=>{vt(t,Pl);const s=Hq(e,t,n.doc,n);r&&s===b1&&!n.synced&&(n.synced=!0)};pf[vj]=(t,e,n,r,i)=>{vt(t,rc),Ln(t,Wu(n.awareness,Array.from(n.awareness.getStates().keys())))};pf[rc]=(t,e,n,r,i)=>{Yq(n.awareness,Tr(e),n)};pf[Jq]=(t,e,n,r,i)=>{Wq(e,n.doc,(s,o)=>Gq(n,o))};const bN=3e4,Gq=(t,e)=>console.warn(`Permission denied to access ${t.url}. -${e}`),wj=(t,e,n)=>{const r=xl(e),i=gr(),s=Lt(r),o=t.messageHandlers[s];return o?o(i,r,t,n,s):console.error("Unable to compute message"),i},bj=t=>{if(t.shouldConnect&&t.ws===null){const e=new t._WS(t.url);e.binaryType="arraybuffer",t.ws=e,t.wsconnecting=!0,t.wsconnected=!1,t.synced=!1,e.onmessage=n=>{t.wsLastMessageReceived=dl();const r=wj(t,new Uint8Array(n.data),!0);Kx(r)>1&&e.send(Nn(r))},e.onerror=n=>{t.emit("connection-error",[n,t])},e.onclose=n=>{t.emit("connection-close",[n,t]),t.ws=null,t.wsconnecting=!1,t.wsconnected?(t.wsconnected=!1,t.synced=!1,x1(t.awareness,Array.from(t.awareness.getStates().keys()).filter(r=>r!==t.doc.clientID),t),t.emit("status",[{status:"disconnected"}])):t.wsUnsuccessfulReconnects++,setTimeout(bj,ia(g9(2,t.wsUnsuccessfulReconnects)*100,t.maxBackoffTime),t)},e.onopen=()=>{t.wsLastMessageReceived=dl(),t.wsconnecting=!1,t.wsconnected=!0,t.wsUnsuccessfulReconnects=0,t.emit("status",[{status:"connected"}]);const n=gr();if(vt(n,Pl),Sw(n,t.doc),e.send(Nn(n)),t.awareness.getLocalState()!==null){const r=gr();vt(r,rc),Ln(r,Wu(t.awareness,[t.doc.clientID])),e.send(Nn(r))}},t.emit("status",[{status:"connecting"}])}},gv=(t,e)=>{const n=t.ws;t.wsconnected&&n&&n.readyState===n.OPEN&&n.send(e),t.bcconnected&&Na(t.bcChannel,e,t)};class mf extends VD{constructor(e,n,r,{connect:i=!0,awareness:s=new Kq(r),params:o={},WebSocketPolyfill:l=WebSocket,resyncInterval:a=-1,maxBackoffTime:c=2500,disableBc:u=!1}={}){for(super();e[e.length-1]==="/";)e=e.slice(0,e.length-1);const d=qq(o);this.maxBackoffTime=c,this.bcChannel=e+"/"+n,this.url=e+"/"+n+(d.length===0?"":"?"+d),this.roomname=n,this.doc=r,this._WS=l,this.awareness=s,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=u,this.wsUnsuccessfulReconnects=0,this.messageHandlers=pf.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=i,this._resyncInterval=0,a>0&&(this._resyncInterval=setInterval(()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const f=gr();vt(f,Pl),Sw(f,r),this.ws.send(Nn(f))}},a)),this._bcSubscriber=(f,p)=>{if(p!==this){const m=wj(this,new Uint8Array(f),!1);Kx(m)>1&&Na(this.bcChannel,Nn(m),this)}},this._updateHandler=(f,p)=>{if(p!==this){const m=gr();vt(m,Pl),Bq(m,f),gv(this,Nn(m))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:f,updated:p,removed:m},g)=>{const y=f.concat(p).concat(m),v=gr();vt(v,rc),Ln(v,Wu(s,y)),gv(this,Nn(v))},this._exitHandler=()=>{x1(this.awareness,[r.clientID],"app closed")},fl&&typeof process<"u"&&process.on("exit",this._exitHandler),s.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval(()=>{this.wsconnected&&bN{try{return`ce-${(t==null?void 0:t.id)||"x"}-${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`ce-${Math.random()}`}})());b.useEffect(()=>{window.dispatchEvent(new Event("freemannotes:editor-modal-open"));try{const A=c.current,ne=()=>{try{e()}catch{}};window.dispatchEvent(new CustomEvent("freemannotes:back/register",{detail:{id:A,onBack:ne}}))}catch{}return()=>{try{window.dispatchEvent(new CustomEvent("freemannotes:back/unregister",{detail:{id:c.current}}))}catch{}window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}},[]);const u=b.useRef((()=>{try{return`c${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`c${Math.random()}`}})()),d=b.useRef(null),[,f]=b.useState(0),p=b.useRef(!1),m=b.useRef(!1);B.useEffect(()=>{m.current=!1;const A=window.setTimeout(()=>{m.current=!0},160);return()=>window.clearTimeout(A)},[]);const[g,y]=b.useState(()=>(t.items||[]).map((A,ne)=>{const we=typeof(A==null?void 0:A.uid)=="string"&&A.uid?String(A.uid):typeof(A==null?void 0:A.id)=="number"?`id-${Number(A.id)}`:`init-${ne}-${Math.random().toString(36).slice(2,8)}`;return{indent:0,uid:we,key:we,...A}})),[v,w]=b.useState(!1),[x,E]=b.useState(!0),[k,M]=b.useState(null),[N,z]=b.useState(null),X=b.useRef([]),[L,H]=b.useState(null),[W,te]=b.useState(null),[ue,de]=b.useState(t.title||""),[Ae,me]=b.useState(r??(t.viewerColor||t.color||"")),[q,se]=b.useState(!1),[xe,Me]=b.useState(!1),[Q,Je]=b.useState(!1),[_t,J]=b.useState(!1),[at,$t]=b.useState((t.images||[]).map(A=>({id:Number(A.id),url:String(A.url)}))),[ct,nt]=b.useState(!1);B.useEffect(()=>{try{const A=(t.images||[]).map(ne=>({id:Number(ne.id),url:String(ne.url)}));$t(ne=>{try{if(ne.length===A.length&&ne.every((we,Z)=>{var Ie,Ve;return Number(we.id)===Number((Ie=A[Z])==null?void 0:Ie.id)&&String(we.url)===String((Ve=A[Z])==null?void 0:Ve.url)}))return ne}catch{}return A})}catch{}},[t.images]);const[At,Bt]=b.useState(null),[wt,ce]=b.useState([]),Ee=b.useRef([]),[Ke,ze]=b.useState(!1),Pe=b.useRef(null);function it(){var we;let A=d.current;if(A&&A.isFocused)return A;const ne=typeof document<"u"&&((we=document.getSelection())==null?void 0:we.anchorNode)||null;if(ne){const Z=Ee.current.find(Ie=>{var Ve;try{return!!(Ie&&((Ve=Ie.view)!=null&&Ve.dom)&&Ie.view.dom.contains(ne))}catch{return!1}});Z&&(A=Z)}else{const Z=typeof document<"u"?document.activeElement:null;if(Z){const Ie=Ee.current.find(Ve=>{try{return!!(Ve&&Ve.view&&Ve.view.dom&&(Ve.view.dom===Z||Ve.view.dom.contains(Z)))}catch{return!1}});Ie&&(A=Ie)}}if(!A||!(A!=null&&A.isFocused)){const Z=Ee.current.find(Ie=>!!(Ie&&Ie.isFocused));Z&&(A=Z)}return A||null}function ot(A){var Rt;const ne=it();if(!ne)return;const we=(Rt=ne.state)==null?void 0:Rt.selection;if(!we)return;if(!we.empty){const be=ne.chain().focus();A==="bold"?be.toggleBold():A==="italic"?be.toggleItalic():be.toggleUnderline(),be.run();try{f(qe=>qe+1)}catch{}return}let Z=we.from,Ie=we.to;try{const be=we.$from;let qe=be.depth;for(;qe>0&&!be.node(qe).isBlock;)qe--;Z=be.start(qe),Ie=be.end(qe)}catch{}const Ve=ne.chain().focus().setTextSelection({from:Z,to:Ie});A==="bold"?Ve.toggleBold():A==="italic"?Ve.toggleItalic():Ve.toggleUnderline(),Ve.run();try{ne.chain().focus().setTextSelection(we.from).run()}catch{}try{const be=we.from;requestAnimationFrame(()=>{var qe,Dt;try{try{(Dt=(qe=ne.view)==null?void 0:qe.focus)==null||Dt.call(qe)}catch{}ne.chain().focus().setTextSelection(be).run()}catch{}})}catch{}try{f(be=>be+1)}catch{}}function xt(A){var st,ft;const ne=it();if(!ne)return!1;const we=(st=ne.state)==null?void 0:st.selection;if(!we)return!1;const Z=(((ft=ne.schema)==null?void 0:ft.marks)||{})[A];if(!Z)return!1;const Ie=we.$from;let Ve=Ie.depth;for(;Ve>0&&!Ie.node(Ve).isBlock;)Ve--;const Rt=Ie.start(Ve),be=Ie.end(Ve);let qe=!1,Dt=!0;try{ne.state.doc.nodesBetween(Rt,be,yt=>{yt&&yt.isText&&(qe=!0,Z.isInSet(yt.marks)||(Dt=!1))})}catch{}return qe&&Dt}const oe=B.useMemo(()=>new Fi,[t.id]),Ye=B.useRef(null),Ge=B.useRef(null),Y=B.useRef(null),ge=B.useRef(null),De=B.useRef(!1),Be=B.useRef(!1),Le=B.useCallback(()=>{if(!Be.current){Be.current=!0;try{window.dispatchEvent(new CustomEvent("freemannotes:draft/dirty",{detail:{noteId:Number(t==null?void 0:t.id)}}))}catch{}}},[t==null?void 0:t.id]),j=b.useRef(null),G=b.useRef(null),fe=b.useRef(void 0),je=b.useRef({x:0,y:0}),Ue=b.useRef(null),We=b.useRef(!1),Se=b.useRef(0),Xe=b.useRef(null),Tt=b.useRef(null),rt=b.useRef(null),Wt=b.useRef(0),Mt=b.useRef({parentId:null,makeNested:!1}),dn=b.useRef(null),[It,Ot]=b.useState(null),tn=B.useMemo(()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(pointer: coarse)").matches}catch{return!1}},[]),ee=B.useMemo(()=>{const A={hoverDownPct:.7,hoverUpPct:.7,indentPx:16,ghostOverlapPct:.7,ghostOverlapUpPct:.7,ghostOverlapDownPct:.7};return tn?{...A,hoverClearMs:0,directionLockPx:0}:{...A,hoverClearMs:80,directionLockPx:6}},[tn]),re=b.useRef(0),Oe=b.useRef(0),Ze=B.useCallback(()=>`u${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`,[]),pe=B.useCallback(A=>typeof A.id=="number"?A.id:A.uid||`tmp-${Math.random().toString(36).slice(2,6)}`,[]);function Ce(){const A=document.querySelector(".image-dialog .dialog-body");return A||document.querySelector(".image-dialog")}function Fe(){We.current=!1,Ue.current!=null&&(cancelAnimationFrame(Ue.current),Ue.current=null)}function ut(){if(Ue.current!=null)return;We.current=!0;const A=()=>{if(!We.current){Ue.current=null;return}const ne=Ce();if(!ne){Ue.current=requestAnimationFrame(A);return}const we=ne.getBoundingClientRect(),Z=Se.current,Ie=Math.max(56,Math.min(96,we.height*.18)),Ve=14;let Rt=0;if(Zwe.bottom-Ie){const be=Math.max(0,Math.min(1,(Z-(we.bottom-Ie))/Ie));Rt=Math.max(1,Math.round(Math.pow(be,1.65)*Ve))}Rt!==0&&(ne.scrollTop=ne.scrollTop+Rt),Ue.current=requestAnimationFrame(A)};Ue.current=requestAnimationFrame(A)}b.useEffect(()=>{const A=`note-${t.id}`,we=`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/collab`,Z=new mf(we,A,oe);Ye.current=Z;const Ie=oe.getArray("checklist");Ge.current=Ie;const Ve=oe.getMap("meta");Y.current=Ve;const Rt=async()=>{try{const ft=await fetch(`/api/notes/${t.id}/images`,{headers:{Authorization:`Bearer ${l}`}});if(!ft.ok)return;const yt=await ft.json(),bt=(yt&&yt.images||[]).map(mt=>({id:Number(mt.id),url:String(mt.url)}));$t(bt),i&&i(bt)}catch{}},be=()=>{try{const ft=Ve.get("imagesTick");if(!ft||!ft.t||ft.by&&String(ft.by)===String(u.current))return;Rt()}catch{}};try{Ve.observe(be)}catch{}const qe={current:!1},Dt=ft=>{if(ft){De.current=!0;try{const yt=Ge.current;if(yt&&yt.length===0&&!qe.current){const bt=(t.items||[]).map(mt=>{const Qt=new xs;typeof mt.id=="number"&&Qt.set("id",mt.id);const dt=typeof(mt==null?void 0:mt.uid)=="string"&&mt.uid?String(mt.uid):typeof(mt==null?void 0:mt.id)=="number"?`id-${Number(mt.id)}`:`u${Math.random().toString(36).slice(2,8)}`;return Qt.set("uid",dt),Qt.set("content",String(mt.content||"")),Qt.set("checked",!!mt.checked),Qt.set("indent",Number(mt.indent||0)),Qt});bt.length&&yt.insert(0,bt),qe.current=!0}}catch{}}};Z.on("sync",Dt);const st=(ft,yt)=>{try{yt&&yt.local&&Le()}catch{}try{const bt=Ie.toArray().map((dt,on)=>({id:typeof dt.get("id")=="number"?Number(dt.get("id")):void 0,uid:dt.get("uid")?String(dt.get("uid")):void 0,content:String(dt.get("content")||""),checked:!!dt.get("checked"),indent:Number(dt.get("indent")||0),key:dt.get("uid")?String(dt.get("uid")):typeof dt.get("id")=="number"?Number(dt.get("id")):`i${on}`})),mt=!!(d.current&&d.current.isFocused);((()=>{try{if(bt.length!==g.length)return!0;for(let dt=0;dt{var dt;try{const on=bt.map((Ct,Pt)=>{const ln={content:Ct.content,checked:!!Ct.checked,ord:Pt,indent:Ct.indent||0};return typeof Ct.id=="number"&&(ln.id=Ct.id),ln}),Yt=await fetch(`/api/notes/${t.id}/items`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({items:on})});if(Yt.ok){const Ct=await Yt.json(),Pt=Array.isArray(Ct.items)?Ct.items:[],ln=Ge.current;if(ln&&Pt.length===ln.length)for(let wi=0;wi{try{Ie.unobserveDeep(st)}catch{}try{Z.off("sync",Dt)}catch{}try{Ve.unobserve(be)}catch{}try{Z.destroy()}catch{}}},[t.id,l,oe]);const zt=B.useCallback(()=>{try{const A=Y.current;if(!A)return;A.set("imagesTick",{t:Date.now(),by:u.current})}catch{}},[]);b.useEffect(()=>{try{$t((t.images||[]).map(A=>({id:Number(A.id),url:String(A.url)})))}catch{}},[t.images]);function kt(A,ne){var Ve;const we=ne,Z=((Ve=A[ne])==null?void 0:Ve.indent)||0;let Ie=ne+1;for(;IeZ;)Ie++;return[we,Ie]}b.useEffect(()=>{X.current=X.current.slice(0,g.length)},[g.length]),b.useEffect(()=>{requestAnimationFrame(()=>{X.current.forEach(A=>{try{A.style.height="auto",A.style.height=Math.max(22,A.scrollHeight)+"px"}catch{}})})},[g,It]);function Jt(A,ne){if(rt.current!=="vertical"||k===null)return"";const[we,Z]=kt(ne,k);return N===null||A>=we&&AZ-1&&A<=N?"shift-up":"":k>N&&A>=N&&A=0&&AZ.map((Ie,Ve)=>Ve===A?{...Ie,content:ne}:Ie));requestAnimationFrame(()=>{const Z=X.current[A];if(Z)try{Z.style.height="auto",Z.style.height=Math.max(22,Z.scrollHeight)+"px"}catch{}})}function rn(A){const ne=Ge.current;if(ne){const we=typeof A=="number"?Math.max(0,Math.min(A,ne.length)):ne.length,Z=new xs;Z.set("content",""),Z.set("checked",!1),Z.set("indent",0),Z.set("uid",Ze()),ne.insert(we,[Z]),H(we)}else y(we=>{const Z=typeof A=="number"?Math.max(0,Math.min(A,we.length)):we.length,Ie=Ze(),Ve=[...we];return Ve.splice(Z,0,{uid:Ie,content:"",checked:!1,indent:0}),Ve}),H(typeof A=="number"?A:g.length+1)}function Pr(A){const ne=Ge.current;if(ne){const we=ne.get(A);if(!we)return;const Z=!we.get("checked");if(typeof we.get("id")=="number"&&we.set("id",we.get("id")),we.set("checked",Z),Number(we.get("indent")||0)===0)for(let Ve=A+1;Ve0)Rt.set("checked",Z);else break}}else y(we=>we.map((Z,Ie)=>{if(Ie===A){const Ve=!Z.checked,Rt=Number(Z.indent||0),be={...Z,checked:Ve};if(Rt===0){const qe=[...we];qe[Ie]=be;for(let Dt=Ie+1;Dt0;Dt++)qe[Dt]={...qe[Dt],checked:Ve};return qe[Ie]}return be}return Z}))}function I(A,ne,we){const Z=Ge.current;if(!Z)return;const Ie=Math.max(0,Math.min(A,Z.length)),Rt=Math.max(Ie,Math.min(ne,Z.length))-Ie;if(Rt<=0)return;let be=Math.max(0,Math.min(we,Z.length));be>Ie&&(be=be-Rt),be<0&&(be=0),be>Z.length&&(be=Z.length);const qe=[];for(let st=0;st{const ft=new xs;return typeof st.id=="number"&&ft.set("id",st.id),st.uid&&ft.set("uid",st.uid),ft.set("content",st.content),ft.set("checked",st.checked),ft.set("indent",st.indent),ft});Z.insert(be,Dt)}function U(){Fe(),G.current&&(G.current.remove(),G.current=null),fe.current&&(document.removeEventListener("dragover",fe.current),fe.current=void 0),document.querySelectorAll(".checklist-item.drag-source").forEach(A=>A.classList.remove("drag-source")),M(null),z(null),Ot(null),j.current&&(cancelAnimationFrame(j.current),j.current=null),Xe.current&&(clearTimeout(Xe.current),Xe.current=null),Tt.current=null,rt.current=null,Mt.current={parentId:null,makeNested:!1};try{const A=document.querySelector(".image-dialog");A&&A.style.removeProperty("--checklist-item-shift")}catch{}}async function K(){w(!0);try{if((t.title||"")!==ue){const Ie=await fetch(`/api/notes/${t.id}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({title:ue})});if(!Ie.ok)throw new Error(await Ie.text())}const A=Ge.current,we=(A?A.toArray().map(Ie=>({id:typeof Ie.get("id")=="number"?Number(Ie.get("id")):void 0,content:String(Ie.get("content")||""),checked:!!Ie.get("checked"),indent:Number(Ie.get("indent")||0)})):g).map((Ie,Ve)=>{const Rt={content:Ie.content,checked:!!Ie.checked,ord:Ve,indent:Ie.indent||0};return typeof Ie.id=="number"&&(Rt.id=Ie.id),Rt}),Z=await fetch(`/api/notes/${t.id}/items`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({items:we})});if(!Z.ok)throw new Error(await Z.text());n&&n({items:we,title:ue}),e()}catch(A){console.error("Failed to save checklist",A),window.alert("Failed to save checklist")}finally{w(!1)}}function le(A){if(!A)return;const ne=A.replace("#",""),we=ne.length===3?ne.split("").map(bt=>bt+bt).join(""):ne;if(we.length!==6)return;const Z=parseInt(we.slice(0,2),16)/255,Ie=parseInt(we.slice(2,4),16)/255,Ve=parseInt(we.slice(4,6),16)/255,Rt=bt=>bt<=.03928?bt/12.92:Math.pow((bt+.055)/1.055,2.4),be=Rt(Z),qe=Rt(Ie),Dt=Rt(Ve),st=.2126*be+.7152*qe+.0722*Dt,ft=(1+.05)/(st+.05),yt=(st+.05)/(0+.05);return ft>=yt?"#ffffff":"#000000"}const $={},S=Ae?le(Ae)||"var(--muted)":void 0;Ae&&($["--checkbox-bg"]=Ae),S&&($["--checkbox-border"]=S),S&&($["--checkbox-stroke"]=S),Ae&&($["--checkbox-checked-bg"]=Ae),S&&($["--checkbox-checked-mark"]=S),Ae&&($.background=Ae,S&&($.color=S),$["--editor-surface"]=Ae);async function V(A){const ne=A||"";try{const we=await fetch(`/api/notes/${t.id}/prefs`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({color:ne})});if(!we.ok)throw new Error(await we.text())}catch(we){console.error("Failed to save color preference",we),window.alert("Failed to save color preference")}me(ne);try{s==null||s(ne)}catch{}}function he(A){if(J(!1),!A)return;const ne=-Date.now();$t(we=>{const Ie=we.some(Ve=>String(Ve.url)===String(A))?we:[...we,{id:ne,url:String(A)}];return i&&i(Ie),Ie});try{nt(!0)}catch{}(async()=>{try{const we=await fetch(`/api/notes/${t.id}/images`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({url:A})});if(!we.ok)throw new Error(await we.text());const Ie=(await we.json()).image||null;Ie&&Ie.id&&Ie.url&&($t(Ve=>{const Rt=Number(Ie.id),be=String(Ie.url),qe=Ve.map(ft=>Number(ft.id)===ne||String(ft.url)===String(A)?{id:Rt,url:be}:ft),st=qe.some(ft=>Number(ft.id)===Rt)?qe:[...qe,{id:Rt,url:be}];return i&&i(st),st}),zt())}catch(we){console.error("Failed to attach image",we),window.alert("Failed to attach image")}})()}function tt(A){ce(ne=>ne.find(we=>we.id===A.id)?ne:[...ne,A]),Je(!1),(async()=>{try{const ne=await fetch(`/api/notes/${t.id}/collaborators`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({email:A.email})});if(!ne.ok)throw new Error(await ne.text())}catch(ne){console.error("Failed to add collaborator",ne),window.alert("Failed to add collaborator")}})()}async function Ft(A){try{const ne=await fetch(`/api/notes/${t.id}/collaborators/${A}`,{method:"DELETE",headers:{Authorization:`Bearer ${l}`}});if(!ne.ok)throw new Error(await ne.text())}catch(ne){console.error("Failed to remove collaborator",ne),window.alert("Failed to remove collaborator")}}async function Kt(A){const ne=at,we=ne.filter(Z=>Number(Z.id)!==Number(A));$t(we),i&&i(we);try{const Z=await fetch(`/api/notes/${t.id}/images/${A}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`}});if(!Z.ok)throw new Error(await Z.text());zt()}catch(Z){console.error("Failed to delete image",Z),$t(ne),i&&i(ne),window.alert("Failed to delete image")}}function Zt(A){const ne=Ge.current;ne?A>=0&&Awe.filter((Z,Ie)=>Ie!==A))}const $n=h.jsx("div",{className:"image-dialog-backdrop",onMouseDown:A=>{A.target===A.currentTarget&&K()},children:h.jsxs("div",{className:"image-dialog checklist-editor editor-dialog",role:"dialog","aria-modal":!0,style:{width:"min(1000px, 86vw)",...$},children:[h.jsxs("div",{className:"dialog-header",children:[h.jsx("strong",{children:"Edit checklist"}),h.jsx("div",{style:{display:"flex",gap:8,alignItems:"center"},children:h.jsx("button",{className:"icon-close",onClick:e,children:"✕"})})]}),h.jsxs("div",{className:"dialog-body",children:[h.jsxs("div",{className:"rt-sticky-header",children:[h.jsx("div",{style:{display:"flex",gap:12,marginBottom:8},children:h.jsx("input",{placeholder:"Checklist title",value:ue,onChange:A=>{de(A.target.value);try{Le()}catch{}},style:{flex:1,background:"transparent",border:"none",color:"inherit",fontWeight:600,fontSize:18}})}),h.jsxs("div",{className:"rt-toolbar",style:{display:"flex",gap:8,alignItems:"center",marginBottom:0},onMouseDown:A=>A.preventDefault(),onPointerDown:A=>A.preventDefault(),onPointerUp:A=>A.preventDefault(),children:[h.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:A=>{A.preventDefault(),A.stopPropagation(),p.current=!0,ot("bold")},onPointerUp:A=>{A.preventDefault(),A.stopPropagation()},onMouseDownCapture:A=>{A.preventDefault(),A.stopPropagation()},onMouseUp:A=>A.preventDefault(),onClick:()=>{if(p.current){p.current=!1;return}ot("bold")},"aria-pressed":xt("bold"),children:"B"}),h.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:A=>{A.preventDefault(),A.stopPropagation(),p.current=!0,ot("italic")},onPointerUp:A=>{A.preventDefault(),A.stopPropagation()},onMouseDownCapture:A=>{A.preventDefault(),A.stopPropagation()},onMouseUp:A=>A.preventDefault(),onClick:()=>{if(p.current){p.current=!1;return}ot("italic")},"aria-pressed":xt("italic"),children:"I"}),h.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:A=>{A.preventDefault(),A.stopPropagation(),p.current=!0,ot("underline")},onPointerUp:A=>{A.preventDefault(),A.stopPropagation()},onMouseDownCapture:A=>{A.preventDefault(),A.stopPropagation()},onMouseUp:A=>A.preventDefault(),onClick:()=>{if(p.current){p.current=!1;return}ot("underline")},"aria-pressed":xt("underline"),children:"U"})]})]}),(It??g).length===0&&h.jsx("div",{style:{marginBottom:8},children:h.jsx("button",{className:"btn",onClick:()=>rn(0),children:"Add an item"})}),(It??g).filter(A=>!A.checked).map((A,ne)=>{const we=It??g,Z=we.indexOf(A),Ie=Jt(Z,we),Ve=(()=>{try{return pe(A)}catch{return A.key??Z}})(),Rt=W!=null&&String(W)===String(Ve);return h.jsxs("div",{className:`checklist-item ${Ie}${Rt?" is-active":""}`,style:{marginLeft:(A.indent||0)*18},draggable:!1,onPointerCancel:()=>{dn.current=null},onDragOver:be=>{be.preventDefault();const Dt=be.currentTarget.getBoundingClientRect();j.current&&cancelAnimationFrame(j.current),j.current=requestAnimationFrame(()=>{if(k===null)return;if(rt.current==="horizontal"&&Tt.current){const yt=(be.clientX||0)-Tt.current.x;if(yt>ee.indentPx&&Z>0){let bt=null;for(let mt=Z-1;mt>=0;mt--)if((g[mt].indent||0)===0){bt=g[mt].id??null;break}Mt.current={parentId:bt,makeNested:!0}}else yt<-ee.indentPx?Mt.current={parentId:null,makeNested:!1}:Mt.current={parentId:null,makeNested:!1};return}let st=!1;const ft=G.current?G.current.getBoundingClientRect():null;if(ft){const bt=Math.max(0,Math.min(ft.bottom,Dt.bottom)-Math.max(ft.top,Dt.top))/(Dt.height||1),mt=(be.clientY||0)>(Oe.current||be.clientY||0);Oe.current=be.clientY||0;const Qt=mt?ee.ghostOverlapDownPct:ee.ghostOverlapUpPct;st=bt>=Qt}st?(Xe.current&&(clearTimeout(Xe.current),Xe.current=null),z(yt=>yt===Z?yt:Z)):N===Z&&Xe.current===null&&(Xe.current=window.setTimeout(()=>{z(yt=>yt===Z?null:yt),Xe.current=null},Math.max(0,ee.hoverClearMs)))})},onDrop:be=>{be.preventDefault();const qe=k!==null?k:parseInt(be.dataTransfer.getData("text/plain")||"-1",10),Dt=Z;if(qe>=0){const st=Tt.current?(be.clientX||0)-Tt.current.x:0;if(rt.current==="horizontal"||Math.abs(st)>ee.indentPx){const yt=Ge.current;if(yt){if(st>ee.indentPx){const[bt,mt]=kt(g,qe);let Qt=null;for(let dt=qe-1;dt>=0;dt--)if((g[dt].indent||0)===0){Qt=dt;break}if(bt>=0)if(Qt!=null)if(bt===Dt)for(let dt=bt;dtbt&&(on=Qt-(mt-bt)+1);on0;)on++;const Yt=dt.map(Ct=>{const Pt=new xs;return typeof Ct.id=="number"&&Pt.set("id",Ct.id),Ct.uid&&Pt.set("uid",Ct.uid),Pt.set("content",Ct.content),Pt.set("checked",Ct.checked),Pt.set("indent",1),Pt});yt.insert(on,Yt)}else for(let dt=bt;dt=0)for(let Qt=bt;Qt{N===Z&&z(null),j.current&&(cancelAnimationFrame(j.current),j.current=null)},children:[h.jsxs("div",{className:"drag-gutter",style:{cursor:"grab",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",touchAction:"none"},onMouseDown:be=>{be.preventDefault()},onPointerDown:be=>{var st,ft;try{be.preventDefault()}catch{}try{be.stopPropagation()}catch{}be.currentTarget.setPointerCapture(be.pointerId),Se.current=be.clientY;const qe=It??g,Dt=typeof((st=qe[Z])==null?void 0:st.id)=="number"?qe[Z].id:((ft=qe[Z])==null?void 0:ft.uid)??null;dn.current={active:!0,startX:be.clientX,startY:be.clientY,idx:Z,draggedId:Dt,pointerId:be.pointerId},rt.current=null,Ot(null)},onPointerMove:be=>{const qe=dn.current;if(!qe||!qe.active)return;try{be.preventDefault()}catch{}Se.current=be.clientY;const Dt=be.clientX-qe.startX,st=be.clientY-qe.startY,ft=ee.directionLockPx;if(rt.current===null&&(Math.abs(Dt)>ft||Math.abs(st)>ft)&&(rt.current=Math.abs(Dt)>Math.abs(st)?"horizontal":"vertical"),rt.current==="vertical"){if(!G.current){const mt=Array.from(document.querySelectorAll(".image-dialog .checklist-item:not(.completed)")),Qt=qe.idx??-1,on=fn(Qt,It??g),Yt=mt[on];if(Yt){const Ct=Yt.getBoundingClientRect();je.current={x:be.clientX-Ct.left,y:be.clientY-Ct.top};const Pt=Yt.cloneNode(!0);Pt.style.position="fixed",Pt.style.left=Ct.left+"px",Pt.style.top=be.clientY-(je.current.y||0)+"px",Pt.style.width=Ct.width+"px",Pt.style.pointerEvents="none",Pt.style.zIndex="9999",Pt.style.opacity="0.98",Pt.classList.add("checklist-ghost"),document.body.appendChild(Pt),G.current=Pt;try{Yt.classList.add("drag-source")}catch{}M(Qt),z(Qt),Wt.current=Ct.left;try{const ln=document.querySelector(".image-dialog");ln&&ln.style.setProperty("--checklist-item-shift",`${Math.round(Ct.height)}px`)}catch{}}}G.current&&(G.current.style.left=Wt.current+"px",G.current.style.top=be.clientY-(je.current.y||0)+"px",ut());const bt=Array.from(document.querySelectorAll(".image-dialog .checklist-item:not(.completed)"));if(bt.length){let mt=null;const Qt=G.current?G.current.getBoundingClientRect():{top:be.clientY-10,bottom:be.clientY+10},dt=be.clientY>(re.current||be.clientY);re.current=be.clientY;const on=typeof ee.ghostOverlapUpPct=="number"&&typeof ee.ghostOverlapDownPct=="number"?dt?ee.ghostOverlapDownPct:ee.ghostOverlapUpPct:ee.ghostOverlapPct;for(let Ct=0;Ct=on){mt=Ct;break}}const Yt=It??g;if(mt!=null){const Ct=wn(mt,Yt);Ct!==N&&z(Ct)}}return}const yt=ee.indentPx;if(rt.current==="horizontal"){const bt=qe.draggedId??null;if(bt==null)return;const mt=g,Qt=mt.findIndex(dt=>typeof bt=="number"?dt.id===bt:dt.uid===bt);if(Qt<0)return;if(Qt===0&&Dt>0){Ot(null);return}if(Dt>yt){const[dt,on]=kt(mt,Qt),Yt=[...mt],Ct=Yt.splice(dt,on-dt);let Pt=null;for(let ln=Qt-1;ln>=0;ln--)if((mt[ln].indent||0)===0){Pt=ln;break}if(Pt!=null){const ln=typeof mt[Pt].id=="number"?mt[Pt].id:mt[Pt].uid,wi=Yt.findIndex(us=>typeof ln=="number"?us.id===ln:us.uid===ln);let $i=wi>=0?wi+1:Math.min(dt,Yt.length);for(;$i0;)$i++;const Hc=Ct.map(us=>({...us,indent:1}));Yt.splice($i,0,...Hc)}else{let ln=Math.min(dt,Yt.length);for(;ln0;)ln++;const wi=Ct.map($i=>({...$i,indent:1}));Yt.splice(ln,0,...wi)}Ot(Yt)}else if(Dt<-yt){const[dt,on]=kt(mt,Qt),Yt=[...mt];for(let Ct=dt;Ct{try{be.currentTarget.releasePointerCapture(be.pointerId)}catch{}if(dn.current=null,It){const qe=Ge.current;if(qe)try{for(let Dt=0;Dt{const bt=yt.get("id"),mt=yt.get("uid");return typeof st.id=="number"&&typeof bt=="number"?Number(st.id)===Number(bt):st.uid&&mt?String(st.uid)===String(mt):!1});if(ft>=0){const yt=qe.get(ft);try{yt.set("indent",Number(st.indent||0))}catch{}try{yt.set("checked",!!st.checked)}catch{}try{yt.set("content",String(st.content||""))}catch{}}}}catch{}Ot(null),rt.current=null,U();return}if(rt.current==="vertical"&&k!==null){const qe=k,Dt=g,[st,ft]=kt(Dt,qe);if(N!==null){const yt=qe=st&&yt{be.stopPropagation(),Pr(Z)},onPointerDown:be=>{be.stopPropagation()},onPointerUp:be=>{be.stopPropagation()},children:A.checked&&h.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:h.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),h.jsx("div",{style:{flex:1},children:h.jsx(Ix,{value:A.content||"",onChange:be=>nn(Z,be),onEnter:()=>rn(Z+1),autoFocus:L===Z,onFocus:be=>{d.current=be,Ee.current[Z]=be;try{te(pe(A))}catch{}f(qe=>qe+1),L===Z&&H(null)}})}),h.jsx("button",{className:"delete-item",onClick:be=>{if(be.stopPropagation(),!(W!=null&&String(W)===String(Ve))){try{te(Ve)}catch{}try{H(Z)}catch{}return}Zt(Z)},"aria-label":"Delete item",children:"✕"})]},A.key??Z)}),h.jsxs("div",{style:{marginTop:12},children:[h.jsx("button",{className:"btn completed-toggle",onClick:()=>E(A=>!A),"aria-expanded":x,"aria-controls":`editor-completed-${t.id}`,children:h.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[h.jsx("span",{style:{transform:x?"rotate(90deg)":"rotate(0deg)",display:"inline-block"},children:"▸"}),h.jsxs("span",{children:[g.filter(A=>A.checked).length," completed items"]})]})}),x&&(It??g).filter(A=>A.checked).map((A,ne)=>{const Z=(It??g).indexOf(A),Ie="",Ve=(()=>{try{return pe(A)}catch{return A.key??Z}})(),Rt=(()=>{try{return W!=null&&String(W)===String(Ve)}catch{return!1}})();return h.jsxs("div",{className:`checklist-item completed ${Ie}${Rt?" is-active":""}`,style:{marginLeft:(A.indent||0)*18},draggable:!1,onClick:be=>{try{be.stopPropagation()}catch{}try{te(Ve)}catch{}},children:[h.jsx("div",{style:{width:20}}),h.jsx("div",{className:`checkbox-visual ${A.checked?"checked":""}`,onClick:()=>Pr(Z),children:A.checked&&h.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:h.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})}),h.jsx("div",{style:{flex:1,textDecoration:"line-through",minWidth:0},children:h.jsx("div",{className:"rt-html",dangerouslySetInnerHTML:{__html:ka.sanitize(String(A.content||""),{USE_PROFILES:{html:!0}})}})}),h.jsx("button",{className:"delete-item",onClick:be=>{if(be.stopPropagation(),!(W!=null&&String(W)===String(Ve))){try{te(Ve)}catch{}return}Zt(Z)},"aria-label":"Delete item",children:"✕"})]},A.key??Z)})]})]}),at&&at.length>0&&h.jsxs("div",{className:"editor-images",style:{marginTop:10,marginBottom:8},children:[h.jsx("button",{type:"button",className:"btn editor-images-toggle",onClick:()=>nt(A=>!A),"aria-expanded":ct,children:h.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[h.jsx("span",{style:{transform:ct?"rotate(90deg)":"rotate(0deg)",display:"inline-block"},children:"▸"}),h.jsxs("span",{children:["Images (",at.length,")"]})]})}),ct&&h.jsx("div",{className:"editor-images-grid",style:{marginTop:8},children:at.map(A=>h.jsxs("div",{className:"note-image",role:"button",tabIndex:0,onClick:()=>Bt(A.url),onKeyDown:ne=>{(ne.key==="Enter"||ne.key===" ")&&(ne.preventDefault(),Bt(A.url))},style:{cursor:"zoom-in",position:"relative"},children:[h.jsx("img",{src:A.url,alt:"note image"}),h.jsx("button",{className:"image-delete","aria-label":"Delete image",title:"Delete image",onClick:ne=>{ne.stopPropagation(),Kt(A.id)},style:{position:"absolute",right:6,bottom:6},children:"🗑️"})]},A.id))})]}),h.jsxs("div",{className:"dialog-footer",style:{borderTop:S?`1px solid ${S}`:void 0},children:[h.jsxs("div",{className:"note-actions",style:{marginRight:"auto",display:"inline-flex",gap:8,justifyContent:"flex-start",color:S},children:[h.jsx("button",{className:"tiny palette",onClick:()=>se(!0),"aria-label":"Change color",title:"Change color",children:h.jsx(Xs,{icon:lf,className:"palette-svg"})}),h.jsx("button",{className:"tiny",onClick:()=>Me(!0),"aria-label":"Reminder",title:"Reminder",children:h.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),h.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),h.jsx("button",{className:"tiny",onClick:()=>Je(!0),"aria-label":"Collaborators",title:"Collaborators",children:h.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"}),h.jsx("path",{d:"M6 14c-1.66 0-3 1.34-3 3v1h9.5c-.2-.63-.5-1.23-.9-1.76C11.7 15.6 9.9 14 6 14z"}),h.jsx("path",{d:"M20 16v2h-2v2h-2v-2h-2v-2h2v-2h2v2z"})]})}),h.jsx("button",{className:"tiny",onClick:()=>J(!0),"aria-label":"Add image",title:"Add image",children:h.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:h.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5C3.9 3 3 3.9 3 5v14h18zM8.5 13.5l2.5 3L14.5 12l4.5 7H5l3.5-5.5z"})})}),o&&h.jsx("button",{ref:Pe,className:"tiny editor-more",onClick:A=>{A.stopPropagation(),ze(ne=>!ne)},"aria-label":"More",title:"More",children:"⋮"})]}),h.jsxs("div",{style:{marginLeft:"auto",display:"flex",gap:8},children:[h.jsx("button",{className:"btn",onClick:e,children:"Cancel"}),h.jsx("button",{className:"btn",onClick:K,disabled:v,children:v?"Saving...":"Save"})]})]})]})});if(typeof document<"u"){const A=zn.createPortal($n,document.body);return h.jsxs(h.Fragment,{children:[A,o&&Ke&&h.jsx(Hx,{anchorRef:Pe,itemsCount:o.onMoveToCollection?5:4,onClose:()=>ze(!1),onDelete:o.onDelete,onMoveToCollection:o.onMoveToCollection,onAddLabel:o.onAddLabel,onUncheckAll:o.onUncheckAll,onCheckAll:o.onCheckAll,onSetWidth:o.onSetWidth}),q&&h.jsx(ef,{anchorRef:void 0,onPick:V,onClose:()=>se(!1)}),xe&&h.jsx(tf,{onClose:()=>Me(!1),onSet:ne=>{Me(!1),ne&&window.alert(`Reminder set (UI-only): ${ne}`)}}),Q&&h.jsx(xc,{onClose:()=>Je(!1),onSelect:tt,current:(()=>{const ne=[];try{const we=a&&a.id?Number(a.id):void 0,Z=t.owner||null;Z&&typeof Z.id=="number"&&Z.id!==we&&ne.push({userId:Number(Z.id),email:String(Z.email||""),name:typeof Z.name=="string"?Z.name:void 0});const Ie=t.collaborators||[];for(const Ve of Ie){const Rt=Ve&&(Ve.user||{}),be=typeof Rt.id=="number"?Number(Rt.id):typeof Ve.userId=="number"?Number(Ve.userId):void 0,qe=typeof Rt.email=="string"?String(Rt.email):void 0,Dt=typeof Rt.name=="string"?String(Rt.name):void 0;be&&qe&&ne.push({collabId:Number(Ve.id),userId:be,email:qe,name:Dt})}}catch{}return ne})(),ownerId:typeof((sn=t.owner)==null?void 0:sn.id)=="number"?Number(t.owner.id):a==null?void 0:a.id,onRemove:Ft}),_t&&h.jsx(nf,{onClose:()=>J(!1),onAdd:he}),At&&h.jsx(_R,{url:At,onClose:()=>Bt(null)})]})}return $n}var Qq=mn.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:null}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:t=>{const e=t.style.textAlign;return this.options.alignments.includes(e)?e:this.options.defaultAlignment},renderHTML:t=>t.textAlign?{style:`text-align: ${t.textAlign}`}:{}}}}]},addCommands(){return{setTextAlign:t=>({commands:e})=>this.options.alignments.includes(t)?this.options.types.map(n=>e.updateAttributes(n,{textAlign:t})).some(n=>n):!1,unsetTextAlign:()=>({commands:t})=>this.options.types.map(e=>t.resetAttributes(e,"textAlign")).some(e=>e),toggleTextAlign:t=>({editor:e,commands:n})=>this.options.alignments.includes(t)?e.isActive({textAlign:t})?n.unsetTextAlign():n.setTextAlign(t):!1}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),Ac=Qq;const Zq=()=>{let t=!0;return(e,n)=>{if(t){t=!1;try{e()}finally{t=!0}}else n!==void 0&&n()}},eJ=/[\uD800-\uDBFF]/,tJ=/[\uDC00-\uDFFF]/,nJ=(t,e)=>{let n=0,r=0;for(;n0&&eJ.test(t[n-1])&&n--;r+n0&&tJ.test(t[t.length-r])&&r--,{index:n,remove:t.length-n-r,insert:e.slice(n,e.length-r)}},rJ=nJ,Ns=(t,e)=>t>>>e|t<<32-e,iJ=t=>Ns(t,2)^Ns(t,13)^Ns(t,22),sJ=t=>Ns(t,6)^Ns(t,11)^Ns(t,25),oJ=t=>Ns(t,7)^Ns(t,18)^t>>>3,lJ=t=>Ns(t,17)^Ns(t,19)^t>>>10,aJ=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),cJ=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);class uJ{constructor(){const e=new ArrayBuffer(320);this._H=new Uint32Array(e,0,8),this._H.set(cJ),this._W=new Uint32Array(e,64,64)}_updateHash(){const e=this._H,n=this._W;for(let d=16;d<64;d++)n[d]=lJ(n[d-2])+n[d-7]+oJ(n[d-15])+n[d-16];let r=e[0],i=e[1],s=e[2],o=e[3],l=e[4],a=e[5],c=e[6],u=e[7];for(let d=0,f,p;d<64;d++)f=u+sJ(l)+(l&a^~l&c)+aJ[d]+n[d]>>>0,p=iJ(r)+(r&i^r&s^i&s)>>>0,u=c,c=a,a=l,l=o+f>>>0,o=s,s=i,i=r,r=f+p>>>0;e[0]+=r,e[1]+=i,e[2]+=s,e[3]+=o,e[4]+=l,e[5]+=a,e[6]+=c,e[7]+=u}digest(e){let n=0;for(;n+56<=e.length;){let o=0;for(;o<16&&n+3=0&&n>>(3-l)*8;return s}}const dJ=t=>new uJ().digest(t),jn=new pn("y-sync"),no=new pn("y-undo");new pn("yjs-cursor");const fJ=t=>{for(let n=6;niO(fJ(dJ(kK(t)))),Cm=(t,e)=>e===void 0?!t.deleted:e.sv.has(t.id.client)&&e.sv.get(t.id.client)>t.id.clock&&!$c(e.ds,t.id),pJ=[{light:"#ecd44433",dark:"#ecd444"}],mJ=(t,e,n)=>{if(!t.has(n)){if(t.sizer.add(i)),e=e.filter(i=>!r.has(i))}t.set(n,J9(e))}return t.get(n)},gJ=(t,{colors:e=pJ,colorMapping:n=new Map,permanentUserData:r=null,onFirstRender:i=()=>{},mapping:s}={})=>{let o=!1;const l=new wJ(t,s),a=new hn({props:{editable:c=>{const u=jn.getState(c);return u.snapshot==null&&u.prevSnapshot==null}},key:jn,state:{init:(c,u)=>({type:t,doc:t.doc,binding:l,snapshot:null,prevSnapshot:null,isChangeOrigin:!1,isUndoRedoOperation:!1,addToHistory:!0,colors:e,colorMapping:n,permanentUserData:r}),apply:(c,u)=>{const d=c.getMeta(jn);if(d!==void 0){u=Object.assign({},u);for(const f in d)u[f]=d[f]}return u.addToHistory=c.getMeta("addToHistory")!==!1,u.isChangeOrigin=d!==void 0&&!!d.isChangeOrigin,u.isUndoRedoOperation=d!==void 0&&!!d.isChangeOrigin&&!!d.isUndoRedoOperation,l.prosemirrorView!==null&&d!==void 0&&(d.snapshot!=null||d.prevSnapshot!=null)&&xO(0,()=>{l.prosemirrorView!=null&&(d.restore==null?l._renderSnapshot(d.snapshot,d.prevSnapshot,u):(l._renderSnapshot(d.snapshot,d.snapshot,u),delete u.restore,delete u.snapshot,delete u.prevSnapshot,l.mux(()=>{l._prosemirrorChanged(l.prosemirrorView.state.doc)})))}),u}},view:c=>(l.initView(c),s==null&&l._forceRerender(),i(),{update:()=>{const u=a.getState(c.state);if(u.snapshot==null&&u.prevSnapshot==null&&(o||c.state.doc.content.findDiffStart(c.state.doc.type.createAndFill().content)!==null)){if(o=!0,u.addToHistory===!1&&!u.isChangeOrigin){const d=no.getState(c.state),f=d&&d.undoManager;f&&f.stopCapturing()}l.mux(()=>{u.doc.transact(d=>{d.meta.set("addToHistory",u.addToHistory),l._prosemirrorChanged(c.state.doc)},jn)})}},destroy:()=>{l.destroy()}})});return a},yJ=(t,e,n)=>{if(e!==null&&e.anchor!==null&&e.head!==null)if(e.type==="all")t.setSelection(new ri(t.doc));else if(e.type==="node"){const r=Lh(n.doc,n.type,e.anchor,n.mapping);t.setSelection(vJ(t,r))}else{const r=Lh(n.doc,n.type,e.anchor,n.mapping),i=Lh(n.doc,n.type,e.head,n.mapping);r!==null&&i!==null&&t.setSelection(St.between(t.doc.resolve(r),t.doc.resolve(i)))}},vJ=(t,e)=>{const n=t.doc.resolve(e);return n.nodeAfter?pt.create(t.doc,e):St.near(n)},Cw=(t,e)=>({type:e.selection.jsonID,anchor:Aw(e.selection.anchor,t.type,t.mapping),head:Aw(e.selection.head,t.type,t.mapping)});class wJ{constructor(e,n=new Map){this.type=e,this.prosemirrorView=null,this.mux=Zq(),this.mapping=n,this.isOMark=new Map,this._observeFunction=this._typeChanged.bind(this),this.doc=e.doc,this.beforeTransactionSelection=null,this.beforeAllTransactions=()=>{this.beforeTransactionSelection===null&&this.prosemirrorView!=null&&(this.beforeTransactionSelection=Cw(this,this.prosemirrorView.state))},this.afterAllTransactions=()=>{this.beforeTransactionSelection=null},this._domSelectionInView=null}get _tr(){return this.prosemirrorView.state.tr.setMeta("addToHistory",!1)}_isLocalCursorInView(){return this.prosemirrorView.hasFocus()?(e1&&this._domSelectionInView===null&&(xO(0,()=>{this._domSelectionInView=null}),this._domSelectionInView=this._isDomSelectionInView()),this._domSelectionInView):!1}_isDomSelectionInView(){const e=this.prosemirrorView._root.getSelection();if(e==null||e.anchorNode==null)return!1;const n=this.prosemirrorView._root.createRange();n.setStart(e.anchorNode,e.anchorOffset),n.setEnd(e.focusNode,e.focusOffset),n.getClientRects().length===0&&n.startContainer&&n.collapsed&&n.selectNodeContents(n.startContainer);const i=n.getBoundingClientRect(),s=cf.documentElement;return i.bottom>=0&&i.right>=0&&i.left<=(window.innerWidth||s.clientWidth||0)&&i.top<=(window.innerHeight||s.clientHeight||0)}renderSnapshot(e,n){n||(n=FO(MO(),new Map)),this.prosemirrorView.dispatch(this._tr.setMeta(jn,{snapshot:e,prevSnapshot:n}))}unrenderSnapshot(){this.mapping.clear(),this.mux(()=>{const e=this.type.toArray().map(r=>Ph(r,this.prosemirrorView.state.schema,this)).filter(r=>r!==null),n=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new _e(ve.from(e),0,0));n.setMeta(jn,{snapshot:null,prevSnapshot:null}),this.prosemirrorView.dispatch(n)})}_forceRerender(){this.mapping.clear(),this.mux(()=>{const e=this.beforeTransactionSelection!==null?null:this.prosemirrorView.state.selection,n=this.type.toArray().map(i=>Ph(i,this.prosemirrorView.state.schema,this)).filter(i=>i!==null),r=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new _e(ve.from(n),0,0));if(e){const i=ia(ho(e.anchor,0),r.doc.content.size),s=ia(ho(e.head,0),r.doc.content.size);r.setSelection(St.create(r.doc,i,s))}this.prosemirrorView.dispatch(r.setMeta(jn,{isChangeOrigin:!0,binding:this}))})}_renderSnapshot(e,n,r){let i=this.doc,s=this.type;if(e||(e=fv(this.doc)),e instanceof Uint8Array||n instanceof Uint8Array)if((!(e instanceof Uint8Array)||!(n instanceof Uint8Array))&&Dr(),i=new Fi({gc:!1}),gm(i,n),n=fv(i),gm(i,e),e=fv(i),s._item===null){const o=Array.from(this.doc.share.keys()).find(l=>this.doc.share.get(l)===this.type);s=i.getXmlFragment(o)}else{const o=i.store.clients.get(s._item.id.client)??[],l=ss(o,s._item.id.clock);s=o[l].content.type}this.mapping.clear(),this.mux(()=>{i.transact(o=>{const l=r.permanentUserData;l&&l.dss.forEach(d=>{hl(o,d,f=>{})});const a=(d,f)=>{const p=d==="added"?l.getUserByClientId(f.client):l.getUserByDeletedId(f);return{user:p,type:d,color:mJ(r.colorMapping,r.colors,p)}},c=GO(s,new u1(n.ds,e.sv)).map(d=>!d._item.deleted||Cm(d._item,e)||Cm(d._item,n)?Ph(d,this.prosemirrorView.state.schema,{mapping:new Map,isOMark:new Map},e,n,a):null).filter(d=>d!==null),u=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new _e(ve.from(c),0,0));this.prosemirrorView.dispatch(u.setMeta(jn,{isChangeOrigin:!0}))},jn)})}_typeChanged(e,n){if(this.prosemirrorView==null)return;const r=jn.getState(this.prosemirrorView.state);if(e.length===0||r.snapshot!=null||r.prevSnapshot!=null){this.renderSnapshot(r.snapshot,r.prevSnapshot);return}this.mux(()=>{const i=(l,a)=>this.mapping.delete(a);hl(n,n.deleteSet,l=>{if(l.constructor===cn){const a=l.content.type;a&&this.mapping.delete(a)}}),n.changed.forEach(i),n.changedParentTypes.forEach(i);const s=this.type.toArray().map(l=>xj(l,this.prosemirrorView.state.schema,this)).filter(l=>l!==null);let o=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new _e(ve.from(s),0,0));yJ(o,this.beforeTransactionSelection,this),o=o.setMeta(jn,{isChangeOrigin:!0,isUndoRedoOperation:n.origin instanceof VO}),this.beforeTransactionSelection!==null&&this._isLocalCursorInView()&&o.scrollIntoView(),this.prosemirrorView.dispatch(o)})}_prosemirrorChanged(e){this.doc.transact(()=>{Nw(this.doc,this.type,e,this),this.beforeTransactionSelection=Cw(this,this.prosemirrorView.state)},jn)}initView(e){this.prosemirrorView!=null&&this.destroy(),this.prosemirrorView=e,this.doc.on("beforeAllTransactions",this.beforeAllTransactions),this.doc.on("afterAllTransactions",this.afterAllTransactions),this.type.observeDeep(this._observeFunction)}destroy(){this.prosemirrorView!=null&&(this.prosemirrorView=null,this.type.unobserveDeep(this._observeFunction),this.doc.off("beforeAllTransactions",this.beforeAllTransactions),this.doc.off("afterAllTransactions",this.afterAllTransactions))}}const xj=(t,e,n,r,i,s)=>{const o=n.mapping.get(t);if(o===void 0){if(t instanceof Mr)return Ph(t,e,n,r,i,s);throw Oi()}return o},Ph=(t,e,n,r,i,s)=>{const o=[],l=a=>{var c,u;if(a instanceof Mr){const d=xj(a,e,n,r,i,s);d!==null&&o.push(d)}else{const d=(u=(c=a._item.right)==null?void 0:c.content)==null?void 0:u.type;d instanceof pl&&!d._item.deleted&&d._item.id.client===d.doc.clientID&&(a.applyDelta([{retain:a.length},...d.toDelta()]),d.doc.transact(p=>{d._item.delete(p)}));const f=bJ(a,e,n,r,i,s);f!==null&&f.forEach(p=>{p!==null&&o.push(p)})}};r===void 0||i===void 0?t.toArray().forEach(l):GO(t,new u1(i.ds,r.sv)).forEach(l);try{const a=t.getAttributes(r);r!==void 0&&(Cm(t._item,r)?Cm(t._item,i)||(a.ychange=s?s("added",t._item.id):{type:"added"}):a.ychange=s?s("removed",t._item.id):{type:"removed"});const c=e.node(t.nodeName,a,o);return n.mapping.set(t,c),c}catch{return t.doc.transact(c=>{t._item.delete(c)},jn),n.mapping.delete(t),null}},bJ=(t,e,n,r,i,s)=>{const o=[],l=t.toDelta(r,i,s);try{for(let a=0;a{t._item.delete(c)},jn),null}return o},xJ=(t,e)=>{const n=new oi,r=t.map(i=>({insert:i.text,attributes:Sj(i.marks,e)}));return n.applyDelta(r),e.mapping.set(n,t),n},kJ=(t,e)=>{const n=new Mr(t.type.name);for(const r in t.attrs){const i=t.attrs[r];i!==null&&r!=="ychange"&&n.setAttribute(r,i)}return n.insert(0,jg(t).map(r=>Ew(r,e))),e.mapping.set(n,t),n},Ew=(t,e)=>t instanceof Array?xJ(t,e):kJ(t,e),xN=t=>typeof t=="object"&&t!==null,k1=(t,e)=>{const n=Object.keys(t).filter(i=>t[i]!==null);let r=n.length===Object.keys(e).filter(i=>e[i]!==null).length;for(let i=0;i{const e=t.content.content,n=[];for(let r=0;r{const n=t.toDelta();return n.length===e.length&&n.every((r,i)=>r.insert===e[i].text&&ZD(r.attributes||{}).length===e[i].marks.length&&_c(r.attributes,(s,o)=>{var u;const l=S1(o),a=e[i].marks;return a.find(d=>d.type.name===l)?k1(s,(u=a.find(d=>d.type.name===l))==null?void 0:u.attrs):!1}))},_d=(t,e)=>{if(t instanceof Mr&&!(e instanceof Array)&&Tw(t,e)){const n=jg(e);return t._length===n.length&&k1(t.getAttributes(),e.attrs)&&t.toArray().every((r,i)=>_d(r,n[i]))}return t instanceof oi&&e instanceof Array&&kj(t,e)},Em=(t,e)=>t===e||t instanceof Array&&e instanceof Array&&t.length===e.length&&t.every((n,r)=>e[r]===n),kN=(t,e,n)=>{const r=t.toArray(),i=jg(e),s=i.length,o=r.length,l=ia(o,s);let a=0,c=0,u=!1;for(;a{let e="",n=t._start;const r={};for(;n!==null;)n.deleted||(n.countable&&n.content instanceof ls?e+=n.content.str:n.content instanceof qn&&(r[n.content.key]=null)),n=n.right;return{str:e,nAttrs:r}},CJ=(t,e,n)=>{n.mapping.set(t,e);const{nAttrs:r,str:i}=SJ(t),s=e.map(c=>({insert:c.text,attributes:Object.assign({},r,Sj(c.marks,n))})),{insert:o,remove:l,index:a}=rJ(i,s.map(c=>c.insert).join(""));t.delete(a,l),t.insert(a,o),t.applyDelta(s.map(c=>({retain:c.insert.length,attributes:c.attributes})))},EJ=/(.*)(--[a-zA-Z0-9+/=]{8})$/,S1=t=>{var e;return((e=EJ.exec(t))==null?void 0:e[1])??t},NJ=(t,e)=>{const n=[];for(const r in t)n.push(e.mark(S1(r),t[r]));return n},Sj=(t,e)=>{const n={};return t.forEach(r=>{if(r.type.name!=="ychange"){const i=as(e.isOMark,r.type,()=>!r.type.excludes(r.type));n[i?`${r.type.name}--${hJ(r.toJSON())}`:r.type.name]=r.attrs}}),n},Nw=(t,e,n,r)=>{if(e instanceof Mr&&e.nodeName!==n.type.name)throw new Error("node name mismatch!");if(r.mapping.set(e,n),e instanceof Mr){const d=e.getAttributes(),f=n.attrs;for(const p in f)f[p]!==null?d[p]!==f[p]&&p!=="ychange"&&e.setAttribute(p,f[p]):e.removeAttribute(p);for(const p in d)f[p]===void 0&&e.removeAttribute(p)}const i=jg(n),s=i.length,o=e.toArray(),l=o.length,a=ia(s,l);let c=0,u=0;for(;c{for(;l-c-u>0&&s-c-u>0;){const f=o[c],p=i[c],m=o[l-u-1],g=i[s-u-1];if(f instanceof oi&&p instanceof Array)kj(f,p)||CJ(f,p,r),c+=1;else{let y=f instanceof Mr&&Tw(f,p),v=m instanceof Mr&&Tw(m,g);if(y&&v){const w=kN(f,p,r),x=kN(m,g,r);w.foundMappedChild&&!x.foundMappedChild?v=!1:!w.foundMappedChild&&x.foundMappedChild||w.equalityFactor0&&(e.slice(c,c+d).forEach(f=>r.mapping.delete(f)),e.delete(c,d)),c+u!(e instanceof Array)&&t.nodeName===e.type.name,Aw=(t,e,n)=>{if(t===0)return dv(e,0,-1);let r=e._first===null?null:e._first.content.type;for(;r!==null&&e!==r;){if(r instanceof oi){if(r._length>=t)return dv(r,t,-1);if(t-=r._length,r._item!==null&&r._item.next!==null)r=r._item.next.content.type;else{do r=r._item===null?null:r._item.parent,t--;while(r!==e&&r!==null&&r._item!==null&&r._item.next===null);r!==null&&r!==e&&(r=r._item===null?null:r._item.next.content.type)}}else{const i=(n.get(r)||{nodeSize:0}).nodeSize;if(r._first!==null&&t1)return new ym(r._item===null?null:r._item.id,r._item===null?Dd(r):null,null);if(t-=i,r._item!==null&&r._item.next!==null)r=r._item.next.content.type;else{if(t===0)return r=r._item===null?r:r._item.parent,new ym(r._item===null?null:r._item.id,r._item===null?Dd(r):null,null);do r=r._item.parent,t--;while(r!==e&&r._item.next===null);r!==e&&(r=r._item.next.content.type)}}}if(r===null)throw Dr();if(t===0&&r.constructor!==oi&&r!==e)return TJ(r._item.parent,r._item)}return dv(e,e._length,-1)},TJ=(t,e)=>{let n=null,r=null;return t._item===null?r=Dd(t):n=Ht(t._item.id.client,t._item.id.clock),new ym(n,r,e.id)},Lh=(t,e,n,r)=>{const i=PY(n,t);if(i===null||i.type!==e&&!Od(e,i.type._item))return null;let s=i.type,o=0;if(s.constructor===oi)o=i.index;else if(s._item===null||!s._item.deleted){let l=s._first,a=0;for(;a{let i;if(r instanceof oi)i=r.toDelta().map(o=>{const l={type:"text",text:o.insert};return o.attributes&&(l.marks=Object.keys(o.attributes).map(a=>{const c=o.attributes[a],d={type:S1(a)};return Object.keys(c)&&(d.attrs=c),d})),l});else if(r instanceof Mr){i={type:r.nodeName};const s=r.getAttributes();Object.keys(s).length&&(i.attrs=s);const o=r.toArray();o.length&&(i.content=o.map(n).flat())}else Dr();return i};return{type:"doc",content:e.map(n)}}const MJ=t=>{const e=no.getState(t).undoManager;if(e!=null)return e.undo(),!0},IJ=t=>{const e=no.getState(t).undoManager;if(e!=null)return e.redo(),!0},RJ=new Set(["paragraph"]),DJ=(t,e)=>!(t instanceof cn)||!(t.content instanceof cs)||!(t.content.type instanceof pl||t.content.type instanceof Mr&&e.has(t.content.type.nodeName))||t.content.type._length===0,OJ=({protectedNodes:t=RJ,trackedOrigins:e=[],undoManager:n=null}={})=>new hn({key:no,state:{init:(r,i)=>{const s=jn.getState(i),o=n||new VO(s.type,{trackedOrigins:new Set([jn].concat(e)),deleteFilter:l=>DJ(l,t),captureTransaction:l=>l.meta.get("addToHistory")!==!1});return{undoManager:o,prevSel:null,hasUndoOps:o.undoStack.length>0,hasRedoOps:o.redoStack.length>0}},apply:(r,i,s,o)=>{const l=jn.getState(o).binding,a=i.undoManager,c=a.undoStack.length>0,u=a.redoStack.length>0;return l?{undoManager:a,prevSel:Cw(l,s),hasUndoOps:c,hasRedoOps:u}:c!==i.hasUndoOps||u!==i.hasRedoOps?Object.assign({},i,{hasUndoOps:a.undoStack.length>0,hasRedoOps:a.redoStack.length>0}):i}},view:r=>{const i=jn.getState(r.state),s=no.getState(r.state).undoManager;return s.on("stack-item-added",({stackItem:o})=>{const l=i.binding;l&&o.meta.set(l,no.getState(r.state).prevSel)}),s.on("stack-item-popped",({stackItem:o})=>{const l=i.binding;l&&(l.beforeTransactionSelection=o.meta.get(l)||l.beforeTransactionSelection)}),{destroy:()=>{s.destroy()}}}});function jJ(t){return!!t.getMeta(jn)}function PJ(t,e){const n=jn.getState(t);return Lh(n.doc,n.type,e,n.binding.mapping)||0}function Cj(t,e){const n=jn.getState(t);return Aw(e,n.type,n.binding.mapping)}var _h=class Ej extends sx{constructor(e,n){super(e),this.yRelativePosition=n}static fromJSON(e){return new Ej(e.position,e.yRelativePosition)}toJSON(){return{position:this.position,yRelativePosition:this.yRelativePosition}}};function LJ(t,e){const n=Cj(e,t);return new _h(t,n)}function _J(t,e,n){const r=t instanceof _h?t.yRelativePosition:null;if(jJ(e)&&r){const o=PJ(n,r);return{position:new _h(o,r),mapResult:null}}const i=o2(t,e),s=i.position.position;return{position:new _h(s,r??Cj(n,s)),mapResult:i.mapResult}}var zJ=mn.create({name:"collaboration",priority:1e3,addOptions(){return{document:null,field:"default",fragment:null,provider:null}},addStorage(){return{isDisabled:!1}},onCreate(){this.editor.extensionManager.extensions.find(t=>t.name==="undoRedo")&&console.warn('[tiptap warn]: "@tiptap/extension-collaboration" comes with its own history support and is not compatible with "@tiptap/extension-undo-redo".')},onBeforeCreate(){this.editor.utils.getUpdatedPosition=(t,e)=>_J(t,e,this.editor.state),this.editor.utils.createMappablePosition=t=>LJ(t,this.editor.state)},addCommands(){return{undo:()=>({tr:t,state:e,dispatch:n})=>(t.setMeta("preventDispatch",!0),no.getState(e).undoManager.undoStack.length===0?!1:n?MJ(e):!0),redo:()=>({tr:t,state:e,dispatch:n})=>(t.setMeta("preventDispatch",!0),no.getState(e).undoManager.redoStack.length===0?!1:n?IJ(e):!0)}},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Mod-y":()=>this.editor.commands.redo(),"Shift-Mod-z":()=>this.editor.commands.redo()}},addProseMirrorPlugins(){var t;const e=this.options.fragment?this.options.fragment:this.options.document.getXmlFragment(this.options.field),n=OJ(this.options.yUndoOptions),r=n.spec.view;n.spec.view=o=>{const{undoManager:l}=no.getState(o.state);l.restore&&(l.restore(),l.restore=()=>{});const a=r?r(o):void 0;return{destroy:()=>{const c=l.trackedOrigins.has(l),u=l._observers;l.restore=()=>{c&&l.trackedOrigins.add(l),l.doc.on("afterTransaction",l.afterTransactionHandler),l._observers=u},a!=null&&a.destroy&&a.destroy()}}};const i={...this.options.ySyncOptions,onFirstRender:this.options.onFirstRender},s=gJ(e,i);return this.editor.options.enableContentCheck&&((t=e.doc)==null||t.on("beforeTransaction",()=>{try{const o=AJ(e);if(o.content.length===0)return;this.editor.schema.nodeFromJSON(o).check()}catch(o){return this.editor.emit("contentError",{error:o,editor:this.editor,disableCollaboration:()=>{var l;(l=e.doc)==null||l.destroy(),this.storage.isDisabled=!0}}),!1}})),[s,n,this.editor.options.enableContentCheck&&new hn({key:new pn("filterInvalidContent"),filterTransaction:()=>{var o;return this.storage.isDisabled!==!1&&((o=e.doc)==null||o.destroy()),!0}})].filter(Boolean)}}),Pg=zJ;function FJ({note:t,onClose:e,onSaved:n,noteBg:r,onImagesUpdated:i,onColorChanged:s,moreMenu:o}){var Ye,Ge;const{token:l,user:a}=Sr(),c=B.useRef((()=>{try{return`c${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`c${Math.random()}`}})()),u=B.useRef((()=>{try{return`rte-${(t==null?void 0:t.id)||"x"}-${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`rte-${Math.random()}`}})());B.useEffect(()=>{window.dispatchEvent(new Event("freemannotes:editor-modal-open"));try{const Y=u.current,ge=()=>{try{e()}catch{}};window.dispatchEvent(new CustomEvent("freemannotes:back/register",{detail:{id:Y,onBack:ge}}))}catch{}return()=>{try{window.dispatchEvent(new CustomEvent("freemannotes:back/unregister",{detail:{id:u.current}}))}catch{}window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}},[]);const[d,f]=B.useState(t.title||""),[p,m]=B.useState(!1),[g,y]=B.useState(!1),[v,w]=B.useState(!1),[x,E]=B.useState(!1),[k,M]=B.useState(!1),[N,z]=B.useState((t.images||[]).map(Y=>({id:Number(Y.id),url:String(Y.url)}))),[X,L]=B.useState(!1),[H,W]=B.useState(null),[te,ue]=B.useState([]),[de,Ae]=B.useState(!1),me=B.useRef(null);B.useRef(!1);const q=B.useRef(!1),se=B.useRef(!1),xe=B.useCallback(()=>{if(!se.current){se.current=!0;try{window.dispatchEvent(new CustomEvent("freemannotes:draft/dirty",{detail:{noteId:Number(t==null?void 0:t.id)}}))}catch{}}},[t==null?void 0:t.id]),Me=B.useMemo(()=>new Fi,[t.id]),Q=B.useRef(null);B.useEffect(()=>{const Y=`note-${t.id}`,De=`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/collab`,Be=new mf(De,Y,Me);Q.current=Be;const Le=j=>{j&&(q.current=!0)};try{Be.on("sync",Le)}catch{}return()=>{try{Be.off("sync",Le)}catch{}try{Be.destroy()}catch{}}},[t.id,Me]);const Je=B.useCallback(()=>{try{Me.getMap("meta").set("imagesTick",{t:Date.now(),by:c.current})}catch{}},[Me]),_t=B.useCallback(async()=>{try{const Y=await fetch(`/api/notes/${t.id}/images`,{headers:{Authorization:`Bearer ${l}`}});if(!Y.ok)return;const ge=await Y.json(),De=(ge&&ge.images||[]).map(Be=>({id:Number(Be.id),url:String(Be.url)}));z(De),i&&i(De)}catch{}},[t.id,l,i]);B.useEffect(()=>{const Y=(()=>{try{return Me.getMap("meta")}catch{return null}})();if(!Y)return;const ge=()=>{try{const De=Y.get("imagesTick");if(!De||!De.t||De.by&&String(De.by)===String(c.current))return;_t()}catch{}};try{Y.observe(ge)}catch{}return()=>{try{Y.unobserve(ge)}catch{}}},[Me,_t]);const J=pg({extensions:[ta.configure({heading:{levels:[1,2,3]}}),wR.configure({openOnClick:!0,autolink:!0}),Ac.configure({types:["heading","paragraph"]}),Pg.configure({document:Me}),yg,mn.create({name:"paragraphEnterFix",priority:1e3,addKeyboardShortcuts(){return{"Shift-Enter":()=>{const Y=this.editor;return Y.commands.splitBlock(),Y.commands.setParagraph(),!0},"Mod-Enter":()=>{const Y=this.editor;return Y.commands.splitBlock(),Y.commands.setParagraph(),!0}}}})],editorProps:{attributes:{class:"rt-editor"}}});function at(Y){if(!J)return;const ge=J.state.selection;if(!ge||!ge.empty){J.chain().focus()[`toggle${Y.charAt(0).toUpperCase()+Y.slice(1)}`]().run();return}const De=ge.$from;let Be=De.depth;for(;Be>0&&!De.node(Be).isBlock;)Be--;const Le=De.start(Be),j=De.end(Be),G=J.chain().focus().setTextSelection({from:Le,to:j});Y==="bold"?G.toggleBold().run():Y==="italic"?G.toggleItalic().run():G.toggleUnderline().run();try{J.chain().setTextSelection(ge.from).run()}catch{}}B.useEffect(()=>{try{const Y=(t.images||[]).map(ge=>({id:Number(ge.id),url:String(ge.url)}));z(ge=>{try{if(ge.length===Y.length&&ge.every((De,Be)=>{var Le,j;return Number(De.id)===Number((Le=Y[Be])==null?void 0:Le.id)&&String(De.url)===String((j=Y[Be])==null?void 0:j.url)}))return ge}catch{}return Y})}catch{}},[t.images]);const[,$t]=B.useState(0);B.useEffect(()=>{if(!J)return;const Y=()=>$t(ge=>ge+1);return J.on("selectionUpdate",Y),J.on("transaction",Y),()=>{J.off("selectionUpdate",Y),J.off("transaction",Y)}},[J]);function ct(){if(!J)return;const Y=window.prompt("Enter URL:");Y&&J.chain().focus().extendMarkRange("link").setLink({href:Y}).run()}const nt=B.useRef(null);B.useEffect(()=>{if(!J)return;const Y=()=>{try{q.current&&xe()}catch{}nt.current&&window.clearTimeout(nt.current),nt.current=window.setTimeout(async()=>{try{const ge=J.getJSON();await fetch(`/api/notes/${t.id}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({body:JSON.stringify(ge),type:"TEXT"})})}catch{}},700)};return J.on("update",Y),()=>{J.off("update",Y),nt.current&&window.clearTimeout(nt.current)}},[J,t.id,l,xe]);async function At(){try{const Y=(()=>{try{return JSON.stringify((J==null?void 0:J.getJSON())||{})}catch{return t.body||""}})();if((t.title||"")!==d){const ge=await fetch(`/api/notes/${t.id}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({title:d})});if(!ge.ok)throw new Error(await ge.text())}n&&n({title:d,body:Y}),e()}catch(Y){console.error("Failed to update title",Y),window.alert("Failed to update title")}}function Bt(Y){if(!Y)return;const ge=Y.replace("#",""),De=ge.length===3?ge.split("").map(Tt=>Tt+Tt).join(""):ge;if(De.length!==6)return;const Be=parseInt(De.slice(0,2),16)/255,Le=parseInt(De.slice(2,4),16)/255,j=parseInt(De.slice(4,6),16)/255,G=Tt=>Tt<=.03928?Tt/12.92:Math.pow((Tt+.055)/1.055,2.4),fe=G(Be),je=G(Le),Ue=G(j),We=.2126*fe+.7152*je+.0722*Ue,Se=(1+.05)/(We+.05),Xe=(We+.05)/(0+.05);return Se>=Xe?"#ffffff":"#000000"}const wt={},[ce,Ee]=B.useState(r??(t.viewerColor||t.color||"")),Ke=ce?Bt(ce)||"var(--muted)":void 0;B.useEffect(()=>{Ee(r??(t.viewerColor||t.color||""))},[r,t.viewerColor,t.color]),ce&&(wt["--checkbox-bg"]=ce,wt["--checkbox-border"]=Ke||void 0,wt["--checkbox-stroke"]=Ke||void 0,wt["--checkbox-checked-bg"]=ce,wt["--checkbox-checked-mark"]=Ke||void 0,wt["--editor-surface"]=ce,wt.background=ce,Ke&&(wt.color=Ke));async function ze(Y){const ge=Y||"";try{const De=await fetch(`/api/notes/${t.id}/prefs`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({color:ge})});if(!De.ok)throw new Error(await De.text())}catch(De){console.error("Failed to save color preference",De),window.alert("Failed to save color preference")}Ee(ge);try{s==null||s(ge)}catch{}}function Pe(Y){if(M(!1),!Y)return;const ge=-Date.now();z(De=>{const Le=De.some(j=>String(j.url)===String(Y))?De:[...De,{id:ge,url:String(Y)}];return i&&i(Le),Le});try{L(!0)}catch{}(async()=>{try{const De=await fetch(`/api/notes/${t.id}/images`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({url:Y})});if(!De.ok)throw new Error(await De.text());const Le=(await De.json()).image||null;Le&&Le.id&&Le.url&&(z(j=>{const G=Number(Le.id),fe=String(Le.url),je=j.map(Se=>Number(Se.id)===ge||String(Se.url)===String(Y)?{id:G,url:fe}:Se),We=je.some(Se=>Number(Se.id)===G)?je:[...je,{id:G,url:fe}];return i&&i(We),We}),Je())}catch(De){console.error("Failed to attach image",De),window.alert("Failed to attach image")}})()}function it(Y){ue(ge=>ge.find(De=>De.id===Y.id)?ge:[...ge,Y]),E(!1),(async()=>{try{const ge=await fetch(`/api/notes/${t.id}/collaborators`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({email:Y.email})});if(!ge.ok)throw new Error(await ge.text())}catch(ge){console.error("Failed to add collaborator",ge),window.alert("Failed to add collaborator")}})()}async function ot(Y){try{const ge=await fetch(`/api/notes/${t.id}/collaborators/${Y}`,{method:"DELETE",headers:{Authorization:`Bearer ${l}`}});if(!ge.ok)throw new Error(await ge.text())}catch(ge){console.error("Failed to remove collaborator",ge),window.alert("Failed to remove collaborator")}}async function xt(Y){const ge=N,De=ge.filter(Be=>Number(Be.id)!==Number(Y));z(De),i&&i(De);try{const Be=await $J(t.id,Y,l);if(!Be.ok)throw new Error(await Be.text());Je()}catch(Be){console.error("Failed to delete image",Be),z(ge),i&&i(ge),window.alert("Failed to delete image")}}const oe=h.jsx("div",{className:"image-dialog-backdrop",onMouseDown:Y=>{Y.target===Y.currentTarget&&At()},children:h.jsxs("div",{className:`image-dialog editor-dialog${p?" maximized":""}`,role:"dialog","aria-modal":!0,style:{width:p?"96vw":"min(1000px, 86vw)",...wt},children:[h.jsxs("div",{className:"dialog-header",children:[h.jsx("strong",{children:"Edit note"}),h.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[h.jsx("button",{className:"tiny",onClick:()=>m(Y=>!Y),"aria-label":"Toggle maximize",title:"Toggle maximize",children:"⤢"}),h.jsx("button",{className:"icon-close",onClick:e,children:"✕"})]})]}),h.jsxs("div",{className:"dialog-body",children:[h.jsxs("div",{className:"rt-sticky-header",children:[h.jsx("div",{style:{display:"flex",gap:12,marginBottom:8},children:h.jsx("input",{placeholder:"Title",value:d,onChange:Y=>{f(Y.target.value);try{xe()}catch{}},style:{flex:1,background:"transparent",border:"none",color:"inherit",fontWeight:600,fontSize:18}})}),h.jsxs("div",{className:"rt-toolbar",style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",marginTop:0,marginBottom:0,overflowX:"auto",color:Ke},children:[h.jsx("button",{className:"tiny",onClick:()=>at("bold"),"aria-pressed":J==null?void 0:J.isActive("bold"),"aria-label":"Bold",title:"Bold",children:"B"}),h.jsx("button",{className:"tiny",onClick:()=>at("italic"),"aria-pressed":J==null?void 0:J.isActive("italic"),"aria-label":"Italic",title:"Italic",children:"I"}),h.jsx("button",{className:"tiny",onClick:()=>at("underline"),"aria-pressed":J==null?void 0:J.isActive("underline"),"aria-label":"Underline",title:"Underline",children:"U"}),h.jsx("button",{className:"tiny",onClick:()=>J==null?void 0:J.chain().focus().toggleHeading({level:1}).run(),"aria-pressed":J==null?void 0:J.isActive("heading",{level:1}),"aria-label":"Heading 1",title:"Heading 1",children:"H1"}),h.jsx("button",{className:"tiny",onClick:()=>J==null?void 0:J.chain().focus().toggleHeading({level:2}).run(),"aria-pressed":J==null?void 0:J.isActive("heading",{level:2}),"aria-label":"Heading 2",title:"Heading 2",children:"H2"}),h.jsx("button",{className:"tiny",onClick:()=>J==null?void 0:J.chain().focus().toggleHeading({level:3}).run(),"aria-pressed":J==null?void 0:J.isActive("heading",{level:3}),"aria-label":"Heading 3",title:"Heading 3",children:"H3"}),h.jsx("button",{className:"tiny",onClick:()=>J==null?void 0:J.chain().focus().toggleBulletList().run(),"aria-pressed":J==null?void 0:J.isActive("bulletList"),"aria-label":"Bulleted list",title:"Bulleted list",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("circle",{cx:"5",cy:"6",r:"1.5"}),h.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),h.jsx("circle",{cx:"5",cy:"12",r:"1.5"}),h.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),h.jsx("circle",{cx:"5",cy:"18",r:"1.5"}),h.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>J==null?void 0:J.chain().focus().toggleOrderedList().run(),"aria-pressed":J==null?void 0:J.isActive("orderedList"),"aria-label":"Numbered list",title:"Numbered list",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("text",{x:"3.5",y:"7",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"1."}),h.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),h.jsx("text",{x:"3.5",y:"13",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"2."}),h.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),h.jsx("text",{x:"3.5",y:"19",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"3."}),h.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>J==null?void 0:J.chain().focus().setTextAlign("left").run(),"aria-pressed":J==null?void 0:J.isActive({textAlign:"left"}),"aria-label":"Align left",title:"Align left",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("rect",{x:"4",y:"5",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"4",y:"9",width:"10",height:"2",rx:"1"}),h.jsx("rect",{x:"4",y:"13",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"4",y:"17",width:"8",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>J==null?void 0:J.chain().focus().setTextAlign("center").run(),"aria-pressed":J==null?void 0:J.isActive({textAlign:"center"}),"aria-label":"Align center",title:"Align center",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("rect",{x:"5",y:"5",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"7",y:"9",width:"10",height:"2",rx:"1"}),h.jsx("rect",{x:"5",y:"13",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"8",y:"17",width:"8",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>J==null?void 0:J.chain().focus().setTextAlign("right").run(),"aria-pressed":J==null?void 0:J.isActive({textAlign:"right"}),"aria-label":"Align right",title:"Align right",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("rect",{x:"6",y:"5",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"10",y:"9",width:"10",height:"2",rx:"1"}),h.jsx("rect",{x:"6",y:"13",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"12",y:"17",width:"8",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>J==null?void 0:J.chain().focus().setTextAlign("justify").run(),"aria-pressed":J==null?void 0:J.isActive({textAlign:"justify"}),"aria-label":"Justify",title:"Justify",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("rect",{x:"5",y:"5",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"5",y:"9",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"5",y:"13",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"5",y:"17",width:"14",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:ct,"aria-label":"Insert link",title:"Insert link",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("path",{d:"M9.17 14.83a3 3 0 0 1 0-4.24l2.83-2.83a3 3 0 1 1 4.24 4.24l-.88.88",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),h.jsx("path",{d:"M14.83 9.17a3 3 0 0 1 0 4.24l-2.83 2.83a3 3 0 1 1-4.24-4.24l.88-.88",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})]}),h.jsx("div",{onKeyDown:Y=>{try{if(!(Y.ctrlKey||Y.metaKey)){const Be=String(Y.key||"");(Be.length===1||Be==="Backspace"||Be==="Enter"||Be==="Delete")&&xe()}}catch{}if(!(!J||!(Y.ctrlKey||Y.metaKey))&&J.isFocused)switch(Y.key.toLowerCase()){case"b":Y.preventDefault(),at("bold");break;case"i":Y.preventDefault(),at("italic");break;case"u":Y.preventDefault(),at("underline");break;case"k":Y.preventDefault(),ct();break;case"l":Y.preventDefault(),J.chain().focus().setTextAlign("left").run();break;case"r":Y.preventDefault(),J.chain().focus().setTextAlign("right").run();break;case"e":Y.preventDefault(),J.chain().focus().setTextAlign("center").run();break;case"j":Y.preventDefault(),J.chain().focus().setTextAlign("justify").run();break}},children:h.jsx(Qd,{editor:J,style:{color:Ke}})}),N&&N.length>0&&h.jsxs("div",{className:"editor-images",style:{marginTop:10},children:[h.jsx("button",{type:"button",className:"btn editor-images-toggle",onClick:()=>L(Y=>!Y),"aria-expanded":X,children:h.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[h.jsx("span",{style:{transform:X?"rotate(90deg)":"rotate(0deg)",display:"inline-block"},children:"▸"}),h.jsxs("span",{children:["Images (",N.length,")"]})]})}),X&&h.jsx("div",{className:"editor-images-grid",style:{marginTop:8},children:N.map(Y=>h.jsxs("div",{className:"note-image",role:"button",tabIndex:0,onClick:()=>W(Y.url),onKeyDown:ge=>{(ge.key==="Enter"||ge.key===" ")&&(ge.preventDefault(),W(Y.url))},style:{cursor:"zoom-in",position:"relative"},children:[h.jsx("img",{src:Y.url,alt:"note image"}),h.jsx("button",{className:"image-delete","aria-label":"Delete image",title:"Delete image",onClick:ge=>{ge.stopPropagation(),xt(Y.id)},style:{position:"absolute",right:6,bottom:6},children:"🗑️"})]},Y.id))})]})]}),h.jsxs("div",{className:"dialog-footer",style:{borderTop:`1px solid ${Ke||"rgba(255,255,255,0.15)"}`},children:[h.jsxs("div",{className:"note-actions",style:{marginRight:"auto",display:"inline-flex",gap:8,justifyContent:"flex-start",color:Ke},children:[h.jsx("button",{className:"tiny palette",onClick:()=>y(!0),"aria-label":"Change color",title:"Change color",children:h.jsx(Xs,{icon:lf,className:"palette-svg"})}),h.jsx("button",{className:"tiny",onClick:()=>w(!0),"aria-label":"Reminder",title:"Reminder",children:h.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),h.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),h.jsx("button",{className:"tiny",onClick:()=>E(!0),"aria-label":"Collaborators",title:"Collaborators",children:h.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"}),h.jsx("path",{d:"M6 14c-1.66 0-3 1.34-3 3v1h9.5c-.2-.63-.5-1.23-.9-1.76C11.7 15.6 9.9 14 6 14z"}),h.jsx("path",{d:"M20 16v2h-2v2h-2v-2h-2v-2h2v-2h2v2z"})]})}),h.jsx("button",{className:"tiny",onClick:()=>M(!0),"aria-label":"Add image",title:"Add image",children:h.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:h.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5C3.9 3 3 3.9 3 5v14h18zM8.5 13.5l2.5 3L14.5 12l4.5 7H5l3.5-5.5z"})})}),o&&h.jsx("button",{ref:me,className:"tiny editor-more",onClick:Y=>{Y.stopPropagation(),Ae(ge=>!ge)},"aria-label":"More",title:"More",children:"⋮"})]}),h.jsx("div",{style:{marginLeft:"auto",display:"flex",gap:8},children:h.jsx("button",{className:"btn",onClick:At,children:"Save"})})]})]})});if(x&&((()=>{const Y=[];try{const ge=a&&a.id?Number(a.id):void 0,De=t.owner||null;De&&typeof De.id=="number"&&De.id!==ge&&Y.push({userId:Number(De.id),email:String(De.email||""),name:typeof De.name=="string"?De.name:void 0});const Be=t.collaborators||[];for(const Le of Be){const j=Le&&(Le.user||{}),G=typeof j.id=="number"?Number(j.id):typeof Le.userId=="number"?Number(Le.userId):void 0,fe=typeof j.email=="string"?String(j.email):void 0,je=typeof j.name=="string"?String(j.name):void 0;G&&fe&&Y.push({collabId:Number(Le.id),userId:G,email:fe,name:je})}}catch{}return Y})(),typeof((Ye=t.owner)==null?void 0:Ye.id)=="number"?Number(t.owner.id):a==null||a.id),typeof document<"u"){const Y=zn.createPortal(oe,document.body);return h.jsxs(h.Fragment,{children:[Y,o&&de&&h.jsx(Hx,{anchorRef:me,itemsCount:o.onMoveToCollection?5:4,onClose:()=>Ae(!1),onDelete:o.onDelete,onMoveToCollection:o.onMoveToCollection,onAddLabel:o.onAddLabel,onSetWidth:o.onSetWidth}),g&&h.jsx(ef,{anchorRef:void 0,onPick:ze,onClose:()=>y(!1)}),v&&h.jsx(tf,{onClose:()=>w(!1),onSet:ge=>{w(!1),ge&&window.alert(`Reminder set (UI-only): ${ge}`)}}),x&&h.jsx(xc,{onClose:()=>E(!1),onSelect:it,current:(()=>{const ge=[];try{const De=a&&a.id?Number(a.id):void 0,Be=t.owner||null;Be&&typeof Be.id=="number"&&Be.id!==De&&ge.push({userId:Number(Be.id),email:String(Be.email||""),name:typeof Be.name=="string"?Be.name:void 0});const Le=t.collaborators||[];for(const j of Le){const G=j&&(j.user||{}),fe=typeof G.id=="number"?Number(G.id):typeof j.userId=="number"?Number(j.userId):void 0,je=typeof G.email=="string"?String(G.email):void 0,Ue=typeof G.name=="string"?String(G.name):void 0;fe&&je&&ge.push({collabId:Number(j.id),userId:fe,email:je,name:Ue})}}catch{}return ge})(),ownerId:typeof((Ge=t.owner)==null?void 0:Ge.id)=="number"?Number(t.owner.id):a==null?void 0:a.id,onRemove:ot}),k&&h.jsx(nf,{onClose:()=>M(!1),onAdd:Pe}),H&&h.jsx(_R,{url:H,onClose:()=>W(null)})]})}return oe}function $J(t,e,n){return fetch(`/api/notes/${t}/images/${e}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`}})}function BJ({noteId:t,onClose:e,onChanged:n}){const{token:r}=Sr(),[i,s]=B.useState([]),[o,l]=B.useState([]),[a,c]=B.useState([]),[u,d]=B.useState(!1),[f,p]=B.useState(""),[m,g]=B.useState(!1);B.useEffect(()=>{try{return window.dispatchEvent(new Event("freemannotes:editor-modal-open")),()=>{setTimeout(()=>{try{window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}catch{}},0)}}catch{return}},[]);const y=i.length?Number(i[i.length-1].id):null,v=B.useCallback(async()=>{if(!r){l([]);return}d(!0);try{const L=y==null?"":`?parentId=${encodeURIComponent(String(y))}`,W=await(await fetch(`/api/collections${L}`,{headers:{Authorization:`Bearer ${r}`}})).json(),te=Array.isArray(W==null?void 0:W.collections)?W.collections:[];l(te.map(ue=>({id:Number(ue.id),name:String(ue.name||""),parentId:ue.parentId==null?null:Number(ue.parentId),hasChildren:!!ue.hasChildren,noteCount:typeof ue.noteCount=="number"?Number(ue.noteCount):void 0})).filter(ue=>Number.isFinite(ue.id)&&ue.name.length))}catch{l([])}finally{d(!1)}},[r,y]);B.useEffect(()=>{v()},[v]);const w=B.useCallback(async()=>{if(!r){c([]);return}try{const L=await fetch(`/api/notes/${encodeURIComponent(String(t))}/collections`,{headers:{Authorization:`Bearer ${r}`}});if(!L.ok)return;const H=await L.json(),W=Array.isArray(H==null?void 0:H.collections)?H.collections:[];c(W.map(te=>({id:Number(te.id),name:String(te.name||""),parentId:te.parentId==null?null:Number(te.parentId)})).filter(te=>Number.isFinite(te.id)&&te.name.length))}catch{}},[r,t]);B.useEffect(()=>{w()},[w]),B.useEffect(()=>{const L=H=>{H.key==="Escape"&&e()};return window.addEventListener("keydown",L),()=>window.removeEventListener("keydown",L)},[e]);const x=B.useMemo(()=>new Set(a.map(L=>Number(L.id)).filter(L=>Number.isFinite(L))),[a]),E=B.useCallback((L,H)=>{const W=Number(L),te=Number(H);!Number.isFinite(W)||!Number.isFinite(te)||te===0||l(ue=>ue.map(de=>Number(de.id)!==W||typeof de.noteCount!="number"?de:{...de,noteCount:Math.max(0,Number(de.noteCount)+te)}))},[]),k=async L=>{if(!r||m||!Number.isFinite(L))return;const H=x.has(Number(L));g(!0);try{const W=await fetch(`/api/notes/${encodeURIComponent(String(t))}/collections`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({collectionId:Number(L)})});if(!W.ok)throw new Error(await W.text());const te=await W.json(),ue=Array.isArray(te==null?void 0:te.collections)?te.collections:[];c(ue.map(de=>({id:Number(de.id),name:String(de.name||""),parentId:de.parentId==null?null:Number(de.parentId)})).filter(de=>Number.isFinite(de.id)&&de.name.length)),H||E(L,1);try{n(ue)}catch{}}catch(W){window.alert("Failed to add note to collection: "+String(W))}finally{g(!1)}},M=async L=>{if(!r||m||!Number.isFinite(L))return;const H=x.has(Number(L));g(!0);try{const W=await fetch(`/api/notes/${encodeURIComponent(String(t))}/collections/${encodeURIComponent(String(L))}`,{method:"DELETE",headers:{Authorization:`Bearer ${r}`}});if(!W.ok)throw new Error(await W.text());const te=await W.json(),ue=Array.isArray(te==null?void 0:te.collections)?te.collections:[];c(ue.map(de=>({id:Number(de.id),name:String(de.name||""),parentId:de.parentId==null?null:Number(de.parentId)})).filter(de=>Number.isFinite(de.id)&&de.name.length)),H&&E(L,-1);try{n(ue)}catch{}}catch(W){window.alert("Failed to remove from collection: "+String(W))}finally{g(!1)}},N=async()=>{if(!r||m)return;const L=Array.from(new Set(a.map(H=>Number(H.id)).filter(H=>Number.isFinite(H))));g(!0);try{const H=await fetch(`/api/notes/${encodeURIComponent(String(t))}/collections`,{method:"DELETE",headers:{Authorization:`Bearer ${r}`}});if(!H.ok)throw new Error(await H.text());c([]),L.forEach(W=>E(W,-1));try{n([])}catch{}}catch(H){window.alert("Failed to clear collections: "+String(H))}finally{g(!1)}},z=async()=>{var H;if(!r)return;const L=String(f||"").trim();if(L&&!m){g(!0);try{const W=await fetch("/api/collections",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({name:L,parentId:y})});if(!W.ok)throw new Error(await W.text());const te=await W.json(),ue=Number((H=te==null?void 0:te.collection)==null?void 0:H.id);if(Number.isFinite(ue)){try{window.dispatchEvent(new CustomEvent("collections:changed",{detail:{invalidateAll:!0,reason:"create",id:ue}}))}catch{}try{p("")}catch{}g(!1),await k(ue);return}await v()}catch(W){window.alert("Failed to create collection: "+String(W))}finally{g(!1)}}},X=i.map(L=>L.name).join(" / ");return zn.createPortal(h.jsx("div",{style:{position:"fixed",inset:0,background:"var(--modal-backdrop, rgba(0,0,0,0.66))",zIndex:10050,display:"flex",alignItems:"center",justifyContent:"center",padding:16},onPointerDown:L=>{L.target===L.currentTarget&&(L.preventDefault(),L.stopPropagation(),setTimeout(()=>e(),0))},onClick:L=>{L.target===L.currentTarget&&(L.preventDefault(),L.stopPropagation())},children:h.jsxs("div",{role:"dialog","aria-label":"Add to collection","aria-modal":"true",style:{width:"min(520px, 100%)",maxHeight:"min(680px, 100%)",overflow:"auto",background:"var(--modal-surface, var(--panel, var(--card)))",color:"var(--text, var(--fg))",border:"1px solid var(--modal-border, var(--border, rgba(255,255,255,0.10)))",borderRadius:12,boxShadow:"0 18px 48px rgba(0,0,0,0.42)",padding:14},onPointerDown:L=>L.stopPropagation(),onMouseDown:L=>L.stopPropagation(),onClick:L=>L.stopPropagation(),children:[h.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[h.jsx("div",{style:{display:"flex",alignItems:"center",gap:8},children:i.length>0&&h.jsxs(h.Fragment,{children:[h.jsx("button",{className:"btn",onClick:()=>s(L=>L.slice(0,-1)),disabled:m,title:"Back",children:"Back"}),h.jsx("button",{className:"btn",onClick:()=>s([]),disabled:m,title:"Root",children:"All"})]})}),h.jsx("button",{className:"btn",onClick:e,disabled:m,children:"Done"})]}),h.jsxs("div",{style:{marginTop:10,marginBottom:10},children:[h.jsx("div",{style:{fontWeight:700},children:"Add to…"}),h.jsx("div",{style:{color:"var(--muted)",fontSize:12},children:X||"All notes"})]}),h.jsxs("div",{style:{display:"flex",gap:8,marginBottom:10},children:[y!=null&&h.jsx("button",{className:"btn",onClick:()=>{k(Number(y))},disabled:m,title:"Add to current collection",children:"Add here"}),h.jsx("button",{className:"btn",onClick:N,disabled:m,title:"Remove from all collections",children:"Remove all"})]}),h.jsxs("div",{style:{display:"grid",gap:6},children:[u&&h.jsx("div",{style:{color:"var(--muted)"},children:"Loading…"}),!u&&o.length===0&&h.jsx("div",{style:{color:"var(--muted)"},children:"No sub-collections"}),o.map(L=>h.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"8px 10px",borderRadius:10,border:"1px solid var(--border)",background:"var(--panel-2, transparent)"},children:[h.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0,flex:1},children:[h.jsx("button",{className:"btn",onClick:()=>s(H=>[...H,{id:L.id,name:L.name}]),disabled:m,title:"Open",children:"Open"}),h.jsxs("div",{style:{overflow:"hidden"},children:[h.jsx("div",{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:L.name}),typeof L.noteCount=="number"&&h.jsxs("div",{style:{color:"var(--muted)",fontSize:12},children:[L.noteCount," notes"]})]})]}),(()=>{const H=x.has(Number(L.id));return h.jsx("button",{className:"btn",onClick:()=>{H?M(L.id):k(L.id)},disabled:m,title:H?"Remove note from this collection":"Add note to this collection",children:H?"Remove":"Add"})})()]},L.id))]}),h.jsxs("div",{style:{marginTop:12,borderTop:"1px solid var(--border)",paddingTop:10},children:[h.jsx("div",{style:{fontWeight:700,marginBottom:6},children:"New collection"}),h.jsxs("div",{style:{display:"flex",gap:8},children:[h.jsx("input",{value:f,onChange:L=>p(L.target.value),placeholder:"Name",style:{flex:1,minWidth:0,padding:"8px 10px",borderRadius:10,border:"1px solid var(--border)",background:"var(--panel)",color:"var(--text)"},onKeyDown:L=>{L.key==="Enter"&&z()},disabled:m}),h.jsx("button",{className:"btn",onClick:z,disabled:m||!f.trim(),children:"Create & add"})]})]})]})}),document.body)}function UJ({noteId:t,onClose:e,onUpdated:n}){const{token:r}=Sr(),[i,s]=b.useState([]),[o,l]=b.useState(new Set),[a,c]=b.useState(""),[u,d]=b.useState(!1);b.useEffect(()=>{r&&Promise.all([fetch("/api/labels",{headers:{Authorization:`Bearer ${r}`}}).then(y=>y.json()),fetch("/api/notes",{headers:{Authorization:`Bearer ${r}`}}).then(y=>y.json())]).then(([y,v])=>{const w=Array.isArray(y.labels)?y.labels:[];s(w);const x=(Array.isArray(v.notes)?v.notes:[]).find(k=>k.id===t),E=new Set(((x==null?void 0:x.noteLabels)||[]).map(k=>{var M;return(M=k.label)==null?void 0:M.id}).filter(k=>typeof k=="number"));l(E)}).catch(()=>{})},[r,t]),b.useEffect(()=>{try{return window.dispatchEvent(new Event("freemannotes:editor-modal-open")),()=>{setTimeout(()=>{try{window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}catch{}},0)}}catch{return}},[]);async function f(y){if(r){d(!0);try{let v={};if(typeof y=="string")v={name:y};else{const E=i.find(k=>k.id===y);if(!E)return;v={name:E.name}}const w=await fetch(`/api/notes/${t}/labels`,{method:"POST",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json"},body:JSON.stringify(v)});if(!w.ok)throw new Error(await w.text());const x=await w.json();if(x!=null&&x.label){const E=x.label,M=i.some(z=>z.id===E.id)?i:[...i,E],N=new Set(o);N.add(E.id),s(M),l(N),n&&n(M.filter(z=>N.has(z.id))),typeof window<"u"&&window.dispatchEvent(new CustomEvent("labels:refresh"))}}finally{d(!1)}}}async function p(y){if(r){d(!0);try{const v=await fetch(`/api/notes/${t}/labels/${y}`,{method:"DELETE",headers:{Authorization:`Bearer ${r}`}});if(!v.ok)throw new Error(await v.text());const w=new Set(o);w.delete(y),l(w),n&&n(i.filter(x=>w.has(x.id)))}finally{d(!1)}}}async function m(y){if(!(!r||!window.confirm("Delete this label? This will remove it from all notes and from the sidebar."))){d(!0);try{const w=await fetch(`/api/labels/${y}`,{method:"DELETE",headers:{Authorization:`Bearer ${r}`}});if(!w.ok)throw new Error(await w.text());const x=i.filter(k=>k.id!==y),E=new Set(o);E.delete(y),s(x),l(E),n&&n(x.filter(k=>E.has(k.id))),typeof window<"u"&&window.dispatchEvent(new CustomEvent("labels:refresh"))}finally{d(!1)}}}const g=h.jsx("div",{className:"image-dialog-backdrop",onPointerDown:y=>{y.target===y.currentTarget&&(y.preventDefault(),y.stopPropagation(),setTimeout(()=>e(),0))},onClick:y=>{y.target===y.currentTarget&&(y.preventDefault(),y.stopPropagation())},children:h.jsxs("div",{className:"image-dialog",role:"dialog","aria-modal":!0,style:{width:360},onPointerDown:y=>{y.stopPropagation()},onMouseDown:y=>{y.stopPropagation()},onClick:y=>{y.stopPropagation()},children:[h.jsxs("div",{className:"dialog-header",children:[h.jsx("strong",{children:"Labels"}),h.jsx("button",{className:"icon-close",onClick:e,children:"✕"})]}),h.jsxs("div",{className:"dialog-body",children:[h.jsxs("div",{style:{display:"flex",gap:8,marginBottom:8},children:[h.jsx("input",{value:a,onChange:y=>c(y.target.value),placeholder:"Create new label",className:"image-url-input"}),h.jsx("button",{className:"btn",onClick:async()=>{const y=a.trim();y&&(await f(y),c(""))},disabled:u,children:"Add"})]}),h.jsx("div",{children:i.length===0?h.jsx("div",{style:{color:"var(--muted)"},children:"No labels yet"}):i.map(y=>{const v=o.has(y.id);return h.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 0",justifyContent:"space-between"},children:[h.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,flex:1},children:[h.jsx("input",{type:"checkbox",checked:v,onChange:async()=>{v?await p(y.id):await f(y.id)}}),h.jsx("span",{children:y.name})]}),h.jsx("button",{className:"tiny",onClick:()=>m(y.id),title:"Delete label","aria-label":"Delete label",style:{color:"var(--danger, #d33)"},children:"✕"})]},y.id)})})]}),h.jsx("div",{className:"dialog-footer",children:h.jsx("button",{className:"btn",onClick:()=>{n&&n(i.filter(y=>o.has(y.id))),e()},children:"Close"})})]})});return typeof document<"u"?zn.createPortal(g,document.body):g}function Fs(t){if(!t)return;const e=t.replace("#",""),n=e.length===3?e.split("").map(m=>m+m).join(""):e;if(n.length!==6)return;const r=parseInt(n.slice(0,2),16)/255,i=parseInt(n.slice(2,4),16)/255,s=parseInt(n.slice(4,6),16)/255,o=m=>m<=.03928?m/12.92:Math.pow((m+.055)/1.055,2.4),l=o(r),a=o(i),c=o(s),u=.2126*l+.7152*a+.0722*c,d=(m,g)=>(Math.max(m,g)+.05)/(Math.min(m,g)+.05),f=d(1,u),p=d(0,u);return f>=p?"#ffffff":"#000000"}function El({note:t,onChange:e,openRequest:n,onOpenRequestHandled:r,dragHandleAttributes:i,dragHandleListeners:s}){var Pr;const o=b.useRef(null),l=b.useRef(null),a=b.useRef(null),c=b.useRef(null),u=b.useRef(null),d=b.useRef(null),f=(()=>{try{return Sb()}catch{return{effective:"dark"}}})(),[p,m]=b.useState(t.viewerColor||t.color||""),[g,y]=b.useState(t.viewerColor||t.color?Fs(t.viewerColor||t.color):void 0),[v,w]=b.useState(!1),[x,E]=b.useState(t.images||[]),[k,M]=b.useState(3),[N,z]=b.useState(t.items||[]),[X,L]=b.useState(t.title||"");B.useEffect(()=>{try{const I=(t.images||[]).map(U=>({id:Number(U.id),url:String(U.url)}));E(I)}catch{}},[t.id,t.images]);function H(I){try{e==null||e({type:"images",noteId:t.id,images:I})}catch{}}function W(I){try{e==null||e({type:"color",noteId:t.id,color:I||""})}catch{}}function te(I){E(U=>{const K=I(U);try{setTimeout(()=>H(K),0)}catch{}return K})}const[ue,de]=b.useState(!1),[Ae,me]=b.useState([]),[q,se]=b.useState(()=>(t.noteLabels||[]).map(I=>I.label).filter(I=>I&&typeof I.id=="number"&&typeof I.name=="string")),[xe,Me]=B.useState(()=>{try{const I=t.viewerCollections;return Array.isArray(I)?I.filter(U=>U&&typeof U.id=="number"&&typeof U.name=="string").map(U=>({id:Number(U.id),name:String(U.name),parentId:U.parentId==null?null:Number(U.parentId)})):[]}catch{return[]}}),[Q,Je]=b.useState(!1),[_t,J]=b.useState(null),[at,$t]=b.useState(!1),[ct,nt]=B.useState(null),[At,Bt]=B.useState({}),[wt,ce]=b.useState(!1),[Ee,Ke]=b.useState(!1),[ze,Pe]=b.useState(!1),[it,ot]=b.useState(!1),[xt,oe]=b.useState(!1),[Ye,Ge]=b.useState(!0),[Y,ge]=B.useState(null),[De,Be]=b.useState(!1);B.useEffect(()=>{try{const I=t.viewerCollections;if(!Array.isArray(I)){Me([]);return}const U=I.filter(K=>K&&typeof K.id=="number"&&typeof K.name=="string").map(K=>({id:Number(K.id),name:String(K.name),parentId:K.parentId==null?null:Number(K.parentId)}));Me(U)}catch{Me([])}},[t.id,t.viewerCollections]);const Le=B.useMemo(()=>{try{const I=window.matchMedia;return!!(I&&(I("(pointer: coarse)").matches||I("(any-pointer: coarse)").matches))}catch{return!1}},[]),j=Le?"center":"flex-start",G=B.useCallback(()=>{t.type==="CHECKLIST"||t.items&&t.items.length?ot(!0):oe(!0)},[t.type,t.items]),fe=B.useRef(0);B.useEffect(()=>{const I=Number(n||0);if(I&&I!==fe.current){fe.current=I,G();try{r&&r(Number(t.id))}catch{}}},[n,G,r,t.id]);const je=B.useCallback(I=>{if(!I)return!1;try{return!!I.closest('button, a, input, textarea, select, [contenteditable="true"], [role="button"], .more-menu, .dropdown, .color-palette')}catch{return!1}},[]),Ue=B.useCallback((I=!1)=>{c.current==null&&(c.current=requestAnimationFrame(()=>{c.current=null;const U=l.current;if(U)try{if(!(U.scrollHeight>U.clientHeight+1)){U.style.maxHeight&&(U.style.maxHeight=""),u.current=null,d.current=null;return}const le=U.style.maxHeight;I&&le&&(U.style.maxHeight="",U.getBoundingClientRect());const $=U.clientHeight;if(!Number.isFinite($)||$<=0){I&&le&&(U.style.maxHeight=le);return}let S=0;const V=N&&N.length>0?U.querySelector(".note-item-text")??U:U,he=parseFloat(getComputedStyle(V).lineHeight||"0");if(Number.isFinite(he)&&he>0&&(S=he),!Number.isFinite(S)||S<12){le&&(U.style.maxHeight=le);return}if(I&&u.current!=null&&d.current!=null&&Math.abs(u.current-S)<.5&&Math.abs(d.current-$)<.5)return;const tt=$%S;if(tt<2||S-tt<2){I&&le&&(U.style.maxHeight=le);return}const Ft=Math.max(S,Math.floor($-tt));U.style.maxHeight=`${Ft}px`,u.current=S,d.current=$}catch{}}))},[N]);B.useEffect(()=>{const I=l.current;if(!I)return;const U=()=>{try{const S=I.scrollHeight>I.clientHeight+1;Be(S)}catch{}},K=requestAnimationFrame(()=>{U(),Ue(!0)});let le=null;try{le=new ResizeObserver(()=>{U(),Ue()}),le.observe(I)}catch{}const $=()=>Ue(!0);return window.addEventListener("notes-grid:recalc",$),window.addEventListener("resize",$),()=>{try{cancelAnimationFrame(K)}catch{}try{le&&le.disconnect()}catch{}try{window.removeEventListener("notes-grid:recalc",$)}catch{}try{window.removeEventListener("resize",$)}catch{}if(c.current!=null){try{cancelAnimationFrame(c.current)}catch{}c.current=null}}},[t.id,X,N.length,Ye,Y,t.body,x.length,q.length,Ue]),B.useEffect(()=>{const I=a.current;if(!I)return;const U=6,K=()=>{try{const S=getComputedStyle(document.documentElement).getPropertyValue("--image-thumb-size")||"",V=Math.max(24,parseInt(String(S).trim(),10)||96),he=I.clientWidth||0,tt=Math.max(1,Math.floor((he+U)/(V+U)));M(tt)}catch{}};K();let le=null;try{le=new ResizeObserver(()=>K()),le.observe(I)}catch{}return window.addEventListener("resize",K),window.addEventListener("notes-grid:recalc",K),()=>{try{le&&le.disconnect()}catch{}window.removeEventListener("resize",K),window.removeEventListener("notes-grid:recalc",K)}},[]);const We=b.useRef(null),{token:Se,user:Xe}=Sr();B.useEffect(()=>{const I=U=>{try{const K=U,le=(K==null?void 0:K.detail)||{};if(le!=null&&le.invalidateAll){Bt({});return}const $=Array.isArray(le==null?void 0:le.ids)?le.ids:Number.isFinite(Number(le==null?void 0:le.id))?[Number(le.id)]:[];if(!$.length)return;Bt(S=>{const V={...S};for(const he of $)try{delete V[Number(he)]}catch{}return V})}catch{}};try{window.addEventListener("collections:changed",I)}catch{}return()=>{try{window.removeEventListener("collections:changed",I)}catch{}}},[]);const Tt=B.useMemo(()=>{try{const I=xe.map(U=>Number(U.id)).filter(U=>Number.isFinite(U));return ct!=="collections"?"":I.join(",")}catch{return""}},[xe,ct]);B.useEffect(()=>{if(!Se||!xe.length)return;const I=Tt?Tt.split(",").map(le=>Number(le)).filter(le=>Number.isFinite(le)):[];if(!I.length)return;let U=!1;const K=new AbortController;return(async()=>{try{const le=I.filter(V=>!At[V]);if(!le.length)return;const $=await Promise.all(le.map(async V=>{var he,tt;try{const Ft=await fetch(`/api/collections/${V}/breadcrumb`,{headers:{Authorization:Se?`Bearer ${Se}`:""},signal:K.signal});if(!Ft.ok)throw new Error(await Ft.text());const Kt=await Ft.json(),sn=(Array.isArray(Kt==null?void 0:Kt.breadcrumb)?Kt.breadcrumb:[]).map(A=>String((A==null?void 0:A.name)||"")).filter(Boolean).join(" / ");return[V,sn||((he=xe.find(A=>Number(A.id)===V))==null?void 0:he.name)||String(V)]}catch{return[V,((tt=xe.find(Ft=>Number(Ft.id)===V))==null?void 0:tt.name)||String(V)]}}));if(U)return;const S={};for(const[V,he]of $)S[Number(V)]=String(he||"");Bt(V=>({...V,...S}))}catch{}})(),()=>{U=!0;try{K.abort()}catch{}}},[Se,xe,Tt,At]);const rt=B.useMemo(()=>new Fi,[t.id]),Wt=B.useRef(null),Mt=B.useRef(null);B.useEffect(()=>{const I=`note-${t.id}`,K=`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/collab`,le=new mf(K,I,rt);Wt.current=le;const $=rt.getArray("checklist");Mt.current=$;const S=()=>{try{if($.length===0)return;const V=$.toArray().map(he=>({id:typeof he.get("id")=="number"?Number(he.get("id")):void 0,content:String(he.get("content")||""),checked:!!he.get("checked"),indent:Number(he.get("indent")||0)}));z(V)}catch{}};return $.observeDeep(S),le.on("sync",V=>{V&&S()}),()=>{try{$.unobserveDeep(S)}catch{}try{le.destroy()}catch{}}},[t.id,rt]),B.useEffect(()=>{if(t.type!=="TEXT"){ge(null);return}let I=null;try{I=new ag({extensions:[ta.configure({heading:{levels:[1,2,3]}}),wR.configure({openOnClick:!1,autolink:!0}),Ac.configure({types:["heading","paragraph"]}),Pg.configure({document:rt})],content:""});const U=()=>{try{const $=(I==null?void 0:I.getHTML())||"",S=ka.sanitize($,{USE_PROFILES:{html:!0}});ge(S)}catch{}};I.on("update",U);const K=Wt.current,le=$=>{$&&U()};return K==null||K.on("sync",le),()=>{try{I==null||I.destroy()}catch{}try{K==null||K.off("sync",le)}catch{}}}catch{}},[t.id,t.type,rt]);function dn(){const I=t.body||"",U=$=>$.replace(/&/g,"&").replace(//g,">"),K=($,S)=>!S||!S.length?U($):S.reduce((V,he)=>{var tt;switch(he.type){case"bold":return`${V}`;case"italic":return`${V}`;case"underline":return`${V}`;case"link":{const Ft=typeof((tt=he.attrs)==null?void 0:tt.href)=="string"?he.attrs.href:"#";return`${V}`}default:return V}},U($)),le=($,S=!1)=>{var tt;if(!$)return"";if(Array.isArray($))return $.map(Ft=>le(Ft,S)).join("");const V=$.type;if(V==="text")return K($.text||"",$.marks);if(V==="hardBreak")return"
";if((V==="paragraph"||V==="heading")&&(!$.content||$.content.length===0))return S?"":"

";const he=$.content?le($.content,V==="listItem"):"";switch(V){case"paragraph":return`

${he}

`;case"heading":{const Ft=Math.min(6,Math.max(1,Number(((tt=$.attrs)==null?void 0:tt.level)||1)));return`${he}`}case"bulletList":return`
    ${he}
`;case"orderedList":return`
    ${he}
`;case"listItem":return`
  • ${he.replace(/^

    |<\/p>$/g,"")}

  • `;case"blockquote":return`
    ${he}
    `;case"codeBlock":return`
    ${U($.textContent||"")}
    `;default:return he}};try{const $=JSON.parse(I),S=le($);return ka.sanitize(S,{USE_PROFILES:{html:!0}})}catch{const $=U(I).replace(/\n/g,"
    ");return ka.sanitize(`

    ${$}

    `)}}B.useEffect(()=>{const I=t.viewerColor||t.color||"";m(I||""),y(I?Fs(I):void 0)},[t.id,t.viewerColor,t.color]),B.useEffect(()=>{se((t.noteLabels||[]).map(I=>I.label).filter(I=>I&&typeof I.id=="number"&&typeof I.name=="string"))},[t.noteLabels]),B.useEffect(()=>{L(t.title||"")},[t.title]),B.useEffect(()=>{E((t.images||[]).map(I=>({id:Number(I.id),url:String(I.url)})))},[t.images]),B.useEffect(()=>{try{const I=(t.collaborators||[]).map(U=>{const K=U&&(U.user||{});if(K&&typeof K.id=="number"&&typeof K.email=="string"){const le=typeof K.userImageUrl=="string"?String(K.userImageUrl):typeof U.userImageUrl=="string"?String(U.userImageUrl):void 0;return{collabId:Number(U.id),userId:Number(K.id),email:String(K.email),name:typeof K.name=="string"?String(K.name):void 0,userImageUrl:le}}return null}).filter(Boolean);me(I)}catch{}},[t.collaborators]),B.useRef(null),B.useRef(!1);async function It(I){const U=I||"";try{const K=await fetch(`/api/notes/${t.id}/prefs`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:Se?`Bearer ${Se}`:""},body:JSON.stringify({color:U})});if(!K.ok)throw new Error(await K.text())}catch(K){console.error("Failed to save color preference",K),window.alert("Failed to save color preference")}U?(m(U),y(Fs(U))):(m(""),y("var(--muted)"));try{W(U)}catch{}ce(!1)}function Ot(I){Ke(!1),I&&(async()=>{try{const U=await fetch(`/api/notes/${t.id}/images`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:Se?`Bearer ${Se}`:""},body:JSON.stringify({url:I})});if(!U.ok)throw new Error(await U.text());const le=(await U.json()).image||null;le&&le.id&&le.url&&te($=>$.some(V=>Number(V.id)===Number(le.id))?$:[...$,{id:Number(le.id),url:String(le.url)}])}catch(U){console.error("Failed to attach image",U),te(K=>K.some($=>String($.url)===String(I))?K:[...K,{id:Date.now(),url:I}]),window.alert("Failed to attach image to server; showing locally")}})()}async function tn(I,U){const K=Mt.current;if(K){const le=K.toArray().findIndex($=>typeof $.get("id")=="number"?Number($.get("id"))===I:!1);if(le>=0){const $=K.get(le);if($.set("checked",U),Number($.get("indent")||0)===0)for(let V=le+1;V0)he.set("checked",U);else break}return}}try{const le=await fetch(`/api/notes/${t.id}/items/${I}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Se}`},body:JSON.stringify({checked:U})});if(!le.ok)throw new Error(await le.text());z($=>$.map(S=>S.id===I?{...S,checked:U}:S))}catch(le){console.error(le),window.alert("Failed to update checklist item — please try again.")}}function ee(I){Pe(!1),I&&window.alert(`Reminder set (UI-only): ${I}`)}function re(){const I=!v;w(I),fetch(`/api/notes/${t.id}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:Se?`Bearer ${Se}`:""},body:JSON.stringify({archived:I})}).then(()=>e&&e()).catch(U=>{console.error(U),window.alert("Failed to archive note")})}async function Oe(){var I;try{const U=typeof((I=t.owner)==null?void 0:I.id)=="number"?Number(t.owner.id):void 0,K=Xe&&Xe.id?Number(Xe.id):void 0;if(U&&K&&U!==K){const $=Ae.find(S=>typeof S.userId=="number"&&S.userId===K);if($&&typeof $.collabId=="number"){const S=await fetch(`/api/notes/${t.id}/collaborators/${$.collabId}`,{method:"DELETE",headers:{Authorization:Se?`Bearer ${Se}`:""}});if(!S.ok)throw new Error(await S.text());e&&e();return}window.alert("You are not the owner and could not find your collaborator entry to remove.");return}const le=await fetch(`/api/notes/${t.id}`,{method:"DELETE",headers:{Authorization:Se?`Bearer ${Se}`:""}});if(!le.ok)throw new Error(await le.text());e&&e()}catch(U){console.error(U),window.alert("Failed to delete or leave note")}}const[Ze,pe]=b.useState(!1);function Ce(){pe(!0)}async function Fe(){try{const I=(N||[]).map((K,le)=>({id:K.id,content:K.content,checked:!1,ord:typeof K.ord=="number"?K.ord:le,indent:typeof K.indent=="number"?K.indent:0}));z(I);const U=await fetch(`/api/notes/${t.id}/items`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:Se?`Bearer ${Se}`:""},body:JSON.stringify({items:I})});if(!U.ok)throw new Error(await U.text())}catch(I){console.error(I),window.alert("Failed to uncheck all items")}}async function ut(){try{const I=(N||[]).map((K,le)=>({id:K.id,content:K.content,checked:!0,ord:typeof K.ord=="number"?K.ord:le,indent:typeof K.indent=="number"?K.indent:0}));z(I);const U=await fetch(`/api/notes/${t.id}/items`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:Se?`Bearer ${Se}`:""},body:JSON.stringify({items:I})});if(!U.ok)throw new Error(await U.text())}catch(I){console.error(I),window.alert("Failed to check all items")}}function zt(I){me(U=>U.find(K=>K.userId===I.id)?U:[...U,{userId:I.id,email:I.email,name:I.name,userImageUrl:I.userImageUrl}]),de(!1),(async()=>{try{const U=await fetch(`/api/notes/${t.id}/collaborators`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:Se?`Bearer ${Se}`:""},body:JSON.stringify({email:I.email})});if(!U.ok)throw new Error(await U.text());const K=await U.json(),le=K&&(K.collaborator||null);le&&typeof le.id=="number"&&me($=>$.map(S=>S.userId===I.id?{...S,collabId:Number(le.id)}:S))}catch(U){console.error("Failed to add collaborator",U),window.alert("Failed to add collaborator"),me(K=>K.filter(le=>le.userId!==I.id))}})()}async function kt(I){try{const U=await fetch(`/api/notes/${t.id}/collaborators/${I}`,{method:"DELETE",headers:{Authorization:Se?`Bearer ${Se}`:""}});if(!U.ok)throw new Error(await U.text());me(K=>K.filter(le=>le.collabId!==I)),e&&e()}catch(U){console.error("Failed to remove collaborator",U),window.alert("Failed to remove collaborator")}}async function Jt(I){try{const U=await fetch(`/api/notes/${t.id}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:Se?`Bearer ${Se}`:""},body:JSON.stringify({cardSpan:I})});if(!U.ok)throw new Error(await U.text());try{window.dispatchEvent(new Event("notes-grid:recalc"))}catch{}e&&e()}catch(U){console.error("Failed to set card width",U),window.alert("Failed to set card width")}}const jt=(()=>{const I=(p||"").toLowerCase().trim(),U=new Set(["#1e1e1e","#121212","#181818","#1c1c1c","#161616"]),K=new Set(["#ffffff","#fff"]);return f.effective==="light"&&U.has(I)||f.effective==="dark"&&K.has(I)?"":p})(),fn=jt?Fs(jt):void 0,wn=fn==="#ffffff"||fn==="var(--muted)"?"rgba(0,0,0,0.12)":"rgba(255,255,255,0.06)",nn=[];try{const I=Xe&&Xe.id?Number(Xe.id):void 0,U=t.owner||null;if(U&&typeof U.id=="number"&&U.id!==I){const K=typeof U.name=="string"&&U.name?U.name:String(U.email||"").split("@")[0];nn.push({key:`owner-${U.id}`,userId:Number(U.id),name:K,email:String(U.email||""),userImageUrl:typeof U.userImageUrl=="string"?String(U.userImageUrl):void 0})}for(const K of Ae)if(typeof K.userId=="number"&&K.userId!==I){const le=K.name&&K.name.length?K.name:String(K.email).split("@")[0];nn.push({key:K.collabId||`u-${K.userId}`,userId:Number(K.userId),name:le,email:K.email,userImageUrl:K.userImageUrl})}}catch{}const rn={background:jt||void 0,color:fn||void 0,opacity:v?.6:1,position:"relative","--chip-bg":wn};return jt&&(rn["--checkbox-bg"]=jt,rn["--checkbox-border"]=Fs(jt),rn["--checkbox-stroke"]=Fs(jt),rn["--checkbox-checked-bg"]=jt,rn["--checkbox-checked-mark"]=Fs(jt)),h.jsxs("article",{ref:I=>{o.current=I},className:`note-card${q.length>0?" has-labels":""}${xe.length>0?" has-collections":""}${N&&N.length>0?" has-checklist":""}`,style:rn,...X?{}:i||{},...X?{}:(()=>{const I=s||{},{onKeyDown:U,...K}=I;return K})(),"data-clipped":De?"1":void 0,onClick:I=>{const U=I.target;je(U)||G()},children:[h.jsx("input",{ref:We,type:"file",accept:"image/*",style:{display:"none"}}),X&&h.jsx("div",{className:"note-title",...i||{},...(()=>{const I=s||{},{onKeyDown:U,...K}=I;return K})(),style:{cursor:"pointer"},onClick:()=>{G()},role:"button",tabIndex:0,onKeyDown:I=>{try{const U=s==null?void 0:s.onKeyDown;typeof U=="function"&&U(I)}catch{}I.defaultPrevented||(I.key==="Enter"||I.key===" ")&&(I.preventDefault(),G())},children:X}),(()=>{if(!(nn.length>0||q.length>0||xe.length>0))return null;const U=`note-meta-panel-${Number(t.id)}`,K=xe.map($=>({...$,path:At[Number($.id)]||String($.name||"")})).sort(($,S)=>String($.path).localeCompare(String(S.path))),le=()=>{Le||nt(null)};return h.jsxs("div",{className:`note-meta${ct?" is-expanded":""}`,onPointerDown:$=>{$.stopPropagation()},onClick:$=>{$.stopPropagation()},onMouseLeave:le,onBlurCapture:$=>{const S=$.relatedTarget;S&&$.currentTarget.contains(S)||nt(null)},children:[h.jsxs("div",{className:"note-meta-bar",children:[nn.length>0&&h.jsxs("button",{type:"button",className:`chip chip--meta${ct==="collab"?" is-active":""}`,"aria-expanded":ct==="collab","aria-controls":U,title:"Collaborators",onMouseEnter:()=>{Le||nt("collab")},onFocus:$=>{var S,V;try{if(!((V=(S=$.currentTarget)==null?void 0:S.matches)==null?void 0:V.call(S,":focus-visible")))return}catch{}nt("collab")},onClick:$=>{$.stopPropagation(),nt(S=>S==="collab"?null:"collab")},children:[h.jsx(Xs,{icon:c9,className:"meta-fa-icon"}),h.jsx("span",{children:nn.length})]}),q.length>0&&h.jsxs("button",{type:"button",className:`chip chip--meta${ct==="labels"?" is-active":""}`,"aria-expanded":ct==="labels","aria-controls":U,title:"Labels",onMouseEnter:()=>{Le||nt("labels")},onFocus:$=>{var S,V;try{if(!((V=(S=$.currentTarget)==null?void 0:S.matches)==null?void 0:V.call(S,":focus-visible")))return}catch{}nt("labels")},onClick:$=>{$.stopPropagation(),nt(S=>S==="labels"?null:"labels")},children:[h.jsx(Xs,{icon:d9,className:"meta-fa-icon"}),h.jsx("span",{children:q.length})]}),xe.length>0&&h.jsxs("button",{type:"button",className:`chip chip--meta chip--meta-collections${ct==="collections"?" is-active":""}`,"aria-expanded":ct==="collections","aria-controls":U,title:`${xe.length} collections`,onMouseEnter:()=>{Le||nt("collections")},onFocus:$=>{var S,V;try{if(!((V=(S=$.currentTarget)==null?void 0:S.matches)==null?void 0:V.call(S,":focus-visible")))return}catch{}nt("collections")},onClick:$=>{$.stopPropagation(),nt(S=>S==="collections"?null:"collections")},children:[h.jsx(Xs,{icon:u9,className:"meta-fa-icon"}),h.jsx("span",{children:xe.length})]})]}),h.jsxs("div",{id:U,className:`note-meta-panel${ct?" is-open":""}`,role:"region","aria-label":"Note metadata",children:[ct==="collab"&&h.jsx("div",{className:"collab-chips","aria-label":"Collaborators",children:nn.map($=>{const S=(Xe==null?void 0:Xe.chipDisplayMode)||"image+text",V=(S==="image"||S==="image+text")&&!!$.userImageUrl,he=S==="text"||S==="image+text";return h.jsxs("button",{type:"button",className:"chip",title:$.email,style:{display:"inline-flex",alignItems:"center",gap:6},onClick:tt=>{tt.stopPropagation();try{e==null||e({type:"filter:collaborator",noteId:Number(t.id),userId:Number($.userId),name:String($.name||"")})}catch{}},children:[V?h.jsx("img",{src:$.userImageUrl,alt:"",style:{width:18,height:18,borderRadius:"50%",objectFit:"cover"}}):null,he?h.jsx("span",{children:$.name}):null]},$.key)})}),ct==="labels"&&h.jsx("div",{className:"label-chips","aria-label":"Labels",children:q.map($=>h.jsx("button",{type:"button",className:"chip",onClick:S=>{S.stopPropagation();try{e==null||e({type:"filter:labels",noteId:Number(t.id),labelId:Number($.id),labelName:String($.name||"")})}catch{}},children:$.name},$.id))}),ct==="collections"&&h.jsx("div",{className:"note-collections","aria-label":"Collections",children:h.jsx("div",{className:"note-collections-list",role:"list",children:K.map($=>h.jsx("button",{type:"button",className:"chip note-collection-chip",title:$.path,onClick:S=>{S.stopPropagation();try{e==null||e({type:"filter:collection",noteId:Number(t.id),collectionId:Number($.id),collectionName:String($.name||"")})}catch{}},children:$.path},$.id))})})]})]})})(),h.jsx("div",{className:"note-body",ref:l,onClick:()=>{G()},children:N&&N.length>0?h.jsxs("div",{children:[h.jsx("div",{className:"note-items-list",children:N.filter(I=>!I.checked).map((I,U)=>h.jsxs("div",{className:"note-item",style:{display:"flex",gap:8,alignItems:j,marginLeft:(I.indent||0)*16},children:[h.jsx("button",{className:`note-checkbox ${I.checked?"checked":""}`,type:"button",onClick:K=>{K.stopPropagation(),tn(I.id,!I.checked)},"aria-pressed":!!I.checked,style:{background:"var(--checkbox-bg)",border:"2px solid var(--checkbox-border)",color:"var(--checkbox-stroke)"},children:I.checked&&h.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:h.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})}),h.jsx("div",{className:"note-item-text",children:h.jsx("div",{className:"rt-html",dangerouslySetInnerHTML:{__html:ka.sanitize(String(I.content||""),{USE_PROFILES:{html:!0}})}})})]},typeof I.id=="number"?I.id:`i-${U}`))}),N.some(I=>I.checked)&&h.jsx("div",{style:{marginTop:6},children:h.jsx("button",{className:"btn completed-toggle",onClick:I=>{I.stopPropagation(),Ge(U=>!U)},"aria-expanded":Ye,"aria-controls":`completed-${t.id}`,children:h.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[h.jsx("span",{style:{transform:Ye?"rotate(90deg)":"rotate(0deg)",display:"inline-block"},children:"▸"}),h.jsxs("span",{children:[N.filter(I=>I.checked).length," completed items"]})]})})}),Ye&&N.some(I=>I.checked)&&h.jsx("div",{className:"note-items-list",style:{marginTop:6},children:N.filter(I=>I.checked).map((I,U)=>h.jsxs("div",{className:"note-item completed",style:{display:"flex",gap:8,alignItems:j,marginLeft:(I.indent||0)*16,opacity:.7},children:[h.jsx("button",{className:`note-checkbox ${I.checked?"checked":""}`,type:"button",onClick:K=>{K.stopPropagation(),tn(I.id,!I.checked)},"aria-pressed":!!I.checked,style:{background:"var(--checkbox-bg)",border:"2px solid var(--checkbox-border)",color:"var(--checkbox-stroke)"},children:I.checked&&h.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:h.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})}),h.jsx("div",{className:"note-item-text",style:{textDecoration:"line-through"},children:h.jsx("div",{className:"rt-html",dangerouslySetInnerHTML:{__html:ka.sanitize(String(I.content||""),{USE_PROFILES:{html:!0}})}})})]},`c-${typeof I.id=="number"?I.id:U}`))})]}):Y||t.body?h.jsx("div",{className:"note-html",dangerouslySetInnerHTML:{__html:Y||dn()}}):null}),x&&x.length>0&&h.jsx("div",{className:"note-images",ref:a,children:(()=>{const I=Math.max(1,k)*3,U=x.slice(0,Math.min(x.length,I)),K=Math.max(0,x.length-I);return U.map((le,$)=>h.jsxs("button",{className:"note-image",style:{padding:0,border:"none",background:"transparent",cursor:"pointer"},onClick:()=>{G()},children:[h.jsx("img",{src:le.url,alt:"note image"}),K>0&&$===U.length-1&&h.jsxs("span",{className:"note-image-moreOverlay","aria-label":`${K} more images`,children:["+",K," more"]})]},le.id))})()}),h.jsx("div",{className:"footer-hover-zone","aria-hidden":!0}),h.jsx("div",{className:"note-footer","aria-hidden":!1,children:h.jsxs("div",{className:"note-actions",children:[h.jsx("button",{className:"tiny palette",onClick:()=>ce(!0),"aria-label":"Change color",title:"Change color",children:h.jsx(Xs,{icon:lf,className:"palette-svg"})}),h.jsx("button",{className:"tiny",onClick:()=>Pe(!0),"aria-label":"Reminder",title:"Reminder",children:h.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),h.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),h.jsx("button",{className:"tiny",onClick:()=>de(!0),"aria-label":"Collaborators",title:"Collaborators",children:h.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"}),h.jsx("path",{d:"M6 14c-1.66 0-3 1.34-3 3v1h9.5c-.2-.63-.5-1.23-.9-1.76C11.7 15.6 9.9 14 6 14z"}),h.jsx("path",{d:"M20 16v2h-2v2h-2v-2h-2v-2h2v-2h2v2z"})]})}),h.jsx("button",{className:"tiny",onClick:()=>Ke(!0),"aria-label":"Add image",title:"Add image",children:h.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:h.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5C3.9 3 3 3.9 3 5v14h18zM8.5 13.5l2.5 3L14.5 12l4.5 7H5l3.5-5.5z"})})}),h.jsx("button",{className:"tiny",onClick:re,"aria-label":"Archive",title:"Archive",children:h.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:h.jsx("path",{d:"M20.54 5.23L19.4 4H4.6L3.46 5.23 3 6v2h18V6l-.46-.77zM6 10v9h12V10H6zm3 2h6v2H9v-2z"})})}),h.jsx("button",{className:"tiny",onClick:I=>{I.stopPropagation(),J({x:I.clientX,y:I.clientY}),Je(U=>!U)},"aria-label":"More",title:"More",children:"⋮"})]})}),Q&&h.jsx(Hx,{anchorRef:o,anchorPoint:_t,itemsCount:5,onClose:()=>Je(!1),onDelete:Oe,onMoveToCollection:()=>$t(!0),onAddLabel:Ce,onUncheckAll:Fe,onCheckAll:ut,onSetWidth:Jt}),at&&h.jsx(BJ,{noteId:Number(t.id),onClose:()=>$t(!1),onChanged:I=>{try{const U=Array.isArray(I)?I.map(K=>({id:Number(K.id),name:String(K.name||""),parentId:K.parentId==null?null:Number(K.parentId)})).filter(K=>Number.isFinite(K.id)&&K.name.length):[];Me(U)}catch{}try{e==null||e({type:"collections",noteId:Number(t.id),collections:I})}catch{}}}),Ze&&h.jsx(UJ,{noteId:t.id,onClose:()=>pe(!1),onUpdated:I=>{se(I);try{e==null||e({type:"labels",noteId:t.id,labels:I})}catch{}}}),ue&&h.jsx(xc,{onClose:()=>de(!1),onSelect:zt,current:(()=>{const I=[],U=Xe&&Xe.id?Number(Xe.id):void 0,K=t.owner||null;K&&typeof K.id=="number"&&K.id!==U&&I.push({userId:Number(K.id),email:String(K.email||""),name:typeof K.name=="string"?K.name:void 0,userImageUrl:typeof K.userImageUrl=="string"?String(K.userImageUrl):void 0});for(const le of Ae)typeof le.userId=="number"&&I.push({collabId:le.collabId,userId:le.userId,email:le.email,name:le.name,userImageUrl:le.userImageUrl});return I})(),ownerId:typeof((Pr=t.owner)==null?void 0:Pr.id)=="number"?Number(t.owner.id):Xe==null?void 0:Xe.id,onRemove:kt}),wt&&h.jsx(ef,{anchorRef:o,onPick:It,onClose:()=>ce(!1)}),Ee&&h.jsx(nf,{onClose:()=>Ke(!1),onAdd:Ot}),ze&&h.jsx(tf,{onClose:()=>Pe(!1),onSet:ee}),it&&h.jsx(Xq,{note:{...t,items:N,images:x},noteBg:p,onColorChanged:I=>{try{const U=String(I||"");m(U),y(U?Fs(U):"var(--muted)"),W(U)}catch{}},onClose:()=>ot(!1),onSaved:({items:I,title:U})=>{z(I),L(U)},onImagesUpdated:I=>{te(()=>I)},moreMenu:{onDelete:Oe,onAddLabel:Ce,onMoveToCollection:()=>$t(!0),onUncheckAll:Fe,onCheckAll:ut,onSetWidth:Jt}}),xt&&h.jsx(FJ,{note:{...t,images:x},noteBg:p,onColorChanged:I=>{try{const U=String(I||"");m(U),y(U?Fs(U):"var(--muted)"),W(U)}catch{}},onClose:()=>oe(!1),onSaved:({title:I,body:U})=>{L(I),t.body=U},onImagesUpdated:I=>{te(()=>I)},moreMenu:{onDelete:Oe,onAddLabel:Ce,onMoveToCollection:()=>$t(!0),onSetWidth:Jt}})]})}function Nj(t){if(/^wss?:\/\//i.test(t))return t;const e=t.startsWith("/")?t:`/${t}`;return typeof window>"u"||!window.location?`ws://localhost${e}`:`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}${e}`}function HJ({onCreated:t,openRequest:e,activeCollection:n}){const{token:r,user:i}=Sr(),[s,o]=b.useState(!1),[l,a]=b.useState("text"),[c,u]=b.useState(""),[d,f]=b.useState(""),[p,m]=b.useState(!1),g=pg({extensions:[ta.configure({heading:{levels:[1,2,3]}}),Ac.configure({types:["heading","paragraph"]}),yg,mn.create({name:"paragraphEnterFix",priority:1e3,addKeyboardShortcuts(){return{"Shift-Enter":()=>{const j=this.editor;return j.commands.splitBlock(),j.commands.setParagraph(),!0},"Mod-Enter":()=>{const j=this.editor;return j.commands.splitBlock(),j.commands.setParagraph(),!0}}}})],content:"",editorProps:{attributes:{class:"rt-editor"}}});function y(){try{const j=window.matchMedia;if(!j)return!1;const G=j("(pointer: coarse)").matches||j("(any-pointer: coarse)").matches,fe=j("(max-width: 720px)").matches;return!!(G&&fe)}catch{return!1}}const v=b.useRef("");if(!v.current)try{v.current=`take-note-${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{v.current=`take-note-${Math.random()}`}function w(j){if(!g)return;const G=g.state.selection;if(!G||!G.empty){g.chain().focus()[`toggle${j.charAt(0).toUpperCase()+j.slice(1)}`]().run();return}const fe=G.$from;let je=fe.depth;for(;je>0&&!fe.node(je).isBlock;)je--;const Ue=fe.start(je),We=fe.end(je),Se=g.chain().focus().setTextSelection({from:Ue,to:We});j==="bold"?Se.toggleBold().run():j==="italic"?Se.toggleItalic().run():Se.toggleUnderline().run();try{g.chain().setTextSelection(G.from).run()}catch{}}const[,x]=b.useState(0);b.useEffect(()=>{if(!g)return;const j=()=>x(G=>G+1);return g.on("selectionUpdate",j),g.on("transaction",j),()=>{g.off("selectionUpdate",j),g.off("transaction",j)}},[g]);const E=b.useRef(!1),k=b.useRef(0),M=n&&Number.isFinite(Number(n.id))?Number(n.id):null,N=n&&typeof n.path=="string"?String(n.path):"",[z,X]=b.useState(!1);b.useEffect(()=>{const j=Number((e==null?void 0:e.nonce)||0);if(!j||j===k.current)return;k.current=j;const G=(e==null?void 0:e.mode)||"text";a(G);try{E.current=!0}catch{}try{X(M!=null)}catch{}o(!0),m(y()),G==="checklist"?(W(fe=>fe&&fe.length?fe:[{content:""}]),setTimeout(()=>De(0),30)):requestAnimationFrame(()=>{try{g==null||g.commands.focus("end")}catch{}})},[e==null?void 0:e.nonce,e==null?void 0:e.mode,g]);const L=b.useRef(!1);b.useEffect(()=>{try{s&&!L.current&&(L.current=!0,window.dispatchEvent(new Event("freemannotes:editor-modal-open"))),!s&&L.current&&(L.current=!1,window.dispatchEvent(new Event("freemannotes:editor-modal-close")))}catch{}},[s]),b.useEffect(()=>{if(!s)return;const j=v.current,G=()=>{try{const fe=Pe.current;if(fe.showImageDialog){wt(!1);return}if(fe.showCollaborator){At(!1);return}if(fe.showReminderPicker){ct(!1);return}if(fe.showPalette){at(!1);return}}catch{}try{Ye()}catch{try{Ye()}catch{}}};try{window.dispatchEvent(new CustomEvent("freemannotes:back/register",{detail:{id:j,onBack:G}}))}catch{}return()=>{try{window.dispatchEvent(new CustomEvent("freemannotes:back/unregister",{detail:{id:j}}))}catch{}}},[s]);const[H,W]=b.useState([]),[te,ue]=b.useState(!1),de=b.useRef(null),Ae=b.useRef(null),me=b.useRef(null),q=b.useRef([]),[,se]=b.useState(0),xe=b.useRef(!1),[Me,Q]=b.useState(""),[Je,_t]=b.useState(void 0),[J,at]=b.useState(!1),[$t,ct]=b.useState(!1),[nt,At]=b.useState(!1),[Bt,wt]=b.useState(!1),[ce,Ee]=b.useState(null),[Ke,ze]=b.useState([]),Pe=b.useRef({showPalette:!1,showReminderPicker:!1,showCollaborator:!1,showImageDialog:!1});b.useEffect(()=>{Pe.current={showPalette:J,showReminderPicker:$t,showCollaborator:nt,showImageDialog:Bt}},[J,$t,nt,Bt]);function it(){var fe;let j=me.current;if(j&&j.isFocused)return j;const G=typeof document<"u"&&((fe=document.getSelection())==null?void 0:fe.anchorNode)||null;if(G){const je=q.current.find(Ue=>{var We;try{return!!(Ue&&((We=Ue.view)!=null&&We.dom)&&Ue.view.dom.contains(G))}catch{return!1}});je&&(j=je)}else{const je=typeof document<"u"?document.activeElement:null;if(je){const Ue=q.current.find(We=>{try{return!!(We&&We.view&&We.view.dom&&(We.view.dom===je||We.view.dom.contains(je)))}catch{return!1}});Ue&&(j=Ue)}}if(!j||!(j!=null&&j.isFocused)){const je=q.current.find(Ue=>!!(Ue&&Ue.isFocused));je&&(j=je)}return j||null}function ot(j){var Tt;const G=it();if(!G)return;const fe=(Tt=G.state)==null?void 0:Tt.selection;if(!fe||!fe.empty){const rt=G.chain().focus();j==="bold"?rt.toggleBold().run():j==="italic"?rt.toggleItalic().run():rt.toggleUnderline().run();try{const Wt=fe==null?void 0:fe.from;requestAnimationFrame(()=>{try{const Mt=G.chain().focus();typeof Wt=="number"&&Mt.setTextSelection(Wt),Mt.run()}catch{}})}catch{}return}const je=fe.$from;let Ue=je.depth;for(;Ue>0&&!je.node(Ue).isBlock;)Ue--;const We=je.start(Ue),Se=je.end(Ue),Xe=G.chain().focus().setTextSelection({from:We,to:Se});j==="bold"?Xe.toggleBold().run():j==="italic"?Xe.toggleItalic().run():Xe.toggleUnderline().run();try{G.chain().focus().setTextSelection(fe.from).run()}catch{}try{const rt=fe.from;requestAnimationFrame(()=>{var Wt,Mt;try{try{(Mt=(Wt=G.view)==null?void 0:Wt.focus)==null||Mt.call(Wt)}catch{}G.chain().focus().setTextSelection(rt).run()}catch{}})}catch{}try{se(rt=>rt+1)}catch{}}function xt(j){var Wt,Mt;const G=it();if(!G)return!1;const fe=(Wt=G.state)==null?void 0:Wt.selection;if(!fe)return!1;const je=(((Mt=G.schema)==null?void 0:Mt.marks)||{})[j];if(!je)return!1;const Ue=fe.$from;let We=Ue.depth;for(;We>0&&!Ue.node(We).isBlock;)We--;const Se=Ue.start(We),Xe=Ue.end(We);let Tt=!1,rt=!0;try{G.state.doc.nodesBetween(Se,Xe,dn=>{dn&&dn.isText&&(Tt=!0,je.isInSet(dn.marks)||(rt=!1))})}catch{}return Tt&&rt}function oe(){try{const j=!!c.trim(),G=!!Me,fe=!!(ce||Ke&&Ke.length);if(l==="checklist"){const Ue=(H||[]).some(We=>!!String(We.content||"").trim()||!!We.checked);return j||G||fe||Ue}const je=!!((g==null?void 0:g.getText())||"").trim();return j||G||fe||je}catch{return!1}}function Ye(){try{o(!1)}catch{}try{m(!1)}catch{}try{at(!1)}catch{}try{ct(!1)}catch{}try{At(!1)}catch{}try{wt(!1)}catch{}try{u(""),f(""),W([]),Q(""),Ee(null),ze([])}catch{}try{g==null||g.commands.clearContent()}catch{}}b.useEffect(()=>{function j(fe){var rt,Wt,Mt,dn,It;if(!s)return;if(E.current){E.current=!1;return}if(fe.defaultPrevented)return;const je=de.current;if(!je)return;const Ue=fe.target,We=(rt=document.querySelector(".palette-popover"))==null?void 0:rt.contains(Ue),Se=(Wt=document.querySelector(".reminder-popover"))==null?void 0:Wt.contains(Ue),Xe=(Mt=document.querySelector(".collab-modal"))==null?void 0:Mt.contains(Ue),Tt=(dn=document.querySelector(".image-dialog"))==null?void 0:dn.contains(Ue);if(!(We||Se||Xe||Tt)){try{if((((It=fe.composedPath)==null?void 0:It.call(fe))||[]).includes(je))return}catch{}fe.target instanceof Node&&je.contains(fe.target)||Ye()}}function G(fe){s&&fe.key==="Escape"&&Ye()}return document.addEventListener("click",j),document.addEventListener("keydown",G),()=>{document.removeEventListener("click",j),document.removeEventListener("keydown",G)}},[s]);function Ge(j){if(!j)return;const G=j.replace("#",""),fe=G.length===3?G.split("").map(Ot=>Ot+Ot).join(""):G;if(fe.length!==6)return;const je=parseInt(fe.slice(0,2),16)/255,Ue=parseInt(fe.slice(2,4),16)/255,We=parseInt(fe.slice(4,6),16)/255,Se=Ot=>Ot<=.03928?Ot/12.92:Math.pow((Ot+.055)/1.055,2.4),Xe=Se(je),Tt=Se(Ue),rt=Se(We),Wt=.2126*Xe+.7152*Tt+.0722*rt,Mt=(Ot,tn)=>(Math.max(Ot,tn)+.05)/(Math.min(Ot,tn)+.05),dn=Mt(1,Wt),It=Mt(0,Wt);return dn>=It?"#ffffff":"#000000"}b.useEffect(()=>{_t(Me?Ge(Me):"var(--muted)")},[Me]);function Y(j,G){W(fe=>fe.map((je,Ue)=>Ue===j?{...je,content:G}:je))}function ge(j){W(G=>G.map((fe,je)=>je===j?{...fe,checked:!fe.checked}:fe))}function De(j){setTimeout(()=>{const G=q.current[j];try{G&&G.chain().focus().run()}catch{}},30)}async function Be(){var j;ue(!0);try{if(!r)throw new Error("Not authenticated");const G=l==="text"?(g==null?void 0:g.getJSON())||{}:{},fe={title:c,body:null,type:l==="checklist"?"CHECKLIST":"TEXT",color:Me||null};l==="checklist"&&(fe.items=H.map((Se,Xe)=>({content:Se.content,ord:Xe})));const je=await fetch("/api/notes",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify(fe)});if(!je.ok)throw new Error(await je.text());const Ue=await je.json(),We=(j=Ue==null?void 0:Ue.note)==null?void 0:j.id;if(We&&z&&M!=null)try{const Se=await fetch(`/api/notes/${We}/collections`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({collectionId:M})});if(!Se.ok)throw new Error(await Se.text())}catch(Se){console.warn("Created note but failed to add to collection",Se);try{window.alert("Note created, but failed to add it to the current collection.")}catch{}}if(We&&l==="text")try{const Se=new Fi,Xe=`note-${We}`,Tt=new mf(Nj("/collab"),Xe,Se),rt=new ag({extensions:[ta.configure({heading:{levels:[1,2,3]}}),Ac.configure({types:["heading","paragraph"]}),Pg.configure({document:Se})],content:""});await new Promise(Wt=>{Tt.on("sync",Mt=>{Mt&&Wt()})});try{rt==null||rt.commands.setContent(G)}catch{}await new Promise(Wt=>setTimeout(Wt,100));try{rt==null||rt.destroy()}catch{}try{Tt.destroy()}catch{}try{Se.destroy()}catch{}try{await fetch(`/api/notes/${We}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({body:JSON.stringify(G),type:"TEXT"})})}catch{}}catch(Se){console.warn("Failed to seed Yjs content for new note",Se)}if(We&&Ke.length)for(const Se of Ke)try{await fetch(`/api/notes/${We}/collaborators`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({email:Se.email})})}catch{}if(We&&ce)try{await fetch(`/api/notes/${We}/images`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({url:ce})})}catch{}u(""),f(""),W([]),o(!1),Q(""),Ee(null),ze([]);try{X(M!=null)}catch{}g==null||g.commands.clearContent(),t&&t()}catch(G){console.error("Failed to create note",G),window.alert("Failed to create note")}finally{ue(!1)}}if(!s)return h.jsx("div",{ref:de,children:h.jsxs("div",{className:"take-note-bar",role:"button",tabIndex:0,onMouseDown:j=>{try{j.preventDefault()}catch{}try{j.stopPropagation()}catch{}E.current=!0;try{X(M!=null)}catch{}a("text"),o(!0)},onClick:j=>{try{j.preventDefault()}catch{}try{j.stopPropagation()}catch{}E.current=!0;try{X(M!=null)}catch{}a("text"),o(!0)},onKeyDown:j=>{if(j.key==="Enter"||j.key===" "){j.preventDefault(),E.current=!0;try{X(M!=null)}catch{}a("text"),o(!0)}},children:[h.jsx("div",{style:{flex:1,padding:"10px 12px"},children:"Create a new note"}),h.jsx("div",{className:"checkbox-visual",onMouseDown:j=>{j.stopPropagation()},onClick:j=>{j.stopPropagation(),E.current=!0;try{X(M!=null)}catch{}a("checklist"),W([{content:""}]),o(!0),De(0)},"aria-label":"Start checklist",children:h.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:h.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})})]})});const Le={};return Me&&(Le.background=Me,Le["--checkbox-bg"]=Me,Le["--checkbox-border"]="#ffffff",Le["--checkbox-checked-bg"]=Me,Le["--checkbox-checked-mark"]="#ffffff",Le["--editor-surface"]=Me),h.jsxs("div",{className:`take-note-expanded${p?" maximized":""}`,ref:de,style:{padding:12,...Le},children:[l==="text"?h.jsxs("div",{children:[h.jsxs("div",{className:"rt-sticky-header",children:[h.jsx("div",{style:{display:"flex",justifyContent:"flex-start"},children:h.jsx("input",{placeholder:"Title",value:c,onChange:j=>u(j.target.value),style:{fontSize:18,fontWeight:600,border:"none",background:"transparent",color:"inherit"}})}),h.jsxs("div",{className:"rt-toolbar",style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",marginTop:8,marginBottom:0,overflowX:"auto"},children:[h.jsx("button",{className:"tiny",onClick:()=>w("bold"),"aria-pressed":g==null?void 0:g.isActive("bold"),children:"B"}),h.jsx("button",{className:"tiny",onClick:()=>w("italic"),"aria-pressed":g==null?void 0:g.isActive("italic"),children:"I"}),h.jsx("button",{className:"tiny",onClick:()=>w("underline"),"aria-pressed":g==null?void 0:g.isActive("underline"),children:"U"}),h.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().toggleHeading({level:1}).run(),"aria-pressed":g==null?void 0:g.isActive("heading",{level:1}),children:"H1"}),h.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().toggleHeading({level:2}).run(),"aria-pressed":g==null?void 0:g.isActive("heading",{level:2}),children:"H2"}),h.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().toggleHeading({level:3}).run(),"aria-pressed":g==null?void 0:g.isActive("heading",{level:3}),children:"H3"}),h.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().toggleBulletList().run(),"aria-pressed":g==null?void 0:g.isActive("bulletList"),"aria-label":"Bulleted list",title:"Bulleted list",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("circle",{cx:"5",cy:"6",r:"1.5"}),h.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),h.jsx("circle",{cx:"5",cy:"12",r:"1.5"}),h.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),h.jsx("circle",{cx:"5",cy:"18",r:"1.5"}),h.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().toggleOrderedList().run(),"aria-pressed":g==null?void 0:g.isActive("orderedList"),"aria-label":"Numbered list",title:"Numbered list",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("text",{x:"3.5",y:"7",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"1."}),h.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),h.jsx("text",{x:"3.5",y:"13",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"2."}),h.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),h.jsx("text",{x:"3.5",y:"19",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"3."}),h.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().setTextAlign("left").run(),"aria-pressed":g==null?void 0:g.isActive({textAlign:"left"}),"aria-label":"Align left",title:"Align left",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("rect",{x:"4",y:"5",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"4",y:"9",width:"10",height:"2",rx:"1"}),h.jsx("rect",{x:"4",y:"13",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"4",y:"17",width:"8",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().setTextAlign("center").run(),"aria-pressed":g==null?void 0:g.isActive({textAlign:"center"}),"aria-label":"Align center",title:"Align center",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("rect",{x:"5",y:"5",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"7",y:"9",width:"10",height:"2",rx:"1"}),h.jsx("rect",{x:"5",y:"13",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"8",y:"17",width:"8",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().setTextAlign("right").run(),"aria-pressed":g==null?void 0:g.isActive({textAlign:"right"}),"aria-label":"Align right",title:"Align right",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("rect",{x:"6",y:"5",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"10",y:"9",width:"10",height:"2",rx:"1"}),h.jsx("rect",{x:"6",y:"13",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"12",y:"17",width:"8",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().setTextAlign("justify").run(),"aria-pressed":g==null?void 0:g.isActive({textAlign:"justify"}),"aria-label":"Justify",title:"Justify",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("rect",{x:"5",y:"5",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"5",y:"9",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"5",y:"13",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"5",y:"17",width:"14",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>m(j=>!j),"aria-label":"Toggle maximize",title:"Toggle maximize",children:"⤢"})]})]}),h.jsx("div",{onKeyDown:j=>{if(!(!g||!(j.ctrlKey||j.metaKey))&&g.isFocused)switch(j.key.toLowerCase()){case"b":j.preventDefault(),w("bold");break;case"i":j.preventDefault(),w("italic");break;case"u":j.preventDefault(),w("underline");break;case"l":j.preventDefault(),g.chain().focus().setTextAlign("left").run();break;case"r":j.preventDefault(),g.chain().focus().setTextAlign("right").run();break;case"e":j.preventDefault(),g.chain().focus().setTextAlign("center").run();break;case"j":j.preventDefault(),g.chain().focus().setTextAlign("justify").run();break}},children:h.jsx(Qd,{editor:g})})]}):h.jsxs("div",{children:[h.jsxs("div",{className:"rt-sticky-header",children:[h.jsx("div",{style:{display:"flex",justifyContent:"flex-start"},children:h.jsx("input",{placeholder:"Title",value:c,onChange:j=>u(j.target.value),style:{fontSize:18,fontWeight:600,border:"none",background:"transparent",color:"inherit"}})}),h.jsxs("div",{className:"rt-toolbar",style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",marginTop:8,marginBottom:0},onPointerDown:j=>j.preventDefault(),onPointerUp:j=>j.preventDefault(),children:[h.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:j=>{j.preventDefault(),j.stopPropagation(),xe.current=!0,ot("bold")},onPointerUp:j=>{j.preventDefault(),j.stopPropagation()},onMouseDownCapture:j=>{j.preventDefault(),j.stopPropagation()},onMouseUp:j=>j.preventDefault(),onClick:()=>{if(xe.current){xe.current=!1;return}ot("bold")},"aria-pressed":xt("bold"),children:"B"}),h.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:j=>{j.preventDefault(),j.stopPropagation(),xe.current=!0,ot("italic")},onPointerUp:j=>{j.preventDefault(),j.stopPropagation()},onMouseDownCapture:j=>{j.preventDefault(),j.stopPropagation()},onMouseUp:j=>j.preventDefault(),onClick:()=>{if(xe.current){xe.current=!1;return}ot("italic")},"aria-pressed":xt("italic"),children:"I"}),h.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:j=>{j.preventDefault(),j.stopPropagation(),xe.current=!0,ot("underline")},onPointerUp:j=>{j.preventDefault(),j.stopPropagation()},onMouseDownCapture:j=>{j.preventDefault(),j.stopPropagation()},onMouseUp:j=>j.preventDefault(),onClick:()=>{if(xe.current){xe.current=!1;return}ot("underline")},"aria-pressed":xt("underline"),children:"U"})]})]}),h.jsxs("div",{style:{marginTop:8},children:[H.length===0&&h.jsx("div",{style:{marginBottom:8},children:h.jsx("button",{className:"btn",onPointerDown:j=>{j.preventDefault(),j.stopPropagation()},onMouseDown:j=>{j.preventDefault(),j.stopPropagation()},onClick:j=>{j.preventDefault(),j.stopPropagation(),W([{content:""}]),setTimeout(()=>De(0),30)},children:"Add an item"})}),H.map((j,G)=>h.jsxs("div",{className:"checklist-item",draggable:!0,onDragStart:fe=>{var je;Ae.current=G,(je=fe.dataTransfer)==null||je.setData("text/plain",String(G))},onDragOver:fe=>fe.preventDefault(),onDrop:fe=>{fe.preventDefault();const je=Ae.current??parseInt(fe.dataTransfer.getData("text/plain")||"-1",10),Ue=G;je>=0&&je!==Ue&&W(We=>{const Se=[...We],[Xe]=Se.splice(je,1);return Se.splice(Ue,0,Xe),Se}),Ae.current=null},style:{display:"flex",gap:8,alignItems:"center"},children:[h.jsx("div",{className:"drag-handle",style:{width:20,cursor:"grab",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none"},"aria-hidden":!0,children:"≡"}),h.jsx("div",{className:"checkbox-visual",onClick:()=>ge(G),"aria-hidden":!0,children:j.checked&&h.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:h.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})})}),h.jsx("div",{style:{flex:1},children:h.jsx(Ix,{value:j.content,onChange:fe=>Y(G,fe),onEnter:()=>{W(fe=>{const je=[...fe];return je.splice(G+1,0,{content:""}),je}),De(G+1)},onArrowUp:()=>De(Math.max(0,G-1)),onArrowDown:()=>De(Math.min(H.length-1,G+1)),onBackspaceEmpty:()=>{G>0&&(W(fe=>{const je=[...fe];return je.splice(G,1),je}),De(G-1))},onFocus:fe=>{me.current=fe,q.current[G]=fe,se(je=>je+1)},placeholder:"",autoFocus:G===0})}),h.jsx("button",{className:"delete-item",onClick:fe=>{fe.stopPropagation(),W(je=>{const Ue=je.filter((Se,Xe)=>Xe!==G);if(Ue.length===0)return me.current=null,q.current=[],Ue;const We=Math.max(0,Math.min(G-1,Ue.length-1));return setTimeout(()=>De(We),30),Ue})},"aria-label":"Delete item",title:"Delete item",children:"✕"})]},G))]})]}),ce&&h.jsxs("div",{style:{marginTop:10,display:"flex",alignItems:"center",gap:10},children:[h.jsx("div",{className:"note-image",style:{width:96,height:72,flex:"0 0 auto"},children:h.jsx("img",{src:ce,alt:"selected",style:{width:"100%",height:"100%",objectFit:"cover",borderRadius:6,display:"block"}})}),h.jsx("div",{style:{flex:1,fontSize:13,opacity:.9},children:"1 image selected"}),h.jsx("button",{className:"btn",type:"button",onClick:()=>Ee(null),style:{padding:"6px 10px"},children:"Remove"})]}),h.jsxs("div",{className:"note-footer","aria-hidden":!1,style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:10,flexWrap:"wrap"},children:[h.jsxs("div",{style:{marginRight:"auto",display:"flex",flexDirection:"column",gap:8,minWidth:0,color:Me?Je:void 0},children:[!!M&&!!N&&h.jsxs("label",{className:"create-collection-toggle",title:N,children:[h.jsx("input",{type:"checkbox",checked:!!z,onChange:j=>X(!!j.target.checked)}),h.jsx("span",{className:"create-collection-toggle__text",children:"Add to current collection:"}),h.jsx("span",{className:"create-collection-toggle__path",children:N})]}),h.jsxs("div",{className:"note-actions",style:{display:"inline-flex",gap:8},children:[h.jsx("button",{className:"tiny palette",onClick:()=>at(!0),"aria-label":"Change color",title:"Change color",children:h.jsx(Xs,{icon:lf,className:"palette-svg"})}),h.jsx("button",{className:"tiny",onClick:()=>ct(!0),"aria-label":"Reminder",title:"Reminder",children:h.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),h.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),h.jsx("button",{className:"tiny",onClick:()=>At(!0),"aria-label":"Collaborators",title:"Collaborators",children:h.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"}),h.jsx("path",{d:"M6 14c-1.66 0-3 1.34-3 3v1h9.5c-.2-.63-.5-1.23-.9-1.76C11.7 15.6 9.9 14 6 14z"}),h.jsx("path",{d:"M20 16v2h-2v2h-2v-2h-2v-2h2v-2h2v2z"})]})}),h.jsx("button",{className:"tiny",onClick:()=>wt(!0),"aria-label":"Add image",title:"Add image",children:h.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:h.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5C3.9 3 3 3.9 3 5v14h18zM8.5 13.5l2.5 3L14.5 12l4.5 7H5l3.5-5.5z"})})})]})]}),h.jsx("button",{className:"btn",onClick:async()=>{Ye()},children:"Cancel"}),h.jsx("button",{className:"btn",onClick:Be,disabled:te||!oe(),children:te?"Saving...":"Save"})]}),J&&h.jsx(ef,{anchorRef:de,onPick:j=>{Q(j)},onClose:()=>at(!1)}),$t&&h.jsx(tf,{onClose:()=>ct(!1),onSet:j=>{ct(!1)}}),nt&&h.jsx(xc,{onClose:()=>At(!1),onSelect:j=>{ze(G=>G.find(fe=>fe.id===j.id)?G:[...G,j]),At(!1)},current:(()=>{const j=i&&i.id?Number(i.id):void 0;return Ke.filter(G=>typeof G.id=="number"?G.id!==j:!0).map(G=>({userId:G.id,email:G.email}))})(),ownerId:i==null?void 0:i.id,onRemove:()=>{}}),Bt&&h.jsx(nf,{onClose:()=>wt(!1),onAdd:j=>Ee(j||null)})]})}function VJ({anchorRef:t,onClose:e,onDiscard:n}){const r=b.useRef(null),[i,s]=b.useState({position:"fixed",visibility:"hidden",left:0,top:0,zIndex:1e4});b.useLayoutEffect(()=>{const l=t==null?void 0:t.current,a=r.current;if(!a)return;const c=8,u=()=>{a.style.width="auto",a.style.height="auto";const f=Math.ceil(a.offsetWidth),p=Math.ceil(a.offsetHeight);return{w:f,h:p}};if(!l){const{w:f,h:p}=u();let m=Math.round(window.innerWidth-f-c),g=Math.round(window.innerHeight-p-c);mwindow.innerWidth-c&&(m=Math.max(c,window.innerWidth-f-c)),gwindow.innerHeight-c&&(g=Math.max(c,window.innerHeight-p-c)),s({position:"fixed",left:m,top:g,visibility:"visible",zIndex:1e4,width:`${f}px`,height:`${p}px`});return}const d=l.getBoundingClientRect();requestAnimationFrame(()=>{const{w:f,h:p}=u();let m=Math.round(d.right-f),g=Math.round(d.bottom-p);mwindow.innerWidth-c&&(m=Math.max(c,window.innerWidth-f-c)),gwindow.innerHeight-c&&(g=Math.max(c,window.innerHeight-p-c)),s({position:"fixed",left:m,top:g,visibility:"visible",zIndex:1e4,width:`${f}px`,height:`${p}px`})})},[t]),b.useLayoutEffect(()=>{function l(a){r.current&&(r.current.contains(a.target)||e())}return document.addEventListener("pointerdown",l),document.addEventListener("mousedown",l),()=>{document.removeEventListener("pointerdown",l),document.removeEventListener("mousedown",l)}},[e]);const o=h.jsx("div",{ref:r,className:"more-menu",style:i,role:"dialog","aria-label":"More options",children:h.jsx("button",{className:"more-item",onClick:()=>{n(),e()},children:"Discard"})});return zn.createPortal(o,document.body)}function WJ({open:t,mode:e,onClose:n,onCreated:r,activeCollection:i}){const{token:s,user:o}=Sr();function l(){try{return`u${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`u${Math.random()}`}}const[a,c]=B.useState(""),[u,d]=B.useState([]),[f,p]=B.useState(""),[m,g]=B.useState(void 0),[y,v]=B.useState(!1),[w,x]=B.useState(!1),[E,k]=B.useState(!1),[M,N]=B.useState(!1),[z,X]=B.useState(null),[L,H]=B.useState([]),W=i&&Number.isFinite(Number(i.id))?Number(i.id):null,te=i&&typeof i.path=="string"?String(i.path):"",[ue,de]=B.useState(!1),[Ae,me]=B.useState(!1),q=B.useRef(null),se=B.useRef(null),[xe,Me]=B.useState(!1),Q=pg({extensions:[ta.configure({heading:{levels:[1,2,3]}}),Ac.configure({types:["heading","paragraph"]}),yg,mn.create({name:"paragraphEnterFix",priority:1e3,addKeyboardShortcuts(){return{"Shift-Enter":()=>{const ee=this.editor;return ee.commands.splitBlock(),ee.commands.setParagraph(),!0},"Mod-Enter":()=>{const ee=this.editor;return ee.commands.splitBlock(),ee.commands.setParagraph(),!0}}}})],editorProps:{attributes:{class:"rt-editor"}},content:""}),Je=B.useRef({showPalette:!1,showReminderPicker:!1,showCollaborator:!1,showImageDialog:!1,showMore:!1});B.useEffect(()=>{Je.current={showPalette:y,showReminderPicker:w,showCollaborator:E,showImageDialog:M,showMore:xe}},[y,w,E,M,xe]);const _t=B.useRef((()=>{try{return`mcreate-${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`mcreate-${Math.random()}`}})());B.useEffect(()=>{if(t){window.dispatchEvent(new Event("freemannotes:editor-modal-open"));try{const ee=_t.current,re=()=>{try{const Oe=Je.current;if(Oe.showMore){Me(!1);return}if(Oe.showImageDialog){N(!1);return}if(Oe.showCollaborator){k(!1);return}if(Oe.showReminderPicker){x(!1);return}if(Oe.showPalette){v(!1);return}}catch{}try{J()}catch{}};window.dispatchEvent(new CustomEvent("freemannotes:back/register",{detail:{id:ee,onBack:re}}))}catch{}return()=>{try{window.dispatchEvent(new CustomEvent("freemannotes:back/unregister",{detail:{id:_t.current}}))}catch{}window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}}},[t]),B.useEffect(()=>{if(t){c(""),p(""),X(null),H([]),v(!1),x(!1),k(!1),N(!1),Me(!1);try{de(W!=null)}catch{}e==="checklist"?(d([{uid:l(),content:"",checked:!1,indent:0}]),window.setTimeout(()=>Se(0),30)):(d([]),requestAnimationFrame(()=>{try{Q==null||Q.commands.focus("end")}catch{}}));try{Q==null||Q.commands.clearContent()}catch{}}},[t,e,Q]),B.useEffect(()=>{g(f?dn(f):void 0)},[f]);function J(){if(!Ae){try{fe()}catch{}try{Me(!1)}catch{}try{v(!1)}catch{}try{x(!1)}catch{}try{k(!1)}catch{}try{N(!1)}catch{}try{Q==null||Q.commands.clearContent()}catch{}try{c(""),d([]),p(""),X(null),H([])}catch{}n()}}function at(){try{const ee=!!a.trim(),re=!!f,Oe=!!(z||L&&L.length);if(e==="checklist"){const pe=(u||[]).some(Ce=>!!String(Ce.content||"").trim()||!!Ce.checked);return ee||re||Oe||pe}const Ze=!!((Q==null?void 0:Q.getText())||"").trim();return ee||re||Oe||Ze}catch{return!1}}async function $t(){var ee;if(!Ae){me(!0);try{if(!s)throw new Error("Not authenticated");const re=e==="text"?(Q==null?void 0:Q.getJSON())||{}:{},Oe={title:a,body:null,type:e==="checklist"?"CHECKLIST":"TEXT",color:f||null};e==="checklist"&&(Oe.items=u.map((Fe,ut)=>({content:Fe.content,checked:!!Fe.checked,indent:typeof Fe.indent=="number"?Fe.indent:0,ord:ut})));const Ze=await fetch("/api/notes",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify(Oe)});if(!Ze.ok)throw new Error(await Ze.text());const pe=await Ze.json(),Ce=(ee=pe==null?void 0:pe.note)==null?void 0:ee.id;if(Ce&&ue&&W!=null)try{const Fe=await fetch(`/api/notes/${Ce}/collections`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify({collectionId:W})});if(!Fe.ok)throw new Error(await Fe.text())}catch(Fe){console.warn("Created note but failed to add to collection",Fe);try{window.alert("Note created, but failed to add it to the current collection.")}catch{}}if(Ce&&e==="text")try{const Fe=new Fi,ut=`note-${Ce}`,zt=new mf(Nj("/collab"),ut,Fe),kt=new ag({extensions:[ta.configure({heading:{levels:[1,2,3]}}),Ac.configure({types:["heading","paragraph"]}),Pg.configure({document:Fe})],content:""});await new Promise(Jt=>{zt.on("sync",jt=>{jt&&Jt()})});try{kt==null||kt.commands.setContent(re)}catch{}await new Promise(Jt=>setTimeout(Jt,100));try{kt==null||kt.destroy()}catch{}try{zt.destroy()}catch{}try{Fe.destroy()}catch{}try{await fetch(`/api/notes/${Ce}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify({body:JSON.stringify(re),type:"TEXT"})})}catch{}}catch(Fe){console.warn("Failed to seed Yjs content for new note",Fe)}if(Ce&&L.length)for(const Fe of L)try{await fetch(`/api/notes/${Ce}/collaborators`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify({email:Fe.email})})}catch{}if(Ce&&z)try{await fetch(`/api/notes/${Ce}/images`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify({url:z})})}catch{}try{Q==null||Q.commands.clearContent()}catch{}r(),n()}catch(re){console.error("Failed to create note",re),window.alert("Failed to create note")}finally{me(!1)}}}const ct=B.useRef([]),[nt,At]=B.useState(null),[Bt,wt]=B.useState(null),[ce,Ee]=B.useState(null),Ke=B.useRef(null),ze=B.useRef({x:0,y:0}),Pe=B.useRef(null),it=B.useRef(0),ot=B.useRef(null),xt=B.useRef(0),oe=B.useRef(null),Ye=B.useRef(0),Ge=B.useRef(null),Y=B.useMemo(()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(pointer: coarse)").matches}catch{return!1}},[]),ge=B.useMemo(()=>{const ee={directionLockPx:0,indentPx:16,ghostOverlapUpPct:.7,ghostOverlapDownPct:.7};return Y?ee:{...ee,directionLockPx:6}},[Y]);function De(ee,re){var Ce,Fe;const Oe=re,Ze=Number(((Ce=ee[re])==null?void 0:Ce.indent)||0);let pe=re+1;for(;peZe;)pe++;return[Oe,pe]}function Be(ee,re,Oe){d(Ze=>{const pe=[...Ze||[]],Ce=pe.slice(ee,re);pe.splice(ee,re-ee);let Fe=Oe;return Fe>ee&&(Fe=Fe-(re-ee)),Fe<0&&(Fe=0),Fe>pe.length&&(Fe=pe.length),pe.splice(Fe,0,...Ce),pe})}function Le(ee,re){if(Pe.current!=="vertical"||nt===null)return"";const[Oe,Ze]=De(re,nt);return Bt===null||ee>=Oe&&eeZe-1&&ee<=Bt?"shift-up":"":nt>Bt&&ee>=Bt&&ee{var Fe,ut;oe.current=null;const re=(Fe=Ge.current)==null?void 0:Fe.querySelector(".dialog-body");if(!re)return;const Oe=re.getBoundingClientRect(),Ze=Ye.current,pe=60,Ce=12;ZeOe.bottom-pe&&(re.scrollTop+=Ce),(ut=ot.current)!=null&&ut.active&&Pe.current==="vertical"&&Ke.current&&(oe.current=window.requestAnimationFrame(ee))};oe.current=window.requestAnimationFrame(ee)}function G(){oe.current!=null&&(window.cancelAnimationFrame(oe.current),oe.current=null)}function fe(){var ee,re,Oe;if(G(),Ke.current){try{Ke.current.remove()}catch{}Ke.current=null}try{(Oe=(re=(ee=Ge.current)==null?void 0:ee.style)==null?void 0:re.removeProperty)==null||Oe.call(re,"--checklist-item-shift")}catch{}At(null),wt(null),Ee(null),ot.current=null,Pe.current=null,xt.current=0}function je(){d(ee=>[...ee||[],{uid:l(),content:"",checked:!1,indent:0}])}function Ue(ee,re){d(Oe=>(Oe||[]).map((Ze,pe)=>pe===ee?{...Ze,content:re}:Ze))}function We(ee){d(re=>{var Fe;const Oe=[...re||[]],Ze=Oe[ee];if(!Ze)return Oe;const pe=!Ze.checked,Ce=Number(Ze.indent||0);if(Oe[ee]={...Ze,checked:pe},Ce===0)for(let ut=ee+1;ut0;ut++)Oe[ut]={...Oe[ut],checked:pe};return Oe})}function Se(ee){window.setTimeout(()=>{const re=ct.current[ee];try{re&&re.chain().focus().run()}catch{}},30)}const Xe=B.useRef(null),[,Tt]=B.useState(0);function rt(){var Oe;let ee=Xe.current;if(ee&&ee.isFocused)return ee;const re=typeof document<"u"&&((Oe=document.getSelection())==null?void 0:Oe.anchorNode)||null;if(re){const Ze=ct.current.find(pe=>{var Ce;try{return!!(pe&&((Ce=pe.view)!=null&&Ce.dom)&&pe.view.dom.contains(re))}catch{return!1}});Ze&&(ee=Ze)}else{const Ze=typeof document<"u"?document.activeElement:null;if(Ze){const pe=ct.current.find(Ce=>{try{return!!(Ce&&Ce.view&&Ce.view.dom&&(Ce.view.dom===Ze||Ce.view.dom.contains(Ze)))}catch{return!1}});pe&&(ee=pe)}}if(!ee||!(ee!=null&&ee.isFocused)){const Ze=ct.current.find(pe=>!!(pe&&pe.isFocused));Ze&&(ee=Ze)}return ee||null}function Wt(ee){var Fe;const re=rt();if(!re)return;const Oe=(Fe=re.state)==null?void 0:Fe.selection;if(!Oe)return;if(!Oe.empty){const ut=re.chain().focus();ee==="bold"?ut.toggleBold():ee==="italic"?ut.toggleItalic():ut.toggleUnderline(),ut.run();try{Tt(zt=>zt+1)}catch{}return}let Ze=Oe.from,pe=Oe.to;try{const ut=Oe.$from;let zt=ut.depth;for(;zt>0&&!ut.node(zt).isBlock;)zt--;Ze=ut.start(zt),pe=ut.end(zt)}catch{}const Ce=re.chain().focus().setTextSelection({from:Ze,to:pe});ee==="bold"?Ce.toggleBold():ee==="italic"?Ce.toggleItalic():Ce.toggleUnderline(),Ce.run();try{re.chain().focus().setTextSelection(Oe.from).run()}catch{}try{Tt(ut=>ut+1)}catch{}}function Mt(ee){var Jt,jt;const re=rt();if(!re)return!1;const Oe=(Jt=re.state)==null?void 0:Jt.selection;if(!Oe)return!1;const Ze=(((jt=re.schema)==null?void 0:jt.marks)||{})[ee];if(!Ze)return!1;const pe=Oe.$from;let Ce=pe.depth;for(;Ce>0&&!pe.node(Ce).isBlock;)Ce--;const Fe=pe.start(Ce),ut=pe.end(Ce);let zt=!1,kt=!0;try{re.state.doc.nodesBetween(Fe,ut,fn=>{fn&&fn.isText&&(zt=!0,Ze.isInSet(fn.marks)||(kt=!1))})}catch{}return zt&&kt}function dn(ee){if(!ee)return;const re=ee.replace("#",""),Oe=re.length===3?re.split("").map(nn=>nn+nn).join(""):re;if(Oe.length!==6)return;const Ze=parseInt(Oe.slice(0,2),16)/255,pe=parseInt(Oe.slice(2,4),16)/255,Ce=parseInt(Oe.slice(4,6),16)/255,Fe=nn=>nn<=.03928?nn/12.92:Math.pow((nn+.055)/1.055,2.4),ut=Fe(Ze),zt=Fe(pe),kt=Fe(Ce),Jt=.2126*ut+.7152*zt+.0722*kt,jt=(nn,rn)=>(Math.max(nn,rn)+.05)/(Math.min(nn,rn)+.05),fn=jt(1,Jt),wn=jt(0,Jt);return fn>=wn?"#ffffff":"#000000"}if(!t)return null;const It={};f&&(It.background=f,It["--editor-surface"]=f);const Ot=e==="checklist"?"New checklist":"New note",tn=h.jsxs("div",{className:"image-dialog-backdrop",ref:q,onMouseDown:ee=>{if(ee.target===ee.currentTarget)try{ee.preventDefault()}catch{}},children:[h.jsxs("div",{ref:Ge,className:`image-dialog editor-dialog maximized${e==="checklist"?" checklist-editor":""}`,role:"dialog","aria-modal":!0,style:{width:"100vw",...It},children:[h.jsxs("div",{className:"dialog-header",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[h.jsx("button",{className:"btn",type:"button",onClick:J,disabled:Ae,children:"Cancel"}),h.jsx("strong",{children:Ot}),h.jsx("button",{className:"btn",type:"button",onClick:$t,disabled:Ae||!at(),children:Ae?"Saving…":"Save"})]}),h.jsxs("div",{className:"dialog-body",children:[e==="text"?h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"rt-sticky-header",children:[h.jsx("div",{style:{display:"flex",gap:12,marginBottom:8},children:h.jsx("input",{placeholder:"Title",value:a,onChange:ee=>c(ee.target.value),style:{flex:1,background:"transparent",border:"none",color:"inherit",fontWeight:600,fontSize:18}})}),h.jsxs("div",{className:"rt-toolbar",style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",marginTop:0,marginBottom:0,overflowX:"auto",color:m||"inherit"},children:[h.jsx("button",{className:"tiny",onClick:()=>Q==null?void 0:Q.chain().focus().toggleBold().run(),"aria-pressed":Q==null?void 0:Q.isActive("bold"),"aria-label":"Bold",title:"Bold",children:"B"}),h.jsx("button",{className:"tiny",onClick:()=>Q==null?void 0:Q.chain().focus().toggleItalic().run(),"aria-pressed":Q==null?void 0:Q.isActive("italic"),"aria-label":"Italic",title:"Italic",children:"I"}),h.jsx("button",{className:"tiny",onClick:()=>Q==null?void 0:Q.chain().focus().toggleUnderline().run(),"aria-pressed":Q==null?void 0:Q.isActive("underline"),"aria-label":"Underline",title:"Underline",children:"U"}),h.jsx("button",{className:"tiny",onClick:()=>Q==null?void 0:Q.chain().focus().toggleHeading({level:1}).run(),"aria-pressed":Q==null?void 0:Q.isActive("heading",{level:1}),"aria-label":"Heading 1",title:"Heading 1",children:"H1"}),h.jsx("button",{className:"tiny",onClick:()=>Q==null?void 0:Q.chain().focus().toggleHeading({level:2}).run(),"aria-pressed":Q==null?void 0:Q.isActive("heading",{level:2}),"aria-label":"Heading 2",title:"Heading 2",children:"H2"}),h.jsx("button",{className:"tiny",onClick:()=>Q==null?void 0:Q.chain().focus().toggleHeading({level:3}).run(),"aria-pressed":Q==null?void 0:Q.isActive("heading",{level:3}),"aria-label":"Heading 3",title:"Heading 3",children:"H3"}),h.jsx("button",{className:"tiny",onClick:()=>Q==null?void 0:Q.chain().focus().toggleBulletList().run(),"aria-pressed":Q==null?void 0:Q.isActive("bulletList"),"aria-label":"Bulleted list",title:"Bulleted list",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("circle",{cx:"5",cy:"6",r:"1.5"}),h.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),h.jsx("circle",{cx:"5",cy:"12",r:"1.5"}),h.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),h.jsx("circle",{cx:"5",cy:"18",r:"1.5"}),h.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>Q==null?void 0:Q.chain().focus().toggleOrderedList().run(),"aria-pressed":Q==null?void 0:Q.isActive("orderedList"),"aria-label":"Numbered list",title:"Numbered list",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("text",{x:"3.5",y:"7",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"1."}),h.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),h.jsx("text",{x:"3.5",y:"13",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"2."}),h.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),h.jsx("text",{x:"3.5",y:"19",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"3."}),h.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>Q==null?void 0:Q.chain().focus().setTextAlign("left").run(),"aria-pressed":Q==null?void 0:Q.isActive({textAlign:"left"}),"aria-label":"Align left",title:"Align left",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("rect",{x:"4",y:"5",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"4",y:"9",width:"10",height:"2",rx:"1"}),h.jsx("rect",{x:"4",y:"13",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"4",y:"17",width:"8",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>Q==null?void 0:Q.chain().focus().setTextAlign("center").run(),"aria-pressed":Q==null?void 0:Q.isActive({textAlign:"center"}),"aria-label":"Align center",title:"Align center",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("rect",{x:"5",y:"5",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"7",y:"9",width:"10",height:"2",rx:"1"}),h.jsx("rect",{x:"5",y:"13",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"8",y:"17",width:"8",height:"2",rx:"1"})]})}),h.jsx("button",{className:"tiny",onClick:()=>Q==null?void 0:Q.chain().focus().setTextAlign("right").run(),"aria-pressed":Q==null?void 0:Q.isActive({textAlign:"right"}),"aria-label":"Align right",title:"Align right",children:h.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[h.jsx("rect",{x:"6",y:"5",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"10",y:"9",width:"10",height:"2",rx:"1"}),h.jsx("rect",{x:"6",y:"13",width:"14",height:"2",rx:"1"}),h.jsx("rect",{x:"12",y:"17",width:"8",height:"2",rx:"1"})]})})]})]}),h.jsx(Qd,{editor:Q,style:{color:m||"inherit"}})]}):h.jsxs(h.Fragment,{children:[h.jsxs("div",{className:"rt-sticky-header",children:[h.jsx("div",{style:{display:"flex",gap:12,marginBottom:8},children:h.jsx("input",{placeholder:"Title",value:a,onChange:ee=>c(ee.target.value),style:{flex:1,background:"transparent",border:"none",color:"inherit",fontWeight:600,fontSize:18}})}),h.jsxs("div",{className:"rt-toolbar",style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",marginTop:0,marginBottom:0,overflowX:"auto",color:m||"inherit"},children:[h.jsx("button",{className:"tiny",onClick:()=>Wt("bold"),"aria-pressed":Mt("bold"),"aria-label":"Bold",title:"Bold",children:"B"}),h.jsx("button",{className:"tiny",onClick:()=>Wt("italic"),"aria-pressed":Mt("italic"),"aria-label":"Italic",title:"Italic",children:"I"}),h.jsx("button",{className:"tiny",onClick:()=>Wt("underline"),"aria-pressed":Mt("underline"),"aria-label":"Underline",title:"Underline",children:"U"}),h.jsx("button",{className:"btn",type:"button",onClick:()=>{je(),Se(u.length)},style:{padding:"6px 10px"},children:"Add item"})]})]}),h.jsx("div",{className:"checklist-items",children:(ce??u??[]).map((ee,re)=>{const Ze=Le(re,ce??u??[]);return h.jsxs("div",{className:`checklist-item${nt===re?" drag-source":""}${Ze?" "+Ze:""}`,style:{marginLeft:Number(ee.indent||0)*18},draggable:!1,onClick:pe=>{try{pe.stopPropagation()}catch{}},children:[h.jsxs("div",{className:"drag-gutter",style:{cursor:"grab",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",touchAction:"none"},onMouseDown:pe=>{pe.preventDefault()},onPointerDown:pe=>{try{pe.preventDefault()}catch{}try{pe.stopPropagation()}catch{}pe.currentTarget.setPointerCapture(pe.pointerId),Ye.current=pe.clientY,ot.current={active:!0,startX:pe.clientX,startY:pe.clientY,idx:re,pointerId:pe.pointerId},Pe.current=null,Ee(null)},onPointerMove:pe=>{var Jt,jt,fn,wn,nn,rn,Pr,I;const Ce=ot.current;if(!Ce||!Ce.active)return;try{pe.preventDefault()}catch{}Ye.current=pe.clientY;const Fe=pe.clientX-Ce.startX,ut=pe.clientY-Ce.startY,zt=ge.directionLockPx;if(Pe.current===null&&(Math.abs(Fe)>zt||Math.abs(ut)>zt)&&(Pe.current=Math.abs(Fe)>Math.abs(ut)?"horizontal":"vertical"),Pe.current==="vertical"){const U=Ce.idx;if(!Ke.current){const $=Array.from(((Jt=Ge.current)==null?void 0:Jt.querySelectorAll(".checklist-item"))||[])[U];if($){const S=$.getBoundingClientRect();ze.current={x:pe.clientX-S.left,y:pe.clientY-S.top};const V=$.cloneNode(!0);V.style.position="fixed",V.style.left=S.left+"px",V.style.top=pe.clientY-(ze.current.y||0)+"px",V.style.width=S.width+"px",V.style.pointerEvents="none",V.style.zIndex="9999",V.style.opacity="0.98",V.classList.add("checklist-ghost"),document.body.appendChild(V),Ke.current=V,At(U),wt(U),it.current=S.left;try{(wn=(fn=(jt=Ge.current)==null?void 0:jt.style)==null?void 0:fn.setProperty)==null||wn.call(fn,"--checklist-item-shift",`${Math.round(S.height)}px`)}catch{}}}Ke.current&&(Ke.current.style.left=it.current+"px",Ke.current.style.top=pe.clientY-(ze.current.y||0)+"px",j());const K=Array.from(((nn=Ge.current)==null?void 0:nn.querySelectorAll(".checklist-item"))||[]);if(K.length){let le=null;const $=Ke.current?Ke.current.getBoundingClientRect():{top:pe.clientY-10,bottom:pe.clientY+10},S=pe.clientY>(xt.current||pe.clientY);xt.current=pe.clientY;const V=S?ge.ghostOverlapDownPct:ge.ghostOverlapUpPct;for(let he=0;he=V){le=he;break}}le!=null&&le!==Bt&&wt(le)}return}const kt=ge.indentPx;if(Pe.current==="horizontal"){const U=Ce.idx;if(U===0&&Fe>0){Ee(null);return}const K=u;if(Fe>kt){const[le,$]=De(K,U),S=[...K],V=S.splice(le,$-le);let he=null;for(let tt=U-1;tt>=0;tt--)if(Number(((rn=K[tt])==null?void 0:rn.indent)||0)===0){he=tt;break}if(he!=null){const tt=K[he].uid,Ft=S.findIndex($n=>$n.uid===tt);let Kt=Ft>=0?Ft+1:Math.min(le,S.length);for(;Kt0;)Kt++;const Zt=V.map($n=>({...$n,indent:1}));S.splice(Kt,0,...Zt)}else{let tt=Math.min(le,S.length);for(;tt0;)tt++;const Ft=V.map(Kt=>({...Kt,indent:1}));S.splice(tt,0,...Ft)}Ee(S)}else if(Fe<-kt){const[le,$]=De(K,U),S=[...K];for(let V=le;V<$&&V{try{pe.currentTarget.releasePointerCapture(pe.pointerId)}catch{}if(ot.current=null,ce){d(ce),Ee(null),Pe.current=null,fe();return}if(Pe.current==="vertical"&&nt!==null){const Ce=nt,Fe=u,[ut,zt]=De(Fe,Ce);if(Bt!==null){const kt=Ce=ut&&kt{pe.stopPropagation(),We(re)},onPointerDown:pe=>{pe.stopPropagation()},onPointerUp:pe=>{pe.stopPropagation()},children:ee.checked&&h.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:h.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),h.jsx("div",{style:{flex:1,minWidth:0},children:h.jsx(Ix,{value:ee.content,onChange:pe=>Ue(re,pe),onEnter:()=>{d(pe=>{const Ce=[...pe||[]];return Ce.splice(re+1,0,{uid:l(),content:"",checked:!1,indent:Number(ee.indent||0)}),Ce}),Se(re+1)},onArrowUp:()=>Se(Math.max(0,re-1)),onArrowDown:()=>Se(Math.min(u.length-1,re+1)),onBackspaceEmpty:()=>{re>0&&(d(pe=>{const Ce=[...pe||[]];return Ce.splice(re,1),Ce}),Se(re-1))},onFocus:pe=>{Xe.current=pe,ct.current[re]=pe;try{Tt(Ce=>Ce+1)}catch{}},placeholder:"",autoFocus:re===0})}),h.jsx("button",{className:"delete-item",type:"button",onClick:pe=>{pe.stopPropagation(),d(Ce=>{const Fe=(Ce||[]).filter((zt,kt)=>kt!==re);if(Fe.length===0)return Xe.current=null,ct.current=[],Fe;const ut=Math.max(0,Math.min(re-1,Fe.length-1));return window.setTimeout(()=>Se(ut),30),Fe})},"aria-label":"Delete item",title:"Delete item",children:"✕"})]},ee.uid||String(re))})})]}),z&&h.jsxs("div",{style:{marginTop:10,display:"flex",alignItems:"center",gap:10},children:[h.jsx("div",{className:"note-image",style:{width:96,height:72,flex:"0 0 auto"},children:h.jsx("img",{src:z,alt:"selected",style:{width:"100%",height:"100%",objectFit:"cover",borderRadius:6,display:"block"}})}),h.jsx("div",{style:{flex:1,fontSize:13,opacity:.9},children:"1 image selected"}),h.jsx("button",{className:"btn",type:"button",onClick:()=>X(null),style:{padding:"6px 10px"},children:"Remove"})]})]}),h.jsxs("div",{className:"dialog-footer",style:{display:"block"},children:[!!W&&!!te&&h.jsxs("label",{className:"create-collection-toggle",title:te,style:{margin:"0 0 10px"},children:[h.jsx("input",{type:"checkbox",checked:!!ue,onChange:ee=>de(!!ee.target.checked)}),h.jsx("span",{className:"create-collection-toggle__text",children:"Add to current collection:"}),h.jsx("span",{className:"create-collection-toggle__path",children:te})]}),h.jsxs("div",{className:"note-actions",style:{display:"inline-flex",gap:8,justifyContent:"flex-start",color:m||"inherit"},children:[h.jsx("button",{className:"tiny palette",onClick:()=>v(!0),"aria-label":"Change color",title:"Change color",children:h.jsx(Xs,{icon:lf,className:"palette-svg"})}),h.jsx("button",{className:"tiny",onClick:()=>x(!0),"aria-label":"Reminder",title:"Reminder",children:h.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),h.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),h.jsx("button",{className:"tiny",onClick:()=>k(!0),"aria-label":"Collaborators",title:"Collaborators",children:h.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[h.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"}),h.jsx("path",{d:"M6 14c-1.66 0-3 1.34-3 3v1h9.5c-.2-.63-.5-1.23-.9-1.76C11.7 15.6 9.9 14 6 14z"}),h.jsx("path",{d:"M20 16v2h-2v2h-2v-2h-2v-2h2v-2h2v2z"})]})}),h.jsx("button",{className:"tiny",onClick:()=>N(!0),"aria-label":"Add image",title:"Add image",children:h.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:h.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5C3.9 3 3 3.9 3 5v14h18zM8.5 13.5l2.5 3L14.5 12l4.5 7H5l3.5-5.5z"})})}),h.jsx("button",{ref:se,className:"tiny editor-more",onClick:ee=>{ee.stopPropagation(),Me(re=>!re)},"aria-label":"More",title:"More",children:"⋮"})]})]})]}),y&&h.jsx(ef,{anchorRef:q,onPick:ee=>{p(ee)},onClose:()=>v(!1)}),w&&h.jsx(tf,{onClose:()=>x(!1),onSet:ee=>{x(!1),ee&&window.alert(`Reminder set (UI-only): ${ee}`)}}),E&&h.jsx(xc,{onClose:()=>k(!1),onSelect:ee=>{H(re=>re.find(Oe=>Oe.id===ee.id)?re:[...re,ee]),k(!1)},current:(()=>{const ee=o&&o.id?Number(o.id):void 0;return L.filter(re=>typeof re.id=="number"?re.id!==ee:!0).map(re=>({userId:re.id,email:re.email}))})(),ownerId:o==null?void 0:o.id,onRemove:()=>{}}),M&&h.jsx(nf,{onClose:()=>N(!1),onAdd:ee=>X(ee||null)}),xe&&h.jsx(VJ,{anchorRef:se,onClose:()=>Me(!1),onDiscard:J})]});return zn.createPortal(tn,document.body)}const SN=B.memo(function({note:e,setItemRef:n,isDragSource:r,isDragTarget:i,disabled:s,onChange:o,style:l}){const a=Number(e==null?void 0:e.id),{setNodeRef:c,listeners:u,attributes:d}=U3({id:a,disabled:s}),{setNodeRef:f}=K3({id:a}),p=b.useCallback(g=>{c(g),f(g),n(g,a)},[c,f,n,a]),m=(r?" note-drag-source":"")+(i?" note-drag-target":"");return h.jsx("div",{"data-note-id":a,ref:p,className:m.trim(),style:l,children:h.jsx(El,{note:e,onChange:o,dragHandleAttributes:s?void 0:d,dragHandleListeners:s?void 0:u})})});function KJ({selectedLabelIds:t=[],selectedCollectionId:e=null,collectionStack:n=[],selectedCollaboratorId:r=null,searchQuery:i="",sortConfig:s=Ks,onClearAllFilters:o,onSetSelectedLabelIds:l,onSetSelectedCollaboratorId:a,onSelectCollectionById:c,onSetCollectionStack:u,onSetSearchQuery:d,onSortConfigChange:f}){var F1;const{token:p}=Sr(),[m,g]=b.useState([]),[y,v]=b.useState(!0),[w,x]=b.useState(!1),E=b.useRef([]),[k,M]=b.useState("desktop"),N=b.useRef("desktop"),[z,X]=b.useState(1),[L,H]=b.useState(1),W=b.useRef(1),te=b.useRef(1),[ue,de]=b.useState(0);b.useEffect(()=>{const C=()=>de(R=>R+1),T=()=>de(R=>Math.max(0,R-1));return window.addEventListener("freemannotes:editor-modal-open",C),window.addEventListener("freemannotes:editor-modal-close",T),()=>{window.removeEventListener("freemannotes:editor-modal-open",C),window.removeEventListener("freemannotes:editor-modal-close",T)}},[]);const Ae=ue>0;b.useEffect(()=>{const C=document.documentElement;return Ae?C.classList.add("is-editor-modal-open"):C.classList.remove("is-editor-modal-open"),()=>{try{C.classList.remove("is-editor-modal-open")}catch{}}},[Ae]),b.useEffect(()=>{if(ue<=0)return;const C=window.setTimeout(()=>{try{!!document.querySelector('[aria-modal="true"]')||de(0)}catch{}},400);return()=>{try{window.clearTimeout(C)}catch{}}},[ue]);const me=b.useRef(new Map),q=b.useRef(0),se=b.useRef(null),xe=b.useRef(null),Me=b.useRef(!1),[Q,Je]=b.useState(!1),[_t,J]=b.useState(0),[at,$t]=b.useState("text"),[ct,nt]=b.useState(null),At=b.useMemo(()=>{const C=Array.isArray(n)?n:[];if(!C.length)return null;const T=C[C.length-1],R=Number(T==null?void 0:T.id),P=C.map(O=>String((O==null?void 0:O.name)||"")).filter(Boolean).join(" / ");return!Number.isFinite(R)||!P?null:{id:R,path:P}},[n]),Bt=b.useCallback(C=>{Je(!1),nt(C)},[]);b.useEffect(()=>{if(!Q)return;const C=T=>{try{const R=T==null?void 0:T.target;if(R&&R.closest&&R.closest(".mobile-add-note"))return}catch{}Je(!1)};return window.addEventListener("pointerdown",C,{capture:!0}),()=>{try{window.removeEventListener("pointerdown",C,{capture:!0})}catch{}}},[Q]);const wt=b.useRef(!1),ce=b.useRef(null),Ee=b.useRef(null),Ke=b.useRef(null),ze=b.useRef(-1),Pe=b.useRef([]),it=b.useRef(null),ot=b.useRef(null),xt=b.useRef(null),oe=b.useRef(null),Ye=b.useRef(null),Ge=b.useRef([]),Y=b.useRef(null),ge=b.useRef(2),De=b.useRef(1),Be=b.useRef(!1),Le=b.useRef(null),j=b.useRef(null),[G,fe]=b.useState(null),[je,Ue]=b.useState(null),[We,Se]=b.useState([]),Xe=b.useRef(null),Tt=b.useRef(null),[rt,Wt]=b.useState(null),[Mt,dn]=b.useState(null),It=b.useRef(null),Ot=b.useRef(null),tn=b.useRef(!1),ee=b.useRef(null),re=b.useRef(null),Oe=b.useRef(null),Ze=b.useCallback(C=>{if(!C)return null;const T=C.touches&&C.touches[0]||C.changedTouches&&C.changedTouches[0];return T&&typeof T.clientX=="number"&&typeof T.clientY=="number"?{x:T.clientX,y:T.clientY}:typeof C.clientX=="number"&&typeof C.clientY=="number"?{x:C.clientX,y:C.clientY}:null},[]),pe=b.useCallback(C=>{const T=Ze(C);T&&(ee.current=T);const R=O=>{tn.current&&(ee.current={x:O.clientX,y:O.clientY})},P=O=>{if(!tn.current)return;const _=O.touches&&O.touches[0];_&&(ee.current={x:_.clientX,y:_.clientY})};window.addEventListener("pointermove",R,{capture:!0,passive:!1}),window.addEventListener("touchmove",P,{capture:!0,passive:!0}),Oe.current=()=>{try{window.removeEventListener("pointermove",R,{capture:!0})}catch{}try{window.removeEventListener("touchmove",P,{capture:!0})}catch{}}},[Ze]),Ce=b.useCallback(()=>{try{Oe.current&&Oe.current()}catch{}Oe.current=null,ee.current=null},[]),Fe=b.useCallback(()=>{const C=document.querySelector(".main-area");if(C&&C.scrollHeight>C.clientHeight+1)return C;const T=document.scrollingElement;return T&&T.scrollHeight>T.clientHeight+1?T:null},[]),ut=b.useCallback(()=>{if(re.current!=null)return;const C=96,T=12,R=()=>{if(!tn.current){re.current=null;return}const P=ee.current;if(!P){re.current=requestAnimationFrame(R);return}const O=window.innerHeight||0,_=P.y,D=Math.max(0,O-P.y);let F=0;if(_{if(re.current!=null){try{cancelAnimationFrame(re.current)}catch{}re.current=null}},[]),[kt,Jt]=b.useState(!1),[jt,fn]=b.useState(null),[wn,nn]=b.useState(null),[rn,Pr]=b.useState(null),I=b.useRef(null),U=b.useRef(null),K=b.useRef(null);function le(C){try{const T=(localStorage.getItem("prefs.animationSpeed")||"normal").toLowerCase(),R={fast:{resize:250,swap:250,rearrange:250},normal:{resize:600,swap:500,rearrange:480},slow:{resize:1e3,swap:1e3,rearrange:1e3}};return(R[T]||R.normal)[C]}catch{return C==="resize"?600:C==="swap"?500:480}}function $(){if(!j.current)try{const C=window.scrollX||0,T=window.scrollY||0,R=document.body;j.current={x:C,y:T,position:R.style.position||"",top:R.style.top||"",left:R.style.left||"",right:R.style.right||"",width:R.style.width||"",overflow:R.style.overflow||""},R.style.position="fixed",R.style.top=`-${T}px`,R.style.left=`-${C}px`,R.style.right="0px",R.style.width="100%",R.style.overflow="hidden"}catch{}}function S(){const C=j.current;if(C){j.current=null;try{const T=document.body;T.style.position=C.position,T.style.top=C.top,T.style.left=C.left,T.style.right=C.right,T.style.width=C.width,T.style.overflow=C.overflow,window.scrollTo(C.x,C.y)}catch{}}}b.useLayoutEffect(()=>{Ee.current=G},[G]),b.useLayoutEffect(()=>{Ke.current=je},[je]),b.useLayoutEffect(()=>{Pe.current=We;const C=We.indexOf("spacer");ze.current=C},[We]),b.useEffect(()=>{const C=document.documentElement;return G!=null?C.classList.add("is-note-rearrange-dragging"):C.classList.remove("is-note-rearrange-dragging"),()=>{try{C.classList.remove("is-note-rearrange-dragging")}catch{}}},[G]);async function V(){v(!0);try{const C=await fetch("/api/notes",{headers:{Authorization:`Bearer ${p}`}});if(!C.ok)throw new Error(await C.text());let R=(await C.json()).notes||[];try{const P=localStorage.getItem("notesOrder");if(P){const O=JSON.parse(P||"[]");if(Array.isArray(O)&&O.length){const _=new Map(R.map(ae=>[ae.id,ae])),D=[],F=new Set;for(const ae of O)_.has(ae)&&!F.has(ae)&&(D.push(_.get(ae)),F.add(ae));const ie=[];for(const ae of R)F.has(ae.id)||ie.push(ae);R=[...ie,...D]}}}catch{}g(R);try{setTimeout(()=>window.dispatchEvent(new Event("notes-grid:recalc")),0)}catch{}}catch(C){console.error("Failed to load notes",C),g([])}finally{v(!1)}}function he(C,T){g(R=>R.map(P=>{if(Number(P.id)!==Number(C))return P;const O=(Array.isArray(T)?T:[]).filter(_=>_&&typeof _.id=="number"&&typeof _.name=="string").map(_=>({id:_.id,label:{id:_.id,name:_.name}}));return{...P,noteLabels:O}}))}function tt(C,T){g(R=>R.map(P=>{if(Number(P.id)!==Number(C))return P;const O=(Array.isArray(T)?T:[]).filter(_=>_&&typeof _.url=="string").map(_=>({id:Number(_.id||Date.now()),url:String(_.url)}));return{...P,images:O}}))}function Ft(C,T){const R=(typeof T=="string"?T:"")||"";g(P=>P.map(O=>Number(O.id)!==Number(C)?O:{...O,viewerColor:R.length?R:null}))}function Kt(C,T){const R=(Array.isArray(T)?T:[]).filter(P=>P&&typeof P.id=="number"&&typeof P.name=="string").map(P=>({id:Number(P.id),name:String(P.name),parentId:P.parentId==null?null:Number(P.parentId)}));g(P=>P.map(O=>Number(O.id)!==Number(C)?O:{...O,viewerCollections:R}))}b.useEffect(()=>{p?V():g([])},[p]),b.useEffect(()=>{E.current=m},[m]),b.useEffect(()=>{It.current=rt},[rt]),b.useEffect(()=>{Ot.current=Mt},[Mt]);const Zt=!!(s&&s.sortKey==="default"&&s.groupBy==="none"&&s.smartFilter==="none"),$n=(()=>{try{return localStorage.getItem("prefs.dragBehavior")||"swap"}catch{return"swap"}})(),sn=Zt&&$n==="swap",A=Zt&&$n==="rearrange",ne=sn&&kt;b.useEffect(()=>{if(!sn)return;Wt(null),dn(null);const C=requestAnimationFrame(()=>{try{N1()}catch{}});return()=>{try{cancelAnimationFrame(C)}catch{}}},[sn,z,L]);function we(C){const T=st.get(C);return T?T.pinned?"pinned":"others":null}function Z(){if(U.current!=null){try{window.clearTimeout(U.current)}catch{}U.current=null}}const Ie=F_(iS(rM,{activationConstraint:{distance:6}}),iS(iM,{activationConstraint:{delay:160,tolerance:12}}));function Ve(C){var O;if(!sn)return;const T=Number(C.active.id);if(!Number.isFinite(T))return;tn.current=!0,pe(C.activatorEvent),ut(),fn(T);const R=me.current.get(T),P=(O=R==null?void 0:R.getBoundingClientRect)==null?void 0:O.call(R);P&&P.width>0&&P.height>0?Pr({width:P.width,height:P.height}):Pr(null),nn(null),I.current=null,Z(),Jt(!0)}function Rt(C){var D;if(!sn)return;const T=Number(C.active.id),R=(D=C.over)==null?void 0:D.id,P=R==null?NaN:Number(R);if(!Number.isFinite(T))return;if(!Number.isFinite(P)||T===P){(I.current!=null||wn!=null)&&(I.current=null,Z(),wn!=null&&nn(null));return}const O=we(T),_=we(P);if(!O||!_||O!==_){I.current!=null&&(I.current=null,Z(),nn(null));return}I.current!==P&&(I.current=P,Z(),nn(null),U.current=window.setTimeout(()=>{I.current===P&&nn(P)},380))}function be(){Z(),I.current=null,tn.current=!1,zt(),Ce(),fn(null),nn(null),Jt(!1),Pr(null)}b.useEffect(()=>{const C=document.documentElement;return sn&&jt!=null?C.classList.add("is-note-swap-dragging"):C.classList.remove("is-note-swap-dragging"),()=>{try{C.classList.remove("is-note-swap-dragging")}catch{}}},[sn,jt]);function qe(C){sn&&be()}function Dt(C){if(!sn)return;const T=Number(C.active.id),R=wn!=null?Number(wn):NaN,P=Number.isFinite(T)?we(T):null;if(P){const O=P==="pinned"?Xe.current:Tt.current;if(O){const _=Array.from(O.querySelectorAll(".notes-masonry-col"));K.current={section:P,heights:_.map(D=>D.getBoundingClientRect().height)}}}be(),!(!Number.isFinite(T)||!Number.isFinite(R)||T===R||!P)&&we(R)===P&&g(O=>{const _=O.findIndex(ae=>Number(ae==null?void 0:ae.id)===T),D=O.findIndex(ae=>Number(ae==null?void 0:ae.id)===R);if(_<0||D<0||!!O[_].pinned!=!!O[D].pinned)return O;const F=[...O],ie=F[_];return F[_]=F[D],F[D]=ie,requestAnimationFrame(()=>{try{vf(F)}catch{}}),F})}const st=b.useMemo(()=>{const C=new Map;for(const T of m){const R=Number(T==null?void 0:T.id);Number.isFinite(R)&&C.set(R,T)}return C},[m]),ft=(C,T)=>Math.max(0,Math.min(T,Math.floor(C)));function yt(C){const T=new Map;for(const R of C){const P=me.current.get(R);P&&T.set(R,P.getBoundingClientRect())}return T}function bt(C,T){const R=[];for(const[P,O]of C.entries()){const _=me.current.get(P);if(!_)continue;const D=_.getBoundingClientRect(),F=O.left-D.left,ie=O.top-D.top;F===0&&ie===0||R.push({el:_,dx:F,dy:ie})}if(R.length){for(const P of R)P.el.style.transition="none",P.el.style.transform=`translate(${P.dx}px, ${P.dy}px)`;document.body.getBoundingClientRect();for(const P of R){const O=P.el;O.style.transition=`transform ${T}ms cubic-bezier(.2,.9,.2,1)`,O.style.transform="";const _=()=>{try{O.style.transition="",O.removeEventListener("transitionend",_)}catch{}};O.addEventListener("transitionend",_)}}}function mt(){const C=Pe.current;if(!C.length){Ge.current=[],Y.current=null;return}const T=Ge.current,R=new Array(C.length),P=[];try{for(let O=0;O=D.left&&C<=D.left+D.width&&T>=D.top&&T<=D.top+D.height)return _}let P=-1,O=Number.POSITIVE_INFINITY;for(let _=0;_P&&(P=F,R=O)}return{idx:R,area:P}}function Yt(C,T,R){const P=C.filter(D=>Number(D)!==Number(T)),O=ft(R,P.length),_=[];for(let D=0;DD!=="spacer").map(D=>Number(D)).filter(D=>Number.isFinite(D))}function Pt(C){const T=Pe.current,R=T.indexOf("spacer");if(R<0)return;const P=ft(C,T.length-1);if(P===R)return;const O=Ct(T,R,P),_=yt(O),D=[...T];D.splice(R,1),D.splice(P,0,"spacer");const F=Math.max(150,Math.min(650,le("rearrange")));Le.current={before:_,ms:F},Se(D)}b.useLayoutEffect(()=>{if(G==null)return;try{mt()}catch{}const C=Le.current;if(C){Le.current=null;try{bt(C.before,C.ms)}catch{}}},[G,We]);function ln(){wt.current=!1,ce.current=null,ot.current=null,it.current=null,Ge.current=[],Y.current=null,Be.current=!1,ge.current=2,De.current=1;try{document.documentElement.classList.remove("is-note-rearrange-dragging")}catch{}if(S(),Ye.current!=null){try{cancelAnimationFrame(Ye.current)}catch{}Ye.current=null}}function wi(){fe(null),Ue(null),Se([]),ln();try{requestAnimationFrame(()=>{try{window.dispatchEvent(new Event("notes-grid:recalc")),window.dispatchEvent(new Event("resize"))}catch{}})}catch{}}function $i(C){if(!C)return!1;try{return!!C.closest('button, a, input, textarea, select, [contenteditable="true"], .more-menu, .dropdown, .color-palette')}catch{return!1}}function Hc(C){var O;const T=me.current.get(C),R=(O=T==null?void 0:T.dataset)==null?void 0:O.__rowspan,P=R?Number(R):NaN;return Number.isFinite(P)&&P>0?P:2}function us(C,T){if(C===T)return!0;if(!C||!T||C.length!==T.length)return!1;for(let R=0;R1);for(let _=0;_[]);const O=10,_=P.map(ae=>ae.left).sort((ae,ye)=>ae-ye),D=[];for(const ae of _){const ye=D[D.length-1];(D.length===0||Math.abs(ae-ye)>O)&&D.push(ae)}const F=Math.max(T,D.length,1),ie=Array.from({length:F},()=>[]);for(const ae of P){let ye=0,$e=1/0;for(let lt=0;ltae.sort((ye,$e)=>ye.top-$e.top).map(ye=>ye.id))}function N1(){if(sn)try{const C=E1(Xe.current),T=E1(Tt.current);C&&Wt(R=>us(R,C)?R:C),T&&dn(R=>us(R,T)?R:T)}catch{}}b.useEffect(()=>{if(!sn){Wt(null),dn(null);return}const C=window.setTimeout(()=>{N1()},0);return()=>{try{clearTimeout(C)}catch{}}},[sn,m]);const T1=b.useMemo(()=>{try{const C=Math.max(1,Number(z)||1),T=rt&&rt.length?rt.length:0;return Math.max(C,T===C?T:0,1)}catch{return 1}},[sn,rt,z]),A1=b.useMemo(()=>{try{const C=Math.max(1,Number(L)||1),T=Mt&&Mt.length?Mt.length:0;return Math.max(C,T===C?T:0,1)}catch{return 1}},[sn,Mt,L]),pa=b.useMemo(()=>!ne||!rt?null:C1(rt,T1),[ne,rt,T1,st]),ma=b.useMemo(()=>!ne||!Mt?null:C1(Mt,A1),[ne,Mt,A1,st]);function bo(C){if(!C)return 0;if(C instanceof Date)return C.getTime();const T=Date.parse(String(C));return Number.isFinite(T)?T:0}function M1(C){const T=s||Ks;if(T.sortKey==="default")return C;const R=T.sortDir==="asc"?1:-1,P=[...C];return P.sort((O,_)=>{if(T.sortKey==="createdAt")return(bo(O.createdAt)-bo(_.createdAt))*R;if(T.sortKey==="updatedAt")return(bo(O.updatedAt)-bo(_.updatedAt))*R;if(T.sortKey==="title"){const D=String(O.title||"").trim(),F=String(_.title||"").trim(),ie=D.localeCompare(F,void 0,{sensitivity:"base"});return ie!==0?ie*R:(bo(O.createdAt)-bo(_.createdAt))*-1}return 0}),P}function I1(C){const T=new Date(C),R=(T.getDay()+6)%7;return T.setHours(0,0,0,0),T.setDate(T.getDate()-R),T.getTime()}function R1(C){const T=s||Ks;if(T.groupBy==="none")return[{key:"all",title:"",notes:C,sortMs:0}];const R=new Map;if(T.groupBy==="week"){const O=I1(new Date),_=O-7*24*60*60*1e3;for(const F of C){const ie=bo(F.createdAt),ae=I1(new Date(ie||0));let ye="older",$e="Older",ke=0;ae>=O?(ye="thisWeek",$e="This week",ke=O):ae>=_&&(ye="lastWeek",$e="Last week",ke=_);const lt=R.get(ye)||{title:$e,notes:[],sortMs:ke};lt.notes.push(F),R.set(ye,lt)}return["thisWeek","lastWeek","older"].filter(F=>R.has(F)).map(F=>({key:F,title:R.get(F).title,notes:R.get(F).notes,sortMs:R.get(F).sortMs}))}if(T.groupBy==="month"){for(const _ of C){const D=bo(_.createdAt),F=new Date(D||0),ie=F.getFullYear(),ae=F.getMonth(),ye=`${ie}-${String(ae+1).padStart(2,"0")}`,$e=F.toLocaleString(void 0,{month:"long",year:"numeric"}),ke=new Date(ie,ae,1).getTime(),lt=R.get(ye)||{title:$e,notes:[],sortMs:ke};lt.notes.push(_),R.set(ye,lt)}const P=Array.from(R.entries()).map(([_,D])=>({key:_,title:D.title,notes:D.notes,sortMs:D.sortMs})),O=T.sortKey==="createdAt"&&T.sortDir==="asc"?1:-1;return P.sort((_,D)=>(_.sortMs-D.sortMs)*O),P}return[{key:"all",title:"",notes:C,sortMs:0}]}b.useEffect(()=>{if(Me.current){Me.current=!1;return}requestAnimationFrame(()=>{try{window.dispatchEvent(new Event("notes-grid:recalc"))}catch{}})},[t,e,i,m,s==null?void 0:s.groupBy,s==null?void 0:s.sortKey,s==null?void 0:s.sortDir,s==null?void 0:s.smartFilter]),b.useEffect(()=>{if(!p)return;const C=(()=>{try{return FA().deviceKey}catch{return null}})();let T=null;try{const P=`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/events?token=${encodeURIComponent(p)}`;T=new WebSocket(P),T.onmessage=O=>{try{const _=JSON.parse(String(O.data||"{}"));if(!_||!_.type)return;switch(_.type){case"note-created":V();break;case"notes-reordered":{const D=_.payload||{},ie=(Array.isArray(D.ids)?D.ids:[]).map(ae=>Number(ae)).filter(ae=>Number.isFinite(ae));if(!ie.length)break;try{localStorage.setItem("notesOrder",JSON.stringify(ie))}catch{}g(ae=>{const ye=new Map;for(const He of ae){const et=Number(He==null?void 0:He.id);Number.isFinite(et)&&ye.set(et,He)}const $e=new Set,ke=[];for(const He of ie){const et=ye.get(He);et&&(ke.push(et),$e.add(He))}const lt=[];for(const He of ae){const et=Number(He==null?void 0:He.id);(!Number.isFinite(et)||!$e.has(et))&<.push(He)}return[...lt,...ke]});break}case"note-deleted":{const D=_.payload||{},F=Number(D.noteId);Number.isFinite(F)&&g(ie=>ie.filter(ae=>Number(ae.id)!==F));break}case"note-images-changed":{const D=_.payload||{},F=Number(D.noteId);if(!Number.isFinite(F))break;(async()=>{try{const ie=await fetch(`/api/notes/${F}/images`,{headers:{Authorization:`Bearer ${p}`}});if(!ie.ok)return;const ae=await ie.json(),ye=Array.isArray(ae==null?void 0:ae.images)?ae.images:[];tt(F,ye)}catch{}})();break}case"note-color-changed":{const D=_.payload||{},F=Number(D.noteId);if(!Number.isFinite(F))break;const ie=typeof D.color=="string"?String(D.color):"";Ft(F,ie);break}case"note-collections-changed":{const D=_.payload||{},F=Number(D.noteId);if(!Number.isFinite(F))break;const ie=Array.isArray(D.collections)?D.collections:[];Kt(F,ie);break}case"note-collection-changed":{V();break}case"note-shared":V();break;case"note-unshared":{const D=Number(_.noteId||_.payload&&_.payload.noteId);Number.isFinite(D)&&g(F=>F.filter(ie=>Number(ie.id)!==D));break}case"collab-removed":{const D=Number(_.noteId||_.payload&&_.payload.noteId),F=Number(_.userId||_.payload&&_.payload.userId);Number.isFinite(D)&&Number.isFinite(F)&&g(ie=>ie.map(ae=>{if(Number(ae.id)!==D)return ae;const $e=(Array.isArray(ae.collaborators)?ae.collaborators:[]).filter(ke=>{const lt=ke&&(ke.user||{});return(typeof lt.id=="number"?Number(lt.id):typeof ke.userId=="number"?Number(ke.userId):void 0)!==F});return{...ae,collaborators:$e}}));break}case"user-photo-updated":{const D=_.payload||{},F=Number(D.userId),ie=String(D.userImageUrl||"");Number.isFinite(F)&&g(ae=>ae.map(ye=>{const $e=ye.owner||null,ke=$e&&$e.id===F?{...$e,userImageUrl:ie}:$e,He=(Array.isArray(ye.collaborators)?ye.collaborators:[]).map(et=>{const Et=et&&(et.user||{});return typeof Et.id=="number"&&Number(Et.id)===F?{...et,user:{...Et,userImageUrl:ie}}:et});return{...ye,owner:ke,collaborators:He}}));break}case"user-prefs-updated":{const D=_.payload||{},F=typeof D.deviceKey=="string"&&D.deviceKey?String(D.deviceKey):null;if(F&&C&&F!==C)break;try{if(typeof D.noteWidth=="number"){document.documentElement.style.setProperty("--note-card-width",`${Number(D.noteWidth)}px`);try{localStorage.setItem("prefs.noteWidth",String(Number(D.noteWidth)))}catch{}}if(typeof D.checklistTextSize=="number"){document.documentElement.style.setProperty("--checklist-text-size",`${Number(D.checklistTextSize)}px`);try{localStorage.setItem("prefs.checklistTextSize",String(Number(D.checklistTextSize)))}catch{}}if(typeof D.noteLineSpacing=="number"){document.documentElement.style.setProperty("--note-line-height",String(Number(D.noteLineSpacing)));try{localStorage.setItem("prefs.noteLineSpacing",String(Number(D.noteLineSpacing)))}catch{}}if(typeof D.imageThumbSize=="number"){document.documentElement.style.setProperty("--image-thumb-size",`${Number(D.imageThumbSize)}px`);try{localStorage.setItem("prefs.imageThumbSize",String(Number(D.imageThumbSize)))}catch{}}if(typeof D.fontFamily=="string"&&D.fontFamily){document.documentElement.style.setProperty("--app-font-family",String(D.fontFamily));try{localStorage.setItem("prefs.fontFamily",String(D.fontFamily))}catch{}}}catch{}try{window.dispatchEvent(new Event("notes-grid:recalc")),window.dispatchEvent(new Event("resize"))}catch{}break}}}catch{}}}catch{}return()=>{try{T&&T.close()}catch{}}},[p]),b.useRef(null),b.useEffect(()=>{const C=new WeakSet,T=new WeakMap;let R=null,P=null;function O(){if(wt.current)return;const ie=(()=>{try{const En=window.matchMedia,hr=!!(En&&(En("(pointer: coarse)").matches||En("(any-pointer: coarse)").matches)),Bn=window.visualViewport&&typeof window.visualViewport.width=="number"?window.visualViewport.width:window.innerWidth,ai=window.visualViewport&&typeof window.visualViewport.height=="number"?window.visualViewport.height:window.innerHeight,ds=Math.min(Bn,ai);if(hr){if(ds<=600)return"phone";if(ds<=1024)return ai>=Bn?"tablet-portrait":"tablet-landscape"}return"desktop"}catch{return"desktop"}})();ie!==N.current&&(N.current=ie,M(ie));const ae=getComputedStyle(document.documentElement);let ye=parseInt(ae.getPropertyValue("--note-card-width"))||300;const $e=parseInt(ae.getPropertyValue("--gap"))||16,ke=document.querySelector(".main-area"),lt=ke?ke.clientWidth:0,He=document.querySelector(".notes-area"),et=He?He.clientWidth:0,Et=document.querySelector(".sidebar"),Gt=Et?Et.clientWidth:parseInt(ae.getPropertyValue("--sidebar-width"))||220,Zn=window.innerWidth-Gt-64,er=Math.max(lt,et,Zn,0),li=Array.from(document.querySelectorAll(".notes-area .notes-grid, .notes-area .notes-masonry")),Ds=document.querySelector(".notes-area")||document.querySelector(".main-area")||document.body,tr=Ds.getBoundingClientRect(),nr=Math.floor(tr.right),wf=parseInt(getComputedStyle(Ds).paddingRight||"0")||0;for(const En of li){const hr=getComputedStyle(En),Bn=parseInt(hr.getPropertyValue("--gap"))||$e,ai=Math.floor(En.getBoundingClientRect().left),ds=nr-wf,Un=Math.max(0,ds-ai),Bi=Math.max(0,Math.min(er,Un)),Ui=Math.max(1,Math.floor((Bi+Bn)/(ye+Bn)));let Hn=Ui,ko=ye;if(ie==="phone"){const $1=(()=>{try{const Dj=window.visualViewport&&typeof window.visualViewport.width=="number"?window.visualViewport.width:window.innerWidth,Oj=window.visualViewport&&typeof window.visualViewport.height=="number"?window.visualViewport.height:window.innerHeight;return Dj>Oj}catch{return!1}})(),Ij=$1?120:140,Rj=$1?4:2;let Wc=Math.floor((Un+Bn)/(Ij+Bn));Wc=Math.max(2,Math.min(Rj,Wc||0)),Hn=Wc,ko=Math.max(110,Math.floor((Un-Math.max(0,Wc-1)*Bn)/Wc))}else ie==="tablet-portrait"?Hn=Math.max(2,Math.min(3,Ui)):ie==="tablet-landscape"&&(Hn=Math.max(3,Math.min(4,Ui)));ie==="phone"?En.style.setProperty("--note-card-width",`${ko}px`):En.style.removeProperty("--note-card-width");const Aj=Hn*ko+Math.max(0,Hn-1)*Bn,Mj=Math.min(Aj,Un);Number(En.dataset.__cols||"0")!==Hn&&(En.style.setProperty("--cols",String(Hn)),En.dataset.__cols=String(Hn)),En.style.width=`${Mj}px`;try{En===Xe.current?W.current!==Hn&&(W.current=Hn,X(Hn)):En===Tt.current&&te.current!==Hn&&(te.current=Hn,H(Hn))}catch{}}try{window.__notesGridDebug={cardWidth:ye,gap:$e,availMain:lt,availArea:et,availFallback:Zn,avail:er,grids:li.map(En=>{const hr=getComputedStyle(En),Bn=parseInt(hr.getPropertyValue("--gap"))||$e,ai=Math.floor(En.getBoundingClientRect().left),ds=nr-wf,Un=Math.max(0,ds-ai),Bi=Math.max(0,Math.min(er,Un)),Ui=Math.max(1,Math.floor((Bi+Bn)/(ye+Bn))),Hn=Math.min(Ui*ye+Math.max(0,Ui-1)*Bn,Un);return{left:ai,rightEdge:ds,availableToRight:Un,gridAvail:Bi,gridCols:Ui,gridTotal:Hn}}),autoFit:localStorage.getItem("prefs.autoFitColumns")==="1",anim:{resizeMs:le("resize"),swapMs:le("swap"),rearrangeMs:le("rearrange")},showGuides:En=>{for(const hr of li)if(En){const Bn=parseInt(getComputedStyle(hr).getPropertyValue("--gap"))||$e,ai=ye+Bn,Un=(parseInt(ae.getPropertyValue("--row"))||8)+Bn,Bi=`repeating-linear-gradient(to right, rgba(255,255,255,0.08) 0, rgba(255,255,255,0.08) 1px, transparent 1px, transparent ${ai}px)`,Ui=`repeating-linear-gradient(to bottom, rgba(255,255,255,0.08) 0, rgba(255,255,255,0.08) 1px, transparent 1px, transparent ${Un}px)`;hr.style.backgroundImage=`${Bi}, ${Ui}`,hr.style.backgroundSize=`${ai}px 100%, 100% ${Un}px`,hr.style.backgroundPosition="left top, left top"}else hr.style.backgroundImage="",hr.style.backgroundSize=""}}}catch{}try{for(const En of li){const hr=getComputedStyle(En),Bn=parseInt(hr.getPropertyValue("--row"))||parseInt(ae.getPropertyValue("--row"))||8,ai=parseInt(hr.getPropertyValue("--gap"))||$e,ds=Array.from(En.querySelectorAll("[data-note-id]"));for(const Un of ds){const Bi=Un.querySelector(".note-card"),Ui=Bi?Bi.getBoundingClientRect().height:Un.getBoundingClientRect().height,Hn=Math.max(1,Math.ceil((Ui+ai)/(Bn+ai)));Un.dataset.__rowspan!==String(Hn)&&(Un.style.gridRowEnd=`span ${Hn}`,Un.dataset.__rowspan=String(Hn));try{if(R){const ko=Bi||Un;C.has(ko)||(R.observe(ko),C.add(ko),Bi&&T.set(ko,Un))}}catch{}}}}catch{}}function _(){wt.current||P==null&&(P=requestAnimationFrame(()=>{P=null,O()}))}O();const D=document.querySelector(".main-area")||document.body,F=new ResizeObserver(()=>_());F.observe(D);try{R=new ResizeObserver(ie=>{try{if(wt.current)return;const ae=getComputedStyle(document.documentElement),ye=parseInt(ae.getPropertyValue("--gap"))||16,$e=parseInt(getComputedStyle(document.body).getPropertyValue("--gap"))||ye;for(const ke of ie){const lt=ke.target,He=T.get(lt)||lt,et=He!=null&&He.closest?He.closest(".notes-grid, .notes-masonry"):null,Et=getComputedStyle(et||He),Gt=parseInt(Et.getPropertyValue("--row"))||parseInt(ae.getPropertyValue("--row"))||8,Jr=parseInt(Et.getPropertyValue("--gap"))||$e,Zn=lt.getBoundingClientRect().height,er=Math.max(1,Math.ceil((Zn+Jr)/(Gt+Jr)));He.dataset.__rowspan!==String(er)&&(He.style.gridRowEnd=`span ${er}`,He.dataset.__rowspan=String(er))}}catch{_()}})}catch{}return window.addEventListener("resize",_),window.addEventListener("notes-grid:recalc",_),()=>{F.disconnect(),window.removeEventListener("resize",_),window.removeEventListener("notes-grid:recalc",_);try{P!=null&&cancelAnimationFrame(P)}catch{}try{R&&R.disconnect()}catch{}}},[]);const D1=b.useMemo(()=>{var T;const C=new Map;for(let R=0;R{const C=Array.isArray(t)?t:[],T=e==null?null:Number(e),R=(i||"").trim().toLowerCase(),P=ke=>{if(!C.length)return!0;const lt=(ke.noteLabels||[]).map(He=>{var et;return(et=He.label)==null?void 0:et.id}).filter(He=>typeof He=="number");return C.some(He=>lt.includes(He))},O=ke=>!!(!R||String(ke.title||"").toLowerCase().includes(R)||String(ke.body||"").toLowerCase().includes(R)||(Array.isArray(ke.items)?ke.items:[]).some(et=>String(et.content||"").toLowerCase().includes(R))||(Array.isArray(ke.noteLabels)?ke.noteLabels:[]).some(et=>{var Et;return String(((Et=et.label)==null?void 0:Et.name)||"").toLowerCase().includes(R)})),_=ke=>{var et;if(T==null||!Number.isFinite(T))return!0;const lt=Array.isArray(ke.viewerCollections)?ke.viewerCollections:[];for(const Et of lt){const Gt=Et&&typeof Et.id=="number"?Number(Et.id):null;if(Gt!=null&&Number.isFinite(Gt)&&Number(Gt)===Number(T))return!0}const He=Array.isArray(ke.noteCollections)?ke.noteCollections:[];for(const Et of He){const Gt=Et&&typeof Et.collectionId=="number"?Number(Et.collectionId):typeof((et=Et==null?void 0:Et.collection)==null?void 0:et.id)=="number"?Number(Et.collection.id):null;if(Gt!=null&&Number.isFinite(Gt)&&Number(Gt)===Number(T))return!0}return!1},D=r==null?null:Number(r),F=ke=>{var lt,He;if(D==null||!Number.isFinite(D))return!0;try{const et=typeof((lt=ke==null?void 0:ke.owner)==null?void 0:lt.id)=="number"?Number(ke.owner.id):typeof(ke==null?void 0:ke.ownerId)=="number"?Number(ke.ownerId):null;if(et!=null&&Number(et)===Number(D))return!0;const Et=Array.isArray(ke==null?void 0:ke.collaborators)?ke.collaborators:[];for(const Gt of Et){const Jr=typeof((He=Gt==null?void 0:Gt.user)==null?void 0:He.id)=="number"?Number(Gt.user.id):typeof(Gt==null?void 0:Gt.userId)=="number"?Number(Gt.userId):null;if(Jr!=null&&Number(Jr)===Number(D))return!0}}catch{}return!1},ie=m.filter(ke=>ke.pinned).filter(P).filter(_).filter(F).filter(O),ae=m.filter(ke=>!ke.pinned).filter(P).filter(_).filter(F).filter(O),ye=M1(ie),$e=M1(ae);return{pinned:ye,others:$e,pinnedGroups:R1(ye),otherGroups:R1($e)}},[m,t,e,r,i,s]),Vc=b.useMemo(()=>{var ie,ae;const C=[],T=Array.isArray(n)?n:[],R=T.length?T.map(ye=>String(ye.name||"")).filter(Boolean).join(" / "):"";R&&C.push({id:"collection",text:`Collection: ${R}`,onClear:()=>{try{u&&u([])}catch{}}});const P=Array.isArray(t)?t:[];if(P.length){const ye=new Map;for(const ke of m){const lt=Array.isArray(ke==null?void 0:ke.noteLabels)?ke.noteLabels:[];for(const He of lt){const et=typeof((ie=He==null?void 0:He.label)==null?void 0:ie.id)=="number"?Number(He.label.id):null,Et=typeof((ae=He==null?void 0:He.label)==null?void 0:ae.name)=="string"?String(He.label.name):null;et!=null&&Et&&ye.set(et,Et)}}const $e=P.map(ke=>ye.get(Number(ke))||`#${Number(ke)}`).join(", ");C.push({id:"labels",text:`Labels: ${$e}`,onClear:()=>{try{l&&l([])}catch{}}})}const O=r==null?null:Number(r);if(O!=null&&Number.isFinite(O)){let ye="";try{e:for(const $e of m){const ke=$e==null?void 0:$e.owner;if(ke&&typeof ke.id=="number"&&Number(ke.id)===O){ye=String(ke.name||ke.email||O);break e}const lt=Array.isArray($e==null?void 0:$e.collaborators)?$e.collaborators:[];for(const He of lt){const et=He==null?void 0:He.user;if(et&&typeof et.id=="number"&&Number(et.id)===O){ye=String(et.name||et.email||O);break e}}}}catch{}C.push({id:"collaborator",text:`With: ${ye||String(O)}`,onClear:()=>{try{a&&a(null)}catch{}}})}const _=(i||"").trim();_&&C.push({id:"search",text:`Search: ${_}`,onClear:()=>{try{d&&d("")}catch{}}});const D=s||Ks;if(D.sortKey!=="default"){const ye=D.sortKey==="createdAt"?`Date created: ${D.sortDir==="asc"?"Ascending":"Descending"}`:D.sortKey==="updatedAt"?`Date updated: ${D.sortDir==="asc"?"Ascending":"Descending"}`:D.sortKey==="title"?`Alphabetical: ${D.sortDir==="asc"?"A→Z":"Z→A"}`:`Sort: ${String(D.sortKey)}`;C.push({id:"sort",text:ye,onClear:()=>{try{f&&f({...D,sortKey:"default",sortDir:Ks.sortDir})}catch{}}})}if(D.groupBy&&D.groupBy!=="none"&&C.push({id:"group",text:`Grouping: ${D.groupBy==="week"?"Week":D.groupBy==="month"?"Month":String(D.groupBy)}`,onClear:()=>{try{f&&f({...D,groupBy:"none"})}catch{}}}),D.smartFilter&&D.smartFilter!=="none"){const ye=D.smartFilter==="dueSoon"?"Filter: Due soon":D.smartFilter==="leastAccessed"?"Filter: Least accessed":D.smartFilter==="mostEdited"?"Filter: Most edited":D.smartFilter==="atRisk"?"Filter: At risk":`Filter: ${String(D.smartFilter)}`;C.push({id:"smartFilter",text:ye,onClear:()=>{try{f&&f({...D,smartFilter:"none"})}catch{}}})}const F=C.length>0;return{title:R||"All notes",chips:C,show:!0,hasAnyFilter:F}},[n,t,r,i,m,s,l,a,u,d,f]);b.useEffect(()=>{if(!sn)return;const C=K.current;if(!C)return;K.current=null;const T=C.section==="pinned"?Xe.current:Tt.current;if(!T)return;const R=Array.from(T.querySelectorAll(".notes-masonry-col"));if(!R.length)return;const P=C.heights,O=R.map(D=>D.getBoundingClientRect().height),_=le("swap");for(let D=0;D{try{F.style.transition="",F.style.height="",F.removeEventListener("transitionend",ae)}catch{}};F.addEventListener("transitionend",ae)}},[sn,m]);function gf(C,T){const R=new Map;me.current.forEach((P,O)=>{P&&R.set(O,P.getBoundingClientRect())}),Me.current=!0,g(P=>{const O=[...P],_=O[C],D=O[T];return!_||!D?P:(O[C]=D,O[T]=_,O)}),requestAnimationFrame(()=>{const P=new Map;me.current.forEach((O,_)=>{O&&P.set(_,O.getBoundingClientRect())}),P.forEach((O,_)=>{const D=R.get(_),F=me.current.get(_);if(!D||!F)return;const ie=D.left-O.left,ae=D.top-O.top;if(ie===0&&ae===0)return;F.style.transition="none",F.style.transform=`translate(${ie}px, ${ae}px)`,F.getBoundingClientRect(),F.style.transition=`transform ${le("swap")}ms ease-in-out`,F.style.transform="";const ye=()=>{try{F.style.transition="",F.removeEventListener("transitionend",ye)}catch{}};F.addEventListener("transitionend",ye)})})}function yf(C,T){const R=new Map;me.current.forEach((P,O)=>{P&&R.set(O,P.getBoundingClientRect())}),Me.current=!0,g(P=>{const O=[...P];if(C<0||T<0||C>=O.length||T>=O.length)return P;const[_]=O.splice(C,1);return O.splice(T,0,_),O}),requestAnimationFrame(()=>{const P=new Map;me.current.forEach((O,_)=>{O&&P.set(_,O.getBoundingClientRect())}),P.forEach((O,_)=>{const D=R.get(_),F=me.current.get(_);if(!D||!F)return;const ie=D.left-O.left,ae=D.top-O.top;if(ie===0&&ae===0)return;F.style.transition="none",F.style.transform=`translate(${ie}px, ${ae}px)`,F.getBoundingClientRect(),F.style.transition=`transform ${le("rearrange")}ms ease-in-out`,F.style.transform="";const ye=()=>{try{F.style.transition="",F.removeEventListener("transitionend",ye)}catch{}};F.addEventListener("transitionend",ye)})})}async function vf(C){try{localStorage.setItem("notesOrder",JSON.stringify(C.map(T=>T.id)))}catch{}if(p)try{const T=C.map(P=>P.id),R=await fetch("/api/notes/order",{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${p}`},body:JSON.stringify({ids:T})});if(!R.ok)throw new Error(await R.text())}catch(T){console.error("Failed to persist note order to server",T)}}const xo=b.useCallback(C=>{if(C&&C.type==="filter:collection"&&typeof C.collectionId=="number"){try{a&&a(null)}catch{}try{c&&c(Number(C.collectionId),typeof C.collectionName=="string"?String(C.collectionName):void 0)}catch{}return}if(C&&C.type==="filter:collaborator"&&typeof C.userId=="number"){try{a&&a(Number(C.userId))}catch{}return}if(C&&C.type==="filter:labels"){const T=typeof C.labelId=="number"?Number(C.labelId):null;if(T!=null&&Number.isFinite(T)){try{l&&l([T])}catch{}return}if(Array.isArray(C.labelIds)){const R=C.labelIds.map(P=>Number(P)).filter(P=>Number.isFinite(P));try{l&&l(R)}catch{}return}}if(C&&C.type==="labels"&&typeof C.noteId=="number"&&Array.isArray(C.labels)){he(C.noteId,C.labels);return}if(C&&C.type==="images"&&typeof C.noteId=="number"&&Array.isArray(C.images)){tt(C.noteId,C.images);return}if(C&&C.type==="color"&&typeof C.noteId=="number"){Ft(C.noteId,typeof C.color=="string"?String(C.color):"");return}if(C&&C.type==="collections"&&typeof C.noteId=="number"&&Array.isArray(C.collections)){Kt(C.noteId,C.collections);return}if(C&&C.type==="collection"&&typeof C.noteId=="number"){V();return}V()},[p,s,i,t,e,l,a,c]);b.useEffect(()=>{!y&&p&&x(!0)},[y,p]);const Lg=C=>{try{const T=Number((C==null?void 0:C.cardSpan)||1);return Math.max(1,Math.min(k==="phone"?2:3,Number.isFinite(T)?T:1))}catch{return 1}},_g=sn&&jt!=null&&st.get(Number(jt))||null,L1=A&&G!=null&&st.get(Number(G))||null;function _1(C,T,R,P,O){if(!A||Ae||!Zt||C.button!=null&&C.button!==0||$i(C.target)||Ee.current!=null||Be.current)return;const _=me.current.get(Number(T));if(!_)return;const D=_.getBoundingClientRect();if(!D||D.width<10||D.height<10)return;const F=String(C.pointerType||"mouse"),ie=C.pointerId??1,ae=C.currentTarget;if(ce.current={noteId:Number(T),section:R,sectionIds:Array.isArray(P)?P.map(ye=>Number(ye)).filter(ye=>Number.isFinite(ye)):[],startClientX:C.clientX,startClientY:C.clientY,lastClientX:C.clientX,lastClientY:C.clientY,pointerId:ie,pointerType:F,touchArmed:!1,longPressTimerId:null,captureEl:ae},ot.current={x:C.clientX,y:C.clientY},it.current=D,De.current=Math.max(1,Math.min(3,Number(O)||1)),ge.current=(()=>{var ke;const ye=(ke=_==null?void 0:_.dataset)==null?void 0:ke.__rowspan,$e=ye?Number(ye):NaN;return Number.isFinite($e)&&$e>0?$e:2})(),F==="touch"){const ye=window.setTimeout(()=>{var Et,Gt;const $e=ce.current;if(!$e||Number($e.pointerId)!==Number(ie)||Number($e.noteId)!==Number(T)||wt.current||Ee.current!=null||Be.current)return;const ke=typeof $e.lastClientX=="number"?$e.lastClientX:$e.startClientX,lt=typeof $e.lastClientY=="number"?$e.lastClientY:$e.startClientY,He=ke-$e.startClientX,et=lt-$e.startClientY;if(He*He+et*et>9){ce.current=null;return}$e.touchArmed=!0;try{(Gt=(Et=$e.captureEl)==null?void 0:Et.setPointerCapture)==null||Gt.call(Et,$e.pointerId)}catch{}zg($e.sectionIds)},220);ce.current.longPressTimerId=ye;return}}function zg(C){const T=ce.current,R=it.current;if(!T||!R)return;const P=T.noteId,O=Math.max(0,C.findIndex(_=>Number(_)===Number(P)));wt.current=!0,Jt(!0),fe(P),Ue(T.section),Se(Yt(C,P,O));try{document.documentElement.classList.add("is-note-rearrange-dragging")}catch{}T.pointerType==="touch"&&$(),requestAnimationFrame(()=>{const _=xt.current;_&&(_.style.transform="translate(0px, 0px) scale(1.03)")})}function z1(C,T){const R=it.current,P=ot.current;if(!R||!P)return{dx:0,dy:0};let O=C-P.x,_=T-P.y;const D=Y.current;if(!D)return{dx:O,dy:_};const F=18,ie=D.left-F,ae=D.right-R.width+F,ye=D.top-F,$e=D.bottom-R.height+F,ke=R.left+O,lt=R.top+_,He=Math.min(Math.max(ke,ie),ae),et=Math.min(Math.max(lt,ye),$e);return O=He-R.left,_=et-R.top,{dx:O,dy:_}}function Tj(C,T){const R=it.current,P=ot.current,O=xt.current;if(!R||!P||!O)return;const{dx:_,dy:D}=z1(C,T);O.style.transform=`translate(${_}px, ${D}px) scale(1.03)`}return b.useEffect(()=>{if(!A)return;const C=R=>{const P=ce.current;if(!P||P.pointerId!=null&&R.pointerId!=null&&Number(R.pointerId)!==Number(P.pointerId))return;P.pointerType==="touch"&&(P.lastClientX=R.clientX,P.lastClientY=R.clientY);const O=Ee.current,_=P.sectionIds;if(!(!_||!_.length)){if(O==null&&!wt.current){const D=R.clientX-P.startClientX,F=R.clientY-P.startClientY;if(P.pointerType==="touch"){const ie=Math.abs(D),ae=Math.abs(F),ye=4;if(!P.touchArmed){if(ie>ye||ae>ye){try{P.longPressTimerId!=null&&window.clearTimeout(P.longPressTimerId)}catch{}ce.current=null}return}zg(_)}else{if(D*D+F*F<6*6)return;zg(_)}}if(wt.current){try{R.preventDefault()}catch{}Ye.current==null&&(Ye.current=requestAnimationFrame(()=>{Ye.current=null,Tj(R.clientX,R.clientY);const D=Pe.current,F=Ge.current;if(!D.length||F.length!==D.length)return;const ie=it.current,ae=ot.current;if(!ie||!ae)return;const{dx:ye,dy:$e}=z1(R.clientX,R.clientY),ke=ie.left+ye,lt=ie.top+$e,He={left:ke,top:lt,right:ke+ie.width,bottom:lt+ie.height},et=ke+ie.width/2,Et=lt+ie.height/2,Gt=on(He),Jr=Gt.idx>=0&&Gt.area>0?Gt.idx:Qt(et,Et);if(Jr<0)return;const Zn=ze.current;if(Jr===Zn)return;const er=F[Zn]||null,li=F[Jr]||null;if(!er||!li)return;const Ds=li.cx-er.cx,tr=li.cy-er.cy,nr=(li.cx+er.cx)/2,wf=(li.cy+er.cy)/2,En=(et-nr)*Ds+(Et-wf)*tr,hr=Math.sqrt(Ds*Ds+tr*tr)||1,Bn=P.pointerType==="touch"?10:6;En<=Bn*hr||Pt(Jr)}))}}},T=R=>{const P=ce.current;if(!P||P.pointerId!=null&&R.pointerId!=null&&Number(R.pointerId)!==Number(P.pointerId))return;try{P.longPressTimerId!=null&&window.clearTimeout(P.longPressTimerId)}catch{}if(!wt.current||Ee.current==null){ce.current=null;return}const O=Number(Ee.current),_=Ke.current,D=Pe.current,F=D.indexOf("spacer"),ie=F>=0?D[F+1]:null,ae=typeof ie=="number"?Number(ie):null;Be.current=!0;const ye=xt.current,$e=it.current,ke=Math.max(150,Math.min(650,le("rearrange"))),lt=oe.current,He=lt?lt.getBoundingClientRect():null;if(ye&&$e&&He){const Et=He.left-$e.left,Gt=He.top-$e.top;ye.style.transition=`transform ${ke}ms cubic-bezier(.2,.9,.2,1)`,ye.style.transform=`translate(${Et}px, ${Gt}px) scale(1)`}_&&g(Et=>{var li,Ds;const Gt=Et.findIndex(tr=>Number(tr==null?void 0:tr.id)===O);if(Gt<0)return Et;const Jr=Et[Gt];if(!!Jr.pinned!=(_==="pinned"))return Et;const Zn=[...Et];Zn.splice(Gt,1);let er=Zn.length;if(ae!=null){const tr=Zn.findIndex(nr=>Number(nr==null?void 0:nr.id)===ae);tr>=0&&(er=tr)}else if(_==="pinned"){let tr=-1;for(let nr=0;nr{try{vf(Zn)}catch{}}),Zn});const et=()=>{try{ye&&(ye.style.transition="",ye.removeEventListener("transitionend",et))}catch{}Jt(!1),wi()};ye?(ye.addEventListener("transitionend",et),window.setTimeout(et,ke+80)):et()};return window.addEventListener("pointermove",C,{capture:!0,passive:!1}),window.addEventListener("pointerup",T,{capture:!0}),window.addEventListener("pointercancel",T,{capture:!0}),()=>{try{window.removeEventListener("pointermove",C,{capture:!0})}catch{}try{window.removeEventListener("pointerup",T,{capture:!0})}catch{}try{window.removeEventListener("pointercancel",T,{capture:!0})}catch{}}},[A,Ae,p]),y&&!w?h.jsx("div",{children:"Loading notes…"}):h.jsxs("section",{className:"notes-area",children:[h.jsxs("div",{className:"take-note-sticky",children:[h.jsx(HJ,{onCreated:V,openRequest:{nonce:_t,mode:at},activeCollection:At}),Vc.show&&h.jsx("div",{className:"grid-context",role:"region","aria-label":"Current view",children:h.jsxs("div",{className:"grid-context__text",children:[h.jsxs("div",{className:"grid-context__title-row",children:[h.jsx("div",{className:"grid-context__title",children:Vc.title}),!!o&&!!Vc.hasAnyFilter&&h.jsx("button",{type:"button",className:"grid-context__clear",onClick:()=>{try{o()}catch{}},"aria-label":"Clear all filters",title:"Clear",children:"Clear"})]}),!!((F1=Vc.chips)!=null&&F1.length)&&h.jsx("div",{className:"grid-context__chips","aria-label":"Active filters",children:Vc.chips.map(C=>h.jsxs("span",{className:"grid-chip",children:[h.jsx("span",{className:"grid-chip__text",title:String(C.text||""),children:String(C.text||"")}),typeof C.onClear=="function"&&h.jsx("button",{type:"button",className:"grid-chip__clear",onClick:()=>{try{C.onClear()}catch{}},"aria-label":`Clear ${String(C.text||"filter")}`,title:"Clear",children:"×"})]},String(C.id)))})]})})]}),Q&&h.jsx("div",{className:"mobile-add-backdrop","aria-hidden":"true",onPointerDown:()=>Je(!1)}),h.jsxs("div",{className:"mobile-add-note","aria-label":"Add note",children:[Q&&h.jsxs("div",{className:"mobile-add-menu",role:"menu","aria-label":"Create",children:[h.jsxs("button",{type:"button",className:"mobile-add-menu-item",role:"menuitem",onClick:()=>Bt("text"),children:[h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:h.jsx("path",{fill:"currentColor",d:"M6 2h9l5 5v15a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm8 1.5V8h4.5L14 3.5ZM7 11h10v1.6H7V11Zm0 4h10v1.6H7V15Zm0 4h7v1.6H7V19Z"})}),h.jsx("span",{children:"New note"})]}),h.jsxs("button",{type:"button",className:"mobile-add-menu-item",role:"menuitem",onClick:()=>Bt("checklist"),children:[h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:h.jsx("path",{fill:"currentColor",d:"M9.2 7.2 7.9 5.9 6 7.8 5.1 6.9 4 8l2 2 3.2-3.2ZM10.5 8H20v1.6h-9.5V8Zm-1.3 6.2-1.3-1.3L6 14.8l-.9-.9L4 15l2 2 3.2-3.2ZM10.5 15H20v1.6h-9.5V15Z"})}),h.jsx("span",{children:"New checklist"})]})]}),h.jsx("button",{type:"button",className:"mobile-add-fab","aria-haspopup":"menu","aria-expanded":Q,onClick:()=>Je(C=>!C),children:"+"})]}),h.jsx(WJ,{open:ct!=null,mode:ct||"text",onClose:()=>nt(null),onCreated:V,activeCollection:At}),sn?h.jsxs(F3,{sensors:Ie,collisionDetection:J_,onDragStart:Ve,onDragOver:Rt,onDragEnd:Dt,onDragCancel:qe,children:[O1.length>0&&h.jsxs("div",{className:"notes-section",children:[h.jsx("h4",{className:"section-title",children:"Pinned"}),j1.map(C=>h.jsxs("div",{children:[C.title&&C.key!=="all"&&h.jsx("h5",{className:"section-title",style:{marginTop:10,marginBottom:6,color:"var(--muted)"},children:C.title}),h.jsx("div",{className:"notes-grid notes-grid--swap",ref:Xe,children:C.notes.map(T=>{const R=Lg(T),P=(O,_)=>{O?me.current.set(_,O):me.current.delete(_)};return h.jsx(SN,{note:T,setItemRef:P,style:{gridColumn:`span ${R}`},isDragSource:jt!=null&&Number(jt)===Number(T.id),isDragTarget:wn!=null&&Number(wn)===Number(T.id),disabled:Ae,onChange:xo},T.id)})})]},C.key))]}),h.jsx("div",{className:"notes-section",children:P1.map(C=>h.jsxs("div",{children:[C.title&&C.key!=="all"&&h.jsx("h5",{className:"section-title",style:{marginTop:10,marginBottom:6,color:"var(--muted)"},children:C.title}),h.jsx("div",{className:"notes-grid notes-grid--swap",ref:Tt,children:C.notes.map(T=>{const R=Lg(T),P=(O,_)=>{O?me.current.set(_,O):me.current.delete(_)};return h.jsx(SN,{note:T,setItemRef:P,style:{gridColumn:`span ${R}`},isDragSource:jt!=null&&Number(jt)===Number(T.id),isDragTarget:wn!=null&&Number(wn)===Number(T.id),disabled:Ae,onChange:xo},T.id)})})]},C.key))}),h.jsx(s4,{children:_g?h.jsx("div",{className:"note-drag-ghost",style:{width:rn?`${rn.width}px`:(()=>{const C=Lg(_g);return`calc(${C} * var(--note-card-width) + ${Math.max(0,C-1)} * var(--gap))`})(),height:rn?`${rn.height}px`:void 0},children:h.jsx(El,{note:_g,onChange:xo})}):null})]}):h.jsxs(h.Fragment,{children:[O1.length>0&&h.jsxs("div",{className:"notes-section",children:[h.jsx("h4",{className:"section-title",children:"Pinned"}),j1.map(C=>h.jsxs("div",{children:[C.title&&C.key!=="all"&&h.jsx("h5",{className:"section-title",style:{marginTop:10,marginBottom:6,color:"var(--muted)"},children:C.title}),h.jsx("div",{className:"notes-grid"+(kt?" notes-grid--manual":""),ref:Xe,children:A&&je==="pinned"&&We.length?We.map((T,R)=>{var F;if(T==="spacer")return h.jsx("div",{ref:oe,className:"note-rearrange-spacer",style:{gridColumn:`span ${De.current}`,gridRowEnd:`span ${ge.current}`,height:`${((F=it.current)==null?void 0:F.height)||0}px`}},"spacer");const P=Number(T),O=st.get(P);if(!O)return null;const _=Math.max(1,Math.min(3,Number(O.cardSpan||1))),D=(pa==null?void 0:pa.get(Number(O.id)))||null;return h.jsx("div",{"data-note-id":O.id,style:D?{gridColumnStart:D.colStart,gridColumnEnd:`span ${D.colSpan}`,gridRowStart:D.rowStart,gridRowEnd:`span ${D.rowSpan}`}:{gridColumn:`span ${_}`},ref:ie=>{ie?me.current.set(O.id,ie):me.current.delete(O.id)},children:h.jsx(El,{note:O,onChange:xo})},O.id)}):C.notes.map(T=>{const R=D1.get(Number(T.id))??-1,P=Math.max(1,Math.min(3,Number(T.cardSpan||1))),O=(pa==null?void 0:pa.get(Number(T.id)))||null,_=C.notes.map(F=>Number(F.id)).filter(F=>Number.isFinite(F)),D=A?{draggable:!1,onPointerDown:F=>_1(F,Number(T.id),"pinned",_,P)}:{draggable:Zt&&!Ae,onDragStart:F=>{Zt&&(xe.current=Number(T.id),F.dataTransfer.setData("text/plain",String(R)),se.current=R)},onDragEnd:()=>{Zt&&(se.current=null,xe.current=null)},onDragOver:F=>{if(Zt){F.preventDefault();try{const ie=localStorage.getItem("prefs.dragBehavior")||"swap",ae=se.current;if(ie==="rearrange"&&ae!==null&&ae!==R){const ye=Date.now(),ke=F.currentTarget.getBoundingClientRect(),lt=Math.min(28,Math.floor(ke.height*.2)),He=Math.min(20,Math.floor(ke.width*.2)),et=F.clientY>ke.top+lt&&F.clientYke.left+He&&F.clientXGt&&(yf(ae,R),q.current=ye,se.current=R)}}catch{}}},onDrop:F=>{if(!Zt)return;F.preventDefault();const ie=Number(F.dataTransfer.getData("text/plain")),ae=Number.isFinite(ie)?ie:se.current??-1,ye=R;try{(localStorage.getItem("prefs.dragBehavior")||"swap")==="rearrange"?yf(ae,ye):gf(ae,ye)}catch{gf(ae,ye)}requestAnimationFrame(()=>{try{vf(E.current)}catch{}}),se.current=null,xe.current=null}};return h.jsx("div",{"data-note-id":T.id,style:O?{gridColumnStart:O.colStart,gridColumnEnd:`span ${O.colSpan}`,gridRowStart:O.rowStart,gridRowEnd:`span ${O.rowSpan}`}:{gridColumn:`span ${P}`},ref:F=>{F?me.current.set(T.id,F):me.current.delete(T.id)},...D,children:h.jsx(El,{note:T,onChange:xo})},T.id)})})]},C.key))]}),h.jsx("div",{className:"notes-section",children:P1.map(C=>h.jsxs("div",{children:[C.title&&C.key!=="all"&&h.jsx("h5",{className:"section-title",style:{marginTop:10,marginBottom:6,color:"var(--muted)"},children:C.title}),h.jsx("div",{className:"notes-grid"+(kt?" notes-grid--manual":""),ref:Tt,children:A&&je==="others"&&We.length?We.map((T,R)=>{var F;if(T==="spacer")return h.jsx("div",{ref:oe,className:"note-rearrange-spacer",style:{gridColumn:`span ${De.current}`,gridRowEnd:`span ${ge.current}`,height:`${((F=it.current)==null?void 0:F.height)||0}px`}},"spacer");const P=Number(T),O=st.get(P);if(!O)return null;const _=Math.max(1,Math.min(3,Number(O.cardSpan||1))),D=(ma==null?void 0:ma.get(Number(O.id)))||null;return h.jsx("div",{"data-note-id":O.id,style:D?{gridColumnStart:D.colStart,gridColumnEnd:`span ${D.colSpan}`,gridRowStart:D.rowStart,gridRowEnd:`span ${D.rowSpan}`}:{gridColumn:`span ${_}`},ref:ie=>{ie?me.current.set(O.id,ie):me.current.delete(O.id)},children:h.jsx(El,{note:O,onChange:xo})},O.id)}):C.notes.map(T=>{const R=D1.get(Number(T.id))??-1,P=Math.max(1,Math.min(3,Number(T.cardSpan||1))),O=(ma==null?void 0:ma.get(Number(T.id)))||null,_=C.notes.map(F=>Number(F.id)).filter(F=>Number.isFinite(F)),D=A?{draggable:!1,onPointerDown:F=>_1(F,Number(T.id),"others",_,P)}:{draggable:Zt&&!Ae,onDragStart:F=>{Zt&&(xe.current=Number(T.id),F.dataTransfer.setData("text/plain",String(R)),se.current=R)},onDragEnd:()=>{Zt&&(se.current=null,xe.current=null)},onDragOver:F=>{if(Zt){F.preventDefault();try{const ie=localStorage.getItem("prefs.dragBehavior")||"swap",ae=se.current;if(ie==="rearrange"&&ae!==null&&ae!==R){const ye=Date.now(),ke=F.currentTarget.getBoundingClientRect(),lt=Math.min(28,Math.floor(ke.height*.2)),He=Math.min(20,Math.floor(ke.width*.2)),et=F.clientY>ke.top+lt&&F.clientYke.left+He&&F.clientXGt&&(yf(ae,R),q.current=ye,se.current=R)}}catch{}}},onDrop:F=>{if(!Zt)return;F.preventDefault();const ie=Number(F.dataTransfer.getData("text/plain")),ae=Number.isFinite(ie)?ie:se.current??-1,ye=R;try{(localStorage.getItem("prefs.dragBehavior")||"swap")==="rearrange"?yf(ae,ye):gf(ae,ye)}catch{gf(ae,ye)}requestAnimationFrame(()=>{try{vf(E.current)}catch{}}),se.current=null,xe.current=null}};return h.jsx("div",{"data-note-id":T.id,style:O?{gridColumnStart:O.colStart,gridColumnEnd:`span ${O.colSpan}`,gridRowStart:O.rowStart,gridRowEnd:`span ${O.rowSpan}`}:{gridColumn:`span ${P}`},ref:F=>{F?me.current.set(T.id,F):me.current.delete(T.id)},...D,children:h.jsx(El,{note:T,onChange:xo})},T.id)})})]},C.key))})]}),A&&L1&&it.current?zn.createPortal(h.jsx("div",{ref:xt,className:"note-rearrange-overlay",style:{position:"fixed",left:`${it.current.left}px`,top:`${it.current.top}px`,width:`${it.current.width}px`,height:`${it.current.height}px`},children:h.jsx("div",{className:"note-rearrange-overlay-inner",children:h.jsx(El,{note:L1,onChange:xo})})}),document.body):null]})}function YJ({onClose:t}){const{register:e,uploadPhoto:n}=Sr(),[r,i]=b.useState(""),[s,o]=b.useState(""),[l,a]=b.useState(""),[c,u]=b.useState(""),[d,f]=b.useState(""),[p,m]=b.useState(!1),[g,y]=b.useState(null),[v,w]=b.useState(null),[x,E]=b.useState(null),[k,M]=b.useState(null),N=l.length>0&&s===l;function z({ok:W}){return W?h.jsx("svg",{viewBox:"0 0 24 24",width:18,height:18,"aria-hidden":!0,focusable:"false",style:{color:"#4caf50"},children:h.jsx("path",{d:"M20 6L9 17l-5-5",fill:"none",stroke:"currentColor",strokeWidth:"2.6",strokeLinecap:"round",strokeLinejoin:"round"})}):h.jsx("svg",{viewBox:"0 0 24 24",width:18,height:18,"aria-hidden":!0,focusable:"false",style:{color:"#ff6e6e"},children:h.jsx("path",{d:"M6 6L18 18M18 6L6 18",fill:"none",stroke:"currentColor",strokeWidth:"2.6",strokeLinecap:"round",strokeLinejoin:"round"})})}async function X(W){if(W.preventDefault(),y(null),!c.trim()||!r.trim()||!s){y("All fields are required");return}if(s!==l){y("Passwords do not match");return}m(!0);try{await e(r,s,c,d||void 0);try{if(x){const te=await H(x);await n(te)}}catch{}t()}catch(te){y((te==null?void 0:te.message)??String(te))}finally{m(!1)}}function L(W){var ue;const te=((ue=W.target.files)==null?void 0:ue[0])||null;E(te);try{M(de=>{try{de&&URL.revokeObjectURL(de)}catch{}return te?URL.createObjectURL(te):null})}catch{M(null)}}b.useEffect(()=>()=>{try{k&&URL.revokeObjectURL(k)}catch{}},[k]);function H(W){return new Promise((te,ue)=>{const de=new FileReader;de.onload=()=>te(String(de.result||"")),de.onerror=Ae=>ue(Ae),de.readAsDataURL(W)})}return b.useEffect(()=>{fetch("/api/config").then(W=>W.json()).then(W=>w(!!W.userRegistrationEnabled)).catch(()=>w(!1))},[]),h.jsx("div",{className:"image-dialog-backdrop",children:h.jsxs("div",{className:"image-dialog",role:"dialog","aria-modal":!0,children:[h.jsxs("div",{className:"dialog-header",children:[h.jsx("strong",{children:"Register"}),h.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),h.jsxs("form",{onSubmit:X,children:[h.jsx("div",{style:{marginBottom:8},children:h.jsx("input",{placeholder:"Name",value:c,onChange:W=>u(W.target.value),className:"image-url-input",required:!0})}),h.jsx("div",{style:{marginBottom:8},children:h.jsx("input",{placeholder:"Email",value:r,onChange:W=>i(W.target.value),className:"image-url-input"})}),h.jsx("div",{style:{marginBottom:8},children:h.jsx("input",{placeholder:"Password",type:"password",value:s,onChange:W=>o(W.target.value),className:"image-url-input"})}),h.jsx("div",{style:{marginBottom:8},children:h.jsx("input",{placeholder:"Confirm password",type:"password",value:l,onChange:W=>a(W.target.value),className:"image-url-input"})}),h.jsxs("div",{style:{marginBottom:12},children:[h.jsx("label",{style:{display:"block",marginBottom:6},children:"Profile photo (optional):"}),h.jsx("input",{type:"file",accept:"image/*",onChange:L}),k&&h.jsxs("div",{style:{marginTop:10,display:"flex",alignItems:"center",gap:10},children:[h.jsx("img",{src:k,alt:"Selected profile preview",style:{width:64,height:64,borderRadius:"50%",objectFit:"cover"}}),h.jsx("div",{style:{color:"var(--muted)",fontSize:13},children:"Preview"})]})]}),h.jsx("div",{style:{display:"grid",rowGap:6,margin:"10px 2px 12px"},"aria-live":"polite",children:h.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,color:"var(--muted)"},children:[h.jsx(z,{ok:N})," ",h.jsx("span",{children:"Passwords match"})]})}),h.jsx("div",{style:{marginBottom:8},children:h.jsx("input",{placeholder:"Invite token (optional)",value:d,onChange:W=>f(W.target.value),className:"image-url-input"})}),v===!1&&h.jsx("div",{style:{color:"salmon",marginBottom:8},children:"Registration is currently disabled — you must provide a valid invite token."}),g&&h.jsx("div",{style:{color:"salmon",marginBottom:8},children:g}),h.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:[h.jsx("button",{type:"button",className:"btn",onClick:t,children:"Cancel"}),h.jsx("button",{type:"submit",className:"btn",disabled:p||!c.trim()||!r.trim()||!s||!l||!N,children:p?"Registering...":"Register"})]})]})]})})}function qJ({onClose:t}){const{login:e}=Sr(),[n,r]=b.useState(""),[i,s]=b.useState(""),[o,l]=b.useState(!1),[a,c]=b.useState(null);async function u(d){d.preventDefault(),c(null),l(!0);try{await e(n,i),t()}catch(f){c((f==null?void 0:f.message)??String(f))}finally{l(!1)}}return h.jsx("div",{className:"image-dialog-backdrop",children:h.jsxs("div",{className:"image-dialog",role:"dialog","aria-modal":!0,children:[h.jsxs("div",{className:"dialog-header",children:[h.jsx("strong",{children:"Sign in"}),h.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),h.jsxs("form",{onSubmit:u,children:[h.jsx("div",{style:{marginBottom:8},children:h.jsx("input",{placeholder:"Email",value:n,onChange:d=>r(d.target.value),className:"image-url-input"})}),h.jsx("div",{style:{marginBottom:8},children:h.jsx("input",{placeholder:"Password",type:"password",value:i,onChange:d=>s(d.target.value),className:"image-url-input"})}),a&&h.jsx("div",{style:{color:"salmon",marginBottom:8},children:a}),h.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:[h.jsx("button",{type:"button",className:"btn",onClick:t,children:"Cancel"}),h.jsx("button",{type:"submit",className:"btn",disabled:o,children:o?"Signing in...":"Sign in"})]})]})]})})}function CN({selectedLabelIds:t,selectedCollectionId:e,collectionStack:n,selectedCollaboratorId:r,searchQuery:i,sortConfig:s,onClearAllFilters:o,onSetSelectedLabelIds:l,onSetSelectedCollaboratorId:a,onSelectCollectionById:c,onSetCollectionStack:u,onSetSearchQuery:d,onSortConfigChange:f}){const{user:p}=Sr(),[m,g]=b.useState(!1),[y,v]=b.useState(!1),[w,x]=b.useState(null);return b.useEffect(()=>{fetch("/api/config").then(E=>E.json()).then(E=>x(!!E.userRegistrationEnabled)).catch(()=>x(!1))},[]),p?h.jsx(KJ,{selectedLabelIds:t||[],selectedCollectionId:e??null,collectionStack:n||[],selectedCollaboratorId:r??null,searchQuery:i,sortConfig:s,onClearAllFilters:o,onSetSelectedLabelIds:l,onSetSelectedCollaboratorId:a,onSelectCollectionById:c,onSetCollectionStack:u,onSetSearchQuery:d,onSortConfigChange:f}):h.jsxs("div",{style:{padding:24,display:"flex",flexDirection:"column",alignItems:"center"},children:[h.jsx("h2",{children:"Welcome to FreemanNotes"}),h.jsx("p",{children:"Please sign in to view and manage your notes."}),h.jsxs("div",{style:{display:"flex",gap:8,marginTop:12},children:[h.jsx("button",{className:"btn",onClick:()=>v(!0),children:"Sign in"}),w&&h.jsx("button",{className:"btn",onClick:()=>g(!0),children:"Create account"})]}),m&&h.jsx(YJ,{onClose:()=>g(!1)}),y&&h.jsx(qJ,{onClose:()=>v(!1)})]})}function JJ(){return h.jsx(y_,{children:h.jsx(m_,{children:h.jsx(GJ,{})})})}function GJ(){const{user:t,token:e}=Sr(),[n,r]=B.useState([]),[i,s]=B.useState(null),[o,l]=B.useState([]),[a,c]=B.useState(!1),[u,d]=B.useState(!1),[f,p]=B.useState(!1),[m,g]=B.useState(""),[y,v]=B.useState(Ks),w=o.length?Number(o[o.length-1].id):null,x=B.useRef([]),E=B.useRef(!1),k=B.useRef(0),M=B.useRef(!1),N=B.useCallback(()=>{r([]),s(null),l([]),g(""),v(Ks)},[]),z=B.useCallback(async(H,W)=>{const te=Number(H);if(Number.isFinite(te)){if(!e){l([{id:te,name:String(W||te)}]);return}try{const ue=await fetch(`/api/collections/${encodeURIComponent(String(te))}/breadcrumb`,{headers:{Authorization:`Bearer ${e}`}});if(!ue.ok)throw new Error(await ue.text());const de=await ue.json(),me=(Array.isArray(de==null?void 0:de.breadcrumb)?de.breadcrumb:[]).map(q=>({id:Number(q.id),name:String(q.name||"")})).filter(q=>Number.isFinite(q.id)&&q.name.length);me.length?l(me):l([{id:te,name:String(W||te)}])}catch{l([{id:te,name:String(W||te)}])}}},[e]),X=H=>{r(W=>W.includes(H)?W.filter(te=>te!==H):[...W,H])},L=()=>r([]);return B.useEffect(()=>{var W,te;function H(){try{const ue=window.matchMedia,de=!!(ue&&(ue("(pointer: coarse)").matches||ue("(any-pointer: coarse)").matches)),Ae=window.visualViewport&&typeof window.visualViewport.width=="number"?window.visualViewport.width:window.innerWidth,me=window.visualViewport&&typeof window.visualViewport.height=="number"?window.visualViewport.height:window.innerHeight,q=Math.min(Ae,me);p(de&&q<=600)}catch{p(!1)}}H(),window.addEventListener("resize",H);try{(W=window.visualViewport)==null||W.addEventListener("resize",H)}catch{}try{(te=window.visualViewport)==null||te.addEventListener("scroll",H)}catch{}return()=>{var ue,de;window.removeEventListener("resize",H);try{(ue=window.visualViewport)==null||ue.removeEventListener("resize",H)}catch{}try{(de=window.visualViewport)==null||de.removeEventListener("scroll",H)}catch{}}},[]),B.useEffect(()=>{if(f&&!E.current){E.current=!0;try{history.replaceState({...history.state||{},__freemannotes_base:!0},document.title),history.pushState({...history.state||{},__freemannotes_sentinel:!0},document.title)}catch{}}},[f]),B.useEffect(()=>{if(!f)return;const H=x.current,W=de=>{var Ae;try{const me=de==null?void 0:de.detail,q=String((me==null?void 0:me.id)||""),se=me==null?void 0:me.onBack;if(!q||typeof se!="function")return;for(let xe=H.length-1;xe>=0;xe--)((Ae=H[xe])==null?void 0:Ae.id)===q&&H.splice(xe,1);H.push({id:q,onBack:se});try{history.pushState({...history.state||{},__freemannotes_overlay:!0,__freemannotes_overlay_id:q},document.title)}catch{}}catch{}},te=de=>{var Ae;try{const me=de==null?void 0:de.detail,q=String((me==null?void 0:me.id)||"");if(!q)return;for(let se=H.length-1;se>=0;se--)((Ae=H[se])==null?void 0:Ae.id)===q&&H.splice(se,1)}catch{}},ue=de=>{var Ae;try{if(!f)return;if(H.length>0){const se=H.pop();try{(Ae=se==null?void 0:se.onBack)==null||Ae.call(se)}catch{}return}const me=de==null?void 0:de.state;if(!me||!!me.__freemannotes_base){if(M.current){M.current=!1;return}const se=Date.now(),xe=k.current||0;if(k.current=se,se-xe<=800&&window.confirm("Exit FreemanNotes?")){M.current=!0,window.setTimeout(()=>{var Je;try{history.back()}catch{}try{(Je=window.close)==null||Je.call(window)}catch{}},0);return}window.setTimeout(()=>{try{history.go(1)}catch{}},0)}}catch{}};return window.addEventListener("freemannotes:back/register",W),window.addEventListener("freemannotes:back/unregister",te),window.addEventListener("popstate",ue),()=>{window.removeEventListener("freemannotes:back/register",W),window.removeEventListener("freemannotes:back/unregister",te),window.removeEventListener("popstate",ue)}},[f]),B.useEffect(()=>{if(!u)return;function H(W){W.key==="Escape"&&d(!1)}return window.addEventListener("keydown",H),()=>window.removeEventListener("keydown",H)},[u]),B.useEffect(()=>{f||d(!1)},[f]),B.useEffect(()=>{if(!f)return;let H=!1,W=!1,te=!1,ue=0,de=0,Ae=0,me=0,q=null,se=null;const xe=140,Me=24,Q=28,Je=80,_t=360,J=8,at=1.2;function $t(ze){const Pe=ze;if(!Pe)return!1;try{return Pe.closest(".note-card")?!!Pe.closest('input, textarea, select, button, a, [contenteditable="true"]'):!!Pe.closest('input, textarea, select, button, a, [contenteditable="true"], .take-note-expanded, .image-dialog, .prefs-dialog')}catch{return!1}}function ct(ze,Pe,it,ot,xt){if($t(it))return!1;let oe=!1;try{const Y=it;oe=!!(Y&&Y.closest&&Y.closest(".note-card"))}catch{}const Ye=!u&&ze<=xe&&(!oe||ze<=Me),Ge=u&&ze<=_t;return!Ye&&!Ge?!1:(ue=ze,de=Pe,Ae=ze,me=Pe,H=!0,q=ot,se=xt,W=Ye,te=Ge,!0)}function nt(ze,Pe,it){Ae=ze,me=Pe;const ot=Ae-ue,xt=me-de;if(Math.abs(xt)>Je&&Math.abs(xt)>Math.abs(ot)*at){H=!1,q=null,se=null,W=!1,te=!1;return}if(it&&Math.abs(ot)>J&&Math.abs(ot)>Math.abs(xt)*at&&it(),W&&ot>=Q&&Math.abs(xt)<=Je){d(!0),H=!1,q=null,se=null,W=!1,te=!1;return}if(te&&ot<=-34&&Math.abs(xt)<=Je){d(!1),H=!1,q=null,se=null,W=!1,te=!1;return}}function At(ze){var Pe,it;try{if(ze.pointerType!=="touch"||q!=null||$t(ze.target)||!ct(ze.clientX,ze.clientY,ze.target,ze.pointerId,null))return;try{(it=(Pe=ze.target)==null?void 0:Pe.setPointerCapture)==null||it.call(Pe,ze.pointerId)}catch{}}catch{}}function Bt(ze){try{if(!H||q==null||ze.pointerId!==q)return;nt(ze.clientX,ze.clientY,()=>ze.preventDefault())}catch{}}function wt(ze){try{if(q==null||ze.pointerId!==q)return}catch{}H=!1,q=null,se=null,W=!1,te=!1}function ce(ze){try{if(se!=null||q!=null||!ze.touches||ze.touches.length!==1)return;const Pe=ze.touches[0];ct(Pe.clientX,Pe.clientY,ze.target,null,Pe.identifier)}catch{}}function Ee(ze){try{if(!H||se==null)return;const Pe=Array.from(ze.touches||[]).find(it=>it.identifier===se);if(!Pe)return;nt(Pe.clientX,Pe.clientY,()=>ze.preventDefault())}catch{}}function Ke(ze){try{if(se==null||Array.from(ze.touches||[]).some(it=>it.identifier===se))return}catch{}H=!1,q=null,se=null,W=!1,te=!1}return document.addEventListener("pointerdown",At,{capture:!0}),document.addEventListener("pointermove",Bt,{capture:!0,passive:!1}),document.addEventListener("pointerup",wt,{capture:!0}),document.addEventListener("pointercancel",wt,{capture:!0}),document.addEventListener("touchstart",ce,{capture:!0,passive:!0}),document.addEventListener("touchmove",Ee,{capture:!0,passive:!1}),document.addEventListener("touchend",Ke,{capture:!0}),document.addEventListener("touchcancel",Ke,{capture:!0}),()=>{document.removeEventListener("pointerdown",At,{capture:!0}),document.removeEventListener("pointermove",Bt,{capture:!0}),document.removeEventListener("pointerup",wt,{capture:!0}),document.removeEventListener("pointercancel",wt,{capture:!0}),document.removeEventListener("touchstart",ce,{capture:!0}),document.removeEventListener("touchmove",Ee,{capture:!0}),document.removeEventListener("touchend",Ke,{capture:!0}),document.removeEventListener("touchcancel",Ke,{capture:!0})}},[f,u]),t?h.jsxs("div",{className:"app-root"+(f?" phone":"")+(u?" drawer-open":""),children:[h.jsx(E_,{onToggleSidebar:()=>{f?d(H=>!H):c(H=>!H)},searchQuery:m,onSearchChange:g}),h.jsxs("div",{className:"app-body",children:[!f&&h.jsx(nS,{selectedLabelIds:n,onToggleLabel:X,onClearLabels:L,collapsed:a,collectionStack:o,onCollectionStackChange:l,sortConfig:y,onSortConfigChange:v}),h.jsx("main",{className:"main-area",children:h.jsx(CN,{selectedLabelIds:n,selectedCollectionId:w,collectionStack:o,selectedCollaboratorId:i,searchQuery:m,sortConfig:y,onClearAllFilters:N,onSetSelectedLabelIds:r,onSetSelectedCollaboratorId:s,onSelectCollectionById:z,onSetCollectionStack:l,onSetSearchQuery:g,onSortConfigChange:v})})]}),f&&h.jsxs(h.Fragment,{children:[u&&h.jsx("div",{className:"mobile-sidebar-backdrop",role:"button","aria-label":"Close menu",tabIndex:0,onClick:()=>d(!1),onKeyDown:H=>{(H.key==="Enter"||H.key===" ")&&d(!1)}}),h.jsx("div",{className:"mobile-sidebar-drawer"+(u?" open":""),"aria-hidden":!u,children:h.jsx(nS,{selectedLabelIds:n,onToggleLabel:X,onClearLabels:L,collapsed:!1,collectionStack:o,onCollectionStackChange:l,sortConfig:y,onSortConfigChange:v,onRequestClose:()=>d(!1)})})]})]}):h.jsx("div",{className:"app-root",style:{minHeight:"100vh"},children:h.jsx("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},children:h.jsx(CN,{})})})}function XJ(){try{const t=document.documentElement,e={"prefs.checklistSpacing":"--checklist-gap","prefs.checkboxSize":"--checklist-checkbox-size","prefs.checklistTextSize":"--checklist-text-size","prefs.noteWidth":"--note-card-width","prefs.imageThumbSize":"--image-thumb-size","prefs.fontFamily":"--app-font-family","prefs.noteLineSpacing":"--note-line-height"},n=new Set(["prefs.checklistSpacing","prefs.checkboxSize","prefs.checklistTextSize","prefs.noteWidth","prefs.imageThumbSize"]);Object.entries(e).forEach(([r,i])=>{const s=localStorage.getItem(r);s===null||s===""||(n.has(r)?/[^0-9.-]/.test(s)?t.style.setProperty(i,s):t.style.setProperty(i,`${s}px`):t.style.setProperty(i,s))});try{window.dispatchEvent(new Event("notes-grid:recalc"))}catch{}}catch(t){console.warn("Failed to apply saved prefs",t)}}XJ();try{"serviceWorker"in navigator&&navigator.serviceWorker.getRegistrations().then(t=>{t.forEach(e=>{try{e.unregister()}catch{}})}).catch(()=>{})}catch{}const QJ=zA(document.getElementById("root"));QJ.render(h.jsx(JJ,{})); diff --git a/client-dist/assets/index-DwDMtocl.js b/client-dist/assets/index-DwDMtocl.js new file mode 100644 index 0000000..3e99cd8 --- /dev/null +++ b/client-dist/assets/index-DwDMtocl.js @@ -0,0 +1,769 @@ +var Uj=Object.defineProperty;var Hj=(t,e,n)=>e in t?Uj(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var xf=(t,e,n)=>Hj(t,typeof e!="symbol"?e+"":e,n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();function ON(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var jN={exports:{}},Mm={},PN={exports:{}},Xt={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Fd=Symbol.for("react.element"),Vj=Symbol.for("react.portal"),Wj=Symbol.for("react.fragment"),Kj=Symbol.for("react.strict_mode"),Yj=Symbol.for("react.profiler"),qj=Symbol.for("react.provider"),Jj=Symbol.for("react.context"),Gj=Symbol.for("react.forward_ref"),Xj=Symbol.for("react.suspense"),Qj=Symbol.for("react.memo"),Zj=Symbol.for("react.lazy"),Y1=Symbol.iterator;function eP(t){return t===null||typeof t!="object"?null:(t=Y1&&t[Y1]||t["@@iterator"],typeof t=="function"?t:null)}var LN={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_N=Object.assign,zN={};function Ic(t,e,n){this.props=t,this.context=e,this.refs=zN,this.updater=n||LN}Ic.prototype.isReactComponent={};Ic.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};Ic.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function FN(){}FN.prototype=Ic.prototype;function jb(t,e,n){this.props=t,this.context=e,this.refs=zN,this.updater=n||LN}var Pb=jb.prototype=new FN;Pb.constructor=jb;_N(Pb,Ic.prototype);Pb.isPureReactComponent=!0;var q1=Array.isArray,$N=Object.prototype.hasOwnProperty,Lb={current:null},BN={key:!0,ref:!0,__self:!0,__source:!0};function UN(t,e,n){var r,i={},s=null,o=null;if(e!=null)for(r in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)$N.call(e,r)&&!BN.hasOwnProperty(r)&&(i[r]=e[r]);var l=arguments.length-2;if(l===1)i.children=n;else if(1>>1,W=J[fe];if(0>>1;fei(Y,ue))Zei(Pt,Y)?(J[fe]=Pt,J[Ze]=ue,fe=Ze):(J[fe]=Y,J[Ye]=ue,fe=Ye);else if(Zei(Pt,ue))J[fe]=Pt,J[Ze]=ue,fe=Ze;else break e}}return me}function i(J,me){var ue=J.sortIndex-me.sortIndex;return ue!==0?ue:J.id-me.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var a=[],c=[],u=1,d=null,h=3,p=!1,m=!1,g=!1,v=typeof setTimeout=="function"?setTimeout:null,y=typeof clearTimeout=="function"?clearTimeout:null,b=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function x(J){for(var me=n(c);me!==null;){if(me.callback===null)r(c);else if(me.startTime<=J)r(c),me.sortIndex=me.expirationTime,e(a,me);else break;me=n(c)}}function C(J){if(g=!1,x(J),!m)if(n(a)!==null)m=!0,se(S);else{var me=n(c);me!==null&&he(C,me.startTime-J)}}function S(J,me){m=!1,g&&(g=!1,y(z),z=-1),p=!0;var ue=h;try{for(x(me),d=n(a);d!==null&&(!(d.expirationTime>me)||J&&!q());){var fe=d.callback;if(typeof fe=="function"){d.callback=null,h=d.priorityLevel;var W=fe(d.expirationTime<=me);me=t.unstable_now(),typeof W=="function"?d.callback=W:d===n(a)&&r(a),x(me)}else r(a);d=n(a)}if(d!==null)var Le=!0;else{var Ye=n(c);Ye!==null&&he(C,Ye.startTime-me),Le=!1}return Le}finally{d=null,h=ue,p=!1}}var M=!1,N=null,z=-1,ee=5,L=-1;function q(){return!(t.unstable_now()-LJ||125fe?(J.sortIndex=ue,e(c,J),n(a)===null&&J===n(c)&&(g?(y(z),z=-1):g=!0,he(C,ue-fe))):(J.sortIndex=W,e(a,J),m||p||(m=!0,se(S))),J},t.unstable_shouldYield=q,t.unstable_wrapCallback=function(J){var me=h;return function(){var ue=h;h=me;try{return J.apply(this,arguments)}finally{h=ue}}}})(YN);KN.exports=YN;var dP=KN.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var fP=w,pi=dP;function Ie(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wv=Object.prototype.hasOwnProperty,hP=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,G1={},X1={};function pP(t){return wv.call(X1,t)?!0:wv.call(G1,t)?!1:hP.test(t)?X1[t]=!0:(G1[t]=!0,!1)}function mP(t,e,n,r){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function gP(t,e,n,r){if(e===null||typeof e>"u"||mP(t,e,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Yr(t,e,n,r,i,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var wr={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){wr[t]=new Yr(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];wr[e]=new Yr(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){wr[t]=new Yr(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){wr[t]=new Yr(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){wr[t]=new Yr(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){wr[t]=new Yr(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){wr[t]=new Yr(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){wr[t]=new Yr(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){wr[t]=new Yr(t,5,!1,t.toLowerCase(),null,!1,!1)});var zb=/[\-:]([a-z])/g;function Fb(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(zb,Fb);wr[e]=new Yr(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(zb,Fb);wr[e]=new Yr(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(zb,Fb);wr[e]=new Yr(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){wr[t]=new Yr(t,1,!1,t.toLowerCase(),null,!1,!1)});wr.xlinkHref=new Yr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){wr[t]=new Yr(t,1,!1,t.toLowerCase(),null,!0,!0)});function $b(t,e,n,r){var i=wr.hasOwnProperty(e)?wr[e]:null;(i!==null?i.type!==0:r||!(2l||i[o]!==s[l]){var a=` +`+i[o].replace(" at new "," at ");return t.displayName&&a.includes("")&&(a=a.replace("",t.displayName)),a}while(1<=o&&0<=l);break}}}finally{Hg=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?cu(t):""}function yP(t){switch(t.tag){case 5:return cu(t.type);case 16:return cu("Lazy");case 13:return cu("Suspense");case 19:return cu("SuspenseList");case 0:case 2:case 15:return t=Vg(t.type,!1),t;case 11:return t=Vg(t.type.render,!1),t;case 1:return t=Vg(t.type,!0),t;default:return""}}function Cv(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case Ma:return"Fragment";case Aa:return"Portal";case xv:return"Profiler";case Bb:return"StrictMode";case kv:return"Suspense";case Sv:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case GN:return(t.displayName||"Context")+".Consumer";case JN:return(t._context.displayName||"Context")+".Provider";case Ub:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case Hb:return e=t.displayName||null,e!==null?e:Cv(t.type)||"Memo";case To:e=t._payload,t=t._init;try{return Cv(t(e))}catch{}}return null}function vP(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Cv(e);case 8:return e===Bb?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function rl(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function QN(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function bP(t){var e=QN(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),r=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,s=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function Cf(t){t._valueTracker||(t._valueTracker=bP(t))}function ZN(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),r="";return t&&(r=QN(t)?t.checked?"true":"false":t.value),t=r,t!==n?(e.setValue(t),!0):!1}function Fh(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Ev(t,e){var n=e.checked;return Rn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??t._wrapperState.initialChecked})}function Z1(t,e){var n=e.defaultValue==null?"":e.defaultValue,r=e.checked!=null?e.checked:e.defaultChecked;n=rl(e.value!=null?e.value:n),t._wrapperState={initialChecked:r,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function eT(t,e){e=e.checked,e!=null&&$b(t,"checked",e,!1)}function Nv(t,e){eT(t,e);var n=rl(e.value),r=e.type;if(n!=null)r==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(r==="submit"||r==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?Tv(t,e.type,n):e.hasOwnProperty("defaultValue")&&Tv(t,e.type,rl(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function ek(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var r=e.type;if(!(r!=="submit"&&r!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function Tv(t,e,n){(e!=="number"||Fh(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var uu=Array.isArray;function Ua(t,e,n,r){if(t=t.options,e){e={};for(var i=0;i"+e.valueOf().toString()+"",e=Ef.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function qu(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var bu={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},wP=["Webkit","ms","Moz","O"];Object.keys(bu).forEach(function(t){wP.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),bu[e]=bu[t]})});function iT(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||bu.hasOwnProperty(t)&&bu[t]?(""+e).trim():e+"px"}function sT(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=iT(n,e[n],r);n==="float"&&(n="cssFloat"),r?t.setProperty(n,i):t[n]=i}}var xP=Rn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Iv(t,e){if(e){if(xP[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(Ie(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(Ie(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(Ie(61))}if(e.style!=null&&typeof e.style!="object")throw Error(Ie(62))}}function Rv(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Dv=null;function Vb(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var Ov=null,Ha=null,Va=null;function rk(t){if(t=Ud(t)){if(typeof Ov!="function")throw Error(Ie(280));var e=t.stateNode;e&&(e=jm(e),Ov(t.stateNode,t.type,e))}}function oT(t){Ha?Va?Va.push(t):Va=[t]:Ha=t}function lT(){if(Ha){var t=Ha,e=Va;if(Va=Ha=null,rk(t),e)for(t=0;t>>=0,t===0?32:31-(DP(t)/OP|0)|0}var Nf=64,Tf=4194304;function du(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Hh(t,e){var n=t.pendingLanes;if(n===0)return 0;var r=0,i=t.suspendedLanes,s=t.pingedLanes,o=n&268435455;if(o!==0){var l=o&~i;l!==0?r=du(l):(s&=o,s!==0&&(r=du(s)))}else o=n&~i,o!==0?r=du(o):s!==0&&(r=du(s));if(r===0)return 0;if(e!==0&&e!==r&&!(e&i)&&(i=r&-r,s=e&-e,i>=s||i===16&&(s&4194240)!==0))return e;if(r&4&&(r|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=r;0n;n++)e.push(t);return e}function $d(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-Xi(e),t[e]=n}function _P(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var r=t.eventTimes;for(t=t.expirationTimes;0=xu),fk=" ",hk=!1;function TT(t,e){switch(t){case"keyup":return dL.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function AT(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Ia=!1;function hL(t,e){switch(t){case"compositionend":return AT(e);case"keypress":return e.which!==32?null:(hk=!0,fk);case"textInput":return t=e.data,t===fk&&hk?null:t;default:return null}}function pL(t,e){if(Ia)return t==="compositionend"||!Qb&&TT(t,e)?(t=ET(),fh=Jb=zo=null,Ia=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=yk(n)}}function DT(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?DT(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function OT(){for(var t=window,e=Fh();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=Fh(t.document)}return e}function Zb(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function SL(t){var e=OT(),n=t.focusedElem,r=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&DT(n.ownerDocument.documentElement,n)){if(r!==null&&Zb(n)){if(e=r.start,t=r.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!t.extend&&s>r&&(i=r,r=s,s=i),i=vk(n,s);var o=vk(n,r);i&&o&&(t.rangeCount!==1||t.anchorNode!==i.node||t.anchorOffset!==i.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(i.node,i.offset),t.removeAllRanges(),s>r?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Ra=null,Fv=null,Su=null,$v=!1;function bk(t,e,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;$v||Ra==null||Ra!==Fh(r)||(r=Ra,"selectionStart"in r&&Zb(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Su&&ed(Su,r)||(Su=r,r=Kh(Fv,"onSelect"),0ja||(t.current=Kv[ja],Kv[ja]=null,ja--)}function wn(t,e){ja++,Kv[ja]=t.current,t.current=e}var il={},Rr=gl(il),ei=gl(!1),Wl=il;function oc(t,e){var n=t.type.contextTypes;if(!n)return il;var r=t.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===e)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=e[s];return r&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=i),i}function ti(t){return t=t.childContextTypes,t!=null}function qh(){Sn(ei),Sn(Rr)}function Nk(t,e,n){if(Rr.current!==il)throw Error(Ie(168));wn(Rr,e),wn(ei,n)}function UT(t,e,n){var r=t.stateNode;if(e=e.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in e))throw Error(Ie(108,vP(t)||"Unknown",i));return Rn({},n,r)}function Jh(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||il,Wl=Rr.current,wn(Rr,t),wn(ei,ei.current),!0}function Tk(t,e,n){var r=t.stateNode;if(!r)throw Error(Ie(169));n?(t=UT(t,e,Wl),r.__reactInternalMemoizedMergedChildContext=t,Sn(ei),Sn(Rr),wn(Rr,t)):Sn(ei),wn(ei,n)}var Vs=null,Pm=!1,iy=!1;function HT(t){Vs===null?Vs=[t]:Vs.push(t)}function PL(t){Pm=!0,HT(t)}function yl(){if(!iy&&Vs!==null){iy=!0;var t=0,e=un;try{var n=Vs;for(un=1;t>=o,i-=o,Ys=1<<32-Xi(e)+i|n<z?(ee=N,N=null):ee=N.sibling;var L=h(y,N,x[z],C);if(L===null){N===null&&(N=ee);break}t&&N&&L.alternate===null&&e(y,N),b=s(L,b,z),M===null?S=L:M.sibling=L,M=L,N=ee}if(z===x.length)return n(y,N),Tn&&Sl(y,z),S;if(N===null){for(;zz?(ee=N,N=null):ee=N.sibling;var q=h(y,N,L.value,C);if(q===null){N===null&&(N=ee);break}t&&N&&q.alternate===null&&e(y,N),b=s(q,b,z),M===null?S=q:M.sibling=q,M=q,N=ee}if(L.done)return n(y,N),Tn&&Sl(y,z),S;if(N===null){for(;!L.done;z++,L=x.next())L=d(y,L.value,C),L!==null&&(b=s(L,b,z),M===null?S=L:M.sibling=L,M=L);return Tn&&Sl(y,z),S}for(N=r(y,N);!L.done;z++,L=x.next())L=p(N,y,z,L.value,C),L!==null&&(t&&L.alternate!==null&&N.delete(L.key===null?z:L.key),b=s(L,b,z),M===null?S=L:M.sibling=L,M=L);return t&&N.forEach(function(X){return e(y,X)}),Tn&&Sl(y,z),S}function v(y,b,x,C){if(typeof x=="object"&&x!==null&&x.type===Ma&&x.key===null&&(x=x.props.children),typeof x=="object"&&x!==null){switch(x.$$typeof){case Sf:e:{for(var S=x.key,M=b;M!==null;){if(M.key===S){if(S=x.type,S===Ma){if(M.tag===7){n(y,M.sibling),b=i(M,x.props.children),b.return=y,y=b;break e}}else if(M.elementType===S||typeof S=="object"&&S!==null&&S.$$typeof===To&&Ik(S)===M.type){n(y,M.sibling),b=i(M,x.props),b.ref=Qc(y,M,x),b.return=y,y=b;break e}n(y,M);break}else e(y,M);M=M.sibling}x.type===Ma?(b=_l(x.props.children,y.mode,C,x.key),b.return=y,y=b):(C=wh(x.type,x.key,x.props,null,y.mode,C),C.ref=Qc(y,b,x),C.return=y,y=C)}return o(y);case Aa:e:{for(M=x.key;b!==null;){if(b.key===M)if(b.tag===4&&b.stateNode.containerInfo===x.containerInfo&&b.stateNode.implementation===x.implementation){n(y,b.sibling),b=i(b,x.children||[]),b.return=y,y=b;break e}else{n(y,b);break}else e(y,b);b=b.sibling}b=fy(x,y.mode,C),b.return=y,y=b}return o(y);case To:return M=x._init,v(y,b,M(x._payload),C)}if(uu(x))return m(y,b,x,C);if(Yc(x))return g(y,b,x,C);jf(y,x)}return typeof x=="string"&&x!==""||typeof x=="number"?(x=""+x,b!==null&&b.tag===6?(n(y,b.sibling),b=i(b,x),b.return=y,y=b):(n(y,b),b=dy(x,y.mode,C),b.return=y,y=b),o(y)):n(y,b)}return v}var ac=YT(!0),qT=YT(!1),Qh=gl(null),Zh=null,_a=null,rw=null;function iw(){rw=_a=Zh=null}function sw(t){var e=Qh.current;Sn(Qh),t._currentValue=e}function Jv(t,e,n){for(;t!==null;){var r=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,r!==null&&(r.childLanes|=e)):r!==null&&(r.childLanes&e)!==e&&(r.childLanes|=e),t===n)break;t=t.return}}function Ka(t,e){Zh=t,rw=_a=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&e&&(Zr=!0),t.firstContext=null)}function ji(t){var e=t._currentValue;if(rw!==t)if(t={context:t,memoizedValue:e,next:null},_a===null){if(Zh===null)throw Error(Ie(308));_a=t,Zh.dependencies={lanes:0,firstContext:t}}else _a=_a.next=t;return e}var Ml=null;function ow(t){Ml===null?Ml=[t]:Ml.push(t)}function JT(t,e,n,r){var i=e.interleaved;return i===null?(n.next=n,ow(e)):(n.next=i.next,i.next=n),e.interleaved=n,so(t,r)}function so(t,e){t.lanes|=e;var n=t.alternate;for(n!==null&&(n.lanes|=e),n=t,t=t.return;t!==null;)t.childLanes|=e,n=t.alternate,n!==null&&(n.childLanes|=e),n=t,t=t.return;return n.tag===3?n.stateNode:null}var Ao=!1;function lw(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function GT(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Qs(t,e){return{eventTime:t,lane:e,tag:0,payload:null,callback:null,next:null}}function qo(t,e,n){var r=t.updateQueue;if(r===null)return null;if(r=r.shared,en&2){var i=r.pending;return i===null?e.next=e:(e.next=i.next,i.next=e),r.pending=e,so(t,n)}return i=r.interleaved,i===null?(e.next=e,ow(r)):(e.next=i.next,i.next=e),r.interleaved=e,so(t,n)}function ph(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194240)!==0)){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,Kb(t,n)}}function Rk(t,e){var n=t.updateQueue,r=t.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?i=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?i=s=e:s=s.next=e}else i=s=e;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:s,shared:r.shared,effects:r.effects},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}function ep(t,e,n,r){var i=t.updateQueue;Ao=!1;var s=i.firstBaseUpdate,o=i.lastBaseUpdate,l=i.shared.pending;if(l!==null){i.shared.pending=null;var a=l,c=a.next;a.next=null,o===null?s=c:o.next=c,o=a;var u=t.alternate;u!==null&&(u=u.updateQueue,l=u.lastBaseUpdate,l!==o&&(l===null?u.firstBaseUpdate=c:l.next=c,u.lastBaseUpdate=a))}if(s!==null){var d=i.baseState;o=0,u=c=a=null,l=s;do{var h=l.lane,p=l.eventTime;if((r&h)===h){u!==null&&(u=u.next={eventTime:p,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=t,g=l;switch(h=e,p=n,g.tag){case 1:if(m=g.payload,typeof m=="function"){d=m.call(p,d,h);break e}d=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,h=typeof m=="function"?m.call(p,d,h):m,h==null)break e;d=Rn({},d,h);break e;case 2:Ao=!0}}l.callback!==null&&l.lane!==0&&(t.flags|=64,h=i.effects,h===null?i.effects=[l]:h.push(l))}else p={eventTime:p,lane:h,tag:l.tag,payload:l.payload,callback:l.callback,next:null},u===null?(c=u=p,a=d):u=u.next=p,o|=h;if(l=l.next,l===null){if(l=i.shared.pending,l===null)break;h=l,l=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);if(u===null&&(a=d),i.baseState=a,i.firstBaseUpdate=c,i.lastBaseUpdate=u,e=i.shared.interleaved,e!==null){i=e;do o|=i.lane,i=i.next;while(i!==e)}else s===null&&(i.shared.lanes=0);ql|=o,t.lanes=o,t.memoizedState=d}}function Dk(t,e,n){if(t=e.effects,e.effects=null,t!==null)for(e=0;en?n:4,t(!0);var r=oy.transition;oy.transition={};try{t(!1),e()}finally{un=n,oy.transition=r}}function hA(){return Pi().memoizedState}function FL(t,e,n){var r=Go(t);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},pA(t))mA(e,n);else if(n=JT(t,e,n,r),n!==null){var i=$r();Qi(n,t,r,i),gA(n,e,r)}}function $L(t,e,n){var r=Go(t),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(pA(t))mA(e,i);else{var s=t.alternate;if(t.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,l=s(o,n);if(i.hasEagerState=!0,i.eagerState=l,es(l,o)){var a=e.interleaved;a===null?(i.next=i,ow(e)):(i.next=a.next,a.next=i),e.interleaved=i;return}}catch{}finally{}n=JT(t,e,i,r),n!==null&&(i=$r(),Qi(n,t,r,i),gA(n,e,r))}}function pA(t){var e=t.alternate;return t===In||e!==null&&e===In}function mA(t,e){Cu=np=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function gA(t,e,n){if(n&4194240){var r=e.lanes;r&=t.pendingLanes,n|=r,e.lanes=n,Kb(t,n)}}var rp={readContext:ji,useCallback:Cr,useContext:Cr,useEffect:Cr,useImperativeHandle:Cr,useInsertionEffect:Cr,useLayoutEffect:Cr,useMemo:Cr,useReducer:Cr,useRef:Cr,useState:Cr,useDebugValue:Cr,useDeferredValue:Cr,useTransition:Cr,useMutableSource:Cr,useSyncExternalStore:Cr,useId:Cr,unstable_isNewReconciler:!1},BL={readContext:ji,useCallback:function(t,e){return ms().memoizedState=[t,e===void 0?null:e],t},useContext:ji,useEffect:jk,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,gh(4194308,4,aA.bind(null,e,t),n)},useLayoutEffect:function(t,e){return gh(4194308,4,t,e)},useInsertionEffect:function(t,e){return gh(4,2,t,e)},useMemo:function(t,e){var n=ms();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var r=ms();return e=n!==void 0?n(e):e,r.memoizedState=r.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},r.queue=t,t=t.dispatch=FL.bind(null,In,t),[r.memoizedState,t]},useRef:function(t){var e=ms();return t={current:t},e.memoizedState=t},useState:Ok,useDebugValue:mw,useDeferredValue:function(t){return ms().memoizedState=t},useTransition:function(){var t=Ok(!1),e=t[0];return t=zL.bind(null,t[1]),ms().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var r=In,i=ms();if(Tn){if(n===void 0)throw Error(Ie(407));n=n()}else{if(n=e(),ar===null)throw Error(Ie(349));Yl&30||eA(r,e,n)}i.memoizedState=n;var s={value:n,getSnapshot:e};return i.queue=s,jk(nA.bind(null,r,s,t),[t]),r.flags|=2048,ad(9,tA.bind(null,r,s,n,e),void 0,null),n},useId:function(){var t=ms(),e=ar.identifierPrefix;if(Tn){var n=qs,r=Ys;n=(r&~(1<<32-Xi(r)-1)).toString(32)+n,e=":"+e+"R"+n,n=od++,0<\/script>",t=t.removeChild(t.firstChild)):typeof r.is=="string"?t=o.createElement(n,{is:r.is}):(t=o.createElement(n),n==="select"&&(o=t,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):t=o.createElementNS(t,n),t[vs]=e,t[rd]=r,NA(t,e,!1,!1),e.stateNode=t;e:{switch(o=Rv(n,r),n){case"dialog":xn("cancel",t),xn("close",t),i=r;break;case"iframe":case"object":case"embed":xn("load",t),i=r;break;case"video":case"audio":for(i=0;idc&&(e.flags|=128,r=!0,Zc(s,!1),e.lanes=4194304)}else{if(!r)if(t=tp(o),t!==null){if(e.flags|=128,r=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),Zc(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!Tn)return Er(e),null}else 2*_n()-s.renderingStartTime>dc&&n!==1073741824&&(e.flags|=128,r=!0,Zc(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(n=s.last,n!==null?n.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=_n(),e.sibling=null,n=An.current,wn(An,r?n&1|2:n&1),e):(Er(e),null);case 22:case 23:return xw(),r=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==r&&(e.flags|=8192),r&&e.mode&1?ci&1073741824&&(Er(e),e.subtreeFlags&6&&(e.flags|=8192)):Er(e),null;case 24:return null;case 25:return null}throw Error(Ie(156,e.tag))}function JL(t,e){switch(tw(e),e.tag){case 1:return ti(e.type)&&qh(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return cc(),Sn(ei),Sn(Rr),uw(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return cw(e),null;case 13:if(Sn(An),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(Ie(340));lc()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return Sn(An),null;case 4:return cc(),null;case 10:return sw(e.type._context),null;case 22:case 23:return xw(),null;case 24:return null;default:return null}}var Lf=!1,Ar=!1,GL=typeof WeakSet=="function"?WeakSet:Set,Ge=null;function za(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){On(t,e,r)}else n.current=null}function i0(t,e,n){try{n()}catch(r){On(t,e,r)}}var Wk=!1;function XL(t,e){if(Bv=Vh,t=OT(),Zb(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,l=-1,a=-1,c=0,u=0,d=t,h=null;t:for(;;){for(var p;d!==n||i!==0&&d.nodeType!==3||(l=o+i),d!==s||r!==0&&d.nodeType!==3||(a=o+r),d.nodeType===3&&(o+=d.nodeValue.length),(p=d.firstChild)!==null;)h=d,d=p;for(;;){if(d===t)break t;if(h===n&&++c===i&&(l=o),h===s&&++u===r&&(a=o),(p=d.nextSibling)!==null)break;d=h,h=d.parentNode}d=p}n=l===-1||a===-1?null:{start:l,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(Uv={focusedElem:t,selectionRange:n},Vh=!1,Ge=e;Ge!==null;)if(e=Ge,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,Ge=t;else for(;Ge!==null;){e=Ge;try{var m=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var g=m.memoizedProps,v=m.memoizedState,y=e.stateNode,b=y.getSnapshotBeforeUpdate(e.elementType===e.type?g:Wi(e.type,g),v);y.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var x=e.stateNode.containerInfo;x.nodeType===1?x.textContent="":x.nodeType===9&&x.documentElement&&x.removeChild(x.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ie(163))}}catch(C){On(e,e.return,C)}if(t=e.sibling,t!==null){t.return=e.return,Ge=t;break}Ge=e.return}return m=Wk,Wk=!1,m}function Eu(t,e,n){var r=e.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&t)===t){var s=i.destroy;i.destroy=void 0,s!==void 0&&i0(e,n,s)}i=i.next}while(i!==r)}}function zm(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var r=n.create;n.destroy=r()}n=n.next}while(n!==e)}}function s0(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function MA(t){var e=t.alternate;e!==null&&(t.alternate=null,MA(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[vs],delete e[rd],delete e[Wv],delete e[OL],delete e[jL])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function IA(t){return t.tag===5||t.tag===3||t.tag===4}function Kk(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||IA(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function o0(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=Yh));else if(r!==4&&(t=t.child,t!==null))for(o0(t,e,n),t=t.sibling;t!==null;)o0(t,e,n),t=t.sibling}function l0(t,e,n){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(r!==4&&(t=t.child,t!==null))for(l0(t,e,n),t=t.sibling;t!==null;)l0(t,e,n),t=t.sibling}var pr=null,Ki=!1;function So(t,e,n){for(n=n.child;n!==null;)RA(t,e,n),n=n.sibling}function RA(t,e,n){if(ks&&typeof ks.onCommitFiberUnmount=="function")try{ks.onCommitFiberUnmount(Im,n)}catch{}switch(n.tag){case 5:Ar||za(n,e);case 6:var r=pr,i=Ki;pr=null,So(t,e,n),pr=r,Ki=i,pr!==null&&(Ki?(t=pr,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):pr.removeChild(n.stateNode));break;case 18:pr!==null&&(Ki?(t=pr,n=n.stateNode,t.nodeType===8?ry(t.parentNode,n):t.nodeType===1&&ry(t,n),Qu(t)):ry(pr,n.stateNode));break;case 4:r=pr,i=Ki,pr=n.stateNode.containerInfo,Ki=!0,So(t,e,n),pr=r,Ki=i;break;case 0:case 11:case 14:case 15:if(!Ar&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&i0(n,e,o),i=i.next}while(i!==r)}So(t,e,n);break;case 1:if(!Ar&&(za(n,e),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){On(n,e,l)}So(t,e,n);break;case 21:So(t,e,n);break;case 22:n.mode&1?(Ar=(r=Ar)||n.memoizedState!==null,So(t,e,n),Ar=r):So(t,e,n);break;default:So(t,e,n)}}function Yk(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new GL),e.forEach(function(r){var i=o_.bind(null,t,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Hi(t,e){var n=e.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~s}if(r=i,r=_n()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ZL(r/1960))-r,10t?16:t,Fo===null)var r=!1;else{if(t=Fo,Fo=null,op=0,en&6)throw Error(Ie(331));var i=en;for(en|=4,Ge=t.current;Ge!==null;){var s=Ge,o=s.child;if(Ge.flags&16){var l=s.deletions;if(l!==null){for(var a=0;a_n()-bw?Ll(t,0):vw|=n),ni(t,e)}function FA(t,e){e===0&&(t.mode&1?(e=Tf,Tf<<=1,!(Tf&130023424)&&(Tf=4194304)):e=1);var n=$r();t=so(t,e),t!==null&&($d(t,e,n),ni(t,n))}function s_(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),FA(t,n)}function o_(t,e){var n=0;switch(t.tag){case 13:var r=t.stateNode,i=t.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=t.stateNode;break;default:throw Error(Ie(314))}r!==null&&r.delete(e),FA(t,n)}var $A;$A=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||ei.current)Zr=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return Zr=!1,YL(t,e,n);Zr=!!(t.flags&131072)}else Zr=!1,Tn&&e.flags&1048576&&VT(e,Xh,e.index);switch(e.lanes=0,e.tag){case 2:var r=e.type;yh(t,e),t=e.pendingProps;var i=oc(e,Rr.current);Ka(e,n),i=fw(null,e,r,t,i,n);var s=hw();return e.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,ti(r)?(s=!0,Jh(e)):s=!1,e.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,lw(e),i.updater=_m,e.stateNode=i,i._reactInternals=e,Xv(e,r,t,n),e=e0(null,e,r,!0,s,n)):(e.tag=0,Tn&&s&&ew(e),_r(null,e,i,n),e=e.child),e;case 16:r=e.elementType;e:{switch(yh(t,e),t=e.pendingProps,i=r._init,r=i(r._payload),e.type=r,i=e.tag=a_(r),t=Wi(r,t),i){case 0:e=Zv(null,e,r,t,n);break e;case 1:e=Uk(null,e,r,t,n);break e;case 11:e=$k(null,e,r,t,n);break e;case 14:e=Bk(null,e,r,Wi(r.type,t),n);break e}throw Error(Ie(306,r,""))}return e;case 0:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Wi(r,i),Zv(t,e,r,i,n);case 1:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Wi(r,i),Uk(t,e,r,i,n);case 3:e:{if(SA(e),t===null)throw Error(Ie(387));r=e.pendingProps,s=e.memoizedState,i=s.element,GT(t,e),ep(e,r,null,n);var o=e.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){i=uc(Error(Ie(423)),e),e=Hk(t,e,r,n,i);break e}else if(r!==i){i=uc(Error(Ie(424)),e),e=Hk(t,e,r,n,i);break e}else for(di=Yo(e.stateNode.containerInfo.firstChild),fi=e,Tn=!0,Yi=null,n=qT(e,null,r,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(lc(),r===i){e=oo(t,e,n);break e}_r(t,e,r,n)}e=e.child}return e;case 5:return XT(e),t===null&&qv(e),r=e.type,i=e.pendingProps,s=t!==null?t.memoizedProps:null,o=i.children,Hv(r,i)?o=null:s!==null&&Hv(r,s)&&(e.flags|=32),kA(t,e),_r(t,e,o,n),e.child;case 6:return t===null&&qv(e),null;case 13:return CA(t,e,n);case 4:return aw(e,e.stateNode.containerInfo),r=e.pendingProps,t===null?e.child=ac(e,null,r,n):_r(t,e,r,n),e.child;case 11:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Wi(r,i),$k(t,e,r,i,n);case 7:return _r(t,e,e.pendingProps,n),e.child;case 8:return _r(t,e,e.pendingProps.children,n),e.child;case 12:return _r(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(r=e.type._context,i=e.pendingProps,s=e.memoizedProps,o=i.value,wn(Qh,r._currentValue),r._currentValue=o,s!==null)if(es(s.value,o)){if(s.children===i.children&&!ei.current){e=oo(t,e,n);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var l=s.dependencies;if(l!==null){o=s.child;for(var a=l.firstContext;a!==null;){if(a.context===r){if(s.tag===1){a=Qs(-1,n&-n),a.tag=2;var c=s.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?a.next=a:(a.next=u.next,u.next=a),c.pending=a}}s.lanes|=n,a=s.alternate,a!==null&&(a.lanes|=n),Jv(s.return,n,e),l.lanes|=n;break}a=a.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(Ie(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Jv(o,n,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}_r(t,e,i.children,n),e=e.child}return e;case 9:return i=e.type,r=e.pendingProps.children,Ka(e,n),i=ji(i),r=r(i),e.flags|=1,_r(t,e,r,n),e.child;case 14:return r=e.type,i=Wi(r,e.pendingProps),i=Wi(r.type,i),Bk(t,e,r,i,n);case 15:return wA(t,e,e.type,e.pendingProps,n);case 17:return r=e.type,i=e.pendingProps,i=e.elementType===r?i:Wi(r,i),yh(t,e),e.tag=1,ti(r)?(t=!0,Jh(e)):t=!1,Ka(e,n),yA(e,r,i),Xv(e,r,i,n),e0(null,e,r,!0,t,n);case 19:return EA(t,e,n);case 22:return xA(t,e,n)}throw Error(Ie(156,e.tag))};function BA(t,e){return pT(t,e)}function l_(t,e,n,r){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Mi(t,e,n,r){return new l_(t,e,n,r)}function Sw(t){return t=t.prototype,!(!t||!t.isReactComponent)}function a_(t){if(typeof t=="function")return Sw(t)?1:0;if(t!=null){if(t=t.$$typeof,t===Ub)return 11;if(t===Hb)return 14}return 2}function Xo(t,e){var n=t.alternate;return n===null?(n=Mi(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function wh(t,e,n,r,i,s){var o=2;if(r=t,typeof t=="function")Sw(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case Ma:return _l(n.children,i,s,e);case Bb:o=8,i|=8;break;case xv:return t=Mi(12,n,e,i|2),t.elementType=xv,t.lanes=s,t;case kv:return t=Mi(13,n,e,i),t.elementType=kv,t.lanes=s,t;case Sv:return t=Mi(19,n,e,i),t.elementType=Sv,t.lanes=s,t;case XN:return $m(n,i,s,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case JN:o=10;break e;case GN:o=9;break e;case Ub:o=11;break e;case Hb:o=14;break e;case To:o=16,r=null;break e}throw Error(Ie(130,t==null?t:typeof t,""))}return e=Mi(o,n,e,i),e.elementType=t,e.type=r,e.lanes=s,e}function _l(t,e,n,r){return t=Mi(7,t,r,e),t.lanes=n,t}function $m(t,e,n,r){return t=Mi(22,t,r,e),t.elementType=XN,t.lanes=n,t.stateNode={isHidden:!1},t}function dy(t,e,n){return t=Mi(6,t,null,e),t.lanes=n,t}function fy(t,e,n){return e=Mi(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function c_(t,e,n,r,i){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Kg(0),this.expirationTimes=Kg(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Kg(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Cw(t,e,n,r,i,s,o,l,a){return t=new c_(t,e,n,l,a),e===1?(e=1,s===!0&&(e|=8)):e=0,s=Mi(3,null,null,e),t.current=s,s.stateNode=t,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},lw(s),t}function u_(t,e,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(WA)}catch(t){console.error(t)}}WA(),WN.exports=mi;var zn=WN.exports;const m_=ON(zn);var KA,tS=zn;KA=tS.createRoot,tS.hydrateRoot;const nS="fn.deviceKey",rS="fn.deviceName";function iS(t){try{return localStorage.getItem(t)}catch{return null}}function sS(t,e){try{localStorage.setItem(t,e)}catch{}}function g_(){try{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID()}catch{}return"dev_"+Math.random().toString(36).slice(2)+"_"+Date.now().toString(36)}function y_(){var t,e;try{const n=navigator.userAgentData,r=n&&typeof n.platform=="string"&&n.platform||navigator.platform||"device",s=!!(n&&typeof n.mobile=="boolean"?n.mobile:/Mobi|Android|iPhone|iPad/i.test(navigator.userAgent||""))?"Mobile":"Desktop",o=typeof window<"u"?(t=window.screen)==null?void 0:t.width:0,l=typeof window<"u"?(e=window.screen)==null?void 0:e.height:0,a=o&&l?`${Math.max(o,l)}x${Math.min(o,l)}`:"";return[r,s,a].filter(Boolean).join(" ")}catch{return"Device"}}function YA(){let t=iS(nS)||"";t||(t=g_(),sS(nS,t));let e=iS(rS)||"";return e||(e=y_(),sS(rS,e)),{deviceKey:t,deviceName:e}}function Vd(){const t=YA();return{"x-device-key":t.deviceKey,"x-device-name":t.deviceName}}async function v_(t,e,n,r){const i={email:t,password:e};n&&(i.name=n),r&&(i.inviteToken=r);const s=await fetch("/api/auth/register",{method:"POST",headers:{"Content-Type":"application/json",...Vd()},body:JSON.stringify(i)});if(!s.ok)throw new Error(await s.text());return s.json()}async function b_(t,e){const n=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json",...Vd()},body:JSON.stringify({email:t,password:e})});if(!n.ok)throw new Error(await n.text());return n.json()}async function w_(t){const e=await fetch("/api/auth/me",{headers:{Authorization:`Bearer ${t}`,...Vd()}});if(!e.ok)throw new Error(await e.text());return e.json()}async function x_(t,e){const n=await fetch("/api/auth/me",{method:"PATCH",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json",...Vd()},body:JSON.stringify(e)});if(!n.ok)throw new Error(await n.text());return n.json()}async function k_(t,e){const n=await fetch("/api/auth/me/photo",{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json",...Vd()},body:JSON.stringify({dataUrl:e})});if(!n.ok)throw new Error(await n.text());return n.json()}const qA=w.createContext(void 0);function Sr(){const t=w.useContext(qA);if(!t)throw new Error("useAuth must be used within AuthProvider");return t}const S_=({children:t})=>{const[e,n]=w.useState(null),[r,i]=w.useState(()=>localStorage.getItem("fn_token"));w.useEffect(()=>{r&&w_(r).then(u=>n(u.user)).catch(()=>{n(null),i(null),localStorage.removeItem("fn_token")})},[r]),w.useEffect(()=>{if(e)try{if(e.fontFamily&&(document.documentElement.style.setProperty("--app-font-family",e.fontFamily),localStorage.setItem("prefs.fontFamily",e.fontFamily)),typeof e.noteWidth=="number"){const u=e.noteWidth;document.documentElement.style.setProperty("--note-card-width",String(u)+"px"),localStorage.setItem("prefs.noteWidth",String(u));try{window.dispatchEvent(new Event("notes-grid:recalc"))}catch{}}e.dragBehavior&&localStorage.setItem("prefs.dragBehavior",e.dragBehavior),e.animationSpeed&&localStorage.setItem("prefs.animationSpeed",e.animationSpeed),typeof e.checklistSpacing=="number"&&(document.documentElement.style.setProperty("--checklist-gap",String(e.checklistSpacing)+"px"),localStorage.setItem("prefs.checklistSpacing",String(e.checklistSpacing))),typeof e.checkboxSize=="number"&&(document.documentElement.style.setProperty("--checklist-checkbox-size",String(e.checkboxSize)+"px"),localStorage.setItem("prefs.checkboxSize",String(e.checkboxSize))),typeof e.checklistTextSize=="number"&&(document.documentElement.style.setProperty("--checklist-text-size",String(e.checklistTextSize)+"px"),localStorage.setItem("prefs.checklistTextSize",String(e.checklistTextSize))),typeof e.noteLineSpacing=="number"&&(document.documentElement.style.setProperty("--note-line-height",String(e.noteLineSpacing)),localStorage.setItem("prefs.noteLineSpacing",String(e.noteLineSpacing))),typeof e.imageThumbSize=="number"&&(document.documentElement.style.setProperty("--image-thumb-size",String(e.imageThumbSize)+"px"),localStorage.setItem("prefs.imageThumbSize",String(e.imageThumbSize))),e.checkboxBg&&(document.documentElement.style.setProperty("--checkbox-bg",e.checkboxBg),localStorage.setItem("prefs.checkboxBg",e.checkboxBg)),e.checkboxBorder&&(document.documentElement.style.setProperty("--checkbox-border",e.checkboxBorder),localStorage.setItem("prefs.checkboxBorder",e.checkboxBorder))}catch{}},[e]);async function s(u,d){const h=await b_(u,d),p=h.token;i(p),localStorage.setItem("fn_token",p),n(h.user)}async function o(u,d,h,p){const m=await v_(u,d,h,p),g=m.token;i(g),localStorage.setItem("fn_token",g),n(m.user)}async function l(u){const d=r||localStorage.getItem("fn_token");if(!d)throw new Error("Not authenticated");const h=await k_(d,u);h&&h.user&&n(h.user)}async function a(u){if(!r)throw new Error("Not authenticated");const d=await x_(r,u);d&&d.user?n(d.user):n(h=>h&&{...h,...u||{}})}function c(){i(null),n(null),localStorage.removeItem("fn_token")}return f.jsx(qA.Provider,{value:{user:e,token:r,login:s,register:o,logout:c,uploadPhoto:l,updateMe:a},children:t})};function C_({onClose:t}){const{token:e}=Sr(),[n,r]=w.useState(""),[i,s]=w.useState("user"),[o,l]=w.useState(null),[a,c]=w.useState(!1);async function u(d){d&&d.preventDefault(),l(null),c(!0);try{const h=await fetch("/api/invite",{method:"POST",headers:{"Content-Type":"application/json",Authorization:e?`Bearer ${e}`:""},body:JSON.stringify({email:n,role:i})});if(!h.ok)throw new Error(await h.text());const p=await h.json();l(`Invite created for ${p.invite.email} (role: ${p.invite.role})`),r(""),s("user")}catch(h){l(`Error: ${(h==null?void 0:h.message)??String(h)}`)}finally{c(!1)}}return f.jsx("div",{className:"image-dialog-backdrop",children:f.jsxs("div",{className:"image-dialog",role:"dialog","aria-modal":!0,children:[f.jsxs("div",{className:"dialog-header",children:[f.jsx("strong",{children:"Settings"}),f.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),f.jsxs("div",{style:{padding:8},children:[f.jsx("h4",{children:"Invites"}),f.jsxs("form",{onSubmit:u,style:{display:"flex",gap:8,alignItems:"center"},children:[f.jsx("input",{placeholder:"Email to invite",value:n,onChange:d=>r(d.target.value),className:"image-url-input"}),f.jsxs("select",{value:i,onChange:d=>s(d.target.value),className:"image-url-input","aria-label":"Role",children:[f.jsx("option",{value:"user",children:"User"}),f.jsx("option",{value:"admin",children:"Admin"})]}),f.jsx("button",{className:"btn",type:"submit",disabled:a||!n,children:"Send invite"})]}),o&&f.jsx("div",{style:{marginTop:8},children:o})]})]})})}const JA=w.createContext(null);function oS(){try{return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}catch{return"dark"}}function lS(t){try{document.documentElement.dataset.theme=t}catch{}}function E_({children:t}){const[e,n]=w.useState(()=>{try{return localStorage.getItem("prefs.theme")||"system"}catch{return"system"}}),r=w.useMemo(()=>e==="system"?oS():e,[e]);w.useEffect(()=>{lS(r);try{localStorage.setItem("prefs.theme",e)}catch{}if(e==="system"){const s=window.matchMedia("(prefers-color-scheme: dark)"),o=()=>lS(oS());try{s.addEventListener("change",o)}catch{}return()=>{try{s.removeEventListener("change",o)}catch{}}}},[e,r]);const i={choice:e,effective:r,setChoice:n};return f.jsx(JA.Provider,{value:i,children:t})}function Aw(){const t=w.useContext(JA);if(!t)throw new Error("useTheme must be used within ThemeProvider");return t}let aS=!1,cp=null,f0={isInstalled:!1,canInstall:!1};const h0=new Set;function hy(){try{const t=window.matchMedia&&window.matchMedia("(display-mode: standalone)").matches,e=(navigator==null?void 0:navigator.standalone)===!0;return!!(t||e)}catch{return!1}}async function N_(){try{const t=navigator==null?void 0:navigator.getInstalledRelatedApps;if(typeof t!="function")return!1;const e=await t.call(navigator);return Array.isArray(e)&&e.length>0}catch{return!1}}function ka(t){f0={...f0,...t};for(const e of h0)try{e()}catch{}}function T_(){aS||(aS=!0,ka({isInstalled:hy()}),N_().then(t=>{t&&ka({isInstalled:!0})}).catch(()=>{}),window.addEventListener("beforeinstallprompt",t=>{try{t.preventDefault()}catch{}cp=t,ka({canInstall:!0,isInstalled:hy()})}),window.addEventListener("appinstalled",()=>{cp=null,ka({isInstalled:!0,canInstall:!1})}),window.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&ka({isInstalled:hy()})}))}function cS(){return f0}function A_(t){return h0.add(t),()=>{h0.delete(t)}}async function M_(){const t=cp;if(!t)return"unavailable";try{await t.prompt();const e=await t.userChoice;return(e==null?void 0:e.outcome)==="accepted"?(cp=null,ka({canInstall:!1}),"accepted"):"dismissed"}catch{return"unavailable"}}function Mw(){w.useEffect(()=>{try{T_()}catch{}},[]);const[t,e]=w.useState(()=>cS());w.useEffect(()=>A_(()=>{try{e(cS())}catch{}}),[]);const n=w.useCallback(async()=>await M_(),[]);return{isInstalled:!!t.isInstalled,canInstall:!!t.canInstall&&!t.isInstalled,promptInstall:n}}const I_="0.4.6",R_="/icons/darkicon.png",D_="/icons/lighticon.png",O_="/icons/freemannotes.png",j_="/icons/version.png",P_="/icons/version-light.png";function L_({onClose:t}){var qe,It,et,kt,bt,Tt,Ue,nt,pt,Q;const e=(()=>{try{return Sr()}catch{return null}})(),n=(()=>{try{return Aw()}catch{return null}})(),{canInstall:r,isInstalled:i,promptInstall:s}=Mw(),o=n&&n.effective||"dark",l=n&&n.choice||"system",a=n&&n.setChoice||(()=>{}),[c,u]=w.useState(()=>{try{const F=localStorage.getItem("prefs.checklistSpacing");return F?Number(F):15}catch{return 15}}),[d,h]=w.useState(()=>{try{return Number(localStorage.getItem("prefs.checkboxSize")||"20")}catch{return 20}}),[p,m]=w.useState(()=>{try{return Number(localStorage.getItem("prefs.checklistTextSize")||"17")}catch{return 17}}),[g,v]=w.useState(()=>{var F;try{const ae=localStorage.getItem("prefs.noteLineSpacing");if(ae)return Number(ae);const Se=e&&((F=e.user)==null?void 0:F.noteLineSpacing);return typeof Se=="number"?Se:1.38}catch{return 1.38}}),[y,b]=w.useState(()=>{try{const F=localStorage.getItem("prefs.noteWidth");if(F)return Number(F);const ae=getComputedStyle(document.documentElement);return Number(ae.getPropertyValue("--note-card-width"))||300}catch{return 300}}),[x,C]=w.useState(()=>{var F;try{const ae=localStorage.getItem("prefs.imageThumbSize");if(ae)return Number(ae);const Se=e&&((F=e.user)==null?void 0:F.imageThumbSize);if(typeof Se=="number")return Se;const Pe=getComputedStyle(document.documentElement);return Number.parseInt(String(Pe.getPropertyValue("--image-thumb-size")||"").trim(),10)||96}catch{return 96}}),[S,M]=w.useState(()=>{var F;try{const ae=e&&((F=e.user)==null?void 0:F.checkboxBg),Se=localStorage.getItem("prefs.checkboxBg");return ae||Se||getComputedStyle(document.documentElement).getPropertyValue("--card").trim()||"#1e1e1e"}catch{return"#1e1e1e"}}),[N,z]=w.useState(()=>{var F;try{const ae=e&&((F=e.user)==null?void 0:F.checkboxBorder),Se=localStorage.getItem("prefs.checkboxBorder");return ae||Se||getComputedStyle(document.documentElement).getPropertyValue("--checkbox-border-default").trim()||"#ffffff"}catch{return"#ffffff"}}),[ee,L]=w.useState(!1),[q,X]=w.useState(()=>{try{return localStorage.getItem("prefs.fontFamily")||"Calibri, system-ui, Arial, sans-serif"}catch{return"Calibri, system-ui, Arial, sans-serif"}}),[ye,Ce]=w.useState(()=>!1),[Te,se]=w.useState(()=>{try{return localStorage.getItem("prefs.dragBehavior")||"swap"}catch{return"swap"}}),[he,J]=w.useState(()=>{try{return localStorage.getItem("prefs.animationSpeed")||"normal"}catch{return"normal"}}),[me,ue]=w.useState(()=>{var F;try{return e&&((F=e.user)==null?void 0:F.chipDisplayMode)||"image+text"}catch{return"image+text"}}),fe=(()=>{try{const F=window.matchMedia,ae=!!(F&&(F("(pointer: coarse)").matches||F("(any-pointer: coarse)").matches)),Se=window.visualViewport&&typeof window.visualViewport.width=="number"?window.visualViewport.width:window.innerWidth,Pe=window.visualViewport&&typeof window.visualViewport.height=="number"?window.visualViewport.height:window.innerHeight,D=Math.min(Se,Pe);return ae&&D<=600}catch{return!1}})();w.useEffect(()=>{var ae,Se,Pe,D,G,de;const F=(()=>{try{return Number(localStorage.getItem("prefs.checklistSpacing")||"8")}catch{return 8}})();u(F);try{const ve=localStorage.getItem("prefs.fontFamily");ve&&X(ve)}catch{}try{const ve=localStorage.getItem("prefs.noteLineSpacing")??((e&&((ae=e.user)==null?void 0:ae.noteLineSpacing))!=null?String(e.user.noteLineSpacing):null);ve&&v(Number(ve))}catch{}try{const ve=localStorage.getItem("prefs.noteWidth")??((e&&((Se=e.user)==null?void 0:Se.noteWidth))!=null?String(e.user.noteWidth):null);ve&&b(Number(ve))}catch{}try{const ve=localStorage.getItem("prefs.imageThumbSize")??((e&&((Pe=e.user)==null?void 0:Pe.imageThumbSize))!=null?String(e.user.imageThumbSize):null);ve&&C(Number(ve))}catch{}try{const ve=localStorage.getItem("prefs.dragBehavior")||e&&((D=e.user)==null?void 0:D.dragBehavior)||"swap";ve&&se(ve)}catch{}try{const ve=localStorage.getItem("prefs.animationSpeed")||e&&((G=e.user)==null?void 0:G.animationSpeed)||"normal";ve&&J(ve)}catch{}try{const ve=e&&((de=e.user)==null?void 0:de.chipDisplayMode)||"image+text";ve&&ue(ve)}catch{}},[]);async function W(){var F;document.documentElement.style.setProperty("--checklist-gap",`${c}px`),document.documentElement.style.setProperty("--checklist-checkbox-size",`${d}px`),document.documentElement.style.setProperty("--checklist-text-size",`${p}px`),document.documentElement.style.setProperty("--note-line-height",String(g)),fe||document.documentElement.style.setProperty("--note-card-width",`${y}px`),document.documentElement.style.setProperty("--image-thumb-size",`${x}px`);try{localStorage.setItem("prefs.checklistSpacing",String(c))}catch{}try{localStorage.setItem("prefs.checkboxSize",String(d))}catch{}try{localStorage.setItem("prefs.checklistTextSize",String(p))}catch{}try{localStorage.setItem("prefs.noteLineSpacing",String(g))}catch{}if(!fe)try{localStorage.setItem("prefs.noteWidth",String(y))}catch{}try{localStorage.setItem("prefs.imageThumbSize",String(x))}catch{}try{localStorage.setItem("prefs.fontFamily",q)}catch{}try{localStorage.setItem("prefs.dragBehavior",Te)}catch{}try{localStorage.setItem("prefs.animationSpeed",he)}catch{}document.documentElement.style.setProperty("--app-font-family",q);try{window.dispatchEvent(new CustomEvent("notes-grid:recalc")),window.dispatchEvent(new Event("resize"))}catch{}try{const ae={fontFamily:q,...fe?{}:{noteWidth:y},dragBehavior:Te,animationSpeed:he,checklistSpacing:c,checkboxSize:d,checklistTextSize:p,noteLineSpacing:g,chipDisplayMode:me,imageThumbSize:x};await((F=e==null?void 0:e.updateMe)==null?void 0:F.call(e,ae))}catch{}try{localStorage.removeItem("prefs.checkboxBg"),localStorage.removeItem("prefs.checkboxBorder")}catch{}t()}function Le(){L(!0);try{const F=getComputedStyle(document.documentElement),ae=F.getPropertyValue("--card").trim()||"#1e1e1e",Se=F.getPropertyValue("--checkbox-border-default").trim()||"#ffffff";M(ae),z(Se)}catch{M("#1e1e1e"),z("#ffffff")}}function Ye(){t()}const[Y,Ze]=w.useState(!1),[Pt,it]=w.useState(null),[St,Mt]=w.useState(!1),[vt,We]=w.useState(null);async function ce(F){var ae;try{if(it(Pe=>{try{Pe&&URL.revokeObjectURL(Pe)}catch{}return F?URL.createObjectURL(F):null}),!F)return;Mt(!0);const Se=await Re(F);await((ae=e==null?void 0:e.uploadPhoto)==null?void 0:ae.call(e,Se)),it(Pe=>{try{Pe&&URL.revokeObjectURL(Pe)}catch{}return null})}catch(Se){console.error("Failed to upload photo",Se),window.alert("Failed to upload photo"),it(Pe=>{try{Pe&&URL.revokeObjectURL(Pe)}catch{}return null})}finally{Mt(!1)}}function Re(F){return new Promise((ae,Se)=>{const Pe=new FileReader;Pe.onload=()=>ae(String(Pe.result||"")),Pe.onerror=D=>Se(D),Pe.readAsDataURL(F)})}return B.useEffect(()=>()=>{try{Pt&&URL.revokeObjectURL(Pt)}catch{}},[Pt]),f.jsxs("div",{className:`image-dialog-backdrop prefs-backdrop${fe?" phone":""}`,children:[f.jsxs("div",{className:`prefs-dialog${fe?" phone":""}`,role:"dialog","aria-modal":!0,"aria-label":"Preferences",children:[f.jsxs("div",{className:"dialog-header prefs-header",children:[fe&&vt!=null?f.jsx("button",{className:"btn prefs-back",type:"button",onClick:()=>We(null),"aria-label":"Back",children:"←"}):f.jsx("span",{}),f.jsx("strong",{className:"prefs-title",children:vt==null?fe?"Settings":"Preferences":vt==="about"?"About":vt==="appearance"?"Appearance":vt==="colors"?"Colors":vt==="drag"?"Drag & Animation":vt==="collaborators"?"Collaborators":"Preferences"}),f.jsx("button",{className:"icon-close",type:"button",onClick:t,"aria-label":"Close",children:"✕"})]}),f.jsx("div",{className:"dialog-body prefs-body",children:vt==null?fe?f.jsxs("div",{className:"prefs-mobile-root",children:[f.jsxs("div",{className:"prefs-list",role:"list",children:[!i&&r&&f.jsxs("button",{className:"prefs-item",type:"button",onClick:async()=>{try{await s()}catch{}},role:"listitem",title:"Install Freeman Notes",children:[f.jsx("span",{className:"prefs-item__label",children:"Install app"}),f.jsx("span",{className:"prefs-item__chev","aria-hidden":!0,children:"›"})]}),f.jsxs("button",{className:"prefs-item",type:"button",onClick:()=>We("about"),role:"listitem",children:[f.jsx("span",{className:"prefs-item__label",children:"About"}),f.jsx("span",{className:"prefs-item__chev","aria-hidden":!0,children:"›"})]}),f.jsxs("button",{className:"prefs-item",type:"button",onClick:()=>We("appearance"),role:"listitem",children:[f.jsx("span",{className:"prefs-item__label",children:"Appearance"}),f.jsx("span",{className:"prefs-item__chev","aria-hidden":!0,children:"›"})]}),f.jsxs("button",{className:"prefs-item",type:"button",onClick:()=>We("drag"),role:"listitem",children:[f.jsx("span",{className:"prefs-item__label",children:"Drag & Animation"}),f.jsx("span",{className:"prefs-item__chev","aria-hidden":!0,children:"›"})]}),f.jsxs("button",{className:"prefs-item",type:"button",onClick:()=>We("collaborators"),role:"listitem",children:[f.jsx("span",{className:"prefs-item__label",children:"Collaborators"}),f.jsx("span",{className:"prefs-item__chev","aria-hidden":!0,children:"›"})]})]}),f.jsx("div",{style:{height:14}}),f.jsxs("div",{className:"prefs-list",role:"list","aria-label":"Account",children:[((qe=e==null?void 0:e.user)==null?void 0:qe.role)==="admin"&&f.jsxs("button",{className:"prefs-item",type:"button",onClick:()=>Ze(!0),role:"listitem",children:[f.jsx("span",{className:"prefs-item__label",children:"Send invite"}),f.jsx("span",{className:"prefs-item__chev","aria-hidden":!0,children:"›"})]}),f.jsxs("button",{className:"prefs-item prefs-item--danger",type:"button",onClick:()=>{var F;try{t()}catch{}try{(F=e==null?void 0:e.logout)==null||F.call(e)}catch{}},role:"listitem",children:[f.jsx("span",{className:"prefs-item__label",children:"Sign out"}),f.jsx("span",{className:"prefs-item__chev","aria-hidden":!0,children:"›"})]})]})]}):f.jsxs("div",{children:[f.jsxs("div",{style:{display:"grid",gap:10},children:[!i&&r&&f.jsx("button",{className:"btn",type:"button",onClick:async()=>{try{await s()}catch{}},children:"Install app"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>We("about"),children:"About"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>We("appearance"),children:"Appearance"}),!1,f.jsx("button",{className:"btn",type:"button",onClick:()=>We("drag"),children:"Drag & Animation"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>We("collaborators"),children:"Collaborators"})]}),f.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[f.jsx("button",{className:"btn",type:"button",onClick:Ye,children:"Close"}),f.jsx("span",{style:{flex:1}}),((It=e==null?void 0:e.user)==null?void 0:It.role)==="admin"&&f.jsx("button",{className:"btn",type:"button",onClick:()=>Ze(!0),children:"Send Invite"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>{var F;try{t()}catch{}try{(F=e==null?void 0:e.logout)==null||F.call(e)}catch{}},children:"Sign out"})]})]}):vt==="about"?f.jsxs("div",{children:[!fe&&f.jsx("button",{className:"btn",type:"button",onClick:()=>We(null),"aria-label":"Back",children:"← Back"}),f.jsx("div",{style:{height:8}}),f.jsx("h4",{children:"About Freeman Notes"}),f.jsxs("div",{className:"about-hero-group",children:[f.jsxs("div",{className:"about-hero","aria-label":"Freeman Notes branding",children:[f.jsx("img",{src:o==="light"?D_:R_,alt:"Freeman Notes icon",className:"about-hero-icon"}),f.jsx("img",{src:O_,alt:"",role:"presentation",className:"about-hero-wordmark",onError:F=>{F.currentTarget.style.display="none"}})]}),f.jsxs("div",{className:"about-version-row","aria-label":"Current version",children:[f.jsx("img",{src:o==="light"?P_:j_,alt:"Version badge",className:"about-version-icon"}),f.jsx("span",{className:"about-version-text",children:I_})]})]}),f.jsxs("div",{className:"about-description",children:[f.jsx("p",{children:"Freeman Notes exists to prevent small thoughts from becoming resonance cascades."}),f.jsx("p",{children:"It captures ideas before they scatter, organizes them without Combine interference, and keeps Civil Protection out of your creative process."}),f.jsx("p",{children:"No manhacks. No surveillance. Just free notes, recorded and remembered on your terms."})]}),f.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[f.jsx("button",{className:"btn",type:"button",onClick:()=>We(null),children:"Back"}),f.jsx("button",{className:"btn",type:"button",onClick:Ye,children:"Close"}),f.jsx("span",{style:{flex:1}}),((et=e==null?void 0:e.user)==null?void 0:et.role)==="admin"&&f.jsx("button",{className:"btn",type:"button",onClick:()=>Ze(!0),children:"Send Invite"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>{var F;try{t()}catch{}try{(F=e==null?void 0:e.logout)==null||F.call(e)}catch{}},children:"Sign out"})]})]}):vt==="appearance"?f.jsxs("div",{children:[!fe&&f.jsx("button",{className:"btn",type:"button",onClick:()=>We(null),"aria-label":"Back",children:"← Back"}),f.jsx("div",{style:{height:8}}),f.jsx("h4",{children:"Appearance"}),f.jsxs("div",{style:{marginBottom:16},children:[f.jsx("h5",{style:{margin:0,color:"var(--muted)"},children:"Theme"}),f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Appearance"}),f.jsxs("select",{value:l,onChange:F=>a(F.target.value),children:[f.jsx("option",{value:"dark",children:"Dark"}),f.jsx("option",{value:"light",children:"Light"}),f.jsx("option",{value:"system",children:"System"})]})]})]}),f.jsxs("div",{style:{marginBottom:16},children:[f.jsx("h5",{style:{margin:0,color:"var(--muted)"},children:"Profile Photo"}),f.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[Pt?f.jsx("img",{src:Pt,alt:"Profile preview",style:{width:55,height:55,borderRadius:"50%",objectFit:"cover"}}):(kt=e==null?void 0:e.user)!=null&&kt.userImageUrl?f.jsx("img",{src:(e==null?void 0:e.user).userImageUrl,alt:"Profile",style:{width:55,height:55,borderRadius:"50%",objectFit:"cover"}}):f.jsx("div",{className:"avatar",style:{width:55,height:55,borderRadius:"50%",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:(((bt=e==null?void 0:e.user)==null?void 0:bt.name)||((Tt=e==null?void 0:e.user)==null?void 0:Tt.email)||"U")[0]}),f.jsx("input",{type:"file",accept:"image/*",disabled:St,onChange:F=>{var ae;return ce(((ae=F.target.files)==null?void 0:ae[0])||null)}}),St&&f.jsx("div",{style:{color:"var(--muted)",fontSize:13},children:"Uploading…"})]})]}),f.jsxs("div",{style:{display:"block"},children:[f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Checklist item spacing"}),f.jsx("input",{"aria-label":"checklist spacing",type:"range",min:2,max:24,value:c,onChange:F=>u(Number(F.target.value))}),f.jsxs("div",{style:{width:48,textAlign:"left"},children:[c,"px"]})]}),f.jsx("div",{style:{height:10}}),f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Note line spacing"}),f.jsx("input",{"aria-label":"note line spacing",type:"range",min:.9,max:1.8,step:.02,value:g,onChange:F=>v(Number(F.target.value))}),f.jsx("div",{style:{width:48,textAlign:"left"},children:g.toFixed(2)})]}),f.jsx("div",{style:{height:10}}),f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Checkbox size"}),f.jsx("input",{"aria-label":"checkbox size",type:"range",min:10,max:36,value:d,onChange:F=>h(Number(F.target.value))}),f.jsxs("div",{style:{width:48,textAlign:"left"},children:[d,"px"]})]}),f.jsx("div",{style:{height:10}}),f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Text size"}),f.jsx("input",{"aria-label":"checklist text size",type:"range",min:12,max:20,value:p,onChange:F=>m(Number(F.target.value))}),f.jsxs("div",{style:{width:48,textAlign:"left"},children:[p,"px"]})]}),f.jsx("div",{style:{height:10}}),fe?f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start",opacity:.7},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Note width"}),f.jsx("div",{style:{color:"var(--muted)"},children:"Auto (disabled on mobile)"})]}):f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Note width"}),f.jsx("input",{"aria-label":"note width",type:"range",min:180,max:520,value:y,onChange:F=>b(Number(F.target.value))}),f.jsxs("div",{style:{width:64,textAlign:"left"},children:[y,"px"]})]}),f.jsx("div",{style:{height:10}}),f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Image thumbnails"}),f.jsx("input",{"aria-label":"image thumbnail size",type:"range",min:48,max:192,step:8,value:x,onChange:F=>C(Number(F.target.value))}),f.jsxs("div",{style:{width:64,textAlign:"left"},children:[x,"px"]})]}),f.jsx("div",{style:{height:10}}),f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"App font"}),f.jsxs("select",{value:q,onChange:F=>X(F.target.value),children:[f.jsx("option",{value:'Inter, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial',children:"Inter"}),f.jsx("option",{value:"Calibri, system-ui, Arial, sans-serif",children:"Calibri"}),f.jsx("option",{value:"Segoe UI, system-ui, Arial, sans-serif",children:"Segoe UI"}),f.jsx("option",{value:"Roboto, system-ui, Arial, sans-serif",children:"Roboto"}),f.jsx("option",{value:"Helvetica Neue, Helvetica, Arial, sans-serif",children:"Helvetica Neue"}),f.jsx("option",{value:"Arial, Helvetica, sans-serif",children:"Arial"}),f.jsx("option",{value:"Verdana, Geneva, sans-serif",children:"Verdana"}),f.jsx("option",{value:"Tahoma, Geneva, sans-serif",children:"Tahoma"}),f.jsx("option",{value:"Trebuchet MS, Helvetica, sans-serif",children:"Trebuchet MS"}),f.jsx("option",{value:"Gill Sans, Calibri, sans-serif",children:"Gill Sans"})]})]})]}),f.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[f.jsx("button",{className:"btn",type:"button",onClick:()=>We(null),children:"Back"}),f.jsx("button",{className:"btn",type:"button",onClick:W,children:"Save"}),f.jsx("span",{style:{flex:1}}),((Ue=e==null?void 0:e.user)==null?void 0:Ue.role)==="admin"&&f.jsx("button",{className:"btn",type:"button",onClick:()=>Ze(!0),children:"Send Invite"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>{var F;try{t()}catch{}try{(F=e==null?void 0:e.logout)==null||F.call(e)}catch{}},children:"Sign out"})]})]}):vt==="colors"?f.jsxs("div",{children:[!fe&&f.jsx("button",{className:"btn",type:"button",onClick:()=>We(null),"aria-label":"Back",children:"← Back"}),f.jsx("div",{style:{height:8}}),f.jsx("h4",{children:"Colors"}),f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Checkbox background"}),f.jsx("input",{"aria-label":"checkbox bg",type:"color",value:S,onChange:F=>M(F.target.value),style:{width:44,height:28,padding:0}})]}),f.jsx("div",{style:{height:10}}),f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Checkbox border"}),f.jsx("input",{"aria-label":"checkbox border",type:"color",value:N,onChange:F=>z(F.target.value),style:{width:44,height:28,padding:0}})]}),f.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[f.jsx("button",{className:"btn",type:"button",onClick:()=>We(null),children:"Back"}),f.jsx("button",{className:"btn",type:"button",onClick:Le,title:"Reset colors to defaults",children:"Reset colors"}),f.jsx("button",{className:"btn",type:"button",onClick:W,children:"Save"}),f.jsx("span",{style:{flex:1}}),((nt=e==null?void 0:e.user)==null?void 0:nt.role)==="admin"&&f.jsx("button",{className:"btn",type:"button",onClick:()=>Ze(!0),children:"Send Invite"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>{var F;try{t()}catch{}try{(F=e==null?void 0:e.logout)==null||F.call(e)}catch{}},children:"Sign out"})]})]}):vt==="drag"?f.jsxs("div",{children:[!fe&&f.jsx("button",{className:"btn",type:"button",onClick:()=>We(null),"aria-label":"Back",children:"← Back"}),f.jsx("div",{style:{height:8}}),f.jsx("h4",{children:"Drag & Animation"}),f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Behavior"}),f.jsx("label",{style:{color:"var(--muted)"},children:"Swap"}),f.jsx("input",{"aria-label":"drag swap",type:"radio",name:"dragBehavior",checked:Te==="swap",onChange:()=>se("swap")}),f.jsx("label",{style:{color:"var(--muted)"},children:"Rearrange"}),f.jsx("input",{"aria-label":"drag rearrange",type:"radio",name:"dragBehavior",checked:Te==="rearrange",onChange:()=>se("rearrange")})]}),f.jsx("div",{style:{height:10}}),f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Speed"}),f.jsxs("select",{"aria-label":"animation speed",value:he,onChange:F=>J(F.target.value),children:[f.jsx("option",{value:"fast",children:"Fast"}),f.jsx("option",{value:"normal",children:"Normal"}),f.jsx("option",{value:"slow",children:"Slow"})]})]}),f.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[f.jsx("button",{className:"btn",type:"button",onClick:()=>We(null),children:"Back"}),f.jsx("button",{className:"btn",type:"button",onClick:W,children:"Save"}),f.jsx("span",{style:{flex:1}}),((pt=e==null?void 0:e.user)==null?void 0:pt.role)==="admin"&&f.jsx("button",{className:"btn",type:"button",onClick:()=>Ze(!0),children:"Send Invite"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>{var F;try{t()}catch{}try{(F=e==null?void 0:e.logout)==null||F.call(e)}catch{}},children:"Sign out"})]})]}):f.jsxs("div",{children:[!fe&&f.jsx("button",{className:"btn",type:"button",onClick:()=>We(null),"aria-label":"Back",children:"← Back"}),f.jsx("div",{style:{height:8}}),f.jsx("h4",{children:"Collaborators"}),f.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"flex-start"},children:[f.jsx("label",{style:{color:"var(--muted)",minWidth:120},children:"Display"}),f.jsxs("select",{"aria-label":"collaborator chip display",value:me,onChange:F=>ue(F.target.value),children:[f.jsx("option",{value:"image+text",children:"Image + Text"}),f.jsx("option",{value:"image",children:"Image only"}),f.jsx("option",{value:"text",children:"Text only"})]})]}),f.jsxs("div",{style:{marginTop:16,display:"flex",gap:8,justifyContent:"flex-start"},children:[f.jsx("button",{className:"btn",type:"button",onClick:()=>We(null),children:"Back"}),f.jsx("button",{className:"btn",type:"button",onClick:W,children:"Save"}),f.jsx("span",{style:{flex:1}}),((Q=e==null?void 0:e.user)==null?void 0:Q.role)==="admin"&&f.jsx("button",{className:"btn",type:"button",onClick:()=>Ze(!0),children:"Send Invite"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>{var F;try{t()}catch{}try{(F=e==null?void 0:e.logout)==null||F.call(e)}catch{}},children:"Sign out"})]})]})})]}),Y&&f.jsx(C_,{onClose:()=>Ze(!1)})]})}function __({onToggleSidebar:t,searchQuery:e,onSearchChange:n}){const[r,i]=w.useState(!1),{user:s}=Sr(),o=(()=>{try{return Aw()}catch{return{effective:"dark"}}})();return f.jsxs("header",{className:"app-header",children:[f.jsxs("div",{className:"header-left",children:[f.jsx("button",{className:"menu-btn","aria-label":"menu",onClick:()=>t&&t(),children:"☰"}),f.jsxs("div",{className:"brand-inline",children:[f.jsx("img",{src:o.effective==="light"?"/icons/lighticon.png":"/icons/darkicon.png",alt:"FreemanNotes icon",className:"app-icon"}),f.jsx("div",{className:"brand",children:"Freeman Notes"})]})]}),f.jsx("div",{className:"header-center",children:f.jsx("input",{className:"search",placeholder:"Search",value:e??"",onChange:l=>n&&n(l.target.value)})}),f.jsx("div",{className:"header-right",style:{position:"relative"},children:s?f.jsx(f.Fragment,{children:s.userImageUrl?f.jsx("img",{src:s.userImageUrl,alt:"User",className:"avatar",style:{width:33,height:33,borderRadius:"50%",objectFit:"cover",cursor:"pointer"},onClick:()=>i(!0)}):f.jsx("div",{className:"avatar",style:{width:33,height:33,borderRadius:"50%",display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:"pointer"},onClick:()=>i(!0),children:s.name&&s.email?(s.name||s.email)[0]:""})}):null}),r&&f.jsx(L_,{onClose:()=>i(!1)})]})}const Ks={sortKey:"default",sortDir:"desc",smartFilter:"none",groupBy:"none"};function uS({selectedLabelIds:t=[],onToggleLabel:e,onClearLabels:n,collapsed:r=!1,onRequestClose:i,collectionStack:s=[],onCollectionStackChange:o,sortConfig:l=Ks,onSortConfigChange:a}){const{token:c}=Sr(),[u,d]=w.useState([]),[h,p]=w.useState(!1),[m,g]=w.useState(!1),[v,y]=w.useState(!1),[b,x]=w.useState(!1),[C,S]=w.useState(!1),[M,N]=w.useState([]),[z,ee]=w.useState(!1),[L,q]=w.useState("");w.useEffect(()=>{if(!c){d([]);return}fetch("/api/labels",{headers:{Authorization:`Bearer ${c}`}}).then(Re=>Re.json()).then(Re=>d(Array.isArray(Re.labels)?Re.labels:[])).catch(()=>d([]));const ce=()=>{fetch("/api/labels",{headers:{Authorization:`Bearer ${c}`}}).then(Re=>Re.json()).then(Re=>d(Array.isArray(Re.labels)?Re.labels:[])).catch(()=>{})};return typeof window<"u"&&window.addEventListener("labels:refresh",ce),()=>{typeof window<"u"&&window.removeEventListener("labels:refresh",ce)}},[c]);const X=ce=>{try{const Re={...l,...ce};a&&a(Re)}catch{}},ye=(ce,Re)=>{if(l.sortKey!==ce){X({sortKey:ce,sortDir:Re});return}X({sortDir:l.sortDir==="asc"?"desc":"asc"})},Ce=ce=>{X({groupBy:l.groupBy===ce?"none":ce})},Te=ce=>{X({smartFilter:ce})},se=ce=>l.sortKey===ce,he={color:"var(--muted)",opacity:.7,cursor:"not-allowed"},J=()=>{try{a&&a(Ks)}catch{}try{g(!1)}catch{}try{y(!1)}catch{}try{x(!1)}catch{}try{n&&n()}catch{}try{o&&o([])}catch{}try{p(!1)}catch{}try{S(!1)}catch{}},me=()=>{J();try{i&&i()}catch{}},ue=()=>{p(ce=>{const Re=!ce;if(!Re){try{n&&n()}catch{}try{J()}catch{}}return Re})},fe=()=>{g(ce=>{const Re=!ce;if(!Re)try{J()}catch{}return Re})},W=()=>{y(ce=>{const Re=!ce;if(!Re)try{Te("none")}catch{}return Re})},Le=()=>{x(ce=>{const Re=!ce;if(!Re)try{X({groupBy:"none"})}catch{}return Re})},Ye=Array.isArray(s)&&s.length?Number(s[s.length-1].id):null,Y=B.useCallback(async()=>{if(!c){N([]);return}if(!r&&C){ee(!0);try{const ce=Ye==null?"":`?parentId=${encodeURIComponent(String(Ye))}`,qe=await(await fetch(`/api/collections${ce}`,{headers:{Authorization:`Bearer ${c}`}})).json(),It=Array.isArray(qe==null?void 0:qe.collections)?qe.collections:[];N(It.map(et=>({id:Number(et.id),name:String(et.name||""),parentId:et.parentId==null?null:Number(et.parentId),hasChildren:!!et.hasChildren,noteCount:typeof et.noteCount=="number"?Number(et.noteCount):void 0})).filter(et=>Number.isFinite(et.id)&&et.name.length))}catch{N([])}finally{ee(!1)}}},[c,r,C,Ye]);w.useEffect(()=>{Y()},[Y]);const Ze=()=>{S(ce=>{const Re=!ce;if(!Re)try{q("")}catch{}return Re})},Pt=(ce,Re)=>{const qe=[...Array.isArray(s)?s:[],{id:Number(ce),name:String(Re||"")}];try{o&&o(qe)}catch{}},it=()=>{const ce=Array.isArray(s)?s:[];if(ce.length)try{o&&o(ce.slice(0,-1))}catch{}},St=()=>{try{o&&o([])}catch{}},Mt=async()=>{const ce=String(L||"").trim();if(!(!ce||!c))try{const Re=await fetch("/api/collections",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c}`},body:JSON.stringify({name:ce,parentId:Ye})});if(!Re.ok)throw new Error(await Re.text());try{q("")}catch{}try{window.dispatchEvent(new CustomEvent("collections:changed",{detail:{invalidateAll:!0,reason:"create"}}))}catch{}await Y()}catch(Re){window.alert("Failed to create collection: "+String(Re))}},vt=async(ce,Re)=>{if(!c)return;const qe=window.prompt("Rename collection:",Re);if(qe==null)return;const It=String(qe).trim();if(It)try{const et=await fetch(`/api/collections/${encodeURIComponent(String(ce))}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c}`},body:JSON.stringify({name:It})});if(!et.ok)throw new Error(await et.text());try{window.dispatchEvent(new CustomEvent("collections:changed",{detail:{invalidateAll:!0,reason:"rename",id:Number(ce)}}))}catch{}try{const kt=Array.isArray(s)?s:[],bt=kt.findIndex(Tt=>Number(Tt.id)===Number(ce));if(bt>=0){const Tt=kt.slice();Tt[bt]={...Tt[bt],name:It},o&&o(Tt)}}catch{}await Y()}catch(et){window.alert("Failed to rename collection: "+String(et))}},We=async(ce,Re)=>{if(!(!c||!window.confirm(`Delete collection "${Re}"? This will delete all nested collections.`)))try{const It=await fetch(`/api/collections/${encodeURIComponent(String(ce))}`,{method:"DELETE",headers:{Authorization:`Bearer ${c}`}});if(!It.ok)throw new Error(await It.text());try{window.dispatchEvent(new CustomEvent("collections:changed",{detail:{invalidateAll:!0,reason:"delete",id:Number(ce)}}))}catch{}try{const et=Array.isArray(s)?s:[],kt=et.findIndex(bt=>Number(bt.id)===Number(ce));kt>=0&&o&&o(et.slice(0,kt))}catch{}await Y()}catch(It){window.alert("Failed to delete collection: "+String(It))}};return f.jsx("aside",{className:"sidebar"+(r?" collapsed":""),children:f.jsxs("div",{className:"sidebar-section",children:[f.jsxs("div",{className:"sidebar-item active",title:"Notes",style:{cursor:"pointer"},onClick:me,children:[f.jsx("span",{className:"icon","aria-hidden":!0,children:f.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M6 3h9l3 3v15H6zM14 3v4h4"})})}),!r&&f.jsx("span",{className:"text",children:"Notes"})]}),f.jsxs("div",{className:"sidebar-item",title:"Reminders",children:[f.jsx("span",{className:"icon","aria-hidden":!0,children:f.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),f.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),!r&&f.jsx("span",{className:"text",children:"Reminders"})]}),f.jsxs("div",{className:"sidebar-item",onClick:ue,style:{cursor:"pointer"},title:"Labels",children:[f.jsx("span",{className:"icon","aria-hidden":!0,children:f.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M6 3h12v18l-6-4-6 4V3z"})})}),!r&&f.jsxs("span",{className:"text",children:[f.jsx("span",{className:"sidebar-indicator leading",children:f.jsx("span",{className:"chev"+(h?" open":""),children:"▶"})}),"Labels"]})]}),h&&!r&&f.jsxs("div",{style:{paddingLeft:8},children:[u.length===0&&f.jsx("div",{className:"sidebar-item",style:{color:"var(--muted)"},children:"No labels"}),u.map(ce=>f.jsxs("label",{className:"sidebar-item",style:{display:"flex",alignItems:"center",gap:8},children:[f.jsx("input",{type:"checkbox",checked:t.includes(ce.id),onChange:()=>e&&e(ce.id)}),f.jsx("span",{children:ce.name})]},ce.id)),u.length>0&&f.jsx("button",{className:"btn",onClick:n,style:{marginTop:6},children:"Clear"})]}),f.jsxs("div",{className:"sidebar-item",onClick:fe,style:{cursor:"pointer"},title:"Sorting",children:[f.jsx("span",{className:"icon","aria-hidden":!0,children:f.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M3 18h6v-2H3v2zm0-5h12v-2H3v2zm0-7v2h18V6H3z"})})}),!r&&f.jsxs("span",{className:"text",children:[f.jsx("span",{className:"sidebar-indicator leading",children:f.jsx("span",{className:"chev"+(m?" open":""),children:"▶"})}),"Sorting"]})]}),m&&!r&&f.jsxs("div",{style:{paddingLeft:8},children:[f.jsxs("div",{className:"sidebar-item",style:{cursor:"pointer",display:"flex",justifyContent:"space-between",fontWeight:l.sortKey==="createdAt"?700:void 0},onClick:()=>ye("createdAt","desc"),title:"Sort by date created",children:[f.jsx("span",{className:"text",children:"Date created"}),f.jsx("span",{className:"sidebar-indicator"+(se("createdAt")?"":" placeholder"),"aria-hidden":!0,children:f.jsx("span",{className:"dir"+(l.sortDir==="desc"&&se("createdAt")?" desc":""),children:"▲"})})]}),f.jsxs("div",{className:"sidebar-item",style:{cursor:"pointer",display:"flex",justifyContent:"space-between",fontWeight:l.sortKey==="updatedAt"?700:void 0},onClick:()=>ye("updatedAt","desc"),title:"Sort by date updated",children:[f.jsx("span",{className:"text",children:"Date updated"}),f.jsx("span",{className:"sidebar-indicator"+(se("updatedAt")?"":" placeholder"),"aria-hidden":!0,children:f.jsx("span",{className:"dir"+(l.sortDir==="desc"&&se("updatedAt")?" desc":""),children:"▲"})})]}),f.jsxs("div",{className:"sidebar-item",style:{cursor:"pointer",display:"flex",justifyContent:"space-between",fontWeight:l.sortKey==="title"?700:void 0},onClick:()=>ye("title","asc"),title:"Sort alphabetically by title",children:[f.jsx("span",{className:"text",children:"Alphabetical"}),f.jsx("span",{className:"sidebar-indicator"+(se("title")?"":" placeholder"),"aria-hidden":!0,children:f.jsx("span",{className:"dir"+(l.sortDir==="desc"&&se("title")?" desc":""),children:"▲"})})]}),f.jsx("div",{className:"sidebar-item",onClick:W,style:{cursor:"pointer",marginTop:4},title:"Filters",children:f.jsxs("span",{className:"text",children:[f.jsx("span",{className:"sidebar-indicator leading",children:f.jsx("span",{className:"chev"+(v?" open":""),children:"▶"})}),"Filters"]})}),v&&f.jsxs("div",{style:{paddingLeft:10},children:[f.jsx("div",{className:"sidebar-item",style:he,title:"Coming soon",children:f.jsx("span",{className:"text",children:"Due soon"})}),f.jsx("div",{className:"sidebar-item",style:he,title:"Coming soon",children:f.jsx("span",{className:"text",children:"Least accessed"})}),f.jsx("div",{className:"sidebar-item",style:he,title:"Coming soon",children:f.jsx("span",{className:"text",children:"Most edited"})}),f.jsx("div",{className:"sidebar-item",style:he,title:"Coming soon",children:f.jsx("span",{className:"text",children:"“At risk”"})}),f.jsx("div",{style:{display:"none"},children:f.jsx("button",{onClick:()=>Te("none"),children:"none"})})]}),f.jsx("div",{className:"sidebar-item",onClick:Le,style:{cursor:"pointer",marginTop:4},title:"Grouping",children:f.jsxs("span",{className:"text",children:[f.jsx("span",{className:"sidebar-indicator leading",children:f.jsx("span",{className:"chev"+(b?" open":""),children:"▶"})}),"Grouping"]})}),b&&f.jsxs("div",{style:{paddingLeft:10},children:[f.jsx("div",{className:"sidebar-item",style:{cursor:"pointer",fontWeight:l.groupBy==="week"?700:void 0},onClick:()=>Ce("week"),title:"Group by week",children:f.jsx("span",{className:"text",children:"By week"})}),f.jsx("div",{className:"sidebar-item",style:{cursor:"pointer",fontWeight:l.groupBy==="month"?700:void 0},onClick:()=>Ce("month"),title:"Group by month",children:f.jsx("span",{className:"text",children:"By month"})})]})]}),f.jsxs("div",{className:"sidebar-item",title:"Collections",children:[f.jsx("span",{className:"icon","aria-hidden":!0,children:f.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M3 7h6l2 2h10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z"})})}),!r&&f.jsxs("span",{className:"text",style:{cursor:"pointer"},onClick:Ze,children:[f.jsx("span",{className:"sidebar-indicator leading",children:f.jsx("span",{className:"chev"+(C?" open":""),children:"▶"})}),"Collections"]})]}),C&&!r&&f.jsxs("div",{style:{paddingLeft:8},children:[f.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,marginBottom:6},children:[f.jsx("div",{style:{display:"flex",gap:6,alignItems:"center"},children:s.length>0&&f.jsxs(f.Fragment,{children:[f.jsx("button",{className:"btn",onClick:it,title:"Back",children:"Back"}),f.jsx("button",{className:"btn",onClick:St,title:"All notes",children:"All"})]})}),s.length>0&&f.jsx("button",{className:"btn",title:"Delete this collection",onClick:()=>{const ce=s[s.length-1];We(Number(ce.id),String(ce.name||""))},children:"Delete"})]}),s.length>0&&f.jsx("div",{className:"sidebar-item",style:{color:"var(--muted)",fontSize:12,paddingLeft:0},title:"Current path",children:s.map(ce=>String(ce.name||"")).join(" / ")}),f.jsx("div",{className:"sidebar-item"+(s.length?"":" active"),style:{cursor:"pointer"},onClick:()=>{St()},title:"Show all notes",children:f.jsx("span",{className:"text",children:"All notes"})}),z&&f.jsx("div",{className:"sidebar-item",style:{color:"var(--muted)"},children:"Loading…"}),!z&&M.length===0&&f.jsx("div",{className:"sidebar-item",style:{color:"var(--muted)"},children:"No collections"}),M.map(ce=>f.jsxs("div",{className:"sidebar-item",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[f.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer",flex:1,minWidth:0},onClick:()=>{Pt(ce.id,ce.name)},title:ce.name,children:[f.jsx("span",{className:"text",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:ce.name}),typeof ce.noteCount=="number"&&f.jsxs("span",{style:{color:"var(--muted)",fontSize:12},children:["(",ce.noteCount,")"]})]}),f.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx("button",{className:"btn",title:"Rename",onClick:Re=>{Re.stopPropagation(),vt(ce.id,ce.name)},children:"Rename"}),f.jsx("button",{className:"btn",title:"Delete",onClick:Re=>{Re.stopPropagation(),We(ce.id,ce.name)},children:"✕"})]})]},ce.id)),f.jsxs("div",{style:{display:"flex",gap:6,marginTop:6},children:[f.jsx("input",{value:L,onChange:ce=>q(ce.target.value),placeholder:"New collection",style:{flex:1,minWidth:0,padding:"6px 8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--panel)",color:"var(--text)"},onKeyDown:ce=>{ce.key==="Enter"&&Mt()}}),f.jsx("button",{className:"btn",onClick:Mt,disabled:!L.trim(),children:"Add"})]})]}),f.jsxs("div",{className:"sidebar-item",title:"Archive",children:[f.jsx("span",{className:"icon","aria-hidden":!0,children:f.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M20.54 5.23L19.4 4H4.6L3.46 5.23 3 6v2h18V6l-.46-.77zM6 10v9h12V10H6zm3 2h6v2H9v-2z"})})}),!r&&f.jsx("span",{className:"text",children:"Archive"})]}),f.jsxs("div",{className:"sidebar-item",title:"Bin",children:[f.jsx("span",{className:"icon","aria-hidden":!0,children:f.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M4 7h16"}),f.jsx("path",{d:"M6 7l1 12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-12"}),f.jsx("path",{d:"M9 7V5h6v2"})]})}),!r&&f.jsx("span",{className:"text",children:"Bin"})]})]})})}const Wm=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Oc(t){const e=Object.prototype.toString.call(t);return e==="[object Window]"||e==="[object global]"}function Iw(t){return"nodeType"in t}function qr(t){var e,n;return t?Oc(t)?t:Iw(t)&&(e=(n=t.ownerDocument)==null?void 0:n.defaultView)!=null?e:window:window}function Rw(t){const{Document:e}=qr(t);return t instanceof e}function Wd(t){return Oc(t)?!1:t instanceof qr(t).HTMLElement}function GA(t){return t instanceof qr(t).SVGElement}function jc(t){return t?Oc(t)?t.document:Iw(t)?Rw(t)?t:Wd(t)||GA(t)?t.ownerDocument:document:document:document}const lo=Wm?w.useLayoutEffect:w.useEffect;function Km(t){const e=w.useRef(t);return lo(()=>{e.current=t}),w.useCallback(function(){for(var n=arguments.length,r=new Array(n),i=0;i{t.current=setInterval(r,i)},[]),n=w.useCallback(()=>{t.current!==null&&(clearInterval(t.current),t.current=null)},[]);return[e,n]}function ud(t,e){e===void 0&&(e=[t]);const n=w.useRef(t);return lo(()=>{n.current!==t&&(n.current=t)},e),n}function Kd(t,e){const n=w.useRef();return w.useMemo(()=>{const r=t(n.current);return n.current=r,r},[...e])}function up(t){const e=Km(t),n=w.useRef(null),r=w.useCallback(i=>{i!==n.current&&(e==null||e(i,n.current)),n.current=i},[]);return[n,r]}function dp(t){const e=w.useRef();return w.useEffect(()=>{e.current=t},[t]),e.current}let py={};function Ym(t,e){return w.useMemo(()=>{if(e)return e;const n=py[t]==null?0:py[t]+1;return py[t]=n,t+"-"+n},[t,e])}function XA(t){return function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i{const l=Object.entries(o);for(const[a,c]of l){const u=s[a];u!=null&&(s[a]=u+t*c)}return s},{...e})}}const qa=XA(1),fp=XA(-1);function F_(t){return"clientX"in t&&"clientY"in t}function Dw(t){if(!t)return!1;const{KeyboardEvent:e}=qr(t.target);return e&&t instanceof e}function $_(t){if(!t)return!1;const{TouchEvent:e}=qr(t.target);return e&&t instanceof e}function hp(t){if($_(t)){if(t.touches&&t.touches.length){const{clientX:e,clientY:n}=t.touches[0];return{x:e,y:n}}else if(t.changedTouches&&t.changedTouches.length){const{clientX:e,clientY:n}=t.changedTouches[0];return{x:e,y:n}}}return F_(t)?{x:t.clientX,y:t.clientY}:null}const dd=Object.freeze({Translate:{toString(t){if(!t)return;const{x:e,y:n}=t;return"translate3d("+(e?Math.round(e):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(t){if(!t)return;const{scaleX:e,scaleY:n}=t;return"scaleX("+e+") scaleY("+n+")"}},Transform:{toString(t){if(t)return[dd.Translate.toString(t),dd.Scale.toString(t)].join(" ")}},Transition:{toString(t){let{property:e,duration:n,easing:r}=t;return e+" "+n+"ms "+r}}}),dS="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function B_(t){return t.matches(dS)?t:t.querySelector(dS)}const U_={display:"none"};function H_(t){let{id:e,value:n}=t;return B.createElement("div",{id:e,style:U_},n)}function V_(t){let{id:e,announcement:n,ariaLiveType:r="assertive"}=t;const i={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return B.createElement("div",{id:e,style:i,role:"status","aria-live":r,"aria-atomic":!0},n)}function W_(){const[t,e]=w.useState("");return{announce:w.useCallback(r=>{r!=null&&e(r)},[]),announcement:t}}const QA=w.createContext(null);function K_(t){const e=w.useContext(QA);w.useEffect(()=>{if(!e)throw new Error("useDndMonitor must be used within a children of ");return e(t)},[t,e])}function Y_(){const[t]=w.useState(()=>new Set),e=w.useCallback(r=>(t.add(r),()=>t.delete(r)),[t]);return[w.useCallback(r=>{let{type:i,event:s}=r;t.forEach(o=>{var l;return(l=o[i])==null?void 0:l.call(o,s)})},[t]),e]}const q_={draggable:` + To pick up a draggable item, press the space bar. + While dragging, use the arrow keys to move the item. + Press space again to drop the item in its new position, or press escape to cancel. + `},J_={onDragStart(t){let{active:e}=t;return"Picked up draggable item "+e.id+"."},onDragOver(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was moved over droppable area "+n.id+".":"Draggable item "+e.id+" is no longer over a droppable area."},onDragEnd(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was dropped over droppable area "+n.id:"Draggable item "+e.id+" was dropped."},onDragCancel(t){let{active:e}=t;return"Dragging was cancelled. Draggable item "+e.id+" was dropped."}};function G_(t){let{announcements:e=J_,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=q_}=t;const{announce:s,announcement:o}=W_(),l=Ym("DndLiveRegion"),[a,c]=w.useState(!1);if(w.useEffect(()=>{c(!0)},[]),K_(w.useMemo(()=>({onDragStart(d){let{active:h}=d;s(e.onDragStart({active:h}))},onDragMove(d){let{active:h,over:p}=d;e.onDragMove&&s(e.onDragMove({active:h,over:p}))},onDragOver(d){let{active:h,over:p}=d;s(e.onDragOver({active:h,over:p}))},onDragEnd(d){let{active:h,over:p}=d;s(e.onDragEnd({active:h,over:p}))},onDragCancel(d){let{active:h,over:p}=d;s(e.onDragCancel({active:h,over:p}))}}),[s,e])),!a)return null;const u=B.createElement(B.Fragment,null,B.createElement(H_,{id:r,value:i.draggable}),B.createElement(V_,{id:l,announcement:o}));return n?zn.createPortal(u,n):u}var Xn;(function(t){t.DragStart="dragStart",t.DragMove="dragMove",t.DragEnd="dragEnd",t.DragCancel="dragCancel",t.DragOver="dragOver",t.RegisterDroppable="registerDroppable",t.SetDroppableDisabled="setDroppableDisabled",t.UnregisterDroppable="unregisterDroppable"})(Xn||(Xn={}));function pp(){}function fS(t,e){return w.useMemo(()=>({sensor:t,options:e??{}}),[t,e])}function X_(){for(var t=arguments.length,e=new Array(t),n=0;n[...e].filter(r=>r!=null),[...e])}const ts=Object.freeze({x:0,y:0});function Q_(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function Z_(t,e){const n=hp(t);if(!n)return"0 0";const r={x:(n.x-e.left)/e.width*100,y:(n.y-e.top)/e.height*100};return r.x+"% "+r.y+"%"}function e3(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return n-r}function t3(t,e){let{data:{value:n}}=t,{data:{value:r}}=e;return r-n}function n3(t){let{left:e,top:n,height:r,width:i}=t;return[{x:e,y:n},{x:e+i,y:n},{x:e,y:n+r},{x:e+i,y:n+r}]}function r3(t,e){if(!t||t.length===0)return null;const[n]=t;return n[e]}function i3(t,e){const n=Math.max(e.top,t.top),r=Math.max(e.left,t.left),i=Math.min(e.left+e.width,t.left+t.width),s=Math.min(e.top+e.height,t.top+t.height),o=i-r,l=s-n;if(r{let{collisionRect:e,droppableRects:n,droppableContainers:r}=t;const i=[];for(const s of r){const{id:o}=s,l=n.get(o);if(l){const a=i3(l,e);a>0&&i.push({id:o,data:{droppableContainer:s,value:a}})}}return i.sort(t3)};function o3(t,e){const{top:n,left:r,bottom:i,right:s}=e;return n<=t.y&&t.y<=i&&r<=t.x&&t.x<=s}const l3=t=>{let{droppableContainers:e,droppableRects:n,pointerCoordinates:r}=t;if(!r)return[];const i=[];for(const s of e){const{id:o}=s,l=n.get(o);if(l&&o3(r,l)){const c=n3(l).reduce((d,h)=>d+Q_(r,h),0),u=Number((c/4).toFixed(4));i.push({id:o,data:{droppableContainer:s,value:u}})}}return i.sort(e3)};function a3(t,e,n){return{...t,scaleX:e&&n?e.width/n.width:1,scaleY:e&&n?e.height/n.height:1}}function ZA(t,e){return t&&e?{x:t.left-e.left,y:t.top-e.top}:ts}function c3(t){return function(n){for(var r=arguments.length,i=new Array(r>1?r-1:0),s=1;s({...o,top:o.top+t*l.y,bottom:o.bottom+t*l.y,left:o.left+t*l.x,right:o.right+t*l.x}),{...n})}}const u3=c3(1);function eM(t){if(t.startsWith("matrix3d(")){const e=t.slice(9,-1).split(/, /);return{x:+e[12],y:+e[13],scaleX:+e[0],scaleY:+e[5]}}else if(t.startsWith("matrix(")){const e=t.slice(7,-1).split(/, /);return{x:+e[4],y:+e[5],scaleX:+e[0],scaleY:+e[3]}}return null}function d3(t,e,n){const r=eM(e);if(!r)return t;const{scaleX:i,scaleY:s,x:o,y:l}=r,a=t.left-o-(1-i)*parseFloat(n),c=t.top-l-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),u=i?t.width/i:t.width,d=s?t.height/s:t.height;return{width:u,height:d,top:c,right:a+u,bottom:c+d,left:a}}const f3={ignoreTransform:!1};function Yd(t,e){e===void 0&&(e=f3);let n=t.getBoundingClientRect();if(e.ignoreTransform){const{transform:c,transformOrigin:u}=qr(t).getComputedStyle(t);c&&(n=d3(n,c,u))}const{top:r,left:i,width:s,height:o,bottom:l,right:a}=n;return{top:r,left:i,width:s,height:o,bottom:l,right:a}}function hS(t){return Yd(t,{ignoreTransform:!0})}function h3(t){const e=t.innerWidth,n=t.innerHeight;return{top:0,left:0,right:e,bottom:n,width:e,height:n}}function p3(t,e){return e===void 0&&(e=qr(t).getComputedStyle(t)),e.position==="fixed"}function m3(t,e){e===void 0&&(e=qr(t).getComputedStyle(t));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(i=>{const s=e[i];return typeof s=="string"?n.test(s):!1})}function Ow(t,e){const n=[];function r(i){if(e!=null&&n.length>=e||!i)return n;if(Rw(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!Wd(i)||GA(i)||n.includes(i))return n;const s=qr(t).getComputedStyle(i);return i!==t&&m3(i,s)&&n.push(i),p3(i,s)?n:r(i.parentNode)}return t?r(t):n}function tM(t){const[e]=Ow(t,1);return e??null}function my(t){return!Wm||!t?null:Oc(t)?t:Iw(t)?Rw(t)||t===jc(t).scrollingElement?window:Wd(t)?t:null:null}function nM(t){return Oc(t)?t.scrollX:t.scrollLeft}function rM(t){return Oc(t)?t.scrollY:t.scrollTop}function p0(t){return{x:nM(t),y:rM(t)}}var sr;(function(t){t[t.Forward=1]="Forward",t[t.Backward=-1]="Backward"})(sr||(sr={}));function iM(t){return!Wm||!t?!1:t===document.scrollingElement}function sM(t){const e={x:0,y:0},n=iM(t)?{height:window.innerHeight,width:window.innerWidth}:{height:t.clientHeight,width:t.clientWidth},r={x:t.scrollWidth-n.width,y:t.scrollHeight-n.height},i=t.scrollTop<=e.y,s=t.scrollLeft<=e.x,o=t.scrollTop>=r.y,l=t.scrollLeft>=r.x;return{isTop:i,isLeft:s,isBottom:o,isRight:l,maxScroll:r,minScroll:e}}const g3={x:.2,y:.2};function y3(t,e,n,r,i){let{top:s,left:o,right:l,bottom:a}=n;r===void 0&&(r=10),i===void 0&&(i=g3);const{isTop:c,isBottom:u,isLeft:d,isRight:h}=sM(t),p={x:0,y:0},m={x:0,y:0},g={height:e.height*i.y,width:e.width*i.x};return!c&&s<=e.top+g.height?(p.y=sr.Backward,m.y=r*Math.abs((e.top+g.height-s)/g.height)):!u&&a>=e.bottom-g.height&&(p.y=sr.Forward,m.y=r*Math.abs((e.bottom-g.height-a)/g.height)),!h&&l>=e.right-g.width?(p.x=sr.Forward,m.x=r*Math.abs((e.right-g.width-l)/g.width)):!d&&o<=e.left+g.width&&(p.x=sr.Backward,m.x=r*Math.abs((e.left+g.width-o)/g.width)),{direction:p,speed:m}}function v3(t){if(t===document.scrollingElement){const{innerWidth:s,innerHeight:o}=window;return{top:0,left:0,right:s,bottom:o,width:s,height:o}}const{top:e,left:n,right:r,bottom:i}=t.getBoundingClientRect();return{top:e,left:n,right:r,bottom:i,width:t.clientWidth,height:t.clientHeight}}function oM(t){return t.reduce((e,n)=>qa(e,p0(n)),ts)}function b3(t){return t.reduce((e,n)=>e+nM(n),0)}function w3(t){return t.reduce((e,n)=>e+rM(n),0)}function lM(t,e){if(e===void 0&&(e=Yd),!t)return;const{top:n,left:r,bottom:i,right:s}=e(t);tM(t)&&(i<=0||s<=0||n>=window.innerHeight||r>=window.innerWidth)&&t.scrollIntoView({block:"center",inline:"center"})}const x3=[["x",["left","right"],b3],["y",["top","bottom"],w3]];class jw{constructor(e,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=Ow(n),i=oM(r);this.rect={...e},this.width=e.width,this.height=e.height;for(const[s,o,l]of x3)for(const a of o)Object.defineProperty(this,a,{get:()=>{const c=l(r),u=i[s]-c;return this.rect[a]+u},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Au{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=e}add(e,n,r){var i;(i=this.target)==null||i.addEventListener(e,n,r),this.listeners.push([e,n,r])}}function k3(t){const{EventTarget:e}=qr(t);return t instanceof e?t:jc(t)}function gy(t,e){const n=Math.abs(t.x),r=Math.abs(t.y);return typeof e=="number"?Math.sqrt(n**2+r**2)>e:"x"in e&&"y"in e?n>e.x&&r>e.y:"x"in e?n>e.x:"y"in e?r>e.y:!1}var ki;(function(t){t.Click="click",t.DragStart="dragstart",t.Keydown="keydown",t.ContextMenu="contextmenu",t.Resize="resize",t.SelectionChange="selectionchange",t.VisibilityChange="visibilitychange"})(ki||(ki={}));function pS(t){t.preventDefault()}function S3(t){t.stopPropagation()}var gn;(function(t){t.Space="Space",t.Down="ArrowDown",t.Right="ArrowRight",t.Left="ArrowLeft",t.Up="ArrowUp",t.Esc="Escape",t.Enter="Enter",t.Tab="Tab"})(gn||(gn={}));const aM={start:[gn.Space,gn.Enter],cancel:[gn.Esc],end:[gn.Space,gn.Enter,gn.Tab]},C3=(t,e)=>{let{currentCoordinates:n}=e;switch(t.code){case gn.Right:return{...n,x:n.x+25};case gn.Left:return{...n,x:n.x-25};case gn.Down:return{...n,y:n.y+25};case gn.Up:return{...n,y:n.y-25}}};class cM{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:n}}=e;this.props=e,this.listeners=new Au(jc(n)),this.windowListeners=new Au(qr(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(ki.Resize,this.handleCancel),this.windowListeners.add(ki.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(ki.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:n}=this.props,r=e.node.current;r&&lM(r),n(ts)}handleKeyDown(e){if(Dw(e)){const{active:n,context:r,options:i}=this.props,{keyboardCodes:s=aM,coordinateGetter:o=C3,scrollBehavior:l="smooth"}=i,{code:a}=e;if(s.end.includes(a)){this.handleEnd(e);return}if(s.cancel.includes(a)){this.handleCancel(e);return}const{collisionRect:c}=r.current,u=c?{x:c.left,y:c.top}:ts;this.referenceCoordinates||(this.referenceCoordinates=u);const d=o(e,{active:n,context:r.current,currentCoordinates:u});if(d){const h=fp(d,u),p={x:0,y:0},{scrollableAncestors:m}=r.current;for(const g of m){const v=e.code,{isTop:y,isRight:b,isLeft:x,isBottom:C,maxScroll:S,minScroll:M}=sM(g),N=v3(g),z={x:Math.min(v===gn.Right?N.right-N.width/2:N.right,Math.max(v===gn.Right?N.left:N.left+N.width/2,d.x)),y:Math.min(v===gn.Down?N.bottom-N.height/2:N.bottom,Math.max(v===gn.Down?N.top:N.top+N.height/2,d.y))},ee=v===gn.Right&&!b||v===gn.Left&&!x,L=v===gn.Down&&!C||v===gn.Up&&!y;if(ee&&z.x!==d.x){const q=g.scrollLeft+h.x,X=v===gn.Right&&q<=S.x||v===gn.Left&&q>=M.x;if(X&&!h.y){g.scrollTo({left:q,behavior:l});return}X?p.x=g.scrollLeft-q:p.x=v===gn.Right?g.scrollLeft-S.x:g.scrollLeft-M.x,p.x&&g.scrollBy({left:-p.x,behavior:l});break}else if(L&&z.y!==d.y){const q=g.scrollTop+h.y,X=v===gn.Down&&q<=S.y||v===gn.Up&&q>=M.y;if(X&&!h.x){g.scrollTo({top:q,behavior:l});return}X?p.y=g.scrollTop-q:p.y=v===gn.Down?g.scrollTop-S.y:g.scrollTop-M.y,p.y&&g.scrollBy({top:-p.y,behavior:l});break}}this.handleMove(e,qa(fp(d,this.referenceCoordinates),p))}}}handleMove(e,n){const{onMove:r}=this.props;e.preventDefault(),r(n)}handleEnd(e){const{onEnd:n}=this.props;e.preventDefault(),this.detach(),n()}handleCancel(e){const{onCancel:n}=this.props;e.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}cM.activators=[{eventName:"onKeyDown",handler:(t,e,n)=>{let{keyboardCodes:r=aM,onActivation:i}=e,{active:s}=n;const{code:o}=t.nativeEvent;if(r.start.includes(o)){const l=s.activatorNode.current;return l&&t.target!==l?!1:(t.preventDefault(),i==null||i({event:t.nativeEvent}),!0)}return!1}}];function mS(t){return!!(t&&"distance"in t)}function gS(t){return!!(t&&"delay"in t)}class Pw{constructor(e,n,r){var i;r===void 0&&(r=k3(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=n;const{event:s}=e,{target:o}=s;this.props=e,this.events=n,this.document=jc(o),this.documentListeners=new Au(this.document),this.listeners=new Au(r),this.windowListeners=new Au(qr(o)),this.initialCoordinates=(i=hp(s))!=null?i:ts,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(ki.Resize,this.handleCancel),this.windowListeners.add(ki.DragStart,pS),this.windowListeners.add(ki.VisibilityChange,this.handleCancel),this.windowListeners.add(ki.ContextMenu,pS),this.documentListeners.add(ki.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(gS(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(mS(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,n){const{active:r,onPending:i}=this.props;i(r,e,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:e}=this,{onStart:n}=this.props;e&&(this.activated=!0,this.documentListeners.add(ki.Click,S3,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(ki.SelectionChange,this.removeTextSelection),n(e))}handleMove(e){var n;const{activated:r,initialCoordinates:i,props:s}=this,{onMove:o,options:{activationConstraint:l}}=s;if(!i)return;const a=(n=hp(e))!=null?n:ts,c=fp(i,a);if(!r&&l){if(mS(l)){if(l.tolerance!=null&&gy(c,l.tolerance))return this.handleCancel();if(gy(c,l.distance))return this.handleStart()}if(gS(l)&&gy(c,l.tolerance))return this.handleCancel();this.handlePending(l,c);return}e.cancelable&&e.preventDefault(),o(a)}handleEnd(){const{onAbort:e,onEnd:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleCancel(){const{onAbort:e,onCancel:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleKeydown(e){e.code===gn.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}}const E3={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class uM extends Pw{constructor(e){const{event:n}=e,r=jc(n.target);super(e,E3,r)}}uM.activators=[{eventName:"onPointerDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const N3={move:{name:"mousemove"},end:{name:"mouseup"}};var m0;(function(t){t[t.RightClick=2]="RightClick"})(m0||(m0={}));class dM extends Pw{constructor(e){super(e,N3,jc(e.event.target))}}dM.activators=[{eventName:"onMouseDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;return n.button===m0.RightClick?!1:(r==null||r({event:n}),!0)}}];const yy={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class fM extends Pw{constructor(e){super(e,yy)}static setup(){return window.addEventListener(yy.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(yy.move.name,e)};function e(){}}}fM.activators=[{eventName:"onTouchStart",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:r}=e;const{touches:i}=n;return i.length>1?!1:(r==null||r({event:n}),!0)}}];var Mu;(function(t){t[t.Pointer=0]="Pointer",t[t.DraggableRect=1]="DraggableRect"})(Mu||(Mu={}));var mp;(function(t){t[t.TreeOrder=0]="TreeOrder",t[t.ReversedTreeOrder=1]="ReversedTreeOrder"})(mp||(mp={}));function T3(t){let{acceleration:e,activator:n=Mu.Pointer,canScroll:r,draggingRect:i,enabled:s,interval:o=5,order:l=mp.TreeOrder,pointerCoordinates:a,scrollableAncestors:c,scrollableAncestorRects:u,delta:d,threshold:h}=t;const p=M3({delta:d,disabled:!s}),[m,g]=z_(),v=w.useRef({x:0,y:0}),y=w.useRef({x:0,y:0}),b=w.useMemo(()=>{switch(n){case Mu.Pointer:return a?{top:a.y,bottom:a.y,left:a.x,right:a.x}:null;case Mu.DraggableRect:return i}},[n,i,a]),x=w.useRef(null),C=w.useCallback(()=>{const M=x.current;if(!M)return;const N=v.current.x*y.current.x,z=v.current.y*y.current.y;M.scrollBy(N,z)},[]),S=w.useMemo(()=>l===mp.TreeOrder?[...c].reverse():c,[l,c]);w.useEffect(()=>{if(!s||!c.length||!b){g();return}for(const M of S){if((r==null?void 0:r(M))===!1)continue;const N=c.indexOf(M),z=u[N];if(!z)continue;const{direction:ee,speed:L}=y3(M,z,b,e,h);for(const q of["x","y"])p[q][ee[q]]||(L[q]=0,ee[q]=0);if(L.x>0||L.y>0){g(),x.current=M,m(C,o),v.current=L,y.current=ee;return}}v.current={x:0,y:0},y.current={x:0,y:0},g()},[e,C,r,g,s,o,JSON.stringify(b),JSON.stringify(p),m,c,S,u,JSON.stringify(h)])}const A3={x:{[sr.Backward]:!1,[sr.Forward]:!1},y:{[sr.Backward]:!1,[sr.Forward]:!1}};function M3(t){let{delta:e,disabled:n}=t;const r=dp(e);return Kd(i=>{if(n||!r||!i)return A3;const s={x:Math.sign(e.x-r.x),y:Math.sign(e.y-r.y)};return{x:{[sr.Backward]:i.x[sr.Backward]||s.x===-1,[sr.Forward]:i.x[sr.Forward]||s.x===1},y:{[sr.Backward]:i.y[sr.Backward]||s.y===-1,[sr.Forward]:i.y[sr.Forward]||s.y===1}}},[n,e,r])}function I3(t,e){const n=e!=null?t.get(e):void 0,r=n?n.node.current:null;return Kd(i=>{var s;return e==null?null:(s=r??i)!=null?s:null},[r,e])}function R3(t,e){return w.useMemo(()=>t.reduce((n,r)=>{const{sensor:i}=r,s=i.activators.map(o=>({eventName:o.eventName,handler:e(o.handler,r)}));return[...n,...s]},[]),[t,e])}var fd;(function(t){t[t.Always=0]="Always",t[t.BeforeDragging=1]="BeforeDragging",t[t.WhileDragging=2]="WhileDragging"})(fd||(fd={}));var g0;(function(t){t.Optimized="optimized"})(g0||(g0={}));const yS=new Map;function D3(t,e){let{dragging:n,dependencies:r,config:i}=e;const[s,o]=w.useState(null),{frequency:l,measure:a,strategy:c}=i,u=w.useRef(t),d=v(),h=ud(d),p=w.useCallback(function(y){y===void 0&&(y=[]),!h.current&&o(b=>b===null?y:b.concat(y.filter(x=>!b.includes(x))))},[h]),m=w.useRef(null),g=Kd(y=>{if(d&&!n)return yS;if(!y||y===yS||u.current!==t||s!=null){const b=new Map;for(let x of t){if(!x)continue;if(s&&s.length>0&&!s.includes(x.id)&&x.rect.current){b.set(x.id,x.rect.current);continue}const C=x.node.current,S=C?new jw(a(C),C):null;x.rect.current=S,S&&b.set(x.id,S)}return b}return y},[t,s,n,d,a]);return w.useEffect(()=>{u.current=t},[t]),w.useEffect(()=>{d||p()},[n,d]),w.useEffect(()=>{s&&s.length>0&&o(null)},[JSON.stringify(s)]),w.useEffect(()=>{d||typeof l!="number"||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},l))},[l,d,p,...r]),{droppableRects:g,measureDroppableContainers:p,measuringScheduled:s!=null};function v(){switch(c){case fd.Always:return!1;case fd.BeforeDragging:return n;default:return!n}}}function Lw(t,e){return Kd(n=>t?n||(typeof e=="function"?e(t):t):null,[e,t])}function O3(t,e){return Lw(t,e)}function j3(t){let{callback:e,disabled:n}=t;const r=Km(e),i=w.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(r)},[r,n]);return w.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function qm(t){let{callback:e,disabled:n}=t;const r=Km(e),i=w.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(r)},[n]);return w.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function P3(t){return new jw(Yd(t),t)}function vS(t,e,n){e===void 0&&(e=P3);const[r,i]=w.useState(null);function s(){i(a=>{if(!t)return null;if(t.isConnected===!1){var c;return(c=a??n)!=null?c:null}const u=e(t);return JSON.stringify(a)===JSON.stringify(u)?a:u})}const o=j3({callback(a){if(t)for(const c of a){const{type:u,target:d}=c;if(u==="childList"&&d instanceof HTMLElement&&d.contains(t)){s();break}}}}),l=qm({callback:s});return lo(()=>{s(),t?(l==null||l.observe(t),o==null||o.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),o==null||o.disconnect())},[t]),r}function L3(t){const e=Lw(t);return ZA(t,e)}const bS=[];function _3(t){const e=w.useRef(t),n=Kd(r=>t?r&&r!==bS&&t&&e.current&&t.parentNode===e.current.parentNode?r:Ow(t):bS,[t]);return w.useEffect(()=>{e.current=t},[t]),n}function z3(t){const[e,n]=w.useState(null),r=w.useRef(t),i=w.useCallback(s=>{const o=my(s.target);o&&n(l=>l?(l.set(o,p0(o)),new Map(l)):null)},[]);return w.useEffect(()=>{const s=r.current;if(t!==s){o(s);const l=t.map(a=>{const c=my(a);return c?(c.addEventListener("scroll",i,{passive:!0}),[c,p0(c)]):null}).filter(a=>a!=null);n(l.length?new Map(l):null),r.current=t}return()=>{o(t),o(s)};function o(l){l.forEach(a=>{const c=my(a);c==null||c.removeEventListener("scroll",i)})}},[i,t]),w.useMemo(()=>t.length?e?Array.from(e.values()).reduce((s,o)=>qa(s,o),ts):oM(t):ts,[t,e])}function wS(t,e){e===void 0&&(e=[]);const n=w.useRef(null);return w.useEffect(()=>{n.current=null},e),w.useEffect(()=>{const r=t!==ts;r&&!n.current&&(n.current=t),!r&&n.current&&(n.current=null)},[t]),n.current?fp(t,n.current):ts}function F3(t){w.useEffect(()=>{if(!Wm)return;const e=t.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of e)n==null||n()}},t.map(e=>{let{sensor:n}=e;return n}))}function $3(t,e){return w.useMemo(()=>t.reduce((n,r)=>{let{eventName:i,handler:s}=r;return n[i]=o=>{s(o,e)},n},{}),[t,e])}function hM(t){return w.useMemo(()=>t?h3(t):null,[t])}const xS=[];function B3(t,e){e===void 0&&(e=Yd);const[n]=t,r=hM(n?qr(n):null),[i,s]=w.useState(xS);function o(){s(()=>t.length?t.map(a=>iM(a)?r:new jw(e(a),a)):xS)}const l=qm({callback:o});return lo(()=>{l==null||l.disconnect(),o(),t.forEach(a=>l==null?void 0:l.observe(a))},[t]),i}function pM(t){if(!t)return null;if(t.children.length>1)return t;const e=t.children[0];return Wd(e)?e:t}function U3(t){let{measure:e}=t;const[n,r]=w.useState(null),i=w.useCallback(c=>{for(const{target:u}of c)if(Wd(u)){r(d=>{const h=e(u);return d?{...d,width:h.width,height:h.height}:h});break}},[e]),s=qm({callback:i}),o=w.useCallback(c=>{const u=pM(c);s==null||s.disconnect(),u&&(s==null||s.observe(u)),r(u?e(u):null)},[e,s]),[l,a]=up(o);return w.useMemo(()=>({nodeRef:l,rect:n,setRef:a}),[n,l,a])}const H3=[{sensor:uM,options:{}},{sensor:cM,options:{}}],V3={current:{}},xh={draggable:{measure:hS},droppable:{measure:hS,strategy:fd.WhileDragging,frequency:g0.Optimized},dragOverlay:{measure:Yd}};class Iu extends Map{get(e){var n;return e!=null&&(n=super.get(e))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:n}=e;return!n})}getNodeFor(e){var n,r;return(n=(r=this.get(e))==null?void 0:r.node.current)!=null?n:void 0}}const W3={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Iu,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:pp},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:xh,measureDroppableContainers:pp,windowRect:null,measuringScheduled:!1},mM={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:pp,draggableNodes:new Map,over:null,measureDroppableContainers:pp},qd=w.createContext(mM),gM=w.createContext(W3);function K3(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Iu}}}function Y3(t,e){switch(e.type){case Xn.DragStart:return{...t,draggable:{...t.draggable,initialCoordinates:e.initialCoordinates,active:e.active}};case Xn.DragMove:return t.draggable.active==null?t:{...t,draggable:{...t.draggable,translate:{x:e.coordinates.x-t.draggable.initialCoordinates.x,y:e.coordinates.y-t.draggable.initialCoordinates.y}}};case Xn.DragEnd:case Xn.DragCancel:return{...t,draggable:{...t.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Xn.RegisterDroppable:{const{element:n}=e,{id:r}=n,i=new Iu(t.droppable.containers);return i.set(r,n),{...t,droppable:{...t.droppable,containers:i}}}case Xn.SetDroppableDisabled:{const{id:n,key:r,disabled:i}=e,s=t.droppable.containers.get(n);if(!s||r!==s.key)return t;const o=new Iu(t.droppable.containers);return o.set(n,{...s,disabled:i}),{...t,droppable:{...t.droppable,containers:o}}}case Xn.UnregisterDroppable:{const{id:n,key:r}=e,i=t.droppable.containers.get(n);if(!i||r!==i.key)return t;const s=new Iu(t.droppable.containers);return s.delete(n),{...t,droppable:{...t.droppable,containers:s}}}default:return t}}function q3(t){let{disabled:e}=t;const{active:n,activatorEvent:r,draggableNodes:i}=w.useContext(qd),s=dp(r),o=dp(n==null?void 0:n.id);return w.useEffect(()=>{if(!e&&!r&&s&&o!=null){if(!Dw(s)||document.activeElement===s.target)return;const l=i.get(o);if(!l)return;const{activatorNode:a,node:c}=l;if(!a.current&&!c.current)return;requestAnimationFrame(()=>{for(const u of[a.current,c.current]){if(!u)continue;const d=B_(u);if(d){d.focus();break}}})}},[r,e,i,o,s]),null}function yM(t,e){let{transform:n,...r}=e;return t!=null&&t.length?t.reduce((i,s)=>s({transform:i,...r}),n):n}function J3(t){return w.useMemo(()=>({draggable:{...xh.draggable,...t==null?void 0:t.draggable},droppable:{...xh.droppable,...t==null?void 0:t.droppable},dragOverlay:{...xh.dragOverlay,...t==null?void 0:t.dragOverlay}}),[t==null?void 0:t.draggable,t==null?void 0:t.droppable,t==null?void 0:t.dragOverlay])}function G3(t){let{activeNode:e,measure:n,initialRect:r,config:i=!0}=t;const s=w.useRef(!1),{x:o,y:l}=typeof i=="boolean"?{x:i,y:i}:i;lo(()=>{if(!o&&!l||!e){s.current=!1;return}if(s.current||!r)return;const c=e==null?void 0:e.node.current;if(!c||c.isConnected===!1)return;const u=n(c),d=ZA(u,r);if(o||(d.x=0),l||(d.y=0),s.current=!0,Math.abs(d.x)>0||Math.abs(d.y)>0){const h=tM(c);h&&h.scrollBy({top:d.y,left:d.x})}},[e,o,l,r,n])}const Jm=w.createContext({...ts,scaleX:1,scaleY:1});var Mo;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Initializing=1]="Initializing",t[t.Initialized=2]="Initialized"})(Mo||(Mo={}));const X3=w.memo(function(e){var n,r,i,s;let{id:o,accessibility:l,autoScroll:a=!0,children:c,sensors:u=H3,collisionDetection:d=s3,measuring:h,modifiers:p,...m}=e;const g=w.useReducer(Y3,void 0,K3),[v,y]=g,[b,x]=Y_(),[C,S]=w.useState(Mo.Uninitialized),M=C===Mo.Initialized,{draggable:{active:N,nodes:z,translate:ee},droppable:{containers:L}}=v,q=N!=null?z.get(N):null,X=w.useRef({initial:null,translated:null}),ye=w.useMemo(()=>{var Dt;return N!=null?{id:N,data:(Dt=q==null?void 0:q.data)!=null?Dt:V3,rect:X}:null},[N,q]),Ce=w.useRef(null),[Te,se]=w.useState(null),[he,J]=w.useState(null),me=ud(m,Object.values(m)),ue=Ym("DndDescribedBy",o),fe=w.useMemo(()=>L.getEnabled(),[L]),W=J3(h),{droppableRects:Le,measureDroppableContainers:Ye,measuringScheduled:Y}=D3(fe,{dragging:M,dependencies:[ee.x,ee.y],config:W.droppable}),Ze=I3(z,N),Pt=w.useMemo(()=>he?hp(he):null,[he]),it=dn(),St=O3(Ze,W.draggable.measure);G3({activeNode:N!=null?z.get(N):null,config:it.layoutShiftCompensation,initialRect:St,measure:W.draggable.measure});const Mt=vS(Ze,W.draggable.measure,St),vt=vS(Ze?Ze.parentElement:null),We=w.useRef({activatorEvent:null,active:null,activeNode:Ze,collisionRect:null,collisions:null,droppableRects:Le,draggableNodes:z,draggingNode:null,draggingNodeRect:null,droppableContainers:L,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ce=L.getNodeFor((n=We.current.over)==null?void 0:n.id),Re=U3({measure:W.dragOverlay.measure}),qe=(r=Re.nodeRef.current)!=null?r:Ze,It=M?(i=Re.rect)!=null?i:Mt:null,et=!!(Re.nodeRef.current&&Re.rect),kt=L3(et?null:Mt),bt=hM(qe?qr(qe):null),Tt=_3(M?ce??Ze:null),Ue=B3(Tt),nt=yM(p,{transform:{x:ee.x-kt.x,y:ee.y-kt.y,scaleX:1,scaleY:1},activatorEvent:he,active:ye,activeNodeRect:Mt,containerNodeRect:vt,draggingNodeRect:It,over:We.current.over,overlayNodeRect:Re.rect,scrollableAncestors:Tt,scrollableAncestorRects:Ue,windowRect:bt}),pt=Pt?qa(Pt,ee):null,Q=z3(Tt),F=wS(Q),ae=wS(Q,[Mt]),Se=qa(nt,F),Pe=It?u3(It,nt):null,D=ye&&Pe?d({active:ye,collisionRect:Pe,droppableRects:Le,droppableContainers:fe,pointerCoordinates:pt}):null,G=r3(D,"id"),[de,ve]=w.useState(null),$e=et?nt:qa(nt,ae),Ve=a3($e,(s=de==null?void 0:de.rect)!=null?s:null,Mt),Ne=w.useRef(null),Je=w.useCallback((Dt,Lt)=>{let{sensor:tn,options:te}=Lt;if(Ce.current==null)return;const re=z.get(Ce.current);if(!re)return;const je=Dt.nativeEvent,Xe=new tn({active:Ce.current,activeNode:re,event:je,options:te,context:We,onAbort(Ae){if(!z.get(Ae))return;const{onDragAbort:lt}=me.current,$t={id:Ae};lt==null||lt($t),b({type:"onDragAbort",event:$t})},onPending(Ae,ze,lt,$t){if(!z.get(Ae))return;const{onDragPending:Jt}=me.current,_t={id:Ae,constraint:ze,initialCoordinates:lt,offset:$t};Jt==null||Jt(_t),b({type:"onDragPending",event:_t})},onStart(Ae){const ze=Ce.current;if(ze==null)return;const lt=z.get(ze);if(!lt)return;const{onDragStart:$t}=me.current,wt={activatorEvent:je,active:{id:ze,data:lt.data,rect:X}};zn.unstable_batchedUpdates(()=>{$t==null||$t(wt),S(Mo.Initializing),y({type:Xn.DragStart,initialCoordinates:Ae,active:ze}),b({type:"onDragStart",event:wt}),se(Ne.current),J(je)})},onMove(Ae){y({type:Xn.DragMove,coordinates:Ae})},onEnd:ge(Xn.DragEnd),onCancel:ge(Xn.DragCancel)});Ne.current=Xe;function ge(Ae){return async function(){const{active:lt,collisions:$t,over:wt,scrollAdjustedTranslate:Jt}=We.current;let _t=null;if(lt&&Jt){const{cancelDrop:fn}=me.current;_t={activatorEvent:je,active:lt,collisions:$t,delta:Jt,over:wt},Ae===Xn.DragEnd&&typeof fn=="function"&&await Promise.resolve(fn(_t))&&(Ae=Xn.DragCancel)}Ce.current=null,zn.unstable_batchedUpdates(()=>{y({type:Ae}),S(Mo.Uninitialized),ve(null),se(null),J(null),Ne.current=null;const fn=Ae===Xn.DragEnd?"onDragEnd":"onDragCancel";if(_t){const bn=me.current[fn];bn==null||bn(_t),b({type:fn,event:_t})}})}}},[z]),At=w.useCallback((Dt,Lt)=>(tn,te)=>{const re=tn.nativeEvent,je=z.get(te);if(Ce.current!==null||!je||re.dndKit||re.defaultPrevented)return;const Xe={active:je};Dt(tn,Lt.options,Xe)===!0&&(re.dndKit={capturedBy:Lt.sensor},Ce.current=te,Je(tn,Lt))},[z,Je]),rt=R3(u,At);F3(u),lo(()=>{Mt&&C===Mo.Initializing&&S(Mo.Initialized)},[Mt,C]),w.useEffect(()=>{const{onDragMove:Dt}=me.current,{active:Lt,activatorEvent:tn,collisions:te,over:re}=We.current;if(!Lt||!tn)return;const je={active:Lt,activatorEvent:tn,collisions:te,delta:{x:Se.x,y:Se.y},over:re};zn.unstable_batchedUpdates(()=>{Dt==null||Dt(je),b({type:"onDragMove",event:je})})},[Se.x,Se.y]),w.useEffect(()=>{const{active:Dt,activatorEvent:Lt,collisions:tn,droppableContainers:te,scrollAdjustedTranslate:re}=We.current;if(!Dt||Ce.current==null||!Lt||!re)return;const{onDragOver:je}=me.current,Xe=te.get(G),ge=Xe&&Xe.rect.current?{id:Xe.id,rect:Xe.rect.current,data:Xe.data,disabled:Xe.disabled}:null,Ae={active:Dt,activatorEvent:Lt,collisions:tn,delta:{x:re.x,y:re.y},over:ge};zn.unstable_batchedUpdates(()=>{ve(ge),je==null||je(Ae),b({type:"onDragOver",event:Ae})})},[G]),lo(()=>{We.current={activatorEvent:he,active:ye,activeNode:Ze,collisionRect:Pe,collisions:D,droppableRects:Le,draggableNodes:z,draggingNode:qe,draggingNodeRect:It,droppableContainers:L,over:de,scrollableAncestors:Tt,scrollAdjustedTranslate:Se},X.current={initial:It,translated:Pe}},[ye,Ze,D,Pe,z,qe,It,Le,L,de,Tt,Se]),T3({...it,delta:ee,draggingRect:Pe,pointerCoordinates:pt,scrollableAncestors:Tt,scrollableAncestorRects:Ue});const Wt=w.useMemo(()=>({active:ye,activeNode:Ze,activeNodeRect:Mt,activatorEvent:he,collisions:D,containerNodeRect:vt,dragOverlay:Re,draggableNodes:z,droppableContainers:L,droppableRects:Le,over:de,measureDroppableContainers:Ye,scrollableAncestors:Tt,scrollableAncestorRects:Ue,measuringConfiguration:W,measuringScheduled:Y,windowRect:bt}),[ye,Ze,Mt,he,D,vt,Re,z,L,Le,de,Ye,Tt,Ue,W,Y,bt]),Rt=w.useMemo(()=>({activatorEvent:he,activators:rt,active:ye,activeNodeRect:Mt,ariaDescribedById:{draggable:ue},dispatch:y,draggableNodes:z,over:de,measureDroppableContainers:Ye}),[he,rt,ye,Mt,y,ue,z,de,Ye]);return B.createElement(QA.Provider,{value:x},B.createElement(qd.Provider,{value:Rt},B.createElement(gM.Provider,{value:Wt},B.createElement(Jm.Provider,{value:Ve},c)),B.createElement(q3,{disabled:(l==null?void 0:l.restoreFocus)===!1})),B.createElement(G_,{...l,hiddenTextDescribedById:ue}));function dn(){const Dt=(Te==null?void 0:Te.autoScrollEnabled)===!1,Lt=typeof a=="object"?a.enabled===!1:a===!1,tn=M&&!Dt&&!Lt;return typeof a=="object"?{...a,enabled:tn}:{enabled:tn}}}),Q3=w.createContext(null),kS="button",Z3="Draggable";function e4(t){let{id:e,data:n,disabled:r=!1,attributes:i}=t;const s=Ym(Z3),{activators:o,activatorEvent:l,active:a,activeNodeRect:c,ariaDescribedById:u,draggableNodes:d,over:h}=w.useContext(qd),{role:p=kS,roleDescription:m="draggable",tabIndex:g=0}=i??{},v=(a==null?void 0:a.id)===e,y=w.useContext(v?Jm:Q3),[b,x]=up(),[C,S]=up(),M=$3(o,e),N=ud(n);lo(()=>(d.set(e,{id:e,key:s,node:b,activatorNode:C,data:N}),()=>{const ee=d.get(e);ee&&ee.key===s&&d.delete(e)}),[d,e]);const z=w.useMemo(()=>({role:p,tabIndex:g,"aria-disabled":r,"aria-pressed":v&&p===kS?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,g,v,m,u.draggable]);return{active:a,activatorEvent:l,activeNodeRect:c,attributes:z,isDragging:v,listeners:r?void 0:M,node:b,over:h,setNodeRef:x,setActivatorNodeRef:S,transform:y}}function t4(){return w.useContext(gM)}const n4="Droppable",r4={timeout:25};function i4(t){let{data:e,disabled:n=!1,id:r,resizeObserverConfig:i}=t;const s=Ym(n4),{active:o,dispatch:l,over:a,measureDroppableContainers:c}=w.useContext(qd),u=w.useRef({disabled:n}),d=w.useRef(!1),h=w.useRef(null),p=w.useRef(null),{disabled:m,updateMeasurementsFor:g,timeout:v}={...r4,...i},y=ud(g??r),b=w.useCallback(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{c(Array.isArray(y.current)?y.current:[y.current]),p.current=null},v)},[v]),x=qm({callback:b,disabled:m||!o}),C=w.useCallback((z,ee)=>{x&&(ee&&(x.unobserve(ee),d.current=!1),z&&x.observe(z))},[x]),[S,M]=up(C),N=ud(e);return w.useEffect(()=>{!x||!S.current||(x.disconnect(),d.current=!1,x.observe(S.current))},[S,x]),w.useEffect(()=>(l({type:Xn.RegisterDroppable,element:{id:r,key:s,disabled:n,node:S,rect:h,data:N}}),()=>l({type:Xn.UnregisterDroppable,key:s,id:r})),[r]),w.useEffect(()=>{n!==u.current.disabled&&(l({type:Xn.SetDroppableDisabled,id:r,key:s,disabled:n}),u.current.disabled=n)},[r,s,n,l]),{active:o,rect:h,isOver:(a==null?void 0:a.id)===r,node:S,over:a,setNodeRef:M}}function s4(t){let{animation:e,children:n}=t;const[r,i]=w.useState(null),[s,o]=w.useState(null),l=dp(n);return!n&&!r&&l&&i(l),lo(()=>{if(!s)return;const a=r==null?void 0:r.key,c=r==null?void 0:r.props.id;if(a==null||c==null){i(null);return}Promise.resolve(e(c,s)).then(()=>{i(null)})},[e,r,s]),B.createElement(B.Fragment,null,n,r?w.cloneElement(r,{ref:o}):null)}const o4={x:0,y:0,scaleX:1,scaleY:1};function l4(t){let{children:e}=t;return B.createElement(qd.Provider,{value:mM},B.createElement(Jm.Provider,{value:o4},e))}const a4={position:"fixed",touchAction:"none"},c4=t=>Dw(t)?"transform 250ms ease":void 0,u4=w.forwardRef((t,e)=>{let{as:n,activatorEvent:r,adjustScale:i,children:s,className:o,rect:l,style:a,transform:c,transition:u=c4}=t;if(!l)return null;const d=i?c:{...c,scaleX:1,scaleY:1},h={...a4,width:l.width,height:l.height,top:l.top,left:l.left,transform:dd.Transform.toString(d),transformOrigin:i&&r?Z_(r,l):void 0,transition:typeof u=="function"?u(r):u,...a};return B.createElement(n,{className:o,style:h,ref:e},s)}),d4=t=>e=>{let{active:n,dragOverlay:r}=e;const i={},{styles:s,className:o}=t;if(s!=null&&s.active)for(const[l,a]of Object.entries(s.active))a!==void 0&&(i[l]=n.node.style.getPropertyValue(l),n.node.style.setProperty(l,a));if(s!=null&&s.dragOverlay)for(const[l,a]of Object.entries(s.dragOverlay))a!==void 0&&r.node.style.setProperty(l,a);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(const[a,c]of Object.entries(i))n.node.style.setProperty(a,c);o!=null&&o.active&&n.node.classList.remove(o.active)}},f4=t=>{let{transform:{initial:e,final:n}}=t;return[{transform:dd.Transform.toString(e)},{transform:dd.Transform.toString(n)}]},h4={duration:250,easing:"ease",keyframes:f4,sideEffects:d4({styles:{active:{opacity:"0"}}})};function p4(t){let{config:e,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=t;return Km((s,o)=>{if(e===null)return;const l=n.get(s);if(!l)return;const a=l.node.current;if(!a)return;const c=pM(o);if(!c)return;const{transform:u}=qr(o).getComputedStyle(o),d=eM(u);if(!d)return;const h=typeof e=="function"?e:m4(e);return lM(a,i.draggable.measure),h({active:{id:s,data:l.data,node:a,rect:i.draggable.measure(a)},draggableNodes:n,dragOverlay:{node:o,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:d})})}function m4(t){const{duration:e,easing:n,sideEffects:r,keyframes:i}={...h4,...t};return s=>{let{active:o,dragOverlay:l,transform:a,...c}=s;if(!e)return;const u={x:l.rect.left-o.rect.left,y:l.rect.top-o.rect.top},d={scaleX:a.scaleX!==1?o.rect.width*a.scaleX/l.rect.width:1,scaleY:a.scaleY!==1?o.rect.height*a.scaleY/l.rect.height:1},h={x:a.x-u.x,y:a.y-u.y,...d},p=i({...c,active:o,dragOverlay:l,transform:{initial:a,final:h}}),[m]=p,g=p[p.length-1];if(JSON.stringify(m)===JSON.stringify(g))return;const v=r==null?void 0:r({active:o,dragOverlay:l,...c}),y=l.node.animate(p,{duration:e,easing:n,fill:"forwards"});return new Promise(b=>{y.onfinish=()=>{v==null||v(),b()}})}}let SS=0;function g4(t){return w.useMemo(()=>{if(t!=null)return SS++,SS},[t])}const y4=B.memo(t=>{let{adjustScale:e=!1,children:n,dropAnimation:r,style:i,transition:s,modifiers:o,wrapperElement:l="div",className:a,zIndex:c=999}=t;const{activatorEvent:u,active:d,activeNodeRect:h,containerNodeRect:p,draggableNodes:m,droppableContainers:g,dragOverlay:v,over:y,measuringConfiguration:b,scrollableAncestors:x,scrollableAncestorRects:C,windowRect:S}=t4(),M=w.useContext(Jm),N=g4(d==null?void 0:d.id),z=yM(o,{activatorEvent:u,active:d,activeNodeRect:h,containerNodeRect:p,draggingNodeRect:v.rect,over:y,overlayNodeRect:v.rect,scrollableAncestors:x,scrollableAncestorRects:C,transform:M,windowRect:S}),ee=Lw(h),L=p4({config:r,draggableNodes:m,droppableContainers:g,measuringConfiguration:b}),q=ee?v.setRef:void 0;return B.createElement(l4,null,B.createElement(s4,{animation:L},d&&N?B.createElement(u4,{key:N,id:d.id,ref:q,as:l,activatorEvent:u,adjustScale:e,className:a,transition:s,rect:ee,style:{zIndex:c,...i},transform:z},n):null))});/*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */const{entries:vM,setPrototypeOf:CS,isFrozen:v4,getPrototypeOf:b4,getOwnPropertyDescriptor:w4}=Object;let{freeze:Ur,seal:Li,create:y0}=Object,{apply:v0,construct:b0}=typeof Reflect<"u"&&Reflect;Ur||(Ur=function(e){return e});Li||(Li=function(e){return e});v0||(v0=function(e,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),s=2;s1?n-1:0),i=1;i1?n-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:kh;CS&&CS(t,null);let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){const s=n(i);s!==i&&(v4(e)||(e[r]=s),i=s)}t[i]=!0}return t}function N4(t){for(let e=0;e/gm),R4=Li(/\$\{[\w\W]*/gm),D4=Li(/^data-[\-\w.\u00B7-\uFFFF]+$/),O4=Li(/^aria-[\-\w]+$/),bM=Li(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),j4=Li(/^(?:\w+script|data):/i),P4=Li(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),wM=Li(/^html$/i),L4=Li(/^[a-z][.\w]*(-[.\w]+)+$/i);var IS=Object.freeze({__proto__:null,ARIA_ATTR:O4,ATTR_WHITESPACE:P4,CUSTOM_ELEMENT:L4,DATA_ATTR:D4,DOCTYPE_NAME:wM,ERB_EXPR:I4,IS_ALLOWED_URI:bM,IS_SCRIPT_OR_DATA:j4,MUSTACHE_EXPR:M4,TMPLIT_EXPR:R4});const su={element:1,text:3,progressingInstruction:7,comment:8,document:9},_4=function(){return typeof window>"u"?null:window},z4=function(e,n){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null;const i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(r=n.getAttribute(i));const s="dompurify"+(r?"#"+r:"");try{return e.createPolicy(s,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+s+" could not be created."),null}},RS=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function xM(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_4();const e=U=>xM(U);if(e.version="3.3.1",e.removed=[],!t||!t.document||t.document.nodeType!==su.document||!t.Element)return e.isSupported=!1,e;let{document:n}=t;const r=n,i=r.currentScript,{DocumentFragment:s,HTMLTemplateElement:o,Node:l,Element:a,NodeFilter:c,NamedNodeMap:u=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:d,DOMParser:h,trustedTypes:p}=t,m=a.prototype,g=iu(m,"cloneNode"),v=iu(m,"remove"),y=iu(m,"nextSibling"),b=iu(m,"childNodes"),x=iu(m,"parentNode");if(typeof o=="function"){const U=n.createElement("template");U.content&&U.content.ownerDocument&&(n=U.content.ownerDocument)}let C,S="";const{implementation:M,createNodeIterator:N,createDocumentFragment:z,getElementsByTagName:ee}=n,{importNode:L}=r;let q=RS();e.isSupported=typeof vM=="function"&&typeof x=="function"&&M&&M.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:X,ERB_EXPR:ye,TMPLIT_EXPR:Ce,DATA_ATTR:Te,ARIA_ATTR:se,IS_SCRIPT_OR_DATA:he,ATTR_WHITESPACE:J,CUSTOM_ELEMENT:me}=IS;let{IS_ALLOWED_URI:ue}=IS,fe=null;const W=qt({},[...NS,...wy,...xy,...ky,...TS]);let Le=null;const Ye=qt({},[...AS,...Sy,...MS,...$f]);let Y=Object.seal(y0(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ze=null,Pt=null;const it=Object.seal(y0(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let St=!0,Mt=!0,vt=!1,We=!0,ce=!1,Re=!0,qe=!1,It=!1,et=!1,kt=!1,bt=!1,Tt=!1,Ue=!0,nt=!1;const pt="user-content-";let Q=!0,F=!1,ae={},Se=null;const Pe=qt({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let D=null;const G=qt({},["audio","video","img","source","image","track"]);let de=null;const ve=qt({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),$e="http://www.w3.org/1998/Math/MathML",Ve="http://www.w3.org/2000/svg",Ne="http://www.w3.org/1999/xhtml";let Je=Ne,At=!1,rt=null;const Wt=qt({},[$e,Ve,Ne],vy);let Rt=qt({},["mi","mo","mn","ms","mtext"]),dn=qt({},["annotation-xml"]);const Dt=qt({},["title","style","font","a","script"]);let Lt=null;const tn=["application/xhtml+xml","text/html"],te="text/html";let re=null,je=null;const Xe=n.createElement("form"),ge=function(k){return k instanceof RegExp||k instanceof Function},Ae=function(){let k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(je&&je===k)){if((!k||typeof k!="object")&&(k={}),k=ps(k),Lt=tn.indexOf(k.PARSER_MEDIA_TYPE)===-1?te:k.PARSER_MEDIA_TYPE,re=Lt==="application/xhtml+xml"?vy:kh,fe=Vi(k,"ALLOWED_TAGS")?qt({},k.ALLOWED_TAGS,re):W,Le=Vi(k,"ALLOWED_ATTR")?qt({},k.ALLOWED_ATTR,re):Ye,rt=Vi(k,"ALLOWED_NAMESPACES")?qt({},k.ALLOWED_NAMESPACES,vy):Wt,de=Vi(k,"ADD_URI_SAFE_ATTR")?qt(ps(ve),k.ADD_URI_SAFE_ATTR,re):ve,D=Vi(k,"ADD_DATA_URI_TAGS")?qt(ps(G),k.ADD_DATA_URI_TAGS,re):G,Se=Vi(k,"FORBID_CONTENTS")?qt({},k.FORBID_CONTENTS,re):Pe,Ze=Vi(k,"FORBID_TAGS")?qt({},k.FORBID_TAGS,re):ps({}),Pt=Vi(k,"FORBID_ATTR")?qt({},k.FORBID_ATTR,re):ps({}),ae=Vi(k,"USE_PROFILES")?k.USE_PROFILES:!1,St=k.ALLOW_ARIA_ATTR!==!1,Mt=k.ALLOW_DATA_ATTR!==!1,vt=k.ALLOW_UNKNOWN_PROTOCOLS||!1,We=k.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ce=k.SAFE_FOR_TEMPLATES||!1,Re=k.SAFE_FOR_XML!==!1,qe=k.WHOLE_DOCUMENT||!1,kt=k.RETURN_DOM||!1,bt=k.RETURN_DOM_FRAGMENT||!1,Tt=k.RETURN_TRUSTED_TYPE||!1,et=k.FORCE_BODY||!1,Ue=k.SANITIZE_DOM!==!1,nt=k.SANITIZE_NAMED_PROPS||!1,Q=k.KEEP_CONTENT!==!1,F=k.IN_PLACE||!1,ue=k.ALLOWED_URI_REGEXP||bM,Je=k.NAMESPACE||Ne,Rt=k.MATHML_TEXT_INTEGRATION_POINTS||Rt,dn=k.HTML_INTEGRATION_POINTS||dn,Y=k.CUSTOM_ELEMENT_HANDLING||{},k.CUSTOM_ELEMENT_HANDLING&&ge(k.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Y.tagNameCheck=k.CUSTOM_ELEMENT_HANDLING.tagNameCheck),k.CUSTOM_ELEMENT_HANDLING&&ge(k.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Y.attributeNameCheck=k.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),k.CUSTOM_ELEMENT_HANDLING&&typeof k.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Y.allowCustomizedBuiltInElements=k.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ce&&(Mt=!1),bt&&(kt=!0),ae&&(fe=qt({},TS),Le=[],ae.html===!0&&(qt(fe,NS),qt(Le,AS)),ae.svg===!0&&(qt(fe,wy),qt(Le,Sy),qt(Le,$f)),ae.svgFilters===!0&&(qt(fe,xy),qt(Le,Sy),qt(Le,$f)),ae.mathMl===!0&&(qt(fe,ky),qt(Le,MS),qt(Le,$f))),k.ADD_TAGS&&(typeof k.ADD_TAGS=="function"?it.tagCheck=k.ADD_TAGS:(fe===W&&(fe=ps(fe)),qt(fe,k.ADD_TAGS,re))),k.ADD_ATTR&&(typeof k.ADD_ATTR=="function"?it.attributeCheck=k.ADD_ATTR:(Le===Ye&&(Le=ps(Le)),qt(Le,k.ADD_ATTR,re))),k.ADD_URI_SAFE_ATTR&&qt(de,k.ADD_URI_SAFE_ATTR,re),k.FORBID_CONTENTS&&(Se===Pe&&(Se=ps(Se)),qt(Se,k.FORBID_CONTENTS,re)),k.ADD_FORBID_CONTENTS&&(Se===Pe&&(Se=ps(Se)),qt(Se,k.ADD_FORBID_CONTENTS,re)),Q&&(fe["#text"]=!0),qe&&qt(fe,["html","head","body"]),fe.table&&(qt(fe,["tbody"]),delete Ze.tbody),k.TRUSTED_TYPES_POLICY){if(typeof k.TRUSTED_TYPES_POLICY.createHTML!="function")throw ru('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof k.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw ru('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');C=k.TRUSTED_TYPES_POLICY,S=C.createHTML("")}else C===void 0&&(C=z4(p,i)),C!==null&&typeof S=="string"&&(S=C.createHTML(""));Ur&&Ur(k),je=k}},ze=qt({},[...wy,...xy,...T4]),lt=qt({},[...ky,...A4]),$t=function(k){let V=x(k);(!V||!V.tagName)&&(V={namespaceURI:Je,tagName:"template"});const pe=kh(k.tagName),tt=kh(V.tagName);return rt[k.namespaceURI]?k.namespaceURI===Ve?V.namespaceURI===Ne?pe==="svg":V.namespaceURI===$e?pe==="svg"&&(tt==="annotation-xml"||Rt[tt]):!!ze[pe]:k.namespaceURI===$e?V.namespaceURI===Ne?pe==="math":V.namespaceURI===Ve?pe==="math"&&dn[tt]:!!lt[pe]:k.namespaceURI===Ne?V.namespaceURI===Ve&&!dn[tt]||V.namespaceURI===$e&&!Rt[tt]?!1:!lt[pe]&&(Dt[pe]||!ze[pe]):!!(Lt==="application/xhtml+xml"&&rt[k.namespaceURI]):!1},wt=function(k){tu(e.removed,{element:k});try{x(k).removeChild(k)}catch{v(k)}},Jt=function(k,V){try{tu(e.removed,{attribute:V.getAttributeNode(k),from:V})}catch{tu(e.removed,{attribute:null,from:V})}if(V.removeAttribute(k),k==="is")if(kt||bt)try{wt(V)}catch{}else try{V.setAttribute(k,"")}catch{}},_t=function(k){let V=null,pe=null;if(et)k=""+k;else{const Kt=by(k,/^[\r\n\t ]+/);pe=Kt&&Kt[0]}Lt==="application/xhtml+xml"&&Je===Ne&&(k=''+k+"");const tt=C?C.createHTML(k):k;if(Je===Ne)try{V=new h().parseFromString(tt,Lt)}catch{}if(!V||!V.documentElement){V=M.createDocument(Je,"template",null);try{V.documentElement.innerHTML=At?S:tt}catch{}}const Bt=V.body||V.documentElement;return k&&pe&&Bt.insertBefore(n.createTextNode(pe),Bt.childNodes[0]||null),Je===Ne?ee.call(V,qe?"html":"body")[0]:qe?V.documentElement:Bt},fn=function(k){return N.call(k.ownerDocument||k,k,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},bn=function(k){return k instanceof d&&(typeof k.nodeName!="string"||typeof k.textContent!="string"||typeof k.removeChild!="function"||!(k.attributes instanceof u)||typeof k.removeAttribute!="function"||typeof k.setAttribute!="function"||typeof k.namespaceURI!="string"||typeof k.insertBefore!="function"||typeof k.hasChildNodes!="function")},nn=function(k){return typeof l=="function"&&k instanceof l};function rn(U,k,V){Ff(U,pe=>{pe.call(e,k,V,je)})}const Pr=function(k){let V=null;if(rn(q.beforeSanitizeElements,k,null),bn(k))return wt(k),!0;const pe=re(k.nodeName);if(rn(q.uponSanitizeElement,k,{tagName:pe,allowedTags:fe}),Re&&k.hasChildNodes()&&!nn(k.firstElementChild)&&Lr(/<[/\w!]/g,k.innerHTML)&&Lr(/<[/\w!]/g,k.textContent)||k.nodeType===su.progressingInstruction||Re&&k.nodeType===su.comment&&Lr(/<[/\w]/g,k.data))return wt(k),!0;if(!(it.tagCheck instanceof Function&&it.tagCheck(pe))&&(!fe[pe]||Ze[pe])){if(!Ze[pe]&&H(pe)&&(Y.tagNameCheck instanceof RegExp&&Lr(Y.tagNameCheck,pe)||Y.tagNameCheck instanceof Function&&Y.tagNameCheck(pe)))return!1;if(Q&&!Se[pe]){const tt=x(k)||k.parentNode,Bt=b(k)||k.childNodes;if(Bt&&tt){const Kt=Bt.length;for(let Zt=Kt-1;Zt>=0;--Zt){const $n=g(Bt[Zt],!0);$n.__removalCount=(k.__removalCount||0)+1,tt.insertBefore($n,y(k))}}}return wt(k),!0}return k instanceof a&&!$t(k)||(pe==="noscript"||pe==="noembed"||pe==="noframes")&&Lr(/<\/no(script|embed|frames)/i,k.innerHTML)?(wt(k),!0):(ce&&k.nodeType===su.text&&(V=k.textContent,Ff([X,ye,Ce],tt=>{V=nu(V,tt," ")}),k.textContent!==V&&(tu(e.removed,{element:k.cloneNode()}),k.textContent=V)),rn(q.afterSanitizeElements,k,null),!1)},I=function(k,V,pe){if(Ue&&(V==="id"||V==="name")&&(pe in n||pe in Xe))return!1;if(!(Mt&&!Pt[V]&&Lr(Te,V))){if(!(St&&Lr(se,V))){if(!(it.attributeCheck instanceof Function&&it.attributeCheck(V,k))){if(!Le[V]||Pt[V]){if(!(H(k)&&(Y.tagNameCheck instanceof RegExp&&Lr(Y.tagNameCheck,k)||Y.tagNameCheck instanceof Function&&Y.tagNameCheck(k))&&(Y.attributeNameCheck instanceof RegExp&&Lr(Y.attributeNameCheck,V)||Y.attributeNameCheck instanceof Function&&Y.attributeNameCheck(V,k))||V==="is"&&Y.allowCustomizedBuiltInElements&&(Y.tagNameCheck instanceof RegExp&&Lr(Y.tagNameCheck,pe)||Y.tagNameCheck instanceof Function&&Y.tagNameCheck(pe))))return!1}else if(!de[V]){if(!Lr(ue,nu(pe,J,""))){if(!((V==="src"||V==="xlink:href"||V==="href")&&k!=="script"&&S4(pe,"data:")===0&&D[k])){if(!(vt&&!Lr(he,nu(pe,J,"")))){if(pe)return!1}}}}}}}return!0},H=function(k){return k!=="annotation-xml"&&by(k,me)},K=function(k){rn(q.beforeSanitizeAttributes,k,null);const{attributes:V}=k;if(!V||bn(k))return;const pe={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Le,forceKeepAttr:void 0};let tt=V.length;for(;tt--;){const Bt=V[tt],{name:Kt,namespaceURI:Zt,value:$n}=Bt,sn=re(Kt),A=$n;let ne=Kt==="value"?A:C4(A);if(pe.attrName=sn,pe.attrValue=ne,pe.keepAttr=!0,pe.forceKeepAttr=void 0,rn(q.uponSanitizeAttribute,k,pe),ne=pe.attrValue,nt&&(sn==="id"||sn==="name")&&(Jt(Kt,k),ne=pt+ne),Re&&Lr(/((--!?|])>)|<\/(style|title|textarea)/i,ne)){Jt(Kt,k);continue}if(sn==="attributename"&&by(ne,"href")){Jt(Kt,k);continue}if(pe.forceKeepAttr)continue;if(!pe.keepAttr){Jt(Kt,k);continue}if(!We&&Lr(/\/>/i,ne)){Jt(Kt,k);continue}ce&&Ff([X,ye,Ce],Z=>{ne=nu(ne,Z," ")});const xe=re(k.nodeName);if(!I(xe,sn,ne)){Jt(Kt,k);continue}if(C&&typeof p=="object"&&typeof p.getAttributeType=="function"&&!Zt)switch(p.getAttributeType(xe,sn)){case"TrustedHTML":{ne=C.createHTML(ne);break}case"TrustedScriptURL":{ne=C.createScriptURL(ne);break}}if(ne!==A)try{Zt?k.setAttributeNS(Zt,Kt,ne):k.setAttribute(Kt,ne),bn(k)?wt(k):ES(e.removed)}catch{Jt(Kt,k)}}rn(q.afterSanitizeAttributes,k,null)},oe=function U(k){let V=null;const pe=fn(k);for(rn(q.beforeSanitizeShadowDOM,k,null);V=pe.nextNode();)rn(q.uponSanitizeShadowNode,V,null),Pr(V),K(V),V.content instanceof s&&U(V.content);rn(q.afterSanitizeShadowDOM,k,null)};return e.sanitize=function(U){let k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},V=null,pe=null,tt=null,Bt=null;if(At=!U,At&&(U=""),typeof U!="string"&&!nn(U))if(typeof U.toString=="function"){if(U=U.toString(),typeof U!="string")throw ru("dirty is not a string, aborting")}else throw ru("toString is not a function");if(!e.isSupported)return U;if(It||Ae(k),e.removed=[],typeof U=="string"&&(F=!1),F){if(U.nodeName){const $n=re(U.nodeName);if(!fe[$n]||Ze[$n])throw ru("root node is forbidden and cannot be sanitized in-place")}}else if(U instanceof l)V=_t(""),pe=V.ownerDocument.importNode(U,!0),pe.nodeType===su.element&&pe.nodeName==="BODY"||pe.nodeName==="HTML"?V=pe:V.appendChild(pe);else{if(!kt&&!ce&&!qe&&U.indexOf("<")===-1)return C&&Tt?C.createHTML(U):U;if(V=_t(U),!V)return kt?null:Tt?S:""}V&&et&&wt(V.firstChild);const Kt=fn(F?U:V);for(;tt=Kt.nextNode();)Pr(tt),K(tt),tt.content instanceof s&&oe(tt.content);if(F)return U;if(kt){if(bt)for(Bt=z.call(V.ownerDocument);V.firstChild;)Bt.appendChild(V.firstChild);else Bt=V;return(Le.shadowroot||Le.shadowrootmode)&&(Bt=L.call(r,Bt,!0)),Bt}let Zt=qe?V.outerHTML:V.innerHTML;return qe&&fe["!doctype"]&&V.ownerDocument&&V.ownerDocument.doctype&&V.ownerDocument.doctype.name&&Lr(wM,V.ownerDocument.doctype.name)&&(Zt=" +`+Zt),ce&&Ff([X,ye,Ce],$n=>{Zt=nu(Zt,$n," ")}),C&&Tt?C.createHTML(Zt):Zt},e.setConfig=function(){let U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ae(U),It=!0},e.clearConfig=function(){je=null,It=!1},e.isValidAttribute=function(U,k,V){je||Ae({});const pe=re(U),tt=re(k);return I(pe,tt,V)},e.addHook=function(U,k){typeof k=="function"&&tu(q[U],k)},e.removeHook=function(U,k){if(k!==void 0){const V=x4(q[U],k);return V===-1?void 0:k4(q[U],V,1)[0]}return ES(q[U])},e.removeHooks=function(U){q[U]=[]},e.removeAllHooks=function(){q=RS()},e}var Sa=xM(),kM={exports:{}},SM={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var fc=w;function F4(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var $4=typeof Object.is=="function"?Object.is:F4,B4=fc.useState,U4=fc.useEffect,H4=fc.useLayoutEffect,V4=fc.useDebugValue;function W4(t,e){var n=e(),r=B4({inst:{value:n,getSnapshot:e}}),i=r[0].inst,s=r[1];return H4(function(){i.value=n,i.getSnapshot=e,Cy(i)&&s({inst:i})},[t,n,e]),U4(function(){return Cy(i)&&s({inst:i}),t(function(){Cy(i)&&s({inst:i})})},[t]),V4(n),n}function Cy(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!$4(t,n)}catch{return!0}}function K4(t,e){return e()}var Y4=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?K4:W4;SM.useSyncExternalStore=fc.useSyncExternalStore!==void 0?fc.useSyncExternalStore:Y4;kM.exports=SM;var _w=kM.exports;function mr(t){this.content=t}mr.prototype={constructor:mr,find:function(t){for(var e=0;e>1}};mr.from=function(t){if(t instanceof mr)return t;var e=[];if(t)for(var n in t)e.push(n,t[n]);return new mr(e)};function CM(t,e,n){for(let r=0;;r++){if(r==t.childCount||r==e.childCount)return t.childCount==e.childCount?null:n;let i=t.child(r),s=e.child(r);if(i==s){n+=i.nodeSize;continue}if(!i.sameMarkup(s))return n;if(i.isText&&i.text!=s.text){for(let o=0;i.text[o]==s.text[o];o++)n++;return n}if(i.content.size||s.content.size){let o=CM(i.content,s.content,n+1);if(o!=null)return o}n+=i.nodeSize}}function EM(t,e,n,r){for(let i=t.childCount,s=e.childCount;;){if(i==0||s==0)return i==s?null:{a:n,b:r};let o=t.child(--i),l=e.child(--s),a=o.nodeSize;if(o==l){n-=a,r-=a;continue}if(!o.sameMarkup(l))return{a:n,b:r};if(o.isText&&o.text!=l.text){let c=0,u=Math.min(o.text.length,l.text.length);for(;ce&&r(a,i+l,s||null,o)!==!1&&a.content.size){let u=l+1;a.nodesBetween(Math.max(0,e-u),Math.min(a.content.size,n-u),r,i+u)}l=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,n,r,i){let s="",o=!0;return this.nodesBetween(e,n,(l,a)=>{let c=l.isText?l.text.slice(Math.max(e,a)-a,n-a):l.isLeaf?i?typeof i=="function"?i(l):i:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&c||l.isTextblock)&&r&&(o?o=!1:s+=r),s+=c},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let n=this.lastChild,r=e.firstChild,i=this.content.slice(),s=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),s=1);se)for(let s=0,o=0;oe&&((on)&&(l.isText?l=l.cut(Math.max(0,e-o),Math.min(l.text.length,n-o)):l=l.cut(Math.max(0,e-o-1),Math.min(l.content.size,n-o-1))),r.push(l),i+=l.nodeSize),o=a}return new we(r,i)}cutByIndex(e,n){return e==n?we.empty:e==0&&n==this.content.length?this:new we(this.content.slice(e,n))}replaceChild(e,n){let r=this.content[e];if(r==n)return this;let i=this.content.slice(),s=this.size+n.nodeSize-r.nodeSize;return i[e]=n,new we(i,s)}addToStart(e){return new we([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new we(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let n=0;nthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let n=0,r=0;;n++){let i=this.child(n),s=r+i.nodeSize;if(s>=e)return s==e?Bf(n+1,s):Bf(n,r);r=s}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,n){if(!n)return we.empty;if(!Array.isArray(n))throw new RangeError("Invalid input for Fragment.fromJSON");return new we(n.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return we.empty;let n,r=0;for(let i=0;ithis.type.rank&&(n||(n=e.slice(0,i)),n.push(this),r=!0),n&&n.push(s)}}return n||(n=e.slice()),r||n.push(this),n}removeFromSet(e){for(let n=0;nr.type.rank-i.type.rank),n}};vn.none=[];class yp extends Error{}class _e{constructor(e,n,r){this.content=e,this.openStart=n,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,n){let r=TM(this.content,e+this.openStart,n);return r&&new _e(r,this.openStart,this.openEnd)}removeBetween(e,n){return new _e(NM(this.content,e+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,n){if(!n)return _e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!="number"||typeof i!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new _e(we.fromJSON(e,n.content),r,i)}static maxOpen(e,n=!0){let r=0,i=0;for(let s=e.firstChild;s&&!s.isLeaf&&(n||!s.type.spec.isolating);s=s.firstChild)r++;for(let s=e.lastChild;s&&!s.isLeaf&&(n||!s.type.spec.isolating);s=s.lastChild)i++;return new _e(e,r,i)}}_e.empty=new _e(we.empty,0,0);function NM(t,e,n){let{index:r,offset:i}=t.findIndex(e),s=t.maybeChild(r),{index:o,offset:l}=t.findIndex(n);if(i==e||s.isText){if(l!=n&&!t.child(o).isText)throw new RangeError("Removing non-flat range");return t.cut(0,e).append(t.cut(n))}if(r!=o)throw new RangeError("Removing non-flat range");return t.replaceChild(r,s.copy(NM(s.content,e-i-1,n-i-1)))}function TM(t,e,n,r){let{index:i,offset:s}=t.findIndex(e),o=t.maybeChild(i);if(s==e||o.isText)return r&&!r.canReplace(i,i,n)?null:t.cut(0,e).append(n).append(t.cut(e));let l=TM(o.content,e-s-1,n,o);return l&&t.replaceChild(i,o.copy(l))}function q4(t,e,n){if(n.openStart>t.depth)throw new yp("Inserted content deeper than insertion position");if(t.depth-n.openStart!=e.depth-n.openEnd)throw new yp("Inconsistent open depths");return AM(t,e,n,0)}function AM(t,e,n,r){let i=t.index(r),s=t.node(r);if(i==e.index(r)&&r=0&&t.isText&&t.sameMarkup(e[n])?e[n]=t.withText(e[n].text+t.text):e.push(t)}function Ru(t,e,n,r){let i=(e||t).node(n),s=0,o=e?e.index(n):i.childCount;t&&(s=t.index(n),t.depth>n?s++:t.textOffset&&(zl(t.nodeAfter,r),s++));for(let l=s;li&&x0(t,e,i+1),o=r.depth>i&&x0(n,r,i+1),l=[];return Ru(null,t,i,l),s&&o&&e.index(i)==n.index(i)?(MM(s,o),zl(Fl(s,IM(t,e,n,r,i+1)),l)):(s&&zl(Fl(s,vp(t,e,i+1)),l),Ru(e,n,i,l),o&&zl(Fl(o,vp(n,r,i+1)),l)),Ru(r,null,i,l),new we(l)}function vp(t,e,n){let r=[];if(Ru(null,t,n,r),t.depth>n){let i=x0(t,e,n+1);zl(Fl(i,vp(t,e,n+1)),r)}return Ru(e,null,n,r),new we(r)}function J4(t,e){let n=e.depth-t.openStart,i=e.node(n).copy(t.content);for(let s=n-1;s>=0;s--)i=e.node(s).copy(we.from(i));return{start:i.resolveNoCache(t.openStart+n),end:i.resolveNoCache(i.content.size-t.openEnd-n)}}class hd{constructor(e,n,r){this.pos=e,this.path=n,this.parentOffset=r,this.depth=n.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,n=this.index(this.depth);if(n==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],i=e.child(n);return r?e.child(n).cut(r):i}get nodeBefore(){let e=this.index(this.depth),n=this.pos-this.path[this.path.length-1];return n?this.parent.child(e).cut(0,n):e==0?null:this.parent.child(e-1)}posAtIndex(e,n){n=this.resolveDepth(n);let r=this.path[n*3],i=n==0?0:this.path[n*3-1]+1;for(let s=0;s0;n--)if(this.start(n)<=e&&this.end(n)>=e)return n;return 0}blockRange(e=this,n){if(e.pos=0;r--)if(e.pos<=this.end(r)&&(!n||n(this.node(r))))return new bp(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&n<=e.content.size))throw new RangeError("Position "+n+" out of range");let r=[],i=0,s=n;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(s),c=s-a;if(r.push(o,l,i+a),!c||(o=o.child(l),o.isText))break;s=c-1,i+=a+1}return new hd(n,r,s)}static resolveCached(e,n){let r=DS.get(e);if(r)for(let s=0;se&&this.nodesBetween(e,n,s=>(r.isInSet(s.marks)&&(i=!0),!i)),i}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),RM(this.marks,e)}contentMatchAt(e){let n=this.type.contentMatch.matchFragment(this.content,0,e);if(!n)throw new Error("Called contentMatchAt on a node with invalid content");return n}canReplace(e,n,r=we.empty,i=0,s=r.childCount){let o=this.contentMatchAt(e).matchFragment(r,i,s),l=o&&o.matchFragment(this.content,n);if(!l||!l.validEnd)return!1;for(let a=i;an.type.name)}`);this.content.forEach(n=>n.check())}toJSON(){let e={type:this.type.name};for(let n in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(n=>n.toJSON())),e}static fromJSON(e,n){if(!n)throw new RangeError("Invalid input for Node.fromJSON");let r;if(n.marks){if(!Array.isArray(n.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=n.marks.map(e.markFromJSON)}if(n.type=="text"){if(typeof n.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(n.text,r)}let i=we.fromJSON(e,n.content),s=e.nodeType(n.type).create(n.attrs,i,r);return s.type.checkAttrs(s.attrs),s}};Qo.prototype.text=void 0;class wp extends Qo{constructor(e,n,r,i){if(super(e,n,null,i),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):RM(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,n){return this.text.slice(e,n)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new wp(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new wp(this.type,this.attrs,e,this.marks)}cut(e=0,n=this.text.length){return e==0&&n==this.text.length?this:this.withText(this.text.slice(e,n))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function RM(t,e){for(let n=t.length-1;n>=0;n--)e=t[n].type.name+"("+e+")";return e}class Gl{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,n){let r=new Z4(e,n);if(r.next==null)return Gl.empty;let i=DM(r);r.next&&r.err("Unexpected trailing text");let s=oz(sz(i));return lz(s,r),s}matchType(e){for(let n=0;nc.createAndFill()));for(let c=0;c=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function n(r){e.push(r);for(let i=0;i{let s=i+(r.validEnd?"*":" ")+" ";for(let o=0;o"+e.indexOf(r.next[o].next);return s}).join(` +`)}}Gl.empty=new Gl(!0);class Z4{constructor(e,n){this.string=e,this.nodeTypes=n,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function DM(t){let e=[];do e.push(ez(t));while(t.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function ez(t){let e=[];do e.push(tz(t));while(t.next&&t.next!=")"&&t.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function tz(t){let e=iz(t);for(;;)if(t.eat("+"))e={type:"plus",expr:e};else if(t.eat("*"))e={type:"star",expr:e};else if(t.eat("?"))e={type:"opt",expr:e};else if(t.eat("{"))e=nz(t,e);else break;return e}function OS(t){/\D/.test(t.next)&&t.err("Expected number, got '"+t.next+"'");let e=Number(t.next);return t.pos++,e}function nz(t,e){let n=OS(t),r=n;return t.eat(",")&&(t.next!="}"?r=OS(t):r=-1),t.eat("}")||t.err("Unclosed braced range"),{type:"range",min:n,max:r,expr:e}}function rz(t,e){let n=t.nodeTypes,r=n[e];if(r)return[r];let i=[];for(let s in n){let o=n[s];o.isInGroup(e)&&i.push(o)}return i.length==0&&t.err("No node type or group '"+e+"' found"),i}function iz(t){if(t.eat("(")){let e=DM(t);return t.eat(")")||t.err("Missing closing paren"),e}else if(/\W/.test(t.next))t.err("Unexpected token '"+t.next+"'");else{let e=rz(t,t.next).map(n=>(t.inline==null?t.inline=n.isInline:t.inline!=n.isInline&&t.err("Mixing inline and block content"),{type:"name",value:n}));return t.pos++,e.length==1?e[0]:{type:"choice",exprs:e}}}function sz(t){let e=[[]];return i(s(t,0),n()),e;function n(){return e.push([])-1}function r(o,l,a){let c={term:a,to:l};return e[o].push(c),c}function i(o,l){o.forEach(a=>a.to=l)}function s(o,l){if(o.type=="choice")return o.exprs.reduce((a,c)=>a.concat(s(c,l)),[]);if(o.type=="seq")for(let a=0;;a++){let c=s(o.exprs[a],l);if(a==o.exprs.length-1)return c;i(c,l=n())}else if(o.type=="star"){let a=n();return r(l,a),i(s(o.expr,a),a),[r(a)]}else if(o.type=="plus"){let a=n();return i(s(o.expr,l),a),i(s(o.expr,a),a),[r(a)]}else{if(o.type=="opt")return[r(l)].concat(s(o.expr,l));if(o.type=="range"){let a=l;for(let c=0;c{t[o].forEach(({term:l,to:a})=>{if(!l)return;let c;for(let u=0;u{c||i.push([l,c=[]]),c.indexOf(u)==-1&&c.push(u)})})});let s=e[r.join(",")]=new Gl(r.indexOf(t.length-1)>-1);for(let o=0;o-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:PM(this.attrs,e)}create(e=null,n,r){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new Qo(this,this.computeAttrs(e),we.from(n),vn.setFrom(r))}createChecked(e=null,n,r){return n=we.from(n),this.checkContent(n),new Qo(this,this.computeAttrs(e),n,vn.setFrom(r))}createAndFill(e=null,n,r){if(e=this.computeAttrs(e),n=we.from(n),n.size){let o=this.contentMatch.fillBefore(n);if(!o)return null;n=o.append(n)}let i=this.contentMatch.matchFragment(n),s=i&&i.fillBefore(we.empty,!0);return s?new Qo(this,e,n.append(s),vn.setFrom(r)):null}validContent(e){let n=this.contentMatch.matchFragment(e);if(!n||!n.validEnd)return!1;for(let r=0;r-1}allowsMarks(e){if(this.markSet==null)return!0;for(let n=0;nr[s]=new zM(s,n,o));let i=n.spec.topNode||"doc";if(!r[i])throw new RangeError("Schema is missing its top node type ('"+i+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let s in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}};function az(t,e,n){let r=n.split("|");return i=>{let s=i===null?"null":typeof i;if(r.indexOf(s)<0)throw new RangeError(`Expected value of type ${r} for attribute ${e} on type ${t}, got ${s}`)}}class cz{constructor(e,n,r){this.hasDefault=Object.prototype.hasOwnProperty.call(r,"default"),this.default=r.default,this.validate=typeof r.validate=="string"?az(e,n,r.validate):r.validate}get isRequired(){return!this.hasDefault}}class Gm{constructor(e,n,r,i){this.name=e,this.rank=n,this.schema=r,this.spec=i,this.attrs=_M(e,i.attrs),this.excluded=null;let s=jM(this.attrs);this.instance=s?new vn(this,s):null}create(e=null){return!e&&this.instance?this.instance:new vn(this,PM(this.attrs,e))}static compile(e,n){let r=Object.create(null),i=0;return e.forEach((s,o)=>r[s]=new Gm(s,i++,n,o)),r}removeFromSet(e){for(var n=0;n-1}}let FM=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let n=this.spec={};for(let i in e)n[i]=e[i];n.nodes=mr.from(e.nodes),n.marks=mr.from(e.marks||{}),this.nodes=PS.compile(this.spec.nodes,this),this.marks=Gm.compile(this.spec.marks,this);let r=Object.create(null);for(let i in this.nodes){if(i in this.marks)throw new RangeError(i+" can not be both a node and a mark");let s=this.nodes[i],o=s.spec.content||"",l=s.spec.marks;if(s.contentMatch=r[o]||(r[o]=Gl.parse(o,this.nodes)),s.inlineContent=s.contentMatch.inlineContent,s.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!s.isInline||!s.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=s}s.markSet=l=="_"?null:l?LS(this,l.split(" ")):l==""||!s.inlineContent?[]:null}for(let i in this.marks){let s=this.marks[i],o=s.spec.excludes;s.excluded=o==null?[s]:o==""?[]:LS(this,o.split(" "))}this.nodeFromJSON=i=>Qo.fromJSON(this,i),this.markFromJSON=i=>vn.fromJSON(this,i),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,n=null,r,i){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof PS){if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}else throw new RangeError("Invalid node type: "+e);return e.createChecked(n,r,i)}text(e,n){let r=this.nodes.text;return new wp(r,r.defaultAttrs,e,vn.setFrom(n))}mark(e,n){return typeof e=="string"&&(e=this.marks[e]),e.create(n)}nodeType(e){let n=this.nodes[e];if(!n)throw new RangeError("Unknown node type: "+e);return n}};function LS(t,e){let n=[];for(let r=0;r-1)&&n.push(o=a)}if(!o)throw new SyntaxError("Unknown mark type: '"+e[r]+"'")}return n}function uz(t){return t.tag!=null}function dz(t){return t.style!=null}let Du=class S0{constructor(e,n){this.schema=e,this.rules=n,this.tags=[],this.styles=[];let r=this.matchedStyles=[];n.forEach(i=>{if(uz(i))this.tags.push(i);else if(dz(i)){let s=/[^=]*/.exec(i.style)[0];r.indexOf(s)<0&&r.push(s),this.styles.push(i)}}),this.normalizeLists=!this.tags.some(i=>{if(!/^(ul|ol)\b/.test(i.tag)||!i.node)return!1;let s=e.nodes[i.node];return s.contentMatch.matchType(s)})}parse(e,n={}){let r=new zS(this,n,!1);return r.addAll(e,vn.none,n.from,n.to),r.finish()}parseSlice(e,n={}){let r=new zS(this,n,!0);return r.addAll(e,vn.none,n.from,n.to),_e.maxOpen(r.finish())}matchTag(e,n,r){for(let i=r?this.tags.indexOf(r)+1:0;ie.length&&(l.charCodeAt(e.length)!=61||l.slice(e.length+1)!=n))){if(o.getAttrs){let a=o.getAttrs(n);if(a===!1)continue;o.attrs=a||void 0}return o}}}static schemaRules(e){let n=[];function r(i){let s=i.priority==null?50:i.priority,o=0;for(;o{r(o=FS(o)),o.mark||o.ignore||o.clearMark||(o.mark=i)})}for(let i in e.nodes){let s=e.nodes[i].spec.parseDOM;s&&s.forEach(o=>{r(o=FS(o)),o.node||o.ignore||o.mark||(o.node=i)})}return n}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new S0(e,S0.schemaRules(e)))}};const $M={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},fz={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},BM={ol:!0,ul:!0},pd=1,C0=2,Ou=4;function _S(t,e,n){return e!=null?(e?pd:0)|(e==="full"?C0:0):t&&t.whitespace=="pre"?pd|C0:n&~Ou}class Uf{constructor(e,n,r,i,s,o){this.type=e,this.attrs=n,this.marks=r,this.solid=i,this.options=o,this.content=[],this.activeMarks=vn.none,this.match=s||(o&Ou?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let n=this.type.contentMatch.fillBefore(we.from(e));if(n)this.match=this.type.contentMatch.matchFragment(n);else{let r=this.type.contentMatch,i;return(i=r.findWrapping(e.type))?(this.match=r,i):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&pd)){let r=this.content[this.content.length-1],i;if(r&&r.isText&&(i=/[ \t\r\n\u000c]+$/.exec(r.text))){let s=r;r.text.length==i[0].length?this.content.pop():this.content[this.content.length-1]=s.withText(s.text.slice(0,s.text.length-i[0].length))}}let n=we.from(this.content);return!e&&this.match&&(n=n.append(this.match.fillBefore(we.empty,!0))),this.type?this.type.create(this.attrs,n,this.marks):n}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!$M.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class zS{constructor(e,n,r){this.parser=e,this.options=n,this.isOpen=r,this.open=0,this.localPreserveWS=!1;let i=n.topNode,s,o=_S(null,n.preserveWhitespace,0)|(r?Ou:0);i?s=new Uf(i.type,i.attrs,vn.none,!0,n.topMatch||i.type.contentMatch,o):r?s=new Uf(null,null,vn.none,!0,null,o):s=new Uf(e.schema.topNodeType,null,vn.none,!0,null,o),this.nodes=[s],this.find=n.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,n){e.nodeType==3?this.addTextNode(e,n):e.nodeType==1&&this.addElement(e,n)}addTextNode(e,n){let r=e.nodeValue,i=this.top,s=i.options&C0?"full":this.localPreserveWS||(i.options&pd)>0,{schema:o}=this.parser;if(s==="full"||i.inlineContext(e)||/[^ \t\r\n\u000c]/.test(r)){if(s)if(s==="full")r=r.replace(/\r\n?/g,` +`);else if(o.linebreakReplacement&&/[\r\n]/.test(r)&&this.top.findWrapping(o.linebreakReplacement.create())){let l=r.split(/\r?\n|\r/);for(let a=0;a!a.clearMark(c)):n=n.concat(this.parser.schema.marks[a.mark].create(a.attrs)),a.consuming===!1)l=a;else break}}return n}addElementByRule(e,n,r,i){let s,o;if(n.node)if(o=this.parser.schema.nodes[n.node],o.isLeaf)this.insertNode(o.create(n.attrs),r,e.nodeName=="BR")||this.leafFallback(e,r);else{let a=this.enter(o,n.attrs||null,r,n.preserveWhitespace);a&&(s=!0,r=a)}else{let a=this.parser.schema.marks[n.mark];r=r.concat(a.create(n.attrs))}let l=this.top;if(o&&o.isLeaf)this.findInside(e);else if(i)this.addElement(e,r,i);else if(n.getContent)this.findInside(e),n.getContent(e,this.parser.schema).forEach(a=>this.insertNode(a,r,!1));else{let a=e;typeof n.contentElement=="string"?a=e.querySelector(n.contentElement):typeof n.contentElement=="function"?a=n.contentElement(e):n.contentElement&&(a=n.contentElement),this.findAround(e,a,!0),this.addAll(a,r),this.findAround(e,a,!1)}s&&this.sync(l)&&this.open--}addAll(e,n,r,i){let s=r||0;for(let o=r?e.childNodes[r]:e.firstChild,l=i==null?null:e.childNodes[i];o!=l;o=o.nextSibling,++s)this.findAtPoint(e,s),this.addDOM(o,n);this.findAtPoint(e,s)}findPlace(e,n,r){let i,s;for(let o=this.open,l=0;o>=0;o--){let a=this.nodes[o],c=a.findWrapping(e);if(c&&(!i||i.length>c.length+l)&&(i=c,s=a,!c.length))break;if(a.solid){if(r)break;l+=2}}if(!i)return null;this.sync(s);for(let o=0;o(o.type?o.type.allowsMarkType(c.type):$S(c.type,e))?(a=c.addToSet(a),!1):!0),this.nodes.push(new Uf(e,n,a,i,null,l)),this.open++,r}closeExtra(e=!1){let n=this.nodes.length-1;if(n>this.open){for(;n>this.open;n--)this.nodes[n-1].content.push(this.nodes[n].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let n=this.open;n>=0;n--){if(this.nodes[n]==e)return this.open=n,!0;this.localPreserveWS&&(this.nodes[n].options|=pd)}return!1}get currentPos(){this.closeExtra();let e=0;for(let n=this.open;n>=0;n--){let r=this.nodes[n].content;for(let i=r.length-1;i>=0;i--)e+=r[i].nodeSize;n&&e++}return e}findAtPoint(e,n){if(this.find)for(let r=0;r-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let n=e.split("/"),r=this.options.context,i=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),s=-(r?r.depth+1:0)+(i?0:1),o=(l,a)=>{for(;l>=0;l--){let c=n[l];if(c==""){if(l==n.length-1||l==0)continue;for(;a>=s;a--)if(o(l-1,a))return!0;return!1}else{let u=a>0||a==0&&i?this.nodes[a].type:r&&a>=s?r.node(a-s).type:null;if(!u||u.name!=c&&!u.isInGroup(c))return!1;a--}}return!0};return o(n.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let n=e.depth;n>=0;n--){let r=e.node(n).contentMatchAt(e.indexAfter(n)).defaultType;if(r&&r.isTextblock&&r.defaultAttrs)return r}for(let n in this.parser.schema.nodes){let r=this.parser.schema.nodes[n];if(r.isTextblock&&r.defaultAttrs)return r}}}function hz(t){for(let e=t.firstChild,n=null;e;e=e.nextSibling){let r=e.nodeType==1?e.nodeName.toLowerCase():null;r&&BM.hasOwnProperty(r)&&n?(n.appendChild(e),e=n):r=="li"?n=e:r&&(n=null)}}function pz(t,e){return(t.matches||t.msMatchesSelector||t.webkitMatchesSelector||t.mozMatchesSelector).call(t,e)}function FS(t){let e={};for(let n in t)e[n]=t[n];return e}function $S(t,e){let n=e.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(t))continue;let s=[],o=l=>{s.push(l);for(let a=0;a{if(s.length||o.marks.length){let l=0,a=0;for(;l=0;i--){let s=this.serializeMark(e.marks[i],e.isInline,n);s&&((s.contentDOM||s.dom).appendChild(r),r=s.dom)}return r}serializeMark(e,n,r={}){let i=this.marks[e.type.name];return i&&Sh(Ny(r),i(e,n),null,e.attrs)}static renderSpec(e,n,r=null,i){return Sh(e,n,r,i)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new ua(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let n=BS(e.nodes);return n.text||(n.text=r=>r.text),n}static marksFromSchema(e){return BS(e.marks)}}function BS(t){let e={};for(let n in t){let r=t[n].spec.toDOM;r&&(e[n]=r)}return e}function Ny(t){return t.document||window.document}const US=new WeakMap;function mz(t){let e=US.get(t);return e===void 0&&US.set(t,e=gz(t)),e}function gz(t){let e=null;function n(r){if(r&&typeof r=="object")if(Array.isArray(r))if(typeof r[0]=="string")e||(e=[]),e.push(r);else for(let i=0;i-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let o=i.indexOf(" ");o>0&&(n=i.slice(0,o),i=i.slice(o+1));let l,a=n?t.createElementNS(n,i):t.createElement(i),c=e[1],u=1;if(c&&typeof c=="object"&&c.nodeType==null&&!Array.isArray(c)){u=2;for(let d in c)if(c[d]!=null){let h=d.indexOf(" ");h>0?a.setAttributeNS(d.slice(0,h),d.slice(h+1),c[d]):d=="style"&&a.style?a.style.cssText=c[d]:a.setAttribute(d,c[d])}}for(let d=u;du)throw new RangeError("Content hole must be the only child of its parent node");return{dom:a,contentDOM:a}}else{let{dom:p,contentDOM:m}=Sh(t,h,n,r);if(a.appendChild(p),m){if(l)throw new RangeError("Multiple content holes");l=m}}}return{dom:a,contentDOM:l}}const UM=65535,HM=Math.pow(2,16);function yz(t,e){return t+e*HM}function HS(t){return t&UM}function vz(t){return(t-(t&UM))/HM}const VM=1,WM=2,Ch=4,KM=8;class E0{constructor(e,n,r){this.pos=e,this.delInfo=n,this.recover=r}get deleted(){return(this.delInfo&KM)>0}get deletedBefore(){return(this.delInfo&(VM|Ch))>0}get deletedAfter(){return(this.delInfo&(WM|Ch))>0}get deletedAcross(){return(this.delInfo&Ch)>0}}class ui{constructor(e,n=!1){if(this.ranges=e,this.inverted=n,!e.length&&ui.empty)return ui.empty}recover(e){let n=0,r=HS(e);if(!this.inverted)for(let i=0;ie)break;let c=this.ranges[l+s],u=this.ranges[l+o],d=a+c;if(e<=d){let h=c?e==a?-1:e==d?1:n:n,p=a+i+(h<0?0:u);if(r)return p;let m=e==(n<0?a:d)?null:yz(l/3,e-a),g=e==a?WM:e==d?VM:Ch;return(n<0?e!=a:e!=d)&&(g|=KM),new E0(p,g,m)}i+=u-c}return r?e+i:new E0(e+i,0,null)}touches(e,n){let r=0,i=HS(n),s=this.inverted?2:1,o=this.inverted?1:2;for(let l=0;le)break;let c=this.ranges[l+s],u=a+c;if(e<=u&&l==i*3)return!0;r+=this.ranges[l+o]-c}return!1}forEach(e){let n=this.inverted?2:1,r=this.inverted?1:2;for(let i=0,s=0;i=0;n--){let i=e.getMirror(n);this.appendMap(e._maps[n].invert(),i!=null&&i>n?r-i-1:void 0)}}invert(){let e=new md;return e.appendMappingInverted(this),e}map(e,n=1){if(this.mirror)return this._map(e,n,!0);for(let r=this.from;rs&&a!o.isAtom||!l.type.allowsMarkType(this.mark.type)?o:o.mark(this.mark.addToSet(o.marks)),i),n.openStart,n.openEnd);return Wn.fromReplace(e,this.from,this.to,s)}invert(){return new Ji(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new $o(n.pos,r.pos,this.mark)}merge(e){return e instanceof $o&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new $o(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new $o(n.from,n.to,e.markFromJSON(n.mark))}}Or.jsonID("addMark",$o);class Ji extends Or{constructor(e,n,r){super(),this.from=e,this.to=n,this.mark=r}apply(e){let n=e.slice(this.from,this.to),r=new _e(zw(n.content,i=>i.mark(this.mark.removeFromSet(i.marks)),e),n.openStart,n.openEnd);return Wn.fromReplace(e,this.from,this.to,r)}invert(){return new $o(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new Ji(n.pos,r.pos,this.mark)}merge(e){return e instanceof Ji&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Ji(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new Ji(n.from,n.to,e.markFromJSON(n.mark))}}Or.jsonID("removeMark",Ji);class Bo extends Or{constructor(e,n){super(),this.pos=e,this.mark=n}apply(e){let n=e.nodeAt(this.pos);if(!n)return Wn.fail("No node at mark step's position");let r=n.type.create(n.attrs,null,this.mark.addToSet(n.marks));return Wn.fromReplace(e,this.pos,this.pos+1,new _e(we.from(r),0,n.isLeaf?0:1))}invert(e){let n=e.nodeAt(this.pos);if(n){let r=this.mark.addToSet(n.marks);if(r.length==n.marks.length){for(let i=0;ir.pos?null:new cr(n.pos,r.pos,i,s,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number"||typeof n.gapFrom!="number"||typeof n.gapTo!="number"||typeof n.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new cr(n.from,n.to,n.gapFrom,n.gapTo,_e.fromJSON(e,n.slice),n.insert,!!n.structure)}}Or.jsonID("replaceAround",cr);function N0(t,e,n){let r=t.resolve(e),i=n-e,s=r.depth;for(;i>0&&s>0&&r.indexAfter(s)==r.node(s).childCount;)s--,i--;if(i>0){let o=r.node(s).maybeChild(r.indexAfter(s));for(;i>0;){if(!o||o.isLeaf)return!0;o=o.firstChild,i--}}return!1}function bz(t,e,n,r){let i=[],s=[],o,l;t.doc.nodesBetween(e,n,(a,c,u)=>{if(!a.isInline)return;let d=a.marks;if(!r.isInSet(d)&&u.type.allowsMarkType(r.type)){let h=Math.max(c,e),p=Math.min(c+a.nodeSize,n),m=r.addToSet(d);for(let g=0;gt.step(a)),s.forEach(a=>t.step(a))}function wz(t,e,n,r){let i=[],s=0;t.doc.nodesBetween(e,n,(o,l)=>{if(!o.isInline)return;s++;let a=null;if(r instanceof Gm){let c=o.marks,u;for(;u=r.isInSet(c);)(a||(a=[])).push(u),c=u.removeFromSet(c)}else r?r.isInSet(o.marks)&&(a=[r]):a=o.marks;if(a&&a.length){let c=Math.min(l+o.nodeSize,n);for(let u=0;ut.step(new Ji(o.from,o.to,o.style)))}function Fw(t,e,n,r=n.contentMatch,i=!0){let s=t.doc.nodeAt(e),o=[],l=e+1;for(let a=0;a=0;a--)t.step(o[a])}function xz(t,e,n){return(e==0||t.canReplace(e,t.childCount))&&(n==t.childCount||t.canReplace(0,n))}function Pc(t){let n=t.parent.content.cutByIndex(t.startIndex,t.endIndex);for(let r=t.depth,i=0,s=0;;--r){let o=t.$from.node(r),l=t.$from.index(r)+i,a=t.$to.indexAfter(r)-s;if(rn;m--)g||r.index(m)>0?(g=!0,u=we.from(r.node(m).copy(u)),d++):a--;let h=we.empty,p=0;for(let m=s,g=!1;m>n;m--)g||i.after(m+1)=0;o--){if(r.size){let l=n[o].type.contentMatch.matchFragment(r);if(!l||!l.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}r=we.from(n[o].type.create(n[o].attrs,r))}let i=e.start,s=e.end;t.step(new cr(i,s,i,s,new _e(r,0,0),n.length,!0))}function Nz(t,e,n,r,i){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let s=t.steps.length;t.doc.nodesBetween(e,n,(o,l)=>{let a=typeof i=="function"?i(o):i;if(o.isTextblock&&!o.hasMarkup(r,a)&&Tz(t.doc,t.mapping.slice(s).map(l),r)){let c=null;if(r.schema.linebreakReplacement){let p=r.whitespace=="pre",m=!!r.contentMatch.matchType(r.schema.linebreakReplacement);p&&!m?c=!1:!p&&m&&(c=!0)}c===!1&&qM(t,o,l,s),Fw(t,t.mapping.slice(s).map(l,1),r,void 0,c===null);let u=t.mapping.slice(s),d=u.map(l,1),h=u.map(l+o.nodeSize,1);return t.step(new cr(d,h,d+1,h-1,new _e(we.from(r.create(a,null,o.marks)),0,0),1,!0)),c===!0&&YM(t,o,l,s),!1}})}function YM(t,e,n,r){e.forEach((i,s)=>{if(i.isText){let o,l=/\r?\n|\r/g;for(;o=l.exec(i.text);){let a=t.mapping.slice(r).map(n+1+s+o.index);t.replaceWith(a,a+1,e.type.schema.linebreakReplacement.create())}}})}function qM(t,e,n,r){e.forEach((i,s)=>{if(i.type==i.type.schema.linebreakReplacement){let o=t.mapping.slice(r).map(n+1+s);t.replaceWith(o,o+1,e.type.schema.text(` +`))}})}function Tz(t,e,n){let r=t.resolve(e),i=r.index();return r.parent.canReplaceWith(i,i+1,n)}function Az(t,e,n,r,i){let s=t.doc.nodeAt(e);if(!s)throw new RangeError("No node at given position");n||(n=s.type);let o=n.create(r,null,i||s.marks);if(s.isLeaf)return t.replaceWith(e,e+s.nodeSize,o);if(!n.validContent(s.content))throw new RangeError("Invalid content for node type "+n.name);t.step(new cr(e,e+s.nodeSize,e+1,e+s.nodeSize-1,new _e(we.from(o),0,0),1,!0))}function Zs(t,e,n=1,r){let i=t.resolve(e),s=i.depth-n,o=r&&r[r.length-1]||i.parent;if(s<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!o.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let c=i.depth-1,u=n-2;c>s;c--,u--){let d=i.node(c),h=i.index(c);if(d.type.spec.isolating)return!1;let p=d.content.cutByIndex(h,d.childCount),m=r&&r[u+1];m&&(p=p.replaceChild(0,m.type.create(m.attrs)));let g=r&&r[u]||d;if(!d.canReplace(h+1,d.childCount)||!g.type.validContent(p))return!1}let l=i.indexAfter(s),a=r&&r[0];return i.node(s).canReplaceWith(l,l,a?a.type:i.node(s+1).type)}function Mz(t,e,n=1,r){let i=t.doc.resolve(e),s=we.empty,o=we.empty;for(let l=i.depth,a=i.depth-n,c=n-1;l>a;l--,c--){s=we.from(i.node(l).copy(s));let u=r&&r[c];o=we.from(u?u.type.create(u.attrs,o):i.node(l).copy(o))}t.step(new or(e,e,new _e(s.append(o),n,n),!0))}function vl(t,e){let n=t.resolve(e),r=n.index();return JM(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(r,r+1)}function Iz(t,e){e.content.size||t.type.compatibleContent(e.type);let n=t.contentMatchAt(t.childCount),{linebreakReplacement:r}=t.type.schema;for(let i=0;i0?(s=r.node(i+1),l++,o=r.node(i).maybeChild(l)):(s=r.node(i).maybeChild(l-1),o=r.node(i+1)),s&&!s.isTextblock&&JM(s,o)&&r.node(i).canReplace(l,l+1))return e;if(i==0)break;e=n<0?r.before(i):r.after(i)}}function Rz(t,e,n){let r=null,{linebreakReplacement:i}=t.doc.type.schema,s=t.doc.resolve(e-n),o=s.node().type;if(i&&o.inlineContent){let u=o.whitespace=="pre",d=!!o.contentMatch.matchType(i);u&&!d?r=!1:!u&&d&&(r=!0)}let l=t.steps.length;if(r===!1){let u=t.doc.resolve(e+n);qM(t,u.node(),u.before(),l)}o.inlineContent&&Fw(t,e+n-1,o,s.node().contentMatchAt(s.index()),r==null);let a=t.mapping.slice(l),c=a.map(e-n);if(t.step(new or(c,a.map(e+n,-1),_e.empty,!0)),r===!0){let u=t.doc.resolve(c);YM(t,u.node(),u.before(),t.steps.length)}return t}function Dz(t,e,n){let r=t.resolve(e);if(r.parent.canReplaceWith(r.index(),r.index(),n))return e;if(r.parentOffset==0)for(let i=r.depth-1;i>=0;i--){let s=r.index(i);if(r.node(i).canReplaceWith(s,s,n))return r.before(i+1);if(s>0)return null}if(r.parentOffset==r.parent.content.size)for(let i=r.depth-1;i>=0;i--){let s=r.indexAfter(i);if(r.node(i).canReplaceWith(s,s,n))return r.after(i+1);if(s=0;o--){let l=o==r.depth?0:r.pos<=(r.start(o+1)+r.end(o+1))/2?-1:1,a=r.index(o)+(l>0?1:0),c=r.node(o),u=!1;if(s==1)u=c.canReplace(a,a,i);else{let d=c.contentMatchAt(a).findWrapping(i.firstChild.type);u=d&&c.canReplaceWith(a,a,d[0])}if(u)return l==0?r.pos:l<0?r.before(o+1):r.after(o+1)}return null}function Qm(t,e,n=e,r=_e.empty){if(e==n&&!r.size)return null;let i=t.resolve(e),s=t.resolve(n);return XM(i,s,r)?new or(e,n,r):new Oz(i,s,r).fit()}function XM(t,e,n){return!n.openStart&&!n.openEnd&&t.start()==e.start()&&t.parent.canReplace(t.index(),e.index(),n.content)}class Oz{constructor(e,n,r){this.$from=e,this.$to=n,this.unplaced=r,this.frontier=[],this.placed=we.empty;for(let i=0;i<=e.depth;i++){let s=e.node(i);this.frontier.push({type:s.type,match:s.contentMatchAt(e.indexAfter(i))})}for(let i=e.depth;i>0;i--)this.placed=we.from(e.node(i).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let c=this.findFittable();c?this.placeNodes(c):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),n=this.placed.size-this.depth-this.$from.depth,r=this.$from,i=this.close(e<0?this.$to:r.doc.resolve(e));if(!i)return null;let s=this.placed,o=r.depth,l=i.depth;for(;o&&l&&s.childCount==1;)s=s.firstChild.content,o--,l--;let a=new _e(s,o,l);return e>-1?new cr(r.pos,e,this.$to.pos,this.$to.end(),a,n):a.size||r.pos!=this.$to.pos?new or(r.pos,i.pos,a):null}findFittable(){let e=this.unplaced.openStart;for(let n=this.unplaced.content,r=0,i=this.unplaced.openEnd;r1&&(i=0),s.type.spec.isolating&&i<=r){e=r;break}n=s.content}for(let n=1;n<=2;n++)for(let r=n==1?e:this.unplaced.openStart;r>=0;r--){let i,s=null;r?(s=Ay(this.unplaced.content,r-1).firstChild,i=s.content):i=this.unplaced.content;let o=i.firstChild;for(let l=this.depth;l>=0;l--){let{type:a,match:c}=this.frontier[l],u,d=null;if(n==1&&(o?c.matchType(o.type)||(d=c.fillBefore(we.from(o),!1)):s&&a.compatibleContent(s.type)))return{sliceDepth:r,frontierDepth:l,parent:s,inject:d};if(n==2&&o&&(u=c.findWrapping(o.type)))return{sliceDepth:r,frontierDepth:l,parent:s,wrap:u};if(s&&c.matchType(s.type))break}}}openMore(){let{content:e,openStart:n,openEnd:r}=this.unplaced,i=Ay(e,n);return!i.childCount||i.firstChild.isLeaf?!1:(this.unplaced=new _e(e,n+1,Math.max(r,i.size+n>=e.size-r?n+1:0)),!0)}dropNode(){let{content:e,openStart:n,openEnd:r}=this.unplaced,i=Ay(e,n);if(i.childCount<=1&&n>0){let s=e.size-n<=n+i.size;this.unplaced=new _e(hu(e,n-1,1),n-1,s?n-1:r)}else this.unplaced=new _e(hu(e,n,1),n,r)}placeNodes({sliceDepth:e,frontierDepth:n,parent:r,inject:i,wrap:s}){for(;this.depth>n;)this.closeFrontierNode();if(s)for(let g=0;g1||a==0||g.content.size)&&(d=v,u.push(QM(g.mark(h.allowedMarks(g.marks)),c==1?a:0,c==l.childCount?p:-1)))}let m=c==l.childCount;m||(p=-1),this.placed=pu(this.placed,n,we.from(u)),this.frontier[n].match=d,m&&p<0&&r&&r.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let g=0,v=l;g1&&i==this.$to.end(--r);)++i;return i}findCloseLevel(e){e:for(let n=Math.min(this.depth,e.depth);n>=0;n--){let{match:r,type:i}=this.frontier[n],s=n=0;l--){let{match:a,type:c}=this.frontier[l],u=My(e,l,c,a,!0);if(!u||u.childCount)continue e}return{depth:n,fit:o,move:s?e.doc.resolve(e.after(n+1)):e}}}}close(e){let n=this.findCloseLevel(e);if(!n)return null;for(;this.depth>n.depth;)this.closeFrontierNode();n.fit.childCount&&(this.placed=pu(this.placed,n.depth,n.fit)),e=n.move;for(let r=n.depth+1;r<=e.depth;r++){let i=e.node(r),s=i.type.contentMatch.fillBefore(i.content,!0,e.index(r));this.openFrontierNode(i.type,i.attrs,s)}return e}openFrontierNode(e,n=null,r){let i=this.frontier[this.depth];i.match=i.match.matchType(e),this.placed=pu(this.placed,this.depth,we.from(e.create(n,r))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let n=this.frontier.pop().match.fillBefore(we.empty,!0);n.childCount&&(this.placed=pu(this.placed,this.frontier.length,n))}}function hu(t,e,n){return e==0?t.cutByIndex(n,t.childCount):t.replaceChild(0,t.firstChild.copy(hu(t.firstChild.content,e-1,n)))}function pu(t,e,n){return e==0?t.append(n):t.replaceChild(t.childCount-1,t.lastChild.copy(pu(t.lastChild.content,e-1,n)))}function Ay(t,e){for(let n=0;n1&&(r=r.replaceChild(0,QM(r.firstChild,e-1,r.childCount==1?n-1:0))),e>0&&(r=t.type.contentMatch.fillBefore(r).append(r),n<=0&&(r=r.append(t.type.contentMatch.matchFragment(r).fillBefore(we.empty,!0)))),t.copy(r)}function My(t,e,n,r,i){let s=t.node(e),o=i?t.indexAfter(e):t.index(e);if(o==s.childCount&&!n.compatibleContent(s.type))return null;let l=r.fillBefore(s.content,!0,o);return l&&!jz(n,s.content,o)?l:null}function jz(t,e,n){for(let r=n;r0;h--,p--){let m=i.node(h).type.spec;if(m.defining||m.definingAsContext||m.isolating)break;o.indexOf(h)>-1?l=h:i.before(h)==p&&o.splice(1,0,-h)}let a=o.indexOf(l),c=[],u=r.openStart;for(let h=r.content,p=0;;p++){let m=h.firstChild;if(c.push(m),p==r.openStart)break;h=m.content}for(let h=u-1;h>=0;h--){let p=c[h],m=Pz(p.type);if(m&&!p.sameMarkup(i.node(Math.abs(l)-1)))u=h;else if(m||!p.type.isTextblock)break}for(let h=r.openStart;h>=0;h--){let p=(h+u+1)%(r.openStart+1),m=c[p];if(m)for(let g=0;g=0&&(t.replace(e,n,r),!(t.steps.length>d));h--){let p=o[h];p<0||(e=i.before(p),n=s.after(p))}}function ZM(t,e,n,r,i){if(er){let s=i.contentMatchAt(0),o=s.fillBefore(t).append(t);t=o.append(s.matchFragment(o).fillBefore(we.empty,!0))}return t}function _z(t,e,n,r){if(!r.isInline&&e==n&&t.doc.resolve(e).parent.content.size){let i=Dz(t.doc,e,r.type);i!=null&&(e=n=i)}t.replaceRange(e,n,new _e(we.from(r),0,0))}function zz(t,e,n){let r=t.doc.resolve(e),i=t.doc.resolve(n),s=eI(r,i);for(let o=0;o0&&(a||r.node(l-1).canReplace(r.index(l-1),i.indexAfter(l-1))))return t.delete(r.before(l),i.after(l))}for(let o=1;o<=r.depth&&o<=i.depth;o++)if(e-r.start(o)==r.depth-o&&n>r.end(o)&&i.end(o)-n!=i.depth-o&&r.start(o-1)==i.start(o-1)&&r.node(o-1).canReplace(r.index(o-1),i.index(o-1)))return t.delete(r.before(o),n);t.delete(e,n)}function eI(t,e){let n=[],r=Math.min(t.depth,e.depth);for(let i=r;i>=0;i--){let s=t.start(i);if(se.pos+(e.depth-i)||t.node(i).type.spec.isolating||e.node(i).type.spec.isolating)break;(s==e.start(i)||i==t.depth&&i==e.depth&&t.parent.inlineContent&&e.parent.inlineContent&&i&&e.start(i-1)==s-1)&&n.push(i)}return n}class Ja extends Or{constructor(e,n,r){super(),this.pos=e,this.attr=n,this.value=r}apply(e){let n=e.nodeAt(this.pos);if(!n)return Wn.fail("No node at attribute step's position");let r=Object.create(null);for(let s in n.attrs)r[s]=n.attrs[s];r[this.attr]=this.value;let i=n.type.create(r,null,n.marks);return Wn.fromReplace(e,this.pos,this.pos+1,new _e(we.from(i),0,n.isLeaf?0:1))}getMap(){return ui.empty}invert(e){return new Ja(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new Ja(n.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.pos!="number"||typeof n.attr!="string")throw new RangeError("Invalid input for AttrStep.fromJSON");return new Ja(n.pos,n.attr,n.value)}}Or.jsonID("attr",Ja);class gd extends Or{constructor(e,n){super(),this.attr=e,this.value=n}apply(e){let n=Object.create(null);for(let i in e.attrs)n[i]=e.attrs[i];n[this.attr]=this.value;let r=e.type.create(n,e.content,e.marks);return Wn.ok(r)}getMap(){return ui.empty}invert(e){return new gd(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.attr!="string")throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new gd(n.attr,n.value)}}Or.jsonID("docAttr",gd);let hc=class extends Error{};hc=function t(e){let n=Error.call(this,e);return n.__proto__=t.prototype,n};hc.prototype=Object.create(Error.prototype);hc.prototype.constructor=hc;hc.prototype.name="TransformError";class tI{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new md}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let n=this.maybeStep(e);if(n.failed)throw new hc(n.failed);return this}maybeStep(e){let n=e.apply(this.doc);return n.failed||this.addStep(e,n.doc),n}get docChanged(){return this.steps.length>0}changedRange(){let e=1e9,n=-1e9;for(let r=0;r{e=Math.min(e,l),n=Math.max(n,a)})}return e==1e9?null:{from:e,to:n}}addStep(e,n){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=n}replace(e,n=e,r=_e.empty){let i=Qm(this.doc,e,n,r);return i&&this.step(i),this}replaceWith(e,n,r){return this.replace(e,n,new _e(we.from(r),0,0))}delete(e,n){return this.replace(e,n,_e.empty)}insert(e,n){return this.replaceWith(e,e,n)}replaceRange(e,n,r){return Lz(this,e,n,r),this}replaceRangeWith(e,n,r){return _z(this,e,n,r),this}deleteRange(e,n){return zz(this,e,n),this}lift(e,n){return kz(this,e,n),this}join(e,n=1){return Rz(this,e,n),this}wrap(e,n){return Ez(this,e,n),this}setBlockType(e,n=e,r,i=null){return Nz(this,e,n,r,i),this}setNodeMarkup(e,n,r=null,i){return Az(this,e,n,r,i),this}setNodeAttribute(e,n,r){return this.step(new Ja(e,n,r)),this}setDocAttribute(e,n){return this.step(new gd(e,n)),this}addNodeMark(e,n){return this.step(new Bo(e,n)),this}removeNodeMark(e,n){let r=this.doc.nodeAt(e);if(!r)throw new RangeError("No node at position "+e);if(n instanceof vn)n.isInSet(r.marks)&&this.step(new Xl(e,n));else{let i=r.marks,s,o=[];for(;s=n.isInSet(i);)o.push(new Xl(e,s)),i=s.removeFromSet(i);for(let l=o.length-1;l>=0;l--)this.step(o[l])}return this}split(e,n=1,r){return Mz(this,e,n,r),this}addMark(e,n,r){return bz(this,e,n,r),this}removeMark(e,n,r){return wz(this,e,n,r),this}clearIncompatible(e,n,r){return Fw(this,e,n,r),this}}const Iy=Object.create(null);class Nt{constructor(e,n,r){this.$anchor=e,this.$head=n,this.ranges=r||[new nI(e.min(n),e.max(n))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let n=0;n=0;s--){let o=n<0?Ca(e.node(0),e.node(s),e.before(s+1),e.index(s),n,r):Ca(e.node(0),e.node(s),e.after(s+1),e.index(s)+1,n,r);if(o)return o}return null}static near(e,n=1){return this.findFrom(e,n)||this.findFrom(e,-n)||new ri(e.node(0))}static atStart(e){return Ca(e,e,0,0,1)||new ri(e)}static atEnd(e){return Ca(e,e,e.content.size,e.childCount,-1)||new ri(e)}static fromJSON(e,n){if(!n||!n.type)throw new RangeError("Invalid input for Selection.fromJSON");let r=Iy[n.type];if(!r)throw new RangeError(`No selection type ${n.type} defined`);return r.fromJSON(e,n)}static jsonID(e,n){if(e in Iy)throw new RangeError("Duplicate use of selection JSON ID "+e);return Iy[e]=n,n.prototype.jsonID=e,n}getBookmark(){return xt.between(this.$anchor,this.$head).getBookmark()}}Nt.prototype.visible=!0;class nI{constructor(e,n){this.$from=e,this.$to=n}}let WS=!1;function KS(t){!WS&&!t.parent.inlineContent&&(WS=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+t.parent.type.name+")"))}class xt extends Nt{constructor(e,n=e){KS(e),KS(n),super(e,n)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,n){let r=e.resolve(n.map(this.head));if(!r.parent.inlineContent)return Nt.near(r);let i=e.resolve(n.map(this.anchor));return new xt(i.parent.inlineContent?i:r,r)}replace(e,n=_e.empty){if(super.replace(e,n),n==_e.empty){let r=this.$from.marksAcross(this.$to);r&&e.ensureMarks(r)}}eq(e){return e instanceof xt&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new Zm(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(e,n){if(typeof n.anchor!="number"||typeof n.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new xt(e.resolve(n.anchor),e.resolve(n.head))}static create(e,n,r=n){let i=e.resolve(n);return new this(i,r==n?i:e.resolve(r))}static between(e,n,r){let i=e.pos-n.pos;if((!r||i)&&(r=i>=0?1:-1),!n.parent.inlineContent){let s=Nt.findFrom(n,r,!0)||Nt.findFrom(n,-r,!0);if(s)n=s.$head;else return Nt.near(n,r)}return e.parent.inlineContent||(i==0?e=n:(e=(Nt.findFrom(e,-r,!0)||Nt.findFrom(e,r,!0)).$anchor,e.pos0?0:1);i>0?o=0;o+=i){let l=e.child(o);if(l.isAtom){if(!s&&dt.isSelectable(l))return dt.create(t,n-(i<0?l.nodeSize:0))}else{let a=Ca(t,l,n+i,i<0?l.childCount:0,i,s);if(a)return a}n+=l.nodeSize*i}return null}function YS(t,e,n){let r=t.steps.length-1;if(r{o==null&&(o=u)}),t.setSelection(Nt.near(t.doc.resolve(o),n))}const qS=1,Hf=2,JS=4;let $z=class extends tI{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(e){return this.storedMarks=e,this.updated|=Hf,this}ensureMarks(e){return vn.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&Hf)>0}addStep(e,n){super.addStep(e,n),this.updated=this.updated&~Hf,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,n=!0){let r=this.selection;return n&&(e=e.mark(this.storedMarks||(r.empty?r.$from.marks():r.$from.marksAcross(r.$to)||vn.none))),r.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,n,r){let i=this.doc.type.schema;if(n==null)return e?this.replaceSelectionWith(i.text(e),!0):this.deleteSelection();{if(r==null&&(r=n),!e)return this.deleteRange(n,r);let s=this.storedMarks;if(!s){let o=this.doc.resolve(n);s=r==n?o.marks():o.marksAcross(this.doc.resolve(r))}return this.replaceRangeWith(n,r,i.text(e,s)),!this.selection.empty&&this.selection.to==n+e.length&&this.setSelection(Nt.near(this.selection.$to)),this}}setMeta(e,n){return this.meta[typeof e=="string"?e:e.key]=n,this}getMeta(e){return this.meta[typeof e=="string"?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=JS,this}get scrolledIntoView(){return(this.updated&JS)>0}};function GS(t,e){return!e||!t?t:t.bind(e)}class mu{constructor(e,n,r){this.name=e,this.init=GS(n.init,r),this.apply=GS(n.apply,r)}}const Bz=[new mu("doc",{init(t){return t.doc||t.schema.topNodeType.createAndFill()},apply(t){return t.doc}}),new mu("selection",{init(t,e){return t.selection||Nt.atStart(e.doc)},apply(t){return t.selection}}),new mu("storedMarks",{init(t){return t.storedMarks||null},apply(t,e,n,r){return r.selection.$cursor?t.storedMarks:null}}),new mu("scrollToSelection",{init(){return 0},apply(t,e){return t.scrolledIntoView?e+1:e}})];class Ry{constructor(e,n){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=Bz.slice(),n&&n.forEach(r=>{if(this.pluginsByKey[r.key])throw new RangeError("Adding different instances of a keyed plugin ("+r.key+")");this.plugins.push(r),this.pluginsByKey[r.key]=r,r.spec.state&&this.fields.push(new mu(r.key,r.spec.state,r))})}}class $a{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,n=-1){for(let r=0;rr.toJSON())),e&&typeof e=="object")for(let r in e){if(r=="doc"||r=="selection")throw new RangeError("The JSON fields `doc` and `selection` are reserved");let i=e[r],s=i.spec.state;s&&s.toJSON&&(n[r]=s.toJSON.call(i,this[i.key]))}return n}static fromJSON(e,n,r){if(!n)throw new RangeError("Invalid input for EditorState.fromJSON");if(!e.schema)throw new RangeError("Required config field 'schema' missing");let i=new Ry(e.schema,e.plugins),s=new $a(i);return i.fields.forEach(o=>{if(o.name=="doc")s.doc=Qo.fromJSON(e.schema,n.doc);else if(o.name=="selection")s.selection=Nt.fromJSON(s.doc,n.selection);else if(o.name=="storedMarks")n.storedMarks&&(s.storedMarks=n.storedMarks.map(e.schema.markFromJSON));else{if(r)for(let l in r){let a=r[l],c=a.spec.state;if(a.key==o.name&&c&&c.fromJSON&&Object.prototype.hasOwnProperty.call(n,l)){s[o.name]=c.fromJSON.call(a,e,n[l],s);return}}s[o.name]=o.init(e,s)}}),s}}function rI(t,e,n){for(let r in t){let i=t[r];i instanceof Function?i=i.bind(e):r=="handleDOMEvents"&&(i=rI(i,e,{})),n[r]=i}return n}class hn{constructor(e){this.spec=e,this.props={},e.props&&rI(e.props,this,this.props),this.key=e.key?e.key.key:iI("plugin")}getState(e){return e[this.key]}}const Dy=Object.create(null);function iI(t){return t in Dy?t+"$"+ ++Dy[t]:(Dy[t]=0,t+"$")}class pn{constructor(e="key"){this.key=iI(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}}const Uw=(t,e)=>t.selection.empty?!1:(e&&e(t.tr.deleteSelection().scrollIntoView()),!0);function sI(t,e){let{$cursor:n}=t.selection;return!n||(e?!e.endOfTextblock("backward",t):n.parentOffset>0)?null:n}const oI=(t,e,n)=>{let r=sI(t,n);if(!r)return!1;let i=Hw(r);if(!i){let o=r.blockRange(),l=o&&Pc(o);return l==null?!1:(e&&e(t.tr.lift(o,l).scrollIntoView()),!0)}let s=i.nodeBefore;if(mI(t,i,e,-1))return!0;if(r.parent.content.size==0&&(pc(s,"end")||dt.isSelectable(s)))for(let o=r.depth;;o--){let l=Qm(t.doc,r.before(o),r.after(o),_e.empty);if(l&&l.slice.size1)break}return s.isAtom&&i.depth==r.depth-1?(e&&e(t.tr.delete(i.pos-s.nodeSize,i.pos).scrollIntoView()),!0):!1},Uz=(t,e,n)=>{let r=sI(t,n);if(!r)return!1;let i=Hw(r);return i?lI(t,i,e):!1},Hz=(t,e,n)=>{let r=cI(t,n);if(!r)return!1;let i=Vw(r);return i?lI(t,i,e):!1};function lI(t,e,n){let r=e.nodeBefore,i=r,s=e.pos-1;for(;!i.isTextblock;s--){if(i.type.spec.isolating)return!1;let u=i.lastChild;if(!u)return!1;i=u}let o=e.nodeAfter,l=o,a=e.pos+1;for(;!l.isTextblock;a++){if(l.type.spec.isolating)return!1;let u=l.firstChild;if(!u)return!1;l=u}let c=Qm(t.doc,s,a,_e.empty);if(!c||c.from!=s||c instanceof or&&c.slice.size>=a-s)return!1;if(n){let u=t.tr.step(c);u.setSelection(xt.create(u.doc,s)),n(u.scrollIntoView())}return!0}function pc(t,e,n=!1){for(let r=t;r;r=e=="start"?r.firstChild:r.lastChild){if(r.isTextblock)return!0;if(n&&r.childCount!=1)return!1}return!1}const aI=(t,e,n)=>{let{$head:r,empty:i}=t.selection,s=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("backward",t):r.parentOffset>0)return!1;s=Hw(r)}let o=s&&s.nodeBefore;return!o||!dt.isSelectable(o)?!1:(e&&e(t.tr.setSelection(dt.create(t.doc,s.pos-o.nodeSize)).scrollIntoView()),!0)};function Hw(t){if(!t.parent.type.spec.isolating)for(let e=t.depth-1;e>=0;e--){if(t.index(e)>0)return t.doc.resolve(t.before(e+1));if(t.node(e).type.spec.isolating)break}return null}function cI(t,e){let{$cursor:n}=t.selection;return!n||(e?!e.endOfTextblock("forward",t):n.parentOffset{let r=cI(t,n);if(!r)return!1;let i=Vw(r);if(!i)return!1;let s=i.nodeAfter;if(mI(t,i,e,1))return!0;if(r.parent.content.size==0&&(pc(s,"start")||dt.isSelectable(s))){let o=Qm(t.doc,r.before(),r.after(),_e.empty);if(o&&o.slice.size{let{$head:r,empty:i}=t.selection,s=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("forward",t):r.parentOffset=0;e--){let n=t.node(e);if(t.index(e)+1{let n=t.selection,r=n instanceof dt,i;if(r){if(n.node.isTextblock||!vl(t.doc,n.from))return!1;i=n.from}else if(i=Xm(t.doc,n.from,-1),i==null)return!1;if(e){let s=t.tr.join(i);r&&s.setSelection(dt.create(s.doc,i-t.doc.resolve(i).nodeBefore.nodeSize)),e(s.scrollIntoView())}return!0},Wz=(t,e)=>{let n=t.selection,r;if(n instanceof dt){if(n.node.isTextblock||!vl(t.doc,n.to))return!1;r=n.to}else if(r=Xm(t.doc,n.to,1),r==null)return!1;return e&&e(t.tr.join(r).scrollIntoView()),!0},Kz=(t,e)=>{let{$from:n,$to:r}=t.selection,i=n.blockRange(r),s=i&&Pc(i);return s==null?!1:(e&&e(t.tr.lift(i,s).scrollIntoView()),!0)},fI=(t,e)=>{let{$head:n,$anchor:r}=t.selection;return!n.parent.type.spec.code||!n.sameParent(r)?!1:(e&&e(t.tr.insertText(` +`).scrollIntoView()),!0)};function Ww(t){for(let e=0;e{let{$head:n,$anchor:r}=t.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let i=n.node(-1),s=n.indexAfter(-1),o=Ww(i.contentMatchAt(s));if(!o||!i.canReplaceWith(s,s,o))return!1;if(e){let l=n.after(),a=t.tr.replaceWith(l,l,o.createAndFill());a.setSelection(Nt.near(a.doc.resolve(l),1)),e(a.scrollIntoView())}return!0},hI=(t,e)=>{let n=t.selection,{$from:r,$to:i}=n;if(n instanceof ri||r.parent.inlineContent||i.parent.inlineContent)return!1;let s=Ww(i.parent.contentMatchAt(i.indexAfter()));if(!s||!s.isTextblock)return!1;if(e){let o=(!r.parentOffset&&i.index(){let{$cursor:n}=t.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let s=n.before();if(Zs(t.doc,s))return e&&e(t.tr.split(s).scrollIntoView()),!0}let r=n.blockRange(),i=r&&Pc(r);return i==null?!1:(e&&e(t.tr.lift(r,i).scrollIntoView()),!0)};function qz(t){return(e,n)=>{let{$from:r,$to:i}=e.selection;if(e.selection instanceof dt&&e.selection.node.isBlock)return!r.parentOffset||!Zs(e.doc,r.pos)?!1:(n&&n(e.tr.split(r.pos).scrollIntoView()),!0);if(!r.depth)return!1;let s=[],o,l,a=!1,c=!1;for(let p=r.depth;;p--)if(r.node(p).isBlock){a=r.end(p)==r.pos+(r.depth-p),c=r.start(p)==r.pos-(r.depth-p),l=Ww(r.node(p-1).contentMatchAt(r.indexAfter(p-1))),s.unshift(a&&l?{type:l}:null),o=p;break}else{if(p==1)return!1;s.unshift(null)}let u=e.tr;(e.selection instanceof xt||e.selection instanceof ri)&&u.deleteSelection();let d=u.mapping.map(r.pos),h=Zs(u.doc,d,s.length,s);if(h||(s[0]=l?{type:l}:null,h=Zs(u.doc,d,s.length,s)),!h)return!1;if(u.split(d,s.length,s),!a&&c&&r.node(o).type!=l){let p=u.mapping.map(r.before(o)),m=u.doc.resolve(p);l&&r.node(o-1).canReplaceWith(m.index(),m.index()+1,l)&&u.setNodeMarkup(u.mapping.map(r.before(o)),l)}return n&&n(u.scrollIntoView()),!0}}const Jz=qz(),Gz=(t,e)=>{let{$from:n,to:r}=t.selection,i,s=n.sharedDepth(r);return s==0?!1:(i=n.before(s),e&&e(t.tr.setSelection(dt.create(t.doc,i))),!0)};function Xz(t,e,n){let r=e.nodeBefore,i=e.nodeAfter,s=e.index();return!r||!i||!r.type.compatibleContent(i.type)?!1:!r.content.size&&e.parent.canReplace(s-1,s)?(n&&n(t.tr.delete(e.pos-r.nodeSize,e.pos).scrollIntoView()),!0):!e.parent.canReplace(s,s+1)||!(i.isTextblock||vl(t.doc,e.pos))?!1:(n&&n(t.tr.join(e.pos).scrollIntoView()),!0)}function mI(t,e,n,r){let i=e.nodeBefore,s=e.nodeAfter,o,l,a=i.type.spec.isolating||s.type.spec.isolating;if(!a&&Xz(t,e,n))return!0;let c=!a&&e.parent.canReplace(e.index(),e.index()+1);if(c&&(o=(l=i.contentMatchAt(i.childCount)).findWrapping(s.type))&&l.matchType(o[0]||s.type).validEnd){if(n){let p=e.pos+s.nodeSize,m=we.empty;for(let y=o.length-1;y>=0;y--)m=we.from(o[y].create(null,m));m=we.from(i.copy(m));let g=t.tr.step(new cr(e.pos-1,p,e.pos,p,new _e(m,1,0),o.length,!0)),v=g.doc.resolve(p+2*o.length);v.nodeAfter&&v.nodeAfter.type==i.type&&vl(g.doc,v.pos)&&g.join(v.pos),n(g.scrollIntoView())}return!0}let u=s.type.spec.isolating||r>0&&a?null:Nt.findFrom(e,1),d=u&&u.$from.blockRange(u.$to),h=d&&Pc(d);if(h!=null&&h>=e.depth)return n&&n(t.tr.lift(d,h).scrollIntoView()),!0;if(c&&pc(s,"start",!0)&&pc(i,"end")){let p=i,m=[];for(;m.push(p),!p.isTextblock;)p=p.lastChild;let g=s,v=1;for(;!g.isTextblock;g=g.firstChild)v++;if(p.canReplace(p.childCount,p.childCount,g.content)){if(n){let y=we.empty;for(let x=m.length-1;x>=0;x--)y=we.from(m[x].copy(y));let b=t.tr.step(new cr(e.pos-m.length,e.pos+s.nodeSize,e.pos+v,e.pos+s.nodeSize-v,new _e(y,m.length,0),0,!0));n(b.scrollIntoView())}return!0}}return!1}function gI(t){return function(e,n){let r=e.selection,i=t<0?r.$from:r.$to,s=i.depth;for(;i.node(s).isInline;){if(!s)return!1;s--}return i.node(s).isTextblock?(n&&n(e.tr.setSelection(xt.create(e.doc,t<0?i.start(s):i.end(s)))),!0):!1}}const Qz=gI(-1),Zz=gI(1);function eF(t,e=null){return function(n,r){let{$from:i,$to:s}=n.selection,o=i.blockRange(s),l=o&&$w(o,t,e);return l?(r&&r(n.tr.wrap(o,l).scrollIntoView()),!0):!1}}function XS(t,e=null){return function(n,r){let i=!1;for(let s=0;s{if(i)return!1;if(!(!a.isTextblock||a.hasMarkup(t,e)))if(a.type==t)i=!0;else{let u=n.doc.resolve(c),d=u.index();i=u.parent.canReplaceWith(d,d+1,t)}})}if(!i)return!1;if(r){let s=n.tr;for(let o=0;o=2&&e.$from.node(e.depth-1).type.compatibleContent(n)&&e.startIndex==0){if(e.$from.index(e.depth-1)==0)return!1;let a=o.resolve(e.start-2);s=new bp(a,a,e.depth),e.endIndex=0;u--)s=we.from(n[u].type.create(n[u].attrs,s));t.step(new cr(e.start-(r?2:0),e.end,e.start,e.end,new _e(s,0,0),n.length,!0));let o=0;for(let u=0;uo.childCount>0&&o.firstChild.type==t);return s?n?r.node(s.depth-1).type==t?sF(e,n,t,s):oF(e,n,s):!0:!1}}function sF(t,e,n,r){let i=t.tr,s=r.end,o=r.$to.end(r.depth);sg;m--)p-=i.child(m).nodeSize,r.delete(p-1,p+1);let s=r.doc.resolve(n.start),o=s.nodeAfter;if(r.mapping.map(n.end)!=n.start+s.nodeAfter.nodeSize)return!1;let l=n.startIndex==0,a=n.endIndex==i.childCount,c=s.node(-1),u=s.index(-1);if(!c.canReplace(u+(l?0:1),u+1,o.content.append(a?we.empty:we.from(i))))return!1;let d=s.pos,h=d+o.nodeSize;return r.step(new cr(d-(l?1:0),h+(a?1:0),d+1,h-1,new _e((l?we.empty:we.from(i.copy(we.empty))).append(a?we.empty:we.from(i.copy(we.empty))),l?0:1,a?0:1),l?0:1)),e(r.scrollIntoView()),!0}function lF(t){return function(e,n){let{$from:r,$to:i}=e.selection,s=r.blockRange(i,c=>c.childCount>0&&c.firstChild.type==t);if(!s)return!1;let o=s.startIndex;if(o==0)return!1;let l=s.parent,a=l.child(o-1);if(a.type!=t)return!1;if(n){let c=a.lastChild&&a.lastChild.type==l.type,u=we.from(c?t.create():null),d=new _e(we.from(t.create(null,we.from(l.type.create(null,u)))),c?3:1,0),h=s.start,p=s.end;n(e.tr.step(new cr(h-(c?3:1),p,h,p,d,1,!0)).scrollIntoView())}return!0}}const yr=function(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e},mc=function(t){let e=t.assignedSlot||t.parentNode;return e&&e.nodeType==11?e.host:e};let T0=null;const Hs=function(t,e,n){let r=T0||(T0=document.createRange());return r.setEnd(t,n??t.nodeValue.length),r.setStart(t,e||0),r},aF=function(){T0=null},Ql=function(t,e,n,r){return n&&(QS(t,e,n,r,-1)||QS(t,e,n,r,1))},cF=/^(img|br|input|textarea|hr)$/i;function QS(t,e,n,r,i){for(var s;;){if(t==n&&e==r)return!0;if(e==(i<0?0:Ni(t))){let o=t.parentNode;if(!o||o.nodeType!=1||Jd(t)||cF.test(t.nodeName)||t.contentEditable=="false")return!1;e=yr(t)+(i<0?0:1),t=o}else if(t.nodeType==1){let o=t.childNodes[e+(i<0?-1:0)];if(o.nodeType==1&&o.contentEditable=="false")if(!((s=o.pmViewDesc)===null||s===void 0)&&s.ignoreForSelection)e+=i;else return!1;else t=o,e=i<0?Ni(t):0}else return!1}}function Ni(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function uF(t,e){for(;;){if(t.nodeType==3&&e)return t;if(t.nodeType==1&&e>0){if(t.contentEditable=="false")return null;t=t.childNodes[e-1],e=Ni(t)}else if(t.parentNode&&!Jd(t))e=yr(t),t=t.parentNode;else return null}}function dF(t,e){for(;;){if(t.nodeType==3&&e2),Si=gc||(Ts?/Mac/.test(Ts.platform):!1),bI=Ts?/Win/.test(Ts.platform):!1,Js=/Android \d/.test(bl),Gd=!!ZS&&"webkitFontSmoothing"in ZS.documentElement.style,mF=Gd?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function gF(t){let e=t.defaultView&&t.defaultView.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.documentElement.clientWidth,top:0,bottom:t.documentElement.clientHeight}}function Os(t,e){return typeof t=="number"?t:t[e]}function yF(t){let e=t.getBoundingClientRect(),n=e.width/t.offsetWidth||1,r=e.height/t.offsetHeight||1;return{left:e.left,right:e.left+t.clientWidth*n,top:e.top,bottom:e.top+t.clientHeight*r}}function eC(t,e,n){let r=t.someProp("scrollThreshold")||0,i=t.someProp("scrollMargin")||5,s=t.dom.ownerDocument;for(let o=n||t.dom;o;){if(o.nodeType!=1){o=mc(o);continue}let l=o,a=l==s.body,c=a?gF(s):yF(l),u=0,d=0;if(e.topc.bottom-Os(r,"bottom")&&(d=e.bottom-e.top>c.bottom-c.top?e.top+Os(i,"top")-c.top:e.bottom-c.bottom+Os(i,"bottom")),e.leftc.right-Os(r,"right")&&(u=e.right-c.right+Os(i,"right")),u||d)if(a)s.defaultView.scrollBy(u,d);else{let p=l.scrollLeft,m=l.scrollTop;d&&(l.scrollTop+=d),u&&(l.scrollLeft+=u);let g=l.scrollLeft-p,v=l.scrollTop-m;e={left:e.left-g,top:e.top-v,right:e.right-g,bottom:e.bottom-v}}let h=a?"fixed":getComputedStyle(o).position;if(/^(fixed|sticky)$/.test(h))break;o=h=="absolute"?o.offsetParent:mc(o)}}function vF(t){let e=t.dom.getBoundingClientRect(),n=Math.max(0,e.top),r,i;for(let s=(e.left+e.right)/2,o=n+1;o=n-20){r=l,i=a.top;break}}return{refDOM:r,refTop:i,stack:wI(t.dom)}}function wI(t){let e=[],n=t.ownerDocument;for(let r=t;r&&(e.push({dom:r,top:r.scrollTop,left:r.scrollLeft}),t!=n);r=mc(r));return e}function bF({refDOM:t,refTop:e,stack:n}){let r=t?t.getBoundingClientRect().top:0;xI(n,r==0?0:r-e)}function xI(t,e){for(let n=0;n=l){o=Math.max(m.bottom,o),l=Math.min(m.top,l);let g=m.left>e.left?m.left-e.left:m.right=(m.left+m.right)/2?1:0));continue}}else m.top>e.top&&!a&&m.left<=e.left&&m.right>=e.left&&(a=u,c={left:Math.max(m.left,Math.min(m.right,e.left)),top:m.top});!n&&(e.left>=m.right&&e.top>=m.top||e.left>=m.left&&e.top>=m.bottom)&&(s=d+1)}}return!n&&a&&(n=a,i=c,r=0),n&&n.nodeType==3?xF(n,i):!n||r&&n.nodeType==1?{node:t,offset:s}:kI(n,i)}function xF(t,e){let n=t.nodeValue.length,r=document.createRange(),i;for(let s=0;s=(o.left+o.right)/2?1:0)};break}}return r.detach(),i||{node:t,offset:0}}function Yw(t,e){return t.left>=e.left-1&&t.left<=e.right+1&&t.top>=e.top-1&&t.top<=e.bottom+1}function kF(t,e){let n=t.parentNode;return n&&/^li$/i.test(n.nodeName)&&e.left(o.left+o.right)/2?1:-1}return t.docView.posFromDOM(r,i,s)}function CF(t,e,n,r){let i=-1;for(let s=e,o=!1;s!=t.dom;){let l=t.docView.nearestDesc(s,!0),a;if(!l)return null;if(l.dom.nodeType==1&&(l.node.isBlock&&l.parent||!l.contentDOM)&&((a=l.dom.getBoundingClientRect()).width||a.height)&&(l.node.isBlock&&l.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(l.dom.nodeName)&&(!o&&a.left>r.left||a.top>r.top?i=l.posBefore:(!o&&a.right-1?i:t.docView.posFromDOM(e,n,-1)}function SI(t,e,n){let r=t.childNodes.length;if(r&&n.tope.top&&i++}let c;Gd&&i&&r.nodeType==1&&(c=r.childNodes[i-1]).nodeType==1&&c.contentEditable=="false"&&c.getBoundingClientRect().top>=e.top&&i--,r==t.dom&&i==r.childNodes.length-1&&r.lastChild.nodeType==1&&e.top>r.lastChild.getBoundingClientRect().bottom?l=t.state.doc.content.size:(i==0||r.nodeType!=1||r.childNodes[i-1].nodeName!="BR")&&(l=CF(t,r,i,e))}l==null&&(l=SF(t,o,e));let a=t.docView.nearestDesc(o,!0);return{pos:l,inside:a?a.posAtStart-a.border:-1}}function tC(t){return t.top=0&&i==r.nodeValue.length?(a--,u=1):n<0?a--:c++,ou(No(Hs(r,a,c),u),u<0)}if(!t.state.doc.resolve(e-(s||0)).parent.inlineContent){if(s==null&&i&&(n<0||i==Ni(r))){let a=r.childNodes[i-1];if(a.nodeType==1)return Oy(a.getBoundingClientRect(),!1)}if(s==null&&i=0)}if(s==null&&i&&(n<0||i==Ni(r))){let a=r.childNodes[i-1],c=a.nodeType==3?Hs(a,Ni(a)-(o?0:1)):a.nodeType==1&&(a.nodeName!="BR"||!a.nextSibling)?a:null;if(c)return ou(No(c,1),!1)}if(s==null&&i=0)}function ou(t,e){if(t.width==0)return t;let n=e?t.left:t.right;return{top:t.top,bottom:t.bottom,left:n,right:n}}function Oy(t,e){if(t.height==0)return t;let n=e?t.top:t.bottom;return{top:n,bottom:n,left:t.left,right:t.right}}function EI(t,e,n){let r=t.state,i=t.root.activeElement;r!=e&&t.updateState(e),i!=t.dom&&t.focus();try{return n()}finally{r!=e&&t.updateState(r),i!=t.dom&&i&&i.focus()}}function TF(t,e,n){let r=e.selection,i=n=="up"?r.$from:r.$to;return EI(t,e,()=>{let{node:s}=t.docView.domFromPos(i.pos,n=="up"?-1:1);for(;;){let l=t.docView.nearestDesc(s,!0);if(!l)break;if(l.node.isBlock){s=l.contentDOM||l.dom;break}s=l.dom.parentNode}let o=CI(t,i.pos,1);for(let l=s.firstChild;l;l=l.nextSibling){let a;if(l.nodeType==1)a=l.getClientRects();else if(l.nodeType==3)a=Hs(l,0,l.nodeValue.length).getClientRects();else continue;for(let c=0;cu.top+1&&(n=="up"?o.top-u.top>(u.bottom-o.top)*2:u.bottom-o.bottom>(o.bottom-u.top)*2))return!1}}return!0})}const AF=/[\u0590-\u08ac]/;function MF(t,e,n){let{$head:r}=e.selection;if(!r.parent.isTextblock)return!1;let i=r.parentOffset,s=!i,o=i==r.parent.content.size,l=t.domSelection();return l?!AF.test(r.parent.textContent)||!l.modify?n=="left"||n=="backward"?s:o:EI(t,e,()=>{let{focusNode:a,focusOffset:c,anchorNode:u,anchorOffset:d}=t.domSelectionRange(),h=l.caretBidiLevel;l.modify("move",n,"character");let p=r.depth?t.docView.domAfterPos(r.before()):t.dom,{focusNode:m,focusOffset:g}=t.domSelectionRange(),v=m&&!p.contains(m.nodeType==1?m:m.parentNode)||a==m&&c==g;try{l.collapse(u,d),a&&(a!=u||c!=d)&&l.extend&&l.extend(a,c)}catch{}return h!=null&&(l.caretBidiLevel=h),v}):r.pos==r.start()||r.pos==r.end()}let nC=null,rC=null,iC=!1;function IF(t,e,n){return nC==e&&rC==n?iC:(nC=e,rC=n,iC=n=="up"||n=="down"?TF(t,e,n):MF(t,e,n))}const Di=0,sC=1,Rl=2,As=3;class Xd{constructor(e,n,r,i){this.parent=e,this.children=n,this.dom=r,this.contentDOM=i,this.dirty=Di,r.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,n,r){return!1}matchesHack(e){return!1}parseRule(){return null}stopEvent(e){return!1}get size(){let e=0;for(let n=0;nyr(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))i=e.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(n==0)for(let s=e;;s=s.parentNode){if(s==this.dom){i=!1;break}if(s.previousSibling)break}if(i==null&&n==e.childNodes.length)for(let s=e;;s=s.parentNode){if(s==this.dom){i=!0;break}if(s.nextSibling)break}}return i??r>0?this.posAtEnd:this.posAtStart}nearestDesc(e,n=!1){for(let r=!0,i=e;i;i=i.parentNode){let s=this.getDesc(i),o;if(s&&(!n||s.node))if(r&&(o=s.nodeDOM)&&!(o.nodeType==1?o.contains(e.nodeType==1?e:e.parentNode):o==e))r=!1;else return s}}getDesc(e){let n=e.pmViewDesc;for(let r=n;r;r=r.parent)if(r==this)return n}posFromDOM(e,n,r){for(let i=e;i;i=i.parentNode){let s=this.getDesc(i);if(s)return s.localPosFromDOM(e,n,r)}return-1}descAt(e){for(let n=0,r=0;ne||o instanceof TI){i=e-s;break}s=l}if(i)return this.children[r].domFromPos(i-this.children[r].border,n);for(let s;r&&!(s=this.children[r-1]).size&&s instanceof NI&&s.side>=0;r--);if(n<=0){let s,o=!0;for(;s=r?this.children[r-1]:null,!(!s||s.dom.parentNode==this.contentDOM);r--,o=!1);return s&&n&&o&&!s.border&&!s.domAtom?s.domFromPos(s.size,n):{node:this.contentDOM,offset:s?yr(s.dom)+1:0}}else{let s,o=!0;for(;s=r=u&&n<=c-a.border&&a.node&&a.contentDOM&&this.contentDOM.contains(a.contentDOM))return a.parseRange(e,n,u);e=o;for(let d=l;d>0;d--){let h=this.children[d-1];if(h.size&&h.dom.parentNode==this.contentDOM&&!h.emptyChildAt(1)){i=yr(h.dom)+1;break}e-=h.size}i==-1&&(i=0)}if(i>-1&&(c>n||l==this.children.length-1)){n=c;for(let u=l+1;um&&on){let m=l;l=a,a=m}let p=document.createRange();p.setEnd(a.node,a.offset),p.setStart(l.node,l.offset),c.removeAllRanges(),c.addRange(p)}}ignoreMutation(e){return!this.contentDOM&&e.type!="selection"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,n){for(let r=0,i=0;i=r:er){let l=r+s.border,a=o-s.border;if(e>=l&&n<=a){this.dirty=e==r||n==o?Rl:sC,e==l&&n==a&&(s.contentLost||s.dom.parentNode!=this.contentDOM)?s.dirty=As:s.markDirty(e-l,n-l);return}else s.dirty=s.dom==s.contentDOM&&s.dom.parentNode==this.contentDOM&&!s.children.length?Rl:As}r=o}this.dirty=Rl}markParentsDirty(){let e=1;for(let n=this.parent;n;n=n.parent,e++){let r=e==1?Rl:sC;n.dirty{if(!s)return i;if(s.parent)return s.parent.posBeforeChild(s)})),!n.type.spec.raw){if(o.nodeType!=1){let l=document.createElement("span");l.appendChild(o),o=l}o.contentEditable="false",o.classList.add("ProseMirror-widget")}super(e,[],o,null),this.widget=n,this.widget=n,s=this}matchesWidget(e){return this.dirty==Di&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let n=this.widget.spec.stopEvent;return n?n(e):!1}ignoreMutation(e){return e.type!="selection"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}}class RF extends Xd{constructor(e,n,r,i){super(e,[],n,null),this.textDOM=r,this.text=i}get size(){return this.text.length}localPosFromDOM(e,n){return e!=this.textDOM?this.posAtStart+(n?this.size:0):this.posAtStart+n}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return e.type==="characterData"&&e.target.nodeValue==e.oldValue}}class Zl extends Xd{constructor(e,n,r,i,s){super(e,[],r,i),this.mark=n,this.spec=s}static create(e,n,r,i){let s=i.nodeViews[n.type.name],o=s&&s(n,i,r);return(!o||!o.dom)&&(o=ua.renderSpec(document,n.type.spec.toDOM(n,r),null,n.attrs)),new Zl(e,n,o.dom,o.contentDOM||o.dom,o)}parseRule(){return this.dirty&As||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return this.dirty!=As&&this.mark.eq(e)}markDirty(e,n){if(super.markDirty(e,n),this.dirty!=Di){let r=this.parent;for(;!r.node;)r=r.parent;r.dirty0&&(s=D0(s,0,e,r));for(let l=0;l{if(!a)return o;if(a.parent)return a.parent.posBeforeChild(a)},r,i),u=c&&c.dom,d=c&&c.contentDOM;if(n.isText){if(!u)u=document.createTextNode(n.text);else if(u.nodeType!=3)throw new RangeError("Text must be rendered as a DOM text node")}else u||({dom:u,contentDOM:d}=ua.renderSpec(document,n.type.spec.toDOM(n),null,n.attrs));!d&&!n.isText&&u.nodeName!="BR"&&(u.hasAttribute("contenteditable")||(u.contentEditable="false"),n.type.spec.draggable&&(u.draggable=!0));let h=u;return u=II(u,r,n),c?a=new DF(e,n,r,i,u,d||null,h,c,s,o+1):n.isText?new tg(e,n,r,i,u,h,s):new el(e,n,r,i,u,d||null,h,s,o+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let e={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace=="pre"&&(e.preserveWhitespace="full"),!this.contentDOM)e.getContent=()=>this.node.content;else if(!this.contentLost)e.contentElement=this.contentDOM;else{for(let n=this.children.length-1;n>=0;n--){let r=this.children[n];if(this.dom.contains(r.dom.parentNode)){e.contentElement=r.dom.parentNode;break}}e.contentElement||(e.getContent=()=>we.empty)}return e}matchesNode(e,n,r){return this.dirty==Di&&e.eq(this.node)&&xp(n,this.outerDeco)&&r.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(e,n){let r=this.node.inlineContent,i=n,s=e.composing?this.localCompositionInfo(e,n):null,o=s&&s.pos>-1?s:null,l=s&&s.pos<0,a=new jF(this,o&&o.node,e);_F(this.node,this.innerDeco,(c,u,d)=>{c.spec.marks?a.syncToMarks(c.spec.marks,r,e,u):c.type.side>=0&&!d&&a.syncToMarks(u==this.node.childCount?vn.none:this.node.child(u).marks,r,e,u),a.placeWidget(c,e,i)},(c,u,d,h)=>{a.syncToMarks(c.marks,r,e,h);let p;a.findNodeMatch(c,u,d,h)||l&&e.state.selection.from>i&&e.state.selection.to-1&&a.updateNodeAt(c,u,d,p,e)||a.updateNextNode(c,u,d,e,h,i)||a.addNode(c,u,d,e,i),i+=c.nodeSize}),a.syncToMarks([],r,e,0),this.node.isTextblock&&a.addTextblockHacks(),a.destroyRest(),(a.changed||this.dirty==Rl)&&(o&&this.protectLocalComposition(e,o),AI(this.contentDOM,this.children,e),gc&&zF(this.dom))}localCompositionInfo(e,n){let{from:r,to:i}=e.state.selection;if(!(e.state.selection instanceof xt)||rn+this.node.content.size)return null;let s=e.input.compositionNode;if(!s||!this.dom.contains(s.parentNode))return null;if(this.node.inlineContent){let o=s.nodeValue,l=FF(this.node.content,o,r-n,i-n);return l<0?null:{node:s,pos:l,text:o}}else return{node:s,pos:-1,text:""}}protectLocalComposition(e,{node:n,pos:r,text:i}){if(this.getDesc(n))return;let s=n;for(;s.parentNode!=this.contentDOM;s=s.parentNode){for(;s.previousSibling;)s.parentNode.removeChild(s.previousSibling);for(;s.nextSibling;)s.parentNode.removeChild(s.nextSibling);s.pmViewDesc&&(s.pmViewDesc=void 0)}let o=new RF(this,s,n,i);e.input.compositionNodes.push(o),this.children=D0(this.children,r,r+i.length,e,o)}update(e,n,r,i){return this.dirty==As||!e.sameMarkup(this.node)?!1:(this.updateInner(e,n,r,i),!0)}updateInner(e,n,r,i){this.updateOuterDeco(n),this.node=e,this.innerDeco=r,this.contentDOM&&this.updateChildren(i,this.posAtStart),this.dirty=Di}updateOuterDeco(e){if(xp(e,this.outerDeco))return;let n=this.nodeDOM.nodeType!=1,r=this.dom;this.dom=MI(this.dom,this.nodeDOM,R0(this.outerDeco,this.node,n),R0(e,this.node,n)),this.dom!=r&&(r.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.add("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&(this.nodeDOM.draggable=!0))}deselectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.remove("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&this.nodeDOM.removeAttribute("draggable"))}get domAtom(){return this.node.isAtom}}function oC(t,e,n,r,i){II(r,e,t);let s=new el(void 0,t,e,n,r,r,r,i,0);return s.contentDOM&&s.updateChildren(i,0),s}class tg extends el{constructor(e,n,r,i,s,o,l){super(e,n,r,i,s,null,o,l,0)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,n,r,i){return this.dirty==As||this.dirty!=Di&&!this.inParent()||!e.sameMarkup(this.node)?!1:(this.updateOuterDeco(n),(this.dirty!=Di||e.text!=this.node.text)&&e.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=e.text,i.trackWrites==this.nodeDOM&&(i.trackWrites=null)),this.node=e,this.dirty=Di,!0)}inParent(){let e=this.parent.contentDOM;for(let n=this.nodeDOM;n;n=n.parentNode)if(n==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,n,r){return e==this.nodeDOM?this.posAtStart+Math.min(n,this.node.text.length):super.localPosFromDOM(e,n,r)}ignoreMutation(e){return e.type!="characterData"&&e.type!="selection"}slice(e,n,r){let i=this.node.cut(e,n),s=document.createTextNode(i.text);return new tg(this.parent,i,this.outerDeco,this.innerDeco,s,s,r)}markDirty(e,n){super.markDirty(e,n),this.dom!=this.nodeDOM&&(e==0||n==this.nodeDOM.nodeValue.length)&&(this.dirty=As)}get domAtom(){return!1}isText(e){return this.node.text==e}}class TI extends Xd{parseRule(){return{ignore:!0}}matchesHack(e){return this.dirty==Di&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName=="IMG"}}class DF extends el{constructor(e,n,r,i,s,o,l,a,c,u){super(e,n,r,i,s,o,l,c,u),this.spec=a}update(e,n,r,i){if(this.dirty==As)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let s=this.spec.update(e,n,r);return s&&this.updateInner(e,n,r,i),s}else return!this.contentDOM&&!e.isLeaf?!1:super.update(e,n,r,i)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,n,r,i){this.spec.setSelection?this.spec.setSelection(e,n,r.root):super.setSelection(e,n,r,i)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return this.spec.stopEvent?this.spec.stopEvent(e):!1}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}}function AI(t,e,n){let r=t.firstChild,i=!1;for(let s=0;s>1,l=Math.min(o,e.length);for(;s-1)a>this.index&&(this.changed=!0,this.destroyBetween(this.index,a)),this.top=this.top.children[this.index];else{let u=Zl.create(this.top,e[o],n,r);this.top.children.splice(this.index,0,u),this.top=u,this.changed=!0}this.index=0,o++}}findNodeMatch(e,n,r,i){let s=-1,o;if(i>=this.preMatch.index&&(o=this.preMatch.matches[i-this.preMatch.index]).parent==this.top&&o.matchesNode(e,n,r))s=this.top.children.indexOf(o,this.index);else for(let l=this.index,a=Math.min(this.top.children.length,l+5);l0;){let l;for(;;)if(r){let c=n.children[r-1];if(c instanceof Zl)n=c,r=c.children.length;else{l=c,r--;break}}else{if(n==e)break e;r=n.parent.children.indexOf(n),n=n.parent}let a=l.node;if(a){if(a!=t.child(i-1))break;--i,s.set(l,i),o.push(l)}}return{index:i,matched:s,matches:o.reverse()}}function LF(t,e){return t.type.side-e.type.side}function _F(t,e,n,r){let i=e.locals(t),s=0;if(i.length==0){for(let c=0;cs;)l.push(i[o++]);let m=s+h.nodeSize;if(h.isText){let v=m;o!v.inline):l.slice();r(h,g,e.forChild(s,h),p),s=m}}function zF(t){if(t.nodeName=="UL"||t.nodeName=="OL"){let e=t.style.cssText;t.style.cssText=e+"; list-style: square !important",window.getComputedStyle(t).listStyle,t.style.cssText=e}}function FF(t,e,n,r){for(let i=0,s=0;i=n){if(s>=r&&a.slice(r-e.length-l,r-l)==e)return r-e.length;let c=l=0&&c+e.length+l>=n)return l+c;if(n==r&&a.length>=r+e.length-l&&a.slice(r-l,r-l+e.length)==e)return r}}return-1}function D0(t,e,n,r,i){let s=[];for(let o=0,l=0;o=n||u<=e?s.push(a):(cn&&s.push(a.slice(n-c,a.size,r)))}return s}function qw(t,e=null){let n=t.domSelectionRange(),r=t.state.doc;if(!n.focusNode)return null;let i=t.docView.nearestDesc(n.focusNode),s=i&&i.size==0,o=t.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(o<0)return null;let l=r.resolve(o),a,c;if(eg(n)){for(a=o;i&&!i.node;)i=i.parent;let d=i.node;if(i&&d.isAtom&&dt.isSelectable(d)&&i.parent&&!(d.isInline&&fF(n.focusNode,n.focusOffset,i.dom))){let h=i.posBefore;c=new dt(o==h?l:r.resolve(h))}}else{if(n instanceof t.dom.ownerDocument.defaultView.Selection&&n.rangeCount>1){let d=o,h=o;for(let p=0;p{(n.anchorNode!=r||n.anchorOffset!=i)&&(e.removeEventListener("selectionchange",t.input.hideSelectionGuard),setTimeout(()=>{(!RI(t)||t.state.selection.visible)&&t.dom.classList.remove("ProseMirror-hideselection")},20))})}function BF(t){let e=t.domSelection();if(!e)return;let n=t.cursorWrapper.dom,r=n.nodeName=="IMG";r?e.collapse(n.parentNode,yr(n)+1):e.collapse(n,0),!r&&!t.state.selection.visible&&ii&&Zo<=11&&(n.disabled=!0,n.disabled=!1)}function DI(t,e){if(e instanceof dt){let n=t.docView.descAt(e.from);n!=t.lastSelectedViewDesc&&(dC(t),n&&n.selectNode(),t.lastSelectedViewDesc=n)}else dC(t)}function dC(t){t.lastSelectedViewDesc&&(t.lastSelectedViewDesc.parent&&t.lastSelectedViewDesc.deselectNode(),t.lastSelectedViewDesc=void 0)}function Jw(t,e,n,r){return t.someProp("createSelectionBetween",i=>i(t,e,n))||xt.between(e,n,r)}function fC(t){return t.editable&&!t.hasFocus()?!1:OI(t)}function OI(t){let e=t.domSelectionRange();if(!e.anchorNode)return!1;try{return t.dom.contains(e.anchorNode.nodeType==3?e.anchorNode.parentNode:e.anchorNode)&&(t.editable||t.dom.contains(e.focusNode.nodeType==3?e.focusNode.parentNode:e.focusNode))}catch{return!1}}function UF(t){let e=t.docView.domFromPos(t.state.selection.anchor,0),n=t.domSelectionRange();return Ql(e.node,e.offset,n.anchorNode,n.anchorOffset)}function O0(t,e){let{$anchor:n,$head:r}=t.selection,i=e>0?n.max(r):n.min(r),s=i.parent.inlineContent?i.depth?t.doc.resolve(e>0?i.after():i.before()):null:i;return s&&Nt.findFrom(s,e)}function Io(t,e){return t.dispatch(t.state.tr.setSelection(e).scrollIntoView()),!0}function hC(t,e,n){let r=t.state.selection;if(r instanceof xt)if(n.indexOf("s")>-1){let{$head:i}=r,s=i.textOffset?null:e<0?i.nodeBefore:i.nodeAfter;if(!s||s.isText||!s.isLeaf)return!1;let o=t.state.doc.resolve(i.pos+s.nodeSize*(e<0?-1:1));return Io(t,new xt(r.$anchor,o))}else if(r.empty){if(t.endOfTextblock(e>0?"forward":"backward")){let i=O0(t.state,e);return i&&i instanceof dt?Io(t,i):!1}else if(!(Si&&n.indexOf("m")>-1)){let i=r.$head,s=i.textOffset?null:e<0?i.nodeBefore:i.nodeAfter,o;if(!s||s.isText)return!1;let l=e<0?i.pos-s.nodeSize:i.pos;return s.isAtom||(o=t.docView.descAt(l))&&!o.contentDOM?dt.isSelectable(s)?Io(t,new dt(e<0?t.state.doc.resolve(i.pos-s.nodeSize):i)):Gd?Io(t,new xt(t.state.doc.resolve(e<0?l:l+s.nodeSize))):!1:!1}}else return!1;else{if(r instanceof dt&&r.node.isInline)return Io(t,new xt(e>0?r.$to:r.$from));{let i=O0(t.state,e);return i?Io(t,i):!1}}}function kp(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function Pu(t,e){let n=t.pmViewDesc;return n&&n.size==0&&(e<0||t.nextSibling||t.nodeName!="BR")}function va(t,e){return e<0?HF(t):VF(t)}function HF(t){let e=t.domSelectionRange(),n=e.focusNode,r=e.focusOffset;if(!n)return;let i,s,o=!1;for(Ri&&n.nodeType==1&&r0){if(n.nodeType!=1)break;{let l=n.childNodes[r-1];if(Pu(l,-1))i=n,s=--r;else if(l.nodeType==3)n=l,r=n.nodeValue.length;else break}}else{if(jI(n))break;{let l=n.previousSibling;for(;l&&Pu(l,-1);)i=n.parentNode,s=yr(l),l=l.previousSibling;if(l)n=l,r=kp(n);else{if(n=n.parentNode,n==t.dom)break;r=0}}}o?j0(t,n,r):i&&j0(t,i,s)}function VF(t){let e=t.domSelectionRange(),n=e.focusNode,r=e.focusOffset;if(!n)return;let i=kp(n),s,o;for(;;)if(r{t.state==i&&eo(t)},50)}function pC(t,e){let n=t.state.doc.resolve(e);if(!(lr||bI)&&n.parent.inlineContent){let i=t.coordsAtPos(e);if(e>n.start()){let s=t.coordsAtPos(e-1),o=(s.top+s.bottom)/2;if(o>i.top&&o1)return s.lefti.top&&o1)return s.left>i.left?"ltr":"rtl"}}return getComputedStyle(t.dom).direction=="rtl"?"rtl":"ltr"}function mC(t,e,n){let r=t.state.selection;if(r instanceof xt&&!r.empty||n.indexOf("s")>-1||Si&&n.indexOf("m")>-1)return!1;let{$from:i,$to:s}=r;if(!i.parent.inlineContent||t.endOfTextblock(e<0?"up":"down")){let o=O0(t.state,e);if(o&&o instanceof dt)return Io(t,o)}if(!i.parent.inlineContent){let o=e<0?i:s,l=r instanceof ri?Nt.near(o,e):Nt.findFrom(o,e);return l?Io(t,l):!1}return!1}function gC(t,e){if(!(t.state.selection instanceof xt))return!0;let{$head:n,$anchor:r,empty:i}=t.state.selection;if(!n.sameParent(r))return!0;if(!i)return!1;if(t.endOfTextblock(e>0?"forward":"backward"))return!0;let s=!n.textOffset&&(e<0?n.nodeBefore:n.nodeAfter);if(s&&!s.isText){let o=t.state.tr;return e<0?o.delete(n.pos-s.nodeSize,n.pos):o.delete(n.pos,n.pos+s.nodeSize),t.dispatch(o),!0}return!1}function yC(t,e,n){t.domObserver.stop(),e.contentEditable=n,t.domObserver.start()}function YF(t){if(!xr||t.state.selection.$head.parentOffset>0)return!1;let{focusNode:e,focusOffset:n}=t.domSelectionRange();if(e&&e.nodeType==1&&n==0&&e.firstChild&&e.firstChild.contentEditable=="false"){let r=e.firstChild;yC(t,r,"true"),setTimeout(()=>yC(t,r,"false"),20)}return!1}function qF(t){let e="";return t.ctrlKey&&(e+="c"),t.metaKey&&(e+="m"),t.altKey&&(e+="a"),t.shiftKey&&(e+="s"),e}function JF(t,e){let n=e.keyCode,r=qF(e);if(n==8||Si&&n==72&&r=="c")return gC(t,-1)||va(t,-1);if(n==46&&!e.shiftKey||Si&&n==68&&r=="c")return gC(t,1)||va(t,1);if(n==13||n==27)return!0;if(n==37||Si&&n==66&&r=="c"){let i=n==37?pC(t,t.state.selection.from)=="ltr"?-1:1:-1;return hC(t,i,r)||va(t,i)}else if(n==39||Si&&n==70&&r=="c"){let i=n==39?pC(t,t.state.selection.from)=="ltr"?1:-1:1;return hC(t,i,r)||va(t,i)}else{if(n==38||Si&&n==80&&r=="c")return mC(t,-1,r)||va(t,-1);if(n==40||Si&&n==78&&r=="c")return YF(t)||mC(t,1,r)||va(t,1);if(r==(Si?"m":"c")&&(n==66||n==73||n==89||n==90))return!0}return!1}function Gw(t,e){t.someProp("transformCopied",p=>{e=p(e,t)});let n=[],{content:r,openStart:i,openEnd:s}=e;for(;i>1&&s>1&&r.childCount==1&&r.firstChild.childCount==1;){i--,s--;let p=r.firstChild;n.push(p.type.name,p.attrs!=p.type.defaultAttrs?p.attrs:null),r=p.content}let o=t.someProp("clipboardSerializer")||ua.fromSchema(t.state.schema),l=$I(),a=l.createElement("div");a.appendChild(o.serializeFragment(r,{document:l}));let c=a.firstChild,u,d=0;for(;c&&c.nodeType==1&&(u=FI[c.nodeName.toLowerCase()]);){for(let p=u.length-1;p>=0;p--){let m=l.createElement(u[p]);for(;a.firstChild;)m.appendChild(a.firstChild);a.appendChild(m),d++}c=a.firstChild}c&&c.nodeType==1&&c.setAttribute("data-pm-slice",`${i} ${s}${d?` -${d}`:""} ${JSON.stringify(n)}`);let h=t.someProp("clipboardTextSerializer",p=>p(e,t))||e.content.textBetween(0,e.content.size,` + +`);return{dom:a,text:h,slice:e}}function PI(t,e,n,r,i){let s=i.parent.type.spec.code,o,l;if(!n&&!e)return null;let a=!!e&&(r||s||!n);if(a){if(t.someProp("transformPastedText",h=>{e=h(e,s||r,t)}),s)return l=new _e(we.from(t.state.schema.text(e.replace(/\r\n?/g,` +`))),0,0),t.someProp("transformPasted",h=>{l=h(l,t,!0)}),l;let d=t.someProp("clipboardTextParser",h=>h(e,i,r,t));if(d)l=d;else{let h=i.marks(),{schema:p}=t.state,m=ua.fromSchema(p);o=document.createElement("div"),e.split(/(?:\r\n?|\n)+/).forEach(g=>{let v=o.appendChild(document.createElement("p"));g&&v.appendChild(m.serializeNode(p.text(g,h)))})}}else t.someProp("transformPastedHTML",d=>{n=d(n,t)}),o=ZF(n),Gd&&e$(o);let c=o&&o.querySelector("[data-pm-slice]"),u=c&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(c.getAttribute("data-pm-slice")||"");if(u&&u[3])for(let d=+u[3];d>0;d--){let h=o.firstChild;for(;h&&h.nodeType!=1;)h=h.nextSibling;if(!h)break;o=h}if(l||(l=(t.someProp("clipboardParser")||t.someProp("domParser")||Du.fromSchema(t.state.schema)).parseSlice(o,{preserveWhitespace:!!(a||u),context:i,ruleFromNode(h){return h.nodeName=="BR"&&!h.nextSibling&&h.parentNode&&!GF.test(h.parentNode.nodeName)?{ignore:!0}:null}})),u)l=t$(vC(l,+u[1],+u[2]),u[4]);else if(l=_e.maxOpen(XF(l.content,i),!0),l.openStart||l.openEnd){let d=0,h=0;for(let p=l.content.firstChild;d{l=d(l,t,a)}),l}const GF=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function XF(t,e){if(t.childCount<2)return t;for(let n=e.depth;n>=0;n--){let i=e.node(n).contentMatchAt(e.index(n)),s,o=[];if(t.forEach(l=>{if(!o)return;let a=i.findWrapping(l.type),c;if(!a)return o=null;if(c=o.length&&s.length&&_I(a,s,l,o[o.length-1],0))o[o.length-1]=c;else{o.length&&(o[o.length-1]=zI(o[o.length-1],s.length));let u=LI(l,a);o.push(u),i=i.matchType(u.type),s=a}}),o)return we.from(o)}return t}function LI(t,e,n=0){for(let r=e.length-1;r>=n;r--)t=e[r].create(null,we.from(t));return t}function _I(t,e,n,r,i){if(i1&&(s=0),i=n&&(l=e<0?o.contentMatchAt(0).fillBefore(l,s<=i).append(l):l.append(o.contentMatchAt(o.childCount).fillBefore(we.empty,!0))),t.replaceChild(e<0?0:t.childCount-1,o.copy(l))}function vC(t,e,n){return en})),Py.createHTML(t)):t}function ZF(t){let e=/^(\s*]*>)*/.exec(t);e&&(t=t.slice(e[0].length));let n=$I().createElement("div"),r=/<([a-z][^>\s]+)/i.exec(t),i;if((i=r&&FI[r[1].toLowerCase()])&&(t=i.map(s=>"<"+s+">").join("")+t+i.map(s=>"").reverse().join("")),n.innerHTML=QF(t),i)for(let s=0;s=0;l-=2){let a=n.nodes[r[l]];if(!a||a.hasRequiredAttrs())break;i=we.from(a.create(r[l+1],i)),s++,o++}return new _e(i,s,o)}const Vr={},Wr={},n$={touchstart:!0,touchmove:!0};class r${constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:"",button:0},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastChromeDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.badSafariComposition=!1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function i$(t){for(let e in Vr){let n=Vr[e];t.dom.addEventListener(e,t.input.eventHandlers[e]=r=>{o$(t,r)&&!Xw(t,r)&&(t.editable||!(r.type in Wr))&&n(t,r)},n$[e]?{passive:!0}:void 0)}xr&&t.dom.addEventListener("input",()=>null),L0(t)}function Uo(t,e){t.input.lastSelectionOrigin=e,t.input.lastSelectionTime=Date.now()}function s$(t){t.domObserver.stop();for(let e in t.input.eventHandlers)t.dom.removeEventListener(e,t.input.eventHandlers[e]);clearTimeout(t.input.composingTimeout),clearTimeout(t.input.lastIOSEnterFallbackTimeout)}function L0(t){t.someProp("handleDOMEvents",e=>{for(let n in e)t.input.eventHandlers[n]||t.dom.addEventListener(n,t.input.eventHandlers[n]=r=>Xw(t,r))})}function Xw(t,e){return t.someProp("handleDOMEvents",n=>{let r=n[e.type];return r?r(t,e)||e.defaultPrevented:!1})}function o$(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target;n!=t.dom;n=n.parentNode)if(!n||n.nodeType==11||n.pmViewDesc&&n.pmViewDesc.stopEvent(e))return!1;return!0}function l$(t,e){!Xw(t,e)&&Vr[e.type]&&(t.editable||!(e.type in Wr))&&Vr[e.type](t,e)}Wr.keydown=(t,e)=>{let n=e;if(t.input.shiftKey=n.keyCode==16||n.shiftKey,!UI(t,n)&&(t.input.lastKeyCode=n.keyCode,t.input.lastKeyCodeTime=Date.now(),!(Js&&lr&&n.keyCode==13)))if(n.keyCode!=229&&t.domObserver.forceFlush(),gc&&n.keyCode==13&&!n.ctrlKey&&!n.altKey&&!n.metaKey){let r=Date.now();t.input.lastIOSEnter=r,t.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{t.input.lastIOSEnter==r&&(t.someProp("handleKeyDown",i=>i(t,Nl(13,"Enter"))),t.input.lastIOSEnter=0)},200)}else t.someProp("handleKeyDown",r=>r(t,n))||JF(t,n)?n.preventDefault():Uo(t,"key")};Wr.keyup=(t,e)=>{e.keyCode==16&&(t.input.shiftKey=!1)};Wr.keypress=(t,e)=>{let n=e;if(UI(t,n)||!n.charCode||n.ctrlKey&&!n.altKey||Si&&n.metaKey)return;if(t.someProp("handleKeyPress",i=>i(t,n))){n.preventDefault();return}let r=t.state.selection;if(!(r instanceof xt)||!r.$from.sameParent(r.$to)){let i=String.fromCharCode(n.charCode),s=()=>t.state.tr.insertText(i).scrollIntoView();!/[\r\n]/.test(i)&&!t.someProp("handleTextInput",o=>o(t,r.$from.pos,r.$to.pos,i,s))&&t.dispatch(s()),n.preventDefault()}};function ng(t){return{left:t.clientX,top:t.clientY}}function a$(t,e){let n=e.x-t.clientX,r=e.y-t.clientY;return n*n+r*r<100}function Qw(t,e,n,r,i){if(r==-1)return!1;let s=t.state.doc.resolve(r);for(let o=s.depth+1;o>0;o--)if(t.someProp(e,l=>o>s.depth?l(t,n,s.nodeAfter,s.before(o),i,!0):l(t,n,s.node(o),s.before(o),i,!1)))return!0;return!1}function Ga(t,e,n){if(t.focused||t.focus(),t.state.selection.eq(e))return;let r=t.state.tr.setSelection(e);r.setMeta("pointer",!0),t.dispatch(r)}function c$(t,e){if(e==-1)return!1;let n=t.state.doc.resolve(e),r=n.nodeAfter;return r&&r.isAtom&&dt.isSelectable(r)?(Ga(t,new dt(n)),!0):!1}function u$(t,e){if(e==-1)return!1;let n=t.state.selection,r,i;n instanceof dt&&(r=n.node);let s=t.state.doc.resolve(e);for(let o=s.depth+1;o>0;o--){let l=o>s.depth?s.nodeAfter:s.node(o);if(dt.isSelectable(l)){r&&n.$from.depth>0&&o>=n.$from.depth&&s.before(n.$from.depth+1)==n.$from.pos?i=s.before(n.$from.depth):i=s.before(o);break}}return i!=null?(Ga(t,dt.create(t.state.doc,i)),!0):!1}function d$(t,e,n,r,i){return Qw(t,"handleClickOn",e,n,r)||t.someProp("handleClick",s=>s(t,e,r))||(i?u$(t,n):c$(t,n))}function f$(t,e,n,r){return Qw(t,"handleDoubleClickOn",e,n,r)||t.someProp("handleDoubleClick",i=>i(t,e,r))}function h$(t,e,n,r){return Qw(t,"handleTripleClickOn",e,n,r)||t.someProp("handleTripleClick",i=>i(t,e,r))||p$(t,n,r)}function p$(t,e,n){if(n.button!=0)return!1;let r=t.state.doc;if(e==-1)return r.inlineContent?(Ga(t,xt.create(r,0,r.content.size)),!0):!1;let i=r.resolve(e);for(let s=i.depth+1;s>0;s--){let o=s>i.depth?i.nodeAfter:i.node(s),l=i.before(s);if(o.inlineContent)Ga(t,xt.create(r,l+1,l+1+o.content.size));else if(dt.isSelectable(o))Ga(t,dt.create(r,l));else continue;return!0}}function Zw(t){return Sp(t)}const BI=Si?"metaKey":"ctrlKey";Vr.mousedown=(t,e)=>{let n=e;t.input.shiftKey=n.shiftKey;let r=Zw(t),i=Date.now(),s="singleClick";i-t.input.lastClick.time<500&&a$(n,t.input.lastClick)&&!n[BI]&&t.input.lastClick.button==n.button&&(t.input.lastClick.type=="singleClick"?s="doubleClick":t.input.lastClick.type=="doubleClick"&&(s="tripleClick")),t.input.lastClick={time:i,x:n.clientX,y:n.clientY,type:s,button:n.button};let o=t.posAtCoords(ng(n));o&&(s=="singleClick"?(t.input.mouseDown&&t.input.mouseDown.done(),t.input.mouseDown=new m$(t,o,n,!!r)):(s=="doubleClick"?f$:h$)(t,o.pos,o.inside,n)?n.preventDefault():Uo(t,"pointer"))};class m${constructor(e,n,r,i){this.view=e,this.pos=n,this.event=r,this.flushed=i,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!r[BI],this.allowDefault=r.shiftKey;let s,o;if(n.inside>-1)s=e.state.doc.nodeAt(n.inside),o=n.inside;else{let u=e.state.doc.resolve(n.pos);s=u.parent,o=u.depth?u.before():0}const l=i?null:r.target,a=l?e.docView.nearestDesc(l,!0):null;this.target=a&&a.nodeDOM.nodeType==1?a.nodeDOM:null;let{selection:c}=e.state;(r.button==0&&s.type.spec.draggable&&s.type.spec.selectable!==!1||c instanceof dt&&c.from<=o&&c.to>o)&&(this.mightDrag={node:s,pos:o,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&Ri&&!this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),e.root.addEventListener("mouseup",this.up=this.up.bind(this)),e.root.addEventListener("mousemove",this.move=this.move.bind(this)),Uo(e,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>eo(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let n=this.pos;this.view.state.doc!=this.startDoc&&(n=this.view.posAtCoords(ng(e))),this.updateAllowDefault(e),this.allowDefault||!n?Uo(this.view,"pointer"):d$(this.view,n.pos,n.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||xr&&this.mightDrag&&!this.mightDrag.node.isAtom||lr&&!this.view.state.selection.visible&&Math.min(Math.abs(n.pos-this.view.state.selection.from),Math.abs(n.pos-this.view.state.selection.to))<=2)?(Ga(this.view,Nt.near(this.view.state.doc.resolve(n.pos))),e.preventDefault()):Uo(this.view,"pointer")}move(e){this.updateAllowDefault(e),Uo(this.view,"pointer"),e.buttons==0&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}}Vr.touchstart=t=>{t.input.lastTouch=Date.now(),Zw(t),Uo(t,"pointer")};Vr.touchmove=t=>{t.input.lastTouch=Date.now(),Uo(t,"pointer")};Vr.contextmenu=t=>Zw(t);function UI(t,e){return t.composing?!0:xr&&Math.abs(e.timeStamp-t.input.compositionEndedAt)<500?(t.input.compositionEndedAt=-2e8,!0):!1}const g$=Js?5e3:-1;Wr.compositionstart=Wr.compositionupdate=t=>{if(!t.composing){t.domObserver.flush();let{state:e}=t,n=e.selection.$to;if(e.selection instanceof xt&&(e.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(r=>r.type.spec.inclusive===!1)||lr&&bI&&y$(t)))t.markCursor=t.state.storedMarks||n.marks(),Sp(t,!0),t.markCursor=null;else if(Sp(t,!e.selection.empty),Ri&&e.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let r=t.domSelectionRange();for(let i=r.focusNode,s=r.focusOffset;i&&i.nodeType==1&&s!=0;){let o=s<0?i.lastChild:i.childNodes[s-1];if(!o)break;if(o.nodeType==3){let l=t.domSelection();l&&l.collapse(o,o.nodeValue.length);break}else i=o,s=-1}}t.input.composing=!0}HI(t,g$)};function y$(t){let{focusNode:e,focusOffset:n}=t.domSelectionRange();if(!e||e.nodeType!=1||n>=e.childNodes.length)return!1;let r=e.childNodes[n];return r.nodeType==1&&r.contentEditable=="false"}Wr.compositionend=(t,e)=>{t.composing&&(t.input.composing=!1,t.input.compositionEndedAt=e.timeStamp,t.input.compositionPendingChanges=t.domObserver.pendingRecords().length?t.input.compositionID:0,t.input.compositionNode=null,t.input.badSafariComposition?t.domObserver.forceFlush():t.input.compositionPendingChanges&&Promise.resolve().then(()=>t.domObserver.flush()),t.input.compositionID++,HI(t,20))};function HI(t,e){clearTimeout(t.input.composingTimeout),e>-1&&(t.input.composingTimeout=setTimeout(()=>Sp(t),e))}function VI(t){for(t.composing&&(t.input.composing=!1,t.input.compositionEndedAt=b$());t.input.compositionNodes.length>0;)t.input.compositionNodes.pop().markParentsDirty()}function v$(t){let e=t.domSelectionRange();if(!e.focusNode)return null;let n=uF(e.focusNode,e.focusOffset),r=dF(e.focusNode,e.focusOffset);if(n&&r&&n!=r){let i=r.pmViewDesc,s=t.domObserver.lastChangedTextNode;if(n==s||r==s)return s;if(!i||!i.isText(r.nodeValue))return r;if(t.input.compositionNode==r){let o=n.pmViewDesc;if(!(!o||!o.isText(n.nodeValue)))return r}}return n||r}function b$(){let t=document.createEvent("Event");return t.initEvent("event",!0,!0),t.timeStamp}function Sp(t,e=!1){if(!(Js&&t.domObserver.flushingSoon>=0)){if(t.domObserver.forceFlush(),VI(t),e||t.docView&&t.docView.dirty){let n=qw(t),r=t.state.selection;return n&&!n.eq(r)?t.dispatch(t.state.tr.setSelection(n)):(t.markCursor||e)&&!r.$from.node(r.$from.sharedDepth(r.to)).inlineContent?t.dispatch(t.state.tr.deleteSelection()):t.updateState(t.state),!0}return!1}}function w$(t,e){if(!t.dom.parentNode)return;let n=t.dom.parentNode.appendChild(document.createElement("div"));n.appendChild(e),n.style.cssText="position: fixed; left: -10000px; top: 10px";let r=getSelection(),i=document.createRange();i.selectNodeContents(e),t.dom.blur(),r.removeAllRanges(),r.addRange(i),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),t.focus()},50)}const yd=ii&&Zo<15||gc&&mF<604;Vr.copy=Wr.cut=(t,e)=>{let n=e,r=t.state.selection,i=n.type=="cut";if(r.empty)return;let s=yd?null:n.clipboardData,o=r.content(),{dom:l,text:a}=Gw(t,o);s?(n.preventDefault(),s.clearData(),s.setData("text/html",l.innerHTML),s.setData("text/plain",a)):w$(t,l),i&&t.dispatch(t.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))};function x$(t){return t.openStart==0&&t.openEnd==0&&t.content.childCount==1?t.content.firstChild:null}function k$(t,e){if(!t.dom.parentNode)return;let n=t.input.shiftKey||t.state.selection.$from.parent.type.spec.code,r=t.dom.parentNode.appendChild(document.createElement(n?"textarea":"div"));n||(r.contentEditable="true"),r.style.cssText="position: fixed; left: -10000px; top: 10px",r.focus();let i=t.input.shiftKey&&t.input.lastKeyCode!=45;setTimeout(()=>{t.focus(),r.parentNode&&r.parentNode.removeChild(r),n?vd(t,r.value,null,i,e):vd(t,r.textContent,r.innerHTML,i,e)},50)}function vd(t,e,n,r,i){let s=PI(t,e,n,r,t.state.selection.$from);if(t.someProp("handlePaste",a=>a(t,i,s||_e.empty)))return!0;if(!s)return!1;let o=x$(s),l=o?t.state.tr.replaceSelectionWith(o,r):t.state.tr.replaceSelection(s);return t.dispatch(l.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function WI(t){let e=t.getData("text/plain")||t.getData("Text");if(e)return e;let n=t.getData("text/uri-list");return n?n.replace(/\r?\n/g," "):""}Wr.paste=(t,e)=>{let n=e;if(t.composing&&!Js)return;let r=yd?null:n.clipboardData,i=t.input.shiftKey&&t.input.lastKeyCode!=45;r&&vd(t,WI(r),r.getData("text/html"),i,n)?n.preventDefault():k$(t,n)};class KI{constructor(e,n,r){this.slice=e,this.move=n,this.node=r}}const S$=Si?"altKey":"ctrlKey";function YI(t,e){let n=t.someProp("dragCopies",r=>!r(e));return n??!e[S$]}Vr.dragstart=(t,e)=>{let n=e,r=t.input.mouseDown;if(r&&r.done(),!n.dataTransfer)return;let i=t.state.selection,s=i.empty?null:t.posAtCoords(ng(n)),o;if(!(s&&s.pos>=i.from&&s.pos<=(i instanceof dt?i.to-1:i.to))){if(r&&r.mightDrag)o=dt.create(t.state.doc,r.mightDrag.pos);else if(n.target&&n.target.nodeType==1){let d=t.docView.nearestDesc(n.target,!0);d&&d.node.type.spec.draggable&&d!=t.docView&&(o=dt.create(t.state.doc,d.posBefore))}}let l=(o||t.state.selection).content(),{dom:a,text:c,slice:u}=Gw(t,l);(!n.dataTransfer.files.length||!lr||vI>120)&&n.dataTransfer.clearData(),n.dataTransfer.setData(yd?"Text":"text/html",a.innerHTML),n.dataTransfer.effectAllowed="copyMove",yd||n.dataTransfer.setData("text/plain",c),t.dragging=new KI(u,YI(t,n),o)};Vr.dragend=t=>{let e=t.dragging;window.setTimeout(()=>{t.dragging==e&&(t.dragging=null)},50)};Wr.dragover=Wr.dragenter=(t,e)=>e.preventDefault();Wr.drop=(t,e)=>{try{C$(t,e,t.dragging)}finally{t.dragging=null}};function C$(t,e,n){if(!e.dataTransfer)return;let r=t.posAtCoords(ng(e));if(!r)return;let i=t.state.doc.resolve(r.pos),s=n&&n.slice;s?t.someProp("transformPasted",p=>{s=p(s,t,!1)}):s=PI(t,WI(e.dataTransfer),yd?null:e.dataTransfer.getData("text/html"),!1,i);let o=!!(n&&YI(t,e));if(t.someProp("handleDrop",p=>p(t,e,s||_e.empty,o))){e.preventDefault();return}if(!s)return;e.preventDefault();let l=s?GM(t.state.doc,i.pos,s):i.pos;l==null&&(l=i.pos);let a=t.state.tr;if(o){let{node:p}=n;p?p.replace(a):a.deleteSelection()}let c=a.mapping.map(l),u=s.openStart==0&&s.openEnd==0&&s.content.childCount==1,d=a.doc;if(u?a.replaceRangeWith(c,c,s.content.firstChild):a.replaceRange(c,c,s),a.doc.eq(d))return;let h=a.doc.resolve(c);if(u&&dt.isSelectable(s.content.firstChild)&&h.nodeAfter&&h.nodeAfter.sameMarkup(s.content.firstChild))a.setSelection(new dt(h));else{let p=a.mapping.map(l);a.mapping.maps[a.mapping.maps.length-1].forEach((m,g,v,y)=>p=y),a.setSelection(Jw(t,h,a.doc.resolve(p)))}t.focus(),t.dispatch(a.setMeta("uiEvent","drop"))}Vr.focus=t=>{t.input.lastFocus=Date.now(),t.focused||(t.domObserver.stop(),t.dom.classList.add("ProseMirror-focused"),t.domObserver.start(),t.focused=!0,setTimeout(()=>{t.docView&&t.hasFocus()&&!t.domObserver.currentSelection.eq(t.domSelectionRange())&&eo(t)},20))};Vr.blur=(t,e)=>{let n=e;t.focused&&(t.domObserver.stop(),t.dom.classList.remove("ProseMirror-focused"),t.domObserver.start(),n.relatedTarget&&t.dom.contains(n.relatedTarget)&&t.domObserver.currentSelection.clear(),t.focused=!1)};Vr.beforeinput=(t,e)=>{if(lr&&Js&&e.inputType=="deleteContentBackward"){t.domObserver.flushSoon();let{domChangeCount:r}=t.input;setTimeout(()=>{if(t.input.domChangeCount!=r||(t.dom.blur(),t.focus(),t.someProp("handleKeyDown",s=>s(t,Nl(8,"Backspace")))))return;let{$cursor:i}=t.state.selection;i&&i.pos>0&&t.dispatch(t.state.tr.delete(i.pos-1,i.pos).scrollIntoView())},50)}};for(let t in Wr)Vr[t]=Wr[t];function bd(t,e){if(t==e)return!0;for(let n in t)if(t[n]!==e[n])return!1;for(let n in e)if(!(n in t))return!1;return!0}class Cp{constructor(e,n){this.toDOM=e,this.spec=n||$l,this.side=this.spec.side||0}map(e,n,r,i){let{pos:s,deleted:o}=e.mapResult(n.from+i,this.side<0?-1:1);return o?null:new Fr(s-r,s-r,this)}valid(){return!0}eq(e){return this==e||e instanceof Cp&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&bd(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}}class tl{constructor(e,n){this.attrs=e,this.spec=n||$l}map(e,n,r,i){let s=e.map(n.from+i,this.spec.inclusiveStart?-1:1)-r,o=e.map(n.to+i,this.spec.inclusiveEnd?1:-1)-r;return s>=o?null:new Fr(s,o,this)}valid(e,n){return n.from=e&&(!s||s(l.spec))&&r.push(l.copy(l.from+i,l.to+i))}for(let o=0;oe){let l=this.children[o]+1;this.children[o+2].findInner(e-l,n-l,r,i+l,s)}}map(e,n,r){return this==Nr||e.maps.length==0?this:this.mapInner(e,n,0,0,r||$l)}mapInner(e,n,r,i,s){let o;for(let l=0;l{let c=a+r,u;if(u=JI(n,l,c)){for(i||(i=this.children.slice());sl&&d.to=e){this.children[l]==e&&(r=this.children[l+2]);break}let s=e+1,o=s+n.content.size;for(let l=0;ls&&a.type instanceof tl){let c=Math.max(s,a.from)-s,u=Math.min(o,a.to)-s;ci.map(e,n,$l));return Po.from(r)}forChild(e,n){if(n.isLeaf)return Mn.empty;let r=[];for(let i=0;in instanceof Mn)?e:e.reduce((n,r)=>n.concat(r instanceof Mn?r:r.members),[]))}}forEachSet(e){for(let n=0;n{let v=g-m-(p-h);for(let y=0;yb+u-d)continue;let x=l[y]+u-d;p>=x?l[y+1]=h<=x?-2:-1:h>=u&&v&&(l[y]+=v,l[y+1]+=v)}d+=v}),u=n.maps[c].map(u,-1)}let a=!1;for(let c=0;c=r.content.size){a=!0;continue}let h=n.map(t[c+1]+s,-1),p=h-i,{index:m,offset:g}=r.content.findIndex(d),v=r.maybeChild(m);if(v&&g==d&&g+v.nodeSize==p){let y=l[c+2].mapInner(n,v,u+1,t[c]+s+1,o);y!=Nr?(l[c]=d,l[c+1]=p,l[c+2]=y):(l[c+1]=-2,a=!0)}else a=!0}if(a){let c=N$(l,t,e,n,i,s,o),u=Ep(c,r,0,o);e=u.local;for(let d=0;dn&&o.to{let c=JI(t,l,a+n);if(c){s=!0;let u=Ep(c,l,n+a+1,r);u!=Nr&&i.push(a,a+l.nodeSize,u)}});let o=qI(s?GI(t):t,-n).sort(Bl);for(let l=0;l0;)e++;t.splice(e,0,n)}function Ly(t){let e=[];return t.someProp("decorations",n=>{let r=n(t.state);r&&r!=Nr&&e.push(r)}),t.cursorWrapper&&e.push(Mn.create(t.state.doc,[t.cursorWrapper.deco])),Po.from(e)}const T$={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},A$=ii&&Zo<=11;class M${constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}}class I${constructor(e,n){this.view=e,this.handleDOMChange=n,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new M$,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(r=>{for(let i=0;ii.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():xr&&e.composing&&r.some(i=>i.type=="childList"&&i.target.nodeName=="TR")?(e.input.badSafariComposition=!0,this.flushSoon()):this.flush()}),A$&&(this.onCharData=r=>{this.queue.push({target:r.target,type:"characterData",oldValue:r.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,T$)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let n=0;nthis.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(fC(this.view)){if(this.suppressingSelectionUpdates)return eo(this.view);if(ii&&Zo<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&Ql(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let n=new Set,r;for(let s=e.focusNode;s;s=mc(s))n.add(s);for(let s=e.anchorNode;s;s=mc(s))if(n.has(s)){r=s;break}let i=r&&this.view.docView.nearestDesc(r);if(i&&i.ignoreMutation({type:"selection",target:r.nodeType==3?r.parentNode:r}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let n=this.pendingRecords();n.length&&(this.queue=[]);let r=e.domSelectionRange(),i=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(r)&&fC(e)&&!this.ignoreSelectionChange(r),s=-1,o=-1,l=!1,a=[];if(e.editable)for(let u=0;ud.nodeName=="BR");if(u.length==2){let[d,h]=u;d.parentNode&&d.parentNode.parentNode==h.parentNode?h.remove():d.remove()}else{let{focusNode:d}=this.currentSelection;for(let h of u){let p=h.parentNode;p&&p.nodeName=="LI"&&(!d||O$(e,d)!=p)&&h.remove()}}}else if((lr||xr)&&a.some(u=>u.nodeName=="BR")&&(e.input.lastKeyCode==8||e.input.lastKeyCode==46)){for(let u of a)if(u.nodeName=="BR"&&u.parentNode){let d=u.nextSibling;d&&d.nodeType==1&&d.contentEditable=="false"&&u.parentNode.removeChild(u)}}let c=null;s<0&&i&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)-1||i)&&(s>-1&&(e.docView.markDirty(s,o),R$(e)),e.input.badSafariComposition&&(e.input.badSafariComposition=!1,j$(e,a)),this.handleDOMChange(s,o,l,a),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(r)||eo(e),this.currentSelection.set(r))}registerMutation(e,n){if(n.indexOf(e.target)>-1)return null;let r=this.view.docView.nearestDesc(e.target);if(e.type=="attributes"&&(r==this.view.docView||e.attributeName=="contenteditable"||e.attributeName=="style"&&!e.oldValue&&!e.target.getAttribute("style"))||!r||r.ignoreMutation(e))return null;if(e.type=="childList"){for(let u=0;ui;v--){let y=r.childNodes[v-1],b=y.pmViewDesc;if(y.nodeName=="BR"&&!b){s=v;break}if(!b||b.size)break}let d=t.state.doc,h=t.someProp("domParser")||Du.fromSchema(t.state.schema),p=d.resolve(o),m=null,g=h.parse(r,{topNode:p.parent,topMatch:p.parent.contentMatchAt(p.index()),topOpen:!0,from:i,to:s,preserveWhitespace:p.parent.type.whitespace=="pre"?"full":!0,findPositions:c,ruleFromNode:L$,context:p});if(c&&c[0].pos!=null){let v=c[0].pos,y=c[1]&&c[1].pos;y==null&&(y=v),m={anchor:v+o,head:y+o}}return{doc:g,sel:m,from:o,to:l}}function L$(t){let e=t.pmViewDesc;if(e)return e.parseRule();if(t.nodeName=="BR"&&t.parentNode){if(xr&&/^(ul|ol)$/i.test(t.parentNode.nodeName)){let n=document.createElement("div");return n.appendChild(document.createElement("li")),{skip:n}}else if(t.parentNode.lastChild==t||xr&&/^(tr|table)$/i.test(t.parentNode.nodeName))return{ignore:!0}}else if(t.nodeName=="IMG"&&t.getAttribute("mark-placeholder"))return{ignore:!0};return null}const _$=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|img|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function z$(t,e,n,r,i){let s=t.input.compositionPendingChanges||(t.composing?t.input.compositionID:0);if(t.input.compositionPendingChanges=0,e<0){let N=t.input.lastSelectionTime>Date.now()-50?t.input.lastSelectionOrigin:null,z=qw(t,N);if(z&&!t.state.selection.eq(z)){if(lr&&Js&&t.input.lastKeyCode===13&&Date.now()-100L(t,Nl(13,"Enter"))))return;let ee=t.state.tr.setSelection(z);N=="pointer"?ee.setMeta("pointer",!0):N=="key"&&ee.scrollIntoView(),s&&ee.setMeta("composition",s),t.dispatch(ee)}return}let o=t.state.doc.resolve(e),l=o.sharedDepth(n);e=o.before(l+1),n=t.state.doc.resolve(n).after(l+1);let a=t.state.selection,c=P$(t,e,n),u=t.state.doc,d=u.slice(c.from,c.to),h,p;t.input.lastKeyCode===8&&Date.now()-100Date.now()-225||Js)&&i.some(N=>N.nodeType==1&&!_$.test(N.nodeName))&&(!m||m.endA>=m.endB)&&t.someProp("handleKeyDown",N=>N(t,Nl(13,"Enter")))){t.input.lastIOSEnter=0;return}if(!m)if(r&&a instanceof xt&&!a.empty&&a.$head.sameParent(a.$anchor)&&!t.composing&&!(c.sel&&c.sel.anchor!=c.sel.head))m={start:a.from,endA:a.to,endB:a.to};else{if(c.sel){let N=CC(t,t.state.doc,c.sel);if(N&&!N.eq(t.state.selection)){let z=t.state.tr.setSelection(N);s&&z.setMeta("composition",s),t.dispatch(z)}}return}t.state.selection.fromt.state.selection.from&&m.start<=t.state.selection.from+2&&t.state.selection.from>=c.from?m.start=t.state.selection.from:m.endA=t.state.selection.to-2&&t.state.selection.to<=c.to&&(m.endB+=t.state.selection.to-m.endA,m.endA=t.state.selection.to)),ii&&Zo<=11&&m.endB==m.start+1&&m.endA==m.start&&m.start>c.from&&c.doc.textBetween(m.start-c.from-1,m.start-c.from+1)=="  "&&(m.start--,m.endA--,m.endB--);let g=c.doc.resolveNoCache(m.start-c.from),v=c.doc.resolveNoCache(m.endB-c.from),y=u.resolve(m.start),b=g.sameParent(v)&&g.parent.inlineContent&&y.end()>=m.endA;if((gc&&t.input.lastIOSEnter>Date.now()-225&&(!b||i.some(N=>N.nodeName=="DIV"||N.nodeName=="P"))||!b&&g.posN(t,Nl(13,"Enter")))){t.input.lastIOSEnter=0;return}if(t.state.selection.anchor>m.start&&$$(u,m.start,m.endA,g,v)&&t.someProp("handleKeyDown",N=>N(t,Nl(8,"Backspace")))){Js&&lr&&t.domObserver.suppressSelectionUpdates();return}lr&&m.endB==m.start&&(t.input.lastChromeDelete=Date.now()),Js&&!b&&g.start()!=v.start()&&v.parentOffset==0&&g.depth==v.depth&&c.sel&&c.sel.anchor==c.sel.head&&c.sel.head==m.endA&&(m.endB-=2,v=c.doc.resolveNoCache(m.endB-c.from),setTimeout(()=>{t.someProp("handleKeyDown",function(N){return N(t,Nl(13,"Enter"))})},20));let x=m.start,C=m.endA,S=N=>{let z=N||t.state.tr.replace(x,C,c.doc.slice(m.start-c.from,m.endB-c.from));if(c.sel){let ee=CC(t,z.doc,c.sel);ee&&!(lr&&t.composing&&ee.empty&&(m.start!=m.endB||t.input.lastChromeDeleteeo(t),20));let N=S(t.state.tr.delete(x,C)),z=u.resolve(m.start).marksAcross(u.resolve(m.endA));z&&N.ensureMarks(z),t.dispatch(N)}else if(m.endA==m.endB&&(M=F$(g.parent.content.cut(g.parentOffset,v.parentOffset),y.parent.content.cut(y.parentOffset,m.endA-y.start())))){let N=S(t.state.tr);M.type=="add"?N.addMark(x,C,M.mark):N.removeMark(x,C,M.mark),t.dispatch(N)}else if(g.parent.child(g.index()).isText&&g.index()==v.index()-(v.textOffset?0:1)){let N=g.parent.textBetween(g.parentOffset,v.parentOffset),z=()=>S(t.state.tr.insertText(N,x,C));t.someProp("handleTextInput",ee=>ee(t,x,C,N,z))||t.dispatch(z())}else t.dispatch(S());else t.dispatch(S())}function CC(t,e,n){return Math.max(n.anchor,n.head)>e.content.size?null:Jw(t,e.resolve(n.anchor),e.resolve(n.head))}function F$(t,e){let n=t.firstChild.marks,r=e.firstChild.marks,i=n,s=r,o,l,a;for(let u=0;uu.mark(l.addToSet(u.marks));else if(i.length==0&&s.length==1)l=s[0],o="remove",a=u=>u.mark(l.removeFromSet(u.marks));else return null;let c=[];for(let u=0;un||_y(o,!0,!1)0&&(e||t.indexAfter(r)==t.node(r).childCount);)r--,i++,e=!1;if(n){let s=t.node(r).maybeChild(t.indexAfter(r));for(;s&&!s.isLeaf;)s=s.firstChild,i++}return i}function B$(t,e,n,r,i){let s=t.findDiffStart(e,n);if(s==null)return null;let{a:o,b:l}=t.findDiffEnd(e,n+t.size,n+e.size);if(i=="end"){let a=Math.max(0,s-Math.min(o,l));r-=o+a-s}if(o=o?s-r:0;s-=a,s&&s=l?s-r:0;s-=a,s&&s=56320&&e<=57343&&n>=55296&&n<=56319}class XI{constructor(e,n){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new r$,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=n,this.state=n.state,this.directPlugins=n.plugins||[],this.directPlugins.forEach(IC),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement("div"),e&&(e.appendChild?e.appendChild(this.dom):typeof e=="function"?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=AC(this),TC(this),this.nodeViews=MC(this),this.docView=oC(this.state.doc,NC(this),Ly(this),this.dom,this),this.domObserver=new I$(this,(r,i,s,o)=>z$(this,r,i,s,o)),this.domObserver.start(),i$(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let n in e)this._props[n]=e[n];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&L0(this);let n=this._props;this._props=e,e.plugins&&(e.plugins.forEach(IC),this.directPlugins=e.plugins),this.updateStateInner(e.state,n)}setProps(e){let n={};for(let r in this._props)n[r]=this._props[r];n.state=this.state;for(let r in e)n[r]=e[r];this.update(n)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,n){var r;let i=this.state,s=!1,o=!1;e.storedMarks&&this.composing&&(VI(this),o=!0),this.state=e;let l=i.plugins!=e.plugins||this._props.plugins!=n.plugins;if(l||this._props.plugins!=n.plugins||this._props.nodeViews!=n.nodeViews){let p=MC(this);H$(p,this.nodeViews)&&(this.nodeViews=p,s=!0)}(l||n.handleDOMEvents!=this._props.handleDOMEvents)&&L0(this),this.editable=AC(this),TC(this);let a=Ly(this),c=NC(this),u=i.plugins!=e.plugins&&!i.doc.eq(e.doc)?"reset":e.scrollToSelection>i.scrollToSelection?"to selection":"preserve",d=s||!this.docView.matchesNode(e.doc,c,a);(d||!e.selection.eq(i.selection))&&(o=!0);let h=u=="preserve"&&o&&this.dom.style.overflowAnchor==null&&vF(this);if(o){this.domObserver.stop();let p=d&&(ii||lr)&&!this.composing&&!i.selection.empty&&!e.selection.empty&&U$(i.selection,e.selection);if(d){let m=lr?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=v$(this)),(s||!this.docView.update(e.doc,c,a,this))&&(this.docView.updateOuterDeco(c),this.docView.destroy(),this.docView=oC(e.doc,c,a,this.dom,this)),m&&(!this.trackWrites||!this.dom.contains(this.trackWrites))&&(p=!0)}p||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&UF(this))?eo(this,p):(DI(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(i),!((r=this.dragging)===null||r===void 0)&&r.node&&!i.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,i),u=="reset"?this.dom.scrollTop=0:u=="to selection"?this.scrollToSelection():h&&bF(h)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!(!e||!this.dom.contains(e.nodeType==1?e:e.parentNode))){if(!this.someProp("handleScrollToSelection",n=>n(this)))if(this.state.selection instanceof dt){let n=this.docView.domAfterPos(this.state.selection.from);n.nodeType==1&&eC(this,n.getBoundingClientRect(),e)}else eC(this,this.coordsAtPos(this.state.selection.head,1),e)}}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let n=0;n0&&this.state.doc.nodeAt(s))==r.node&&(i=s)}this.dragging=new KI(e.slice,e.move,i<0?void 0:dt.create(this.state.doc,i))}someProp(e,n){let r=this._props&&this._props[e],i;if(r!=null&&(i=n?n(r):r))return i;for(let o=0;on.ownerDocument.getSelection()),this._root=n}return e||document}updateRoot(){this._root=null}posAtCoords(e){return EF(this,e)}coordsAtPos(e,n=1){return CI(this,e,n)}domAtPos(e,n=0){return this.docView.domFromPos(e,n)}nodeDOM(e){let n=this.docView.descAt(e);return n?n.nodeDOM:null}posAtDOM(e,n,r=-1){let i=this.docView.posFromDOM(e,n,r);if(i==null)throw new RangeError("DOM position not inside the editor");return i}endOfTextblock(e,n){return IF(this,n||this.state,e)}pasteHTML(e,n){return vd(this,"",e,!1,n||new ClipboardEvent("paste"))}pasteText(e,n){return vd(this,e,null,!0,n||new ClipboardEvent("paste"))}serializeForClipboard(e){return Gw(this,e)}destroy(){this.docView&&(s$(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],Ly(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,aF())}get isDestroyed(){return this.docView==null}dispatchEvent(e){return l$(this,e)}domSelectionRange(){let e=this.domSelection();return e?xr&&this.root.nodeType===11&&hF(this.dom.ownerDocument)==this.dom&&D$(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}}XI.prototype.dispatch=function(t){let e=this._props.dispatchTransaction;e?e.call(this,t):this.updateState(this.state.apply(t))};function NC(t){let e=Object.create(null);return e.class="ProseMirror",e.contenteditable=String(t.editable),t.someProp("attributes",n=>{if(typeof n=="function"&&(n=n(t.state)),n)for(let r in n)r=="class"?e.class+=" "+n[r]:r=="style"?e.style=(e.style?e.style+";":"")+n[r]:!e[r]&&r!="contenteditable"&&r!="nodeName"&&(e[r]=String(n[r]))}),e.translate||(e.translate="no"),[Fr.node(0,t.state.doc.content.size,e)]}function TC(t){if(t.markCursor){let e=document.createElement("img");e.className="ProseMirror-separator",e.setAttribute("mark-placeholder","true"),e.setAttribute("alt",""),t.cursorWrapper={dom:e,deco:Fr.widget(t.state.selection.from,e,{raw:!0,marks:t.markCursor})}}else t.cursorWrapper=null}function AC(t){return!t.someProp("editable",e=>e(t.state)===!1)}function U$(t,e){let n=Math.min(t.$anchor.sharedDepth(t.head),e.$anchor.sharedDepth(e.head));return t.$anchor.start(n)!=e.$anchor.start(n)}function MC(t){let e=Object.create(null);function n(r){for(let i in r)Object.prototype.hasOwnProperty.call(e,i)||(e[i]=r[i])}return t.someProp("nodeViews",n),t.someProp("markViews",n),e}function H$(t,e){let n=0,r=0;for(let i in t){if(t[i]!=e[i])return!0;n++}for(let i in e)r++;return n!=r}function IC(t){if(t.spec.state||t.spec.filterTransaction||t.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}var sl={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Np={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},V$=typeof navigator<"u"&&/Mac/.test(navigator.platform),W$=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var vr=0;vr<10;vr++)sl[48+vr]=sl[96+vr]=String(vr);for(var vr=1;vr<=24;vr++)sl[vr+111]="F"+vr;for(var vr=65;vr<=90;vr++)sl[vr]=String.fromCharCode(vr+32),Np[vr]=String.fromCharCode(vr);for(var zy in sl)Np.hasOwnProperty(zy)||(Np[zy]=sl[zy]);function K$(t){var e=V$&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||W$&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",n=!e&&t.key||(t.shiftKey?Np:sl)[t.keyCode]||t.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}const Y$=typeof navigator<"u"&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),q$=typeof navigator<"u"&&/Win/.test(navigator.platform);function J$(t){let e=t.split(/-(?!$)/),n=e[e.length-1];n=="Space"&&(n=" ");let r,i,s,o;for(let l=0;l{for(var n in e)Q$(t,n,{get:e[n],enumerable:!0})};function rg(t){const{state:e,transaction:n}=t;let{selection:r}=n,{doc:i}=n,{storedMarks:s}=n;return{...e,apply:e.apply.bind(e),applyTransaction:e.applyTransaction.bind(e),plugins:e.plugins,schema:e.schema,reconfigure:e.reconfigure.bind(e),toJSON:e.toJSON.bind(e),get storedMarks(){return s},get selection(){return r},get doc(){return i},get tr(){return r=n.selection,i=n.doc,s=n.storedMarks,n}}}var ig=class{constructor(t){this.editor=t.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=t.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){const{rawCommands:t,editor:e,state:n}=this,{view:r}=e,{tr:i}=n,s=this.buildProps(i);return Object.fromEntries(Object.entries(t).map(([o,l])=>[o,(...c)=>{const u=l(...c)(s);return!i.getMeta("preventDispatch")&&!this.hasCustomState&&r.dispatch(i),u}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(t,e=!0){const{rawCommands:n,editor:r,state:i}=this,{view:s}=r,o=[],l=!!t,a=t||i.tr,c=()=>(!l&&e&&!a.getMeta("preventDispatch")&&!this.hasCustomState&&s.dispatch(a),o.every(d=>d===!0)),u={...Object.fromEntries(Object.entries(n).map(([d,h])=>[d,(...m)=>{const g=this.buildProps(a,e),v=h(...m)(g);return o.push(v),u}])),run:c};return u}createCan(t){const{rawCommands:e,state:n}=this,r=!1,i=t||n.tr,s=this.buildProps(i,r);return{...Object.fromEntries(Object.entries(e).map(([l,a])=>[l,(...c)=>a(...c)({...s,dispatch:void 0})])),chain:()=>this.createChain(i,r)}}buildProps(t,e=!0){const{rawCommands:n,editor:r,state:i}=this,{view:s}=r,o={tr:t,editor:r,view:s,state:rg({state:i,transaction:t}),dispatch:e?()=>{}:void 0,chain:()=>this.createChain(t,e),can:()=>this.createCan(t),get commands(){return Object.fromEntries(Object.entries(n).map(([l,a])=>[l,(...c)=>a(...c)(o)]))}};return o}},QI={};rx(QI,{blur:()=>Z$,clearContent:()=>eB,clearNodes:()=>tB,command:()=>nB,createParagraphNear:()=>rB,cut:()=>iB,deleteCurrentNode:()=>sB,deleteNode:()=>oB,deleteRange:()=>lB,deleteSelection:()=>aB,enter:()=>cB,exitCode:()=>uB,extendMarkRange:()=>dB,first:()=>fB,focus:()=>pB,forEach:()=>mB,insertContent:()=>gB,insertContentAt:()=>bB,joinBackward:()=>kB,joinDown:()=>xB,joinForward:()=>SB,joinItemBackward:()=>CB,joinItemForward:()=>EB,joinTextblockBackward:()=>NB,joinTextblockForward:()=>TB,joinUp:()=>wB,keyboardShortcut:()=>MB,lift:()=>IB,liftEmptyBlock:()=>RB,liftListItem:()=>DB,newlineInCode:()=>OB,resetAttributes:()=>jB,scrollIntoView:()=>PB,selectAll:()=>LB,selectNodeBackward:()=>_B,selectNodeForward:()=>zB,selectParentNode:()=>FB,selectTextblockEnd:()=>$B,selectTextblockStart:()=>BB,setContent:()=>UB,setMark:()=>o5,setMeta:()=>l5,setNode:()=>a5,setNodeSelection:()=>c5,setTextDirection:()=>u5,setTextSelection:()=>d5,sinkListItem:()=>f5,splitBlock:()=>h5,splitListItem:()=>p5,toggleList:()=>m5,toggleMark:()=>g5,toggleNode:()=>y5,toggleWrap:()=>v5,undoInputRule:()=>b5,unsetAllMarks:()=>w5,unsetMark:()=>x5,unsetTextDirection:()=>k5,updateAttributes:()=>S5,wrapIn:()=>C5,wrapInList:()=>E5});var Z$=()=>({editor:t,view:e})=>(requestAnimationFrame(()=>{var n;t.isDestroyed||(e.dom.blur(),(n=window==null?void 0:window.getSelection())==null||n.removeAllRanges())}),!0),eB=(t=!0)=>({commands:e})=>e.setContent("",{emitUpdate:t}),tB=()=>({state:t,tr:e,dispatch:n})=>{const{selection:r}=e,{ranges:i}=r;return n&&i.forEach(({$from:s,$to:o})=>{t.doc.nodesBetween(s.pos,o.pos,(l,a)=>{if(l.type.isText)return;const{doc:c,mapping:u}=e,d=c.resolve(u.map(a)),h=c.resolve(u.map(a+l.nodeSize)),p=d.blockRange(h);if(!p)return;const m=Pc(p);if(l.type.isTextblock){const{defaultType:g}=d.parent.contentMatchAt(d.index());e.setNodeMarkup(p.start,g)}(m||m===0)&&e.lift(p,m)})}),!0},nB=t=>e=>t(e),rB=()=>({state:t,dispatch:e})=>hI(t,e),iB=(t,e)=>({editor:n,tr:r})=>{const{state:i}=n,s=i.doc.slice(t.from,t.to);r.deleteRange(t.from,t.to);const o=r.mapping.map(e);return r.insert(o,s.content),r.setSelection(new xt(r.doc.resolve(Math.max(o-1,0)))),!0},sB=()=>({tr:t,dispatch:e})=>{const{selection:n}=t,r=n.$anchor.node();if(r.content.size>0)return!1;const i=t.selection.$anchor;for(let s=i.depth;s>0;s-=1)if(i.node(s).type===r.type){if(e){const l=i.before(s),a=i.after(s);t.delete(l,a).scrollIntoView()}return!0}return!1};function Kn(t,e){if(typeof t=="string"){if(!e.nodes[t])throw Error(`There is no node type named '${t}'. Maybe you forgot to add the extension?`);return e.nodes[t]}return t}var oB=t=>({tr:e,state:n,dispatch:r})=>{const i=Kn(t,n.schema),s=e.selection.$anchor;for(let o=s.depth;o>0;o-=1)if(s.node(o).type===i){if(r){const a=s.before(o),c=s.after(o);e.delete(a,c).scrollIntoView()}return!0}return!1},lB=t=>({tr:e,dispatch:n})=>{const{from:r,to:i}=t;return n&&e.delete(r,i),!0},aB=()=>({state:t,dispatch:e})=>Uw(t,e),cB=()=>({commands:t})=>t.keyboardShortcut("Enter"),uB=()=>({state:t,dispatch:e})=>Yz(t,e);function ix(t){return Object.prototype.toString.call(t)==="[object RegExp]"}function Tp(t,e,n={strict:!0}){const r=Object.keys(e);return r.length?r.every(i=>n.strict?e[i]===t[i]:ix(e[i])?e[i].test(t[i]):e[i]===t[i]):!0}function ZI(t,e,n={}){return t.find(r=>r.type===e&&Tp(Object.fromEntries(Object.keys(n).map(i=>[i,r.attrs[i]])),n))}function RC(t,e,n={}){return!!ZI(t,e,n)}function sx(t,e,n){var r;if(!t||!e)return;let i=t.parent.childAfter(t.parentOffset);if((!i.node||!i.node.marks.some(u=>u.type===e))&&(i=t.parent.childBefore(t.parentOffset)),!i.node||!i.node.marks.some(u=>u.type===e)||(n=n||((r=i.node.marks[0])==null?void 0:r.attrs),!ZI([...i.node.marks],e,n)))return;let o=i.index,l=t.start()+i.offset,a=o+1,c=l+i.node.nodeSize;for(;o>0&&RC([...t.parent.child(o-1).marks],e,n);)o-=1,l-=t.parent.child(o).nodeSize;for(;a({tr:n,state:r,dispatch:i})=>{const s=mo(t,r.schema),{doc:o,selection:l}=n,{$from:a,from:c,to:u}=l;if(i){const d=sx(a,s,e);if(d&&d.from<=c&&d.to>=u){const h=xt.create(o,d.from,d.to);n.setSelection(h)}}return!0},fB=t=>e=>{const n=typeof t=="function"?t(e):t;for(let r=0;r({editor:n,view:r,tr:i,dispatch:s})=>{e={scrollIntoView:!0,...e};const o=()=>{(Ap()||DC())&&r.dom.focus(),hB()&&!Ap()&&!DC()&&r.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),e!=null&&e.scrollIntoView&&n.commands.scrollIntoView())})};try{if(r.hasFocus()&&t===null||t===!1)return!0}catch{return!1}if(s&&t===null&&!ox(n.state.selection))return o(),!0;const l=e2(i.doc,t)||n.state.selection,a=n.state.selection.eq(l);return s&&(a||i.setSelection(l),a&&i.storedMarks&&i.setStoredMarks(i.storedMarks),o()),!0},mB=(t,e)=>n=>t.every((r,i)=>e(r,{...n,index:i})),gB=(t,e)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},t,e),t2=t=>{const e=t.childNodes;for(let n=e.length-1;n>=0;n-=1){const r=e[n];r.nodeType===3&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?t.removeChild(r):r.nodeType===1&&t2(r)}return t};function Vf(t){if(typeof window>"u")throw new Error("[tiptap error]: there is no window object available, so this function cannot be used");const e=`${t}`,n=new window.DOMParser().parseFromString(e,"text/html").body;return t2(n)}function wd(t,e,n){if(t instanceof Qo||t instanceof we)return t;n={slice:!0,parseOptions:{},...n};const r=typeof t=="object"&&t!==null,i=typeof t=="string";if(r)try{if(Array.isArray(t)&&t.length>0)return we.fromArray(t.map(l=>e.nodeFromJSON(l)));const o=e.nodeFromJSON(t);return n.errorOnInvalidContent&&o.check(),o}catch(s){if(n.errorOnInvalidContent)throw new Error("[tiptap error]: Invalid JSON content",{cause:s});return console.warn("[tiptap warn]: Invalid content.","Passed value:",t,"Error:",s),wd("",e,n)}if(i){if(n.errorOnInvalidContent){let o=!1,l="";const a=new FM({topNode:e.spec.topNode,marks:e.spec.marks,nodes:e.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:c=>(o=!0,l=typeof c=="string"?c:c.outerHTML,null)}]}})});if(n.slice?Du.fromSchema(a).parseSlice(Vf(t),n.parseOptions):Du.fromSchema(a).parse(Vf(t),n.parseOptions),n.errorOnInvalidContent&&o)throw new Error("[tiptap error]: Invalid HTML content",{cause:new Error(`Invalid element found: ${l}`)})}const s=Du.fromSchema(e);return n.slice?s.parseSlice(Vf(t),n.parseOptions).content:s.parse(Vf(t),n.parseOptions)}return wd("",e,n)}function yB(t,e,n){const r=t.steps.length-1;if(r{o===0&&(o=u)}),t.setSelection(Nt.near(t.doc.resolve(o),n))}var vB=t=>!("type"in t),bB=(t,e,n)=>({tr:r,dispatch:i,editor:s})=>{var o;if(i){n={parseOptions:s.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let l;const a=v=>{s.emit("contentError",{editor:s,error:v,disableCollaboration:()=>{"collaboration"in s.storage&&typeof s.storage.collaboration=="object"&&s.storage.collaboration&&(s.storage.collaboration.isDisabled=!0)}})},c={preserveWhitespace:"full",...n.parseOptions};if(!n.errorOnInvalidContent&&!s.options.enableContentCheck&&s.options.emitContentError)try{wd(e,s.schema,{parseOptions:c,errorOnInvalidContent:!0})}catch(v){a(v)}try{l=wd(e,s.schema,{parseOptions:c,errorOnInvalidContent:(o=n.errorOnInvalidContent)!=null?o:s.options.enableContentCheck})}catch(v){return a(v),!1}let{from:u,to:d}=typeof t=="number"?{from:t,to:t}:{from:t.from,to:t.to},h=!0,p=!0;if((vB(l)?l:[l]).forEach(v=>{v.check(),h=h?v.isText&&v.marks.length===0:!1,p=p?v.isBlock:!1}),u===d&&p){const{parent:v}=r.doc.resolve(u);v.isTextblock&&!v.type.spec.code&&!v.childCount&&(u-=1,d+=1)}let g;if(h){if(Array.isArray(e))g=e.map(v=>v.text||"").join("");else if(e instanceof we){let v="";e.forEach(y=>{y.text&&(v+=y.text)}),g=v}else typeof e=="object"&&e&&e.text?g=e.text:g=e;r.insertText(g,u,d)}else{g=l;const v=r.doc.resolve(u),y=v.node(),b=v.parentOffset===0,x=y.isText||y.isTextblock,C=y.content.size>0;b&&x&&C&&(u=Math.max(0,u-1)),r.replaceWith(u,d,g)}n.updateSelection&&yB(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta("applyInputRules",{from:u,text:g}),n.applyPasteRules&&r.setMeta("applyPasteRules",{from:u,text:g})}return!0},wB=()=>({state:t,dispatch:e})=>Vz(t,e),xB=()=>({state:t,dispatch:e})=>Wz(t,e),kB=()=>({state:t,dispatch:e})=>oI(t,e),SB=()=>({state:t,dispatch:e})=>uI(t,e),CB=()=>({state:t,dispatch:e,tr:n})=>{try{const r=Xm(t.doc,t.selection.$from.pos,-1);return r==null?!1:(n.join(r,2),e&&e(n),!0)}catch{return!1}},EB=()=>({state:t,dispatch:e,tr:n})=>{try{const r=Xm(t.doc,t.selection.$from.pos,1);return r==null?!1:(n.join(r,2),e&&e(n),!0)}catch{return!1}},NB=()=>({state:t,dispatch:e})=>Uz(t,e),TB=()=>({state:t,dispatch:e})=>Hz(t,e);function n2(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function AB(t){const e=t.split(/-(?!$)/);let n=e[e.length-1];n==="Space"&&(n=" ");let r,i,s,o;for(let l=0;l({editor:e,view:n,tr:r,dispatch:i})=>{const s=AB(t).split(/-(?!$)/),o=s.find(c=>!["Alt","Ctrl","Meta","Shift"].includes(c)),l=new KeyboardEvent("keydown",{key:o==="Space"?" ":o,altKey:s.includes("Alt"),ctrlKey:s.includes("Ctrl"),metaKey:s.includes("Meta"),shiftKey:s.includes("Shift"),bubbles:!0,cancelable:!0}),a=e.captureTransaction(()=>{n.someProp("handleKeyDown",c=>c(n,l))});return a==null||a.steps.forEach(c=>{const u=c.map(r.mapping);u&&i&&r.maybeStep(u)}),!0};function ol(t,e,n={}){const{from:r,to:i,empty:s}=t.selection,o=e?Kn(e,t.schema):null,l=[];t.doc.nodesBetween(r,i,(d,h)=>{if(d.isText)return;const p=Math.max(r,h),m=Math.min(i,h+d.nodeSize);l.push({node:d,from:p,to:m})});const a=i-r,c=l.filter(d=>o?o.name===d.node.type.name:!0).filter(d=>Tp(d.node.attrs,n,{strict:!1}));return s?!!c.length:c.reduce((d,h)=>d+h.to-h.from,0)>=a}var IB=(t,e={})=>({state:n,dispatch:r})=>{const i=Kn(t,n.schema);return ol(n,i,e)?Kz(n,r):!1},RB=()=>({state:t,dispatch:e})=>pI(t,e),DB=t=>({state:e,dispatch:n})=>{const r=Kn(t,e.schema);return iF(r)(e,n)},OB=()=>({state:t,dispatch:e})=>fI(t,e);function sg(t,e){return e.nodes[t]?"node":e.marks[t]?"mark":null}function OC(t,e){const n=typeof e=="string"?[e]:e;return Object.keys(t).reduce((r,i)=>(n.includes(i)||(r[i]=t[i]),r),{})}var jB=(t,e)=>({tr:n,state:r,dispatch:i})=>{let s=null,o=null;const l=sg(typeof t=="string"?t:t.name,r.schema);if(!l)return!1;l==="node"&&(s=Kn(t,r.schema)),l==="mark"&&(o=mo(t,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{r.doc.nodesBetween(c.$from.pos,c.$to.pos,(u,d)=>{s&&s===u.type&&(a=!0,i&&n.setNodeMarkup(d,void 0,OC(u.attrs,e))),o&&u.marks.length&&u.marks.forEach(h=>{o===h.type&&(a=!0,i&&n.addMark(d,d+u.nodeSize,o.create(OC(h.attrs,e))))})})}),a},PB=()=>({tr:t,dispatch:e})=>(e&&t.scrollIntoView(),!0),LB=()=>({tr:t,dispatch:e})=>{if(e){const n=new ri(t.doc);t.setSelection(n)}return!0},_B=()=>({state:t,dispatch:e})=>aI(t,e),zB=()=>({state:t,dispatch:e})=>dI(t,e),FB=()=>({state:t,dispatch:e})=>Gz(t,e),$B=()=>({state:t,dispatch:e})=>Zz(t,e),BB=()=>({state:t,dispatch:e})=>Qz(t,e);function _0(t,e,n={},r={}){return wd(t,e,{slice:!1,parseOptions:n,errorOnInvalidContent:r.errorOnInvalidContent})}var UB=(t,{errorOnInvalidContent:e,emitUpdate:n=!0,parseOptions:r={}}={})=>({editor:i,tr:s,dispatch:o,commands:l})=>{const{doc:a}=s;if(r.preserveWhitespace!=="full"){const c=_0(t,i.schema,r,{errorOnInvalidContent:e??i.options.enableContentCheck});return o&&s.replaceWith(0,a.content.size,c).setMeta("preventUpdate",!n),!0}return o&&s.setMeta("preventUpdate",!n),l.insertContentAt({from:0,to:a.content.size},t,{parseOptions:r,errorOnInvalidContent:e??i.options.enableContentCheck})};function r2(t,e){const n=mo(e,t.schema),{from:r,to:i,empty:s}=t.selection,o=[];s?(t.storedMarks&&o.push(...t.storedMarks),o.push(...t.selection.$head.marks())):t.doc.nodesBetween(r,i,a=>{o.push(...a.marks)});const l=o.find(a=>a.type.name===n.name);return l?{...l.attrs}:{}}function i2(t,e){const n=new tI(t);return e.forEach(r=>{r.steps.forEach(i=>{n.step(i)})}),n}function HB(t){for(let e=0;e{n(i)&&r.push({node:i,pos:s})}),r}function WB(t,e){for(let n=t.depth;n>0;n-=1){const r=t.node(n);if(e(r))return{pos:n>0?t.before(n):0,start:t.start(n),depth:n,node:r}}}function og(t){return e=>WB(e.$from,t)}function ut(t,e,n){return t.config[e]===void 0&&t.parent?ut(t.parent,e,n):typeof t.config[e]=="function"?t.config[e].bind({...n,parent:t.parent?ut(t.parent,e,n):null}):t.config[e]}function lx(t){return t.map(e=>{const n={name:e.name,options:e.options,storage:e.storage},r=ut(e,"addExtensions",n);return r?[e,...lx(r())]:e}).flat(10)}function ax(t,e){const n=ua.fromSchema(e).serializeFragment(t),i=document.implementation.createHTMLDocument().createElement("div");return i.appendChild(n),i.innerHTML}function s2(t){return typeof t=="function"}function an(t,e=void 0,...n){return s2(t)?e?t.bind(e)(...n):t(...n):t}function KB(t={}){return Object.keys(t).length===0&&t.constructor===Object}function yc(t){const e=t.filter(i=>i.type==="extension"),n=t.filter(i=>i.type==="node"),r=t.filter(i=>i.type==="mark");return{baseExtensions:e,nodeExtensions:n,markExtensions:r}}function o2(t){const e=[],{nodeExtensions:n,markExtensions:r}=yc(t),i=[...n,...r],s={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1};return t.forEach(o=>{const l={name:o.name,options:o.options,storage:o.storage,extensions:i},a=ut(o,"addGlobalAttributes",l);if(!a)return;a().forEach(u=>{u.types.forEach(d=>{Object.entries(u.attributes).forEach(([h,p])=>{e.push({type:d,name:h,attribute:{...s,...p}})})})})}),i.forEach(o=>{const l={name:o.name,options:o.options,storage:o.storage},a=ut(o,"addAttributes",l);if(!a)return;const c=a();Object.entries(c).forEach(([u,d])=>{const h={...s,...d};typeof(h==null?void 0:h.default)=="function"&&(h.default=h.default()),h!=null&&h.isRequired&&(h==null?void 0:h.default)===void 0&&delete h.default,e.push({type:o.name,name:u,attribute:h})})}),e}function Yn(...t){return t.filter(e=>!!e).reduce((e,n)=>{const r={...e};return Object.entries(n).forEach(([i,s])=>{if(!r[i]){r[i]=s;return}if(i==="class"){const l=s?String(s).split(" "):[],a=r[i]?r[i].split(" "):[],c=l.filter(u=>!a.includes(u));r[i]=[...a,...c].join(" ")}else if(i==="style"){const l=s?s.split(";").map(u=>u.trim()).filter(Boolean):[],a=r[i]?r[i].split(";").map(u=>u.trim()).filter(Boolean):[],c=new Map;a.forEach(u=>{const[d,h]=u.split(":").map(p=>p.trim());c.set(d,h)}),l.forEach(u=>{const[d,h]=u.split(":").map(p=>p.trim());c.set(d,h)}),r[i]=Array.from(c.entries()).map(([u,d])=>`${u}: ${d}`).join("; ")}else r[i]=s}),r},{})}function xd(t,e){return e.filter(n=>n.type===t.type.name).filter(n=>n.attribute.rendered).map(n=>n.attribute.renderHTML?n.attribute.renderHTML(t.attrs)||{}:{[n.name]:t.attrs[n.name]}).reduce((n,r)=>Yn(n,r),{})}function YB(t){return typeof t!="string"?t:t.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(t):t==="true"?!0:t==="false"?!1:t}function jC(t,e){return"style"in t?t:{...t,getAttrs:n=>{const r=t.getAttrs?t.getAttrs(n):t.attrs;if(r===!1)return!1;const i=e.reduce((s,o)=>{const l=o.attribute.parseHTML?o.attribute.parseHTML(n):YB(n.getAttribute(o.name));return l==null?s:{...s,[o.name]:l}},{});return{...r,...i}}}}function PC(t){return Object.fromEntries(Object.entries(t).filter(([e,n])=>e==="attrs"&&KB(n)?!1:n!=null))}function LC(t){var e,n;const r={};return!((e=t==null?void 0:t.attribute)!=null&&e.isRequired)&&"default"in((t==null?void 0:t.attribute)||{})&&(r.default=t.attribute.default),((n=t==null?void 0:t.attribute)==null?void 0:n.validate)!==void 0&&(r.validate=t.attribute.validate),[t.name,r]}function qB(t,e){var n;const r=o2(t),{nodeExtensions:i,markExtensions:s}=yc(t),o=(n=i.find(c=>ut(c,"topNode")))==null?void 0:n.name,l=Object.fromEntries(i.map(c=>{const u=r.filter(y=>y.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:e},h=t.reduce((y,b)=>{const x=ut(b,"extendNodeSchema",d);return{...y,...x?x(c):{}}},{}),p=PC({...h,content:an(ut(c,"content",d)),marks:an(ut(c,"marks",d)),group:an(ut(c,"group",d)),inline:an(ut(c,"inline",d)),atom:an(ut(c,"atom",d)),selectable:an(ut(c,"selectable",d)),draggable:an(ut(c,"draggable",d)),code:an(ut(c,"code",d)),whitespace:an(ut(c,"whitespace",d)),linebreakReplacement:an(ut(c,"linebreakReplacement",d)),defining:an(ut(c,"defining",d)),isolating:an(ut(c,"isolating",d)),attrs:Object.fromEntries(u.map(LC))}),m=an(ut(c,"parseHTML",d));m&&(p.parseDOM=m.map(y=>jC(y,u)));const g=ut(c,"renderHTML",d);g&&(p.toDOM=y=>g({node:y,HTMLAttributes:xd(y,u)}));const v=ut(c,"renderText",d);return v&&(p.toText=v),[c.name,p]})),a=Object.fromEntries(s.map(c=>{const u=r.filter(v=>v.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:e},h=t.reduce((v,y)=>{const b=ut(y,"extendMarkSchema",d);return{...v,...b?b(c):{}}},{}),p=PC({...h,inclusive:an(ut(c,"inclusive",d)),excludes:an(ut(c,"excludes",d)),group:an(ut(c,"group",d)),spanning:an(ut(c,"spanning",d)),code:an(ut(c,"code",d)),attrs:Object.fromEntries(u.map(LC))}),m=an(ut(c,"parseHTML",d));m&&(p.parseDOM=m.map(v=>jC(v,u)));const g=ut(c,"renderHTML",d);return g&&(p.toDOM=v=>g({mark:v,HTMLAttributes:xd(v,u)})),[c.name,p]}));return new FM({topNode:o,nodes:l,marks:a})}function JB(t){const e=t.filter((n,r)=>t.indexOf(n)!==r);return Array.from(new Set(e))}function Mp(t){return t.sort((n,r)=>{const i=ut(n,"priority")||100,s=ut(r,"priority")||100;return i>s?-1:ir.name));return n.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${n.map(r=>`'${r}'`).join(", ")}]. This can lead to issues.`),e}function a2(t,e,n){const{from:r,to:i}=e,{blockSeparator:s=` + +`,textSerializers:o={}}=n||{};let l="";return t.nodesBetween(r,i,(a,c,u,d)=>{var h;a.isBlock&&c>r&&(l+=s);const p=o==null?void 0:o[a.type.name];if(p)return u&&(l+=p({node:a,pos:c,parent:u,index:d,range:e})),!1;a.isText&&(l+=(h=a==null?void 0:a.text)==null?void 0:h.slice(Math.max(r,c)-c,i-c))}),l}function c2(t,e){const n={from:0,to:t.content.size};return a2(t,n,e)}function cx(t){return Object.fromEntries(Object.entries(t.nodes).filter(([,e])=>e.spec.toText).map(([e,n])=>[e,n.spec.toText]))}function GB(t,e){const n=Kn(e,t.schema),{from:r,to:i}=t.selection,s=[];t.doc.nodesBetween(r,i,l=>{s.push(l)});const o=s.reverse().find(l=>l.type.name===n.name);return o?{...o.attrs}:{}}function u2(t,e){const n=sg(typeof e=="string"?e:e.name,t.schema);return n==="node"?GB(t,e):n==="mark"?r2(t,e):{}}function XB(t,e=JSON.stringify){const n={};return t.filter(r=>{const i=e(r);return Object.prototype.hasOwnProperty.call(n,i)?!1:n[i]=!0})}function QB(t){const e=XB(t);return e.length===1?e:e.filter((n,r)=>!e.filter((s,o)=>o!==r).some(s=>n.oldRange.from>=s.oldRange.from&&n.oldRange.to<=s.oldRange.to&&n.newRange.from>=s.newRange.from&&n.newRange.to<=s.newRange.to))}function d2(t){const{mapping:e,steps:n}=t,r=[];return e.maps.forEach((i,s)=>{const o=[];if(i.ranges.length)i.forEach((l,a)=>{o.push({from:l,to:a})});else{const{from:l,to:a}=n[s];if(l===void 0||a===void 0)return;o.push({from:l,to:a})}o.forEach(({from:l,to:a})=>{const c=e.slice(s).map(l,-1),u=e.slice(s).map(a),d=e.invert().map(c,-1),h=e.invert().map(u);r.push({oldRange:{from:d,to:h},newRange:{from:c,to:u}})})}),QB(r)}function ux(t,e,n){const r=[];return t===e?n.resolve(t).marks().forEach(i=>{const s=n.resolve(t),o=sx(s,i.type);o&&r.push({mark:i,...o})}):n.nodesBetween(t,e,(i,s)=>{!i||(i==null?void 0:i.nodeSize)===void 0||r.push(...i.marks.map(o=>({from:s,to:s+i.nodeSize,mark:o})))}),r}var ZB=(t,e,n,r=20)=>{const i=t.doc.resolve(n);let s=r,o=null;for(;s>0&&o===null;){const l=i.node(s);(l==null?void 0:l.type.name)===e?o=l:s-=1}return[o,s]};function Wf(t,e){return e.nodes[t]||e.marks[t]||null}function Eh(t,e,n){return Object.fromEntries(Object.entries(n).filter(([r])=>{const i=t.find(s=>s.type===e&&s.name===r);return i?i.attribute.keepOnSplit:!1}))}var e5=(t,e=500)=>{let n="";const r=t.parentOffset;return t.parent.nodesBetween(Math.max(0,r-e),r,(i,s,o,l)=>{var a,c;const u=((c=(a=i.type.spec).toText)==null?void 0:c.call(a,{node:i,pos:s,parent:o,index:l}))||i.textContent||"%leaf%";n+=i.isAtom&&!i.isText?u:u.slice(0,Math.max(0,r-s))}),n};function z0(t,e,n={}){const{empty:r,ranges:i}=t.selection,s=e?mo(e,t.schema):null;if(r)return!!(t.storedMarks||t.selection.$from.marks()).filter(d=>s?s.name===d.type.name:!0).find(d=>Tp(d.attrs,n,{strict:!1}));let o=0;const l=[];if(i.forEach(({$from:d,$to:h})=>{const p=d.pos,m=h.pos;t.doc.nodesBetween(p,m,(g,v)=>{if(!g.isText&&!g.marks.length)return;const y=Math.max(p,v),b=Math.min(m,v+g.nodeSize),x=b-y;o+=x,l.push(...g.marks.map(C=>({mark:C,from:y,to:b})))})}),o===0)return!1;const a=l.filter(d=>s?s.name===d.mark.type.name:!0).filter(d=>Tp(d.mark.attrs,n,{strict:!1})).reduce((d,h)=>d+h.to-h.from,0),c=l.filter(d=>s?d.mark.type!==s&&d.mark.type.excludes(s):!0).reduce((d,h)=>d+h.to-h.from,0);return(a>0?a+c:a)>=o}function t5(t,e,n={}){if(!e)return ol(t,null,n)||z0(t,null,n);const r=sg(e,t.schema);return r==="node"?ol(t,e,n):r==="mark"?z0(t,e,n):!1}var n5=(t,e)=>{const{$from:n,$to:r,$anchor:i}=t.selection;if(e){const s=og(l=>l.type.name===e)(t.selection);if(!s)return!1;const o=t.doc.resolve(s.pos+1);return i.pos+1===o.end()}return!(r.parentOffset{const{$from:e,$to:n}=t.selection;return!(e.parentOffset>0||e.pos!==n.pos)};function _C(t,e){return Array.isArray(e)?e.some(n=>(typeof n=="string"?n:n.name)===t.name):e}function zC(t,e){const{nodeExtensions:n}=yc(e),r=n.find(o=>o.name===t);if(!r)return!1;const i={name:r.name,options:r.options,storage:r.storage},s=an(ut(r,"group",i));return typeof s!="string"?!1:s.split(" ").includes("list")}function lg(t,{checkChildren:e=!0,ignoreWhitespace:n=!1}={}){var r;if(n){if(t.type.name==="hardBreak")return!0;if(t.isText)return/^\s*$/m.test((r=t.text)!=null?r:"")}if(t.isText)return!t.text;if(t.isAtom||t.isLeaf)return!1;if(t.content.childCount===0)return!0;if(e){let i=!0;return t.content.forEach(s=>{i!==!1&&(lg(s,{ignoreWhitespace:n,checkChildren:e})||(i=!1))}),i}return!1}function f2(t){return t instanceof dt}var dx=class h2{constructor(e){this.position=e}static fromJSON(e){return new h2(e.position)}toJSON(){return{position:this.position}}};function p2(t,e){const n=e.mapping.mapResult(t.position);return{position:new dx(n.pos),mapResult:n}}function i5(t){return new dx(t)}function m2(t,e,n){const i=t.state.doc.content.size,s=Gs(e,0,i),o=Gs(n,0,i),l=t.coordsAtPos(s),a=t.coordsAtPos(o,-1),c=Math.min(l.top,a.top),u=Math.max(l.bottom,a.bottom),d=Math.min(l.left,a.left),h=Math.max(l.right,a.right),p=h-d,m=u-c,y={top:c,bottom:u,left:d,right:h,width:p,height:m,x:d,y:c};return{...y,toJSON:()=>y}}function s5(t,e,n){var r;const{selection:i}=e;let s=null;if(ox(i)&&(s=i.$cursor),s){const l=(r=t.storedMarks)!=null?r:s.marks();return s.parent.type.allowsMarkType(n)&&(!!n.isInSet(l)||!l.some(c=>c.type.excludes(n)))}const{ranges:o}=i;return o.some(({$from:l,$to:a})=>{let c=l.depth===0?t.doc.inlineContent&&t.doc.type.allowsMarkType(n):!1;return t.doc.nodesBetween(l.pos,a.pos,(u,d,h)=>{if(c)return!1;if(u.isInline){const p=!h||h.type.allowsMarkType(n),m=!!n.isInSet(u.marks)||!u.marks.some(g=>g.type.excludes(n));c=p&&m}return!c}),c})}var o5=(t,e={})=>({tr:n,state:r,dispatch:i})=>{const{selection:s}=n,{empty:o,ranges:l}=s,a=mo(t,r.schema);if(i)if(o){const c=r2(r,a);n.addStoredMark(a.create({...c,...e}))}else l.forEach(c=>{const u=c.$from.pos,d=c.$to.pos;r.doc.nodesBetween(u,d,(h,p)=>{const m=Math.max(p,u),g=Math.min(p+h.nodeSize,d);h.marks.find(y=>y.type===a)?h.marks.forEach(y=>{a===y.type&&n.addMark(m,g,a.create({...y.attrs,...e}))}):n.addMark(m,g,a.create(e))})});return s5(r,n,a)},l5=(t,e)=>({tr:n})=>(n.setMeta(t,e),!0),a5=(t,e={})=>({state:n,dispatch:r,chain:i})=>{const s=Kn(t,n.schema);let o;return n.selection.$anchor.sameParent(n.selection.$head)&&(o=n.selection.$anchor.parent.attrs),s.isTextblock?i().command(({commands:l})=>XS(s,{...o,...e})(n)?!0:l.clearNodes()).command(({state:l})=>XS(s,{...o,...e})(l,r)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},c5=t=>({tr:e,dispatch:n})=>{if(n){const{doc:r}=e,i=Gs(t,0,r.content.size),s=dt.create(r,i);e.setSelection(s)}return!0},u5=(t,e)=>({tr:n,state:r,dispatch:i})=>{const{selection:s}=r;let o,l;return typeof e=="number"?(o=e,l=e):e&&"from"in e&&"to"in e?(o=e.from,l=e.to):(o=s.from,l=s.to),i&&n.doc.nodesBetween(o,l,(a,c)=>{a.isText||n.setNodeMarkup(c,void 0,{...a.attrs,dir:t})}),!0},d5=t=>({tr:e,dispatch:n})=>{if(n){const{doc:r}=e,{from:i,to:s}=typeof t=="number"?{from:t,to:t}:t,o=xt.atStart(r).from,l=xt.atEnd(r).to,a=Gs(i,o,l),c=Gs(s,o,l),u=xt.create(r,a,c);e.setSelection(u)}return!0},f5=t=>({state:e,dispatch:n})=>{const r=Kn(t,e.schema);return lF(r)(e,n)};function FC(t,e){const n=t.storedMarks||t.selection.$to.parentOffset&&t.selection.$from.marks();if(n){const r=n.filter(i=>e==null?void 0:e.includes(i.type.name));t.tr.ensureMarks(r)}}var h5=({keepMarks:t=!0}={})=>({tr:e,state:n,dispatch:r,editor:i})=>{const{selection:s,doc:o}=e,{$from:l,$to:a}=s,c=i.extensionManager.attributes,u=Eh(c,l.node().type.name,l.node().attrs);if(s instanceof dt&&s.node.isBlock)return!l.parentOffset||!Zs(o,l.pos)?!1:(r&&(t&&FC(n,i.extensionManager.splittableMarks),e.split(l.pos).scrollIntoView()),!0);if(!l.parent.isBlock)return!1;const d=a.parentOffset===a.parent.content.size,h=l.depth===0?void 0:HB(l.node(-1).contentMatchAt(l.indexAfter(-1)));let p=d&&h?[{type:h,attrs:u}]:void 0,m=Zs(e.doc,e.mapping.map(l.pos),1,p);if(!p&&!m&&Zs(e.doc,e.mapping.map(l.pos),1,h?[{type:h}]:void 0)&&(m=!0,p=h?[{type:h,attrs:u}]:void 0),r){if(m&&(s instanceof xt&&e.deleteSelection(),e.split(e.mapping.map(l.pos),1,p),h&&!d&&!l.parentOffset&&l.parent.type!==h)){const g=e.mapping.map(l.before()),v=e.doc.resolve(g);l.node(-1).canReplaceWith(v.index(),v.index()+1,h)&&e.setNodeMarkup(e.mapping.map(l.before()),h)}t&&FC(n,i.extensionManager.splittableMarks),e.scrollIntoView()}return m},p5=(t,e={})=>({tr:n,state:r,dispatch:i,editor:s})=>{var o;const l=Kn(t,r.schema),{$from:a,$to:c}=r.selection,u=r.selection.node;if(u&&u.isBlock||a.depth<2||!a.sameParent(c))return!1;const d=a.node(-1);if(d.type!==l)return!1;const h=s.extensionManager.attributes;if(a.parent.content.size===0&&a.node(-1).childCount===a.indexAfter(-1)){if(a.depth===2||a.node(-3).type!==l||a.index(-2)!==a.node(-2).childCount-1)return!1;if(i){let y=we.empty;const b=a.index(-1)?1:a.index(-2)?2:3;for(let z=a.depth-b;z>=a.depth-3;z-=1)y=we.from(a.node(z).copy(y));const x=a.indexAfter(-1){if(N>-1)return!1;z.isTextblock&&z.content.size===0&&(N=ee+1)}),N>-1&&n.setSelection(xt.near(n.doc.resolve(N))),n.scrollIntoView()}return!0}const p=c.pos===a.end()?d.contentMatchAt(0).defaultType:null,m={...Eh(h,d.type.name,d.attrs),...e},g={...Eh(h,a.node().type.name,a.node().attrs),...e};n.delete(a.pos,c.pos);const v=p?[{type:l,attrs:m},{type:p,attrs:g}]:[{type:l,attrs:m}];if(!Zs(n.doc,a.pos,2))return!1;if(i){const{selection:y,storedMarks:b}=r,{splittableMarks:x}=s.extensionManager,C=b||y.$to.parentOffset&&y.$from.marks();if(n.split(a.pos,2,v).scrollIntoView(),!C||!i)return!0;const S=C.filter(M=>x.includes(M.type.name));n.ensureMarks(S)}return!0},$y=(t,e)=>{const n=og(o=>o.type===e)(t.selection);if(!n)return!0;const r=t.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(r===void 0)return!0;const i=t.doc.nodeAt(r);return n.node.type===(i==null?void 0:i.type)&&vl(t.doc,n.pos)&&t.join(n.pos),!0},By=(t,e)=>{const n=og(o=>o.type===e)(t.selection);if(!n)return!0;const r=t.doc.resolve(n.start).after(n.depth);if(r===void 0)return!0;const i=t.doc.nodeAt(r);return n.node.type===(i==null?void 0:i.type)&&vl(t.doc,r)&&t.join(r),!0},m5=(t,e,n,r={})=>({editor:i,tr:s,state:o,dispatch:l,chain:a,commands:c,can:u})=>{const{extensions:d,splittableMarks:h}=i.extensionManager,p=Kn(t,o.schema),m=Kn(e,o.schema),{selection:g,storedMarks:v}=o,{$from:y,$to:b}=g,x=y.blockRange(b),C=v||g.$to.parentOffset&&g.$from.marks();if(!x)return!1;const S=og(M=>zC(M.type.name,d))(g);if(x.depth>=1&&S&&x.depth-S.depth<=1){if(S.node.type===p)return c.liftListItem(m);if(zC(S.node.type.name,d)&&p.validContent(S.node.content)&&l)return a().command(()=>(s.setNodeMarkup(S.pos,p),!0)).command(()=>$y(s,p)).command(()=>By(s,p)).run()}return!n||!C||!l?a().command(()=>u().wrapInList(p,r)?!0:c.clearNodes()).wrapInList(p,r).command(()=>$y(s,p)).command(()=>By(s,p)).run():a().command(()=>{const M=u().wrapInList(p,r),N=C.filter(z=>h.includes(z.type.name));return s.ensureMarks(N),M?!0:c.clearNodes()}).wrapInList(p,r).command(()=>$y(s,p)).command(()=>By(s,p)).run()},g5=(t,e={},n={})=>({state:r,commands:i})=>{const{extendEmptyMarkRange:s=!1}=n,o=mo(t,r.schema);return z0(r,o,e)?i.unsetMark(o,{extendEmptyMarkRange:s}):i.setMark(o,e)},y5=(t,e,n={})=>({state:r,commands:i})=>{const s=Kn(t,r.schema),o=Kn(e,r.schema),l=ol(r,s,n);let a;return r.selection.$anchor.sameParent(r.selection.$head)&&(a=r.selection.$anchor.parent.attrs),l?i.setNode(o,a):i.setNode(s,{...a,...n})},v5=(t,e={})=>({state:n,commands:r})=>{const i=Kn(t,n.schema);return ol(n,i,e)?r.lift(i):r.wrapIn(i,e)},b5=()=>({state:t,dispatch:e})=>{const n=t.plugins;for(let r=0;r=0;a-=1)o.step(l.steps[a].invert(l.docs[a]));if(s.text){const a=o.doc.resolve(s.from).marks();o.replaceWith(s.from,s.to,t.schema.text(s.text,a))}else o.delete(s.from,s.to)}return!0}}return!1},w5=()=>({tr:t,dispatch:e})=>{const{selection:n}=t,{empty:r,ranges:i}=n;return r||e&&i.forEach(s=>{t.removeMark(s.$from.pos,s.$to.pos)}),!0},x5=(t,e={})=>({tr:n,state:r,dispatch:i})=>{var s;const{extendEmptyMarkRange:o=!1}=e,{selection:l}=n,a=mo(t,r.schema),{$from:c,empty:u,ranges:d}=l;if(!i)return!0;if(u&&o){let{from:h,to:p}=l;const m=(s=c.marks().find(v=>v.type===a))==null?void 0:s.attrs,g=sx(c,a,m);g&&(h=g.from,p=g.to),n.removeMark(h,p,a)}else d.forEach(h=>{n.removeMark(h.$from.pos,h.$to.pos,a)});return n.removeStoredMark(a),!0},k5=t=>({tr:e,state:n,dispatch:r})=>{const{selection:i}=n;let s,o;return typeof t=="number"?(s=t,o=t):t&&"from"in t&&"to"in t?(s=t.from,o=t.to):(s=i.from,o=i.to),r&&e.doc.nodesBetween(s,o,(l,a)=>{if(l.isText)return;const c={...l.attrs};delete c.dir,e.setNodeMarkup(a,void 0,c)}),!0},S5=(t,e={})=>({tr:n,state:r,dispatch:i})=>{let s=null,o=null;const l=sg(typeof t=="string"?t:t.name,r.schema);if(!l)return!1;l==="node"&&(s=Kn(t,r.schema)),l==="mark"&&(o=mo(t,r.schema));let a=!1;return n.selection.ranges.forEach(c=>{const u=c.$from.pos,d=c.$to.pos;let h,p,m,g;n.selection.empty?r.doc.nodesBetween(u,d,(v,y)=>{s&&s===v.type&&(a=!0,m=Math.max(y,u),g=Math.min(y+v.nodeSize,d),h=y,p=v)}):r.doc.nodesBetween(u,d,(v,y)=>{y=u&&y<=d&&(s&&s===v.type&&(a=!0,i&&n.setNodeMarkup(y,void 0,{...v.attrs,...e})),o&&v.marks.length&&v.marks.forEach(b=>{if(o===b.type&&(a=!0,i)){const x=Math.max(y,u),C=Math.min(y+v.nodeSize,d);n.addMark(x,C,o.create({...b.attrs,...e}))}}))}),p&&(h!==void 0&&i&&n.setNodeMarkup(h,void 0,{...p.attrs,...e}),o&&p.marks.length&&p.marks.forEach(v=>{o===v.type&&i&&n.addMark(m,g,o.create({...v.attrs,...e}))}))}),a},C5=(t,e={})=>({state:n,dispatch:r})=>{const i=Kn(t,n.schema);return eF(i,e)(n,r)},E5=(t,e={})=>({state:n,dispatch:r})=>{const i=Kn(t,n.schema);return tF(i,e)(n,r)},N5=class{constructor(){this.callbacks={}}on(t,e){return this.callbacks[t]||(this.callbacks[t]=[]),this.callbacks[t].push(e),this}emit(t,...e){const n=this.callbacks[t];return n&&n.forEach(r=>r.apply(this,e)),this}off(t,e){const n=this.callbacks[t];return n&&(e?this.callbacks[t]=n.filter(r=>r!==e):delete this.callbacks[t]),this}once(t,e){const n=(...r)=>{this.off(t,n),e.apply(this,r)};return this.on(t,n)}removeAllListeners(){this.callbacks={}}},ag=class{constructor(t){var e;this.find=t.find,this.handler=t.handler,this.undoable=(e=t.undoable)!=null?e:!0}},T5=(t,e)=>{if(ix(e))return e.exec(t);const n=e(t);if(!n)return null;const r=[n.text];return r.index=n.index,r.input=t,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(n.replaceWith)),r};function Kf(t){var e;const{editor:n,from:r,to:i,text:s,rules:o,plugin:l}=t,{view:a}=n;if(a.composing)return!1;const c=a.state.doc.resolve(r);if(c.parent.type.spec.code||(e=c.nodeBefore||c.nodeAfter)!=null&&e.marks.find(h=>h.type.spec.code))return!1;let u=!1;const d=e5(c)+s;return o.forEach(h=>{if(u)return;const p=T5(d,h.find);if(!p)return;const m=a.state.tr,g=rg({state:a.state,transaction:m}),v={from:r-(p[0].length-s.length),to:i},{commands:y,chain:b,can:x}=new ig({editor:n,state:g});h.handler({state:g,range:v,match:p,commands:y,chain:b,can:x})===null||!m.steps.length||(h.undoable&&m.setMeta(l,{transform:m,from:r,to:i,text:s}),a.dispatch(m),u=!0)}),u}function A5(t){const{editor:e,rules:n}=t,r=new hn({state:{init(){return null},apply(i,s,o){const l=i.getMeta(r);if(l)return l;const a=i.getMeta("applyInputRules");return!!a&&setTimeout(()=>{let{text:u}=a;typeof u=="string"?u=u:u=ax(we.from(u),o.schema);const{from:d}=a,h=d+u.length;Kf({editor:e,from:d,to:h,text:u,rules:n,plugin:r})}),i.selectionSet||i.docChanged?null:s}},props:{handleTextInput(i,s,o,l){return Kf({editor:e,from:s,to:o,text:l,rules:n,plugin:r})},handleDOMEvents:{compositionend:i=>(setTimeout(()=>{const{$cursor:s}=i.state.selection;s&&Kf({editor:e,from:s.pos,to:s.pos,text:"",rules:n,plugin:r})}),!1)},handleKeyDown(i,s){if(s.key!=="Enter")return!1;const{$cursor:o}=i.state.selection;return o?Kf({editor:e,from:o.pos,to:o.pos,text:` +`,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function M5(t){return Object.prototype.toString.call(t).slice(8,-1)}function Yf(t){return M5(t)!=="Object"?!1:t.constructor===Object&&Object.getPrototypeOf(t)===Object.prototype}function g2(t,e){const n={...t};return Yf(t)&&Yf(e)&&Object.keys(e).forEach(r=>{Yf(e[r])&&Yf(t[r])?n[r]=g2(t[r],e[r]):n[r]=e[r]}),n}var fx=class{constructor(t={}){this.type="extendable",this.parent=null,this.child=null,this.name="",this.config={name:this.name},this.config={...this.config,...t},this.name=this.config.name}get options(){return{...an(ut(this,"addOptions",{name:this.name}))||{}}}get storage(){return{...an(ut(this,"addStorage",{name:this.name,options:this.options}))||{}}}configure(t={}){const e=this.extend({...this.config,addOptions:()=>g2(this.options,t)});return e.name=this.name,e.parent=this.parent,e}extend(t={}){const e=new this.constructor({...this.config,...t});return e.parent=this,this.child=e,e.name="name"in t?t.name:e.parent.name,e}},da=class y2 extends fx{constructor(){super(...arguments),this.type="mark"}static create(e={}){const n=typeof e=="function"?e():e;return new y2(n)}static handleExit({editor:e,mark:n}){const{tr:r}=e.state,i=e.state.selection.$from;if(i.pos===i.end()){const o=i.marks();if(!!!o.find(c=>(c==null?void 0:c.type.name)===n.name))return!1;const a=o.find(c=>(c==null?void 0:c.type.name)===n.name);return a&&r.removeStoredMark(a),r.insertText(" ",i.pos),e.view.dispatch(r),!0}return!1}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}};function I5(t){return typeof t=="number"}var R5=class{constructor(t){this.find=t.find,this.handler=t.handler}},D5=(t,e,n)=>{if(ix(e))return[...t.matchAll(e)];const r=e(t,n);return r?r.map(i=>{const s=[i.text];return s.index=i.index,s.input=t,s.data=i.data,i.replaceWith&&(i.text.includes(i.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),s.push(i.replaceWith)),s}):[]};function O5(t){const{editor:e,state:n,from:r,to:i,rule:s,pasteEvent:o,dropEvent:l}=t,{commands:a,chain:c,can:u}=new ig({editor:e,state:n}),d=[];return n.doc.nodesBetween(r,i,(p,m)=>{var g,v,y,b,x;if((v=(g=p.type)==null?void 0:g.spec)!=null&&v.code||!(p.isText||p.isTextblock||p.isInline))return;const C=(x=(b=(y=p.content)==null?void 0:y.size)!=null?b:p.nodeSize)!=null?x:0,S=Math.max(r,m),M=Math.min(i,m+C);if(S>=M)return;const N=p.isText?p.text||"":p.textBetween(S-m,M-m,void 0,"");D5(N,s.find,o).forEach(ee=>{if(ee.index===void 0)return;const L=S+ee.index+1,q=L+ee[0].length,X={from:n.tr.mapping.map(L),to:n.tr.mapping.map(q)},ye=s.handler({state:n,range:X,match:ee,commands:a,chain:c,can:u,pasteEvent:o,dropEvent:l});d.push(ye)})}),d.every(p=>p!==null)}var qf=null,j5=t=>{var e;const n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(e=n.clipboardData)==null||e.setData("text/html",t),n};function P5(t){const{editor:e,rules:n}=t;let r=null,i=!1,s=!1,o=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,l;try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}const a=({state:u,from:d,to:h,rule:p,pasteEvt:m})=>{const g=u.tr,v=rg({state:u,transaction:g});if(!(!O5({editor:e,state:v,from:Math.max(d-1,0),to:h.b-1,rule:p,pasteEvent:m,dropEvent:l})||!g.steps.length)){try{l=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{l=null}return o=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,g}};return n.map(u=>new hn({view(d){const h=m=>{var g;r=(g=d.dom.parentElement)!=null&&g.contains(m.target)?d.dom.parentElement:null,r&&(qf=e)},p=()=>{qf&&(qf=null)};return window.addEventListener("dragstart",h),window.addEventListener("dragend",p),{destroy(){window.removeEventListener("dragstart",h),window.removeEventListener("dragend",p)}}},props:{handleDOMEvents:{drop:(d,h)=>{if(s=r===d.dom.parentElement,l=h,!s){const p=qf;p!=null&&p.isEditable&&setTimeout(()=>{const m=p.state.selection;m&&p.commands.deleteRange({from:m.from,to:m.to})},10)}return!1},paste:(d,h)=>{var p;const m=(p=h.clipboardData)==null?void 0:p.getData("text/html");return o=h,i=!!(m!=null&&m.includes("data-pm-slice")),!1}}},appendTransaction:(d,h,p)=>{const m=d[0],g=m.getMeta("uiEvent")==="paste"&&!i,v=m.getMeta("uiEvent")==="drop"&&!s,y=m.getMeta("applyPasteRules"),b=!!y;if(!g&&!v&&!b)return;if(b){let{text:S}=y;typeof S=="string"?S=S:S=ax(we.from(S),p.schema);const{from:M}=y,N=M+S.length,z=j5(S);return a({rule:u,state:p,from:M,to:{b:N},pasteEvt:z})}const x=h.doc.content.findDiffStart(p.doc.content),C=h.doc.content.findDiffEnd(p.doc.content);if(!(!I5(x)||!C||x===C.b))return a({rule:u,state:p,from:x,to:C,pasteEvt:o})}}))}var cg=class{constructor(t,e){this.splittableMarks=[],this.editor=e,this.baseExtensions=t,this.extensions=l2(t),this.schema=qB(this.extensions,e),this.setupExtensions()}get commands(){return this.extensions.reduce((t,e)=>{const n={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:Wf(e.name,this.schema)},r=ut(e,"addCommands",n);return r?{...t,...r()}:t},{})}get plugins(){const{editor:t}=this;return Mp([...this.extensions].reverse()).flatMap(r=>{const i={name:r.name,options:r.options,storage:this.editor.extensionStorage[r.name],editor:t,type:Wf(r.name,this.schema)},s=[],o=ut(r,"addKeyboardShortcuts",i);let l={};if(r.type==="mark"&&ut(r,"exitable",i)&&(l.ArrowRight=()=>da.handleExit({editor:t,mark:r})),o){const h=Object.fromEntries(Object.entries(o()).map(([p,m])=>[p,()=>m({editor:t})]));l={...l,...h}}const a=X$(l);s.push(a);const c=ut(r,"addInputRules",i);if(_C(r,t.options.enableInputRules)&&c){const h=c();if(h&&h.length){const p=A5({editor:t,rules:h}),m=Array.isArray(p)?p:[p];s.push(...m)}}const u=ut(r,"addPasteRules",i);if(_C(r,t.options.enablePasteRules)&&u){const h=u();if(h&&h.length){const p=P5({editor:t,rules:h});s.push(...p)}}const d=ut(r,"addProseMirrorPlugins",i);if(d){const h=d();s.push(...h)}return s})}get attributes(){return o2(this.extensions)}get nodeViews(){const{editor:t}=this,{nodeExtensions:e}=yc(this.extensions);return Object.fromEntries(e.filter(n=>!!ut(n,"addNodeView")).map(n=>{const r=this.attributes.filter(a=>a.type===n.name),i={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:Kn(n.name,this.schema)},s=ut(n,"addNodeView",i);if(!s)return[];const o=s();if(!o)return[];const l=(a,c,u,d,h)=>{const p=xd(a,r);return o({node:a,view:c,getPos:u,decorations:d,innerDecorations:h,editor:t,extension:n,HTMLAttributes:p})};return[n.name,l]}))}dispatchTransaction(t){const{editor:e}=this;return Mp([...this.extensions].reverse()).reduceRight((r,i)=>{const s={name:i.name,options:i.options,storage:this.editor.extensionStorage[i.name],editor:e,type:Wf(i.name,this.schema)},o=ut(i,"dispatchTransaction",s);return o?l=>{o.call(s,{transaction:l,next:r})}:r},t)}get markViews(){const{editor:t}=this,{markExtensions:e}=yc(this.extensions);return Object.fromEntries(e.filter(n=>!!ut(n,"addMarkView")).map(n=>{const r=this.attributes.filter(l=>l.type===n.name),i={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:mo(n.name,this.schema)},s=ut(n,"addMarkView",i);if(!s)return[];const o=(l,a,c)=>{const u=xd(l,r);return s()({mark:l,view:a,inline:c,editor:t,extension:n,HTMLAttributes:u,updateAttributes:d=>{q5(l,t,d)}})};return[n.name,o]}))}setupExtensions(){const t=this.extensions;this.editor.extensionStorage=Object.fromEntries(t.map(e=>[e.name,e.storage])),t.forEach(e=>{var n;const r={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:Wf(e.name,this.schema)};e.type==="mark"&&((n=an(ut(e,"keepOnSplit",r)))==null||n)&&this.splittableMarks.push(e.name);const i=ut(e,"onBeforeCreate",r),s=ut(e,"onCreate",r),o=ut(e,"onUpdate",r),l=ut(e,"onSelectionUpdate",r),a=ut(e,"onTransaction",r),c=ut(e,"onFocus",r),u=ut(e,"onBlur",r),d=ut(e,"onDestroy",r);i&&this.editor.on("beforeCreate",i),s&&this.editor.on("create",s),o&&this.editor.on("update",o),l&&this.editor.on("selectionUpdate",l),a&&this.editor.on("transaction",a),c&&this.editor.on("focus",c),u&&this.editor.on("blur",u),d&&this.editor.on("destroy",d)})}};cg.resolve=l2;cg.sort=Mp;cg.flatten=lx;var L5={};rx(L5,{ClipboardTextSerializer:()=>b2,Commands:()=>w2,Delete:()=>x2,Drop:()=>k2,Editable:()=>S2,FocusEvents:()=>E2,Keymap:()=>N2,Paste:()=>T2,Tabindex:()=>A2,TextDirection:()=>M2,focusEventsPluginKey:()=>C2});var mn=class v2 extends fx{constructor(){super(...arguments),this.type="extension"}static create(e={}){const n=typeof e=="function"?e():e;return new v2(n)}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}},b2=mn.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new hn({key:new pn("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{const{editor:t}=this,{state:e,schema:n}=t,{doc:r,selection:i}=e,{ranges:s}=i,o=Math.min(...s.map(u=>u.$from.pos)),l=Math.max(...s.map(u=>u.$to.pos)),a=cx(n);return a2(r,{from:o,to:l},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:a})}}})]}}),w2=mn.create({name:"commands",addCommands(){return{...QI}}}),x2=mn.create({name:"delete",onUpdate({transaction:t,appendedTransactions:e}){var n,r,i;const s=()=>{var o,l,a,c;if((c=(a=(l=(o=this.editor.options.coreExtensionOptions)==null?void 0:o.delete)==null?void 0:l.filterTransaction)==null?void 0:a.call(l,t))!=null?c:t.getMeta("y-sync$"))return;const u=i2(t.before,[t,...e]);d2(u).forEach(p=>{u.mapping.mapResult(p.oldRange.from).deletedAfter&&u.mapping.mapResult(p.oldRange.to).deletedBefore&&u.before.nodesBetween(p.oldRange.from,p.oldRange.to,(m,g)=>{const v=g+m.nodeSize-2,y=p.oldRange.from<=g&&v<=p.oldRange.to;this.editor.emit("delete",{type:"node",node:m,from:g,to:v,newFrom:u.mapping.map(g),newTo:u.mapping.map(v),deletedRange:p.oldRange,newRange:p.newRange,partial:!y,editor:this.editor,transaction:t,combinedTransform:u})})});const h=u.mapping;u.steps.forEach((p,m)=>{var g,v;if(p instanceof Ji){const y=h.slice(m).map(p.from,-1),b=h.slice(m).map(p.to),x=h.invert().map(y,-1),C=h.invert().map(b),S=(g=u.doc.nodeAt(y-1))==null?void 0:g.marks.some(N=>N.eq(p.mark)),M=(v=u.doc.nodeAt(b))==null?void 0:v.marks.some(N=>N.eq(p.mark));this.editor.emit("delete",{type:"mark",mark:p.mark,from:p.from,to:p.to,deletedRange:{from:x,to:C},newRange:{from:y,to:b},partial:!!(M||S),editor:this.editor,transaction:t,combinedTransform:u})}})};(i=(r=(n=this.editor.options.coreExtensionOptions)==null?void 0:n.delete)==null?void 0:r.async)==null||i?setTimeout(s,0):s()}}),k2=mn.create({name:"drop",addProseMirrorPlugins(){return[new hn({key:new pn("tiptapDrop"),props:{handleDrop:(t,e,n,r)=>{this.editor.emit("drop",{editor:this.editor,event:e,slice:n,moved:r})}}})]}}),S2=mn.create({name:"editable",addProseMirrorPlugins(){return[new hn({key:new pn("editable"),props:{editable:()=>this.editor.options.editable}})]}}),C2=new pn("focusEvents"),E2=mn.create({name:"focusEvents",addProseMirrorPlugins(){const{editor:t}=this;return[new hn({key:C2,props:{handleDOMEvents:{focus:(e,n)=>{t.isFocused=!0;const r=t.state.tr.setMeta("focus",{event:n}).setMeta("addToHistory",!1);return e.dispatch(r),!1},blur:(e,n)=>{t.isFocused=!1;const r=t.state.tr.setMeta("blur",{event:n}).setMeta("addToHistory",!1);return e.dispatch(r),!1}}}})]}}),N2=mn.create({name:"keymap",addKeyboardShortcuts(){const t=()=>this.editor.commands.first(({commands:o})=>[()=>o.undoInputRule(),()=>o.command(({tr:l})=>{const{selection:a,doc:c}=l,{empty:u,$anchor:d}=a,{pos:h,parent:p}=d,m=d.parent.isTextblock&&h>0?l.doc.resolve(h-1):d,g=m.parent.type.spec.isolating,v=d.pos-d.parentOffset,y=g&&m.parent.childCount===1?v===d.pos:Nt.atStart(c).from===h;return!u||!p.type.isTextblock||p.textContent.length||!y||y&&d.parent.type.name==="paragraph"?!1:o.clearNodes()}),()=>o.deleteSelection(),()=>o.joinBackward(),()=>o.selectNodeBackward()]),e=()=>this.editor.commands.first(({commands:o})=>[()=>o.deleteSelection(),()=>o.deleteCurrentNode(),()=>o.joinForward(),()=>o.selectNodeForward()]),r={Enter:()=>this.editor.commands.first(({commands:o})=>[()=>o.newlineInCode(),()=>o.createParagraphNear(),()=>o.liftEmptyBlock(),()=>o.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:t,"Mod-Backspace":t,"Shift-Backspace":t,Delete:e,"Mod-Delete":e,"Mod-a":()=>this.editor.commands.selectAll()},i={...r},s={...r,"Ctrl-h":t,"Alt-Backspace":t,"Ctrl-d":e,"Ctrl-Alt-Backspace":e,"Alt-Delete":e,"Alt-d":e,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return Ap()||n2()?s:i},addProseMirrorPlugins(){return[new hn({key:new pn("clearDocument"),appendTransaction:(t,e,n)=>{if(t.some(g=>g.getMeta("composition")))return;const r=t.some(g=>g.docChanged)&&!e.doc.eq(n.doc),i=t.some(g=>g.getMeta("preventClearDocument"));if(!r||i)return;const{empty:s,from:o,to:l}=e.selection,a=Nt.atStart(e.doc).from,c=Nt.atEnd(e.doc).to;if(s||!(o===a&&l===c)||!lg(n.doc))return;const h=n.tr,p=rg({state:n,transaction:h}),{commands:m}=new ig({editor:this.editor,state:p});if(m.clearNodes(),!!h.steps.length)return h}})]}}),T2=mn.create({name:"paste",addProseMirrorPlugins(){return[new hn({key:new pn("tiptapPaste"),props:{handlePaste:(t,e,n)=>{this.editor.emit("paste",{editor:this.editor,event:e,slice:n})}}})]}}),A2=mn.create({name:"tabindex",addProseMirrorPlugins(){return[new hn({key:new pn("tabindex"),props:{attributes:()=>this.editor.isEditable?{tabindex:"0"}:{}}})]}}),M2=mn.create({name:"textDirection",addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];const{nodeExtensions:t}=yc(this.extensions);return[{types:t.filter(e=>e.name!=="text").map(e=>e.name),attributes:{dir:{default:this.options.direction,parseHTML:e=>{const n=e.getAttribute("dir");return n&&(n==="ltr"||n==="rtl"||n==="auto")?n:this.options.direction},renderHTML:e=>e.dir?{dir:e.dir}:{}}}}]},addProseMirrorPlugins(){return[new hn({key:new pn("textDirection"),props:{attributes:()=>{const t=this.options.direction;return t?{dir:t}:{}}}})]}}),_5=class gu{constructor(e,n,r=!1,i=null){this.currentNode=null,this.actualDepth=null,this.isBlock=r,this.resolvedPos=e,this.editor=n,this.currentNode=i}get name(){return this.node.type.name}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){var e;return(e=this.actualDepth)!=null?e:this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(e){let n=this.from,r=this.to;if(this.isBlock){if(this.content.size===0){console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);return}n=this.from+1,r=this.to-1}this.editor.commands.insertContentAt({from:n,to:r},e)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){return this.isBlock?this.pos:this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){return this.isBlock?this.pos+this.size:this.resolvedPos.end(this.resolvedPos.depth)+(this.node.isText?0:1)}get parent(){if(this.depth===0)return null;const e=this.resolvedPos.start(this.resolvedPos.depth-1),n=this.resolvedPos.doc.resolve(e);return new gu(n,this.editor)}get before(){let e=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));return e.depth!==this.depth&&(e=this.resolvedPos.doc.resolve(this.from-3)),new gu(e,this.editor)}get after(){let e=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));return e.depth!==this.depth&&(e=this.resolvedPos.doc.resolve(this.to+3)),new gu(e,this.editor)}get children(){const e=[];return this.node.content.forEach((n,r)=>{const i=n.isBlock&&!n.isTextblock,s=n.isAtom&&!n.isText,o=n.isInline,l=this.pos+r+(s?0:1);if(l<0||l>this.resolvedPos.doc.nodeSize-2)return;const a=this.resolvedPos.doc.resolve(l);if(!i&&!o&&a.depth<=this.depth)return;const c=new gu(a,this.editor,i,i||o?n:null);i&&(c.actualDepth=this.depth+1),e.push(c)}),e}get firstChild(){return this.children[0]||null}get lastChild(){const e=this.children;return e[e.length-1]||null}closest(e,n={}){let r=null,i=this.parent;for(;i&&!r;){if(i.node.type.name===e)if(Object.keys(n).length>0){const s=i.node.attrs,o=Object.keys(n);for(let l=0;l{r&&i.length>0||(o.node.type.name===e&&s.every(a=>n[a]===o.node.attrs[a])&&i.push(o),!(r&&i.length>0)&&(i=i.concat(o.querySelectorAll(e,n,r))))}),i}setAttribute(e){const{tr:n}=this.editor.state;n.setNodeMarkup(this.from,void 0,{...this.node.attrs,...e}),this.editor.view.dispatch(n)}},z5=`.ProseMirror { + position: relative; +} + +.ProseMirror { + word-wrap: break-word; + white-space: pre-wrap; + white-space: break-spaces; + -webkit-font-variant-ligatures: none; + font-variant-ligatures: none; + font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */ +} + +.ProseMirror [contenteditable="false"] { + white-space: normal; +} + +.ProseMirror [contenteditable="false"] [contenteditable="true"] { + white-space: pre-wrap; +} + +.ProseMirror pre { + white-space: pre-wrap; +} + +img.ProseMirror-separator { + display: inline !important; + border: none !important; + margin: 0 !important; + width: 0 !important; + height: 0 !important; +} + +.ProseMirror-gapcursor { + display: none; + pointer-events: none; + position: absolute; + margin: 0; +} + +.ProseMirror-gapcursor:after { + content: ""; + display: block; + position: absolute; + top: -2px; + width: 20px; + border-top: 1px solid black; + animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite; +} + +@keyframes ProseMirror-cursor-blink { + to { + visibility: hidden; + } +} + +.ProseMirror-hideselection *::selection { + background: transparent; +} + +.ProseMirror-hideselection *::-moz-selection { + background: transparent; +} + +.ProseMirror-hideselection * { + caret-color: transparent; +} + +.ProseMirror-focused .ProseMirror-gapcursor { + display: block; +}`;function F5(t,e,n){const r=document.querySelector("style[data-tiptap-style]");if(r!==null)return r;const i=document.createElement("style");return e&&i.setAttribute("nonce",e),i.setAttribute("data-tiptap-style",""),i.innerHTML=t,document.getElementsByTagName("head")[0].appendChild(i),i}var ug=class extends N5{constructor(t={}){super(),this.css=null,this.className="tiptap",this.editorView=null,this.isFocused=!1,this.isInitialized=!1,this.extensionStorage={},this.instanceId=Math.random().toString(36).slice(2,9),this.options={element:typeof document<"u"?document.createElement("div"):null,content:"",injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,textDirection:void 0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,emitContentError:!1,onBeforeCreate:()=>null,onCreate:()=>null,onMount:()=>null,onUnmount:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:r})=>{throw r},onPaste:()=>null,onDrop:()=>null,onDelete:()=>null,enableExtensionDispatchTransaction:!0},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.utils={getUpdatedPosition:p2,createMappablePosition:i5},this.setOptions(t),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on("beforeCreate",this.options.onBeforeCreate),this.emit("beforeCreate",{editor:this}),this.on("mount",this.options.onMount),this.on("unmount",this.options.onUnmount),this.on("contentError",this.options.onContentError),this.on("create",this.options.onCreate),this.on("update",this.options.onUpdate),this.on("selectionUpdate",this.options.onSelectionUpdate),this.on("transaction",this.options.onTransaction),this.on("focus",this.options.onFocus),this.on("blur",this.options.onBlur),this.on("destroy",this.options.onDestroy),this.on("drop",({event:r,slice:i,moved:s})=>this.options.onDrop(r,i,s)),this.on("paste",({event:r,slice:i})=>this.options.onPaste(r,i)),this.on("delete",this.options.onDelete);const e=this.createDoc(),n=e2(e,this.options.autofocus);this.editorState=$a.create({doc:e,schema:this.schema,selection:n||void 0}),this.options.element&&this.mount(this.options.element)}mount(t){if(typeof document>"u")throw new Error("[tiptap error]: The editor cannot be mounted because there is no 'document' defined in this environment.");this.createView(t),this.emit("mount",{editor:this}),this.css&&!document.head.contains(this.css)&&document.head.appendChild(this.css),window.setTimeout(()=>{this.isDestroyed||(this.options.autofocus!==!1&&this.options.autofocus!==null&&this.commands.focus(this.options.autofocus),this.emit("create",{editor:this}),this.isInitialized=!0)},0)}unmount(){if(this.editorView){const t=this.editorView.dom;t!=null&&t.editor&&delete t.editor,this.editorView.destroy()}if(this.editorView=null,this.isInitialized=!1,this.css&&!document.querySelectorAll(`.${this.className}`).length)try{typeof this.css.remove=="function"?this.css.remove():this.css.parentNode&&this.css.parentNode.removeChild(this.css)}catch(t){console.warn("Failed to remove CSS element:",t)}this.css=null,this.emit("unmount",{editor:this})}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager.chain()}can(){return this.commandManager.can()}injectCSS(){this.options.injectCSS&&typeof document<"u"&&(this.css=F5(z5,this.options.injectNonce))}setOptions(t={}){this.options={...this.options,...t},!(!this.editorView||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(t,e=!0){this.setOptions({editable:t}),e&&this.emit("update",{editor:this,transaction:this.state.tr,appendedTransactions:[]})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get view(){return this.editorView?this.editorView:new Proxy({state:this.editorState,updateState:t=>{this.editorState=t},dispatch:t=>{this.dispatchTransaction(t)},composing:!1,dragging:null,editable:!0,isDestroyed:!1},{get:(t,e)=>{if(this.editorView)return this.editorView[e];if(e==="state")return this.editorState;if(e in t)return Reflect.get(t,e);throw new Error(`[tiptap error]: The editor view is not available. Cannot access view['${e}']. The editor may not be mounted yet.`)}})}get state(){return this.editorView&&(this.editorState=this.view.state),this.editorState}registerPlugin(t,e){const n=s2(e)?e(t,[...this.state.plugins]):[...this.state.plugins,t],r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}unregisterPlugin(t){if(this.isDestroyed)return;const e=this.state.plugins;let n=e;if([].concat(t).forEach(i=>{const s=typeof i=="string"?`${i}$`:i.key;n=n.filter(o=>!o.key.startsWith(s))}),e.length===n.length)return;const r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}createExtensionManager(){var t,e;const r=[...this.options.enableCoreExtensions?[S2,b2.configure({blockSeparator:(e=(t=this.options.coreExtensionOptions)==null?void 0:t.clipboardTextSerializer)==null?void 0:e.blockSeparator}),w2,E2,N2,A2,k2,T2,x2,M2.configure({direction:this.options.textDirection})].filter(i=>typeof this.options.enableCoreExtensions=="object"?this.options.enableCoreExtensions[i.name]!==!1:!0):[],...this.options.extensions].filter(i=>["extension","node","mark"].includes(i==null?void 0:i.type));this.extensionManager=new cg(r,this)}createCommandManager(){this.commandManager=new ig({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createDoc(){let t;try{t=_0(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(e){if(!(e instanceof Error)||!["[tiptap error]: Invalid JSON content","[tiptap error]: Invalid HTML content"].includes(e.message))throw e;this.emit("contentError",{editor:this,error:e,disableCollaboration:()=>{"collaboration"in this.storage&&typeof this.storage.collaboration=="object"&&this.storage.collaboration&&(this.storage.collaboration.isDisabled=!0),this.options.extensions=this.options.extensions.filter(n=>n.name!=="collaboration"),this.createExtensionManager()}}),t=_0(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1})}return t}createView(t){const{editorProps:e,enableExtensionDispatchTransaction:n}=this.options,r=e.dispatchTransaction||this.dispatchTransaction.bind(this),i=n?this.extensionManager.dispatchTransaction(r):r;this.editorView=new XI(t,{...e,attributes:{role:"textbox",...e==null?void 0:e.attributes},dispatchTransaction:i,state:this.editorState,markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews});const s=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(s),this.prependClass(),this.injectCSS();const o=this.view.dom;o.editor=this}createNodeViews(){this.view.isDestroyed||this.view.setProps({markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`${this.className} ${this.view.dom.className}`}captureTransaction(t){this.isCapturingTransaction=!0,t(),this.isCapturingTransaction=!1;const e=this.capturedTransaction;return this.capturedTransaction=null,e}dispatchTransaction(t){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=t;return}t.steps.forEach(c=>{var u;return(u=this.capturedTransaction)==null?void 0:u.step(c)});return}const{state:e,transactions:n}=this.state.applyTransaction(t),r=!this.state.selection.eq(e.selection),i=n.includes(t),s=this.state;if(this.emit("beforeTransaction",{editor:this,transaction:t,nextState:e}),!i)return;this.view.updateState(e),this.emit("transaction",{editor:this,transaction:t,appendedTransactions:n.slice(1)}),r&&this.emit("selectionUpdate",{editor:this,transaction:t});const o=n.findLast(c=>c.getMeta("focus")||c.getMeta("blur")),l=o==null?void 0:o.getMeta("focus"),a=o==null?void 0:o.getMeta("blur");l&&this.emit("focus",{editor:this,event:l.event,transaction:o}),a&&this.emit("blur",{editor:this,event:a.event,transaction:o}),!(t.getMeta("preventUpdate")||!n.some(c=>c.docChanged)||s.doc.eq(e.doc))&&this.emit("update",{editor:this,transaction:t,appendedTransactions:n.slice(1)})}getAttributes(t){return u2(this.state,t)}isActive(t,e){const n=typeof t=="string"?t:null,r=typeof t=="string"?e:t;return t5(this.state,n,r)}getJSON(){return this.state.doc.toJSON()}getHTML(){return ax(this.state.doc.content,this.schema)}getText(t){const{blockSeparator:e=` + +`,textSerializers:n={}}=t||{};return c2(this.state.doc,{blockSeparator:e,textSerializers:{...cx(this.schema),...n}})}get isEmpty(){return lg(this.state.doc)}destroy(){this.emit("destroy"),this.unmount(),this.removeAllListeners()}get isDestroyed(){var t,e;return(e=(t=this.editorView)==null?void 0:t.isDestroyed)!=null?e:!0}$node(t,e){var n;return((n=this.$doc)==null?void 0:n.querySelector(t,e))||null}$nodes(t,e){var n;return((n=this.$doc)==null?void 0:n.querySelectorAll(t,e))||null}$pos(t){const e=this.state.doc.resolve(t);return new _5(e,this)}get $doc(){return this.$pos(0)}};function vc(t){return new ag({find:t.find,handler:({state:e,range:n,match:r})=>{const i=an(t.getAttributes,void 0,r);if(i===!1||i===null)return null;const{tr:s}=e,o=r[r.length-1],l=r[0];if(o){const a=l.search(/\S/),c=n.from+l.indexOf(o),u=c+o.length;if(ux(n.from,n.to,e.doc).filter(p=>p.mark.type.excluded.find(g=>g===t.type&&g!==p.mark.type)).filter(p=>p.to>c).length)return null;un.from&&s.delete(n.from+a,c);const h=n.from+a+o.length;s.addMark(n.from+a,h,t.type.create(i||{})),s.removeStoredMark(t.type)}},undoable:t.undoable})}function $5(t){return new ag({find:t.find,handler:({state:e,range:n,match:r})=>{const i=an(t.getAttributes,void 0,r)||{},{tr:s}=e,o=n.from;let l=n.to;const a=t.type.create(i);if(r[1]){const c=r[0].lastIndexOf(r[1]);let u=o+c;u>l?u=l:l=u+r[1].length;const d=r[0][r[0].length-1];s.insertText(d,o+r[0].length-1),s.replaceWith(u,l,a)}else if(r[0]){const c=t.type.isInline?o:o-1;s.insert(c,t.type.create(i)).delete(s.mapping.map(o),s.mapping.map(l))}s.scrollIntoView()},undoable:t.undoable})}function F0(t){return new ag({find:t.find,handler:({state:e,range:n,match:r})=>{const i=e.doc.resolve(n.from),s=an(t.getAttributes,void 0,r)||{};if(!i.node(-1).canReplaceWith(i.index(-1),i.indexAfter(-1),t.type))return null;e.tr.delete(n.from,n.to).setBlockType(n.from,n.from,t.type,s)},undoable:t.undoable})}function bc(t){return new ag({find:t.find,handler:({state:e,range:n,match:r,chain:i})=>{const s=an(t.getAttributes,void 0,r)||{},o=e.tr.delete(n.from,n.to),a=o.doc.resolve(n.from).blockRange(),c=a&&$w(a,t.type,s);if(!c)return null;if(o.wrap(a,c),t.keepMarks&&t.editor){const{selection:d,storedMarks:h}=e,{splittableMarks:p}=t.editor.extensionManager,m=h||d.$to.parentOffset&&d.$from.marks();if(m){const g=m.filter(v=>p.includes(v.type.name));o.ensureMarks(g)}}if(t.keepAttributes){const d=t.type.name==="bulletList"||t.type.name==="orderedList"?"listItem":"taskList";i().updateAttributes(d,s).run()}const u=o.doc.resolve(n.from-1).nodeBefore;u&&u.type===t.type&&vl(o.doc,n.from-1)&&(!t.joinPredicate||t.joinPredicate(r,u))&&o.join(n.from-1)},undoable:t.undoable})}function B5(t,e){const{selection:n}=t,{$from:r}=n;if(n instanceof dt){const s=r.index();return r.parent.canReplaceWith(s,s+1,e)}let i=r.depth;for(;i>=0;){const s=r.index(i);if(r.node(i).contentMatchAt(s).matchType(e))return!0;i-=1}return!1}var U5={};rx(U5,{createAtomBlockMarkdownSpec:()=>H5,createBlockMarkdownSpec:()=>V5,createInlineMarkdownSpec:()=>Y5,parseAttributes:()=>hx,parseIndentedBlocks:()=>$0,renderNestedMarkdownContent:()=>mx,serializeAttributes:()=>px});function hx(t){if(!(t!=null&&t.trim()))return{};const e={},n=[],r=t.replace(/["']([^"']*)["']/g,c=>(n.push(c),`__QUOTED_${n.length-1}__`)),i=r.match(/(?:^|\s)\.([a-zA-Z][\w-]*)/g);if(i){const c=i.map(u=>u.trim().slice(1));e.class=c.join(" ")}const s=r.match(/(?:^|\s)#([a-zA-Z][\w-]*)/);s&&(e.id=s[1]);const o=/([a-zA-Z][\w-]*)\s*=\s*(__QUOTED_\d+__)/g;Array.from(r.matchAll(o)).forEach(([,c,u])=>{var d;const h=parseInt(((d=u.match(/__QUOTED_(\d+)__/))==null?void 0:d[1])||"0",10),p=n[h];p&&(e[c]=p.slice(1,-1))});const a=r.replace(/(?:^|\s)\.([a-zA-Z][\w-]*)/g,"").replace(/(?:^|\s)#([a-zA-Z][\w-]*)/g,"").replace(/([a-zA-Z][\w-]*)\s*=\s*__QUOTED_\d+__/g,"").trim();return a&&a.split(/\s+/).filter(Boolean).forEach(u=>{u.match(/^[a-zA-Z][\w-]*$/)&&(e[u]=!0)}),e}function px(t){if(!t||Object.keys(t).length===0)return"";const e=[];return t.class&&String(t.class).split(/\s+/).filter(Boolean).forEach(r=>e.push(`.${r}`)),t.id&&e.push(`#${t.id}`),Object.entries(t).forEach(([n,r])=>{n==="class"||n==="id"||(r===!0?e.push(n):r!==!1&&r!=null&&e.push(`${n}="${String(r)}"`))}),e.join(" ")}function H5(t){const{nodeName:e,name:n,parseAttributes:r=hx,serializeAttributes:i=px,defaultAttributes:s={},requiredAttributes:o=[],allowedAttributes:l}=t,a=n||e,c=u=>{if(!l)return u;const d={};return l.forEach(h=>{h in u&&(d[h]=u[h])}),d};return{parseMarkdown:(u,d)=>{const h={...s,...u.attributes};return d.createNode(e,h,[])},markdownTokenizer:{name:e,level:"block",start(u){var d;const h=new RegExp(`^:::${a}(?:\\s|$)`,"m"),p=(d=u.match(h))==null?void 0:d.index;return p!==void 0?p:-1},tokenize(u,d,h){const p=new RegExp(`^:::${a}(?:\\s+\\{([^}]*)\\})?\\s*:::(?:\\n|$)`),m=u.match(p);if(!m)return;const g=m[1]||"",v=r(g);if(!o.find(b=>!(b in v)))return{type:e,raw:m[0],attributes:v}}},renderMarkdown:u=>{const d=c(u.attrs||{}),h=i(d),p=h?` {${h}}`:"";return`:::${a}${p} :::`}}}function V5(t){const{nodeName:e,name:n,getContent:r,parseAttributes:i=hx,serializeAttributes:s=px,defaultAttributes:o={},content:l="block",allowedAttributes:a}=t,c=n||e,u=d=>{if(!a)return d;const h={};return a.forEach(p=>{p in d&&(h[p]=d[p])}),h};return{parseMarkdown:(d,h)=>{let p;if(r){const g=r(d);p=typeof g=="string"?[{type:"text",text:g}]:g}else l==="block"?p=h.parseChildren(d.tokens||[]):p=h.parseInline(d.tokens||[]);const m={...o,...d.attributes};return h.createNode(e,m,p)},markdownTokenizer:{name:e,level:"block",start(d){var h;const p=new RegExp(`^:::${c}`,"m"),m=(h=d.match(p))==null?void 0:h.index;return m!==void 0?m:-1},tokenize(d,h,p){var m;const g=new RegExp(`^:::${c}(?:\\s+\\{([^}]*)\\})?\\s*\\n`),v=d.match(g);if(!v)return;const[y,b=""]=v,x=i(b);let C=1;const S=y.length;let M="";const N=/^:::([\w-]*)(\s.*)?/gm,z=d.slice(S);for(N.lastIndex=0;;){const ee=N.exec(z);if(ee===null)break;const L=ee.index,q=ee[1];if(!((m=ee[2])!=null&&m.endsWith(":::"))){if(q)C+=1;else if(C-=1,C===0){const X=z.slice(0,L);M=X.trim();const ye=d.slice(0,S+L+ee[0].length);let Ce=[];if(M)if(l==="block")for(Ce=p.blockTokens(X),Ce.forEach(Te=>{Te.text&&(!Te.tokens||Te.tokens.length===0)&&(Te.tokens=p.inlineTokens(Te.text))});Ce.length>0;){const Te=Ce[Ce.length-1];if(Te.type==="paragraph"&&(!Te.text||Te.text.trim()===""))Ce.pop();else break}else Ce=p.inlineTokens(M);return{type:e,raw:ye,attributes:x,content:M,tokens:Ce}}}}}},renderMarkdown:(d,h)=>{const p=u(d.attrs||{}),m=s(p),g=m?` {${m}}`:"",v=h.renderChildren(d.content||[],` + +`);return`:::${c}${g} + +${v} + +:::`}}}function W5(t){if(!t.trim())return{};const e={},n=/(\w+)=(?:"([^"]*)"|'([^']*)')/g;let r=n.exec(t);for(;r!==null;){const[,i,s,o]=r;e[i]=s||o,r=n.exec(t)}return e}function K5(t){return Object.entries(t).filter(([,e])=>e!=null).map(([e,n])=>`${e}="${n}"`).join(" ")}function Y5(t){const{nodeName:e,name:n,getContent:r,parseAttributes:i=W5,serializeAttributes:s=K5,defaultAttributes:o={},selfClosing:l=!1,allowedAttributes:a}=t,c=n||e,u=h=>{if(!a)return h;const p={};return a.forEach(m=>{const g=typeof m=="string"?m:m.name,v=typeof m=="string"?void 0:m.skipIfDefault;if(g in h){const y=h[g];if(v!==void 0&&y===v)return;p[g]=y}}),p},d=c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return{parseMarkdown:(h,p)=>{const m={...o,...h.attributes};if(l)return p.createNode(e,m);const g=r?r(h):h.content||"";return g?p.createNode(e,m,[p.createTextNode(g)]):p.createNode(e,m,[])},markdownTokenizer:{name:e,level:"inline",start(h){const p=l?new RegExp(`\\[${d}\\s*[^\\]]*\\]`):new RegExp(`\\[${d}\\s*[^\\]]*\\][\\s\\S]*?\\[\\/${d}\\]`),m=h.match(p),g=m==null?void 0:m.index;return g!==void 0?g:-1},tokenize(h,p,m){const g=l?new RegExp(`^\\[${d}\\s*([^\\]]*)\\]`):new RegExp(`^\\[${d}\\s*([^\\]]*)\\]([\\s\\S]*?)\\[\\/${d}\\]`),v=h.match(g);if(!v)return;let y="",b="";if(l){const[,C]=v;b=C}else{const[,C,S]=v;b=C,y=S||""}const x=i(b.trim());return{type:e,raw:v[0],content:y.trim(),attributes:x}}},renderMarkdown:h=>{let p="";r?p=r(h):h.content&&h.content.length>0&&(p=h.content.filter(y=>y.type==="text").map(y=>y.text).join(""));const m=u(h.attrs||{}),g=s(m),v=g?` ${g}`:"";return l?`[${c}${v}]`:`[${c}${v}]${p}[/${c}]`}}}function $0(t,e,n){var r,i,s,o;const l=t.split(` +`),a=[];let c="",u=0;const d=e.baseIndentSize||2;for(;u0)break;if(h.trim()===""){u+=1,c=`${c}${h} +`;continue}else return}const m=e.extractItemData(p),{indentLevel:g,mainContent:v}=m;c=`${c}${h} +`;const y=[v];for(u+=1;uL.trim()!=="");if(N===-1)break;if((((i=(r=l[u+1+N].match(/^(\s*)/))==null?void 0:r[1])==null?void 0:i.length)||0)>g){y.push(S),c=`${c}${S} +`,u+=1;continue}else break}if((((o=(s=S.match(/^(\s*)/))==null?void 0:s[1])==null?void 0:o.length)||0)>g)y.push(S),c=`${c}${S} +`,u+=1;else break}let b;const x=y.slice(1);if(x.length>0){const S=x.map(M=>M.slice(g+d)).join(` +`);S.trim()&&(e.customNestedParser?b=e.customNestedParser(S):b=n.blockTokens(S))}const C=e.createToken(m,b);a.push(C)}if(a.length!==0)return{items:a,raw:c}}function mx(t,e,n,r){if(!t||!Array.isArray(t.content))return"";const i=typeof n=="function"?n(r):n,[s,...o]=t.content,l=e.renderChildren([s]),a=[`${i}${l}`];return o&&o.length>0&&o.forEach(c=>{const u=e.renderChildren([c]);if(u){const d=u.split(` +`).map(h=>h?e.indent(h):"").join(` +`);a.push(d)}}),a.join(` +`)}function q5(t,e,n={}){const{state:r}=e,{doc:i,tr:s}=r,o=t;i.descendants((l,a)=>{const c=s.mapping.map(a),u=s.mapping.map(a)+l.nodeSize;let d=null;if(l.marks.forEach(p=>{if(p!==o)return!1;d=p}),!d)return;let h=!1;if(Object.keys(n).forEach(p=>{n[p]!==d.attrs[p]&&(h=!0)}),h){const p=t.type.create({...t.attrs,...n});s.removeMark(c,u,t.type),s.addMark(c,u,p)}}),s.docChanged&&e.view.dispatch(s)}var yi=class I2 extends fx{constructor(){super(...arguments),this.type="node"}static create(e={}){const n=typeof e=="function"?e():e;return new I2(n)}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}};function ea(t){return new R5({find:t.find,handler:({state:e,range:n,match:r,pasteEvent:i})=>{const s=an(t.getAttributes,void 0,r,i);if(s===!1||s===null)return null;const{tr:o}=e,l=r[r.length-1],a=r[0];let c=n.to;if(l){const u=a.search(/\S/),d=n.from+a.indexOf(l),h=d+l.length;if(ux(n.from,n.to,e.doc).filter(m=>m.mark.type.excluded.find(v=>v===t.type&&v!==m.mark.type)).filter(m=>m.to>d).length)return null;hn.from&&o.delete(n.from+u,d),c=n.from+u+l.length,o.addMark(n.from+u,c,t.type.create(s||{})),o.removeStoredMark(t.type)}}})}const{getOwnPropertyNames:J5,getOwnPropertySymbols:G5}=Object,{hasOwnProperty:X5}=Object.prototype;function Uy(t,e){return function(r,i,s){return t(r,i,s)&&e(r,i,s)}}function Jf(t){return function(n,r,i){if(!n||!r||typeof n!="object"||typeof r!="object")return t(n,r,i);const{cache:s}=i,o=s.get(n),l=s.get(r);if(o&&l)return o===r&&l===n;s.set(n,r),s.set(r,n);const a=t(n,r,i);return s.delete(n),s.delete(r),a}}function Q5(t){return t!=null?t[Symbol.toStringTag]:void 0}function $C(t){return J5(t).concat(G5(t))}const Z5=Object.hasOwn||((t,e)=>X5.call(t,e));function fa(t,e){return t===e||!t&&!e&&t!==t&&e!==e}const e6="__v",t6="__o",n6="_owner",{getOwnPropertyDescriptor:BC,keys:UC}=Object;function r6(t,e){return t.byteLength===e.byteLength&&Ip(new Uint8Array(t),new Uint8Array(e))}function i6(t,e,n){let r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(!n.equals(t[r],e[r],r,r,t,e,n))return!1;return!0}function s6(t,e){return t.byteLength===e.byteLength&&Ip(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}function o6(t,e){return fa(t.getTime(),e.getTime())}function l6(t,e){return t.name===e.name&&t.message===e.message&&t.cause===e.cause&&t.stack===e.stack}function a6(t,e){return t===e}function HC(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const i=new Array(r),s=t.entries();let o,l,a=0;for(;(o=s.next())&&!o.done;){const c=e.entries();let u=!1,d=0;for(;(l=c.next())&&!l.done;){if(i[d]){d++;continue}const h=o.value,p=l.value;if(n.equals(h[0],p[0],a,d,t,e,n)&&n.equals(h[1],p[1],h[0],p[0],t,e,n)){u=i[d]=!0;break}d++}if(!u)return!1;a++}return!0}const c6=fa;function u6(t,e,n){const r=UC(t);let i=r.length;if(UC(e).length!==i)return!1;for(;i-- >0;)if(!R2(t,e,n,r[i]))return!1;return!0}function lu(t,e,n){const r=$C(t);let i=r.length;if($C(e).length!==i)return!1;let s,o,l;for(;i-- >0;)if(s=r[i],!R2(t,e,n,s)||(o=BC(t,s),l=BC(e,s),(o||l)&&(!o||!l||o.configurable!==l.configurable||o.enumerable!==l.enumerable||o.writable!==l.writable)))return!1;return!0}function d6(t,e){return fa(t.valueOf(),e.valueOf())}function f6(t,e){return t.source===e.source&&t.flags===e.flags}function VC(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const i=new Array(r),s=t.values();let o,l;for(;(o=s.next())&&!o.done;){const a=e.values();let c=!1,u=0;for(;(l=a.next())&&!l.done;){if(!i[u]&&n.equals(o.value,l.value,o.value,l.value,t,e,n)){c=i[u]=!0;break}u++}if(!c)return!1}return!0}function Ip(t,e){let n=t.byteLength;if(e.byteLength!==n||t.byteOffset!==e.byteOffset)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}function h6(t,e){return t.hostname===e.hostname&&t.pathname===e.pathname&&t.protocol===e.protocol&&t.port===e.port&&t.hash===e.hash&&t.username===e.username&&t.password===e.password}function R2(t,e,n,r){return(r===n6||r===t6||r===e6)&&(t.$$typeof||e.$$typeof)?!0:Z5(e,r)&&n.equals(t[r],e[r],r,r,t,e,n)}const p6="[object ArrayBuffer]",m6="[object Arguments]",g6="[object Boolean]",y6="[object DataView]",v6="[object Date]",b6="[object Error]",w6="[object Map]",x6="[object Number]",k6="[object Object]",S6="[object RegExp]",C6="[object Set]",E6="[object String]",N6={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},T6="[object URL]",A6=Object.prototype.toString;function M6({areArrayBuffersEqual:t,areArraysEqual:e,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:i,areFunctionsEqual:s,areMapsEqual:o,areNumbersEqual:l,areObjectsEqual:a,arePrimitiveWrappersEqual:c,areRegExpsEqual:u,areSetsEqual:d,areTypedArraysEqual:h,areUrlsEqual:p,unknownTagComparators:m}){return function(v,y,b){if(v===y)return!0;if(v==null||y==null)return!1;const x=typeof v;if(x!==typeof y)return!1;if(x!=="object")return x==="number"?l(v,y,b):x==="function"?s(v,y,b):!1;const C=v.constructor;if(C!==y.constructor)return!1;if(C===Object)return a(v,y,b);if(Array.isArray(v))return e(v,y,b);if(C===Date)return r(v,y,b);if(C===RegExp)return u(v,y,b);if(C===Map)return o(v,y,b);if(C===Set)return d(v,y,b);const S=A6.call(v);if(S===v6)return r(v,y,b);if(S===S6)return u(v,y,b);if(S===w6)return o(v,y,b);if(S===C6)return d(v,y,b);if(S===k6)return typeof v.then!="function"&&typeof y.then!="function"&&a(v,y,b);if(S===T6)return p(v,y,b);if(S===b6)return i(v,y,b);if(S===m6)return a(v,y,b);if(N6[S])return h(v,y,b);if(S===p6)return t(v,y,b);if(S===y6)return n(v,y,b);if(S===g6||S===x6||S===E6)return c(v,y,b);if(m){let M=m[S];if(!M){const N=Q5(v);N&&(M=m[N])}if(M)return M(v,y,b)}return!1}}function I6({circular:t,createCustomConfig:e,strict:n}){let r={areArrayBuffersEqual:r6,areArraysEqual:n?lu:i6,areDataViewsEqual:s6,areDatesEqual:o6,areErrorsEqual:l6,areFunctionsEqual:a6,areMapsEqual:n?Uy(HC,lu):HC,areNumbersEqual:c6,areObjectsEqual:n?lu:u6,arePrimitiveWrappersEqual:d6,areRegExpsEqual:f6,areSetsEqual:n?Uy(VC,lu):VC,areTypedArraysEqual:n?Uy(Ip,lu):Ip,areUrlsEqual:h6,unknownTagComparators:void 0};if(e&&(r=Object.assign({},r,e(r))),t){const i=Jf(r.areArraysEqual),s=Jf(r.areMapsEqual),o=Jf(r.areObjectsEqual),l=Jf(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:i,areMapsEqual:s,areObjectsEqual:o,areSetsEqual:l})}return r}function R6(t){return function(e,n,r,i,s,o,l){return t(e,n,l)}}function D6({circular:t,comparator:e,createState:n,equals:r,strict:i}){if(n)return function(l,a){const{cache:c=t?new WeakMap:void 0,meta:u}=n();return e(l,a,{cache:c,equals:r,meta:u,strict:i})};if(t)return function(l,a){return e(l,a,{cache:new WeakMap,equals:r,meta:void 0,strict:i})};const s={cache:void 0,equals:r,meta:void 0,strict:i};return function(l,a){return e(l,a,s)}}const O6=wl();wl({strict:!0});wl({circular:!0});wl({circular:!0,strict:!0});wl({createInternalComparator:()=>fa});wl({strict:!0,createInternalComparator:()=>fa});wl({circular:!0,createInternalComparator:()=>fa});wl({circular:!0,createInternalComparator:()=>fa,strict:!0});function wl(t={}){const{circular:e=!1,createInternalComparator:n,createState:r,strict:i=!1}=t,s=I6(t),o=M6(s),l=n?n(o):R6(o);return D6({circular:e,comparator:o,createState:r,equals:l,strict:i})}var D2={exports:{}},O2={};/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var dg=w,j6=_w;function P6(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var L6=typeof Object.is=="function"?Object.is:P6,_6=j6.useSyncExternalStore,z6=dg.useRef,F6=dg.useEffect,$6=dg.useMemo,B6=dg.useDebugValue;O2.useSyncExternalStoreWithSelector=function(t,e,n,r,i){var s=z6(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=$6(function(){function a(p){if(!c){if(c=!0,u=p,p=r(p),i!==void 0&&o.hasValue){var m=o.value;if(i(m,p))return d=m}return d=p}if(m=d,L6(u,p))return m;var g=r(p);return i!==void 0&&i(m,g)?(u=p,m):(u=p,d=g)}var c=!1,u,d,h=n===void 0?null:n;return[function(){return a(e())},h===null?void 0:function(){return a(h())}]},[e,n,r,i]);var l=_6(t,s[0],s[1]);return F6(function(){o.hasValue=!0,o.value=l},[l]),B6(l),l};D2.exports=O2;var U6=D2.exports;const j2=["top","right","bottom","left"],WC=["start","end"],KC=j2.reduce((t,e)=>t.concat(e,e+"-"+WC[0],e+"-"+WC[1]),[]),Ms=Math.min,zr=Math.max,Rp=Math.round,Cs=t=>({x:t,y:t}),H6={left:"right",right:"left",bottom:"top",top:"bottom"},V6={start:"end",end:"start"};function B0(t,e,n){return zr(t,Ms(e,n))}function go(t,e){return typeof t=="function"?t(e):t}function _i(t){return t.split("-")[0]}function Zi(t){return t.split("-")[1]}function P2(t){return t==="x"?"y":"x"}function gx(t){return t==="y"?"height":"width"}const W6=new Set(["top","bottom"]);function bs(t){return W6.has(_i(t))?"y":"x"}function yx(t){return P2(bs(t))}function L2(t,e,n){n===void 0&&(n=!1);const r=Zi(t),i=yx(t),s=gx(i);let o=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[s]>e.floating[s]&&(o=Op(o)),[o,Op(o)]}function K6(t){const e=Op(t);return[Dp(t),e,Dp(e)]}function Dp(t){return t.replace(/start|end/g,e=>V6[e])}const YC=["left","right"],qC=["right","left"],Y6=["top","bottom"],q6=["bottom","top"];function J6(t,e,n){switch(t){case"top":case"bottom":return n?e?qC:YC:e?YC:qC;case"left":case"right":return e?Y6:q6;default:return[]}}function G6(t,e,n,r){const i=Zi(t);let s=J6(_i(t),n==="start",r);return i&&(s=s.map(o=>o+"-"+i),e&&(s=s.concat(s.map(Dp)))),s}function Op(t){return t.replace(/left|right|bottom|top/g,e=>H6[e])}function X6(t){return{top:0,right:0,bottom:0,left:0,...t}}function vx(t){return typeof t!="number"?X6(t):{top:t,right:t,bottom:t,left:t}}function wc(t){const{x:e,y:n,width:r,height:i}=t;return{width:r,height:i,top:n,left:e,right:e+r,bottom:n+i,x:e,y:n}}function JC(t,e,n){let{reference:r,floating:i}=t;const s=bs(e),o=yx(e),l=gx(o),a=_i(e),c=s==="y",u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,h=r[l]/2-i[l]/2;let p;switch(a){case"top":p={x:u,y:r.y-i.height};break;case"bottom":p={x:u,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:d};break;case"left":p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(Zi(e)){case"start":p[o]-=h*(n&&c?-1:1);break;case"end":p[o]+=h*(n&&c?-1:1);break}return p}async function Q6(t,e){var n;e===void 0&&(e={});const{x:r,y:i,platform:s,rects:o,elements:l,strategy:a}=t,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:h=!1,padding:p=0}=go(e,t),m=vx(p),v=l[h?d==="floating"?"reference":"floating":d],y=wc(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(v)))==null||n?v:v.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(l.floating)),boundary:c,rootBoundary:u,strategy:a})),b=d==="floating"?{x:r,y:i,width:o.floating.width,height:o.floating.height}:o.reference,x=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l.floating)),C=await(s.isElement==null?void 0:s.isElement(x))?await(s.getScale==null?void 0:s.getScale(x))||{x:1,y:1}:{x:1,y:1},S=wc(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:b,offsetParent:x,strategy:a}):b);return{top:(y.top-S.top+m.top)/C.y,bottom:(S.bottom-y.bottom+m.bottom)/C.y,left:(y.left-S.left+m.left)/C.x,right:(S.right-y.right+m.right)/C.x}}const Z6=async(t,e,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:s=[],platform:o}=n,l=s.filter(Boolean),a=await(o.isRTL==null?void 0:o.isRTL(e));let c=await o.getElementRects({reference:t,floating:e,strategy:i}),{x:u,y:d}=JC(c,r,a),h=r,p={},m=0;for(let v=0;v({name:"arrow",options:t,async fn(e){const{x:n,y:r,placement:i,rects:s,platform:o,elements:l,middlewareData:a}=e,{element:c,padding:u=0}=go(t,e)||{};if(c==null)return{};const d=vx(u),h={x:n,y:r},p=yx(i),m=gx(p),g=await o.getDimensions(c),v=p==="y",y=v?"top":"left",b=v?"bottom":"right",x=v?"clientHeight":"clientWidth",C=s.reference[m]+s.reference[p]-h[p]-s.floating[m],S=h[p]-s.reference[p],M=await(o.getOffsetParent==null?void 0:o.getOffsetParent(c));let N=M?M[x]:0;(!N||!await(o.isElement==null?void 0:o.isElement(M)))&&(N=l.floating[x]||s.floating[m]);const z=C/2-S/2,ee=N/2-g[m]/2-1,L=Ms(d[y],ee),q=Ms(d[b],ee),X=L,ye=N-g[m]-q,Ce=N/2-g[m]/2+z,Te=B0(X,Ce,ye),se=!a.arrow&&Zi(i)!=null&&Ce!==Te&&s.reference[m]/2-(CeZi(i)===t),...n.filter(i=>Zi(i)!==t)]:n.filter(i=>_i(i)===i)).filter(i=>t?Zi(i)===t||(e?Dp(i)!==i:!1):!0)}const nU=function(t){return t===void 0&&(t={}),{name:"autoPlacement",options:t,async fn(e){var n,r,i;const{rects:s,middlewareData:o,placement:l,platform:a,elements:c}=e,{crossAxis:u=!1,alignment:d,allowedPlacements:h=KC,autoAlignment:p=!0,...m}=go(t,e),g=d!==void 0||h===KC?tU(d||null,p,h):h,v=await a.detectOverflow(e,m),y=((n=o.autoPlacement)==null?void 0:n.index)||0,b=g[y];if(b==null)return{};const x=L2(b,s,await(a.isRTL==null?void 0:a.isRTL(c.floating)));if(l!==b)return{reset:{placement:g[0]}};const C=[v[_i(b)],v[x[0]],v[x[1]]],S=[...((r=o.autoPlacement)==null?void 0:r.overflows)||[],{placement:b,overflows:C}],M=g[y+1];if(M)return{data:{index:y+1,overflows:S},reset:{placement:M}};const N=S.map(L=>{const q=Zi(L.placement);return[L.placement,q&&u?L.overflows.slice(0,2).reduce((X,ye)=>X+ye,0):L.overflows[0],L.overflows]}).sort((L,q)=>L[1]-q[1]),ee=((i=N.filter(L=>L[2].slice(0,Zi(L[0])?2:3).every(q=>q<=0))[0])==null?void 0:i[0])||N[0][0];return ee!==l?{data:{index:y+1,overflows:S},reset:{placement:ee}}:{}}}},rU=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,r;const{placement:i,middlewareData:s,rects:o,initialPlacement:l,platform:a,elements:c}=e,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:h,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:m="none",flipAlignment:g=!0,...v}=go(t,e);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const y=_i(i),b=bs(l),x=_i(l)===l,C=await(a.isRTL==null?void 0:a.isRTL(c.floating)),S=h||(x||!g?[Op(l)]:K6(l)),M=m!=="none";!h&&M&&S.push(...G6(l,g,m,C));const N=[l,...S],z=await a.detectOverflow(e,v),ee=[];let L=((r=s.flip)==null?void 0:r.overflows)||[];if(u&&ee.push(z[y]),d){const Ce=L2(i,o,C);ee.push(z[Ce[0]],z[Ce[1]])}if(L=[...L,{placement:i,overflows:ee}],!ee.every(Ce=>Ce<=0)){var q,X;const Ce=(((q=s.flip)==null?void 0:q.index)||0)+1,Te=N[Ce];if(Te&&(!(d==="alignment"?b!==bs(Te):!1)||L.every(J=>bs(J.placement)===b?J.overflows[0]>0:!0)))return{data:{index:Ce,overflows:L},reset:{placement:Te}};let se=(X=L.filter(he=>he.overflows[0]<=0).sort((he,J)=>he.overflows[1]-J.overflows[1])[0])==null?void 0:X.placement;if(!se)switch(p){case"bestFit":{var ye;const he=(ye=L.filter(J=>{if(M){const me=bs(J.placement);return me===b||me==="y"}return!0}).map(J=>[J.placement,J.overflows.filter(me=>me>0).reduce((me,ue)=>me+ue,0)]).sort((J,me)=>J[1]-me[1])[0])==null?void 0:ye[0];he&&(se=he);break}case"initialPlacement":se=l;break}if(i!==se)return{reset:{placement:se}}}return{}}}};function GC(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function XC(t){return j2.some(e=>t[e]>=0)}const iU=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){const{rects:n,platform:r}=e,{strategy:i="referenceHidden",...s}=go(t,e);switch(i){case"referenceHidden":{const o=await r.detectOverflow(e,{...s,elementContext:"reference"}),l=GC(o,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:XC(l)}}}case"escaped":{const o=await r.detectOverflow(e,{...s,altBoundary:!0}),l=GC(o,n.floating);return{data:{escapedOffsets:l,escaped:XC(l)}}}default:return{}}}}};function _2(t){const e=Ms(...t.map(s=>s.left)),n=Ms(...t.map(s=>s.top)),r=zr(...t.map(s=>s.right)),i=zr(...t.map(s=>s.bottom));return{x:e,y:n,width:r-e,height:i-n}}function sU(t){const e=t.slice().sort((i,s)=>i.y-s.y),n=[];let r=null;for(let i=0;ir.height/2?n.push([s]):n[n.length-1].push(s),r=s}return n.map(i=>wc(_2(i)))}const oU=function(t){return t===void 0&&(t={}),{name:"inline",options:t,async fn(e){const{placement:n,elements:r,rects:i,platform:s,strategy:o}=e,{padding:l=2,x:a,y:c}=go(t,e),u=Array.from(await(s.getClientRects==null?void 0:s.getClientRects(r.reference))||[]),d=sU(u),h=wc(_2(u)),p=vx(l);function m(){if(d.length===2&&d[0].left>d[1].right&&a!=null&&c!=null)return d.find(v=>a>v.left-p.left&&av.top-p.top&&c=2){if(bs(n)==="y"){const L=d[0],q=d[d.length-1],X=_i(n)==="top",ye=L.top,Ce=q.bottom,Te=X?L.left:q.left,se=X?L.right:q.right,he=se-Te,J=Ce-ye;return{top:ye,bottom:Ce,left:Te,right:se,width:he,height:J,x:Te,y:ye}}const v=_i(n)==="left",y=zr(...d.map(L=>L.right)),b=Ms(...d.map(L=>L.left)),x=d.filter(L=>v?L.left===b:L.right===y),C=x[0].top,S=x[x.length-1].bottom,M=b,N=y,z=N-M,ee=S-C;return{top:C,bottom:S,left:M,right:N,width:z,height:ee,x:M,y:C}}return h}const g=await s.getElementRects({reference:{getBoundingClientRect:m},floating:r.floating,strategy:o});return i.reference.x!==g.reference.x||i.reference.y!==g.reference.y||i.reference.width!==g.reference.width||i.reference.height!==g.reference.height?{reset:{rects:g}}:{}}}},lU=new Set(["left","top"]);async function aU(t,e){const{placement:n,platform:r,elements:i}=t,s=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=_i(n),l=Zi(n),a=bs(n)==="y",c=lU.has(o)?-1:1,u=s&&a?-1:1,d=go(e,t);let{mainAxis:h,crossAxis:p,alignmentAxis:m}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&typeof m=="number"&&(p=l==="end"?m*-1:m),a?{x:p*u,y:h*c}:{x:h*c,y:p*u}}const cU=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,r;const{x:i,y:s,placement:o,middlewareData:l}=e,a=await aU(e,t);return o===((n=l.offset)==null?void 0:n.placement)&&(r=l.arrow)!=null&&r.alignmentOffset?{}:{x:i+a.x,y:s+a.y,data:{...a,placement:o}}}}},uU=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:r,placement:i,platform:s}=e,{mainAxis:o=!0,crossAxis:l=!1,limiter:a={fn:y=>{let{x:b,y:x}=y;return{x:b,y:x}}},...c}=go(t,e),u={x:n,y:r},d=await s.detectOverflow(e,c),h=bs(_i(i)),p=P2(h);let m=u[p],g=u[h];if(o){const y=p==="y"?"top":"left",b=p==="y"?"bottom":"right",x=m+d[y],C=m-d[b];m=B0(x,m,C)}if(l){const y=h==="y"?"top":"left",b=h==="y"?"bottom":"right",x=g+d[y],C=g-d[b];g=B0(x,g,C)}const v=a.fn({...e,[p]:m,[h]:g});return{...v,data:{x:v.x-n,y:v.y-r,enabled:{[p]:o,[h]:l}}}}}},dU=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){var n,r;const{placement:i,rects:s,platform:o,elements:l}=e,{apply:a=()=>{},...c}=go(t,e),u=await o.detectOverflow(e,c),d=_i(i),h=Zi(i),p=bs(i)==="y",{width:m,height:g}=s.floating;let v,y;d==="top"||d==="bottom"?(v=d,y=h===(await(o.isRTL==null?void 0:o.isRTL(l.floating))?"start":"end")?"left":"right"):(y=d,v=h==="end"?"top":"bottom");const b=g-u.top-u.bottom,x=m-u.left-u.right,C=Ms(g-u[v],b),S=Ms(m-u[y],x),M=!e.middlewareData.shift;let N=C,z=S;if((n=e.middlewareData.shift)!=null&&n.enabled.x&&(z=x),(r=e.middlewareData.shift)!=null&&r.enabled.y&&(N=b),M&&!h){const L=zr(u.left,0),q=zr(u.right,0),X=zr(u.top,0),ye=zr(u.bottom,0);p?z=m-2*(L!==0||q!==0?L+q:zr(u.left,u.right)):N=g-2*(X!==0||ye!==0?X+ye:zr(u.top,u.bottom))}await a({...e,availableWidth:z,availableHeight:N});const ee=await o.getDimensions(l.floating);return m!==ee.width||g!==ee.height?{reset:{rects:!0}}:{}}}};function fg(){return typeof window<"u"}function Lc(t){return z2(t)?(t.nodeName||"").toLowerCase():"#document"}function hi(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function yo(t){var e;return(e=(z2(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function z2(t){return fg()?t instanceof Node||t instanceof hi(t).Node:!1}function ns(t){return fg()?t instanceof Element||t instanceof hi(t).Element:!1}function Is(t){return fg()?t instanceof HTMLElement||t instanceof hi(t).HTMLElement:!1}function QC(t){return!fg()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof hi(t).ShadowRoot}const fU=new Set(["inline","contents"]);function Qd(t){const{overflow:e,overflowX:n,overflowY:r,display:i}=rs(t);return/auto|scroll|overlay|hidden|clip/.test(e+r+n)&&!fU.has(i)}const hU=new Set(["table","td","th"]);function pU(t){return hU.has(Lc(t))}const mU=[":popover-open",":modal"];function hg(t){return mU.some(e=>{try{return t.matches(e)}catch{return!1}})}const gU=["transform","translate","scale","rotate","perspective"],yU=["transform","translate","scale","rotate","perspective","filter"],vU=["paint","layout","strict","content"];function bx(t){const e=wx(),n=ns(t)?rs(t):t;return gU.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||yU.some(r=>(n.willChange||"").includes(r))||vU.some(r=>(n.contain||"").includes(r))}function bU(t){let e=ll(t);for(;Is(e)&&!xc(e);){if(bx(e))return e;if(hg(e))return null;e=ll(e)}return null}function wx(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const wU=new Set(["html","body","#document"]);function xc(t){return wU.has(Lc(t))}function rs(t){return hi(t).getComputedStyle(t)}function pg(t){return ns(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function ll(t){if(Lc(t)==="html")return t;const e=t.assignedSlot||t.parentNode||QC(t)&&t.host||yo(t);return QC(e)?e.host:e}function F2(t){const e=ll(t);return xc(e)?t.ownerDocument?t.ownerDocument.body:t.body:Is(e)&&Qd(e)?e:F2(e)}function $2(t,e,n){var r;e===void 0&&(e=[]);const i=F2(t),s=i===((r=t.ownerDocument)==null?void 0:r.body),o=hi(i);return s?(U0(o),e.concat(o,o.visualViewport||[],Qd(i)?i:[],[])):e.concat(i,$2(i,[]))}function U0(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function B2(t){const e=rs(t);let n=parseFloat(e.width)||0,r=parseFloat(e.height)||0;const i=Is(t),s=i?t.offsetWidth:n,o=i?t.offsetHeight:r,l=Rp(n)!==s||Rp(r)!==o;return l&&(n=s,r=o),{width:n,height:r,$:l}}function U2(t){return ns(t)?t:t.contextElement}function Xa(t){const e=U2(t);if(!Is(e))return Cs(1);const n=e.getBoundingClientRect(),{width:r,height:i,$:s}=B2(e);let o=(s?Rp(n.width):n.width)/r,l=(s?Rp(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!l||!Number.isFinite(l))&&(l=1),{x:o,y:l}}const xU=Cs(0);function H2(t){const e=hi(t);return!wx()||!e.visualViewport?xU:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function kU(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==hi(t)?!1:e}function kd(t,e,n,r){e===void 0&&(e=!1),n===void 0&&(n=!1);const i=t.getBoundingClientRect(),s=U2(t);let o=Cs(1);e&&(r?ns(r)&&(o=Xa(r)):o=Xa(t));const l=kU(s,n,r)?H2(s):Cs(0);let a=(i.left+l.x)/o.x,c=(i.top+l.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(s){const h=hi(s),p=r&&ns(r)?hi(r):r;let m=h,g=U0(m);for(;g&&r&&p!==m;){const v=Xa(g),y=g.getBoundingClientRect(),b=rs(g),x=y.left+(g.clientLeft+parseFloat(b.paddingLeft))*v.x,C=y.top+(g.clientTop+parseFloat(b.paddingTop))*v.y;a*=v.x,c*=v.y,u*=v.x,d*=v.y,a+=x,c+=C,m=hi(g),g=U0(m)}}return wc({width:u,height:d,x:a,y:c})}function mg(t,e){const n=pg(t).scrollLeft;return e?e.left+n:kd(yo(t)).left+n}function V2(t,e){const n=t.getBoundingClientRect(),r=n.left+e.scrollLeft-mg(t,n),i=n.top+e.scrollTop;return{x:r,y:i}}function SU(t){let{elements:e,rect:n,offsetParent:r,strategy:i}=t;const s=i==="fixed",o=yo(r),l=e?hg(e.floating):!1;if(r===o||l&&s)return n;let a={scrollLeft:0,scrollTop:0},c=Cs(1);const u=Cs(0),d=Is(r);if((d||!d&&!s)&&((Lc(r)!=="body"||Qd(o))&&(a=pg(r)),Is(r))){const p=kd(r);c=Xa(r),u.x=p.x+r.clientLeft,u.y=p.y+r.clientTop}const h=o&&!d&&!s?V2(o,a):Cs(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-a.scrollLeft*c.x+u.x+h.x,y:n.y*c.y-a.scrollTop*c.y+u.y+h.y}}function CU(t){return Array.from(t.getClientRects())}function EU(t){const e=yo(t),n=pg(t),r=t.ownerDocument.body,i=zr(e.scrollWidth,e.clientWidth,r.scrollWidth,r.clientWidth),s=zr(e.scrollHeight,e.clientHeight,r.scrollHeight,r.clientHeight);let o=-n.scrollLeft+mg(t);const l=-n.scrollTop;return rs(r).direction==="rtl"&&(o+=zr(e.clientWidth,r.clientWidth)-i),{width:i,height:s,x:o,y:l}}const ZC=25;function NU(t,e){const n=hi(t),r=yo(t),i=n.visualViewport;let s=r.clientWidth,o=r.clientHeight,l=0,a=0;if(i){s=i.width,o=i.height;const u=wx();(!u||u&&e==="fixed")&&(l=i.offsetLeft,a=i.offsetTop)}const c=mg(r);if(c<=0){const u=r.ownerDocument,d=u.body,h=getComputedStyle(d),p=u.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,m=Math.abs(r.clientWidth-d.clientWidth-p);m<=ZC&&(s-=m)}else c<=ZC&&(s+=c);return{width:s,height:o,x:l,y:a}}const TU=new Set(["absolute","fixed"]);function AU(t,e){const n=kd(t,!0,e==="fixed"),r=n.top+t.clientTop,i=n.left+t.clientLeft,s=Is(t)?Xa(t):Cs(1),o=t.clientWidth*s.x,l=t.clientHeight*s.y,a=i*s.x,c=r*s.y;return{width:o,height:l,x:a,y:c}}function eE(t,e,n){let r;if(e==="viewport")r=NU(t,n);else if(e==="document")r=EU(yo(t));else if(ns(e))r=AU(e,n);else{const i=H2(t);r={x:e.x-i.x,y:e.y-i.y,width:e.width,height:e.height}}return wc(r)}function W2(t,e){const n=ll(t);return n===e||!ns(n)||xc(n)?!1:rs(n).position==="fixed"||W2(n,e)}function MU(t,e){const n=e.get(t);if(n)return n;let r=$2(t,[]).filter(l=>ns(l)&&Lc(l)!=="body"),i=null;const s=rs(t).position==="fixed";let o=s?ll(t):t;for(;ns(o)&&!xc(o);){const l=rs(o),a=bx(o);!a&&l.position==="fixed"&&(i=null),(s?!a&&!i:!a&&l.position==="static"&&!!i&&TU.has(i.position)||Qd(o)&&!a&&W2(t,o))?r=r.filter(u=>u!==o):i=l,o=ll(o)}return e.set(t,r),r}function IU(t){let{element:e,boundary:n,rootBoundary:r,strategy:i}=t;const o=[...n==="clippingAncestors"?hg(e)?[]:MU(e,this._c):[].concat(n),r],l=o[0],a=o.reduce((c,u)=>{const d=eE(e,u,i);return c.top=zr(d.top,c.top),c.right=Ms(d.right,c.right),c.bottom=Ms(d.bottom,c.bottom),c.left=zr(d.left,c.left),c},eE(e,l,i));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}}function RU(t){const{width:e,height:n}=B2(t);return{width:e,height:n}}function DU(t,e,n){const r=Is(e),i=yo(e),s=n==="fixed",o=kd(t,!0,s,e);let l={scrollLeft:0,scrollTop:0};const a=Cs(0);function c(){a.x=mg(i)}if(r||!r&&!s)if((Lc(e)!=="body"||Qd(i))&&(l=pg(e)),r){const p=kd(e,!0,s,e);a.x=p.x+e.clientLeft,a.y=p.y+e.clientTop}else i&&c();s&&!r&&i&&c();const u=i&&!r&&!s?V2(i,l):Cs(0),d=o.left+l.scrollLeft-a.x-u.x,h=o.top+l.scrollTop-a.y-u.y;return{x:d,y:h,width:o.width,height:o.height}}function Hy(t){return rs(t).position==="static"}function tE(t,e){if(!Is(t)||rs(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return yo(t)===n&&(n=n.ownerDocument.body),n}function K2(t,e){const n=hi(t);if(hg(t))return n;if(!Is(t)){let i=ll(t);for(;i&&!xc(i);){if(ns(i)&&!Hy(i))return i;i=ll(i)}return n}let r=tE(t,e);for(;r&&pU(r)&&Hy(r);)r=tE(r,e);return r&&xc(r)&&Hy(r)&&!bx(r)?n:r||bU(t)||n}const OU=async function(t){const e=this.getOffsetParent||K2,n=this.getDimensions,r=await n(t.floating);return{reference:DU(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function jU(t){return rs(t).direction==="rtl"}const PU={convertOffsetParentRelativeRectToViewportRelativeRect:SU,getDocumentElement:yo,getClippingRect:IU,getOffsetParent:K2,getElementRects:OU,getClientRects:CU,getDimensions:RU,getScale:Xa,isElement:ns,isRTL:jU},Y2=cU,q2=nU,J2=uU,G2=rU,X2=dU,Q2=iU,Z2=eU,eR=oU,tR=(t,e,n)=>{const r=new Map,i={platform:PU,...n},s={...i.platform,_c:r};return Z6(t,e,{...i,platform:s})};let H0,V0;if(typeof WeakMap<"u"){let t=new WeakMap;H0=e=>t.get(e),V0=(e,n)=>(t.set(e,n),n)}else{const t=[];let n=0;H0=r=>{for(let i=0;i(n==10&&(n=0),t[n++]=r,t[n++]=i)}var Ws=class{constructor(t,e,n,r){this.width=t,this.height=e,this.map=n,this.problems=r}findCell(t){for(let e=0;e=n){(s||(s=[])).push({type:"overlong_rowspan",pos:u,n:y-x});break}const C=i+x*e;for(let S=0;Sr&&(s+=c.attrs.colspan)}}for(let o=0;o1&&(n=!0)}e==-1?e=s:e!=s&&(e=Math.max(e,s))}return e}function zU(t,e,n){t.problems||(t.problems=[]);const r={};for(let i=0;i0;e--)if(t.node(e).type.spec.tableRole=="row")return t.node(0).resolve(t.before(e+1));return null}function nR(t){const e=t.selection.$head;for(let n=e.depth;n>0;n--)if(e.node(n).type.spec.tableRole=="row")return!0;return!1}function BU(t){const e=t.selection;if("$anchorCell"in e&&e.$anchorCell)return e.$anchorCell.pos>e.$headCell.pos?e.$anchorCell:e.$headCell;if("node"in e&&e.node&&e.node.type.spec.tableRole=="cell")return e.$anchor;const n=$U(e.$head)||UU(e.$head);if(n)return n;throw new RangeError(`No cell found around position ${e.head}`)}function UU(t){for(let e=t.nodeAfter,n=t.pos;e;e=e.firstChild,n++){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return t.doc.resolve(n)}for(let e=t.nodeBefore,n=t.pos;e;e=e.lastChild,n--){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return t.doc.resolve(n-e.nodeSize)}}function nE(t){return t.parent.type.spec.tableRole=="row"&&!!t.nodeAfter}function rR(t,e){return t.depth==e.depth&&t.pos>=e.start(-1)&&t.pos<=e.end(-1)}function iR(t,e,n){const r=t.node(-1),i=Ws.get(r),s=t.start(-1),o=i.nextCell(t.pos-s,e,n);return o==null?null:t.node(0).resolve(s+o)}function rE(t,e,n=1){const r={...t,colspan:t.colspan-n};return r.colwidth&&(r.colwidth=r.colwidth.slice(),r.colwidth.splice(e,n),r.colwidth.some(i=>i>0)||(r.colwidth=null)),r}var Es=class $s extends Nt{constructor(e,n=e){const r=e.node(-1),i=Ws.get(r),s=e.start(-1),o=i.rectBetween(e.pos-s,n.pos-s),l=e.node(0),a=i.cellsInRect(o).filter(u=>u!=n.pos-s);a.unshift(n.pos-s);const c=a.map(u=>{const d=r.nodeAt(u);if(!d)throw new RangeError(`No cell with offset ${u} found`);const h=s+u+1;return new nI(l.resolve(h),l.resolve(h+d.content.size))});super(c[0].$from,c[0].$to,c),this.$anchorCell=e,this.$headCell=n}map(e,n){const r=e.resolve(n.map(this.$anchorCell.pos)),i=e.resolve(n.map(this.$headCell.pos));if(nE(r)&&nE(i)&&rR(r,i)){const s=this.$anchorCell.node(-1)!=r.node(-1);return s&&this.isRowSelection()?$s.rowSelection(r,i):s&&this.isColSelection()?$s.colSelection(r,i):new $s(r,i)}return xt.between(r,i)}content(){const e=this.$anchorCell.node(-1),n=Ws.get(e),r=this.$anchorCell.start(-1),i=n.rectBetween(this.$anchorCell.pos-r,this.$headCell.pos-r),s={},o=[];for(let a=i.top;a0||v>0){let y=m.attrs;if(g>0&&(y=rE(y,0,g)),v>0&&(y=rE(y,y.colspan-v,v)),p.lefti.bottom){const y={...m.attrs,rowspan:Math.min(p.bottom,i.bottom)-Math.max(p.top,i.top)};p.top0)return!1;const r=e+this.$anchorCell.nodeAfter.attrs.rowspan,i=n+this.$headCell.nodeAfter.attrs.rowspan;return Math.max(r,i)==this.$headCell.node(-1).childCount}static colSelection(e,n=e){const r=e.node(-1),i=Ws.get(r),s=e.start(-1),o=i.findCell(e.pos-s),l=i.findCell(n.pos-s),a=e.node(0);return o.top<=l.top?(o.top>0&&(e=a.resolve(s+i.map[o.left])),l.bottom0&&(n=a.resolve(s+i.map[l.left])),o.bottom0)return!1;const o=i+this.$anchorCell.nodeAfter.attrs.colspan,l=s+this.$headCell.nodeAfter.attrs.colspan;return Math.max(o,l)==n.width}eq(e){return e instanceof $s&&e.$anchorCell.pos==this.$anchorCell.pos&&e.$headCell.pos==this.$headCell.pos}static rowSelection(e,n=e){const r=e.node(-1),i=Ws.get(r),s=e.start(-1),o=i.findCell(e.pos-s),l=i.findCell(n.pos-s),a=e.node(0);return o.left<=l.left?(o.left>0&&(e=a.resolve(s+i.map[o.top*i.width])),l.right0&&(n=a.resolve(s+i.map[l.top*i.width])),o.righti.table.nodeAt(a));for(let a=0;a{const p=h+s.tableStart,m=o.doc.nodeAt(p);m&&o.setNodeMarkup(p,d,m.attrs)}),r(o)}return!0}}kx("row",{useDeprecatedLogic:!0});kx("column",{useDeprecatedLogic:!0});kx("cell",{useDeprecatedLogic:!0});function Gf(t,e){const n=t.selection;if(!(n instanceof Es))return!1;if(e){const r=t.tr,i=xx(t.schema).cell.createAndFill().content;n.forEachCell((s,o)=>{s.content.eq(i)||r.replace(r.mapping.map(o+1),r.mapping.map(o+s.nodeSize-1),new _e(i,0,0))}),r.docChanged&&e(r)}return!0}nx({ArrowLeft:Xf("horiz",-1),ArrowRight:Xf("horiz",1),ArrowUp:Xf("vert",-1),ArrowDown:Xf("vert",1),"Shift-ArrowLeft":Qf("horiz",-1),"Shift-ArrowRight":Qf("horiz",1),"Shift-ArrowUp":Qf("vert",-1),"Shift-ArrowDown":Qf("vert",1),Backspace:Gf,"Mod-Backspace":Gf,Delete:Gf,"Mod-Delete":Gf});function Nh(t,e,n){return n.eq(t.selection)?!1:(e&&e(t.tr.setSelection(n).scrollIntoView()),!0)}function Xf(t,e){return(n,r,i)=>{if(!i)return!1;const s=n.selection;if(s instanceof Es)return Nh(n,r,Nt.near(s.$headCell,e));if(t!="horiz"&&!s.empty)return!1;const o=lR(i,t,e);if(o==null)return!1;if(t=="horiz")return Nh(n,r,Nt.near(n.doc.resolve(s.head+e),e));{const l=n.doc.resolve(o),a=iR(l,t,e);let c;return a?c=Nt.near(a,1):e<0?c=Nt.near(n.doc.resolve(l.before(-1)),-1):c=Nt.near(n.doc.resolve(l.after(-1)),1),Nh(n,r,c)}}}function Qf(t,e){return(n,r,i)=>{if(!i)return!1;const s=n.selection;let o;if(s instanceof Es)o=s;else{const a=lR(i,t,e);if(a==null)return!1;o=new Es(n.doc.resolve(a))}const l=iR(o.$headCell,t,e);return l?Nh(n,r,new Es(o.$anchorCell,l)):!1}}function lR(t,e,n){if(!(t.state.selection instanceof xt))return null;const{$head:r}=t.state.selection;for(let i=r.depth-1;i>=0;i--){const s=r.node(i);if((n<0?r.index(i):r.indexAfter(i))!=(n<0?0:s.childCount))return null;if(s.type.spec.tableRole=="cell"||s.type.spec.tableRole=="header_cell"){const o=r.before(i),l=e=="vert"?n>0?"down":"up":n>0?"right":"left";return t.endOfTextblock(l)?o:null}}return null}new pn("tableColumnResizing");function WU(t,e){const n=Math.min(t.top,e.top),r=Math.max(t.bottom,e.bottom),i=Math.min(t.left,e.left),o=Math.max(t.right,e.right)-i,l=r-n,a=i,c=n;return new DOMRect(a,c,o,l)}var KU=class{constructor({editor:t,element:e,view:n,updateDelay:r=250,resizeDelay:i=60,shouldShow:s,appendTo:o,getReferencedVirtualElement:l,options:a}){this.preventHide=!1,this.isVisible=!1,this.scrollTarget=window,this.floatingUIOptions={strategy:"absolute",placement:"top",offset:8,flip:{},shift:{},arrow:!1,size:!1,autoPlacement:!1,hide:!1,inline:!1,onShow:void 0,onHide:void 0,onUpdate:void 0,onDestroy:void 0},this.shouldShow=({view:u,state:d,from:h,to:p})=>{const{doc:m,selection:g}=d,{empty:v}=g,y=!m.textBetween(h,p).length&&ox(d.selection),b=this.element.contains(document.activeElement);return!(!(u.hasFocus()||b)||v||y||!this.editor.isEditable)},this.mousedownHandler=()=>{this.preventHide=!0},this.dragstartHandler=()=>{this.hide()},this.resizeHandler=()=>{this.resizeDebounceTimer&&clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=window.setTimeout(()=>{this.updatePosition()},this.resizeDelay)},this.focusHandler=()=>{setTimeout(()=>this.update(this.editor.view))},this.blurHandler=({event:u})=>{var d;if(this.editor.isDestroyed){this.destroy();return}if(this.preventHide){this.preventHide=!1;return}u!=null&&u.relatedTarget&&((d=this.element.parentNode)!=null&&d.contains(u.relatedTarget))||(u==null?void 0:u.relatedTarget)!==this.editor.view.dom&&this.hide()},this.handleDebouncedUpdate=(u,d)=>{const h=!(d!=null&&d.selection.eq(u.state.selection)),p=!(d!=null&&d.doc.eq(u.state.doc));!h&&!p||(this.updateDebounceTimer&&clearTimeout(this.updateDebounceTimer),this.updateDebounceTimer=window.setTimeout(()=>{this.updateHandler(u,h,p,d)},this.updateDelay))},this.updateHandler=(u,d,h,p)=>{const{composing:m}=u;if(m||!d&&!h)return;if(!this.getShouldShow(p)){this.hide();return}this.updatePosition(),this.show()},this.transactionHandler=({transaction:u})=>{const d=u.getMeta("bubbleMenu");d==="updatePosition"?this.updatePosition():d&&typeof d=="object"&&d.type==="updateOptions"&&this.updateOptions(d.options)};var c;this.editor=t,this.element=e,this.view=n,this.updateDelay=r,this.resizeDelay=i,this.appendTo=o,this.scrollTarget=(c=a==null?void 0:a.scrollTarget)!=null?c:window,this.getReferencedVirtualElement=l,this.floatingUIOptions={...this.floatingUIOptions,...a},this.element.tabIndex=0,s&&(this.shouldShow=s),this.element.addEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.view.dom.addEventListener("dragstart",this.dragstartHandler),this.editor.on("focus",this.focusHandler),this.editor.on("blur",this.blurHandler),this.editor.on("transaction",this.transactionHandler),window.addEventListener("resize",this.resizeHandler),this.scrollTarget.addEventListener("scroll",this.resizeHandler),this.update(n,n.state),this.getShouldShow()&&(this.show(),this.updatePosition())}get middlewares(){const t=[];return this.floatingUIOptions.flip&&t.push(G2(typeof this.floatingUIOptions.flip!="boolean"?this.floatingUIOptions.flip:void 0)),this.floatingUIOptions.shift&&t.push(J2(typeof this.floatingUIOptions.shift!="boolean"?this.floatingUIOptions.shift:void 0)),this.floatingUIOptions.offset&&t.push(Y2(typeof this.floatingUIOptions.offset!="boolean"?this.floatingUIOptions.offset:void 0)),this.floatingUIOptions.arrow&&t.push(Z2(this.floatingUIOptions.arrow)),this.floatingUIOptions.size&&t.push(X2(typeof this.floatingUIOptions.size!="boolean"?this.floatingUIOptions.size:void 0)),this.floatingUIOptions.autoPlacement&&t.push(q2(typeof this.floatingUIOptions.autoPlacement!="boolean"?this.floatingUIOptions.autoPlacement:void 0)),this.floatingUIOptions.hide&&t.push(Q2(typeof this.floatingUIOptions.hide!="boolean"?this.floatingUIOptions.hide:void 0)),this.floatingUIOptions.inline&&t.push(eR(typeof this.floatingUIOptions.inline!="boolean"?this.floatingUIOptions.inline:void 0)),t}get virtualElement(){var t,e,n;const{selection:r}=this.editor.state,i=(t=this.getReferencedVirtualElement)==null?void 0:t.call(this);if(i)return i;if(!((n=(e=this.view)==null?void 0:e.dom)!=null&&n.parentNode))return;const s=m2(this.view,r.from,r.to);let o={getBoundingClientRect:()=>s,getClientRects:()=>[s]};if(r instanceof dt){let l=this.view.nodeDOM(r.from);const a=l.dataset.nodeViewWrapper?l:l.querySelector("[data-node-view-wrapper]");a&&(l=a),l&&(o={getBoundingClientRect:()=>l.getBoundingClientRect(),getClientRects:()=>[l.getBoundingClientRect()]})}if(r instanceof Es){const{$anchorCell:l,$headCell:a}=r,c=l?l.pos:a.pos,u=a?a.pos:l.pos,d=this.view.nodeDOM(c),h=this.view.nodeDOM(u);if(!d||!h)return;const p=d===h?d.getBoundingClientRect():WU(d.getBoundingClientRect(),h.getBoundingClientRect());o={getBoundingClientRect:()=>p,getClientRects:()=>[p]}}return o}updatePosition(){const t=this.virtualElement;t&&tR(t,this.element,{placement:this.floatingUIOptions.placement,strategy:this.floatingUIOptions.strategy,middleware:this.middlewares}).then(({x:e,y:n,strategy:r,middlewareData:i})=>{var s,o;if((s=i.hide)!=null&&s.referenceHidden||(o=i.hide)!=null&&o.escaped){this.element.style.visibility="hidden";return}this.element.style.visibility="visible",this.element.style.width="max-content",this.element.style.position=r,this.element.style.left=`${e}px`,this.element.style.top=`${n}px`,this.isVisible&&this.floatingUIOptions.onUpdate&&this.floatingUIOptions.onUpdate()})}update(t,e){const{state:n}=t,r=n.selection.from!==n.selection.to;if(this.updateDelay>0&&r){this.handleDebouncedUpdate(t,e);return}const i=!(e!=null&&e.selection.eq(t.state.selection)),s=!(e!=null&&e.doc.eq(t.state.doc));this.updateHandler(t,i,s,e)}getShouldShow(t){var e;const{state:n}=this.view,{selection:r}=n,{ranges:i}=r,s=Math.min(...i.map(a=>a.$from.pos)),o=Math.max(...i.map(a=>a.$to.pos));return((e=this.shouldShow)==null?void 0:e.call(this,{editor:this.editor,element:this.element,view:this.view,state:n,oldState:t,from:s,to:o}))||!1}show(){var t;if(this.isVisible)return;this.element.style.visibility="visible",this.element.style.opacity="1";const e=typeof this.appendTo=="function"?this.appendTo():this.appendTo;(t=e??this.view.dom.parentElement)==null||t.appendChild(this.element),this.floatingUIOptions.onShow&&this.floatingUIOptions.onShow(),this.isVisible=!0}hide(){this.isVisible&&(this.element.style.visibility="hidden",this.element.style.opacity="0",this.element.remove(),this.floatingUIOptions.onHide&&this.floatingUIOptions.onHide(),this.isVisible=!1)}updateOptions(t){var e;if(t.updateDelay!==void 0&&(this.updateDelay=t.updateDelay),t.resizeDelay!==void 0&&(this.resizeDelay=t.resizeDelay),t.appendTo!==void 0&&(this.appendTo=t.appendTo),t.getReferencedVirtualElement!==void 0&&(this.getReferencedVirtualElement=t.getReferencedVirtualElement),t.shouldShow!==void 0&&t.shouldShow&&(this.shouldShow=t.shouldShow),t.options!==void 0){const n=(e=t.options.scrollTarget)!=null?e:window;n!==this.scrollTarget&&(this.scrollTarget.removeEventListener("scroll",this.resizeHandler),this.scrollTarget=n,this.scrollTarget.addEventListener("scroll",this.resizeHandler)),this.floatingUIOptions={...this.floatingUIOptions,...t.options}}}destroy(){this.hide(),this.element.removeEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.view.dom.removeEventListener("dragstart",this.dragstartHandler),window.removeEventListener("resize",this.resizeHandler),this.scrollTarget.removeEventListener("scroll",this.resizeHandler),this.editor.off("focus",this.focusHandler),this.editor.off("blur",this.blurHandler),this.editor.off("transaction",this.transactionHandler),this.floatingUIOptions.onDestroy&&this.floatingUIOptions.onDestroy()}},aR=t=>new hn({key:typeof t.pluginKey=="string"?new pn(t.pluginKey):t.pluginKey,view:e=>new KU({view:e,...t})});mn.create({name:"bubbleMenu",addOptions(){return{element:null,pluginKey:"bubbleMenu",updateDelay:void 0,appendTo:void 0,shouldShow:null}},addProseMirrorPlugins(){return this.options.element?[aR({pluginKey:this.options.pluginKey,editor:this.editor,element:this.options.element,updateDelay:this.options.updateDelay,options:this.options.options,appendTo:this.options.appendTo,getReferencedVirtualElement:this.options.getReferencedVirtualElement,shouldShow:this.options.shouldShow})]:[]}});var YU=class{constructor({editor:t,element:e,view:n,updateDelay:r=250,resizeDelay:i=60,options:s,appendTo:o,shouldShow:l}){this.preventHide=!1,this.isVisible=!1,this.scrollTarget=window,this.shouldShow=({view:c,state:u})=>{const{selection:d}=u,{$anchor:h,empty:p}=d,m=h.depth===1,g=h.parent.isTextblock&&!h.parent.type.spec.code&&!h.parent.textContent&&h.parent.childCount===0&&!this.getTextContent(h.parent);return!(!c.hasFocus()||!p||!m||!g||!this.editor.isEditable)},this.floatingUIOptions={strategy:"absolute",placement:"right",offset:8,flip:{},shift:{},arrow:!1,size:!1,autoPlacement:!1,hide:!1,inline:!1},this.updateHandler=(c,u,d,h)=>{const{composing:p}=c;if(p||!u&&!d)return;if(!this.getShouldShow(h)){this.hide();return}this.updatePosition(),this.show()},this.mousedownHandler=()=>{this.preventHide=!0},this.focusHandler=()=>{setTimeout(()=>this.update(this.editor.view))},this.blurHandler=({event:c})=>{var u;if(this.preventHide){this.preventHide=!1;return}c!=null&&c.relatedTarget&&((u=this.element.parentNode)!=null&&u.contains(c.relatedTarget))||(c==null?void 0:c.relatedTarget)!==this.editor.view.dom&&this.hide()},this.transactionHandler=({transaction:c})=>{const u=c.getMeta("floatingMenu");u==="updatePosition"?this.updatePosition():u&&typeof u=="object"&&u.type==="updateOptions"&&this.updateOptions(u.options)},this.resizeHandler=()=>{this.resizeDebounceTimer&&clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=window.setTimeout(()=>{this.updatePosition()},this.resizeDelay)};var a;this.editor=t,this.element=e,this.view=n,this.updateDelay=r,this.resizeDelay=i,this.appendTo=o,this.scrollTarget=(a=s==null?void 0:s.scrollTarget)!=null?a:window,this.floatingUIOptions={...this.floatingUIOptions,...s},this.element.tabIndex=0,l&&(this.shouldShow=l),this.element.addEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.editor.on("focus",this.focusHandler),this.editor.on("blur",this.blurHandler),this.editor.on("transaction",this.transactionHandler),window.addEventListener("resize",this.resizeHandler),this.scrollTarget.addEventListener("scroll",this.resizeHandler),this.update(n,n.state),this.getShouldShow()&&(this.show(),this.updatePosition())}getTextContent(t){return c2(t,{textSerializers:cx(this.editor.schema)})}get middlewares(){const t=[];return this.floatingUIOptions.flip&&t.push(G2(typeof this.floatingUIOptions.flip!="boolean"?this.floatingUIOptions.flip:void 0)),this.floatingUIOptions.shift&&t.push(J2(typeof this.floatingUIOptions.shift!="boolean"?this.floatingUIOptions.shift:void 0)),this.floatingUIOptions.offset&&t.push(Y2(typeof this.floatingUIOptions.offset!="boolean"?this.floatingUIOptions.offset:void 0)),this.floatingUIOptions.arrow&&t.push(Z2(this.floatingUIOptions.arrow)),this.floatingUIOptions.size&&t.push(X2(typeof this.floatingUIOptions.size!="boolean"?this.floatingUIOptions.size:void 0)),this.floatingUIOptions.autoPlacement&&t.push(q2(typeof this.floatingUIOptions.autoPlacement!="boolean"?this.floatingUIOptions.autoPlacement:void 0)),this.floatingUIOptions.hide&&t.push(Q2(typeof this.floatingUIOptions.hide!="boolean"?this.floatingUIOptions.hide:void 0)),this.floatingUIOptions.inline&&t.push(eR(typeof this.floatingUIOptions.inline!="boolean"?this.floatingUIOptions.inline:void 0)),t}getShouldShow(t){var e;const{state:n}=this.view,{selection:r}=n,{ranges:i}=r,s=Math.min(...i.map(a=>a.$from.pos)),o=Math.max(...i.map(a=>a.$to.pos));return(e=this.shouldShow)==null?void 0:e.call(this,{editor:this.editor,view:this.view,state:n,oldState:t,from:s,to:o})}updateOptions(t){var e;if(t.updateDelay!==void 0&&(this.updateDelay=t.updateDelay),t.resizeDelay!==void 0&&(this.resizeDelay=t.resizeDelay),t.appendTo!==void 0&&(this.appendTo=t.appendTo),t.shouldShow!==void 0&&t.shouldShow&&(this.shouldShow=t.shouldShow),t.options!==void 0){const n=(e=t.options.scrollTarget)!=null?e:window;n!==this.scrollTarget&&(this.scrollTarget.removeEventListener("scroll",this.resizeHandler),this.scrollTarget=n,this.scrollTarget.addEventListener("scroll",this.resizeHandler)),this.floatingUIOptions={...this.floatingUIOptions,...t.options}}}updatePosition(){const{selection:t}=this.editor.state,e=m2(this.view,t.from,t.to);tR({getBoundingClientRect:()=>e,getClientRects:()=>[e]},this.element,{placement:this.floatingUIOptions.placement,strategy:this.floatingUIOptions.strategy,middleware:this.middlewares}).then(({x:r,y:i,strategy:s,middlewareData:o})=>{var l,a;if((l=o.hide)!=null&&l.referenceHidden||(a=o.hide)!=null&&a.escaped){this.element.style.visibility="hidden";return}this.element.style.visibility="visible",this.element.style.width="max-content",this.element.style.position=s,this.element.style.left=`${r}px`,this.element.style.top=`${i}px`,this.isVisible&&this.floatingUIOptions.onUpdate&&this.floatingUIOptions.onUpdate()})}update(t,e){const n=!(e!=null&&e.selection.eq(t.state.selection)),r=!(e!=null&&e.doc.eq(t.state.doc));this.updateHandler(t,n,r,e)}show(){var t;if(this.isVisible)return;this.element.style.visibility="visible",this.element.style.opacity="1";const e=typeof this.appendTo=="function"?this.appendTo():this.appendTo;(t=e??this.view.dom.parentElement)==null||t.appendChild(this.element),this.floatingUIOptions.onShow&&this.floatingUIOptions.onShow(),this.isVisible=!0}hide(){this.isVisible&&(this.element.style.visibility="hidden",this.element.style.opacity="0",this.element.remove(),this.floatingUIOptions.onHide&&this.floatingUIOptions.onHide(),this.isVisible=!1)}destroy(){this.hide(),this.element.removeEventListener("mousedown",this.mousedownHandler,{capture:!0}),window.removeEventListener("resize",this.resizeHandler),this.scrollTarget.removeEventListener("scroll",this.resizeHandler),this.editor.off("focus",this.focusHandler),this.editor.off("blur",this.blurHandler),this.editor.off("transaction",this.transactionHandler),this.floatingUIOptions.onDestroy&&this.floatingUIOptions.onDestroy()}},cR=t=>new hn({key:typeof t.pluginKey=="string"?new pn(t.pluginKey):t.pluginKey,view:e=>new YU({view:e,...t})});mn.create({name:"floatingMenu",addOptions(){return{element:null,options:{},pluginKey:"floatingMenu",updateDelay:void 0,resizeDelay:void 0,appendTo:void 0,shouldShow:null}},addCommands(){return{updateFloatingMenuPosition:()=>({tr:t,dispatch:e})=>(e&&t.setMeta("floatingMenu","updatePosition"),!0)}},addProseMirrorPlugins(){return this.options.element?[cR({pluginKey:this.options.pluginKey,editor:this.editor,element:this.options.element,updateDelay:this.options.updateDelay,resizeDelay:this.options.resizeDelay,options:this.options.options,appendTo:this.options.appendTo,shouldShow:this.options.shouldShow})]:[]}});var qU=(...t)=>e=>{t.forEach(n=>{typeof n=="function"?n(e):n&&(n.current=e)})},JU=({contentComponent:t})=>{const e=_w.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getServerSnapshot);return f.jsx(f.Fragment,{children:Object.values(e)})};function GU(){const t=new Set;let e={};return{subscribe(n){return t.add(n),()=>{t.delete(n)}},getSnapshot(){return e},getServerSnapshot(){return e},setRenderer(n,r){e={...e,[n]:m_.createPortal(r.reactElement,r.element,n)},t.forEach(i=>i())},removeRenderer(n){const r={...e};delete r[n],e=r,t.forEach(i=>i())}}}var XU=class extends B.Component{constructor(t){var e;super(t),this.editorContentRef=B.createRef(),this.initialized=!1,this.state={hasContentComponentInitialized:!!((e=t.editor)!=null&&e.contentComponent)}}componentDidMount(){this.init()}componentDidUpdate(){this.init()}init(){var t;const e=this.props.editor;if(e&&!e.isDestroyed&&((t=e.view.dom)!=null&&t.parentNode)){if(e.contentComponent)return;const n=this.editorContentRef.current;n.append(...e.view.dom.parentNode.childNodes),e.setOptions({element:n}),e.contentComponent=GU(),this.state.hasContentComponentInitialized||(this.unsubscribeToContentComponent=e.contentComponent.subscribe(()=>{this.setState(r=>r.hasContentComponentInitialized?r:{hasContentComponentInitialized:!0}),this.unsubscribeToContentComponent&&this.unsubscribeToContentComponent()})),e.createNodeViews(),this.initialized=!0}}componentWillUnmount(){var t;const e=this.props.editor;if(e){this.initialized=!1,e.isDestroyed||e.view.setProps({nodeViews:{}}),this.unsubscribeToContentComponent&&this.unsubscribeToContentComponent(),e.contentComponent=null;try{if(!((t=e.view.dom)!=null&&t.parentNode))return;const n=document.createElement("div");n.append(...e.view.dom.parentNode.childNodes),e.setOptions({element:n})}catch{}}}render(){const{editor:t,innerRef:e,...n}=this.props;return f.jsxs(f.Fragment,{children:[f.jsx("div",{ref:qU(e,this.editorContentRef),...n}),(t==null?void 0:t.contentComponent)&&f.jsx(JU,{contentComponent:t.contentComponent})]})}},QU=w.forwardRef((t,e)=>{const n=B.useMemo(()=>Math.floor(Math.random()*4294967295).toString(),[t.editor]);return B.createElement(XU,{key:n,innerRef:e,...t})}),Zd=B.memo(QU),ZU=typeof window<"u"?w.useLayoutEffect:w.useEffect,e8=class{constructor(t){this.transactionNumber=0,this.lastTransactionNumber=0,this.subscribers=new Set,this.editor=t,this.lastSnapshot={editor:t,transactionNumber:0},this.getSnapshot=this.getSnapshot.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.watch=this.watch.bind(this),this.subscribe=this.subscribe.bind(this)}getSnapshot(){return this.transactionNumber===this.lastTransactionNumber?this.lastSnapshot:(this.lastTransactionNumber=this.transactionNumber,this.lastSnapshot={editor:this.editor,transactionNumber:this.transactionNumber},this.lastSnapshot)}getServerSnapshot(){return{editor:null,transactionNumber:0}}subscribe(t){return this.subscribers.add(t),()=>{this.subscribers.delete(t)}}watch(t){if(this.editor=t,this.editor){const e=()=>{this.transactionNumber+=1,this.subscribers.forEach(r=>r())},n=this.editor;return n.on("transaction",e),()=>{n.off("transaction",e)}}}};function t8(t){var e;const[n]=w.useState(()=>new e8(t.editor)),r=U6.useSyncExternalStoreWithSelector(n.subscribe,n.getSnapshot,n.getServerSnapshot,t.selector,(e=t.equalityFn)!=null?e:O6);return ZU(()=>n.watch(t.editor),[t.editor,n]),w.useDebugValue(r),r}var n8=!1,W0=typeof window>"u",r8=W0||!!(typeof window<"u"&&window.next),i8=class uR{constructor(e){this.editor=null,this.subscriptions=new Set,this.isComponentMounted=!1,this.previousDeps=null,this.instanceId="",this.options=e,this.subscriptions=new Set,this.setEditor(this.getInitialEditor()),this.scheduleDestroy(),this.getEditor=this.getEditor.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.subscribe=this.subscribe.bind(this),this.refreshEditorInstance=this.refreshEditorInstance.bind(this),this.scheduleDestroy=this.scheduleDestroy.bind(this),this.onRender=this.onRender.bind(this),this.createEditor=this.createEditor.bind(this)}setEditor(e){this.editor=e,this.instanceId=Math.random().toString(36).slice(2,9),this.subscriptions.forEach(n=>n())}getInitialEditor(){return this.options.current.immediatelyRender===void 0?W0||r8?null:this.createEditor():(this.options.current.immediatelyRender,this.options.current.immediatelyRender?this.createEditor():null)}createEditor(){const e={...this.options.current,onBeforeCreate:(...r)=>{var i,s;return(s=(i=this.options.current).onBeforeCreate)==null?void 0:s.call(i,...r)},onBlur:(...r)=>{var i,s;return(s=(i=this.options.current).onBlur)==null?void 0:s.call(i,...r)},onCreate:(...r)=>{var i,s;return(s=(i=this.options.current).onCreate)==null?void 0:s.call(i,...r)},onDestroy:(...r)=>{var i,s;return(s=(i=this.options.current).onDestroy)==null?void 0:s.call(i,...r)},onFocus:(...r)=>{var i,s;return(s=(i=this.options.current).onFocus)==null?void 0:s.call(i,...r)},onSelectionUpdate:(...r)=>{var i,s;return(s=(i=this.options.current).onSelectionUpdate)==null?void 0:s.call(i,...r)},onTransaction:(...r)=>{var i,s;return(s=(i=this.options.current).onTransaction)==null?void 0:s.call(i,...r)},onUpdate:(...r)=>{var i,s;return(s=(i=this.options.current).onUpdate)==null?void 0:s.call(i,...r)},onContentError:(...r)=>{var i,s;return(s=(i=this.options.current).onContentError)==null?void 0:s.call(i,...r)},onDrop:(...r)=>{var i,s;return(s=(i=this.options.current).onDrop)==null?void 0:s.call(i,...r)},onPaste:(...r)=>{var i,s;return(s=(i=this.options.current).onPaste)==null?void 0:s.call(i,...r)},onDelete:(...r)=>{var i,s;return(s=(i=this.options.current).onDelete)==null?void 0:s.call(i,...r)}};return new ug(e)}getEditor(){return this.editor}getServerSnapshot(){return null}subscribe(e){return this.subscriptions.add(e),()=>{this.subscriptions.delete(e)}}static compareOptions(e,n){return Object.keys(e).every(r=>["onCreate","onBeforeCreate","onDestroy","onUpdate","onTransaction","onFocus","onBlur","onSelectionUpdate","onContentError","onDrop","onPaste"].includes(r)?!0:r==="extensions"&&e.extensions&&n.extensions?e.extensions.length!==n.extensions.length?!1:e.extensions.every((i,s)=>{var o;return i===((o=n.extensions)==null?void 0:o[s])}):e[r]===n[r])}onRender(e){return()=>(this.isComponentMounted=!0,clearTimeout(this.scheduledDestructionTimeout),this.editor&&!this.editor.isDestroyed&&e.length===0?uR.compareOptions(this.options.current,this.editor.options)||this.editor.setOptions({...this.options.current,editable:this.editor.isEditable}):this.refreshEditorInstance(e),()=>{this.isComponentMounted=!1,this.scheduleDestroy()})}refreshEditorInstance(e){if(this.editor&&!this.editor.isDestroyed){if(this.previousDeps===null){this.previousDeps=e;return}if(this.previousDeps.length===e.length&&this.previousDeps.every((r,i)=>r===e[i]))return}this.editor&&!this.editor.isDestroyed&&this.editor.destroy(),this.setEditor(this.createEditor()),this.previousDeps=e}scheduleDestroy(){const e=this.instanceId,n=this.editor;this.scheduledDestructionTimeout=setTimeout(()=>{if(this.isComponentMounted&&this.instanceId===e){n&&n.setOptions(this.options.current);return}n&&!n.isDestroyed&&(n.destroy(),this.instanceId===e&&this.setEditor(null))},1)}};function gg(t={},e=[]){const n=w.useRef(t);n.current=t;const[r]=w.useState(()=>new i8(n)),i=_w.useSyncExternalStore(r.subscribe,r.getEditor,r.getServerSnapshot);return w.useDebugValue(i),w.useEffect(r.onRender(e)),t8({editor:i,selector:({transactionNumber:s})=>t.shouldRerenderOnTransaction===!1||t.shouldRerenderOnTransaction===void 0?null:t.immediatelyRender&&s===0?0:s+1}),i}var Sx=w.createContext({editor:null});Sx.Consumer;var dR=()=>w.useContext(Sx),s8=w.createContext({onDragStart:()=>{},nodeViewContentChildren:void 0,nodeViewContentRef:()=>{}}),o8=()=>w.useContext(s8);B.forwardRef((t,e)=>{const{onDragStart:n}=o8(),r=t.as||"div";return f.jsx(r,{...t,ref:e,"data-node-view-wrapper":"",onDragStart:n,style:{whiteSpace:"normal",...t.style}})});B.createContext({markViewContentRef:()=>{}});var l8=B.forwardRef(({pluginKey:t="bubbleMenu",editor:e,updateDelay:n,resizeDelay:r,appendTo:i,shouldShow:s=null,getReferencedVirtualElement:o,options:l,children:a,...c},u)=>{const d=w.useRef(document.createElement("div"));typeof u=="function"?u(d.current):u&&(u.current=d.current);const{editor:h}=dR(),p=e||h,m={updateDelay:n,resizeDelay:r,appendTo:i,pluginKey:t,shouldShow:s,getReferencedVirtualElement:o,options:l},g=w.useRef(m);g.current=m;const[v,y]=w.useState(!1),b=w.useRef(!0);return w.useEffect(()=>{if(p!=null&&p.isDestroyed)return;if(!p){console.warn("BubbleMenu component is not rendered inside of an editor component or does not have editor prop.");return}const x=d.current;x.style.visibility="hidden",x.style.position="absolute";const C=aR({...g.current,editor:p,element:x});p.registerPlugin(C);const S=g.current.pluginKey;return b.current=!0,y(!0),()=>{y(!1),p.unregisterPlugin(S),window.requestAnimationFrame(()=>{x.parentNode&&x.parentNode.removeChild(x)})}},[p]),w.useEffect(()=>{if(!(!v||!p||p.isDestroyed)){if(b.current){b.current=!1;return}p.view.dispatch(p.state.tr.setMeta("bubbleMenu",{type:"updateOptions",options:g.current}))}},[v,p,n,r,s,l,i,o]),zn.createPortal(f.jsx("div",{...c,children:a}),d.current)}),a8=B.forwardRef(({pluginKey:t="floatingMenu",editor:e,updateDelay:n,resizeDelay:r,appendTo:i,shouldShow:s=null,options:o,children:l,...a},c)=>{const u=w.useRef(document.createElement("div"));typeof c=="function"?c(u.current):c&&(c.current=u.current);const{editor:d}=dR(),h=e||d,p={updateDelay:n,resizeDelay:r,appendTo:i,pluginKey:t,shouldShow:s,options:o},m=w.useRef(p);m.current=p;const[g,v]=w.useState(!1),y=w.useRef(!0);return w.useEffect(()=>{if(h!=null&&h.isDestroyed)return;if(!h){console.warn("FloatingMenu component is not rendered inside of an editor component or does not have editor prop.");return}const b=u.current;b.style.visibility="hidden",b.style.position="absolute";const x=cR({...m.current,editor:h,element:b});h.registerPlugin(x);const C=m.current.pluginKey;return y.current=!0,v(!0),()=>{v(!1),h.unregisterPlugin(C),window.requestAnimationFrame(()=>{b.parentNode&&b.parentNode.removeChild(b)})}},[h]),w.useEffect(()=>{if(!(!g||!h||h.isDestroyed)){if(y.current){y.current=!1;return}h.view.dispatch(h.state.tr.setMeta("floatingMenu",{type:"updateOptions",options:m.current}))}},[g,h,n,r,s,o,i]),zn.createPortal(f.jsx("div",{...a,children:l}),u.current)}),Cx=w.createContext({editor:null,isReady:!1});Cx.displayName="TiptapContext";var yg=()=>w.useContext(Cx);function fR({instance:t,children:e}){var n;const[r,i]=w.useState((n=t==null?void 0:t.isInitialized)!=null?n:!1);w.useEffect(()=>{if(!t){i(!1);return}if(t.isInitialized){i(!0);return}const l=()=>{i(!0)};return t.on("create",l),()=>{t.off("create",l)}},[t]);const s=w.useMemo(()=>({editor:t,isReady:r}),[t,r]),o=w.useMemo(()=>({editor:t}),[t]);return f.jsx(Sx.Provider,{value:o,children:f.jsx(Cx.Provider,{value:s,children:e})})}fR.displayName="Tiptap";function hR({...t}){const{editor:e}=yg();return f.jsx(Zd,{editor:e,...t})}hR.displayName="Tiptap.Content";function pR({children:t}){const{isReady:e}=yg();return e?null:t}pR.displayName="Tiptap.Loading";function mR({children:t,...e}){const{editor:n}=yg();return n?f.jsx(l8,{editor:n,...e,children:t}):null}mR.displayName="Tiptap.BubbleMenu";function gR({children:t,...e}){const{editor:n}=yg();return n?f.jsx(a8,{...e,editor:n,children:t}):null}gR.displayName="Tiptap.FloatingMenu";Object.assign(fR,{Content:hR,Loading:pR,BubbleMenu:mR,FloatingMenu:gR});var jp=(t,e)=>{if(t==="slot")return 0;if(t instanceof Function)return t(e);const{children:n,...r}=e??{};if(t==="svg")throw new Error("SVG elements are not supported in the JSX syntax, use the array syntax instead");return[t,r,n]},c8=/^\s*>\s$/,u8=yi.create({name:"blockquote",addOptions(){return{HTMLAttributes:{}}},content:"block+",group:"block",defining:!0,parseHTML(){return[{tag:"blockquote"}]},renderHTML({HTMLAttributes:t}){return jp("blockquote",{...Yn(this.options.HTMLAttributes,t),children:jp("slot",{})})},parseMarkdown:(t,e)=>e.createNode("blockquote",void 0,e.parseChildren(t.tokens||[])),renderMarkdown:(t,e)=>{if(!t.content)return"";const n=">",r=[];return t.content.forEach(i=>{const l=e.renderChildren([i]).split(` +`).map(a=>a.trim()===""?n:`${n} ${a}`);r.push(l.join(` +`))}),r.join(` +${n} +`)},addCommands(){return{setBlockquote:()=>({commands:t})=>t.wrapIn(this.name),toggleBlockquote:()=>({commands:t})=>t.toggleWrap(this.name),unsetBlockquote:()=>({commands:t})=>t.lift(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote()}},addInputRules(){return[bc({find:c8,type:this.type})]}}),d8=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,f8=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,h8=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,p8=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,m8=da.create({name:"bold",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"strong"},{tag:"b",getAttrs:t=>t.style.fontWeight!=="normal"&&null},{style:"font-weight=400",clearMark:t=>t.type.name===this.name},{style:"font-weight",getAttrs:t=>/^(bold(er)?|[5-9]\d{2,})$/.test(t)&&null}]},renderHTML({HTMLAttributes:t}){return jp("strong",{...Yn(this.options.HTMLAttributes,t),children:jp("slot",{})})},markdownTokenName:"strong",parseMarkdown:(t,e)=>e.applyMark("bold",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`**${e.renderChildren(t)}**`,addCommands(){return{setBold:()=>({commands:t})=>t.setMark(this.name),toggleBold:()=>({commands:t})=>t.toggleMark(this.name),unsetBold:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[vc({find:d8,type:this.type}),vc({find:h8,type:this.type})]},addPasteRules(){return[ea({find:f8,type:this.type}),ea({find:p8,type:this.type})]}}),g8=/(^|[^`])`([^`]+)`(?!`)$/,y8=/(^|[^`])`([^`]+)`(?!`)/g,v8=da.create({name:"code",addOptions(){return{HTMLAttributes:{}}},excludes:"_",code:!0,exitable:!0,parseHTML(){return[{tag:"code"}]},renderHTML({HTMLAttributes:t}){return["code",Yn(this.options.HTMLAttributes,t),0]},markdownTokenName:"codespan",parseMarkdown:(t,e)=>e.applyMark("code",[{type:"text",text:t.text||""}]),renderMarkdown:(t,e)=>t.content?`\`${e.renderChildren(t.content)}\``:"",addCommands(){return{setCode:()=>({commands:t})=>t.setMark(this.name),toggleCode:()=>({commands:t})=>t.toggleMark(this.name),unsetCode:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[vc({find:g8,type:this.type})]},addPasteRules(){return[ea({find:y8,type:this.type})]}}),Vy=4,b8=/^```([a-z]+)?[\s\n]$/,w8=/^~~~([a-z]+)?[\s\n]$/,x8=yi.create({name:"codeBlock",addOptions(){return{languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,defaultLanguage:null,enableTabIndentation:!1,tabSize:Vy,HTMLAttributes:{}}},content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:this.options.defaultLanguage,parseHTML:t=>{var e;const{languageClassPrefix:n}=this.options;if(!n)return null;const s=[...((e=t.firstElementChild)==null?void 0:e.classList)||[]].filter(o=>o.startsWith(n)).map(o=>o.replace(n,""))[0];return s||null},rendered:!1}}},parseHTML(){return[{tag:"pre",preserveWhitespace:"full"}]},renderHTML({node:t,HTMLAttributes:e}){return["pre",Yn(this.options.HTMLAttributes,e),["code",{class:t.attrs.language?this.options.languageClassPrefix+t.attrs.language:null},0]]},markdownTokenName:"code",parseMarkdown:(t,e)=>{var n;return((n=t.raw)==null?void 0:n.startsWith("```"))===!1&&t.codeBlockStyle!=="indented"?[]:e.createNode("codeBlock",{language:t.lang||null},t.text?[e.createTextNode(t.text)]:[])},renderMarkdown:(t,e)=>{var n;let r="";const i=((n=t.attrs)==null?void 0:n.language)||"";return t.content?r=[`\`\`\`${i}`,e.renderChildren(t.content),"```"].join(` +`):r=`\`\`\`${i} + +\`\`\``,r},addCommands(){return{setCodeBlock:t=>({commands:e})=>e.setNode(this.name,t),toggleCodeBlock:t=>({commands:e})=>e.toggleNode(this.name,"paragraph",t)}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{const{empty:t,$anchor:e}=this.editor.state.selection,n=e.pos===1;return!t||e.parent.type.name!==this.name?!1:n||!e.parent.textContent.length?this.editor.commands.clearNodes():!1},Tab:({editor:t})=>{var e;if(!this.options.enableTabIndentation)return!1;const n=(e=this.options.tabSize)!=null?e:Vy,{state:r}=t,{selection:i}=r,{$from:s,empty:o}=i;if(s.parent.type!==this.type)return!1;const l=" ".repeat(n);return o?t.commands.insertContent(l):t.commands.command(({tr:a})=>{const{from:c,to:u}=i,p=r.doc.textBetween(c,u,` +`,` +`).split(` +`).map(m=>l+m).join(` +`);return a.replaceWith(c,u,r.schema.text(p)),!0})},"Shift-Tab":({editor:t})=>{var e;if(!this.options.enableTabIndentation)return!1;const n=(e=this.options.tabSize)!=null?e:Vy,{state:r}=t,{selection:i}=r,{$from:s,empty:o}=i;return s.parent.type!==this.type?!1:o?t.commands.command(({tr:l})=>{var a;const{pos:c}=s,u=s.start(),d=s.end(),p=r.doc.textBetween(u,d,` +`,` +`).split(` +`);let m=0,g=0;const v=c-u;for(let M=0;M=v){m=M;break}g+=p[M].length+1}const b=((a=p[m].match(/^ */))==null?void 0:a[0])||"",x=Math.min(b.length,n);if(x===0)return!0;let C=u;for(let M=0;M{const{from:a,to:c}=i,h=r.doc.textBetween(a,c,` +`,` +`).split(` +`).map(p=>{var m;const g=((m=p.match(/^ */))==null?void 0:m[0])||"",v=Math.min(g.length,n);return p.slice(v)}).join(` +`);return l.replaceWith(a,c,r.schema.text(h)),!0})},Enter:({editor:t})=>{if(!this.options.exitOnTripleEnter)return!1;const{state:e}=t,{selection:n}=e,{$from:r,empty:i}=n;if(!i||r.parent.type!==this.type)return!1;const s=r.parentOffset===r.parent.nodeSize-2,o=r.parent.textContent.endsWith(` + +`);return!s||!o?!1:t.chain().command(({tr:l})=>(l.delete(r.pos-2,r.pos),!0)).exitCode().run()},ArrowDown:({editor:t})=>{if(!this.options.exitOnArrowDown)return!1;const{state:e}=t,{selection:n,doc:r}=e,{$from:i,empty:s}=n;if(!s||i.parent.type!==this.type||!(i.parentOffset===i.parent.nodeSize-2))return!1;const l=i.after();return l===void 0?!1:r.nodeAt(l)?t.commands.command(({tr:c})=>(c.setSelection(Nt.near(r.resolve(l))),!0)):t.commands.exitCode()}}},addInputRules(){return[F0({find:b8,type:this.type,getAttributes:t=>({language:t[1]})}),F0({find:w8,type:this.type,getAttributes:t=>({language:t[1]})})]},addProseMirrorPlugins(){return[new hn({key:new pn("codeBlockVSCodeHandler"),props:{handlePaste:(t,e)=>{if(!e.clipboardData||this.editor.isActive(this.type.name))return!1;const n=e.clipboardData.getData("text/plain"),r=e.clipboardData.getData("vscode-editor-data"),i=r?JSON.parse(r):void 0,s=i==null?void 0:i.mode;if(!n||!s)return!1;const{tr:o,schema:l}=t.state,a=l.text(n.replace(/\r\n?/g,` +`));return o.replaceSelectionWith(this.type.create({language:s},a)),o.selection.$from.parent.type!==this.type&&o.setSelection(xt.near(o.doc.resolve(Math.max(0,o.selection.from-2)))),o.setMeta("paste",!0),t.dispatch(o),!0}}})]}}),k8=yi.create({name:"doc",topNode:!0,content:"block+",renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,` + +`):""}),S8=yi.create({name:"hardBreak",markdownTokenName:"br",addOptions(){return{keepMarks:!0,HTMLAttributes:{}}},inline:!0,group:"inline",selectable:!1,linebreakReplacement:!0,parseHTML(){return[{tag:"br"}]},renderHTML({HTMLAttributes:t}){return["br",Yn(this.options.HTMLAttributes,t)]},renderText(){return` +`},renderMarkdown:()=>` +`,parseMarkdown:()=>({type:"hardBreak"}),addCommands(){return{setHardBreak:()=>({commands:t,chain:e,state:n,editor:r})=>t.first([()=>t.exitCode(),()=>t.command(()=>{const{selection:i,storedMarks:s}=n;if(i.$from.parent.type.spec.isolating)return!1;const{keepMarks:o}=this.options,{splittableMarks:l}=r.extensionManager,a=s||i.$to.parentOffset&&i.$from.marks();return e().insertContent({type:this.name}).command(({tr:c,dispatch:u})=>{if(u&&a&&o){const d=a.filter(h=>l.includes(h.type.name));c.ensureMarks(d)}return!0}).run()})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),C8=yi.create({name:"heading",addOptions(){return{levels:[1,2,3,4,5,6],HTMLAttributes:{}}},content:"inline*",group:"block",defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map(t=>({tag:`h${t}`,attrs:{level:t}}))},renderHTML({node:t,HTMLAttributes:e}){return[`h${this.options.levels.includes(t.attrs.level)?t.attrs.level:this.options.levels[0]}`,Yn(this.options.HTMLAttributes,e),0]},parseMarkdown:(t,e)=>e.createNode("heading",{level:t.depth||1},e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>{var n;const r=(n=t.attrs)!=null&&n.level?parseInt(t.attrs.level,10):1,i="#".repeat(r);return t.content?`${i} ${e.renderChildren(t.content)}`:""},addCommands(){return{setHeading:t=>({commands:e})=>this.options.levels.includes(t.level)?e.setNode(this.name,t):!1,toggleHeading:t=>({commands:e})=>this.options.levels.includes(t.level)?e.toggleNode(this.name,"paragraph",t):!1}},addKeyboardShortcuts(){return this.options.levels.reduce((t,e)=>({...t,[`Mod-Alt-${e}`]:()=>this.editor.commands.toggleHeading({level:e})}),{})},addInputRules(){return this.options.levels.map(t=>F0({find:new RegExp(`^(#{${Math.min(...this.options.levels)},${t}})\\s$`),type:this.type,getAttributes:{level:t}}))}}),E8=yi.create({name:"horizontalRule",addOptions(){return{HTMLAttributes:{},nextNodeType:"paragraph"}},group:"block",parseHTML(){return[{tag:"hr"}]},renderHTML({HTMLAttributes:t}){return["hr",Yn(this.options.HTMLAttributes,t)]},markdownTokenName:"hr",parseMarkdown:(t,e)=>e.createNode("horizontalRule"),renderMarkdown:()=>"---",addCommands(){return{setHorizontalRule:()=>({chain:t,state:e})=>{if(!B5(e,e.schema.nodes[this.name]))return!1;const{selection:n}=e,{$to:r}=n,i=t();return f2(n)?i.insertContentAt(r.pos,{type:this.name}):i.insertContent({type:this.name}),i.command(({state:s,tr:o,dispatch:l})=>{if(l){const{$to:a}=o.selection,c=a.end();if(a.nodeAfter)a.nodeAfter.isTextblock?o.setSelection(xt.create(o.doc,a.pos+1)):a.nodeAfter.isBlock?o.setSelection(dt.create(o.doc,a.pos)):o.setSelection(xt.create(o.doc,a.pos));else{const u=s.schema.nodes[this.options.nextNodeType]||a.parent.type.contentMatch.defaultType,d=u==null?void 0:u.create();d&&(o.insert(c,d),o.setSelection(xt.create(o.doc,c+1)))}o.scrollIntoView()}return!0}).run()}}},addInputRules(){return[$5({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}}),N8=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,T8=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,A8=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,M8=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,I8=da.create({name:"italic",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"em"},{tag:"i",getAttrs:t=>t.style.fontStyle!=="normal"&&null},{style:"font-style=normal",clearMark:t=>t.type.name===this.name},{style:"font-style=italic"}]},renderHTML({HTMLAttributes:t}){return["em",Yn(this.options.HTMLAttributes,t),0]},addCommands(){return{setItalic:()=>({commands:t})=>t.setMark(this.name),toggleItalic:()=>({commands:t})=>t.toggleMark(this.name),unsetItalic:()=>({commands:t})=>t.unsetMark(this.name)}},markdownTokenName:"em",parseMarkdown:(t,e)=>e.applyMark("italic",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`*${e.renderChildren(t)}*`,addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[vc({find:N8,type:this.type}),vc({find:A8,type:this.type})]},addPasteRules(){return[ea({find:T8,type:this.type}),ea({find:M8,type:this.type})]}});const R8="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",D8="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",K0="numeric",Y0="ascii",q0="alpha",Lu="asciinumeric",yu="alphanumeric",J0="domain",yR="emoji",O8="scheme",j8="slashscheme",Wy="whitespace";function P8(t,e){return t in e||(e[t]=[]),e[t]}function Ol(t,e,n){e[K0]&&(e[Lu]=!0,e[yu]=!0),e[Y0]&&(e[Lu]=!0,e[q0]=!0),e[Lu]&&(e[yu]=!0),e[q0]&&(e[yu]=!0),e[yu]&&(e[J0]=!0),e[yR]&&(e[J0]=!0);for(const r in e){const i=P8(r,n);i.indexOf(t)<0&&i.push(t)}}function L8(t,e){const n={};for(const r in e)e[r].indexOf(t)>=0&&(n[r]=!0);return n}function Xr(t=null){this.j={},this.jr=[],this.jd=null,this.t=t}Xr.groups={};Xr.prototype={accepts(){return!!this.t},go(t){const e=this,n=e.j[t];if(n)return n;for(let r=0;rt.ta(e,n,r,i),Dn=(t,e,n,r,i)=>t.tr(e,n,r,i),sE=(t,e,n,r,i)=>t.ts(e,n,r,i),Me=(t,e,n,r,i)=>t.tt(e,n,r,i),Bs="WORD",G0="UWORD",vR="ASCIINUMERICAL",bR="ALPHANUMERICAL",Sd="LOCALHOST",X0="TLD",Q0="UTLD",Th="SCHEME",Na="SLASH_SCHEME",Ex="NUM",Z0="WS",Nx="NL",_u="OPENBRACE",zu="CLOSEBRACE",Pp="OPENBRACKET",Lp="CLOSEBRACKET",_p="OPENPAREN",zp="CLOSEPAREN",Fp="OPENANGLEBRACKET",$p="CLOSEANGLEBRACKET",Bp="FULLWIDTHLEFTPAREN",Up="FULLWIDTHRIGHTPAREN",Hp="LEFTCORNERBRACKET",Vp="RIGHTCORNERBRACKET",Wp="LEFTWHITECORNERBRACKET",Kp="RIGHTWHITECORNERBRACKET",Yp="FULLWIDTHLESSTHAN",qp="FULLWIDTHGREATERTHAN",Jp="AMPERSAND",Gp="APOSTROPHE",Xp="ASTERISK",Ro="AT",Qp="BACKSLASH",Zp="BACKTICK",em="CARET",Lo="COLON",Tx="COMMA",tm="DOLLAR",gs="DOT",nm="EQUALS",Ax="EXCLAMATION",xi="HYPHEN",Fu="PERCENT",rm="PIPE",im="PLUS",sm="POUND",$u="QUERY",Mx="QUOTE",wR="FULLWIDTHMIDDLEDOT",Ix="SEMI",ys="SLASH",Bu="TILDE",om="UNDERSCORE",xR="EMOJI",lm="SYM";var kR=Object.freeze({__proto__:null,ALPHANUMERICAL:bR,AMPERSAND:Jp,APOSTROPHE:Gp,ASCIINUMERICAL:vR,ASTERISK:Xp,AT:Ro,BACKSLASH:Qp,BACKTICK:Zp,CARET:em,CLOSEANGLEBRACKET:$p,CLOSEBRACE:zu,CLOSEBRACKET:Lp,CLOSEPAREN:zp,COLON:Lo,COMMA:Tx,DOLLAR:tm,DOT:gs,EMOJI:xR,EQUALS:nm,EXCLAMATION:Ax,FULLWIDTHGREATERTHAN:qp,FULLWIDTHLEFTPAREN:Bp,FULLWIDTHLESSTHAN:Yp,FULLWIDTHMIDDLEDOT:wR,FULLWIDTHRIGHTPAREN:Up,HYPHEN:xi,LEFTCORNERBRACKET:Hp,LEFTWHITECORNERBRACKET:Wp,LOCALHOST:Sd,NL:Nx,NUM:Ex,OPENANGLEBRACKET:Fp,OPENBRACE:_u,OPENBRACKET:Pp,OPENPAREN:_p,PERCENT:Fu,PIPE:rm,PLUS:im,POUND:sm,QUERY:$u,QUOTE:Mx,RIGHTCORNERBRACKET:Vp,RIGHTWHITECORNERBRACKET:Kp,SCHEME:Th,SEMI:Ix,SLASH:ys,SLASH_SCHEME:Na,SYM:lm,TILDE:Bu,TLD:X0,UNDERSCORE:om,UTLD:Q0,UWORD:G0,WORD:Bs,WS:Z0});const js=/[a-z]/,au=new RegExp("\\p{L}","u"),Ky=new RegExp("\\p{Emoji}","u"),Ps=/\d/,Yy=/\s/,oE="\r",qy=` +`,_8="️",z8="‍",Jy="";let Zf=null,eh=null;function F8(t=[]){const e={};Xr.groups=e;const n=new Xr;Zf==null&&(Zf=lE(R8)),eh==null&&(eh=lE(D8)),Me(n,"'",Gp),Me(n,"{",_u),Me(n,"}",zu),Me(n,"[",Pp),Me(n,"]",Lp),Me(n,"(",_p),Me(n,")",zp),Me(n,"<",Fp),Me(n,">",$p),Me(n,"(",Bp),Me(n,")",Up),Me(n,"「",Hp),Me(n,"」",Vp),Me(n,"『",Wp),Me(n,"』",Kp),Me(n,"<",Yp),Me(n,">",qp),Me(n,"&",Jp),Me(n,"*",Xp),Me(n,"@",Ro),Me(n,"`",Zp),Me(n,"^",em),Me(n,":",Lo),Me(n,",",Tx),Me(n,"$",tm),Me(n,".",gs),Me(n,"=",nm),Me(n,"!",Ax),Me(n,"-",xi),Me(n,"%",Fu),Me(n,"|",rm),Me(n,"+",im),Me(n,"#",sm),Me(n,"?",$u),Me(n,'"',Mx),Me(n,"/",ys),Me(n,";",Ix),Me(n,"~",Bu),Me(n,"_",om),Me(n,"\\",Qp),Me(n,"・",wR);const r=Dn(n,Ps,Ex,{[K0]:!0});Dn(r,Ps,r);const i=Dn(r,js,vR,{[Lu]:!0}),s=Dn(r,au,bR,{[yu]:!0}),o=Dn(n,js,Bs,{[Y0]:!0});Dn(o,Ps,i),Dn(o,js,o),Dn(i,Ps,i),Dn(i,js,i);const l=Dn(n,au,G0,{[q0]:!0});Dn(l,js),Dn(l,Ps,s),Dn(l,au,l),Dn(s,Ps,s),Dn(s,js),Dn(s,au,s);const a=Me(n,qy,Nx,{[Wy]:!0}),c=Me(n,oE,Z0,{[Wy]:!0}),u=Dn(n,Yy,Z0,{[Wy]:!0});Me(n,Jy,u),Me(c,qy,a),Me(c,Jy,u),Dn(c,Yy,u),Me(u,oE),Me(u,qy),Dn(u,Yy,u),Me(u,Jy,u);const d=Dn(n,Ky,xR,{[yR]:!0});Me(d,"#"),Dn(d,Ky,d),Me(d,_8,d);const h=Me(d,z8);Me(h,"#"),Dn(h,Ky,d);const p=[[js,o],[Ps,i]],m=[[js,null],[au,l],[Ps,s]];for(let g=0;gg[0]>v[0]?1:-1);for(let g=0;g=0?b[J0]=!0:js.test(v)?Ps.test(v)?b[Lu]=!0:b[Y0]=!0:b[K0]=!0,sE(n,v,v,b)}return sE(n,"localhost",Sd,{ascii:!0}),n.jd=new Xr(lm),{start:n,tokens:Object.assign({groups:e},kR)}}function SR(t,e){const n=$8(e.replace(/[A-Z]/g,l=>l.toLowerCase())),r=n.length,i=[];let s=0,o=0;for(;o=0&&(d+=n[o].length,h++),c+=n[o].length,s+=n[o].length,o++;s-=d,o-=h,c-=d,i.push({t:u.t,v:e.slice(s-c,s),s:s-c,e:s})}return i}function $8(t){const e=[],n=t.length;let r=0;for(;r56319||r+1===n||(s=t.charCodeAt(r+1))<56320||s>57343?t[r]:t.slice(r,r+2);e.push(o),r+=o.length}return e}function Co(t,e,n,r,i){let s;const o=e.length;for(let l=0;l=0;)s++;if(s>0){e.push(n.join(""));for(let o=parseInt(t.substring(r,r+s),10);o>0;o--)n.pop();r+=s}else n.push(t[r]),r++}return e}const Cd={defaultProtocol:"http",events:null,format:aE,formatHref:aE,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function Rx(t,e=null){let n=Object.assign({},Cd);t&&(n=Object.assign(n,t instanceof Rx?t.o:t));const r=n.ignoreTags,i=[];for(let s=0;sn?r.substring(0,n)+"…":r},toFormattedHref(t){return t.get("formatHref",this.toHref(t.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(t=Cd.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(t),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(t){return{type:this.t,value:this.toFormattedString(t),isLink:this.isLink,href:this.toFormattedHref(t),start:this.startIndex(),end:this.endIndex()}},validate(t){return t.get("validate",this.toString(),this)},render(t){const e=this,n=this.toHref(t.get("defaultProtocol")),r=t.get("formatHref",n,this),i=t.get("tagName",n,e),s=this.toFormattedString(t),o={},l=t.get("className",n,e),a=t.get("target",n,e),c=t.get("rel",n,e),u=t.getObj("attributes",n,e),d=t.getObj("events",n,e);return o.href=r,l&&(o.class=l),a&&(o.target=a),c&&(o.rel=c),u&&Object.assign(o,u),{tagName:i,attributes:o,content:s,eventListeners:d}}};function vg(t,e){class n extends CR{constructor(i,s){super(i,s),this.t=t}}for(const r in e)n.prototype[r]=e[r];return n.t=t,n}const cE=vg("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),uE=vg("text"),B8=vg("nl"),th=vg("url",{isLink:!0,toHref(t=Cd.defaultProtocol){return this.hasProtocol()?this.v:`${t}://${this.v}`},hasProtocol(){const t=this.tk;return t.length>=2&&t[0].t!==Sd&&t[1].t===Lo}}),wi=t=>new Xr(t);function U8({groups:t}){const e=t.domain.concat([Jp,Xp,Ro,Qp,Zp,em,tm,nm,xi,Ex,Fu,rm,im,sm,ys,lm,Bu,om]),n=[Gp,Lo,Tx,gs,Ax,Fu,$u,Mx,Ix,Fp,$p,_u,zu,Lp,Pp,_p,zp,Bp,Up,Hp,Vp,Wp,Kp,Yp,qp],r=[Jp,Gp,Xp,Qp,Zp,em,tm,nm,xi,_u,zu,Fu,rm,im,sm,$u,ys,lm,Bu,om],i=wi(),s=Me(i,Bu);Vt(s,r,s),Vt(s,t.domain,s);const o=wi(),l=wi(),a=wi();Vt(i,t.domain,o),Vt(i,t.scheme,l),Vt(i,t.slashscheme,a),Vt(o,r,s),Vt(o,t.domain,o);const c=Me(o,Ro);Me(s,Ro,c),Me(l,Ro,c),Me(a,Ro,c);const u=Me(s,gs);Vt(u,r,s),Vt(u,t.domain,s);const d=wi();Vt(c,t.domain,d),Vt(d,t.domain,d);const h=Me(d,gs);Vt(h,t.domain,d);const p=wi(cE);Vt(h,t.tld,p),Vt(h,t.utld,p),Me(c,Sd,p);const m=Me(d,xi);Me(m,xi,m),Vt(m,t.domain,d),Vt(p,t.domain,d),Me(p,gs,h),Me(p,xi,m);const g=Me(p,Lo);Vt(g,t.numeric,cE);const v=Me(o,xi),y=Me(o,gs);Me(v,xi,v),Vt(v,t.domain,o),Vt(y,r,s),Vt(y,t.domain,o);const b=wi(th);Vt(y,t.tld,b),Vt(y,t.utld,b),Vt(b,t.domain,o),Vt(b,r,s),Me(b,gs,y),Me(b,xi,v),Me(b,Ro,c);const x=Me(b,Lo),C=wi(th);Vt(x,t.numeric,C);const S=wi(th),M=wi();Vt(S,e,S),Vt(S,n,M),Vt(M,e,S),Vt(M,n,M),Me(b,ys,S),Me(C,ys,S);const N=Me(l,Lo),z=Me(a,Lo),ee=Me(z,ys),L=Me(ee,ys);Vt(l,t.domain,o),Me(l,gs,y),Me(l,xi,v),Vt(a,t.domain,o),Me(a,gs,y),Me(a,xi,v),Vt(N,t.domain,S),Me(N,ys,S),Me(N,$u,S),Vt(L,t.domain,S),Vt(L,e,S),Me(L,ys,S);const q=[[_u,zu],[Pp,Lp],[_p,zp],[Fp,$p],[Bp,Up],[Hp,Vp],[Wp,Kp],[Yp,qp]];for(let X=0;X=0&&h++,i++,u++;if(h<0)i-=u,i0&&(s.push(Gy(uE,e,o)),o=[]),i-=h,u-=h;const p=d.t,m=n.slice(i-u,i);s.push(Gy(p,e,m))}}return o.length>0&&s.push(Gy(uE,e,o)),s}function Gy(t,e,n){const r=n[0].s,i=n[n.length-1].e,s=e.slice(r,i);return new t(s,n)}const V8=typeof console<"u"&&console&&console.warn||(()=>{}),W8="until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.",kn={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function K8(){return Xr.groups={},kn.scanner=null,kn.parser=null,kn.tokenQueue=[],kn.pluginQueue=[],kn.customSchemes=[],kn.initialized=!1,kn}function dE(t,e=!1){if(kn.initialized&&V8(`linkifyjs: already initialized - will not register custom scheme "${t}" ${W8}`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(t))throw new Error(`linkifyjs: incorrect scheme format. +1. Must only contain digits, lowercase ASCII letters or "-" +2. Cannot start or end with "-" +3. "-" cannot repeat`);kn.customSchemes.push([t,e])}function Y8(){kn.scanner=F8(kn.customSchemes);for(let t=0;t{const i=e.some(c=>c.docChanged)&&!n.doc.eq(r.doc),s=e.some(c=>c.getMeta("preventAutolink"));if(!i||s)return;const{tr:o}=r,l=i2(n.doc,[...e]);if(d2(l).forEach(({newRange:c})=>{const u=VB(r.doc,c,p=>p.isTextblock);let d,h;if(u.length>1)d=u[0],h=r.doc.textBetween(d.pos,d.pos+d.node.nodeSize,void 0," ");else if(u.length){const p=r.doc.textBetween(c.from,c.to," "," ");if(!J8.test(p))return;d=u[0],h=r.doc.textBetween(d.pos,c.to,void 0," ")}if(d&&h){const p=h.split(q8).filter(Boolean);if(p.length<=0)return!1;const m=p[p.length-1],g=d.pos+h.lastIndexOf(m);if(!m)return!1;const v=Dx(m).map(y=>y.toObject(t.defaultProtocol));if(!X8(v))return!1;v.filter(y=>y.isLink).map(y=>({...y,from:g+y.start+1,to:g+y.end+1})).filter(y=>r.schema.marks.code?!r.doc.rangeHasMark(y.from,y.to,r.schema.marks.code):!0).filter(y=>t.validate(y.value)).filter(y=>t.shouldAutoLink(y.value)).forEach(y=>{ux(y.from,y.to,r.doc).some(b=>b.mark.type===t.type)||o.addMark(y.from,y.to,t.type.create({href:y.href}))})}}),!!o.steps.length)return o}})}function Z8(t){return new hn({key:new pn("handleClickLink"),props:{handleClick:(e,n,r)=>{var i,s;if(r.button!==0||!e.editable)return!1;let o=null;if(r.target instanceof HTMLAnchorElement)o=r.target;else{const a=r.target;if(!a)return!1;const c=t.editor.view.dom;o=a.closest("a"),o&&!c.contains(o)&&(o=null)}if(!o)return!1;let l=!1;if(t.enableClickSelection&&(l=t.editor.commands.extendMarkRange(t.type.name)),t.openOnClick){const a=u2(e.state,t.type.name),c=(i=o.href)!=null?i:a.href,u=(s=o.target)!=null?s:a.target;c&&(window.open(c,u),l=!0)}return l}}})}function eH(t){return new hn({key:new pn("handlePasteLink"),props:{handlePaste:(e,n,r)=>{const{shouldAutoLink:i}=t,{state:s}=e,{selection:o}=s,{empty:l}=o;if(l)return!1;let a="";r.content.forEach(u=>{a+=u.textContent});const c=ER(a,{defaultProtocol:t.defaultProtocol}).find(u=>u.isLink&&u.value===a);return!a||!c||i!==void 0&&!i(c.value)?!1:t.editor.commands.setMark(t.type,{href:c.href})}}})}function kl(t,e){const n=["http","https","ftp","ftps","mailto","tel","callto","sms","cid","xmpp"];return e&&e.forEach(r=>{const i=typeof r=="string"?r:r.scheme;i&&n.push(i)}),!t||t.replace(G8,"").match(new RegExp(`^(?:(?:${n.join("|")}):|[^a-z]|[a-z0-9+.-]+(?:[^a-z+.-:]|$))`,"i"))}var NR=da.create({name:"link",priority:1e3,keepOnSplit:!1,exitable:!0,onCreate(){this.options.validate&&!this.options.shouldAutoLink&&(this.options.shouldAutoLink=this.options.validate,console.warn("The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.")),this.options.protocols.forEach(t=>{if(typeof t=="string"){dE(t);return}dE(t.scheme,t.optionalSlashes)})},onDestroy(){K8()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,enableClickSelection:!1,linkOnPaste:!0,autolink:!0,protocols:[],defaultProtocol:"http",HTMLAttributes:{target:"_blank",rel:"noopener noreferrer nofollow",class:null},isAllowedUri:(t,e)=>!!kl(t,e.protocols),validate:t=>!!t,shouldAutoLink:t=>{const e=/^[a-z][a-z0-9+.-]*:\/\//i.test(t),n=/^[a-z][a-z0-9+.-]*:/i.test(t);if(e||n&&!t.includes("@"))return!0;const i=(t.includes("@")?t.split("@").pop():t).split(/[/?#:]/)[0];return!(/^\d{1,3}(\.\d{1,3}){3}$/.test(i)||!/\./.test(i))}}},addAttributes(){return{href:{default:null,parseHTML(t){return t.getAttribute("href")}},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class}}},parseHTML(){return[{tag:"a[href]",getAttrs:t=>{const e=t.getAttribute("href");return!e||!this.options.isAllowedUri(e,{defaultValidate:n=>!!kl(n,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:null}}]},renderHTML({HTMLAttributes:t}){return this.options.isAllowedUri(t.href,{defaultValidate:e=>!!kl(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?["a",Yn(this.options.HTMLAttributes,t),0]:["a",Yn(this.options.HTMLAttributes,{...t,href:""}),0]},markdownTokenName:"link",parseMarkdown:(t,e)=>e.applyMark("link",e.parseInline(t.tokens||[]),{href:t.href,title:t.title||null}),renderMarkdown:(t,e)=>{var n;const r=((n=t.attrs)==null?void 0:n.href)||"";return`[${e.renderChildren(t)}](${r})`},addCommands(){return{setLink:t=>({chain:e})=>{const{href:n}=t;return this.options.isAllowedUri(n,{defaultValidate:r=>!!kl(r,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?e().setMark(this.name,t).setMeta("preventAutolink",!0).run():!1},toggleLink:t=>({chain:e})=>{const{href:n}=t||{};return n&&!this.options.isAllowedUri(n,{defaultValidate:r=>!!kl(r,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:e().toggleMark(this.name,t,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()},unsetLink:()=>({chain:t})=>t().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()}},addPasteRules(){return[ea({find:t=>{const e=[];if(t){const{protocols:n,defaultProtocol:r}=this.options,i=ER(t).filter(s=>s.isLink&&this.options.isAllowedUri(s.value,{defaultValidate:o=>!!kl(o,n),protocols:n,defaultProtocol:r}));i.length&&i.forEach(s=>{this.options.shouldAutoLink(s.value)&&e.push({text:s.value,data:{href:s.href},index:s.start})})}return e},type:this.type,getAttributes:t=>{var e;return{href:(e=t.data)==null?void 0:e.href}}})]},addProseMirrorPlugins(){const t=[],{protocols:e,defaultProtocol:n}=this.options;return this.options.autolink&&t.push(Q8({type:this.type,defaultProtocol:this.options.defaultProtocol,validate:r=>this.options.isAllowedUri(r,{defaultValidate:i=>!!kl(i,e),protocols:e,defaultProtocol:n}),shouldAutoLink:this.options.shouldAutoLink})),t.push(Z8({type:this.type,editor:this.editor,openOnClick:this.options.openOnClick==="whenNotEditable"?!0:this.options.openOnClick,enableClickSelection:this.options.enableClickSelection})),this.options.linkOnPaste&&t.push(eH({editor:this.editor,defaultProtocol:this.options.defaultProtocol,type:this.type,shouldAutoLink:this.options.shouldAutoLink})),t}}),TR=NR,tH=Object.defineProperty,nH=(t,e)=>{for(var n in e)tH(t,n,{get:e[n],enumerable:!0})},rH="listItem",fE="textStyle",hE=/^\s*([-+*])\s$/,AR=yi.create({name:"bulletList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:"ul"}]},renderHTML({HTMLAttributes:t}){return["ul",Yn(this.options.HTMLAttributes,t),0]},markdownTokenName:"list",parseMarkdown:(t,e)=>t.type!=="list"||t.ordered?[]:{type:"bulletList",content:t.items?e.parseChildren(t.items):[]},renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,` +`):"",markdownOptions:{indentsContent:!0},addCommands(){return{toggleBulletList:()=>({commands:t,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(rH,this.editor.getAttributes(fE)).run():t.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let t=bc({find:hE,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(t=bc({find:hE,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(fE),editor:this.editor})),[t]}}),MR=yi.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:t}){return["li",Yn(this.options.HTMLAttributes,t),0]},markdownTokenName:"list_item",parseMarkdown:(t,e)=>{if(t.type!=="list_item")return[];let n=[];if(t.tokens&&t.tokens.length>0)if(t.tokens.some(i=>i.type==="paragraph"))n=e.parseChildren(t.tokens);else{const i=t.tokens[0];if(i&&i.type==="text"&&i.tokens&&i.tokens.length>0){if(n=[{type:"paragraph",content:e.parseInline(i.tokens)}],t.tokens.length>1){const o=t.tokens.slice(1),l=e.parseChildren(o);n.push(...l)}}else n=e.parseChildren(t.tokens)}return n.length===0&&(n=[{type:"paragraph",content:[]}]),{type:"listItem",content:n}},renderMarkdown:(t,e,n)=>mx(t,e,r=>{var i,s;return r.parentType==="bulletList"?"- ":r.parentType==="orderedList"?`${(((s=(i=r.meta)==null?void 0:i.parentAttrs)==null?void 0:s.start)||1)+r.index}. `:"- "},n),addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),iH={};nH(iH,{findListItemPos:()=>ef,getNextListDepth:()=>jx,handleBackspace:()=>eb,handleDelete:()=>tb,hasListBefore:()=>IR,hasListItemAfter:()=>sH,hasListItemBefore:()=>RR,listItemHasSubList:()=>DR,nextListIsDeeper:()=>OR,nextListIsHigher:()=>jR});var ef=(t,e)=>{const{$from:n}=e.selection,r=Kn(t,e.schema);let i=null,s=n.depth,o=n.pos,l=null;for(;s>0&&l===null;)i=n.node(s),i.type===r?l=s:(s-=1,o-=1);return l===null?null:{$pos:e.doc.resolve(o),depth:l}},jx=(t,e)=>{const n=ef(t,e);if(!n)return!1;const[,r]=ZB(e,t,n.$pos.pos+4);return r},IR=(t,e,n)=>{const{$anchor:r}=t.selection,i=Math.max(0,r.pos-2),s=t.doc.resolve(i).node();return!(!s||!n.includes(s.type.name))},RR=(t,e)=>{var n;const{$anchor:r}=e.selection,i=e.doc.resolve(r.pos-2);return!(i.index()===0||((n=i.nodeBefore)==null?void 0:n.type.name)!==t)},DR=(t,e,n)=>{if(!n)return!1;const r=Kn(t,e.schema);let i=!1;return n.descendants(s=>{s.type===r&&(i=!0)}),i},eb=(t,e,n)=>{if(t.commands.undoInputRule())return!0;if(t.state.selection.from!==t.state.selection.to)return!1;if(!ol(t.state,e)&&IR(t.state,e,n)){const{$anchor:l}=t.state.selection,a=t.state.doc.resolve(l.before()-1),c=[];a.node().descendants((h,p)=>{h.type.name===e&&c.push({node:h,pos:p})});const u=c.at(-1);if(!u)return!1;const d=t.state.doc.resolve(a.start()+u.pos+1);return t.chain().cut({from:l.start()-1,to:l.end()+1},d.end()).joinForward().run()}if(!ol(t.state,e)||!r5(t.state))return!1;const r=ef(e,t.state);if(!r)return!1;const s=t.state.doc.resolve(r.$pos.pos-2).node(r.depth),o=DR(e,t.state,s);return RR(e,t.state)&&!o?t.commands.joinItemBackward():t.chain().liftListItem(e).run()},OR=(t,e)=>{const n=jx(t,e),r=ef(t,e);return!r||!n?!1:n>r.depth},jR=(t,e)=>{const n=jx(t,e),r=ef(t,e);return!r||!n?!1:n{if(!ol(t.state,e)||!n5(t.state,e))return!1;const{selection:n}=t.state,{$from:r,$to:i}=n;return!n.empty&&r.sameParent(i)?!1:OR(e,t.state)?t.chain().focus(t.state.selection.from+4).lift(e).joinBackward().run():jR(e,t.state)?t.chain().joinForward().joinBackward().run():t.commands.joinItemForward()},sH=(t,e)=>{var n;const{$anchor:r}=e.selection,i=e.doc.resolve(r.pos-r.parentOffset-2);return!(i.index()===i.parent.childCount-1||((n=i.nodeAfter)==null?void 0:n.type.name)!==t)},PR=mn.create({name:"listKeymap",addOptions(){return{listTypes:[{itemName:"listItem",wrapperNames:["bulletList","orderedList"]},{itemName:"taskItem",wrapperNames:["taskList"]}]}},addKeyboardShortcuts(){return{Delete:({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n})=>{t.state.schema.nodes[n]!==void 0&&tb(t,n)&&(e=!0)}),e},"Mod-Delete":({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n})=>{t.state.schema.nodes[n]!==void 0&&tb(t,n)&&(e=!0)}),e},Backspace:({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:r})=>{t.state.schema.nodes[n]!==void 0&&eb(t,n,r)&&(e=!0)}),e},"Mod-Backspace":({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:r})=>{t.state.schema.nodes[n]!==void 0&&eb(t,n,r)&&(e=!0)}),e}}}}),pE=/^(\s*)(\d+)\.\s+(.*)$/,oH=/^\s/;function lH(t){const e=[];let n=0,r=0;for(;ne;)h.push(t[d]),d+=1;if(h.length>0){const p=Math.min(...h.map(g=>g.indent)),m=LR(h,p,n);c.push({type:"list",ordered:!0,start:h[0].number,items:m,raw:h.map(g=>g.raw).join(` +`)})}i.push({type:"list_item",raw:o.raw,tokens:c}),s=d}else s+=1}return i}function aH(t,e){return t.map(n=>{if(n.type!=="list_item")return e.parseChildren([n])[0];const r=[];return n.tokens&&n.tokens.length>0&&n.tokens.forEach(i=>{if(i.type==="paragraph"||i.type==="list"||i.type==="blockquote"||i.type==="code")r.push(...e.parseChildren([i]));else if(i.type==="text"&&i.tokens){const s=e.parseChildren([i]);r.push({type:"paragraph",content:s})}else{const s=e.parseChildren([i]);s.length>0&&r.push(...s)}}),{type:"listItem",content:r}})}var cH="listItem",mE="textStyle",gE=/^(\d+)\.\s$/,_R=yi.create({name:"orderedList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},addAttributes(){return{start:{default:1,parseHTML:t=>t.hasAttribute("start")?parseInt(t.getAttribute("start")||"",10):1},type:{default:null,parseHTML:t=>t.getAttribute("type")}}},parseHTML(){return[{tag:"ol"}]},renderHTML({HTMLAttributes:t}){const{start:e,...n}=t;return e===1?["ol",Yn(this.options.HTMLAttributes,n),0]:["ol",Yn(this.options.HTMLAttributes,t),0]},markdownTokenName:"list",parseMarkdown:(t,e)=>{if(t.type!=="list"||!t.ordered)return[];const n=t.start||1,r=t.items?aH(t.items,e):[];return n!==1?{type:"orderedList",attrs:{start:n},content:r}:{type:"orderedList",content:r}},renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,` +`):"",markdownTokenizer:{name:"orderedList",level:"block",start:t=>{const e=t.match(/^(\s*)(\d+)\.\s+/),n=e==null?void 0:e.index;return n!==void 0?n:-1},tokenize:(t,e,n)=>{var r;const i=t.split(` +`),[s,o]=lH(i);if(s.length===0)return;const l=LR(s,0,n);return l.length===0?void 0:{type:"list",ordered:!0,start:((r=s[0])==null?void 0:r.number)||1,items:l,raw:i.slice(0,o).join(` +`)}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleOrderedList:()=>({commands:t,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(cH,this.editor.getAttributes(mE)).run():t.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let t=bc({find:gE,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:(e,n)=>n.childCount+n.attrs.start===+e[1]});return(this.options.keepMarks||this.options.keepAttributes)&&(t=bc({find:gE,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(mE)}),joinPredicate:(e,n)=>n.childCount+n.attrs.start===+e[1],editor:this.editor})),[t]}}),uH=/^\s*(\[([( |x])?\])\s$/,dH=yi.create({name:"taskItem",addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:"taskList",a11y:void 0}},content(){return this.options.nested?"paragraph block*":"paragraph+"},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:t=>{const e=t.getAttribute("data-checked");return e===""||e==="true"},renderHTML:t=>({"data-checked":t.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:t,HTMLAttributes:e}){return["li",Yn(this.options.HTMLAttributes,e,{"data-type":this.name}),["label",["input",{type:"checkbox",checked:t.attrs.checked?"checked":null}],["span"]],["div",0]]},parseMarkdown:(t,e)=>{const n=[];if(t.tokens&&t.tokens.length>0?n.push(e.createNode("paragraph",{},e.parseInline(t.tokens))):t.text?n.push(e.createNode("paragraph",{},[e.createNode("text",{text:t.text})])):n.push(e.createNode("paragraph",{},[])),t.nestedTokens&&t.nestedTokens.length>0){const r=e.parseChildren(t.nestedTokens);n.push(...r)}return e.createNode("taskItem",{checked:t.checked||!1},n)},renderMarkdown:(t,e)=>{var n;const i=`- [${(n=t.attrs)!=null&&n.checked?"x":" "}] `;return mx(t,e,i)},addKeyboardShortcuts(){const t={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...t,Tab:()=>this.editor.commands.sinkListItem(this.name)}:t},addNodeView(){return({node:t,HTMLAttributes:e,getPos:n,editor:r})=>{const i=document.createElement("li"),s=document.createElement("label"),o=document.createElement("span"),l=document.createElement("input"),a=document.createElement("div"),c=d=>{var h,p;l.ariaLabel=((p=(h=this.options.a11y)==null?void 0:h.checkboxLabel)==null?void 0:p.call(h,d,l.checked))||`Task item checkbox for ${d.textContent||"empty task item"}`};c(t),s.contentEditable="false",l.type="checkbox",l.addEventListener("mousedown",d=>d.preventDefault()),l.addEventListener("change",d=>{if(!r.isEditable&&!this.options.onReadOnlyChecked){l.checked=!l.checked;return}const{checked:h}=d.target;r.isEditable&&typeof n=="function"&&r.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:p})=>{const m=n();if(typeof m!="number")return!1;const g=p.doc.nodeAt(m);return p.setNodeMarkup(m,void 0,{...g==null?void 0:g.attrs,checked:h}),!0}).run(),!r.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(t,h)||(l.checked=!l.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([d,h])=>{i.setAttribute(d,h)}),i.dataset.checked=t.attrs.checked,l.checked=t.attrs.checked,s.append(l,o),i.append(s,a),Object.entries(e).forEach(([d,h])=>{i.setAttribute(d,h)});let u=new Set(Object.keys(e));return{dom:i,contentDOM:a,update:d=>{if(d.type!==this.type)return!1;i.dataset.checked=d.attrs.checked,l.checked=d.attrs.checked,c(d);const h=r.extensionManager.attributes,p=xd(d,h),m=new Set(Object.keys(p)),g=this.options.HTMLAttributes;return u.forEach(v=>{m.has(v)||(v in g?i.setAttribute(v,g[v]):i.removeAttribute(v))}),Object.entries(p).forEach(([v,y])=>{y==null?v in g?i.setAttribute(v,g[v]):i.removeAttribute(v):i.setAttribute(v,y)}),u=m,!0}}}},addInputRules(){return[bc({find:uH,type:this.type,getAttributes:t=>({checked:t[t.length-1]==="x"})})]}}),fH=yi.create({name:"taskList",addOptions(){return{itemTypeName:"taskItem",HTMLAttributes:{}}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:t}){return["ul",Yn(this.options.HTMLAttributes,t,{"data-type":this.name}),0]},parseMarkdown:(t,e)=>e.createNode("taskList",{},e.parseChildren(t.items||[])),renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,` +`):"",markdownTokenizer:{name:"taskList",level:"block",start(t){var e;const n=(e=t.match(/^\s*[-+*]\s+\[([ xX])\]\s+/))==null?void 0:e.index;return n!==void 0?n:-1},tokenize(t,e,n){const r=s=>{const o=$0(s,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:l=>({indentLevel:l[1].length,mainContent:l[4],checked:l[3].toLowerCase()==="x"}),createToken:(l,a)=>({type:"taskItem",raw:"",mainContent:l.mainContent,indentLevel:l.indentLevel,checked:l.checked,text:l.mainContent,tokens:n.inlineTokens(l.mainContent),nestedTokens:a}),customNestedParser:r},n);return o?[{type:"taskList",raw:o.raw,items:o.items}]:n.blockTokens(s)},i=$0(t,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:s=>({indentLevel:s[1].length,mainContent:s[4],checked:s[3].toLowerCase()==="x"}),createToken:(s,o)=>({type:"taskItem",raw:"",mainContent:s.mainContent,indentLevel:s.indentLevel,checked:s.checked,text:s.mainContent,tokens:n.inlineTokens(s.mainContent),nestedTokens:o}),customNestedParser:r},n);if(i)return{type:"taskList",raw:i.raw,items:i.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:t})=>t.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});mn.create({name:"listKit",addExtensions(){const t=[];return this.options.bulletList!==!1&&t.push(AR.configure(this.options.bulletList)),this.options.listItem!==!1&&t.push(MR.configure(this.options.listItem)),this.options.listKeymap!==!1&&t.push(PR.configure(this.options.listKeymap)),this.options.orderedList!==!1&&t.push(_R.configure(this.options.orderedList)),this.options.taskItem!==!1&&t.push(dH.configure(this.options.taskItem)),this.options.taskList!==!1&&t.push(fH.configure(this.options.taskList)),t}});var yE=" ",hH=" ",pH=yi.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:t}){return["p",Yn(this.options.HTMLAttributes,t),0]},parseMarkdown:(t,e)=>{const n=t.tokens||[];if(n.length===1&&n[0].type==="image")return e.parseChildren([n[0]]);const r=e.parseInline(n);return r.length===1&&r[0].type==="text"&&(r[0].text===yE||r[0].text===hH)?e.createNode("paragraph",void 0,[]):e.createNode("paragraph",void 0,r)},renderMarkdown:(t,e)=>{if(!t)return"";const n=Array.isArray(t.content)?t.content:[];return n.length===0?yE:e.renderChildren(n)},addCommands(){return{setParagraph:()=>({commands:t})=>t.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),mH=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,gH=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,yH=da.create({name:"strike",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:t=>t.includes("line-through")?{}:!1}]},renderHTML({HTMLAttributes:t}){return["s",Yn(this.options.HTMLAttributes,t),0]},markdownTokenName:"del",parseMarkdown:(t,e)=>e.applyMark("strike",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`~~${e.renderChildren(t)}~~`,addCommands(){return{setStrike:()=>({commands:t})=>t.setMark(this.name),toggleStrike:()=>({commands:t})=>t.toggleMark(this.name),unsetStrike:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[vc({find:mH,type:this.type})]},addPasteRules(){return[ea({find:gH,type:this.type})]}}),vH=yi.create({name:"text",group:"inline",parseMarkdown:t=>({type:"text",text:t.text||""}),renderMarkdown:t=>t.text||""}),zR=da.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:t=>t.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:t}){return["u",Yn(this.options.HTMLAttributes,t),0]},parseMarkdown(t,e){return e.applyMark(this.name||"underline",e.parseInline(t.tokens||[]))},renderMarkdown(t,e){return`++${e.renderChildren(t)}++`},markdownTokenizer:{name:"underline",level:"inline",start(t){return t.indexOf("++")},tokenize(t,e,n){const i=/^(\+\+)([\s\S]+?)(\+\+)/.exec(t);if(!i)return;const s=i[2].trim();return{type:"underline",raw:i[0],text:s,tokens:n.inlineTokens(s)}}},addCommands(){return{setUnderline:()=>({commands:t})=>t.setMark(this.name),toggleUnderline:()=>({commands:t})=>t.toggleMark(this.name),unsetUnderline:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),bg=zR;function bH(t={}){return new hn({view(e){return new wH(e,t)}})}class wH{constructor(e,n){var r;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=(r=n.width)!==null&&r!==void 0?r:1,this.color=n.color===!1?void 0:n.color||"black",this.class=n.class,this.handlers=["dragover","dragend","drop","dragleave"].map(i=>{let s=o=>{this[i](o)};return e.dom.addEventListener(i,s),{name:i,handler:s}})}destroy(){this.handlers.forEach(({name:e,handler:n})=>this.editorView.dom.removeEventListener(e,n))}update(e,n){this.cursorPos!=null&&n.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),n=!e.parent.inlineContent,r,i=this.editorView.dom,s=i.getBoundingClientRect(),o=s.width/i.offsetWidth,l=s.height/i.offsetHeight;if(n){let d=e.nodeBefore,h=e.nodeAfter;if(d||h){let p=this.editorView.nodeDOM(this.cursorPos-(d?d.nodeSize:0));if(p){let m=p.getBoundingClientRect(),g=d?m.bottom:m.top;d&&h&&(g=(g+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let v=this.width/2*l;r={left:m.left,right:m.right,top:g-v,bottom:g+v}}}}if(!r){let d=this.editorView.coordsAtPos(this.cursorPos),h=this.width/2*o;r={left:d.left-h,right:d.left+h,top:d.top,bottom:d.bottom}}let a=this.editorView.dom.offsetParent;this.element||(this.element=a.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",n),this.element.classList.toggle("prosemirror-dropcursor-inline",!n);let c,u;if(!a||a==document.body&&getComputedStyle(a).position=="static")c=-pageXOffset,u=-pageYOffset;else{let d=a.getBoundingClientRect(),h=d.width/a.offsetWidth,p=d.height/a.offsetHeight;c=d.left-a.scrollLeft*h,u=d.top-a.scrollTop*p}this.element.style.left=(r.left-c)/o+"px",this.element.style.top=(r.top-u)/l+"px",this.element.style.width=(r.right-r.left)/o+"px",this.element.style.height=(r.bottom-r.top)/l+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let n=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),r=n&&n.inside>=0&&this.editorView.state.doc.nodeAt(n.inside),i=r&&r.type.spec.disableDropCursor,s=typeof i=="function"?i(this.editorView,n,e):i;if(n&&!s){let o=n.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let l=GM(this.editorView.state.doc,o,this.editorView.dragging.slice);l!=null&&(o=l)}this.setCursor(o),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}class Pn extends Nt{constructor(e){super(e,e)}map(e,n){let r=e.resolve(n.map(this.head));return Pn.valid(r)?new Pn(r):Nt.near(r)}content(){return _e.empty}eq(e){return e instanceof Pn&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new Pn(e.resolve(n.pos))}getBookmark(){return new Px(this.anchor)}static valid(e){let n=e.parent;if(n.isTextblock||!xH(e)||!kH(e))return!1;let r=n.type.spec.allowGapCursor;if(r!=null)return r;let i=n.contentMatchAt(e.index()).defaultType;return i&&i.isTextblock}static findGapCursorFrom(e,n,r=!1){e:for(;;){if(!r&&Pn.valid(e))return e;let i=e.pos,s=null;for(let o=e.depth;;o--){let l=e.node(o);if(n>0?e.indexAfter(o)0){s=l.child(n>0?e.indexAfter(o):e.index(o)-1);break}else if(o==0)return null;i+=n;let a=e.doc.resolve(i);if(Pn.valid(a))return a}for(;;){let o=n>0?s.firstChild:s.lastChild;if(!o){if(s.isAtom&&!s.isText&&!dt.isSelectable(s)){e=e.doc.resolve(i+s.nodeSize*n),r=!1;continue e}break}s=o,i+=n;let l=e.doc.resolve(i);if(Pn.valid(l))return l}return null}}}Pn.prototype.visible=!1;Pn.findFrom=Pn.findGapCursorFrom;Nt.jsonID("gapcursor",Pn);class Px{constructor(e){this.pos=e}map(e){return new Px(e.map(this.pos))}resolve(e){let n=e.resolve(this.pos);return Pn.valid(n)?new Pn(n):Nt.near(n)}}function FR(t){return t.isAtom||t.spec.isolating||t.spec.createGapCursor}function xH(t){for(let e=t.depth;e>=0;e--){let n=t.index(e),r=t.node(e);if(n==0){if(r.type.spec.isolating)return!0;continue}for(let i=r.child(n-1);;i=i.lastChild){if(i.childCount==0&&!i.inlineContent||FR(i.type))return!0;if(i.inlineContent)return!1}}return!0}function kH(t){for(let e=t.depth;e>=0;e--){let n=t.indexAfter(e),r=t.node(e);if(n==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let i=r.child(n);;i=i.firstChild){if(i.childCount==0&&!i.inlineContent||FR(i.type))return!0;if(i.inlineContent)return!1}}return!0}function SH(){return new hn({props:{decorations:TH,createSelectionBetween(t,e,n){return e.pos==n.pos&&Pn.valid(n)?new Pn(n):null},handleClick:EH,handleKeyDown:CH,handleDOMEvents:{beforeinput:NH}}})}const CH=nx({ArrowLeft:nh("horiz",-1),ArrowRight:nh("horiz",1),ArrowUp:nh("vert",-1),ArrowDown:nh("vert",1)});function nh(t,e){const n=t=="vert"?e>0?"down":"up":e>0?"right":"left";return function(r,i,s){let o=r.selection,l=e>0?o.$to:o.$from,a=o.empty;if(o instanceof xt){if(!s.endOfTextblock(n)||l.depth==0)return!1;a=!1,l=r.doc.resolve(e>0?l.after():l.before())}let c=Pn.findGapCursorFrom(l,e,a);return c?(i&&i(r.tr.setSelection(new Pn(c))),!0):!1}}function EH(t,e,n){if(!t||!t.editable)return!1;let r=t.state.doc.resolve(e);if(!Pn.valid(r))return!1;let i=t.posAtCoords({left:n.clientX,top:n.clientY});return i&&i.inside>-1&&dt.isSelectable(t.state.doc.nodeAt(i.inside))?!1:(t.dispatch(t.state.tr.setSelection(new Pn(r))),!0)}function NH(t,e){if(e.inputType!="insertCompositionText"||!(t.state.selection instanceof Pn))return!1;let{$from:n}=t.state.selection,r=n.parent.contentMatchAt(n.index()).findWrapping(t.state.schema.nodes.text);if(!r)return!1;let i=we.empty;for(let o=r.length-1;o>=0;o--)i=we.from(r[o].createAndFill(null,i));let s=t.state.tr.replace(n.pos,n.pos,new _e(i,0,0));return s.setSelection(xt.near(s.doc.resolve(n.pos+1))),t.dispatch(s),!1}function TH(t){if(!(t.selection instanceof Pn))return null;let e=document.createElement("div");return e.className="ProseMirror-gapcursor",Mn.create(t.doc,[Fr.widget(t.selection.head,e,{key:"gapcursor"})])}var am=200,ur=function(){};ur.prototype.append=function(e){return e.length?(e=ur.from(e),!this.length&&e||e.length=n?ur.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,n))};ur.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)};ur.prototype.forEach=function(e,n,r){n===void 0&&(n=0),r===void 0&&(r=this.length),n<=r?this.forEachInner(e,n,r,0):this.forEachInvertedInner(e,n,r,0)};ur.prototype.map=function(e,n,r){n===void 0&&(n=0),r===void 0&&(r=this.length);var i=[];return this.forEach(function(s,o){return i.push(e(s,o))},n,r),i};ur.from=function(e){return e instanceof ur?e:e&&e.length?new $R(e):ur.empty};var $R=function(t){function e(r){t.call(this),this.values=r}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var n={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(i,s){return i==0&&s==this.length?this:new e(this.values.slice(i,s))},e.prototype.getInner=function(i){return this.values[i]},e.prototype.forEachInner=function(i,s,o,l){for(var a=s;a=o;a--)if(i(this.values[a],l+a)===!1)return!1},e.prototype.leafAppend=function(i){if(this.length+i.length<=am)return new e(this.values.concat(i.flatten()))},e.prototype.leafPrepend=function(i){if(this.length+i.length<=am)return new e(i.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(e.prototype,n),e}(ur);ur.empty=new $R([]);var AH=function(t){function e(n,r){t.call(this),this.left=n,this.right=r,this.length=n.length+r.length,this.depth=Math.max(n.depth,r.depth)+1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(r){return rl&&this.right.forEachInner(r,Math.max(i-l,0),Math.min(this.length,s)-l,o+l)===!1)return!1},e.prototype.forEachInvertedInner=function(r,i,s,o){var l=this.left.length;if(i>l&&this.right.forEachInvertedInner(r,i-l,Math.max(s,l)-l,o+l)===!1||s=s?this.right.slice(r-s,i-s):this.left.slice(r,s).append(this.right.slice(0,i-s))},e.prototype.leafAppend=function(r){var i=this.right.leafAppend(r);if(i)return new e(this.left,i)},e.prototype.leafPrepend=function(r){var i=this.left.leafPrepend(r);if(i)return new e(i,this.right)},e.prototype.appendInner=function(r){return this.left.depth>=Math.max(this.right.depth,r.depth)+1?new e(this.left,new e(this.right,r)):new e(this,r)},e}(ur);const MH=500;class qi{constructor(e,n){this.items=e,this.eventCount=n}popEvent(e,n){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,s;n&&(i=this.remapping(r,this.items.length),s=i.maps.length);let o=e.tr,l,a,c=[],u=[];return this.items.forEach((d,h)=>{if(!d.step){i||(i=this.remapping(r,h+1),s=i.maps.length),s--,u.push(d);return}if(i){u.push(new Eo(d.map));let p=d.step.map(i.slice(s)),m;p&&o.maybeStep(p).doc&&(m=o.mapping.maps[o.mapping.maps.length-1],c.push(new Eo(m,void 0,void 0,c.length+u.length))),s--,m&&i.appendMap(m,s)}else o.maybeStep(d.step);if(d.selection)return l=i?d.selection.map(i.slice(s)):d.selection,a=new qi(this.items.slice(0,r).append(u.reverse().concat(c)),this.eventCount-1),!1},this.items.length,0),{remaining:a,transform:o,selection:l}}addTransform(e,n,r,i){let s=[],o=this.eventCount,l=this.items,a=!i&&l.length?l.get(l.length-1):null;for(let u=0;uRH&&(l=IH(l,c),o-=c),new qi(l.append(s),o)}remapping(e,n){let r=new md;return this.items.forEach((i,s)=>{let o=i.mirrorOffset!=null&&s-i.mirrorOffset>=e?r.maps.length-i.mirrorOffset:void 0;r.appendMap(i.map,o)},e,n),r}addMaps(e){return this.eventCount==0?this:new qi(this.items.append(e.map(n=>new Eo(n))),this.eventCount)}rebased(e,n){if(!this.eventCount)return this;let r=[],i=Math.max(0,this.items.length-n),s=e.mapping,o=e.steps.length,l=this.eventCount;this.items.forEach(h=>{h.selection&&l--},i);let a=n;this.items.forEach(h=>{let p=s.getMirror(--a);if(p==null)return;o=Math.min(o,p);let m=s.maps[p];if(h.step){let g=e.steps[p].invert(e.docs[p]),v=h.selection&&h.selection.map(s.slice(a+1,p));v&&l++,r.push(new Eo(m,g,v))}else r.push(new Eo(m))},i);let c=[];for(let h=n;hMH&&(d=d.compress(this.items.length-r.length)),d}emptyItemCount(){let e=0;return this.items.forEach(n=>{n.step||e++}),e}compress(e=this.items.length){let n=this.remapping(0,e),r=n.maps.length,i=[],s=0;return this.items.forEach((o,l)=>{if(l>=e)i.push(o),o.selection&&s++;else if(o.step){let a=o.step.map(n.slice(r)),c=a&&a.getMap();if(r--,c&&n.appendMap(c,r),a){let u=o.selection&&o.selection.map(n.slice(r));u&&s++;let d=new Eo(c.invert(),a,u),h,p=i.length-1;(h=i.length&&i[p].merge(d))?i[p]=h:i.push(d)}}else o.map&&r--},this.items.length,0),new qi(ur.from(i.reverse()),s)}}qi.empty=new qi(ur.empty,0);function IH(t,e){let n;return t.forEach((r,i)=>{if(r.selection&&e--==0)return n=i,!1}),t.slice(n)}let Eo=class BR{constructor(e,n,r,i){this.map=e,this.step=n,this.selection=r,this.mirrorOffset=i}merge(e){if(this.step&&e.step&&!e.selection){let n=e.step.merge(this.step);if(n)return new BR(n.getMap().invert(),n,this.selection)}}};class Do{constructor(e,n,r,i,s){this.done=e,this.undone=n,this.prevRanges=r,this.prevTime=i,this.prevComposition=s}}const RH=20;function DH(t,e,n,r){let i=n.getMeta(Ul),s;if(i)return i.historyState;n.getMeta(PH)&&(t=new Do(t.done,t.undone,null,0,-1));let o=n.getMeta("appendedTransaction");if(n.steps.length==0)return t;if(o&&o.getMeta(Ul))return o.getMeta(Ul).redo?new Do(t.done.addTransform(n,void 0,r,Ah(e)),t.undone,vE(n.mapping.maps),t.prevTime,t.prevComposition):new Do(t.done,t.undone.addTransform(n,void 0,r,Ah(e)),null,t.prevTime,t.prevComposition);if(n.getMeta("addToHistory")!==!1&&!(o&&o.getMeta("addToHistory")===!1)){let l=n.getMeta("composition"),a=t.prevTime==0||!o&&t.prevComposition!=l&&(t.prevTime<(n.time||0)-r.newGroupDelay||!OH(n,t.prevRanges)),c=o?Xy(t.prevRanges,n.mapping):vE(n.mapping.maps);return new Do(t.done.addTransform(n,a?e.selection.getBookmark():void 0,r,Ah(e)),qi.empty,c,n.time,l??t.prevComposition)}else return(s=n.getMeta("rebased"))?new Do(t.done.rebased(n,s),t.undone.rebased(n,s),Xy(t.prevRanges,n.mapping),t.prevTime,t.prevComposition):new Do(t.done.addMaps(n.mapping.maps),t.undone.addMaps(n.mapping.maps),Xy(t.prevRanges,n.mapping),t.prevTime,t.prevComposition)}function OH(t,e){if(!e)return!1;if(!t.docChanged)return!0;let n=!1;return t.mapping.maps[0].forEach((r,i)=>{for(let s=0;s=e[s]&&(n=!0)}),n}function vE(t){let e=[];for(let n=t.length-1;n>=0&&e.length==0;n--)t[n].forEach((r,i,s,o)=>e.push(s,o));return e}function Xy(t,e){if(!t)return null;let n=[];for(let r=0;r{let i=Ul.getState(n);if(!i||(t?i.undone:i.done).eventCount==0)return!1;if(r){let s=jH(i,n,t);s&&r(e?s.scrollIntoView():s)}return!0}}const HR=UR(!1,!0),VR=UR(!0,!0);mn.create({name:"characterCount",addOptions(){return{limit:null,mode:"textSize",textCounter:t=>t.length,wordCounter:t=>t.split(" ").filter(e=>e!=="").length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=t=>{const e=(t==null?void 0:t.node)||this.editor.state.doc;if(((t==null?void 0:t.mode)||this.options.mode)==="textSize"){const r=e.textBetween(0,e.content.size,void 0," ");return this.options.textCounter(r)}return e.nodeSize},this.storage.words=t=>{const e=(t==null?void 0:t.node)||this.editor.state.doc,n=e.textBetween(0,e.content.size," "," ");return this.options.wordCounter(n)}},addProseMirrorPlugins(){let t=!1;return[new hn({key:new pn("characterCount"),appendTransaction:(e,n,r)=>{if(t)return;const i=this.options.limit;if(i==null||i===0){t=!0;return}const s=this.storage.characters({node:r.doc});if(s>i){const o=s-i,l=0,a=o;console.warn(`[CharacterCount] Initial content exceeded limit of ${i} characters. Content was automatically trimmed.`);const c=r.tr.deleteRange(l,a);return t=!0,c}t=!0},filterTransaction:(e,n)=>{const r=this.options.limit;if(!e.docChanged||r===0||r===null||r===void 0)return!0;const i=this.storage.characters({node:n.doc}),s=this.storage.characters({node:e.doc});if(s<=r||i>r&&s>r&&s<=i)return!0;if(i>r&&s>r&&s>i||!e.getMeta("paste"))return!1;const l=e.selection.$head.pos,a=s-r,c=l-a,u=l;return e.deleteRange(c,u),!(this.storage.characters({node:e.doc})>r)}})]}});var _H=mn.create({name:"dropCursor",addOptions(){return{color:"currentColor",width:1,class:void 0}},addProseMirrorPlugins(){return[bH(this.options)]}});mn.create({name:"focus",addOptions(){return{className:"has-focus",mode:"all"}},addProseMirrorPlugins(){return[new hn({key:new pn("focus"),props:{decorations:({doc:t,selection:e})=>{const{isEditable:n,isFocused:r}=this.editor,{anchor:i}=e,s=[];if(!n||!r)return Mn.create(t,[]);let o=0;this.options.mode==="deepest"&&t.descendants((a,c)=>{if(a.isText)return;if(!(i>=c&&i<=c+a.nodeSize-1))return!1;o+=1});let l=0;return t.descendants((a,c)=>{if(a.isText||!(i>=c&&i<=c+a.nodeSize-1))return!1;if(l+=1,this.options.mode==="deepest"&&o-l>0||this.options.mode==="shallowest"&&l>1)return this.options.mode==="deepest";s.push(Fr.node(c,c+a.nodeSize,{class:this.options.className}))}),Mn.create(t,s)}}})]}});var zH=mn.create({name:"gapCursor",addProseMirrorPlugins(){return[SH()]},extendNodeSchema(t){var e;const n={name:t.name,options:t.options,storage:t.storage};return{allowGapCursor:(e=an(ut(t,"allowGapCursor",n)))!=null?e:null}}}),wE="placeholder";function FH(t){return t.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9-]/g,"").replace(/^[0-9-]+/,"").replace(/^-+/,"").toLowerCase()}mn.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",dataAttribute:wE,placeholder:"Write something …",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){const t=this.options.dataAttribute?`data-${FH(this.options.dataAttribute)}`:`data-${wE}`;return[new hn({key:new pn("placeholder"),props:{decorations:({doc:e,selection:n})=>{const r=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:i}=n,s=[];if(!r)return null;const o=this.editor.isEmpty;return e.descendants((l,a)=>{const c=i>=a&&i<=a+l.nodeSize,u=!l.isLeaf&&lg(l);if((c||!this.options.showOnlyCurrent)&&u){const d=[this.options.emptyNodeClass];o&&d.push(this.options.emptyEditorClass);const h=Fr.node(a,a+l.nodeSize,{class:d.join(" "),[t]:typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:l,pos:a,hasAnchor:c}):this.options.placeholder});s.push(h)}return this.options.includeChildren}),Mn.create(e,s)}}})]}});mn.create({name:"selection",addOptions(){return{className:"selection"}},addProseMirrorPlugins(){const{editor:t,options:e}=this;return[new hn({key:new pn("selection"),props:{decorations(n){return n.selection.empty||t.isFocused||!t.isEditable||f2(n.selection)||t.view.dragging?null:Mn.create(n.doc,[Fr.inline(n.selection.from,n.selection.to,{class:e.className})])}}})]}});function xE({types:t,node:e}){return e&&Array.isArray(t)&&t.includes(e.type)||(e==null?void 0:e.type)===t}var $H=mn.create({name:"trailingNode",addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){var t;const e=new pn(this.name),n=this.options.node||((t=this.editor.schema.topNodeType.contentMatch.defaultType)==null?void 0:t.name)||"paragraph",r=Object.entries(this.editor.schema.nodes).map(([,i])=>i).filter(i=>(this.options.notAfter||[]).concat(n).includes(i.name));return[new hn({key:e,appendTransaction:(i,s,o)=>{const{doc:l,tr:a,schema:c}=o,u=e.getState(o),d=l.content.size,h=c.nodes[n];if(u)return a.insert(d,h.create())},state:{init:(i,s)=>{const o=s.tr.doc.lastChild;return!xE({node:o,types:r})},apply:(i,s)=>{if(!i.docChanged||i.getMeta("__uniqueIDTransaction"))return s;const o=i.doc.lastChild;return!xE({node:o,types:r})}}})]}}),BH=mn.create({name:"undoRedo",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:t,dispatch:e})=>HR(t,e),redo:()=>({state:t,dispatch:e})=>VR(t,e)}},addProseMirrorPlugins(){return[LH(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),UH=mn.create({name:"starterKit",addExtensions(){var t,e,n,r;const i=[];return this.options.bold!==!1&&i.push(m8.configure(this.options.bold)),this.options.blockquote!==!1&&i.push(u8.configure(this.options.blockquote)),this.options.bulletList!==!1&&i.push(AR.configure(this.options.bulletList)),this.options.code!==!1&&i.push(v8.configure(this.options.code)),this.options.codeBlock!==!1&&i.push(x8.configure(this.options.codeBlock)),this.options.document!==!1&&i.push(k8.configure(this.options.document)),this.options.dropcursor!==!1&&i.push(_H.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&i.push(zH.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&i.push(S8.configure(this.options.hardBreak)),this.options.heading!==!1&&i.push(C8.configure(this.options.heading)),this.options.undoRedo!==!1&&i.push(BH.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&i.push(E8.configure(this.options.horizontalRule)),this.options.italic!==!1&&i.push(I8.configure(this.options.italic)),this.options.listItem!==!1&&i.push(MR.configure(this.options.listItem)),this.options.listKeymap!==!1&&i.push(PR.configure((t=this.options)==null?void 0:t.listKeymap)),this.options.link!==!1&&i.push(NR.configure((e=this.options)==null?void 0:e.link)),this.options.orderedList!==!1&&i.push(_R.configure(this.options.orderedList)),this.options.paragraph!==!1&&i.push(pH.configure(this.options.paragraph)),this.options.strike!==!1&&i.push(yH.configure(this.options.strike)),this.options.text!==!1&&i.push(vH.configure(this.options.text)),this.options.underline!==!1&&i.push(zR.configure((n=this.options)==null?void 0:n.underline)),this.options.trailingNode!==!1&&i.push($H.configure((r=this.options)==null?void 0:r.trailingNode)),i}}),ta=UH;function Lx({value:t,onChange:e,onEnter:n,onArrowUp:r,onArrowDown:i,onFocus:s,placeholder:o,autoFocus:l,onBackspaceEmpty:a}){(t||"").replace(/<[^>]+>/g,"");const c=gg({extensions:[ta.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,codeBlock:!1,blockquote:!1,horizontalRule:!1}),bg],content:t||"",editorProps:{attributes:{class:"rt-item"},handleKeyDown(u,d){if(d.ctrlKey||d.metaKey)switch((d.key||"").toLowerCase()){case"b":{if(d.preventDefault(),!c)return!0;const p=c.state.selection;if(p&&p.empty){const m=p.$from;let g=m.depth;for(;g>0&&!m.node(g).isBlock;)g--;const v=m.start(g),y=m.end(g);c.chain().focus().setTextSelection({from:v,to:y}).toggleBold().run();try{c.chain().setTextSelection(p.from).run()}catch{}}else c.chain().focus().toggleBold().run();return!0}case"i":{if(d.preventDefault(),!c)return!0;const p=c.state.selection;if(p&&p.empty){const m=p.$from;let g=m.depth;for(;g>0&&!m.node(g).isBlock;)g--;const v=m.start(g),y=m.end(g);c.chain().focus().setTextSelection({from:v,to:y}).toggleItalic().run();try{c.chain().setTextSelection(p.from).run()}catch{}}else c.chain().focus().toggleItalic().run();return!0}case"u":{if(d.preventDefault(),!c)return!0;const p=c.state.selection;if(p&&p.empty){const m=p.$from;let g=m.depth;for(;g>0&&!m.node(g).isBlock;)g--;const v=m.start(g),y=m.end(g);c.chain().focus().setTextSelection({from:v,to:y}).toggleUnderline().run();try{c.chain().setTextSelection(p.from).run()}catch{}}else c.chain().focus().toggleUnderline().run();return!0}}if(d.key==="Enter"&&!d.shiftKey)return d.preventDefault(),n&&n(),!0;if(d.key==="ArrowUp")return d.preventDefault(),r&&r(),!0;if(d.key==="ArrowDown")return d.preventDefault(),i&&i(),!0;if(d.key==="Backspace")try{if(((c==null?void 0:c.getText())||"").trim().length===0)return d.preventDefault(),a&&a(),!0}catch{}return!1}},onUpdate({editor:u}){e(u.getHTML())},onFocus({editor:u}){s&&s(u)},onSelectionUpdate({editor:u}){s&&s(u)}});return B.useEffect(()=>{if(c){if(s&&s(c),l)try{c.chain().focus().run()}catch{}return()=>{}}},[c]),B.useEffect(()=>{if(c)try{if(c.isFocused)return;const u=c.getHTML(),d=t||"";u!==d&&c.commands.setContent(d,{emitUpdate:!1})}catch{}},[t,c]),f.jsx("div",{children:f.jsx(Zd,{editor:c})})}const HH=["","#ffffff","#fff9c4","#fffde7","#fff8e1","#fff3e0","#fff1f0","#fff0f6","#f5f5f5","#f0f0f0","#f3e5f5","#fce4ec","#e3f2fd","#e8f5e9","#f9fbe7","#fff3b0","#ffd7a6","#ffccbc","#f8bbd0","#e1bee7","#b3e5fc","#ffe082","#ffb74d","#ff8a65","#f06292","#ba68c8","#4fc3f7","#c8e6c9","#a5d6a7","#2b2b2b","#1f2933","#121212","#263238","#37474f","#212121"];function tf({anchorRef:t,onPick:e,onClose:n}){const r=w.useRef(null),[i,s]=w.useState({visibility:"hidden",position:"fixed",top:0,left:0});w.useLayoutEffect(()=>{const l=t&&t.current,a=r.current;if(!l||!a){const u=Math.max(8,(window.innerWidth-a.offsetWidth)/2),d=Math.max(8,(window.innerHeight-a.offsetHeight)/2);s(h=>({...h,left:u,top:d,visibility:"visible"}));return}const c=l.getBoundingClientRect();s(u=>({...u,visibility:"hidden"})),requestAnimationFrame(()=>{const u=a.offsetWidth,d=a.offsetHeight,h=8;let p=c.left;p+u>window.innerWidth-8&&(p=Math.max(8,window.innerWidth-u-8)),p=Math.max(8,p);let m=c.bottom+h;m+d>window.innerHeight-8&&(m=c.top-d-h,m<8&&(m=Math.max(8,window.innerHeight-d-8))),s({position:"fixed",top:m,left:p,visibility:"visible",zIndex:200})})},[t]),w.useLayoutEffect(()=>{function l(a){r.current&&(r.current.contains(a.target)||n())}return document.addEventListener("mousedown",l),()=>document.removeEventListener("mousedown",l)},[n]);const o=f.jsx("div",{ref:r,className:"palette-popover",style:i,children:f.jsx("div",{className:"palette-grid",children:HH.map((l,a)=>f.jsx("button",{className:"palette-swatch",onClick:()=>{e(l)},style:{background:l||"var(--card)"},title:l||"Default","aria-label":l||"Default color"},a))})});return zn.createPortal(o,document.body)}function nf({onClose:t,onSet:e}){const n=new Date,r=c=>c.toString().padStart(2,"0"),[i,s]=w.useState(`${n.getFullYear()}-${r(n.getMonth()+1)}-${r(n.getDate())}`),[o,l]=w.useState(`${r(n.getHours())}:${r(n.getMinutes())}`);function a(){const c=new Date(`${i}T${o}:00`).toISOString();e(c)}return f.jsx("div",{className:"reminder-backdrop",onClick:t,children:f.jsxs("div",{className:"reminder-popover",onClick:c=>c.stopPropagation(),children:[f.jsxs("div",{className:"dialog-header",children:[f.jsx("strong",{children:"Set reminder"}),f.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),f.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",marginTop:8},children:[f.jsx("input",{type:"date",value:i,onChange:c=>s(c.target.value)}),f.jsx("input",{type:"time",value:o,onChange:c=>l(c.target.value)})]}),f.jsxs("div",{style:{display:"flex",gap:8,marginTop:12},children:[f.jsx("button",{className:"btn",onClick:a,children:"Set"}),f.jsx("button",{className:"btn",onClick:t,children:"Cancel"})]})]})})}function kc({onClose:t,onSelect:e,current:n,onRemove:r,ownerId:i}){const{token:s,user:o}=Sr(),[l,a]=w.useState(""),[c,u]=w.useState([]);w.useEffect(()=>{(async()=>{try{const m=await fetch("/api/users",{headers:{Authorization:s?`Bearer ${s}`:""}});if(!m.ok)throw new Error(await m.text());const g=await m.json();u(Array.isArray(g.users)?g.users:[])}catch(m){console.warn("Failed to load users",m)}})()},[s]);const d=w.useMemo(()=>new Set(n.map(m=>m.userId)),[n]),h=w.useMemo(()=>c.filter(m=>{const g=m.email.includes(l)||(m.name||m.email.split("@")[0]).toLowerCase().includes(l.toLowerCase()),v=o?m.id!==o.id:!0,y=!d.has(m.id);return g&&v&&y}),[l,c,o,d]),p=f.jsx("div",{className:"collab-modal-backdrop",onClick:t,style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.35)",zIndex:1e3},children:f.jsxs("div",{className:"collab-modal",onClick:m=>m.stopPropagation(),style:{width:"min(720px, 95vw)",maxHeight:"80vh",overflowY:"auto",margin:"10vh auto 0",borderRadius:8,boxShadow:"0 10px 28px rgba(0,0,0,0.5)",padding:16},children:[f.jsxs("div",{className:"collab-header",style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[f.jsx("strong",{children:"Add collaborators"}),f.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),f.jsx("input",{className:"collab-search",placeholder:"Search users...",value:l,onChange:m=>a(m.target.value),style:{width:"100%",marginBottom:12}}),f.jsxs("div",{className:"collab-current",style:{marginBottom:16},children:[f.jsx("div",{className:"collab-section-title",style:{fontWeight:600,opacity:.8,marginBottom:6},children:"Current collaborators"}),n.length===0&&f.jsx("div",{className:"collab-empty",children:"None"}),n.map(m=>f.jsxs("div",{className:"collab-item",style:{display:"flex",alignItems:"center",gap:8,padding:"6px 0"},children:[m.userImageUrl?f.jsx("img",{src:m.userImageUrl,alt:"",style:{width:28,height:28,borderRadius:"50%",objectFit:"cover"}}):f.jsx("div",{className:"collab-avatar",style:{width:28,height:28,borderRadius:"50%",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:(m.name||m.email.split("@")[0])[0].toUpperCase()}),f.jsx("div",{className:"collab-info",style:{flex:1},children:f.jsx("div",{className:"collab-name",title:m.email,children:m.name||m.email.split("@")[0]})}),typeof m.collabId=="number"&&((o==null?void 0:o.id)===i||(o==null?void 0:o.id)===m.userId)&&f.jsx("button",{className:"tiny danger",onClick:()=>m.collabId&&r(m.collabId),"aria-label":"Remove collaborator",title:"Remove",children:"🗑"})]},m.userId))]}),f.jsxs("div",{className:"collab-list",children:[f.jsx("div",{className:"collab-section-title",style:{fontWeight:600,opacity:.8,marginBottom:6},children:"Other users"}),h.map(m=>f.jsxs("div",{className:"collab-item",onClick:()=>e(m),style:{display:"flex",alignItems:"center",gap:8,padding:"6px 0",cursor:"pointer"},children:[m.userImageUrl?f.jsx("img",{src:m.userImageUrl,alt:"",style:{width:28,height:28,borderRadius:"50%",objectFit:"cover"}}):f.jsx("div",{className:"collab-avatar",style:{width:28,height:28,borderRadius:"50%",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:(m.name||m.email.split("@")[0])[0].toUpperCase()}),f.jsx("div",{className:"collab-info",style:{flex:1},children:f.jsx("div",{className:"collab-name",title:m.email,children:m.name||m.email.split("@")[0]})})]},m.id)),h.length===0&&f.jsx("div",{className:"collab-empty",children:"No users found"})]})]})});try{if(typeof document<"u")return zn.createPortal(p,document.body)}catch{}return p}function rf({onClose:t,onAdd:e}){const[n,r]=w.useState(""),i=w.useRef(null);w.useEffect(()=>(window.dispatchEvent(new Event("freemannotes:editor-modal-open")),()=>{window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}),[]);function s(){var c;(c=i.current)==null||c.click()}function o(c){const u=c.target.files&&c.target.files[0];if(!u)return;const d=new FileReader;d.onload=()=>{e(String(d.result))},d.readAsDataURL(u),t()}function l(c){c==null||c.preventDefault(),n&&(e(n),t())}const a=f.jsx("div",{className:"image-dialog-backdrop",onClick:t,children:f.jsxs("div",{className:"image-dialog",onClick:c=>c.stopPropagation(),children:[f.jsxs("div",{className:"dialog-header",children:[f.jsx("strong",{children:"Add image"}),f.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),f.jsxs("form",{onSubmit:l,className:"image-form",children:[f.jsx("input",{placeholder:"Image URL",value:n,onChange:c=>r(c.target.value),className:"image-url-input"}),f.jsxs("div",{style:{display:"flex",gap:8,marginTop:8},children:[f.jsx("button",{type:"submit",className:"btn",children:"Add URL"}),f.jsx("button",{type:"button",className:"btn",onClick:s,children:"Choose file"})]})]}),f.jsx("input",{ref:i,type:"file",accept:"image/*",style:{display:"none"},onChange:o})]})});return typeof document<"u"?zn.createPortal(a,document.body):a}function WR({url:t,onClose:e}){const n=B.useRef(null),[r,i]=B.useState("fit"),[s,o]=B.useState(1),[l,a]=B.useState({x:0,y:0}),c=B.useRef(!1),u=B.useRef(null);B.useEffect(()=>{const x=C=>{C.key==="Escape"&&e()};return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[e]);const d=(x,C,S)=>Math.min(Math.max(x,C),S),h=(x,C,S)=>{const M=typeof S=="number"?S:s,N=n.current;if(!N)return{x,y:C};const z=N.clientWidth,ee=N.clientHeight,L=z*(M-1)/2,q=ee*(M-1)/2;return{x:d(x,-L,L),y:d(C,-q,q)}},p=()=>{r==="fit"?(i("zoom"),o(1.6),a(h(l.x,l.y,1.6))):(i("fit"),o(1),a({x:0,y:0}),c.current=!1,u.current=null)},m=x=>{if(r!=="zoom")return;x.preventDefault();const S=x.deltaY>0?.92:1.08,M=d(s*S,1,6);o(M),a(N=>h(N.x,N.y,M))},g=x=>{r==="zoom"&&x.button===0&&(c.current=!0,u.current={x:x.clientX,y:x.clientY})},v=x=>{if(!c.current||r!=="zoom")return;const C=u.current;if(!C)return;const S=x.clientX-C.x,M=x.clientY-C.y;u.current={x:x.clientX,y:x.clientY},a(N=>h(N.x+S,N.y+M))},y=()=>{c.current=!1,u.current=null},b=f.jsx("div",{className:"lightbox-backdrop",onClick:e,style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.7)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4},children:f.jsxs("div",{className:"lightbox-content",ref:n,onClick:x=>{x.stopPropagation(),p()},onWheel:m,onMouseDown:g,onMouseMove:v,onMouseUp:y,onMouseLeave:y,style:{width:"96vw",height:"92vh",position:"relative",display:"flex",alignItems:"center",justifyContent:"center",cursor:r==="fit"?"zoom-in":c.current?"grabbing":"grab"},children:[f.jsx("img",{src:t,alt:"full view",style:{width:"100%",height:"100%",objectFit:"contain",borderRadius:8,display:"block",transform:`translate(${l.x}px, ${l.y}px) scale(${s})`,transition:c.current?"none":"transform 120ms ease"}}),r==="zoom"&&f.jsxs("div",{style:{position:"absolute",top:10,left:10,display:"flex",gap:8},onClick:x=>x.stopPropagation(),children:[f.jsx("button",{className:"btn","aria-label":"Zoom in",onClick:()=>{const x=d(s*1.12,1,6);o(x),a(C=>h(C.x,C.y,x))},children:"+"}),f.jsx("button",{className:"btn","aria-label":"Zoom out",onClick:()=>{const x=d(s/1.12,1,6);o(x),a(C=>h(C.x,C.y,x))},children:"-"}),f.jsx("button",{className:"btn","aria-label":"Reset",onClick:()=>{o(1),a({x:0,y:0}),i("fit")},children:"Reset"})]}),f.jsx("button",{className:"btn",onClick:x=>{x.stopPropagation(),e()},style:{position:"absolute",top:10,right:10},"aria-label":"Close",children:"Close"})]})});return typeof document<"u"?zn.createPortal(b,document.body):b}/*! + * Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2025 Fonticons, Inc. + */function nb(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(a){throw a},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s,o=!0,l=!1;return{s:function(){n=n.call(t)},n:function(){var a=n.next();return o=a.done,a},e:function(a){l=!0,s=a},f:function(){try{o||n.return==null||n.return()}finally{if(l)throw s}}}}function Ut(t,e,n){return(e=KR(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function JH(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function GH(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,s,o,l=[],a=!0,c=!1;try{if(s=(n=n.call(t)).next,e===0){if(Object(n)!==n)return;a=!1}else for(;!(a=(r=s.call(n)).done)&&(l.push(r.value),l.length!==e);a=!0);}catch(u){c=!0,i=u}finally{try{if(!a&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw i}}return l}}function XH(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function QH(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kE(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Oe(t){for(var e=1;e-1;i--){var s=n[i],o=(s.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(r=s)}return Cn.head.insertBefore(e,r),t}}var H7="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function RE(){for(var t=12,e="";t-- >0;)e+=H7[Math.random()*62|0];return e}function _c(t){for(var e=[],n=(t||[]).length>>>0;n--;)e[n]=t[n];return e}function Ux(t){return t.classList?_c(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(e){return e})}function ND(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function V7(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,'="').concat(ND(t[n]),'" ')},"").trim()}function xg(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,": ").concat(t[n].trim(),";")},"")}function Hx(t){return t.size!==ws.size||t.x!==ws.x||t.y!==ws.y||t.rotate!==ws.rotate||t.flipX||t.flipY}function W7(t){var e=t.transform,n=t.containerWidth,r=t.iconWidth,i={transform:"translate(".concat(n/2," 256)")},s="translate(".concat(e.x*32,", ").concat(e.y*32,") "),o="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),l="rotate(".concat(e.rotate," 0 0)"),a={transform:"".concat(s," ").concat(o," ").concat(l)},c={transform:"translate(".concat(r/2*-1," -256)")};return{outer:i,inner:a,path:c}}function K7(t){var e=t.transform,n=t.width,r=n===void 0?ib:n,i=t.height,s=i===void 0?ib:i,o="";return GR?o+="translate(".concat(e.x/ba-r/2,"em, ").concat(e.y/ba-s/2,"em) "):o+="translate(calc(-50% + ".concat(e.x/ba,"em), calc(-50% + ").concat(e.y/ba,"em)) "),o+="scale(".concat(e.size/ba*(e.flipX?-1:1),", ").concat(e.size/ba*(e.flipY?-1:1),") "),o+="rotate(".concat(e.rotate,"deg) "),o}var Y7=`:root, :host { + --fa-font-solid: normal 900 1em/1 "Font Awesome 7 Free"; + --fa-font-regular: normal 400 1em/1 "Font Awesome 7 Free"; + --fa-font-light: normal 300 1em/1 "Font Awesome 7 Pro"; + --fa-font-thin: normal 100 1em/1 "Font Awesome 7 Pro"; + --fa-font-duotone: normal 900 1em/1 "Font Awesome 7 Duotone"; + --fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 7 Duotone"; + --fa-font-duotone-light: normal 300 1em/1 "Font Awesome 7 Duotone"; + --fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 7 Duotone"; + --fa-font-brands: normal 400 1em/1 "Font Awesome 7 Brands"; + --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-slab-regular: normal 400 1em/1 "Font Awesome 7 Slab"; + --fa-font-slab-press-regular: normal 400 1em/1 "Font Awesome 7 Slab Press"; + --fa-font-whiteboard-semibold: normal 600 1em/1 "Font Awesome 7 Whiteboard"; + --fa-font-thumbprint-light: normal 300 1em/1 "Font Awesome 7 Thumbprint"; + --fa-font-notdog-solid: normal 900 1em/1 "Font Awesome 7 Notdog"; + --fa-font-notdog-duo-solid: normal 900 1em/1 "Font Awesome 7 Notdog Duo"; + --fa-font-etch-solid: normal 900 1em/1 "Font Awesome 7 Etch"; + --fa-font-jelly-regular: normal 400 1em/1 "Font Awesome 7 Jelly"; + --fa-font-jelly-fill-regular: normal 400 1em/1 "Font Awesome 7 Jelly Fill"; + --fa-font-jelly-duo-regular: normal 400 1em/1 "Font Awesome 7 Jelly Duo"; + --fa-font-chisel-regular: normal 400 1em/1 "Font Awesome 7 Chisel"; + --fa-font-utility-semibold: normal 600 1em/1 "Font Awesome 7 Utility"; + --fa-font-utility-duo-semibold: normal 600 1em/1 "Font Awesome 7 Utility Duo"; + --fa-font-utility-fill-semibold: normal 600 1em/1 "Font Awesome 7 Utility Fill"; +} + +.svg-inline--fa { + box-sizing: content-box; + display: var(--fa-display, inline-block); + height: 1em; + overflow: visible; + vertical-align: -0.125em; + width: var(--fa-width, 1.25em); +} +.svg-inline--fa.fa-2xs { + vertical-align: 0.1em; +} +.svg-inline--fa.fa-xs { + vertical-align: 0em; +} +.svg-inline--fa.fa-sm { + vertical-align: -0.0714285714em; +} +.svg-inline--fa.fa-lg { + vertical-align: -0.2em; +} +.svg-inline--fa.fa-xl { + vertical-align: -0.25em; +} +.svg-inline--fa.fa-2xl { + vertical-align: -0.3125em; +} +.svg-inline--fa.fa-pull-left, +.svg-inline--fa .fa-pull-start { + float: inline-start; + margin-inline-end: var(--fa-pull-margin, 0.3em); +} +.svg-inline--fa.fa-pull-right, +.svg-inline--fa .fa-pull-end { + float: inline-end; + margin-inline-start: var(--fa-pull-margin, 0.3em); +} +.svg-inline--fa.fa-li { + width: var(--fa-li-width, 2em); + inset-inline-start: calc(-1 * var(--fa-li-width, 2em)); + inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */ +} + +.fa-layers-counter, .fa-layers-text { + display: inline-block; + position: absolute; + text-align: center; +} + +.fa-layers { + display: inline-block; + height: 1em; + position: relative; + text-align: center; + vertical-align: -0.125em; + width: var(--fa-width, 1.25em); +} +.fa-layers .svg-inline--fa { + inset: 0; + margin: auto; + position: absolute; + transform-origin: center center; +} + +.fa-layers-text { + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + transform-origin: center center; +} + +.fa-layers-counter { + background-color: var(--fa-counter-background-color, #ff253a); + border-radius: var(--fa-counter-border-radius, 1em); + box-sizing: border-box; + color: var(--fa-inverse, #fff); + line-height: var(--fa-counter-line-height, 1); + max-width: var(--fa-counter-max-width, 5em); + min-width: var(--fa-counter-min-width, 1.5em); + overflow: hidden; + padding: var(--fa-counter-padding, 0.25em 0.5em); + right: var(--fa-right, 0); + text-overflow: ellipsis; + top: var(--fa-top, 0); + transform: scale(var(--fa-counter-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-bottom-right { + bottom: var(--fa-bottom, 0); + right: var(--fa-right, 0); + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom right; +} + +.fa-layers-bottom-left { + bottom: var(--fa-bottom, 0); + left: var(--fa-left, 0); + right: auto; + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom left; +} + +.fa-layers-top-right { + top: var(--fa-top, 0); + right: var(--fa-right, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-top-left { + left: var(--fa-left, 0); + right: auto; + top: var(--fa-top, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top left; +} + +.fa-1x { + font-size: 1em; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-6x { + font-size: 6em; +} + +.fa-7x { + font-size: 7em; +} + +.fa-8x { + font-size: 8em; +} + +.fa-9x { + font-size: 9em; +} + +.fa-10x { + font-size: 10em; +} + +.fa-2xs { + font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-xs { + font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-sm { + font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-lg { + font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-xl { + font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-2xl { + font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-width-auto { + --fa-width: auto; +} + +.fa-fw, +.fa-width-fixed { + --fa-width: 1.25em; +} + +.fa-ul { + list-style-type: none; + margin-inline-start: var(--fa-li-margin, 2.5em); + padding-inline-start: 0; +} +.fa-ul > li { + position: relative; +} + +.fa-li { + inset-inline-start: calc(-1 * var(--fa-li-width, 2em)); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; +} + +/* Heads Up: Bordered Icons will not be supported in the future! + - This feature will be deprecated in the next major release of Font Awesome (v8)! + - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8. +*/ +/* Notes: +* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size) +* --@{v.$css-prefix}-border-padding = + ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it's vertical alignment) + ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon) +*/ +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.0625em); + box-sizing: var(--fa-border-box-sizing, content-box); + padding: var(--fa-border-padding, 0.1875em 0.25em); +} + +.fa-pull-left, +.fa-pull-start { + float: inline-start; + margin-inline-end: var(--fa-pull-margin, 0.3em); +} + +.fa-pull-right, +.fa-pull-end { + float: inline-end; + margin-inline-start: var(--fa-pull-margin, 0.3em); +} + +.fa-beat { + animation-name: fa-beat; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-bounce { + animation-name: fa-bounce; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); +} + +.fa-fade { + animation-name: fa-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-beat-fade { + animation-name: fa-beat-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-flip { + animation-name: fa-flip; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-shake { + animation-name: fa-shake; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin { + animation-name: fa-spin; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 2s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin-reverse { + --fa-animation-direction: reverse; +} + +.fa-pulse, +.fa-spin-pulse { + animation-name: fa-spin; + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, steps(8)); +} + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + animation: none !important; + transition: none !important; + } +} +@keyframes fa-beat { + 0%, 90% { + transform: scale(1); + } + 45% { + transform: scale(var(--fa-beat-scale, 1.25)); + } +} +@keyframes fa-bounce { + 0% { + transform: scale(1, 1) translateY(0); + } + 10% { + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + } + 30% { + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + } + 50% { + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + } + 57% { + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + } + 64% { + transform: scale(1, 1) translateY(0); + } + 100% { + transform: scale(1, 1) translateY(0); + } +} +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); + } +} +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + transform: scale(1); + } + 50% { + opacity: 1; + transform: scale(var(--fa-beat-fade-scale, 1.125)); + } +} +@keyframes fa-flip { + 50% { + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + } +} +@keyframes fa-shake { + 0% { + transform: rotate(-15deg); + } + 4% { + transform: rotate(15deg); + } + 8%, 24% { + transform: rotate(-18deg); + } + 12%, 28% { + transform: rotate(18deg); + } + 16% { + transform: rotate(-22deg); + } + 20% { + transform: rotate(22deg); + } + 32% { + transform: rotate(-12deg); + } + 36% { + transform: rotate(12deg); + } + 40%, 100% { + transform: rotate(0deg); + } +} +@keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.fa-rotate-90 { + transform: rotate(90deg); +} + +.fa-rotate-180 { + transform: rotate(180deg); +} + +.fa-rotate-270 { + transform: rotate(270deg); +} + +.fa-flip-horizontal { + transform: scale(-1, 1); +} + +.fa-flip-vertical { + transform: scale(1, -1); +} + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1, -1); +} + +.fa-rotate-by { + transform: rotate(var(--fa-rotate-angle, 0)); +} + +.svg-inline--fa .fa-primary { + fill: var(--fa-primary-color, currentColor); + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa .fa-secondary { + fill: var(--fa-secondary-color, currentColor); + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-primary { + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-secondary { + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa mask .fa-primary, +.svg-inline--fa mask .fa-secondary { + fill: black; +} + +.svg-inline--fa.fa-inverse { + fill: var(--fa-inverse, #fff); +} + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; +} + +.fa-inverse { + color: var(--fa-inverse, #fff); +} + +.svg-inline--fa.fa-stack-1x { + --fa-width: 1.25em; + height: 1em; + width: var(--fa-width); +} +.svg-inline--fa.fa-stack-2x { + --fa-width: 2.5em; + height: 2em; + width: var(--fa-width); +} + +.fa-stack-1x, +.fa-stack-2x { + inset: 0; + margin: auto; + position: absolute; + z-index: var(--fa-stack-z-index, auto); +}`;function TD(){var t=bD,e=wD,n=ht.cssPrefix,r=ht.replacementClass,i=Y7;if(n!==t||r!==e){var s=new RegExp("\\.".concat(t,"\\-"),"g"),o=new RegExp("\\--".concat(t,"\\-"),"g"),l=new RegExp("\\.".concat(e),"g");i=i.replace(s,".".concat(n,"-")).replace(o,"--".concat(n,"-")).replace(l,".".concat(r))}return i}var DE=!1;function nv(){ht.autoAddCss&&!DE&&(U7(TD()),DE=!0)}var q7={mixout:function(){return{dom:{css:TD,insertCss:nv}}},hooks:function(){return{beforeDOMElementCreation:function(){nv()},beforeI2svg:function(){nv()}}}},co=al||{};co[ao]||(co[ao]={});co[ao].styles||(co[ao].styles={});co[ao].hooks||(co[ao].hooks={});co[ao].shims||(co[ao].shims=[]);var Gi=co[ao],AD=[],MD=function(){Cn.removeEventListener("DOMContentLoaded",MD),um=1,AD.map(function(e){return e()})},um=!1;vo&&(um=(Cn.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(Cn.readyState),um||Cn.addEventListener("DOMContentLoaded",MD));function J7(t){vo&&(um?setTimeout(t,0):AD.push(t))}function lf(t){var e=t.tag,n=t.attributes,r=n===void 0?{}:n,i=t.children,s=i===void 0?[]:i;return typeof t=="string"?ND(t):"<".concat(e," ").concat(V7(r),">").concat(s.map(lf).join(""),"")}function OE(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}var rv=function(e,n,r,i){var s=Object.keys(e),o=s.length,l=n,a,c,u;for(r===void 0?(a=1,u=e[s[0]]):(a=0,u=r);a2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,i=r===void 0?!1:r,s=jE(e);typeof Gi.hooks.addPack=="function"&&!i?Gi.hooks.addPack(t,jE(e)):Gi.styles[t]=Oe(Oe({},Gi.styles[t]||{}),s),t==="fas"&&cb("fa",e)}var Ed=Gi.styles,G7=Gi.shims,RD=Object.keys(Bx),X7=RD.reduce(function(t,e){return t[e]=Object.keys(Bx[e]),t},{}),Vx=null,DD={},OD={},jD={},PD={},LD={};function Q7(t){return~_7.indexOf(t)}function Z7(t,e){var n=e.split("-"),r=n[0],i=n.slice(1).join("-");return r===t&&i!==""&&!Q7(i)?i:null}var _D=function(){var e=function(s){return rv(Ed,function(o,l,a){return o[a]=rv(l,s,{}),o},{})};DD=e(function(i,s,o){if(s[3]&&(i[s[3]]=o),s[2]){var l=s[2].filter(function(a){return typeof a=="number"});l.forEach(function(a){i[a.toString(16)]=o})}return i}),OD=e(function(i,s,o){if(i[o]=o,s[2]){var l=s[2].filter(function(a){return typeof a=="string"});l.forEach(function(a){i[a]=o})}return i}),LD=e(function(i,s,o){var l=s[2];return i[o]=o,l.forEach(function(a){i[a]=o}),i});var n="far"in Ed||ht.autoFetchSvg,r=rv(G7,function(i,s){var o=s[0],l=s[1],a=s[2];return l==="far"&&!n&&(l="fas"),typeof o=="string"&&(i.names[o]={prefix:l,iconName:a}),typeof o=="number"&&(i.unicodes[o.toString(16)]={prefix:l,iconName:a}),i},{names:{},unicodes:{}});jD=r.names,PD=r.unicodes,Vx=kg(ht.styleDefault,{family:ht.familyDefault})};B7(function(t){Vx=kg(t.styleDefault,{family:ht.familyDefault})});_D();function Wx(t,e){return(DD[t]||{})[e]}function eW(t,e){return(OD[t]||{})[e]}function jl(t,e){return(LD[t]||{})[e]}function zD(t){return jD[t]||{prefix:null,iconName:null}}function tW(t){var e=PD[t],n=Wx("fas",t);return e||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function cl(){return Vx}var FD=function(){return{prefix:null,iconName:null,rest:[]}};function nW(t){var e=kr,n=RD.reduce(function(r,i){return r[i]="".concat(ht.cssPrefix,"-").concat(i),r},{});return mD.forEach(function(r){(t.includes(n[r])||t.some(function(i){return X7[r].includes(i)}))&&(e=r)}),e}function kg(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.family,r=n===void 0?kr:n,i=D7[r][t];if(r===sf&&!t)return"fad";var s=IE[r][t]||IE[r][i],o=t in Gi.styles?t:null,l=s||o||null;return l}function rW(t){var e=[],n=null;return t.forEach(function(r){var i=Z7(ht.cssPrefix,r);i?n=i:r&&e.push(r)}),{iconName:n,rest:e}}function PE(t){return t.sort().filter(function(e,n,r){return r.indexOf(e)===n})}var LE=yD.concat(gD);function Sg(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.skipLookups,r=n===void 0?!1:n,i=null,s=PE(t.filter(function(p){return LE.includes(p)})),o=PE(t.filter(function(p){return!LE.includes(p)})),l=s.filter(function(p){return i=p,!QR.includes(p)}),a=wg(l,1),c=a[0],u=c===void 0?null:c,d=nW(s),h=Oe(Oe({},rW(o)),{},{prefix:kg(u,{family:d})});return Oe(Oe(Oe({},h),lW({values:t,family:d,styles:Ed,config:ht,canonical:h,givenPrefix:i})),iW(r,i,h))}function iW(t,e,n){var r=n.prefix,i=n.iconName;if(t||!r||!i)return{prefix:r,iconName:i};var s=e==="fa"?zD(i):{},o=jl(r,i);return i=s.iconName||o||i,r=s.prefix||r,r==="far"&&!Ed.far&&Ed.fas&&!ht.autoFetchSvg&&(r="fas"),{prefix:r,iconName:i}}var sW=mD.filter(function(t){return t!==kr||t!==sf}),oW=Object.keys(rb).filter(function(t){return t!==kr}).map(function(t){return Object.keys(rb[t])}).flat();function lW(t){var e=t.values,n=t.family,r=t.canonical,i=t.givenPrefix,s=i===void 0?"":i,o=t.styles,l=o===void 0?{}:o,a=t.config,c=a===void 0?{}:a,u=n===sf,d=e.includes("fa-duotone")||e.includes("fad"),h=c.familyDefault==="duotone",p=r.prefix==="fad"||r.prefix==="fa-duotone";if(!u&&(d||h||p)&&(r.prefix="fad"),(e.includes("fa-brands")||e.includes("fab"))&&(r.prefix="fab"),!r.prefix&&sW.includes(n)){var m=Object.keys(l).find(function(v){return oW.includes(v)});if(m||c.autoFetchSvg){var g=CV.get(n).defaultShortPrefixId;r.prefix=g,r.iconName=jl(r.prefix,r.iconName)||r.iconName}}return(r.prefix==="fa"||s==="fa")&&(r.prefix=cl()||"fas"),r}var aW=function(){function t(){KH(this,t),this.definitions={}}return qH(t,[{key:"add",value:function(){for(var n=this,r=arguments.length,i=new Array(r),s=0;s0&&u.forEach(function(d){typeof d=="string"&&(n[l][d]=c)}),n[l][a]=c}),n}}])}(),_E=[],Ba={},Qa={},cW=Object.keys(Qa);function uW(t,e){var n=e.mixoutsTo;return _E=t,Ba={},Object.keys(Qa).forEach(function(r){cW.indexOf(r)===-1&&delete Qa[r]}),_E.forEach(function(r){var i=r.mixout?r.mixout():{};if(Object.keys(i).forEach(function(o){typeof i[o]=="function"&&(n[o]=i[o]),cm(i[o])==="object"&&Object.keys(i[o]).forEach(function(l){n[o]||(n[o]={}),n[o][l]=i[o][l]})}),r.hooks){var s=r.hooks();Object.keys(s).forEach(function(o){Ba[o]||(Ba[o]=[]),Ba[o].push(s[o])})}r.provides&&r.provides(Qa)}),n}function ub(t,e){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i1?e-1:0),r=1;r0&&arguments[0]!==void 0?arguments[0]:{};return vo?(ra("beforeI2svg",e),ul("pseudoElements2svg",e),ul("i2svg",e)):Promise.reject(new Error("Operation requires a DOM of some kind."))},watch:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot;ht.autoReplaceSvg===!1&&(ht.autoReplaceSvg=!0),ht.observeMutations=!0,J7(function(){pW({autoReplaceSvgRoot:n}),ra("watch",e)})}},hW={icon:function(e){if(e===null)return null;if(cm(e)==="object"&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:jl(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&e.length===2){var n=e[1].indexOf("fa-")===0?e[1].slice(3):e[1],r=kg(e[0]);return{prefix:r,iconName:jl(r,n)||n}}if(typeof e=="string"&&(e.indexOf("".concat(ht.cssPrefix,"-"))>-1||e.match(O7))){var i=Sg(e.split(" "),{skipLookups:!0});return{prefix:i.prefix||cl(),iconName:jl(i.prefix,i.iconName)||i.iconName}}if(typeof e=="string"){var s=cl();return{prefix:s,iconName:jl(s,e)||e}}}},vi={noAuto:dW,config:ht,dom:fW,parse:hW,library:$D,findIconDefinition:db,toHtml:lf},pW=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot,r=n===void 0?Cn:n;(Object.keys(Gi.styles).length>0||ht.autoFetchSvg)&&vo&&ht.autoReplaceSvg&&vi.dom.i2svg({node:r})};function Cg(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map(function(r){return lf(r)})}}),Object.defineProperty(t,"node",{get:function(){if(vo){var r=Cn.createElement("div");return r.innerHTML=t.html,r.children}}}),t}function mW(t){var e=t.children,n=t.main,r=t.mask,i=t.attributes,s=t.styles,o=t.transform;if(Hx(o)&&n.found&&!r.found){var l=n.width,a=n.height,c={x:l/a/2,y:.5};i.style=xg(Oe(Oe({},s),{},{"transform-origin":"".concat(c.x+o.x/16,"em ").concat(c.y+o.y/16,"em")}))}return[{tag:"svg",attributes:i,children:e}]}function gW(t){var e=t.prefix,n=t.iconName,r=t.children,i=t.attributes,s=t.symbol,o=s===!0?"".concat(e,"-").concat(ht.cssPrefix,"-").concat(n):s;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Oe(Oe({},i),{},{id:o}),children:r}]}]}function yW(t){var e=["aria-label","aria-labelledby","title","role"];return e.some(function(n){return n in t})}function Kx(t){var e=t.icons,n=e.main,r=e.mask,i=t.prefix,s=t.iconName,o=t.transform,l=t.symbol,a=t.maskId,c=t.extra,u=t.watchable,d=u===void 0?!1:u,h=r.found?r:n,p=h.width,m=h.height,g=[ht.replacementClass,s?"".concat(ht.cssPrefix,"-").concat(s):""].filter(function(S){return c.classes.indexOf(S)===-1}).filter(function(S){return S!==""||!!S}).concat(c.classes).join(" "),v={children:[],attributes:Oe(Oe({},c.attributes),{},{"data-prefix":i,"data-icon":s,class:g,role:c.attributes.role||"img",viewBox:"0 0 ".concat(p," ").concat(m)})};!yW(c.attributes)&&!c.attributes["aria-hidden"]&&(v.attributes["aria-hidden"]="true"),d&&(v.attributes[na]="");var y=Oe(Oe({},v),{},{prefix:i,iconName:s,main:n,mask:r,maskId:a,transform:o,symbol:l,styles:Oe({},c.styles)}),b=r.found&&n.found?ul("generateAbstractMask",y)||{children:[],attributes:{}}:ul("generateAbstractIcon",y)||{children:[],attributes:{}},x=b.children,C=b.attributes;return y.children=x,y.attributes=C,l?gW(y):mW(y)}function zE(t){var e=t.content,n=t.width,r=t.height,i=t.transform,s=t.extra,o=t.watchable,l=o===void 0?!1:o,a=Oe(Oe({},s.attributes),{},{class:s.classes.join(" ")});l&&(a[na]="");var c=Oe({},s.styles);Hx(i)&&(c.transform=K7({transform:i,width:n,height:r}),c["-webkit-transform"]=c.transform);var u=xg(c);u.length>0&&(a.style=u);var d=[];return d.push({tag:"span",attributes:a,children:[e]}),d}function vW(t){var e=t.content,n=t.extra,r=Oe(Oe({},n.attributes),{},{class:n.classes.join(" ")}),i=xg(n.styles);i.length>0&&(r.style=i);var s=[];return s.push({tag:"span",attributes:r,children:[e]}),s}var iv=Gi.styles;function fb(t){var e=t[0],n=t[1],r=t.slice(4),i=wg(r,1),s=i[0],o=null;return Array.isArray(s)?o={tag:"g",attributes:{class:"".concat(ht.cssPrefix,"-").concat(tv.GROUP)},children:[{tag:"path",attributes:{class:"".concat(ht.cssPrefix,"-").concat(tv.SECONDARY),fill:"currentColor",d:s[0]}},{tag:"path",attributes:{class:"".concat(ht.cssPrefix,"-").concat(tv.PRIMARY),fill:"currentColor",d:s[1]}}]}:o={tag:"path",attributes:{fill:"currentColor",d:s}},{found:!0,width:e,height:n,icon:o}}var bW={found:!1,width:512,height:512};function wW(t,e){!kD&&!ht.showMissingIcons&&t&&console.error('Icon with name "'.concat(t,'" and prefix "').concat(e,'" is missing.'))}function hb(t,e){var n=e;return e==="fa"&&ht.styleDefault!==null&&(e=cl()),new Promise(function(r,i){if(n==="fa"){var s=zD(t)||{};t=s.iconName||t,e=s.prefix||e}if(t&&e&&iv[e]&&iv[e][t]){var o=iv[e][t];return r(fb(o))}wW(t,e),r(Oe(Oe({},bW),{},{icon:ht.showMissingIcons&&t?ul("missingIconAbstract")||{}:{}}))})}var FE=function(){},pb=ht.measurePerformance&&rh&&rh.mark&&rh.measure?rh:{mark:FE,measure:FE},vu='FA "7.1.0"',xW=function(e){return pb.mark("".concat(vu," ").concat(e," begins")),function(){return BD(e)}},BD=function(e){pb.mark("".concat(vu," ").concat(e," ends")),pb.measure("".concat(vu," ").concat(e),"".concat(vu," ").concat(e," begins"),"".concat(vu," ").concat(e," ends"))},Yx={begin:xW,end:BD},Ih=function(){};function $E(t){var e=t.getAttribute?t.getAttribute(na):null;return typeof e=="string"}function kW(t){var e=t.getAttribute?t.getAttribute(Fx):null,n=t.getAttribute?t.getAttribute($x):null;return e&&n}function SW(t){return t&&t.classList&&t.classList.contains&&t.classList.contains(ht.replacementClass)}function CW(){if(ht.autoReplaceSvg===!0)return Rh.replace;var t=Rh[ht.autoReplaceSvg];return t||Rh.replace}function EW(t){return Cn.createElementNS("http://www.w3.org/2000/svg",t)}function NW(t){return Cn.createElement(t)}function UD(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.ceFn,r=n===void 0?t.tag==="svg"?EW:NW:n;if(typeof t=="string")return Cn.createTextNode(t);var i=r(t.tag);Object.keys(t.attributes||[]).forEach(function(o){i.setAttribute(o,t.attributes[o])});var s=t.children||[];return s.forEach(function(o){i.appendChild(UD(o,{ceFn:r}))}),i}function TW(t){var e=" ".concat(t.outerHTML," ");return e="".concat(e,"Font Awesome fontawesome.com "),e}var Rh={replace:function(e){var n=e[0];if(n.parentNode)if(e[1].forEach(function(i){n.parentNode.insertBefore(UD(i),n)}),n.getAttribute(na)===null&&ht.keepOriginalSource){var r=Cn.createComment(TW(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(e){var n=e[0],r=e[1];if(~Ux(n).indexOf(ht.replacementClass))return Rh.replace(e);var i=new RegExp("".concat(ht.cssPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var s=r[0].attributes.class.split(" ").reduce(function(l,a){return a===ht.replacementClass||a.match(i)?l.toSvg.push(a):l.toNode.push(a),l},{toNode:[],toSvg:[]});r[0].attributes.class=s.toSvg.join(" "),s.toNode.length===0?n.removeAttribute("class"):n.setAttribute("class",s.toNode.join(" "))}var o=r.map(function(l){return lf(l)}).join(` +`);n.setAttribute(na,""),n.innerHTML=o}};function BE(t){t()}function HD(t,e){var n=typeof e=="function"?e:Ih;if(t.length===0)n();else{var r=BE;ht.mutateApproach===I7&&(r=al.requestAnimationFrame||BE),r(function(){var i=CW(),s=Yx.begin("mutate");t.map(i),s(),n()})}}var qx=!1;function VD(){qx=!0}function mb(){qx=!1}var dm=null;function UE(t){if(NE&&ht.observeMutations){var e=t.treeCallback,n=e===void 0?Ih:e,r=t.nodeCallback,i=r===void 0?Ih:r,s=t.pseudoElementsCallback,o=s===void 0?Ih:s,l=t.observeMutationsRoot,a=l===void 0?Cn:l;dm=new NE(function(c){if(!qx){var u=cl();_c(c).forEach(function(d){if(d.type==="childList"&&d.addedNodes.length>0&&!$E(d.addedNodes[0])&&(ht.searchPseudoElements&&o(d.target),n(d.target)),d.type==="attributes"&&d.target.parentNode&&ht.searchPseudoElements&&o([d.target],!0),d.type==="attributes"&&$E(d.target)&&~L7.indexOf(d.attributeName))if(d.attributeName==="class"&&kW(d.target)){var h=Sg(Ux(d.target)),p=h.prefix,m=h.iconName;d.target.setAttribute(Fx,p||u),m&&d.target.setAttribute($x,m)}else SW(d.target)&&i(d.target)})}}),vo&&dm.observe(a,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function AW(){dm&&dm.disconnect()}function MW(t){var e=t.getAttribute("style"),n=[];return e&&(n=e.split(";").reduce(function(r,i){var s=i.split(":"),o=s[0],l=s.slice(1);return o&&l.length>0&&(r[o]=l.join(":").trim()),r},{})),n}function IW(t){var e=t.getAttribute("data-prefix"),n=t.getAttribute("data-icon"),r=t.innerText!==void 0?t.innerText.trim():"",i=Sg(Ux(t));return i.prefix||(i.prefix=cl()),e&&n&&(i.prefix=e,i.iconName=n),i.iconName&&i.prefix||(i.prefix&&r.length>0&&(i.iconName=eW(i.prefix,t.innerText)||Wx(i.prefix,ID(t.innerText))),!i.iconName&&ht.autoFetchSvg&&t.firstChild&&t.firstChild.nodeType===Node.TEXT_NODE&&(i.iconName=t.firstChild.data)),i}function RW(t){var e=_c(t.attributes).reduce(function(n,r){return n.name!=="class"&&n.name!=="style"&&(n[r.name]=r.value),n},{});return e}function DW(){return{iconName:null,prefix:null,transform:ws,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function HE(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=IW(t),r=n.iconName,i=n.prefix,s=n.rest,o=RW(t),l=ub("parseNodeAttributes",{},t),a=e.styleParser?MW(t):[];return Oe({iconName:r,prefix:i,transform:ws,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:s,styles:a,attributes:o}},l)}var OW=Gi.styles;function WD(t){var e=ht.autoReplaceSvg==="nest"?HE(t,{styleParser:!1}):HE(t);return~e.extra.classes.indexOf(CD)?ul("generateLayersText",t,e):ul("generateSvgReplacementMutation",t,e)}function jW(){return[].concat(is(gD),is(yD))}function VE(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!vo)return Promise.resolve();var n=Cn.documentElement.classList,r=function(d){return n.add("".concat(ME,"-").concat(d))},i=function(d){return n.remove("".concat(ME,"-").concat(d))},s=ht.autoFetchSvg?jW():QR.concat(Object.keys(OW));s.includes("fa")||s.push("fa");var o=[".".concat(CD,":not([").concat(na,"])")].concat(s.map(function(u){return".".concat(u,":not([").concat(na,"])")})).join(", ");if(o.length===0)return Promise.resolve();var l=[];try{l=_c(t.querySelectorAll(o))}catch{}if(l.length>0)r("pending"),i("complete");else return Promise.resolve();var a=Yx.begin("onTree"),c=l.reduce(function(u,d){try{var h=WD(d);h&&u.push(h)}catch(p){kD||p.name==="MissingIcon"&&console.error(p)}return u},[]);return new Promise(function(u,d){Promise.all(c).then(function(h){HD(h,function(){r("active"),r("complete"),i("pending"),typeof e=="function"&&e(),a(),u()})}).catch(function(h){a(),d(h)})})}function PW(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;WD(t).then(function(n){n&&HD([n],e)})}function LW(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(e||{}).icon?e:db(e||{}),i=n.mask;return i&&(i=(i||{}).icon?i:db(i||{})),t(r,Oe(Oe({},n),{},{mask:i}))}}var _W=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,i=r===void 0?ws:r,s=n.symbol,o=s===void 0?!1:s,l=n.mask,a=l===void 0?null:l,c=n.maskId,u=c===void 0?null:c,d=n.classes,h=d===void 0?[]:d,p=n.attributes,m=p===void 0?{}:p,g=n.styles,v=g===void 0?{}:g;if(e){var y=e.prefix,b=e.iconName,x=e.icon;return Cg(Oe({type:"icon"},e),function(){return ra("beforeDOMElementCreation",{iconDefinition:e,params:n}),Kx({icons:{main:fb(x),mask:a?fb(a.icon):{found:!1,width:null,height:null,icon:{}}},prefix:y,iconName:b,transform:Oe(Oe({},ws),i),symbol:o,maskId:u,extra:{attributes:m,styles:v,classes:h}})})}},zW={mixout:function(){return{icon:LW(_W)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=VE,n.nodeCallback=PW,n}}},provides:function(e){e.i2svg=function(n){var r=n.node,i=r===void 0?Cn:r,s=n.callback,o=s===void 0?function(){}:s;return VE(i,o)},e.generateSvgReplacementMutation=function(n,r){var i=r.iconName,s=r.prefix,o=r.transform,l=r.symbol,a=r.mask,c=r.maskId,u=r.extra;return new Promise(function(d,h){Promise.all([hb(i,s),a.iconName?hb(a.iconName,a.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(p){var m=wg(p,2),g=m[0],v=m[1];d([n,Kx({icons:{main:g,mask:v},prefix:s,iconName:i,transform:o,symbol:l,maskId:c,extra:u,watchable:!0})])}).catch(h)})},e.generateAbstractIcon=function(n){var r=n.children,i=n.attributes,s=n.main,o=n.transform,l=n.styles,a=xg(l);a.length>0&&(i.style=a);var c;return Hx(o)&&(c=ul("generateAbstractTransformGrouping",{main:s,transform:o,containerWidth:s.width,iconWidth:s.width})),r.push(c||s.icon),{children:r,attributes:i}}}},FW={mixout:function(){return{layer:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.classes,s=i===void 0?[]:i;return Cg({type:"layer"},function(){ra("beforeDOMElementCreation",{assembler:n,params:r});var o=[];return n(function(l){Array.isArray(l)?l.map(function(a){o=o.concat(a.abstract)}):o=o.concat(l.abstract)}),[{tag:"span",attributes:{class:["".concat(ht.cssPrefix,"-layers")].concat(is(s)).join(" ")},children:o}]})}}}},$W={mixout:function(){return{counter:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};r.title;var i=r.classes,s=i===void 0?[]:i,o=r.attributes,l=o===void 0?{}:o,a=r.styles,c=a===void 0?{}:a;return Cg({type:"counter",content:n},function(){return ra("beforeDOMElementCreation",{content:n,params:r}),vW({content:n.toString(),extra:{attributes:l,styles:c,classes:["".concat(ht.cssPrefix,"-layers-counter")].concat(is(s))}})})}}}},BW={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.transform,s=i===void 0?ws:i,o=r.classes,l=o===void 0?[]:o,a=r.attributes,c=a===void 0?{}:a,u=r.styles,d=u===void 0?{}:u;return Cg({type:"text",content:n},function(){return ra("beforeDOMElementCreation",{content:n,params:r}),zE({content:n,transform:Oe(Oe({},ws),s),extra:{attributes:c,styles:d,classes:["".concat(ht.cssPrefix,"-layers-text")].concat(is(l))}})})}}},provides:function(e){e.generateLayersText=function(n,r){var i=r.transform,s=r.extra,o=null,l=null;if(GR){var a=parseInt(getComputedStyle(n).fontSize,10),c=n.getBoundingClientRect();o=c.width/a,l=c.height/a}return Promise.resolve([n,zE({content:n.innerHTML,width:o,height:l,transform:i,extra:s,watchable:!0})])}}},KD=new RegExp('"',"ug"),WE=[1105920,1112319],KE=Oe(Oe(Oe(Oe({},{FontAwesome:{normal:"fas",400:"fas"}}),SV),A7),DV),gb=Object.keys(KE).reduce(function(t,e){return t[e.toLowerCase()]=KE[e],t},{}),UW=Object.keys(gb).reduce(function(t,e){var n=gb[e];return t[e]=n[900]||is(Object.entries(n))[0][1],t},{});function HW(t){var e=t.replace(KD,"");return ID(is(e)[0]||"")}function VW(t){var e=t.getPropertyValue("font-feature-settings").includes("ss01"),n=t.getPropertyValue("content"),r=n.replace(KD,""),i=r.codePointAt(0),s=i>=WE[0]&&i<=WE[1],o=r.length===2?r[0]===r[1]:!1;return s||o||e}function WW(t,e){var n=t.replace(/^['"]|['"]$/g,"").toLowerCase(),r=parseInt(e),i=isNaN(r)?"normal":r;return(gb[n]||{})[i]||UW[n]}function YE(t,e){var n="".concat(M7).concat(e.replace(":","-"));return new Promise(function(r,i){if(t.getAttribute(n)!==null)return r();var s=_c(t.children),o=s.filter(function(M){return M.getAttribute(sb)===e})[0],l=al.getComputedStyle(t,e),a=l.getPropertyValue("font-family"),c=a.match(j7),u=l.getPropertyValue("font-weight"),d=l.getPropertyValue("content");if(o&&!c)return t.removeChild(o),r();if(c&&d!=="none"&&d!==""){var h=l.getPropertyValue("content"),p=WW(a,u),m=HW(h),g=c[0].startsWith("FontAwesome"),v=VW(l),y=Wx(p,m),b=y;if(g){var x=tW(m);x.iconName&&x.prefix&&(y=x.iconName,p=x.prefix)}if(y&&!v&&(!o||o.getAttribute(Fx)!==p||o.getAttribute($x)!==b)){t.setAttribute(n,b),o&&t.removeChild(o);var C=DW(),S=C.extra;S.attributes[sb]=e,hb(y,p).then(function(M){var N=Kx(Oe(Oe({},C),{},{icons:{main:M,mask:FD()},prefix:p,iconName:b,extra:S,watchable:!0})),z=Cn.createElementNS("http://www.w3.org/2000/svg","svg");e==="::before"?t.insertBefore(z,t.firstChild):t.appendChild(z),z.outerHTML=N.map(function(ee){return lf(ee)}).join(` +`),t.removeAttribute(n),r()}).catch(i)}else r()}else r()})}function KW(t){return Promise.all([YE(t,"::before"),YE(t,"::after")])}function YW(t){return t.parentNode!==document.head&&!~R7.indexOf(t.tagName.toUpperCase())&&!t.getAttribute(sb)&&(!t.parentNode||t.parentNode.tagName!=="svg")}var qW=function(e){return!!e&&xD.some(function(n){return e.includes(n)})},JW=function(e){if(!e)return[];var n=new Set,r=e.split(/,(?![^()]*\))/).map(function(a){return a.trim()});r=r.flatMap(function(a){return a.includes("(")?a:a.split(",").map(function(c){return c.trim()})});var i=Mh(r),s;try{for(i.s();!(s=i.n()).done;){var o=s.value;if(qW(o)){var l=xD.reduce(function(a,c){return a.replace(c,"")},o);l!==""&&l!=="*"&&n.add(l)}}}catch(a){i.e(a)}finally{i.f()}return n};function qE(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(vo){var n;if(e)n=t;else if(ht.searchPseudoElementsFullScan)n=t.querySelectorAll("*");else{var r=new Set,i=Mh(document.styleSheets),s;try{for(i.s();!(s=i.n()).done;){var o=s.value;try{var l=Mh(o.cssRules),a;try{for(l.s();!(a=l.n()).done;){var c=a.value,u=JW(c.selectorText),d=Mh(u),h;try{for(d.s();!(h=d.n()).done;){var p=h.value;r.add(p)}}catch(g){d.e(g)}finally{d.f()}}}catch(g){l.e(g)}finally{l.f()}}catch(g){ht.searchPseudoElementsWarnings&&console.warn("Font Awesome: cannot parse stylesheet: ".concat(o.href," (").concat(g.message,`) +If it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin="anonymous" to the , enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.`))}}}catch(g){i.e(g)}finally{i.f()}if(!r.size)return;var m=Array.from(r).join(", ");try{n=t.querySelectorAll(m)}catch{}}return new Promise(function(g,v){var y=_c(n).filter(YW).map(KW),b=Yx.begin("searchPseudoElements");VD(),Promise.all(y).then(function(){b(),mb(),g()}).catch(function(){b(),mb(),v()})})}}var GW={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=qE,n}}},provides:function(e){e.pseudoElements2svg=function(n){var r=n.node,i=r===void 0?Cn:r;ht.searchPseudoElements&&qE(i)}}},JE=!1,XW={mixout:function(){return{dom:{unwatch:function(){VD(),JE=!0}}}},hooks:function(){return{bootstrap:function(){UE(ub("mutationObserverCallbacks",{}))},noAuto:function(){AW()},watch:function(n){var r=n.observeMutationsRoot;JE?mb():UE(ub("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},GE=function(e){var n={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e.toLowerCase().split(" ").reduce(function(r,i){var s=i.toLowerCase().split("-"),o=s[0],l=s.slice(1).join("-");if(o&&l==="h")return r.flipX=!0,r;if(o&&l==="v")return r.flipY=!0,r;if(l=parseFloat(l),isNaN(l))return r;switch(o){case"grow":r.size=r.size+l;break;case"shrink":r.size=r.size-l;break;case"left":r.x=r.x-l;break;case"right":r.x=r.x+l;break;case"up":r.y=r.y-l;break;case"down":r.y=r.y+l;break;case"rotate":r.rotate=r.rotate+l;break}return r},n)},QW={mixout:function(){return{parse:{transform:function(n){return GE(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-transform");return i&&(n.transform=GE(i)),n}}},provides:function(e){e.generateAbstractTransformGrouping=function(n){var r=n.main,i=n.transform,s=n.containerWidth,o=n.iconWidth,l={transform:"translate(".concat(s/2," 256)")},a="translate(".concat(i.x*32,", ").concat(i.y*32,") "),c="scale(".concat(i.size/16*(i.flipX?-1:1),", ").concat(i.size/16*(i.flipY?-1:1),") "),u="rotate(".concat(i.rotate," 0 0)"),d={transform:"".concat(a," ").concat(c," ").concat(u)},h={transform:"translate(".concat(o/2*-1," -256)")},p={outer:l,inner:d,path:h};return{tag:"g",attributes:Oe({},p.outer),children:[{tag:"g",attributes:Oe({},p.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:Oe(Oe({},r.icon.attributes),p.path)}]}]}}}},sv={x:0,y:0,width:"100%",height:"100%"};function XE(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}function ZW(t){return t.tag==="g"?t.children:[t]}var e9={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-mask"),s=i?Sg(i.split(" ").map(function(o){return o.trim()})):FD();return s.prefix||(s.prefix=cl()),n.mask=s,n.maskId=r.getAttribute("data-fa-mask-id"),n}}},provides:function(e){e.generateAbstractMask=function(n){var r=n.children,i=n.attributes,s=n.main,o=n.mask,l=n.maskId,a=n.transform,c=s.width,u=s.icon,d=o.width,h=o.icon,p=W7({transform:a,containerWidth:d,iconWidth:c}),m={tag:"rect",attributes:Oe(Oe({},sv),{},{fill:"white"})},g=u.children?{children:u.children.map(XE)}:{},v={tag:"g",attributes:Oe({},p.inner),children:[XE(Oe({tag:u.tag,attributes:Oe(Oe({},u.attributes),p.path)},g))]},y={tag:"g",attributes:Oe({},p.outer),children:[v]},b="mask-".concat(l||RE()),x="clip-".concat(l||RE()),C={tag:"mask",attributes:Oe(Oe({},sv),{},{id:b,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[m,y]},S={tag:"defs",children:[{tag:"clipPath",attributes:{id:x},children:ZW(h)},C]};return r.push(S,{tag:"rect",attributes:Oe({fill:"currentColor","clip-path":"url(#".concat(x,")"),mask:"url(#".concat(b,")")},sv)}),{children:r,attributes:i}}}},t9={provides:function(e){var n=!1;al.matchMedia&&(n=al.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var r=[],i={fill:"currentColor"},s={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};r.push({tag:"path",attributes:Oe(Oe({},i),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var o=Oe(Oe({},s),{},{attributeName:"opacity"}),l={tag:"circle",attributes:Oe(Oe({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||l.children.push({tag:"animate",attributes:Oe(Oe({},s),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Oe(Oe({},o),{},{values:"1;0;1;1;0;1;"})}),r.push(l),r.push({tag:"path",attributes:Oe(Oe({},i),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:n?[]:[{tag:"animate",attributes:Oe(Oe({},o),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:Oe(Oe({},i),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Oe(Oe({},o),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},n9={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-symbol"),s=i===null?!1:i===""?!0:i;return n.symbol=s,n}}}},r9=[q7,zW,FW,$W,BW,GW,XW,QW,e9,t9,n9];uW(r9,{mixoutsTo:vi});vi.noAuto;var Nd=vi.config;vi.library;vi.dom;var YD=vi.parse;vi.findIconDefinition;vi.toHtml;var i9=vi.icon;vi.layer;vi.text;vi.counter;function s9(t){return t=t-0,t===t}function qD(t){return s9(t)?t:(t=t.replace(/[_-]+(.)?/g,(e,n)=>n?n.toUpperCase():""),t.charAt(0).toLowerCase()+t.slice(1))}function o9(t){return t.charAt(0).toUpperCase()+t.slice(1)}var wa=new Map,l9=1e3;function a9(t){if(wa.has(t))return wa.get(t);const e={};let n=0;const r=t.length;for(;n0){const a=o.slice(0,l).trim(),c=o.slice(l+1).trim();if(a&&c){const u=qD(a);e[u.startsWith("webkit")?o9(u):u]=c}}}n=s+1}if(wa.size===l9){const i=wa.keys().next().value;i&&wa.delete(i)}return wa.set(t,e),e}function JD(t,e,n={}){if(typeof e=="string")return e;const r=(e.children||[]).map(u=>JD(t,u)),i=e.attributes||{},s={};for(const[u,d]of Object.entries(i))switch(!0){case u==="class":{s.className=d;break}case u==="style":{s.style=a9(String(d));break}case u.startsWith("aria-"):case u.startsWith("data-"):{s[u.toLowerCase()]=d;break}default:s[qD(u)]=d}const{style:o,role:l,"aria-label":a,...c}=n;return o&&(s.style=s.style?{...s.style,...o}:o),l&&(s.role=l),a&&(s["aria-label"]=a,s["aria-hidden"]="false"),t(e.tag,{...c,...s},...r)}var c9=JD.bind(null,B.createElement),QE=(t,e)=>{const n=w.useId();return t||(e?n:void 0)},u9=class{constructor(t="react-fontawesome"){this.enabled=!1;let e=!1;try{e=typeof process<"u"&&!1}catch{}this.scope=t,this.enabled=e}log(...t){this.enabled&&console.log(`[${this.scope}]`,...t)}warn(...t){this.enabled&&console.warn(`[${this.scope}]`,...t)}error(...t){this.enabled&&console.error(`[${this.scope}]`,...t)}},d9="searchPseudoElementsFullScan"in Nd?"7.0.0":"6.0.0",f9=Number.parseInt(d9)>=7,Vu="fa",Ls={beat:"fa-beat",fade:"fa-fade",beatFade:"fa-beat-fade",bounce:"fa-bounce",shake:"fa-shake",spin:"fa-spin",spinPulse:"fa-spin-pulse",spinReverse:"fa-spin-reverse",pulse:"fa-pulse"},h9={left:"fa-pull-left",right:"fa-pull-right"},p9={90:"fa-rotate-90",180:"fa-rotate-180",270:"fa-rotate-270"},m9={"2xs":"fa-2xs",xs:"fa-xs",sm:"fa-sm",lg:"fa-lg",xl:"fa-xl","2xl":"fa-2xl","1x":"fa-1x","2x":"fa-2x","3x":"fa-3x","4x":"fa-4x","5x":"fa-5x","6x":"fa-6x","7x":"fa-7x","8x":"fa-8x","9x":"fa-9x","10x":"fa-10x"},_s={border:"fa-border",fixedWidth:"fa-fw",flip:"fa-flip",flipHorizontal:"fa-flip-horizontal",flipVertical:"fa-flip-vertical",inverse:"fa-inverse",rotateBy:"fa-rotate-by",swapOpacity:"fa-swap-opacity",widthAuto:"fa-width-auto"};function g9(t){const e=Nd.cssPrefix||Nd.familyPrefix||Vu;return e===Vu?t:t.replace(new RegExp(String.raw`(?<=^|\s)${Vu}-`,"g"),`${e}-`)}function y9(t){const{beat:e,fade:n,beatFade:r,bounce:i,shake:s,spin:o,spinPulse:l,spinReverse:a,pulse:c,fixedWidth:u,inverse:d,border:h,flip:p,size:m,rotation:g,pull:v,swapOpacity:y,rotateBy:b,widthAuto:x,className:C}=t,S=[];return C&&S.push(...C.split(" ")),e&&S.push(Ls.beat),n&&S.push(Ls.fade),r&&S.push(Ls.beatFade),i&&S.push(Ls.bounce),s&&S.push(Ls.shake),o&&S.push(Ls.spin),a&&S.push(Ls.spinReverse),l&&S.push(Ls.spinPulse),c&&S.push(Ls.pulse),u&&S.push(_s.fixedWidth),d&&S.push(_s.inverse),h&&S.push(_s.border),p===!0&&S.push(_s.flip),(p==="horizontal"||p==="both")&&S.push(_s.flipHorizontal),(p==="vertical"||p==="both")&&S.push(_s.flipVertical),m!=null&&S.push(m9[m]),g!=null&&g!==0&&S.push(p9[g]),v!=null&&S.push(h9[v]),y&&S.push(_s.swapOpacity),f9?(b&&S.push(_s.rotateBy),x&&S.push(_s.widthAuto),(Nd.cssPrefix||Nd.familyPrefix||Vu)===Vu?S:S.map(g9)):S}var v9=t=>typeof t=="object"&&"icon"in t&&!!t.icon;function ZE(t){if(t)return v9(t)?t:YD.icon(t)}function b9(t){return Object.keys(t)}var eN=new u9("FontAwesomeIcon"),GD={border:!1,className:"",mask:void 0,maskId:void 0,fixedWidth:!1,inverse:!1,flip:!1,icon:void 0,listItem:!1,pull:void 0,pulse:!1,rotation:void 0,rotateBy:!1,size:void 0,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:void 0,transform:void 0,swapOpacity:!1,widthAuto:!1},w9=new Set(Object.keys(GD)),Xs=B.forwardRef((t,e)=>{const n={...GD,...t},{icon:r,mask:i,symbol:s,title:o,titleId:l,maskId:a,transform:c}=n,u=QE(a,!!i),d=QE(l,!!o),h=ZE(r);if(!h)return eN.error("Icon lookup is undefined",r),null;const p=y9(n),m=typeof c=="string"?YD.transform(c):c,g=ZE(i),v=i9(h,{...p.length>0&&{classes:p},...m&&{transform:m},...g&&{mask:g},symbol:s,title:o,titleId:d,maskId:u});if(!v)return eN.error("Could not find icon",h),null;const{abstract:y}=v,b={ref:e};for(const x of b9(n))w9.has(x)||(b[x]=n[x]);return c9(y[0],b)});Xs.displayName="FontAwesomeIcon";/*! + * Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2025 Fonticons, Inc. + */var af={prefix:"fas",iconName:"palette",icon:[512,512,[127912],"f53f","M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"]},x9={prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M320 16a104 104 0 1 1 0 208 104 104 0 1 1 0-208zM96 88a72 72 0 1 1 0 144 72 72 0 1 1 0-144zM0 416c0-70.7 57.3-128 128-128 12.8 0 25.2 1.9 36.9 5.4-32.9 36.8-52.9 85.4-52.9 138.6l0 16c0 11.4 2.4 22.2 6.7 32L32 480c-17.7 0-32-14.3-32-32l0-32zm521.3 64c4.3-9.8 6.7-20.6 6.7-32l0-16c0-53.2-20-101.8-52.9-138.6 11.7-3.5 24.1-5.4 36.9-5.4 70.7 0 128 57.3 128 128l0 32c0 17.7-14.3 32-32 32l-86.7 0zM472 160a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 432c0-88.4 71.6-160 160-160s160 71.6 160 160l0 16c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-16z"]},k9={prefix:"fas",iconName:"folder",icon:[512,512,[128193,128447,61716,"folder-blank"],"f07b","M64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z"]},S9={prefix:"fas",iconName:"tag",icon:[512,512,[127991],"f02b","M32.5 96l0 149.5c0 17 6.7 33.3 18.7 45.3l192 192c25 25 65.5 25 90.5 0L483.2 333.3c25-25 25-65.5 0-90.5l-192-192C279.2 38.7 263 32 246 32L96.5 32c-35.3 0-64 28.7-64 64zm112 16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"]};function Jx({anchorRef:t,anchorPoint:e,itemsCount:n=4,onClose:r,onDelete:i,onMoveToCollection:s,onAddLabel:o,onUncheckAll:l,onCheckAll:a,onSetWidth:c}){const u=w.useRef(null),[d,h]=w.useState({position:"fixed",visibility:"hidden",left:0,top:0,zIndex:1e4});w.useLayoutEffect(()=>{const m=t==null?void 0:t.current,g=u.current;if(!g)return;const v=8,y=()=>{g.style.width="auto",g.style.height="auto";const x=Math.ceil(g.offsetWidth),C=Math.ceil(g.offsetHeight);return{w:x,h:C}};if(!m){const{w:x,h:C}=y();let S,M;e?(S=Math.round(e.x-x),M=Math.round(e.y-C)):(S=Math.round(window.innerWidth-x-v),M=Math.round(window.innerHeight-C-v)),Swindow.innerWidth-v&&(S=Math.max(v,window.innerWidth-x-v)),Mwindow.innerHeight-v&&(M=Math.max(v,window.innerHeight-C-v)),h({position:"fixed",left:S,top:M,visibility:"visible",zIndex:1e4,width:`${x}px`,height:`${C}px`});return}const b=m.getBoundingClientRect();requestAnimationFrame(()=>{const{w:x,h:C}=y();let S=Math.round(b.right-x),M=Math.round(b.bottom-C);Swindow.innerWidth-v&&(S=Math.max(v,window.innerWidth-x-v)),Mwindow.innerHeight-v&&(M=Math.max(v,window.innerHeight-C-v)),h({position:"fixed",left:S,top:M,visibility:"visible",zIndex:1e4,width:`${x}px`,height:`${C}px`})})},[t,e,n]),w.useLayoutEffect(()=>{function m(g){u.current&&(u.current.contains(g.target)||r())}return document.addEventListener("pointerdown",m),document.addEventListener("mousedown",m),()=>{document.removeEventListener("pointerdown",m),document.removeEventListener("mousedown",m)}},[r]);const p=f.jsxs("div",{ref:u,className:"more-menu",style:d,role:"dialog","aria-label":"More options",children:[f.jsx("button",{className:"more-item",onClick:()=>{i(),r()},children:"Delete"}),s&&f.jsx("button",{className:"more-item",onClick:()=>{s(),r()},children:"Add to collection…"}),f.jsx("button",{className:"more-item",onClick:()=>{o(),r()},children:"Add label"}),l&&f.jsx("button",{className:"more-item",onClick:()=>{l(),r()},children:"Uncheck all"}),a&&f.jsx("button",{className:"more-item",onClick:()=>{a(),r()},children:"Check all"}),f.jsx("hr",{className:"more-sep"}),f.jsxs("div",{style:{display:"grid",gap:6},children:[f.jsx("button",{className:"more-item",onClick:()=>{c(1),r()},children:"Card width: Regular"}),f.jsx("button",{className:"more-item",onClick:()=>{c(2),r()},children:"Card width: Double"}),f.jsx("button",{className:"more-item",onClick:()=>{c(3),r()},children:"Card width: Triple"})]})]});return zn.createPortal(p,document.body)}const si=()=>new Map,yb=t=>{const e=si();return t.forEach((n,r)=>{e.set(r,n)}),e},as=(t,e,n)=>{let r=t.get(e);return r===void 0&&t.set(e,r=n()),r},C9=(t,e)=>{const n=[];for(const[r,i]of t)n.push(e(i,r));return n},E9=(t,e)=>{for(const[n,r]of t)if(e(r,n))return!0;return!1},uo=()=>new Set,ov=t=>t[t.length-1],N9=(t,e)=>{for(let n=0;n{for(let n=0;n{for(let n=0;n{const n=new Array(t);for(let r=0;r{this.off(e,r),n(...i)};this.on(e,r)}off(e,n){const r=this._observers.get(e);r!==void 0&&(r.delete(n),r.size===0&&this._observers.delete(e))}emit(e,n){return fo((this._observers.get(e)||si()).values()).forEach(r=>r(...n))}destroy(){this._observers=si()}}class QD{constructor(){this._observers=si()}on(e,n){as(this._observers,e,uo).add(n)}once(e,n){const r=(...i)=>{this.off(e,r),n(...i)};this.on(e,r)}off(e,n){const r=this._observers.get(e);r!==void 0&&(r.delete(n),r.size===0&&this._observers.delete(e))}emit(e,n){return fo((this._observers.get(e)||si()).values()).forEach(r=>r(...n))}destroy(){this._observers=si()}}const zi=Math.floor,Dh=Math.abs,ia=(t,e)=>tt>e?t:e,A9=Math.pow,ZD=t=>t!==0?t<0:1/t<0,tN=1,nN=2,lv=4,av=8,Td=32,to=64,Br=128,M9=1<<29,Eg=31,vb=63,Hl=127,I9=2147483647,fm=Number.MAX_SAFE_INTEGER,rN=Number.MIN_SAFE_INTEGER,R9=Number.isInteger||(t=>typeof t=="number"&&isFinite(t)&&zi(t)===t),eO=String.fromCharCode,D9=t=>t.toLowerCase(),O9=/^\s*/g,j9=t=>t.replace(O9,""),P9=/([A-Z])/g,iN=(t,e)=>j9(t.replace(P9,n=>`${e}${D9(n)}`)),L9=t=>{const e=unescape(encodeURIComponent(t)),n=e.length,r=new Uint8Array(n);for(let i=0;iAd.encode(t),z9=Ad?_9:L9;let Wu=typeof TextDecoder>"u"?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Wu&&Wu.decode(new Uint8Array).length===1&&(Wu=null);const F9=(t,e)=>T9(e,()=>t).join("");class cf{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const gr=()=>new cf,$9=t=>{const e=gr();return t(e),Nn(e)},Qx=t=>{let e=t.cpos;for(let n=0;n{const e=new Uint8Array(Qx(t));let n=0;for(let r=0;r{const n=t.cbuf.length;n-t.cpos{const n=t.cbuf.length;t.cpos===n&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(n*2),t.cpos=0),t.cbuf[t.cpos++]=e},bb=rr,gt=(t,e)=>{for(;e>Hl;)rr(t,Br|Hl&e),e=zi(e/128);rr(t,Hl&e)},Zx=(t,e)=>{const n=ZD(e);for(n&&(e=-e),rr(t,(e>vb?Br:0)|(n?to:0)|vb&e),e=zi(e/64);e>0;)rr(t,(e>Hl?Br:0)|Hl&e),e=zi(e/128)},wb=new Uint8Array(3e4),U9=wb.length/3,H9=(t,e)=>{if(e.length{const n=unescape(encodeURIComponent(e)),r=n.length;gt(t,r);for(let i=0;i{const n=t.cbuf.length,r=t.cpos,i=ia(n-r,e.length),s=e.length-i;t.cbuf.set(e.subarray(0,i),r),t.cpos+=i,s>0&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(ho(n*2,s)),t.cbuf.set(e.subarray(i)),t.cpos=s)},Ln=(t,e)=>{gt(t,e.byteLength),Ng(t,e)},e1=(t,e)=>{B9(t,e);const n=new DataView(t.cbuf.buffer,t.cpos,e);return t.cpos+=e,n},W9=(t,e)=>e1(t,4).setFloat32(0,e,!1),K9=(t,e)=>e1(t,8).setFloat64(0,e,!1),Y9=(t,e)=>e1(t,8).setBigInt64(0,e,!1),sN=new DataView(new ArrayBuffer(4)),q9=t=>(sN.setFloat32(0,t),sN.getFloat32(0)===t),Ec=(t,e)=>{switch(typeof e){case"string":rr(t,119),Vl(t,e);break;case"number":R9(e)&&Dh(e)<=I9?(rr(t,125),Zx(t,e)):q9(e)?(rr(t,124),W9(t,e)):(rr(t,123),K9(t,e));break;case"bigint":rr(t,122),Y9(t,e);break;case"object":if(e===null)rr(t,126);else if(Cc(e)){rr(t,117),gt(t,e.length);for(let n=0;n0&>(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const lN=t=>{t.count>0&&(Zx(t.encoder,t.count===1?t.s:-t.s),t.count>1&>(t.encoder,t.count-2))};class Oh{constructor(){this.encoder=new cf,this.s=0,this.count=0}write(e){this.s===e?this.count++:(lN(this),this.count=1,this.s=e)}toUint8Array(){return lN(this),Nn(this.encoder)}}const aN=t=>{if(t.count>0){const e=t.diff*2+(t.count===1?0:1);Zx(t.encoder,e),t.count>1&>(t.encoder,t.count-2)}};class cv{constructor(){this.encoder=new cf,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(aN(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return aN(this),Nn(this.encoder)}}class J9{constructor(){this.sarr=[],this.s="",this.lensE=new Oh}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new cf;return this.sarr.push(this.s),this.s="",Vl(e,this.sarr.join("")),Ng(e,this.lensE.toUint8Array()),Nn(e)}}const Rs=t=>new Error(t),Oi=()=>{throw Rs("Method unimplemented")},Dr=()=>{throw Rs("Unexpected case")},tO=Rs("Unexpected end of array"),nO=Rs("Integer out of Range");class Tg{constructor(e){this.arr=e,this.pos=0}}const xl=t=>new Tg(t),G9=t=>t.pos!==t.arr.length,X9=(t,e)=>{const n=new Uint8Array(t.arr.buffer,t.pos+t.arr.byteOffset,e);return t.pos+=e,n},Tr=t=>X9(t,Ft(t)),Nc=t=>t.arr[t.pos++],Ft=t=>{let e=0,n=1;const r=t.arr.length;for(;t.posfm)throw nO}throw tO},t1=t=>{let e=t.arr[t.pos++],n=e&vb,r=64;const i=(e&to)>0?-1:1;if(!(e&Br))return i*n;const s=t.arr.length;for(;t.posfm)throw nO}throw tO},Q9=t=>{let e=Ft(t);if(e===0)return"";{let n=String.fromCodePoint(Nc(t));if(--e<100)for(;e--;)n+=String.fromCodePoint(Nc(t));else for(;e>0;){const r=e<1e4?e:1e4,i=t.arr.subarray(t.pos,t.pos+r);t.pos+=r,n+=String.fromCodePoint.apply(null,i),e-=r}return decodeURIComponent(escape(n))}},Z9=t=>Wu.decode(Tr(t)),nl=Wu?Z9:Q9,n1=(t,e)=>{const n=new DataView(t.arr.buffer,t.arr.byteOffset+t.pos,e);return t.pos+=e,n},eK=t=>n1(t,4).getFloat32(0,!1),tK=t=>n1(t,8).getFloat64(0,!1),nK=t=>n1(t,8).getBigInt64(0,!1),rK=[t=>{},t=>null,t1,eK,tK,nK,t=>!1,t=>!0,nl,t=>{const e=Ft(t),n={};for(let r=0;r{const e=Ft(t),n=[];for(let r=0;rrK[127-Nc(t)](t);class cN extends Tg{constructor(e,n){super(e),this.reader=n,this.s=null,this.count=0}read(){return this.count===0&&(this.s=this.reader(this),G9(this)?this.count=Ft(this)+1:this.count=-1),this.count--,this.s}}class jh extends Tg{constructor(e){super(e),this.s=0,this.count=0}read(){if(this.count===0){this.s=t1(this);const e=ZD(this.s);this.count=1,e&&(this.s=-this.s,this.count=Ft(this)+2)}return this.count--,this.s}}class uv extends Tg{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(this.count===0){const e=t1(this),n=e&1;this.diff=zi(e/2),this.count=1,n&&(this.count=Ft(this)+2)}return this.s+=this.diff,this.count--,this.s}}class iK{constructor(e){this.decoder=new jh(e),this.str=nl(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),n=this.str.slice(this.spos,e);return this.spos=e,n}}const sK=crypto.getRandomValues.bind(crypto),oK=Math.random,rO=()=>sK(new Uint32Array(1))[0],lK=t=>t[zi(oK()*t.length)],aK="10000000-1000-4000-8000"+-1e11,cK=()=>aK.replace(/[018]/g,t=>(t^rO()&15>>t/4).toString(16)),dl=Date.now,uN=t=>new Promise(t);Promise.all.bind(Promise);const dN=t=>t===void 0?null:t;class uK{constructor(){this.map=new Map}setItem(e,n){this.map.set(e,n)}getItem(e){return this.map.get(e)}}let iO=new uK,r1=!0;try{typeof localStorage<"u"&&localStorage&&(iO=localStorage,r1=!1)}catch{}const sO=iO,dK=t=>r1||addEventListener("storage",t),fK=t=>r1||removeEventListener("storage",t),Id=Symbol("Equality"),oO=(t,e)=>{var n;return t===e||!!((n=t==null?void 0:t[Id])!=null&&n.call(t,e))||!1},hK=t=>typeof t=="object",pK=Object.assign,lO=Object.keys,mK=(t,e)=>{for(const n in t)e(t[n],n)},gK=(t,e)=>{const n=[];for(const r in t)n.push(e(t[r],r));return n},hm=t=>lO(t).length,yK=t=>{for(const e in t)return!1;return!0},zc=(t,e)=>{for(const n in t)if(!e(t[n],n))return!1;return!0},i1=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),vK=(t,e)=>t===e||hm(t)===hm(e)&&zc(t,(n,r)=>(n!==void 0||i1(e,r))&&oO(e[r],n)),bK=Object.freeze,aO=t=>{for(const e in t){const n=t[e];(typeof n=="object"||typeof n=="function")&&aO(t[e])}return bK(t)},s1=(t,e,n=0)=>{try{for(;nt,Za=(t,e)=>{if(t===e)return!0;if(t==null||e==null||t.constructor!==e.constructor&&(t.constructor||Object)!==(e.constructor||Object))return!1;if(t[Id]!=null)return t[Id](e);switch(t.constructor){case ArrayBuffer:t=new Uint8Array(t),e=new Uint8Array(e);case Uint8Array:{if(t.byteLength!==e.byteLength)return!1;for(let n=0;ne.includes(t);var cO={};const fl=typeof process<"u"&&process.release&&/node|io\.js/.test(process.release.name)&&Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]",o1=typeof window<"u"&&typeof document<"u"&&!fl;let hs;const kK=()=>{if(hs===void 0)if(fl){hs=si();const t=process.argv;let e=null;for(let n=0;n{if(t.length!==0){const[e,n]=t.split("=");hs.set(`--${iN(e,"-")}`,n),hs.set(`-${iN(e,"-")}`,n)}})):hs=si();return hs},xb=t=>kK().has(t),pm=t=>dN(fl?cO[t.toUpperCase().replaceAll("-","_")]:sO.getItem(t)),uO=t=>xb("--"+t)||pm(t)!==null,SK=uO("production"),CK=fl&&xK(cO.FORCE_COLOR,["true","1","2"]),EK=CK||!xb("--no-colors")&&!uO("no-color")&&(!fl||process.stdout.isTTY)&&(!fl||xb("--color")||pm("COLORTERM")!==null||(pm("TERM")||"").includes("color")),dO=t=>new Uint8Array(t),NK=(t,e,n)=>new Uint8Array(t,e,n),TK=t=>new Uint8Array(t),AK=t=>{let e="";for(let n=0;nBuffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64"),IK=t=>{const e=atob(t),n=dO(e.length);for(let r=0;r{const e=Buffer.from(t,"base64");return NK(e.buffer,e.byteOffset,e.byteLength)},fO=o1?AK:MK,DK=o1?IK:RK,OK=t=>{const e=dO(t.byteLength);return e.set(t),e},jK=t=>$9(e=>Ec(e,t));class PK{constructor(e,n){this.left=e,this.right=n}}const zs=(t,e)=>new PK(t,e),fN=t=>t.next()>=.5,dv=(t,e,n)=>zi(t.next()*(n+1-e)+e),hO=(t,e,n)=>zi(t.next()*(n+1-e)+e),l1=(t,e,n)=>hO(t,e,n),LK=t=>eO(l1(t,97,122)),_K=(t,e=0,n=20)=>{const r=l1(t,e,n);let i="";for(let s=0;se[l1(t,0,e.length-1)],zK=Symbol("0schema");class FK{constructor(){this._rerrs=[]}extend(e,n,r,i=null){this._rerrs.push({path:e,expected:n,has:r,message:i})}toString(){const e=[];for(let n=this._rerrs.length-1;n>0;n--){const r=this._rerrs[n];e.push(F9(" ",(this._rerrs.length-n)*2)+`${r.path!=null?`[${r.path}] `:""}${r.has} doesn't match ${r.expected}. ${r.message}`)}return e.join(` +`)}}const kb=(t,e)=>t===e?!0:t==null||e==null||t.constructor!==e.constructor?!1:t[Id]?oO(t,e):Cc(t)?Gx(t,n=>Xx(e,r=>kb(n,r))):hK(t)?zc(t,(n,r)=>kb(n,e[r])):!1;class jr{extends(e){let[n,r]=[this.shape,e.shape];return this.constructor._dilutes&&([r,n]=[n,r]),kb(n,r)}equals(e){return this.constructor===e.constructor&&Za(this.shape,e.shape)}[zK](){return!0}[Id](e){return this.equals(e)}validate(e){return this.check(e)}check(e,n){Oi()}get nullable(){return Fc(this,Dg)}get optional(){return new gO(this)}cast(e){return hN(e,this),e}expect(e){return hN(e,this),e}}xf(jr,"_dilutes",!1);class a1 extends jr{constructor(e,n){super(),this.shape=e,this._c=n}check(e,n=void 0){const r=(e==null?void 0:e.constructor)===this.shape&&(this._c==null||this._c(e));return!r&&(n==null||n.extend(null,this.shape.name,e==null?void 0:e.constructor.name,(e==null?void 0:e.constructor)!==this.shape?"Constructor match failed":"Check failed")),r}}const Jn=(t,e=null)=>new a1(t,e);Jn(a1);class c1 extends jr{constructor(e){super(),this.shape=e}check(e,n){const r=this.shape(e);return!r&&(n==null||n.extend(null,"custom prop",e==null?void 0:e.constructor.name,"failed to check custom prop")),r}}const fr=t=>new c1(t);Jn(c1);class Ag extends jr{constructor(e){super(),this.shape=e}check(e,n){const r=this.shape.some(i=>i===e);return!r&&(n==null||n.extend(null,this.shape.join(" | "),e.toString())),r}}const Mg=(...t)=>new Ag(t),pO=Jn(Ag),$K=RegExp.escape||(t=>t.replace(/[().|&,$^[\]]/g,e=>"\\"+e)),mO=t=>{if(Tc.check(t))return[$K(t)];if(pO.check(t))return t.shape.map(e=>e+"");if(EO.check(t))return["[+-]?\\d+.?\\d*"];if(NO.check(t))return[".*"];if(gm.check(t))return t.shape.map(mO).flat(1);Dr()};class BK extends jr{constructor(e){super(),this.shape=e,this._r=new RegExp("^"+e.map(mO).map(n=>`(${n.join("|")})`).join("")+"$")}check(e,n){const r=this._r.exec(e)!=null;return!r&&(n==null||n.extend(null,this._r.toString(),e.toString(),"String doesn't match string template.")),r}}Jn(BK);const UK=Symbol("optional");class gO extends jr{constructor(e){super(),this.shape=e}check(e,n){const r=e===void 0||this.shape.check(e);return!r&&(n==null||n.extend(null,"undefined (optional)","()")),r}get[UK](){return!0}}const HK=Jn(gO);class VK extends jr{check(e,n){return n==null||n.extend(null,"never",typeof e),!1}}Jn(VK);const Am=class Am extends jr{constructor(e,n=!1){super(),this.shape=e,this._isPartial=n}get partial(){return new Am(this.shape,!0)}check(e,n){return e==null?(n==null||n.extend(null,"object","null"),!1):zc(this.shape,(r,i)=>{const s=this._isPartial&&!i1(e,i)||r.check(e[i],n);return!s&&(n==null||n.extend(i.toString(),r.toString(),typeof e[i],"Object property does not match")),s})}};xf(Am,"_dilutes",!0);let mm=Am;const WK=t=>new mm(t),KK=Jn(mm),YK=fr(t=>t!=null&&(t.constructor===Object||t.constructor==null));class yO extends jr{constructor(e,n){super(),this.shape={keys:e,values:n}}check(e,n){return e!=null&&zc(e,(r,i)=>{const s=this.shape.keys.check(i,n);return!s&&(n==null||n.extend(i+"","Record",typeof e,s?"Key doesn't match schema":"Value doesn't match value")),s&&this.shape.values.check(r,n)})}}const vO=(t,e)=>new yO(t,e),qK=Jn(yO);class bO extends jr{constructor(e){super(),this.shape=e}check(e,n){return e!=null&&zc(this.shape,(r,i)=>{const s=r.check(e[i],n);return!s&&(n==null||n.extend(i.toString(),"Tuple",typeof r)),s})}}const JK=(...t)=>new bO(t);Jn(bO);class wO extends jr{constructor(e){super(),this.shape=e.length===1?e[0]:new Ig(e)}check(e,n){const r=Cc(e)&&Gx(e,i=>this.shape.check(i));return!r&&(n==null||n.extend(null,"Array","")),r}}const xO=(...t)=>new wO(t),GK=Jn(wO),XK=fr(t=>Cc(t));class kO extends jr{constructor(e,n){super(),this.shape=e,this._c=n}check(e,n){const r=e instanceof this.shape&&(this._c==null||this._c(e));return!r&&(n==null||n.extend(null,this.shape.name,e==null?void 0:e.constructor.name)),r}}const QK=(t,e=null)=>new kO(t,e);Jn(kO);const ZK=QK(jr);class eY extends jr{constructor(e){super(),this.len=e.length-1,this.args=JK(...e.slice(-1)),this.res=e[this.len]}check(e,n){const r=e.constructor===Function&&e.length<=this.len;return!r&&(n==null||n.extend(null,"function",typeof e)),r}}const tY=Jn(eY),nY=fr(t=>typeof t=="function");class rY extends jr{constructor(e){super(),this.shape=e}check(e,n){const r=Gx(this.shape,i=>i.check(e,n));return!r&&(n==null||n.extend(null,"Intersectinon",typeof e)),r}}Jn(rY,t=>t.shape.length>0);class Ig extends jr{constructor(e){super(),this.shape=e}check(e,n){const r=Xx(this.shape,i=>i.check(e,n));return n==null||n.extend(null,"Union",typeof e),r}}xf(Ig,"_dilutes",!0);const Fc=(...t)=>t.findIndex(e=>gm.check(e))>=0?Fc(...t.map(e=>Rd(e)).map(e=>gm.check(e)?e.shape:[e]).flat(1)):t.length===1?t[0]:new Ig(t),gm=Jn(Ig),SO=()=>!0,ym=fr(SO),iY=Jn(c1,t=>t.shape===SO),u1=fr(t=>typeof t=="bigint"),sY=fr(t=>t===u1),CO=fr(t=>typeof t=="symbol");fr(t=>t===CO);const ec=fr(t=>typeof t=="number"),EO=fr(t=>t===ec),Tc=fr(t=>typeof t=="string"),NO=fr(t=>t===Tc),Rg=fr(t=>typeof t=="boolean"),oY=fr(t=>t===Rg),TO=Mg(void 0);Jn(Ag,t=>t.shape.length===1&&t.shape[0]===void 0);Mg(void 0);const Dg=Mg(null),lY=Jn(Ag,t=>t.shape.length===1&&t.shape[0]===null);Jn(Uint8Array);Jn(a1,t=>t.shape===Uint8Array);const aY=Fc(ec,Tc,Dg,TO,u1,Rg,CO);(()=>{const t=xO(ym),e=vO(Tc,ym),n=Fc(ec,Tc,Dg,Rg,t,e);return t.shape=n,e.shape.values=n,n})();const Rd=t=>{if(ZK.check(t))return t;if(YK.check(t)){const e={};for(const n in t)e[n]=Rd(t[n]);return WK(e)}else{if(XK.check(t))return Fc(...t.map(Rd));if(aY.check(t))return Mg(t);if(nY.check(t))return Jn(t)}Dr()},hN=SK?()=>{}:(t,e)=>{const n=new FK;if(!e.check(t,n))throw Rs(`Expected value to be of type ${e.constructor.name}. +${n.toString()}`)};class cY{constructor(e){this.patterns=[],this.$state=e}if(e,n){return this.patterns.push({if:Rd(e),h:n}),this}else(e){return this.if(ym,e)}done(){return(e,n)=>{for(let r=0;rnew cY(t),AO=uY(ym).if(EO,(t,e)=>dv(e,rN,fm)).if(NO,(t,e)=>_K(e)).if(oY,(t,e)=>fN(e)).if(sY,(t,e)=>BigInt(dv(e,rN,fm))).if(gm,(t,e)=>xa(e,fv(e,t.shape))).if(KK,(t,e)=>{const n={};for(const r in t.shape){let i=t.shape[r];if(HK.check(i)){if(fN(e))continue;i=i.shape}n[r]=AO(i,e)}return n}).if(GK,(t,e)=>{const n=[],r=hO(e,0,42);for(let i=0;ifv(e,t.shape)).if(lY,(t,e)=>null).if(tY,(t,e)=>{const n=xa(e,t.res);return()=>n}).if(iY,(t,e)=>xa(e,fv(e,[ec,Tc,Dg,TO,u1,Rg,xO(ec),vO(Fc("a","b","c"),ec)]))).if(qK,(t,e)=>{const n={},r=dv(e,0,3);for(let i=0;iAO(Rd(e),t),uf=typeof document<"u"?document:{};fr(t=>t.nodeType===mY);typeof DOMParser<"u"&&new DOMParser;fr(t=>t.nodeType===fY);fr(t=>t.nodeType===hY);const dY=t=>C9(t,(e,n)=>`${n}:${e};`).join(""),fY=uf.ELEMENT_NODE,hY=uf.TEXT_NODE,pY=uf.DOCUMENT_NODE,mY=uf.DOCUMENT_FRAGMENT_NODE;fr(t=>t.nodeType===pY);const gY=t=>class{constructor(n){this._=n}destroy(){t(this._)}},yY=gY(clearTimeout),MO=(t,e)=>new yY(setTimeout(e,t)),bo=Symbol,IO=bo(),RO=bo(),vY=bo(),bY=bo(),wY=bo(),DO=bo(),xY=bo(),d1=bo(),kY=bo(),SY=t=>{var i;t.length===1&&((i=t[0])==null?void 0:i.constructor)===Function&&(t=t[0]());const e=[],n=[];let r=0;for(;r0&&n.push(e.join(""));r{var o;t.length===1&&((o=t[0])==null?void 0:o.constructor)===Function&&(t=t[0]());const e=[],n=[],r=si();let i=[],s=0;for(;s0||c.length>0?(e.push("%c"+l),n.push(c)):e.push(l)}else break}}for(s>0&&(i=n,i.unshift(e.join("")));s{console.log(...OO(t)),PO.forEach(e=>e.print(t))},jO=(...t)=>{console.warn(...OO(t)),t.unshift(d1),PO.forEach(e=>e.print(t))},PO=uo(),LO=t=>({[Symbol.iterator](){return this},next:t}),TY=(t,e)=>LO(()=>{let n;do n=t.next();while(!n.done&&!e(n.value));return n}),hv=(t,e)=>LO(()=>{const{done:n,value:r}=t.next();return{done:n,value:n?void 0:e(r)}});class f1{constructor(e,n){this.clock=e,this.len=n}}class $c{constructor(){this.clients=new Map}}const hl=(t,e,n)=>e.clients.forEach((r,i)=>{const s=t.doc.store.clients.get(i);if(s!=null){const o=s[s.length-1],l=o.id.clock+o.length;for(let a=0,c=r[a];a{let n=0,r=t.length-1;for(;n<=r;){const i=zi((n+r)/2),s=t[i],o=s.clock;if(o<=e){if(e{const n=t.clients.get(e.client);return n!==void 0&&AY(n,e.clock)!==null},h1=t=>{t.clients.forEach(e=>{e.sort((i,s)=>i.clock-s.clock);let n,r;for(n=1,r=1;n=s.clock?i.len=ho(i.len,s.clock+s.len-i.clock):(r{const e=new $c;for(let n=0;n{if(!e.clients.has(i)){const s=r.slice();for(let o=n+1;o{as(t.clients,e,()=>[]).push(new f1(n,r))},_O=()=>new $c,zO=t=>{const e=_O();return t.clients.forEach((n,r)=>{const i=[];for(let s=0;s0&&e.clients.set(r,i)}),e},Uc=(t,e)=>{gt(t.restEncoder,e.clients.size),fo(e.clients.entries()).sort((n,r)=>r[0]-n[0]).forEach(([n,r])=>{t.resetDsCurVal(),gt(t.restEncoder,n);const i=r.length;gt(t.restEncoder,i);for(let s=0;s{const e=new $c,n=Ft(t.restDecoder);for(let r=0;r0){const o=as(e.clients,i,()=>[]);for(let l=0;l{const r=new $c,i=Ft(t.restDecoder);for(let s=0;s0){const s=new sa;return gt(s.restEncoder,0),Uc(s,r),s.toUint8Array()}return null},FO=rO;class Fi extends XD{constructor({guid:e=cK(),collectionid:n=null,gc:r=!0,gcFilter:i=()=>!0,meta:s=null,autoLoad:o=!1,shouldLoad:l=!0}={}){super(),this.gc=r,this.gcFilter=i,this.clientID=FO(),this.guid=e,this.collectionid=n,this.share=new Map,this.store=new qO,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=l,this.autoLoad=o,this.meta=s,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=uN(c=>{this.on("load",()=>{this.isLoaded=!0,c(this)})});const a=()=>uN(c=>{const u=d=>{(d===void 0||d===!0)&&(this.off("sync",u),c())};this.on("sync",u)});this.on("sync",c=>{c===!1&&this.isSynced&&(this.whenSynced=a()),this.isSynced=c===void 0||c===!0,this.isSynced&&!this.isLoaded&&this.emit("load",[this])}),this.whenSynced=a()}load(){const e=this._item;e!==null&&!this.shouldLoad&&yn(e.parent.doc,n=>{n.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(fo(this.subdocs).map(e=>e.guid))}transact(e,n=null){return yn(this,e,n)}get(e,n=dr){const r=as(this.share,e,()=>{const s=new n;return s._integrate(this,null),s}),i=r.constructor;if(n!==dr&&i!==n)if(i===dr){const s=new n;s._map=r._map,r._map.forEach(o=>{for(;o!==null;o=o.left)o.parent=s}),s._start=r._start;for(let o=s._start;o!==null;o=o.right)o.parent=s;return s._length=r._length,this.share.set(e,s),s._integrate(this,null),s}else throw new Error(`Type with the name ${e} has already been defined with a different constructor`);return r}getArray(e=""){return this.get(e,rc)}getText(e=""){return this.get(e,pl)}getMap(e=""){return this.get(e,xs)}getXmlElement(e=""){return this.get(e,Mr)}getXmlFragment(e=""){return this.get(e,oa)}toJSON(){const e={};return this.share.forEach((n,r)=>{e[r]=n.toJSON()}),e}destroy(){this.isDestroyed=!0,fo(this.subdocs).forEach(n=>n.destroy());const e=this._item;if(e!==null){this._item=null;const n=e.content;n.doc=new Fi({guid:this.guid,...n.opts,shouldLoad:!1}),n.doc._item=e,yn(e.parent.doc,r=>{const i=n.doc;e.deleted||r.subdocsAdded.add(i),r.subdocsRemoved.add(this)},null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class $O{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return Ft(this.restDecoder)}readDsLen(){return Ft(this.restDecoder)}}class BO extends $O{readLeftID(){return Ht(Ft(this.restDecoder),Ft(this.restDecoder))}readRightID(){return Ht(Ft(this.restDecoder),Ft(this.restDecoder))}readClient(){return Ft(this.restDecoder)}readInfo(){return Nc(this.restDecoder)}readString(){return nl(this.restDecoder)}readParentInfo(){return Ft(this.restDecoder)===1}readTypeRef(){return Ft(this.restDecoder)}readLen(){return Ft(this.restDecoder)}readAny(){return Md(this.restDecoder)}readBuf(){return OK(Tr(this.restDecoder))}readJSON(){return JSON.parse(nl(this.restDecoder))}readKey(){return nl(this.restDecoder)}}class MY{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=Ft(this.restDecoder),this.dsCurrVal}readDsLen(){const e=Ft(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Ac extends MY{constructor(e){super(e),this.keys=[],Ft(e),this.keyClockDecoder=new uv(Tr(e)),this.clientDecoder=new jh(Tr(e)),this.leftClockDecoder=new uv(Tr(e)),this.rightClockDecoder=new uv(Tr(e)),this.infoDecoder=new cN(Tr(e),Nc),this.stringDecoder=new iK(Tr(e)),this.parentInfoDecoder=new cN(Tr(e),Nc),this.typeRefDecoder=new jh(Tr(e)),this.lenDecoder=new jh(Tr(e))}readLeftID(){return new tc(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new tc(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return this.parentInfoDecoder.read()===1}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return Md(this.restDecoder)}readBuf(){return Tr(this.restDecoder)}readJSON(){return Md(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e{r=ho(r,e[0].id.clock);const i=ss(e,r);gt(t.restEncoder,e.length-i),t.writeClient(n),gt(t.restEncoder,r);const s=e[i];s.write(t,r-s.id.clock);for(let o=i+1;o{const r=new Map;n.forEach((i,s)=>{Fn(e,s)>i&&r.set(s,i)}),ff(e).forEach((i,s)=>{n.has(s)||r.set(s,0)}),gt(t.restEncoder,r.size),fo(r.entries()).sort((i,s)=>s[0]-i[0]).forEach(([i,s])=>{IY(t,e.clients.get(i),i,s)})},RY=(t,e)=>{const n=si(),r=Ft(t.restDecoder);for(let i=0;i{const r=[];let i=fo(n.keys()).sort((p,m)=>p-m);if(i.length===0)return null;const s=()=>{if(i.length===0)return null;let p=n.get(i[i.length-1]);for(;p.refs.length===p.i;)if(i.pop(),i.length>0)p=n.get(i[i.length-1]);else return null;return p};let o=s();if(o===null)return null;const l=new qO,a=new Map,c=(p,m)=>{const g=a.get(p);(g==null||g>m)&&a.set(p,m)};let u=o.refs[o.i++];const d=new Map,h=()=>{for(const p of r){const m=p.id.client,g=n.get(m);g?(g.i--,l.clients.set(m,g.refs.slice(g.i)),n.delete(m),g.i=0,g.refs=[]):l.clients.set(m,[p]),i=i.filter(v=>v!==m)}r.length=0};for(;;){if(u.constructor!==Ai){const m=as(d,u.id.client,()=>Fn(e,u.id.client))-u.id.clock;if(m<0)r.push(u),c(u.id.client,u.id.clock-1),h();else{const g=u.getMissing(t,e);if(g!==null){r.push(u);const v=n.get(g)||{refs:[],i:0};if(v.refs.length===v.i)c(g,Fn(e,g)),h();else{u=v.refs[v.i++];continue}}else(m===0||m0)u=r.pop();else if(o!==null&&o.i0){const p=new sa;return m1(p,l,new Map),gt(p.restEncoder,0),{missing:a,update:p.toUint8Array()}}return null},OY=(t,e)=>m1(t,e.doc.store,e.beforeState),jY=(t,e,n,r=new Ac(t))=>yn(e,i=>{i.local=!1;let s=!1;const o=i.doc,l=o.store,a=RY(r,o),c=DY(i,l,a),u=l.pendingStructs;if(u){for(const[h,p]of u.missing)if(pp)&&u.missing.set(h,p)}u.update=wm([u.update,c.update])}}else l.pendingStructs=c;const d=pN(r,i,l);if(l.pendingDs){const h=new Ac(xl(l.pendingDs));Ft(h.restDecoder);const p=pN(h,i,l);d&&p?l.pendingDs=wm([d,p]):l.pendingDs=d||p}else l.pendingDs=d;if(s){const h=l.pendingStructs.update;l.pendingStructs=null,vm(i.doc,h)}},n,!1),vm=(t,e,n,r=Ac)=>{const i=xl(e);jY(i,t,n,new r(i))},PY=(t,e,n)=>vm(t,e,n,BO),LY=(t,e,n=new Map)=>{m1(t,e.store,n),Uc(t,zO(e.store))},_Y=(t,e=new Uint8Array([0]),n=new sa)=>{const r=VO(e);LY(n,t,r);const i=[n.toUint8Array()];if(t.store.pendingDs&&i.push(t.store.pendingDs),t.store.pendingStructs&&i.push(rq(t.store.pendingStructs.update,e)),i.length>1){if(n.constructor===df)return tq(i.map((s,o)=>o===0?s:sq(s)));if(n.constructor===sa)return wm(i)}return i[0]},zY=(t,e)=>_Y(t,e,new df),FY=t=>{const e=new Map,n=Ft(t.restDecoder);for(let r=0;rFY(new $O(xl(t))),WO=(t,e)=>(gt(t.restEncoder,e.size),fo(e.entries()).sort((n,r)=>r[0]-n[0]).forEach(([n,r])=>{gt(t.restEncoder,n),gt(t.restEncoder,r)}),t),$Y=(t,e)=>WO(t,ff(e.store)),BY=(t,e=new HO)=>(t instanceof Map?WO(e,t):$Y(e,t),e.toUint8Array()),UY=t=>BY(t,new UO);class HY{constructor(){this.l=[]}}const mN=()=>new HY,gN=(t,e)=>t.l.push(e),yN=(t,e)=>{const n=t.l,r=n.length;t.l=n.filter(i=>e!==i),r===t.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},KO=(t,e,n)=>s1(t.l,[e,n]);class tc{constructor(e,n){this.client=e,this.clock=n}}const sh=(t,e)=>t===e||t!==null&&e!==null&&t.client===e.client&&t.clock===e.clock,Ht=(t,e)=>new tc(t,e),Od=t=>{for(const[e,n]of t.doc.share.entries())if(n===t)return e;throw Dr()},jd=(t,e)=>{for(;e!==null;){if(e.parent===t)return!0;e=e.parent._item}return!1};class bm{constructor(e,n,r,i=0){this.type=e,this.tname=n,this.item=r,this.assoc=i}}class VY{constructor(e,n,r=0){this.type=e,this.index=n,this.assoc=r}}const WY=(t,e,n=0)=>new VY(t,e,n),oh=(t,e,n)=>{let r=null,i=null;return t._item===null?i=Od(t):r=Ht(t._item.id.client,t._item.id.clock),new bm(r,i,e,n)},pv=(t,e,n=0)=>{let r=t._start;if(n<0){if(e===0)return oh(t,null,n);e--}for(;r!==null;){if(!r.deleted&&r.countable){if(r.length>e)return oh(t,Ht(r.id.client,r.id.clock+e),n);e-=r.length}if(r.right===null&&n<0)return oh(t,r.lastId,n);r=r.right}return oh(t,null,n)},KY=(t,e)=>{const n=nc(t,e),r=e.clock-n.id.clock;return{item:n,diff:r}},YY=(t,e,n=!0)=>{const r=e.store,i=t.item,s=t.type,o=t.tname,l=t.assoc;let a=null,c=0;if(i!==null){if(Fn(r,i.client)<=i.clock)return null;const u=n?Tb(r,i):KY(r,i),d=u.item;if(!(d instanceof cn))return null;if(a=d.parent,a._item===null||!a._item.deleted){c=d.deleted||!d.countable?0:u.diff+(l>=0?0:1);let h=d.left;for(;h!==null;)!h.deleted&&h.countable&&(c+=h.length),h=h.left}}else{if(o!==null)a=e.get(o);else if(s!==null){if(Fn(r,s.client)<=s.clock)return null;const{item:u}=n?Tb(r,s):{item:nc(r,s)};if(u instanceof cn&&u.content instanceof cs)a=u.content.type;else return null}else throw Dr();l>=0?c=a._length:c=0}return WY(a,c,t.assoc)};class g1{constructor(e,n){this.ds=e,this.sv=n}}const YO=(t,e)=>new g1(t,e),mv=t=>YO(zO(t.store),ff(t.store)),Tl=(t,e)=>e===void 0?!t.deleted:e.sv.has(t.id.client)&&(e.sv.get(t.id.client)||0)>t.id.clock&&!Bc(e.ds,t.id),Cb=(t,e)=>{const n=as(t.meta,Cb,uo),r=t.doc.store;n.has(e)||(e.sv.forEach((i,s)=>{i{}),n.add(e))};class qO{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const ff=t=>{const e=new Map;return t.clients.forEach((n,r)=>{const i=n[n.length-1];e.set(r,i.id.clock+i.length)}),e},Fn=(t,e)=>{const n=t.clients.get(e);if(n===void 0)return 0;const r=n[n.length-1];return r.id.clock+r.length},JO=(t,e)=>{let n=t.clients.get(e.id.client);if(n===void 0)n=[],t.clients.set(e.id.client,n);else{const r=n[n.length-1];if(r.id.clock+r.length!==e.id.clock)throw Dr()}n.push(e)},ss=(t,e)=>{let n=0,r=t.length-1,i=t[r],s=i.id.clock;if(s===e)return r;let o=zi(e/(s+i.length-1)*r);for(;n<=r;){if(i=t[o],s=i.id.clock,s<=e){if(e{const n=t.clients.get(e.client);return n[ss(n,e.clock)]},nc=qY,Eb=(t,e,n)=>{const r=ss(e,n),i=e[r];return i.id.clock{const n=t.doc.store.clients.get(e.client);return n[Eb(t,n,e.clock)]},vN=(t,e,n)=>{const r=e.clients.get(n.client),i=ss(r,n.clock),s=r[i];return n.clock!==s.id.clock+s.length-1&&s.constructor!==Ti&&r.splice(i+1,0,Em(t,s,n.clock-s.id.clock+1)),s},JY=(t,e,n)=>{const r=t.clients.get(e.id.client);r[ss(r,e.id.clock)]=n},GO=(t,e,n,r,i)=>{if(r===0)return;const s=n+r;let o=Eb(t,e,n),l;do l=e[o++],se.deleteSet.clients.size===0&&!E9(e.afterState,(n,r)=>e.beforeState.get(r)!==n)?!1:(h1(e.deleteSet),OY(t,e),Uc(t,e.deleteSet),!0),wN=(t,e,n)=>{const r=e._item;(r===null||r.id.clock<(t.beforeState.get(r.id.client)||0)&&!r.deleted)&&as(t.changed,e,uo).add(n)},Ph=(t,e)=>{let n=t[e],r=t[e-1],i=e;for(;i>0;n=r,r=t[--i-1]){if(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n)){n instanceof cn&&n.parentSub!==null&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);continue}break}const s=e-i;return s&&t.splice(e+1-s,s),s},XY=(t,e,n)=>{for(const[r,i]of t.clients.entries()){const s=e.clients.get(r);for(let o=i.length-1;o>=0;o--){const l=i[o],a=l.clock+l.len;for(let c=ss(s,l.clock),u=s[c];c{t.clients.forEach((n,r)=>{const i=e.clients.get(r);for(let s=n.length-1;s>=0;s--){const o=n[s],l=ia(i.length-1,1+ss(i,o.clock+o.len-1));for(let a=l,c=i[a];a>0&&c.id.clock>=o.clock;c=i[a])a-=1+Ph(i,a)}})},XO=(t,e)=>{if(el.push(()=>{(c._item===null||!c._item.deleted)&&c._callObserver(n,a)})),l.push(()=>{n.changedParentTypes.forEach((a,c)=>{c._dEH.l.length>0&&(c._item===null||!c._item.deleted)&&(a=a.filter(u=>u.target._item===null||!u.target._item.deleted),a.forEach(u=>{u.currentTarget=c,u._path=null}),a.sort((u,d)=>u.path.length-d.path.length),l.push(()=>{KO(c._dEH,a,n)}))}),l.push(()=>r.emit("afterTransaction",[n,r])),l.push(()=>{n._needFormattingCleanup&&bq(n)})}),s1(l,[])}finally{r.gc&&XY(s,i,r.gcFilter),QY(s,i),n.afterState.forEach((u,d)=>{const h=n.beforeState.get(d)||0;if(h!==u){const p=i.clients.get(d),m=ho(ss(p,h),1);for(let g=p.length-1;g>=m;)g-=1+Ph(p,g)}});for(let u=o.length-1;u>=0;u--){const{client:d,clock:h}=o[u].id,p=i.clients.get(d),m=ss(p,h);m+11||m>0&&Ph(p,m)}if(!n.local&&n.afterState.get(r.clientID)!==n.beforeState.get(r.clientID)&&(NY(d1,IO,"[yjs] ",RO,DO,"Changed the client-id because another client seems to be using it."),r.clientID=FO()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const u=new df;bN(u,n)&&r.emit("update",[u.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const u=new sa;bN(u,n)&&r.emit("updateV2",[u.toUint8Array(),n.origin,r,n])}const{subdocsAdded:l,subdocsLoaded:a,subdocsRemoved:c}=n;(l.size>0||c.size>0||a.size>0)&&(l.forEach(u=>{u.clientID=r.clientID,u.collectionid==null&&(u.collectionid=r.collectionid),r.subdocs.add(u)}),c.forEach(u=>r.subdocs.delete(u)),r.emit("subdocs",[{loaded:a,added:l,removed:c},r,n]),c.forEach(u=>u.destroy())),t.length<=e+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,t])):XO(t,e+1)}}},yn=(t,e,n=null,r=!0)=>{const i=t._transactionCleanups;let s=!1,o=null;t._transaction===null&&(s=!0,t._transaction=new GY(t,n,r),i.push(t._transaction),i.length===1&&t.emit("beforeAllTransactions",[t]),t.emit("beforeTransaction",[t._transaction,t]));try{o=e(t._transaction)}finally{if(s){const l=t._transaction===i[0];t._transaction=null,l&&XO(i,0)}}return o};class ZY{constructor(e,n){this.insertions=n,this.deletions=e,this.meta=new Map}}const xN=(t,e,n)=>{hl(t,n.deletions,r=>{r instanceof cn&&e.scope.some(i=>i===t.doc||jd(i,r))&&C1(r,!1)})},kN=(t,e,n)=>{let r=null;const i=t.doc,s=t.scope;yn(i,l=>{for(;e.length>0&&t.currStackItem===null;){const a=i.store,c=e.pop(),u=new Set,d=[];let h=!1;hl(l,c.insertions,p=>{if(p instanceof cn){if(p.redone!==null){let{item:m,diff:g}=Tb(a,p.id);g>0&&(m=Qr(l,Ht(m.id.client,m.id.clock+g))),p=m}!p.deleted&&s.some(m=>m===l.doc||jd(m,p))&&d.push(p)}}),hl(l,c.deletions,p=>{p instanceof cn&&s.some(m=>m===l.doc||jd(m,p))&&!Bc(c.insertions,p.id)&&u.add(p)}),u.forEach(p=>{h=yj(l,p,u,c.insertions,t.ignoreRemoteMapChanges,t)!==null||h});for(let p=d.length-1;p>=0;p--){const m=d[p];t.deleteFilter(m)&&(m.delete(l),h=!0)}t.currStackItem=h?c:null}l.changed.forEach((a,c)=>{a.has(null)&&c._searchMarker&&(c._searchMarker.length=0)}),r=l},t);const o=t.currStackItem;if(o!=null){const l=r.changedParentTypes;t.emit("stack-item-popped",[{stackItem:o,type:n,changedParentTypes:l,origin:t},t]),t.currStackItem=null}return o};class QO extends XD{constructor(e,{captureTimeout:n=500,captureTransaction:r=a=>!0,deleteFilter:i=()=>!0,trackedOrigins:s=new Set([null]),ignoreRemoteMapChanges:o=!1,doc:l=Cc(e)?e[0].doc:e instanceof Fi?e:e.doc}={}){super(),this.scope=[],this.doc=l,this.addToScope(e),this.deleteFilter=i,s.add(this),this.trackedOrigins=s,this.captureTransaction=r,this.undoStack=[],this.redoStack=[],this.undoing=!1,this.redoing=!1,this.currStackItem=null,this.lastChange=0,this.ignoreRemoteMapChanges=o,this.captureTimeout=n,this.afterTransactionHandler=a=>{if(!this.captureTransaction(a)||!this.scope.some(v=>a.changedParentTypes.has(v)||v===this.doc)||!this.trackedOrigins.has(a.origin)&&(!a.origin||!this.trackedOrigins.has(a.origin.constructor)))return;const c=this.undoing,u=this.redoing,d=c?this.redoStack:this.undoStack;c?this.stopCapturing():u||this.clear(!1,!0);const h=new $c;a.afterState.forEach((v,y)=>{const b=a.beforeState.get(y)||0,x=v-b;x>0&&Dd(h,y,b,x)});const p=dl();let m=!1;if(this.lastChange>0&&p-this.lastChange0&&!c&&!u){const v=d[d.length-1];v.deletions=Sb([v.deletions,a.deleteSet]),v.insertions=Sb([v.insertions,h])}else d.push(new ZY(a.deleteSet,h)),m=!0;!c&&!u&&(this.lastChange=p),hl(a,a.deleteSet,v=>{v instanceof cn&&this.scope.some(y=>y===a.doc||jd(y,v))&&C1(v,!0)});const g=[{stackItem:d[d.length-1],origin:a.origin,type:c?"redo":"undo",changedParentTypes:a.changedParentTypes},this];m?this.emit("stack-item-added",g):this.emit("stack-item-updated",g)},this.doc.on("afterTransaction",this.afterTransactionHandler),this.doc.on("destroy",()=>{this.destroy()})}addToScope(e){const n=new Set(this.scope);e=Cc(e)?e:[e],e.forEach(r=>{n.has(r)||(n.add(r),(r instanceof dr?r.doc!==this.doc:r!==this.doc)&&jO("[yjs#509] Not same Y.Doc"),this.scope.push(r))})}addTrackedOrigin(e){this.trackedOrigins.add(e)}removeTrackedOrigin(e){this.trackedOrigins.delete(e)}clear(e=!0,n=!0){(e&&this.canUndo()||n&&this.canRedo())&&this.doc.transact(r=>{e&&(this.undoStack.forEach(i=>xN(r,this,i)),this.undoStack=[]),n&&(this.redoStack.forEach(i=>xN(r,this,i)),this.redoStack=[]),this.emit("stack-cleared",[{undoStackCleared:e,redoStackCleared:n}])})}stopCapturing(){this.lastChange=0}undo(){this.undoing=!0;let e;try{e=kN(this,this.undoStack,"undo")}finally{this.undoing=!1}return e}redo(){this.redoing=!0;let e;try{e=kN(this,this.redoStack,"redo")}finally{this.redoing=!1}return e}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}destroy(){this.trackedOrigins.delete(this),this.doc.off("afterTransaction",this.afterTransactionHandler),super.destroy()}}function*eq(t){const e=Ft(t.restDecoder);for(let n=0;nwm(t,BO,df),nq=(t,e)=>{if(t.constructor===Ti){const{client:n,clock:r}=t.id;return new Ti(Ht(n,r+e),t.length-e)}else if(t.constructor===Ai){const{client:n,clock:r}=t.id;return new Ai(Ht(n,r+e),t.length-e)}else{const n=t,{client:r,clock:i}=n.id;return new cn(Ht(r,i+e),null,Ht(r,i+e-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(e))}},wm=(t,e=Ac,n=sa)=>{if(t.length===1)return t[0];const r=t.map(u=>new e(xl(u)));let i=r.map(u=>new y1(u,!0)),s=null;const o=new n,l=new v1(o);for(;i=i.filter(h=>h.curr!==null),i.sort((h,p)=>{if(h.curr.id.client===p.curr.id.client){const m=h.curr.id.clock-p.curr.id.clock;return m===0?h.curr.constructor===p.curr.constructor?0:h.curr.constructor===Ai?1:-1:m}else return p.curr.id.client-h.curr.id.client}),i.length!==0;){const u=i[0],d=u.curr.id.client;if(s!==null){let h=u.curr,p=!1;for(;h!==null&&h.id.clock+h.length<=s.struct.id.clock+s.struct.length&&h.id.client>=s.struct.id.client;)h=u.next(),p=!0;if(h===null||h.id.client!==d||p&&h.id.clock>s.struct.id.clock+s.struct.length)continue;if(d!==s.struct.id.client)_o(l,s.struct,s.offset),s={struct:h,offset:0},u.next();else if(s.struct.id.clock+s.struct.length0&&(s.struct.constructor===Ai?s.struct.length-=m:h=nq(h,m)),s.struct.mergeWith(h)||(_o(l,s.struct,s.offset),s={struct:h,offset:0},u.next())}}else s={struct:u.curr,offset:0},u.next();for(let h=u.curr;h!==null&&h.id.client===d&&h.id.clock===s.struct.id.clock+s.struct.length&&h.constructor!==Ai;h=u.next())_o(l,s.struct,s.offset),s={struct:h,offset:0}}s!==null&&(_o(l,s.struct,s.offset),s=null),b1(l);const a=r.map(u=>p1(u)),c=Sb(a);return Uc(o,c),o.toUint8Array()},rq=(t,e,n=Ac,r=sa)=>{const i=VO(e),s=new r,o=new v1(s),l=new n(xl(t)),a=new y1(l,!1);for(;a.curr;){const u=a.curr,d=u.id.client,h=i.get(d)||0;if(a.curr.constructor===Ai){a.next();continue}if(u.id.clock+u.length>h)for(_o(o,u,ho(h-u.id.clock,0)),a.next();a.curr&&a.curr.id.client===d;)_o(o,a.curr,0),a.next();else for(;a.curr&&a.curr.id.client===d&&a.curr.id.clock+a.curr.length<=h;)a.next()}b1(o);const c=p1(l);return Uc(s,c),s.toUint8Array()},ZO=t=>{t.written>0&&(t.clientStructs.push({written:t.written,restEncoder:Nn(t.encoder.restEncoder)}),t.encoder.restEncoder=gr(),t.written=0)},_o=(t,e,n)=>{t.written>0&&t.currClient!==e.id.client&&ZO(t),t.written===0&&(t.currClient=e.id.client,t.encoder.writeClient(e.id.client),gt(t.encoder.restEncoder,e.id.clock+n)),e.write(t.encoder,n),t.written++},b1=t=>{ZO(t);const e=t.encoder.restEncoder;gt(e,t.clientStructs.length);for(let n=0;n{const i=new n(xl(t)),s=new y1(i,!1),o=new r,l=new v1(o);for(let c=s.curr;c!==null;c=s.next())_o(l,e(c),0);b1(l);const a=p1(i);return Uc(o,a),o.toUint8Array()},sq=t=>iq(t,wK,Ac,df),SN="You must not compute changes after the event-handler fired.";class Og{constructor(e,n){this.target=e,this.currentTarget=e,this.transaction=n,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=oq(this.currentTarget,this.target))}deletes(e){return Bc(this.transaction.deleteSet,e.id)}get keys(){if(this._keys===null){if(this.transaction.doc._transactionCleanups.length===0)throw Rs(SN);const e=new Map,n=this.target;this.transaction.changed.get(n).forEach(i=>{if(i!==null){const s=n._map.get(i);let o,l;if(this.adds(s)){let a=s.left;for(;a!==null&&this.adds(a);)a=a.left;if(this.deletes(s))if(a!==null&&this.deletes(a))o="delete",l=ov(a.content.getContent());else return;else a!==null&&this.deletes(a)?(o="update",l=ov(a.content.getContent())):(o="add",l=void 0)}else if(this.deletes(s))o="delete",l=ov(s.content.getContent());else return;e.set(i,{action:o,oldValue:l})}}),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(e===null){if(this.transaction.doc._transactionCleanups.length===0)throw Rs(SN);const n=this.target,r=uo(),i=uo(),s=[];if(e={added:r,deleted:i,delta:s,keys:this.keys},this.transaction.changed.get(n).has(null)){let l=null;const a=()=>{l&&s.push(l)};for(let c=n._start;c!==null;c=c.right)c.deleted?this.deletes(c)&&!this.adds(c)&&((l===null||l.delete===void 0)&&(a(),l={delete:0}),l.delete+=c.length,i.add(c)):this.adds(c)?((l===null||l.insert===void 0)&&(a(),l={insert:[]}),l.insert=l.insert.concat(c.content.getContent()),r.add(c)):((l===null||l.retain===void 0)&&(a(),l={retain:0}),l.retain+=c.length);l!==null&&l.retain===void 0&&a()}this._changes=e}return e}}const oq=(t,e)=>{const n=[];for(;e._item!==null&&e!==t;){if(e._item.parentSub!==null)n.unshift(e._item.parentSub);else{let r=0,i=e._item.parent._start;for(;i!==e._item&&i!==null;)!i.deleted&&i.countable&&(r+=i.length),i=i.right;n.unshift(r)}e=e._item.parent}return n},Ir=()=>{jO("Invalid access: Add Yjs type to a document before reading data.")},ej=80;let w1=0;class lq{constructor(e,n){e.marker=!0,this.p=e,this.index=n,this.timestamp=w1++}}const aq=t=>{t.timestamp=w1++},tj=(t,e,n)=>{t.p.marker=!1,t.p=e,e.marker=!0,t.index=n,t.timestamp=w1++},cq=(t,e,n)=>{if(t.length>=ej){const r=t.reduce((i,s)=>i.timestamp{if(t._start===null||e===0||t._searchMarker===null)return null;const n=t._searchMarker.length===0?null:t._searchMarker.reduce((s,o)=>Dh(e-s.index)e;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);for(;r.left!==null&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);return n!==null&&Dh(n.index-i){for(let r=t.length-1;r>=0;r--){const i=t[r];if(n>0){let s=i.p;for(s.marker=!1;s&&(s.deleted||!s.countable);)s=s.left,s&&!s.deleted&&s.countable&&(i.index-=s.length);if(s===null||s.marker===!0){t.splice(r,1);continue}i.p=s,s.marker=!0}(e0&&e===i.index)&&(i.index=ho(e,i.index+n))}},Pg=(t,e,n)=>{const r=t,i=e.changedParentTypes;for(;as(i,t,()=>[]).push(n),t._item!==null;)t=t._item.parent;KO(r._eH,n,e)};class dr{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=mN(),this._dEH=mN(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,n){this.doc=e,this._item=n}_copy(){throw Oi()}clone(){throw Oi()}_write(e){}get _first(){let e=this._start;for(;e!==null&&e.deleted;)e=e.right;return e}_callObserver(e,n){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){gN(this._eH,e)}observeDeep(e){gN(this._dEH,e)}unobserve(e){yN(this._eH,e)}unobserveDeep(e){yN(this._dEH,e)}toJSON(){}}const nj=(t,e,n)=>{t.doc??Ir(),e<0&&(e=t._length+e),n<0&&(n=t._length+n);let r=n-e;const i=[];let s=t._start;for(;s!==null&&r>0;){if(s.countable&&!s.deleted){const o=s.content.getContent();if(o.length<=e)e-=o.length;else{for(let l=e;l0;l++)i.push(o[l]),r--;e=0}}s=s.right}return i},rj=t=>{t.doc??Ir();const e=[];let n=t._start;for(;n!==null;){if(n.countable&&!n.deleted){const r=n.content.getContent();for(let i=0;i{const n=[];let r=t._start;for(;r!==null;){if(r.countable&&Tl(r,e)){const i=r.content.getContent();for(let s=0;s{let n=0,r=t._start;for(t.doc??Ir();r!==null;){if(r.countable&&!r.deleted){const i=r.content.getContent();for(let s=0;s{const n=[];return Ld(t,(r,i)=>{n.push(e(r,i,t))}),n},uq=t=>{let e=t._start,n=null,r=0;return{[Symbol.iterator](){return this},next:()=>{if(n===null){for(;e!==null&&e.deleted;)e=e.right;if(e===null)return{done:!0,value:void 0};n=e.content.getContent(),r=0,e=e.right}const i=n[r++];return n.length<=r&&(n=null),{done:!1,value:i}}}},oj=(t,e)=>{t.doc??Ir();const n=jg(t,e);let r=t._start;for(n!==null&&(r=n.p,e-=n.index);r!==null;r=r.right)if(!r.deleted&&r.countable){if(e{let i=n;const s=t.doc,o=s.clientID,l=s.store,a=n===null?e._start:n.right;let c=[];const u=()=>{c.length>0&&(i=new cn(Ht(o,Fn(l,o)),i,i&&i.lastId,a,a&&a.id,e,null,new la(c)),i.integrate(t,0),c=[])};r.forEach(d=>{if(d===null)c.push(d);else switch(d.constructor){case Number:case Object:case Boolean:case Array:case String:c.push(d);break;default:switch(u(),d.constructor){case Uint8Array:case ArrayBuffer:i=new cn(Ht(o,Fn(l,o)),i,i&&i.lastId,a,a&&a.id,e,null,new hf(new Uint8Array(d))),i.integrate(t,0);break;case Fi:i=new cn(Ht(o,Fn(l,o)),i,i&&i.lastId,a,a&&a.id,e,null,new pf(d)),i.integrate(t,0);break;default:if(d instanceof dr)i=new cn(Ht(o,Fn(l,o)),i,i&&i.lastId,a,a&&a.id,e,null,new cs(d)),i.integrate(t,0);else throw new Error("Unexpected content type in insert operation")}}}),u()},lj=()=>Rs("Length exceeded!"),aj=(t,e,n,r)=>{if(n>e._length)throw lj();if(n===0)return e._searchMarker&&Pd(e._searchMarker,n,r.length),xm(t,e,null,r);const i=n,s=jg(e,n);let o=e._start;for(s!==null&&(o=s.p,n-=s.index,n===0&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));o!==null;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n{let i=(e._searchMarker||[]).reduce((s,o)=>o.index>s.index?o:s,{index:0,p:e._start}).p;if(i)for(;i.right;)i=i.right;return xm(t,e,i,n)},cj=(t,e,n,r)=>{if(r===0)return;const i=n,s=r,o=jg(e,n);let l=e._start;for(o!==null&&(l=o.p,n-=o.index);l!==null&&n>0;l=l.right)!l.deleted&&l.countable&&(n0&&l!==null;)l.deleted||(r0)throw lj();e._searchMarker&&Pd(e._searchMarker,i,-s+r)},km=(t,e,n)=>{const r=e._map.get(n);r!==void 0&&r.delete(t)},x1=(t,e,n,r)=>{const i=e._map.get(n)||null,s=t.doc,o=s.clientID;let l;if(r==null)l=new la([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:l=new la([r]);break;case Uint8Array:l=new hf(r);break;case Fi:l=new pf(r);break;default:if(r instanceof dr)l=new cs(r);else throw new Error("Unexpected content type")}new cn(Ht(o,Fn(s.store,o)),i,i&&i.lastId,null,null,e,n,l).integrate(t,0)},k1=(t,e)=>{t.doc??Ir();const n=t._map.get(e);return n!==void 0&&!n.deleted?n.content.getContent()[n.length-1]:void 0},uj=t=>{const e={};return t.doc??Ir(),t._map.forEach((n,r)=>{n.deleted||(e[r]=n.content.getContent()[n.length-1])}),e},dj=(t,e)=>{t.doc??Ir();const n=t._map.get(e);return n!==void 0&&!n.deleted},fq=(t,e)=>{const n={};return t._map.forEach((r,i)=>{let s=r;for(;s!==null&&(!e.sv.has(s.id.client)||s.id.clock>=(e.sv.get(s.id.client)||0));)s=s.left;s!==null&&Tl(s,e)&&(n[i]=s.content.getContent()[s.length-1])}),n},lh=t=>(t.doc??Ir(),TY(t._map.entries(),e=>!e[1].deleted));class hq extends Og{}class rc extends dr{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const n=new rc;return n.push(e),n}_integrate(e,n){super._integrate(e,n),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new rc}clone(){const e=new rc;return e.insert(0,this.toArray().map(n=>n instanceof dr?n.clone():n)),e}get length(){return this.doc??Ir(),this._length}_callObserver(e,n){super._callObserver(e,n),Pg(this,e,new hq(this,e))}insert(e,n){this.doc!==null?yn(this.doc,r=>{aj(r,this,e,n)}):this._prelimContent.splice(e,0,...n)}push(e){this.doc!==null?yn(this.doc,n=>{dq(n,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,n=1){this.doc!==null?yn(this.doc,r=>{cj(r,this,e,n)}):this._prelimContent.splice(e,n)}get(e){return oj(this,e)}toArray(){return rj(this)}slice(e=0,n=this.length){return nj(this,e,n)}toJSON(){return this.map(e=>e instanceof dr?e.toJSON():e)}map(e){return sj(this,e)}forEach(e){Ld(this,e)}[Symbol.iterator](){return uq(this)}_write(e){e.writeTypeRef(zq)}}const pq=t=>new rc;class mq extends Og{constructor(e,n,r){super(e,n),this.keysChanged=r}}class xs extends dr{constructor(e){super(),this._prelimContent=null,e===void 0?this._prelimContent=new Map:this._prelimContent=new Map(e)}_integrate(e,n){super._integrate(e,n),this._prelimContent.forEach((r,i)=>{this.set(i,r)}),this._prelimContent=null}_copy(){return new xs}clone(){const e=new xs;return this.forEach((n,r)=>{e.set(r,n instanceof dr?n.clone():n)}),e}_callObserver(e,n){Pg(this,e,new mq(this,e,n))}toJSON(){this.doc??Ir();const e={};return this._map.forEach((n,r)=>{if(!n.deleted){const i=n.content.getContent()[n.length-1];e[r]=i instanceof dr?i.toJSON():i}}),e}get size(){return[...lh(this)].length}keys(){return hv(lh(this),e=>e[0])}values(){return hv(lh(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return hv(lh(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??Ir(),this._map.forEach((n,r)=>{n.deleted||e(n.content.getContent()[n.length-1],r,this)})}[Symbol.iterator](){return this.entries()}delete(e){this.doc!==null?yn(this.doc,n=>{km(n,this,e)}):this._prelimContent.delete(e)}set(e,n){return this.doc!==null?yn(this.doc,r=>{x1(r,this,e,n)}):this._prelimContent.set(e,n),n}get(e){return k1(this,e)}has(e){return dj(this,e)}clear(){this.doc!==null?yn(this.doc,e=>{this.forEach(function(n,r,i){km(e,i,r)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(Fq)}}const gq=t=>new xs,Ho=(t,e)=>t===e||typeof t=="object"&&typeof e=="object"&&t&&e&&vK(t,e);class Nb{constructor(e,n,r,i){this.left=e,this.right=n,this.index=r,this.currentAttributes=i}forward(){switch(this.right===null&&Dr(),this.right.content.constructor){case qn:this.right.deleted||Hc(this.currentAttributes,this.right.content);break;default:this.right.deleted||(this.index+=this.right.length);break}this.left=this.right,this.right=this.right.right}}const CN=(t,e,n)=>{for(;e.right!==null&&n>0;){switch(e.right.content.constructor){case qn:e.right.deleted||Hc(e.currentAttributes,e.right.content);break;default:e.right.deleted||(n{const i=new Map,s=r?jg(e,n):null;if(s){const o=new Nb(s.p.left,s.p,s.index,i);return CN(t,o,n-s.index)}else{const o=new Nb(null,e._start,0,i);return CN(t,o,n)}},fj=(t,e,n,r)=>{for(;n.right!==null&&(n.right.deleted===!0||n.right.content.constructor===qn&&Ho(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();const i=t.doc,s=i.clientID;r.forEach((o,l)=>{const a=n.left,c=n.right,u=new cn(Ht(s,Fn(i.store,s)),a,a&&a.lastId,c,c&&c.id,e,null,new qn(l,o));u.integrate(t,0),n.right=u,n.forward()})},Hc=(t,e)=>{const{key:n,value:r}=e;r===null?t.delete(n):t.set(n,r)},hj=(t,e)=>{for(;t.right!==null;){if(!(t.right.deleted||t.right.content.constructor===qn&&Ho(e[t.right.content.key]??null,t.right.content.value)))break;t.forward()}},pj=(t,e,n,r)=>{const i=t.doc,s=i.clientID,o=new Map;for(const l in r){const a=r[l],c=n.currentAttributes.get(l)??null;if(!Ho(c,a)){o.set(l,c);const{left:u,right:d}=n;n.right=new cn(Ht(s,Fn(i.store,s)),u,u&&u.lastId,d,d&&d.id,e,null,new qn(l,a)),n.right.integrate(t,0),n.forward()}}return o},gv=(t,e,n,r,i)=>{n.currentAttributes.forEach((h,p)=>{i[p]===void 0&&(i[p]=null)});const s=t.doc,o=s.clientID;hj(n,i);const l=pj(t,e,n,i),a=r.constructor===String?new ls(r):r instanceof dr?new cs(r):new ha(r);let{left:c,right:u,index:d}=n;e._searchMarker&&Pd(e._searchMarker,n.index,a.getLength()),u=new cn(Ht(o,Fn(s.store,o)),c,c&&c.lastId,u,u&&u.id,e,null,a),u.integrate(t,0),n.right=u,n.index=d,n.forward(),fj(t,e,n,l)},EN=(t,e,n,r,i)=>{const s=t.doc,o=s.clientID;hj(n,i);const l=pj(t,e,n,i);e:for(;n.right!==null&&(r>0||l.size>0&&(n.right.deleted||n.right.content.constructor===qn));){if(!n.right.deleted)switch(n.right.content.constructor){case qn:{const{key:a,value:c}=n.right.content,u=i[a];if(u!==void 0){if(Ho(u,c))l.delete(a);else{if(r===0)break e;l.set(a,c)}n.right.delete(t)}else n.currentAttributes.set(a,c);break}default:r0){let a="";for(;r>0;r--)a+=` +`;n.right=new cn(Ht(o,Fn(s.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,e,null,new ls(a)),n.right.integrate(t,0),n.forward()}fj(t,e,n,l)},mj=(t,e,n,r,i)=>{let s=e;const o=si();for(;s&&(!s.countable||s.deleted);){if(!s.deleted&&s.content.constructor===qn){const c=s.content;o.set(c.key,c)}s=s.right}let l=0,a=!1;for(;e!==s;){if(n===e&&(a=!0),!e.deleted){const c=e.content;switch(c.constructor){case qn:{const{key:u,value:d}=c,h=r.get(u)??null;(o.get(u)!==c||h===d)&&(e.delete(t),l++,!a&&(i.get(u)??null)===d&&h!==d&&(h===null?i.delete(u):i.set(u,h))),!a&&!e.deleted&&Hc(i,c);break}}}e=e.right}return l},yq=(t,e)=>{for(;e&&e.right&&(e.right.deleted||!e.right.countable);)e=e.right;const n=new Set;for(;e&&(e.deleted||!e.countable);){if(!e.deleted&&e.content.constructor===qn){const r=e.content.key;n.has(r)?e.delete(t):n.add(r)}e=e.left}},vq=t=>{let e=0;return yn(t.doc,n=>{let r=t._start,i=t._start,s=si();const o=yb(s);for(;i;){if(i.deleted===!1)switch(i.content.constructor){case qn:Hc(o,i.content);break;default:e+=mj(n,r,i,s,o),s=yb(o),r=i;break}i=i.right}}),e},bq=t=>{const e=new Set,n=t.doc;for(const[r,i]of t.afterState.entries()){const s=t.beforeState.get(r)||0;i!==s&&GO(t,n.store.clients.get(r),s,i,o=>{!o.deleted&&o.content.constructor===qn&&o.constructor!==Ti&&e.add(o.parent)})}yn(n,r=>{hl(t,t.deleteSet,i=>{if(i instanceof Ti||!i.parent._hasFormatting||e.has(i.parent))return;const s=i.parent;i.content.constructor===qn?e.add(s):yq(r,i)});for(const i of e)vq(i)})},NN=(t,e,n)=>{const r=n,i=yb(e.currentAttributes),s=e.right;for(;n>0&&e.right!==null;){if(e.right.deleted===!1)switch(e.right.content.constructor){case cs:case ha:case ls:n{i===null?this.childListChanged=!0:this.keysChanged.add(i)})}get changes(){if(this._changes===null){const e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(this._delta===null){const e=this.target.doc,n=[];yn(e,r=>{const i=new Map,s=new Map;let o=this.target._start,l=null;const a={};let c="",u=0,d=0;const h=()=>{if(l!==null){let p=null;switch(l){case"delete":d>0&&(p={delete:d}),d=0;break;case"insert":(typeof c=="object"||c.length>0)&&(p={insert:c},i.size>0&&(p.attributes={},i.forEach((m,g)=>{m!==null&&(p.attributes[g]=m)}))),c="";break;case"retain":u>0&&(p={retain:u},yK(a)||(p.attributes=pK({},a))),u=0;break}p&&n.push(p),l=null}};for(;o!==null;){switch(o.content.constructor){case cs:case ha:this.adds(o)?this.deletes(o)||(h(),l="insert",c=o.content.getContent()[0],h()):this.deletes(o)?(l!=="delete"&&(h(),l="delete"),d+=1):o.deleted||(l!=="retain"&&(h(),l="retain"),u+=1);break;case ls:this.adds(o)?this.deletes(o)||(l!=="insert"&&(h(),l="insert"),c+=o.content.str):this.deletes(o)?(l!=="delete"&&(h(),l="delete"),d+=o.length):o.deleted||(l!=="retain"&&(h(),l="retain"),u+=o.length);break;case qn:{const{key:p,value:m}=o.content;if(this.adds(o)){if(!this.deletes(o)){const g=i.get(p)??null;Ho(g,m)?m!==null&&o.delete(r):(l==="retain"&&h(),Ho(m,s.get(p)??null)?delete a[p]:a[p]=m)}}else if(this.deletes(o)){s.set(p,m);const g=i.get(p)??null;Ho(g,m)||(l==="retain"&&h(),a[p]=g)}else if(!o.deleted){s.set(p,m);const g=a[p];g!==void 0&&(Ho(g,m)?g!==null&&o.delete(r):(l==="retain"&&h(),m===null?delete a[p]:a[p]=m))}o.deleted||(l==="insert"&&h(),Hc(i,o.content));break}}o=o.right}for(h();n.length>0;){const p=n[n.length-1];if(p.retain!==void 0&&p.attributes===void 0)n.pop();else break}}),this._delta=n}return this._delta}}class pl extends dr{constructor(e){super(),this._pending=e!==void 0?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??Ir(),this._length}_integrate(e,n){super._integrate(e,n);try{this._pending.forEach(r=>r())}catch(r){console.error(r)}this._pending=null}_copy(){return new pl}clone(){const e=new pl;return e.applyDelta(this.toDelta()),e}_callObserver(e,n){super._callObserver(e,n);const r=new wq(this,e,n);Pg(this,e,r),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??Ir();let e="",n=this._start;for(;n!==null;)!n.deleted&&n.countable&&n.content.constructor===ls&&(e+=n.content.str),n=n.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:n=!0}={}){this.doc!==null?yn(this.doc,r=>{const i=new Nb(null,this._start,0,new Map);for(let s=0;s0)&&gv(r,this,i,l,o.attributes||{})}else o.retain!==void 0?EN(r,this,i,o.retain,o.attributes||{}):o.delete!==void 0&&NN(r,i,o.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,n,r){this.doc??Ir();const i=[],s=new Map,o=this.doc;let l="",a=this._start;function c(){if(l.length>0){const d={};let h=!1;s.forEach((m,g)=>{h=!0,d[g]=m});const p={insert:l};h&&(p.attributes=d),i.push(p),l=""}}const u=()=>{for(;a!==null;){if(Tl(a,e)||n!==void 0&&Tl(a,n))switch(a.content.constructor){case ls:{const d=s.get("ychange");e!==void 0&&!Tl(a,e)?(d===void 0||d.user!==a.id.client||d.type!=="removed")&&(c(),s.set("ychange",r?r("removed",a.id):{type:"removed"})):n!==void 0&&!Tl(a,n)?(d===void 0||d.user!==a.id.client||d.type!=="added")&&(c(),s.set("ychange",r?r("added",a.id):{type:"added"})):d!==void 0&&(c(),s.delete("ychange")),l+=a.content.str;break}case cs:case ha:{c();const d={insert:a.content.getContent()[0]};if(s.size>0){const h={};d.attributes=h,s.forEach((p,m)=>{h[m]=p})}i.push(d);break}case qn:Tl(a,e)&&(c(),Hc(s,a.content));break}a=a.right}c()};return e||n?yn(o,d=>{e&&Cb(d,e),n&&Cb(d,n),u()},"cleanup"):u(),i}insert(e,n,r){if(n.length<=0)return;const i=this.doc;i!==null?yn(i,s=>{const o=ah(s,this,e,!r);r||(r={},o.currentAttributes.forEach((l,a)=>{r[a]=l})),gv(s,this,o,n,r)}):this._pending.push(()=>this.insert(e,n,r))}insertEmbed(e,n,r){const i=this.doc;i!==null?yn(i,s=>{const o=ah(s,this,e,!r);gv(s,this,o,n,r||{})}):this._pending.push(()=>this.insertEmbed(e,n,r||{}))}delete(e,n){if(n===0)return;const r=this.doc;r!==null?yn(r,i=>{NN(i,ah(i,this,e,!0),n)}):this._pending.push(()=>this.delete(e,n))}format(e,n,r){if(n===0)return;const i=this.doc;i!==null?yn(i,s=>{const o=ah(s,this,e,!1);o.right!==null&&EN(s,this,o,n,r)}):this._pending.push(()=>this.format(e,n,r))}removeAttribute(e){this.doc!==null?yn(this.doc,n=>{km(n,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,n){this.doc!==null?yn(this.doc,r=>{x1(r,this,e,n)}):this._pending.push(()=>this.setAttribute(e,n))}getAttribute(e){return k1(this,e)}getAttributes(){return uj(this)}_write(e){e.writeTypeRef($q)}}const xq=t=>new pl;class yv{constructor(e,n=()=>!0){this._filter=n,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??Ir()}[Symbol.iterator](){return this}next(){let e=this._currentNode,n=e&&e.content&&e.content.type;if(e!==null&&(!this._firstCall||e.deleted||!this._filter(n)))do if(n=e.content.type,!e.deleted&&(n.constructor===Mr||n.constructor===oa)&&n._start!==null)e=n._start;else for(;e!==null;){const r=e.next;if(r!==null){e=r;break}else e.parent===this._root?e=null:e=e.parent._item}while(e!==null&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,e===null?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}}class oa extends dr{constructor(){super(),this._prelimContent=[]}get firstChild(){const e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,n){super._integrate(e,n),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new oa}clone(){const e=new oa;return e.insert(0,this.toArray().map(n=>n instanceof dr?n.clone():n)),e}get length(){return this.doc??Ir(),this._prelimContent===null?this._length:this._prelimContent.length}createTreeWalker(e){return new yv(this,e)}querySelector(e){e=e.toUpperCase();const r=new yv(this,i=>i.nodeName&&i.nodeName.toUpperCase()===e).next();return r.done?null:r.value}querySelectorAll(e){return e=e.toUpperCase(),fo(new yv(this,n=>n.nodeName&&n.nodeName.toUpperCase()===e))}_callObserver(e,n){Pg(this,e,new Cq(this,n,e))}toString(){return sj(this,e=>e.toString()).join("")}toJSON(){return this.toString()}toDOM(e=document,n={},r){const i=e.createDocumentFragment();return r!==void 0&&r._createAssociation(i,this),Ld(this,s=>{i.insertBefore(s.toDOM(e,n,r),null)}),i}insert(e,n){this.doc!==null?yn(this.doc,r=>{aj(r,this,e,n)}):this._prelimContent.splice(e,0,...n)}insertAfter(e,n){if(this.doc!==null)yn(this.doc,r=>{const i=e&&e instanceof dr?e._item:e;xm(r,this,i,n)});else{const r=this._prelimContent,i=e===null?0:r.findIndex(s=>s===e)+1;if(i===0&&e!==null)throw Rs("Reference item not found");r.splice(i,0,...n)}}delete(e,n=1){this.doc!==null?yn(this.doc,r=>{cj(r,this,e,n)}):this._prelimContent.splice(e,n)}toArray(){return rj(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return oj(this,e)}slice(e=0,n=this.length){return nj(this,e,n)}forEach(e){Ld(this,e)}_write(e){e.writeTypeRef(Uq)}}const kq=t=>new oa;class Mr extends oa{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,n){super._integrate(e,n),this._prelimAttrs.forEach((r,i)=>{this.setAttribute(i,r)}),this._prelimAttrs=null}_copy(){return new Mr(this.nodeName)}clone(){const e=new Mr(this.nodeName),n=this.getAttributes();return mK(n,(r,i)=>{e.setAttribute(i,r)}),e.insert(0,this.toArray().map(r=>r instanceof dr?r.clone():r)),e}toString(){const e=this.getAttributes(),n=[],r=[];for(const l in e)r.push(l);r.sort();const i=r.length;for(let l=0;l0?" "+n.join(" "):"";return`<${s}${o}>${super.toString()}`}removeAttribute(e){this.doc!==null?yn(this.doc,n=>{km(n,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,n){this.doc!==null?yn(this.doc,r=>{x1(r,this,e,n)}):this._prelimAttrs.set(e,n)}getAttribute(e){return k1(this,e)}hasAttribute(e){return dj(this,e)}getAttributes(e){return e?fq(this,e):uj(this)}toDOM(e=document,n={},r){const i=e.createElement(this.nodeName),s=this.getAttributes();for(const o in s){const l=s[o];typeof l=="string"&&i.setAttribute(o,l)}return Ld(this,o=>{i.appendChild(o.toDOM(e,n,r))}),r!==void 0&&r._createAssociation(i,this),i}_write(e){e.writeTypeRef(Bq),e.writeKey(this.nodeName)}}const Sq=t=>new Mr(t.readKey());class Cq extends Og{constructor(e,n,r){super(e,r),this.childListChanged=!1,this.attributesChanged=new Set,n.forEach(i=>{i===null?this.childListChanged=!0:this.attributesChanged.add(i)})}}class Sm extends xs{constructor(e){super(),this.hookName=e}_copy(){return new Sm(this.hookName)}clone(){const e=new Sm(this.hookName);return this.forEach((n,r)=>{e.set(r,n)}),e}toDOM(e=document,n={},r){const i=n[this.hookName];let s;return i!==void 0?s=i.createDom(this):s=document.createElement(this.hookName),s.setAttribute("data-yjs-hook",this.hookName),r!==void 0&&r._createAssociation(s,this),s}_write(e){e.writeTypeRef(Hq),e.writeKey(this.hookName)}}const Eq=t=>new Sm(t.readKey());class oi extends pl{get nextSibling(){const e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){const e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new oi}clone(){const e=new oi;return e.applyDelta(this.toDelta()),e}toDOM(e=document,n,r){const i=e.createTextNode(this.toString());return r!==void 0&&r._createAssociation(i,this),i}toString(){return this.toDelta().map(e=>{const n=[];for(const i in e.attributes){const s=[];for(const o in e.attributes[i])s.push({key:o,value:e.attributes[i][o]});s.sort((o,l)=>o.keyi.nodeName=0;i--)r+=``;return r}).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Vq)}}const Nq=t=>new oi;class S1{constructor(e,n){this.id=e,this.length=n}get deleted(){throw Oi()}mergeWith(e){return!1}write(e,n,r){throw Oi()}integrate(e,n){throw Oi()}}const Tq=0;class Ti extends S1{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor!==e.constructor?!1:(this.length+=e.length,!0)}integrate(e,n){n>0&&(this.id.clock+=n,this.length-=n),JO(e.doc.store,this)}write(e,n){e.writeInfo(Tq),e.writeLen(this.length-n)}getMissing(e,n){return null}}class hf{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new hf(this.content)}splice(e){throw Oi()}mergeWith(e){return!1}integrate(e,n){}delete(e){}gc(e){}write(e,n){e.writeBuf(this.content)}getRef(){return 3}}const Aq=t=>new hf(t.readBuf());class _d{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new _d(this.len)}splice(e){const n=new _d(this.len-e);return this.len=e,n}mergeWith(e){return this.len+=e.len,!0}integrate(e,n){Dd(e.deleteSet,n.id.client,n.id.clock,this.len),n.markDeleted()}delete(e){}gc(e){}write(e,n){e.writeLen(this.len-n)}getRef(){return 1}}const Mq=t=>new _d(t.readLen()),gj=(t,e)=>new Fi({guid:t,...e,shouldLoad:e.shouldLoad||e.autoLoad||!1});class pf{constructor(e){e._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=e;const n={};this.opts=n,e.gc||(n.gc=!1),e.autoLoad&&(n.autoLoad=!0),e.meta!==null&&(n.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new pf(gj(this.doc.guid,this.opts))}splice(e){throw Oi()}mergeWith(e){return!1}integrate(e,n){this.doc._item=n,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,n){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}}const Iq=t=>new pf(gj(t.readString(),t.readAny()));class ha{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new ha(this.embed)}splice(e){throw Oi()}mergeWith(e){return!1}integrate(e,n){}delete(e){}gc(e){}write(e,n){e.writeJSON(this.embed)}getRef(){return 5}}const Rq=t=>new ha(t.readJSON());class qn{constructor(e,n){this.key=e,this.value=n}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new qn(this.key,this.value)}splice(e){throw Oi()}mergeWith(e){return!1}integrate(e,n){const r=n.parent;r._searchMarker=null,r._hasFormatting=!0}delete(e){}gc(e){}write(e,n){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}}const Dq=t=>new qn(t.readKey(),t.readJSON());class Cm{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Cm(this.arr)}splice(e){const n=new Cm(this.arr.slice(e));return this.arr=this.arr.slice(0,e),n}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,n){}delete(e){}gc(e){}write(e,n){const r=this.arr.length;e.writeLen(r-n);for(let i=n;i{const e=t.readLen(),n=[];for(let r=0;r{const e=t.readLen(),n=[];for(let r=0;r=55296&&r<=56319&&(this.str=this.str.slice(0,e-1)+"�",n.str="�"+n.str.slice(1)),n}mergeWith(e){return this.str+=e.str,!0}integrate(e,n){}delete(e){}gc(e){}write(e,n){e.writeString(n===0?this.str:this.str.slice(n))}getRef(){return 4}}const Lq=t=>new ls(t.readString()),_q=[pq,gq,xq,Sq,kq,Eq,Nq],zq=0,Fq=1,$q=2,Bq=3,Uq=4,Hq=5,Vq=6;class cs{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new cs(this.type._copy())}splice(e){throw Oi()}mergeWith(e){return!1}integrate(e,n){this.type._integrate(e.doc,n)}delete(e){let n=this.type._start;for(;n!==null;)n.deleted?n.id.clock<(e.beforeState.get(n.id.client)||0)&&e._mergeStructs.push(n):n.delete(e),n=n.right;this.type._map.forEach(r=>{r.deleted?r.id.clock<(e.beforeState.get(r.id.client)||0)&&e._mergeStructs.push(r):r.delete(e)}),e.changed.delete(this.type)}gc(e){let n=this.type._start;for(;n!==null;)n.gc(e,!0),n=n.right;this.type._start=null,this.type._map.forEach(r=>{for(;r!==null;)r.gc(e,!0),r=r.left}),this.type._map=new Map}write(e,n){this.type._write(e)}getRef(){return 7}}const Wq=t=>new cs(_q[t.readTypeRef()](t)),Tb=(t,e)=>{let n=e,r=0,i;do r>0&&(n=Ht(n.client,n.clock+r)),i=nc(t,n),r=n.clock-i.id.clock,n=i.redone;while(n!==null&&i instanceof cn);return{item:i,diff:r}},C1=(t,e)=>{for(;t!==null&&t.keep!==e;)t.keep=e,t=t.parent._item},Em=(t,e,n)=>{const{client:r,clock:i}=e.id,s=new cn(Ht(r,i+n),e,Ht(r,i+n-1),e.right,e.rightOrigin,e.parent,e.parentSub,e.content.splice(n));return e.deleted&&s.markDeleted(),e.keep&&(s.keep=!0),e.redone!==null&&(s.redone=Ht(e.redone.client,e.redone.clock+n)),e.right=s,s.right!==null&&(s.right.left=s),t._mergeStructs.push(s),s.parentSub!==null&&s.right===null&&s.parent._map.set(s.parentSub,s),e.length=n,s},TN=(t,e)=>Xx(t,n=>Bc(n.deletions,e)),yj=(t,e,n,r,i,s)=>{const o=t.doc,l=o.store,a=o.clientID,c=e.redone;if(c!==null)return Qr(t,c);let u=e.parent._item,d=null,h;if(u!==null&&u.deleted===!0){if(u.redone===null&&(!n.has(u)||yj(t,u,n,r,i,s)===null))return null;for(;u.redone!==null;)u=Qr(t,u.redone)}const p=u===null?e.parent:u.content.type;if(e.parentSub===null){for(d=e.left,h=e;d!==null;){let y=d;for(;y!==null&&y.parent._item!==u;)y=y.redone===null?null:Qr(t,y.redone);if(y!==null&&y.parent._item===u){d=y;break}d=d.left}for(;h!==null;){let y=h;for(;y!==null&&y.parent._item!==u;)y=y.redone===null?null:Qr(t,y.redone);if(y!==null&&y.parent._item===u){h=y;break}h=h.right}}else if(h=null,e.right&&!i){for(d=e;d!==null&&d.right!==null&&(d.right.redone||Bc(r,d.right.id)||TN(s.undoStack,d.right.id)||TN(s.redoStack,d.right.id));)for(d=d.right;d.redone;)d=Qr(t,d.redone);if(d&&d.right!==null)return null}else d=p._map.get(e.parentSub)||null;const m=Fn(l,a),g=Ht(a,m),v=new cn(g,d,d&&d.lastId,h,h&&h.id,p,e.parentSub,e.content.copy());return e.redone=g,C1(v,!0),v.integrate(t,0),v};class cn extends S1{constructor(e,n,r,i,s,o,l,a){super(e,a.getLength()),this.origin=r,this.left=n,this.right=i,this.rightOrigin=s,this.parent=o,this.parentSub=l,this.redone=null,this.content=a,this.info=this.content.isCountable()?nN:0}set marker(e){(this.info&av)>0!==e&&(this.info^=av)}get marker(){return(this.info&av)>0}get keep(){return(this.info&tN)>0}set keep(e){this.keep!==e&&(this.info^=tN)}get countable(){return(this.info&nN)>0}get deleted(){return(this.info&lv)>0}set deleted(e){this.deleted!==e&&(this.info^=lv)}markDeleted(){this.info|=lv}getMissing(e,n){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=Fn(n,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=Fn(n,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===tc&&this.id.client!==this.parent.client&&this.parent.clock>=Fn(n,this.parent.client))return this.parent.client;if(this.origin&&(this.left=vN(e,n,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Qr(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===Ti||this.right&&this.right.constructor===Ti)this.parent=null;else if(!this.parent)this.left&&this.left.constructor===cn?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===cn&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);else if(this.parent.constructor===tc){const r=nc(n,this.parent);r.constructor===Ti?this.parent=null:this.parent=r.content.type}return null}integrate(e,n){if(n>0&&(this.id.clock+=n,this.left=vN(e,e.doc.store,Ht(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(n),this.length-=n),this.parent){if(!this.left&&(!this.right||this.right.left!==null)||this.left&&this.left.right!==this.right){let r=this.left,i;if(r!==null)i=r.right;else if(this.parentSub!==null)for(i=this.parent._map.get(this.parentSub)||null;i!==null&&i.left!==null;)i=i.left;else i=this.parent._start;const s=new Set,o=new Set;for(;i!==null&&i!==this.right;){if(o.add(i),s.add(i),sh(this.origin,i.origin)){if(i.id.client{r.p===e&&(r.p=this,!this.deleted&&this.countable&&(r.index-=this.length))}),e.keep&&(this.keep=!0),this.right=e.right,this.right!==null&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){const n=this.parent;this.countable&&this.parentSub===null&&(n._length-=this.length),this.markDeleted(),Dd(e.deleteSet,this.id.client,this.id.clock,this.length),wN(e,n,this.parentSub),this.content.delete(e)}}gc(e,n){if(!this.deleted)throw Dr();this.content.gc(e),n?JY(e,this,new Ti(this.id,this.length)):this.content=new _d(this.length)}write(e,n){const r=n>0?Ht(this.id.client,this.id.clock+n-1):this.origin,i=this.rightOrigin,s=this.parentSub,o=this.content.getRef()&Eg|(r===null?0:Br)|(i===null?0:to)|(s===null?0:Td);if(e.writeInfo(o),r!==null&&e.writeLeftID(r),i!==null&&e.writeRightID(i),r===null&&i===null){const l=this.parent;if(l._item!==void 0){const a=l._item;if(a===null){const c=Od(l);e.writeParentInfo(!0),e.writeString(c)}else e.writeParentInfo(!1),e.writeLeftID(a.id)}else l.constructor===String?(e.writeParentInfo(!0),e.writeString(l)):l.constructor===tc?(e.writeParentInfo(!1),e.writeLeftID(l)):Dr();s!==null&&e.writeString(s)}this.content.write(e,n)}}const vj=(t,e)=>Kq[e&Eg](t),Kq=[()=>{Dr()},Mq,Oq,Aq,Lq,Rq,Dq,Wq,Pq,Iq,()=>{Dr()}],Yq=10;class Ai extends S1{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor!==e.constructor?!1:(this.length+=e.length,!0)}integrate(e,n){Dr()}write(e,n){e.writeInfo(Yq),gt(e.restEncoder,this.length-n)}getMissing(e,n){return null}}const bj=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:{},wj="__ $YJS$ __";bj[wj]===!0&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438");bj[wj]=!0;const xj=new Map;class qq{constructor(e){this.room=e,this.onmessage=null,this._onChange=n=>n.key===e&&this.onmessage!==null&&this.onmessage({data:DK(n.newValue||"")}),dK(this._onChange)}postMessage(e){sO.setItem(this.room,fO(TK(e)))}close(){fK(this._onChange)}}const Jq=typeof BroadcastChannel>"u"?qq:BroadcastChannel,E1=t=>as(xj,t,()=>{const e=uo(),n=new Jq(t);return n.onmessage=r=>e.forEach(i=>i(r.data,"broadcastchannel")),{bc:n,subs:e}}),Gq=(t,e)=>(E1(t).subs.add(e),e),Xq=(t,e)=>{const n=E1(t),r=n.subs.delete(e);return r&&n.subs.size===0&&(n.bc.close(),xj.delete(t)),r},Ta=(t,e,n=null)=>{const r=E1(t);r.bc.postMessage(e),r.subs.forEach(i=>i(e,n))},kj=0,N1=1,Sj=2,Ab=(t,e)=>{gt(t,kj);const n=UY(e);Ln(t,n)},Cj=(t,e,n)=>{gt(t,N1),Ln(t,zY(e,n))},Qq=(t,e,n)=>Cj(e,n,Tr(t)),Ej=(t,e,n,r)=>{try{PY(e,Tr(t),n)}catch(i){r!=null&&r(i),console.error("Caught error while handling a Yjs update",i)}},Zq=(t,e)=>{gt(t,Sj),Ln(t,e)},eJ=Ej,tJ=(t,e,n,r,i)=>{const s=Ft(t);switch(s){case kj:Qq(t,e,n);break;case N1:Ej(t,n,r,i);break;case Sj:eJ(t,n,r,i);break;default:throw new Error("Unknown message type")}return s},nJ=0,rJ=(t,e,n)=>{switch(Ft(t)){case nJ:n(e,nl(t))}},vv=3e4;class iJ extends QD{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{const n=dl();this.getLocalState()!==null&&vv/2<=n-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const r=[];this.meta.forEach((i,s)=>{s!==this.clientID&&vv<=n-i.lastUpdated&&this.states.has(s)&&r.push(s)}),r.length>0&&T1(this,r,"timeout")},zi(vv/10)),e.on("destroy",()=>{this.destroy()}),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const n=this.clientID,r=this.meta.get(n),i=r===void 0?0:r.clock+1,s=this.states.get(n);e===null?this.states.delete(n):this.states.set(n,e),this.meta.set(n,{clock:i,lastUpdated:dl()});const o=[],l=[],a=[],c=[];e===null?c.push(n):s==null?e!=null&&o.push(n):(l.push(n),Za(s,e)||a.push(n)),(o.length>0||a.length>0||c.length>0)&&this.emit("change",[{added:o,updated:a,removed:c},"local"]),this.emit("update",[{added:o,updated:l,removed:c},"local"])}setLocalStateField(e,n){const r=this.getLocalState();r!==null&&this.setLocalState({...r,[e]:n})}getStates(){return this.states}}const T1=(t,e,n)=>{const r=[];for(let i=0;i0&&(t.emit("change",[{added:[],updated:[],removed:r},n]),t.emit("update",[{added:[],updated:[],removed:r},n]))},Ku=(t,e,n=t.states)=>{const r=e.length,i=gr();gt(i,r);for(let s=0;s{const r=xl(e),i=dl(),s=[],o=[],l=[],a=[],c=Ft(r);for(let u=0;u0||l.length>0||a.length>0)&&t.emit("change",[{added:s,updated:l,removed:a},n]),(s.length>0||o.length>0||a.length>0)&&t.emit("update",[{added:s,updated:o,removed:a},n])},oJ=t=>gK(t,(e,n)=>`${encodeURIComponent(n)}=${encodeURIComponent(e)}`).join("&"),Pl=0,Nj=3,ic=1,lJ=2,mf=[];mf[Pl]=(t,e,n,r,i)=>{gt(t,Pl);const s=tJ(e,t,n.doc,n);r&&s===N1&&!n.synced&&(n.synced=!0)};mf[Nj]=(t,e,n,r,i)=>{gt(t,ic),Ln(t,Ku(n.awareness,Array.from(n.awareness.getStates().keys())))};mf[ic]=(t,e,n,r,i)=>{sJ(n.awareness,Tr(e),n)};mf[lJ]=(t,e,n,r,i)=>{rJ(e,n.doc,(s,o)=>aJ(n,o))};const AN=3e4,aJ=(t,e)=>console.warn(`Permission denied to access ${t.url}. +${e}`),Tj=(t,e,n)=>{const r=xl(e),i=gr(),s=Ft(r),o=t.messageHandlers[s];return o?o(i,r,t,n,s):console.error("Unable to compute message"),i},Aj=t=>{if(t.shouldConnect&&t.ws===null){const e=new t._WS(t.url);e.binaryType="arraybuffer",t.ws=e,t.wsconnecting=!0,t.wsconnected=!1,t.synced=!1,e.onmessage=n=>{t.wsLastMessageReceived=dl();const r=Tj(t,new Uint8Array(n.data),!0);Qx(r)>1&&e.send(Nn(r))},e.onerror=n=>{t.emit("connection-error",[n,t])},e.onclose=n=>{t.emit("connection-close",[n,t]),t.ws=null,t.wsconnecting=!1,t.wsconnected?(t.wsconnected=!1,t.synced=!1,T1(t.awareness,Array.from(t.awareness.getStates().keys()).filter(r=>r!==t.doc.clientID),t),t.emit("status",[{status:"disconnected"}])):t.wsUnsuccessfulReconnects++,setTimeout(Aj,ia(A9(2,t.wsUnsuccessfulReconnects)*100,t.maxBackoffTime),t)},e.onopen=()=>{t.wsLastMessageReceived=dl(),t.wsconnecting=!1,t.wsconnected=!0,t.wsUnsuccessfulReconnects=0,t.emit("status",[{status:"connected"}]);const n=gr();if(gt(n,Pl),Ab(n,t.doc),e.send(Nn(n)),t.awareness.getLocalState()!==null){const r=gr();gt(r,ic),Ln(r,Ku(t.awareness,[t.doc.clientID])),e.send(Nn(r))}},t.emit("status",[{status:"connecting"}])}},bv=(t,e)=>{const n=t.ws;t.wsconnected&&n&&n.readyState===n.OPEN&&n.send(e),t.bcconnected&&Ta(t.bcChannel,e,t)};class gf extends QD{constructor(e,n,r,{connect:i=!0,awareness:s=new iJ(r),params:o={},WebSocketPolyfill:l=WebSocket,resyncInterval:a=-1,maxBackoffTime:c=2500,disableBc:u=!1}={}){for(super();e[e.length-1]==="/";)e=e.slice(0,e.length-1);const d=oJ(o);this.maxBackoffTime=c,this.bcChannel=e+"/"+n,this.url=e+"/"+n+(d.length===0?"":"?"+d),this.roomname=n,this.doc=r,this._WS=l,this.awareness=s,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=u,this.wsUnsuccessfulReconnects=0,this.messageHandlers=mf.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=i,this._resyncInterval=0,a>0&&(this._resyncInterval=setInterval(()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const h=gr();gt(h,Pl),Ab(h,r),this.ws.send(Nn(h))}},a)),this._bcSubscriber=(h,p)=>{if(p!==this){const m=Tj(this,new Uint8Array(h),!1);Qx(m)>1&&Ta(this.bcChannel,Nn(m),this)}},this._updateHandler=(h,p)=>{if(p!==this){const m=gr();gt(m,Pl),Zq(m,h),bv(this,Nn(m))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:h,updated:p,removed:m},g)=>{const v=h.concat(p).concat(m),y=gr();gt(y,ic),Ln(y,Ku(s,v)),bv(this,Nn(y))},this._exitHandler=()=>{T1(this.awareness,[r.clientID],"app closed")},fl&&typeof process<"u"&&process.on("exit",this._exitHandler),s.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval(()=>{this.wsconnected&&AN{try{return`ce-${(t==null?void 0:t.id)||"x"}-${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`ce-${Math.random()}`}})());w.useEffect(()=>{window.dispatchEvent(new Event("freemannotes:editor-modal-open"));try{const A=c.current,ne=()=>{try{e()}catch{}};window.dispatchEvent(new CustomEvent("freemannotes:back/register",{detail:{id:A,onBack:ne}}))}catch{}return()=>{try{window.dispatchEvent(new CustomEvent("freemannotes:back/unregister",{detail:{id:c.current}}))}catch{}window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}},[]);const u=w.useRef((()=>{try{return`c${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`c${Math.random()}`}})()),d=w.useRef(null),[,h]=w.useState(0),p=w.useRef(!1),m=w.useRef(!1);B.useEffect(()=>{m.current=!1;const A=window.setTimeout(()=>{m.current=!0},160);return()=>window.clearTimeout(A)},[]);const[g,v]=w.useState(()=>(t.items||[]).map((A,ne)=>{const xe=typeof(A==null?void 0:A.uid)=="string"&&A.uid?String(A.uid):typeof(A==null?void 0:A.id)=="number"?`id-${Number(A.id)}`:`init-${ne}-${Math.random().toString(36).slice(2,8)}`;return{indent:0,uid:xe,key:xe,...A}})),[y,b]=w.useState(!1),[x,C]=w.useState(!0),[S,M]=w.useState(null),[N,z]=w.useState(null),ee=w.useRef([]),[L,q]=w.useState(null),[X,ye]=w.useState(null),[Ce,Te]=w.useState(t.title||""),[se,he]=w.useState(r??(t.viewerColor||t.color||"")),[J,me]=w.useState(!1),[ue,fe]=w.useState(!1),[W,Le]=w.useState(!1),[Ye,Y]=w.useState(!1),[Ze,Pt]=w.useState((t.images||[]).map(A=>({id:Number(A.id),url:String(A.url)}))),[it,St]=w.useState(!1);B.useEffect(()=>{try{const A=(t.images||[]).map(ne=>({id:Number(ne.id),url:String(ne.url)}));Pt(ne=>{try{if(ne.length===A.length&&ne.every((xe,Z)=>{var De,He;return Number(xe.id)===Number((De=A[Z])==null?void 0:De.id)&&String(xe.url)===String((He=A[Z])==null?void 0:He.url)}))return ne}catch{}return A})}catch{}},[t.images]);const[Mt,vt]=w.useState(null),[We,ce]=w.useState([]),Re=w.useRef([]),[qe,It]=w.useState(!1),et=w.useRef(null);function kt(){var xe;let A=d.current;if(A&&A.isFocused)return A;const ne=typeof document<"u"&&((xe=document.getSelection())==null?void 0:xe.anchorNode)||null;if(ne){const Z=Re.current.find(De=>{var He;try{return!!(De&&((He=De.view)!=null&&He.dom)&&De.view.dom.contains(ne))}catch{return!1}});Z&&(A=Z)}else{const Z=typeof document<"u"?document.activeElement:null;if(Z){const De=Re.current.find(He=>{try{return!!(He&&He.view&&He.view.dom&&(He.view.dom===Z||He.view.dom.contains(Z)))}catch{return!1}});De&&(A=De)}}if(!A||!(A!=null&&A.isFocused)){const Z=Re.current.find(De=>!!(De&&De.isFocused));Z&&(A=Z)}return A||null}function bt(A){var Ot;const ne=kt();if(!ne)return;const xe=(Ot=ne.state)==null?void 0:Ot.selection;if(!xe)return;if(!xe.empty){const ke=ne.chain().focus();A==="bold"?ke.toggleBold():A==="italic"?ke.toggleItalic():ke.toggleUnderline(),ke.run();try{h(Ke=>Ke+1)}catch{}return}let Z=xe.from,De=xe.to;try{const ke=xe.$from;let Ke=ke.depth;for(;Ke>0&&!ke.node(Ke).isBlock;)Ke--;Z=ke.start(Ke),De=ke.end(Ke)}catch{}const He=ne.chain().focus().setTextSelection({from:Z,to:De});A==="bold"?He.toggleBold():A==="italic"?He.toggleItalic():He.toggleUnderline(),He.run();try{ne.chain().focus().setTextSelection(xe.from).run()}catch{}try{const ke=xe.from;requestAnimationFrame(()=>{var Ke,jt;try{try{(jt=(Ke=ne.view)==null?void 0:Ke.focus)==null||jt.call(Ke)}catch{}ne.chain().focus().setTextSelection(ke).run()}catch{}})}catch{}try{h(ke=>ke+1)}catch{}}function Tt(A){var st,ct;const ne=kt();if(!ne)return!1;const xe=(st=ne.state)==null?void 0:st.selection;if(!xe)return!1;const Z=(((ct=ne.schema)==null?void 0:ct.marks)||{})[A];if(!Z)return!1;const De=xe.$from;let He=De.depth;for(;He>0&&!De.node(He).isBlock;)He--;const Ot=De.start(He),ke=De.end(He);let Ke=!1,jt=!0;try{ne.state.doc.nodesBetween(Ot,ke,mt=>{mt&&mt.isText&&(Ke=!0,Z.isInSet(mt.marks)||(jt=!1))})}catch{}return Ke&&jt}const Ue=B.useMemo(()=>new Fi,[t.id]),nt=B.useRef(null),pt=B.useRef(null),Q=B.useRef(null),F=B.useRef(null),ae=B.useRef(!1),Se=B.useRef(!1),Pe=B.useCallback(()=>{if(!Se.current){Se.current=!0;try{window.dispatchEvent(new CustomEvent("freemannotes:draft/dirty",{detail:{noteId:Number(t==null?void 0:t.id)}}))}catch{}}},[t==null?void 0:t.id]),D=w.useRef(null),G=w.useRef(null),de=w.useRef(void 0),ve=w.useRef({x:0,y:0}),$e=w.useRef(null),Ve=w.useRef(!1),Ne=w.useRef(0),Je=w.useRef(null),At=w.useRef(null),rt=w.useRef(null),Wt=w.useRef(0),Rt=w.useRef({parentId:null,makeNested:!1}),dn=w.useRef(null),[Dt,Lt]=w.useState(null),tn=B.useMemo(()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(pointer: coarse)").matches}catch{return!1}},[]),te=B.useMemo(()=>{const A={hoverDownPct:.7,hoverUpPct:.7,indentPx:16,ghostOverlapPct:.7,ghostOverlapUpPct:.7,ghostOverlapDownPct:.7};return tn?{...A,hoverClearMs:0,directionLockPx:0}:{...A,hoverClearMs:80,directionLockPx:6}},[tn]),re=w.useRef(0),je=w.useRef(0),Xe=B.useCallback(()=>`u${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`,[]),ge=B.useCallback(A=>typeof A.id=="number"?A.id:A.uid||`tmp-${Math.random().toString(36).slice(2,6)}`,[]);function Ae(){const A=document.querySelector(".image-dialog .dialog-body");return A||document.querySelector(".image-dialog")}function ze(){Ve.current=!1,$e.current!=null&&(cancelAnimationFrame($e.current),$e.current=null)}function lt(){if($e.current!=null)return;Ve.current=!0;const A=()=>{if(!Ve.current){$e.current=null;return}const ne=Ae();if(!ne){$e.current=requestAnimationFrame(A);return}const xe=ne.getBoundingClientRect(),Z=Ne.current,De=Math.max(56,Math.min(96,xe.height*.18)),He=14;let Ot=0;if(Zxe.bottom-De){const ke=Math.max(0,Math.min(1,(Z-(xe.bottom-De))/De));Ot=Math.max(1,Math.round(Math.pow(ke,1.65)*He))}Ot!==0&&(ne.scrollTop=ne.scrollTop+Ot),$e.current=requestAnimationFrame(A)};$e.current=requestAnimationFrame(A)}w.useEffect(()=>{const A=`note-${t.id}`,xe=`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/collab`,Z=new gf(xe,A,Ue);nt.current=Z;const De=Ue.getArray("checklist");pt.current=De;const He=Ue.getMap("meta");Q.current=He;const Ot=async()=>{try{const ct=await fetch(`/api/notes/${t.id}/images`,{headers:{Authorization:`Bearer ${l}`}});if(!ct.ok)return;const mt=await ct.json(),yt=(mt&&mt.images||[]).map(ft=>({id:Number(ft.id),url:String(ft.url)}));Pt(yt),i&&i(yt)}catch{}},ke=()=>{try{const ct=He.get("imagesTick");if(!ct||!ct.t||ct.by&&String(ct.by)===String(u.current))return;Ot()}catch{}};try{He.observe(ke)}catch{}const Ke={current:!1},jt=ct=>{if(ct){ae.current=!0;try{const mt=pt.current;if(mt&&mt.length===0&&!Ke.current){const yt=(t.items||[]).map(ft=>{const Qt=new xs;typeof ft.id=="number"&&Qt.set("id",ft.id);const at=typeof(ft==null?void 0:ft.uid)=="string"&&ft.uid?String(ft.uid):typeof(ft==null?void 0:ft.id)=="number"?`id-${Number(ft.id)}`:`u${Math.random().toString(36).slice(2,8)}`;return Qt.set("uid",at),Qt.set("content",String(ft.content||"")),Qt.set("checked",!!ft.checked),Qt.set("indent",Number(ft.indent||0)),Qt});yt.length&&mt.insert(0,yt),Ke.current=!0}}catch{}}};Z.on("sync",jt);const st=(ct,mt)=>{try{mt&&mt.local&&Pe()}catch{}try{const yt=De.toArray().map((at,on)=>({id:typeof at.get("id")=="number"?Number(at.get("id")):void 0,uid:at.get("uid")?String(at.get("uid")):void 0,content:String(at.get("content")||""),checked:!!at.get("checked"),indent:Number(at.get("indent")||0),key:at.get("uid")?String(at.get("uid")):typeof at.get("id")=="number"?Number(at.get("id")):`i${on}`})),ft=!!(d.current&&d.current.isFocused);((()=>{try{if(yt.length!==g.length)return!0;for(let at=0;at{var at;try{const on=yt.map((Ct,zt)=>{const ln={content:Ct.content,checked:!!Ct.checked,ord:zt,indent:Ct.indent||0};return typeof Ct.id=="number"&&(ln.id=Ct.id),ln}),Yt=await fetch(`/api/notes/${t.id}/items`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({items:on})});if(Yt.ok){const Ct=await Yt.json(),zt=Array.isArray(Ct.items)?Ct.items:[],ln=pt.current;if(ln&&zt.length===ln.length)for(let bi=0;bi{try{De.unobserveDeep(st)}catch{}try{Z.off("sync",jt)}catch{}try{He.unobserve(ke)}catch{}try{Z.destroy()}catch{}}},[t.id,l,Ue]);const $t=B.useCallback(()=>{try{const A=Q.current;if(!A)return;A.set("imagesTick",{t:Date.now(),by:u.current})}catch{}},[]);w.useEffect(()=>{try{Pt((t.images||[]).map(A=>({id:Number(A.id),url:String(A.url)})))}catch{}},[t.images]);function wt(A,ne){var He;const xe=ne,Z=((He=A[ne])==null?void 0:He.indent)||0;let De=ne+1;for(;DeZ;)De++;return[xe,De]}w.useEffect(()=>{ee.current=ee.current.slice(0,g.length)},[g.length]),w.useEffect(()=>{requestAnimationFrame(()=>{ee.current.forEach(A=>{try{A.style.height="auto",A.style.height=Math.max(22,A.scrollHeight)+"px"}catch{}})})},[g,Dt]);function Jt(A,ne){if(rt.current!=="vertical"||S===null)return"";const[xe,Z]=wt(ne,S);return N===null||A>=xe&&AZ-1&&A<=N?"shift-up":"":S>N&&A>=N&&A=0&&AZ.map((De,He)=>He===A?{...De,content:ne}:De));requestAnimationFrame(()=>{const Z=ee.current[A];if(Z)try{Z.style.height="auto",Z.style.height=Math.max(22,Z.scrollHeight)+"px"}catch{}})}function rn(A){const ne=pt.current;if(ne){const xe=typeof A=="number"?Math.max(0,Math.min(A,ne.length)):ne.length,Z=new xs;Z.set("content",""),Z.set("checked",!1),Z.set("indent",0),Z.set("uid",Xe()),ne.insert(xe,[Z]),q(xe)}else v(xe=>{const Z=typeof A=="number"?Math.max(0,Math.min(A,xe.length)):xe.length,De=Xe(),He=[...xe];return He.splice(Z,0,{uid:De,content:"",checked:!1,indent:0}),He}),q(typeof A=="number"?A:g.length+1)}function Pr(A){const ne=pt.current;if(ne){const xe=ne.get(A);if(!xe)return;const Z=!xe.get("checked");if(typeof xe.get("id")=="number"&&xe.set("id",xe.get("id")),xe.set("checked",Z),Number(xe.get("indent")||0)===0)for(let He=A+1;He0)Ot.set("checked",Z);else break}}else v(xe=>xe.map((Z,De)=>{if(De===A){const He=!Z.checked,Ot=Number(Z.indent||0),ke={...Z,checked:He};if(Ot===0){const Ke=[...xe];Ke[De]=ke;for(let jt=De+1;jt0;jt++)Ke[jt]={...Ke[jt],checked:He};return Ke[De]}return ke}return Z}))}function I(A,ne,xe){const Z=pt.current;if(!Z)return;const De=Math.max(0,Math.min(A,Z.length)),Ot=Math.max(De,Math.min(ne,Z.length))-De;if(Ot<=0)return;let ke=Math.max(0,Math.min(xe,Z.length));ke>De&&(ke=ke-Ot),ke<0&&(ke=0),ke>Z.length&&(ke=Z.length);const Ke=[];for(let st=0;st{const ct=new xs;return typeof st.id=="number"&&ct.set("id",st.id),st.uid&&ct.set("uid",st.uid),ct.set("content",st.content),ct.set("checked",st.checked),ct.set("indent",st.indent),ct});Z.insert(ke,jt)}function H(){ze(),G.current&&(G.current.remove(),G.current=null),de.current&&(document.removeEventListener("dragover",de.current),de.current=void 0),document.querySelectorAll(".checklist-item.drag-source").forEach(A=>A.classList.remove("drag-source")),M(null),z(null),Lt(null),D.current&&(cancelAnimationFrame(D.current),D.current=null),Je.current&&(clearTimeout(Je.current),Je.current=null),At.current=null,rt.current=null,Rt.current={parentId:null,makeNested:!1};try{const A=document.querySelector(".image-dialog");A&&A.style.removeProperty("--checklist-item-shift")}catch{}}async function K(){b(!0);try{if((t.title||"")!==Ce){const De=await fetch(`/api/notes/${t.id}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({title:Ce})});if(!De.ok)throw new Error(await De.text())}const A=pt.current,xe=(A?A.toArray().map(De=>({id:typeof De.get("id")=="number"?Number(De.get("id")):void 0,content:String(De.get("content")||""),checked:!!De.get("checked"),indent:Number(De.get("indent")||0)})):g).map((De,He)=>{const Ot={content:De.content,checked:!!De.checked,ord:He,indent:De.indent||0};return typeof De.id=="number"&&(Ot.id=De.id),Ot}),Z=await fetch(`/api/notes/${t.id}/items`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({items:xe})});if(!Z.ok)throw new Error(await Z.text());n&&n({items:xe,title:Ce}),e()}catch(A){console.error("Failed to save checklist",A),window.alert("Failed to save checklist")}finally{b(!1)}}function oe(A){if(!A)return;const ne=A.replace("#",""),xe=ne.length===3?ne.split("").map(yt=>yt+yt).join(""):ne;if(xe.length!==6)return;const Z=parseInt(xe.slice(0,2),16)/255,De=parseInt(xe.slice(2,4),16)/255,He=parseInt(xe.slice(4,6),16)/255,Ot=yt=>yt<=.03928?yt/12.92:Math.pow((yt+.055)/1.055,2.4),ke=Ot(Z),Ke=Ot(De),jt=Ot(He),st=.2126*ke+.7152*Ke+.0722*jt,ct=(1+.05)/(st+.05),mt=(st+.05)/(0+.05);return ct>=mt?"#ffffff":"#000000"}const U={},k=se?oe(se)||"var(--muted)":void 0;se&&(U["--checkbox-bg"]=se),k&&(U["--checkbox-border"]=k),k&&(U["--checkbox-stroke"]=k),se&&(U["--checkbox-checked-bg"]=se),k&&(U["--checkbox-checked-mark"]=k),se&&(U.background=se,k&&(U.color=k),U["--editor-surface"]=se);async function V(A){const ne=A||"";try{const xe=await fetch(`/api/notes/${t.id}/prefs`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({color:ne})});if(!xe.ok)throw new Error(await xe.text())}catch(xe){console.error("Failed to save color preference",xe),window.alert("Failed to save color preference")}he(ne);try{s==null||s(ne)}catch{}}function pe(A){if(Y(!1),!A)return;const ne=-Date.now();Pt(xe=>{const De=xe.some(He=>String(He.url)===String(A))?xe:[...xe,{id:ne,url:String(A)}];return i&&i(De),De});try{St(!0)}catch{}(async()=>{try{const xe=await fetch(`/api/notes/${t.id}/images`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({url:A})});if(!xe.ok)throw new Error(await xe.text());const De=(await xe.json()).image||null;De&&De.id&&De.url&&(Pt(He=>{const Ot=Number(De.id),ke=String(De.url),Ke=He.map(ct=>Number(ct.id)===ne||String(ct.url)===String(A)?{id:Ot,url:ke}:ct),st=Ke.some(ct=>Number(ct.id)===Ot)?Ke:[...Ke,{id:Ot,url:ke}];return i&&i(st),st}),$t())}catch(xe){console.error("Failed to attach image",xe),window.alert("Failed to attach image")}})()}function tt(A){ce(ne=>ne.find(xe=>xe.id===A.id)?ne:[...ne,A]),Le(!1),(async()=>{try{const ne=await fetch(`/api/notes/${t.id}/collaborators`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({email:A.email})});if(!ne.ok)throw new Error(await ne.text())}catch(ne){console.error("Failed to add collaborator",ne),window.alert("Failed to add collaborator")}})()}async function Bt(A){try{const ne=await fetch(`/api/notes/${t.id}/collaborators/${A}`,{method:"DELETE",headers:{Authorization:`Bearer ${l}`}});if(!ne.ok)throw new Error(await ne.text())}catch(ne){console.error("Failed to remove collaborator",ne),window.alert("Failed to remove collaborator")}}async function Kt(A){const ne=Ze,xe=ne.filter(Z=>Number(Z.id)!==Number(A));Pt(xe),i&&i(xe);try{const Z=await fetch(`/api/notes/${t.id}/images/${A}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`}});if(!Z.ok)throw new Error(await Z.text());$t()}catch(Z){console.error("Failed to delete image",Z),Pt(ne),i&&i(ne),window.alert("Failed to delete image")}}function Zt(A){const ne=pt.current;ne?A>=0&&Axe.filter((Z,De)=>De!==A))}const $n=f.jsx("div",{className:"image-dialog-backdrop",onMouseDown:A=>{A.target===A.currentTarget&&K()},children:f.jsxs("div",{className:"image-dialog checklist-editor editor-dialog",role:"dialog","aria-modal":!0,style:{width:"min(1000px, 86vw)",...U},children:[f.jsxs("div",{className:"dialog-header",children:[f.jsx("strong",{children:"Edit checklist"}),f.jsx("div",{style:{display:"flex",gap:8,alignItems:"center"},children:f.jsx("button",{className:"icon-close",onClick:e,children:"✕"})})]}),f.jsxs("div",{className:"dialog-body",children:[f.jsxs("div",{className:"rt-sticky-header",children:[f.jsx("div",{style:{display:"flex",gap:12,marginBottom:8},children:f.jsx("input",{placeholder:"Checklist title",value:Ce,onChange:A=>{Te(A.target.value);try{Pe()}catch{}},style:{flex:1,background:"transparent",border:"none",color:"inherit",fontWeight:600,fontSize:18}})}),f.jsxs("div",{className:"rt-toolbar",style:{display:"flex",gap:8,alignItems:"center",marginBottom:0},onMouseDown:A=>A.preventDefault(),onPointerDown:A=>A.preventDefault(),onPointerUp:A=>A.preventDefault(),children:[f.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:A=>{A.preventDefault(),A.stopPropagation(),p.current=!0,bt("bold")},onPointerUp:A=>{A.preventDefault(),A.stopPropagation()},onMouseDownCapture:A=>{A.preventDefault(),A.stopPropagation()},onMouseUp:A=>A.preventDefault(),onClick:()=>{if(p.current){p.current=!1;return}bt("bold")},"aria-pressed":Tt("bold"),children:"B"}),f.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:A=>{A.preventDefault(),A.stopPropagation(),p.current=!0,bt("italic")},onPointerUp:A=>{A.preventDefault(),A.stopPropagation()},onMouseDownCapture:A=>{A.preventDefault(),A.stopPropagation()},onMouseUp:A=>A.preventDefault(),onClick:()=>{if(p.current){p.current=!1;return}bt("italic")},"aria-pressed":Tt("italic"),children:"I"}),f.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:A=>{A.preventDefault(),A.stopPropagation(),p.current=!0,bt("underline")},onPointerUp:A=>{A.preventDefault(),A.stopPropagation()},onMouseDownCapture:A=>{A.preventDefault(),A.stopPropagation()},onMouseUp:A=>A.preventDefault(),onClick:()=>{if(p.current){p.current=!1;return}bt("underline")},"aria-pressed":Tt("underline"),children:"U"})]})]}),(Dt??g).length===0&&f.jsx("div",{style:{marginBottom:8},children:f.jsx("button",{className:"btn",onClick:()=>rn(0),children:"Add an item"})}),(Dt??g).filter(A=>!A.checked).map((A,ne)=>{const xe=Dt??g,Z=xe.indexOf(A),De=Jt(Z,xe),He=(()=>{try{return ge(A)}catch{return A.key??Z}})(),Ot=X!=null&&String(X)===String(He);return f.jsxs("div",{className:`checklist-item ${De}${Ot?" is-active":""}`,style:{marginLeft:(A.indent||0)*18},draggable:!1,onPointerCancel:()=>{dn.current=null},onDragOver:ke=>{ke.preventDefault();const jt=ke.currentTarget.getBoundingClientRect();D.current&&cancelAnimationFrame(D.current),D.current=requestAnimationFrame(()=>{if(S===null)return;if(rt.current==="horizontal"&&At.current){const mt=(ke.clientX||0)-At.current.x;if(mt>te.indentPx&&Z>0){let yt=null;for(let ft=Z-1;ft>=0;ft--)if((g[ft].indent||0)===0){yt=g[ft].id??null;break}Rt.current={parentId:yt,makeNested:!0}}else mt<-te.indentPx?Rt.current={parentId:null,makeNested:!1}:Rt.current={parentId:null,makeNested:!1};return}let st=!1;const ct=G.current?G.current.getBoundingClientRect():null;if(ct){const yt=Math.max(0,Math.min(ct.bottom,jt.bottom)-Math.max(ct.top,jt.top))/(jt.height||1),ft=(ke.clientY||0)>(je.current||ke.clientY||0);je.current=ke.clientY||0;const Qt=ft?te.ghostOverlapDownPct:te.ghostOverlapUpPct;st=yt>=Qt}st?(Je.current&&(clearTimeout(Je.current),Je.current=null),z(mt=>mt===Z?mt:Z)):N===Z&&Je.current===null&&(Je.current=window.setTimeout(()=>{z(mt=>mt===Z?null:mt),Je.current=null},Math.max(0,te.hoverClearMs)))})},onDrop:ke=>{ke.preventDefault();const Ke=S!==null?S:parseInt(ke.dataTransfer.getData("text/plain")||"-1",10),jt=Z;if(Ke>=0){const st=At.current?(ke.clientX||0)-At.current.x:0;if(rt.current==="horizontal"||Math.abs(st)>te.indentPx){const mt=pt.current;if(mt){if(st>te.indentPx){const[yt,ft]=wt(g,Ke);let Qt=null;for(let at=Ke-1;at>=0;at--)if((g[at].indent||0)===0){Qt=at;break}if(yt>=0)if(Qt!=null)if(yt===jt)for(let at=yt;atyt&&(on=Qt-(ft-yt)+1);on0;)on++;const Yt=at.map(Ct=>{const zt=new xs;return typeof Ct.id=="number"&&zt.set("id",Ct.id),Ct.uid&&zt.set("uid",Ct.uid),zt.set("content",Ct.content),zt.set("checked",Ct.checked),zt.set("indent",1),zt});mt.insert(on,Yt)}else for(let at=yt;at=0)for(let Qt=yt;Qt{N===Z&&z(null),D.current&&(cancelAnimationFrame(D.current),D.current=null)},children:[f.jsxs("div",{className:"drag-gutter",style:{cursor:"grab",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",touchAction:"none"},onMouseDown:ke=>{ke.preventDefault()},onPointerDown:ke=>{var st,ct;try{ke.preventDefault()}catch{}try{ke.stopPropagation()}catch{}ke.currentTarget.setPointerCapture(ke.pointerId),Ne.current=ke.clientY;const Ke=Dt??g,jt=typeof((st=Ke[Z])==null?void 0:st.id)=="number"?Ke[Z].id:((ct=Ke[Z])==null?void 0:ct.uid)??null;dn.current={active:!0,startX:ke.clientX,startY:ke.clientY,idx:Z,draggedId:jt,pointerId:ke.pointerId},rt.current=null,Lt(null)},onPointerMove:ke=>{const Ke=dn.current;if(!Ke||!Ke.active)return;try{ke.preventDefault()}catch{}Ne.current=ke.clientY;const jt=ke.clientX-Ke.startX,st=ke.clientY-Ke.startY,ct=te.directionLockPx;if(rt.current===null&&(Math.abs(jt)>ct||Math.abs(st)>ct)&&(rt.current=Math.abs(jt)>Math.abs(st)?"horizontal":"vertical"),rt.current==="vertical"){if(!G.current){const ft=Array.from(document.querySelectorAll(".image-dialog .checklist-item:not(.completed)")),Qt=Ke.idx??-1,on=fn(Qt,Dt??g),Yt=ft[on];if(Yt){const Ct=Yt.getBoundingClientRect();ve.current={x:ke.clientX-Ct.left,y:ke.clientY-Ct.top};const zt=Yt.cloneNode(!0);zt.style.position="fixed",zt.style.left=Ct.left+"px",zt.style.top=ke.clientY-(ve.current.y||0)+"px",zt.style.width=Ct.width+"px",zt.style.pointerEvents="none",zt.style.zIndex="9999",zt.style.opacity="0.98",zt.classList.add("checklist-ghost"),document.body.appendChild(zt),G.current=zt;try{Yt.classList.add("drag-source")}catch{}M(Qt),z(Qt),Wt.current=Ct.left;try{const ln=document.querySelector(".image-dialog");ln&&ln.style.setProperty("--checklist-item-shift",`${Math.round(Ct.height)}px`)}catch{}}}G.current&&(G.current.style.left=Wt.current+"px",G.current.style.top=ke.clientY-(ve.current.y||0)+"px",lt());const yt=Array.from(document.querySelectorAll(".image-dialog .checklist-item:not(.completed)"));if(yt.length){let ft=null;const Qt=G.current?G.current.getBoundingClientRect():{top:ke.clientY-10,bottom:ke.clientY+10},at=ke.clientY>(re.current||ke.clientY);re.current=ke.clientY;const on=typeof te.ghostOverlapUpPct=="number"&&typeof te.ghostOverlapDownPct=="number"?at?te.ghostOverlapDownPct:te.ghostOverlapUpPct:te.ghostOverlapPct;for(let Ct=0;Ct=on){ft=Ct;break}}const Yt=Dt??g;if(ft!=null){const Ct=bn(ft,Yt);Ct!==N&&z(Ct)}}return}const mt=te.indentPx;if(rt.current==="horizontal"){const yt=Ke.draggedId??null;if(yt==null)return;const ft=g,Qt=ft.findIndex(at=>typeof yt=="number"?at.id===yt:at.uid===yt);if(Qt<0)return;if(Qt===0&&jt>0){Lt(null);return}if(jt>mt){const[at,on]=wt(ft,Qt),Yt=[...ft],Ct=Yt.splice(at,on-at);let zt=null;for(let ln=Qt-1;ln>=0;ln--)if((ft[ln].indent||0)===0){zt=ln;break}if(zt!=null){const ln=typeof ft[zt].id=="number"?ft[zt].id:ft[zt].uid,bi=Yt.findIndex(us=>typeof ln=="number"?us.id===ln:us.uid===ln);let $i=bi>=0?bi+1:Math.min(at,Yt.length);for(;$i0;)$i++;const Vc=Ct.map(us=>({...us,indent:1}));Yt.splice($i,0,...Vc)}else{let ln=Math.min(at,Yt.length);for(;ln0;)ln++;const bi=Ct.map($i=>({...$i,indent:1}));Yt.splice(ln,0,...bi)}Lt(Yt)}else if(jt<-mt){const[at,on]=wt(ft,Qt),Yt=[...ft];for(let Ct=at;Ct{try{ke.currentTarget.releasePointerCapture(ke.pointerId)}catch{}if(dn.current=null,Dt){const Ke=pt.current;if(Ke)try{for(let jt=0;jt{const yt=mt.get("id"),ft=mt.get("uid");return typeof st.id=="number"&&typeof yt=="number"?Number(st.id)===Number(yt):st.uid&&ft?String(st.uid)===String(ft):!1});if(ct>=0){const mt=Ke.get(ct);try{mt.set("indent",Number(st.indent||0))}catch{}try{mt.set("checked",!!st.checked)}catch{}try{mt.set("content",String(st.content||""))}catch{}}}}catch{}Lt(null),rt.current=null,H();return}if(rt.current==="vertical"&&S!==null){const Ke=S,jt=g,[st,ct]=wt(jt,Ke);if(N!==null){const mt=Ke=st&&mt{ke.stopPropagation(),Pr(Z)},onPointerDown:ke=>{ke.stopPropagation()},onPointerUp:ke=>{ke.stopPropagation()},children:A.checked&&f.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:f.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),f.jsx("div",{style:{flex:1},children:f.jsx(Lx,{value:A.content||"",onChange:ke=>nn(Z,ke),onEnter:()=>rn(Z+1),autoFocus:L===Z,onFocus:ke=>{d.current=ke,Re.current[Z]=ke;try{ye(ge(A))}catch{}h(Ke=>Ke+1),L===Z&&q(null)}})}),f.jsx("button",{className:"delete-item",onClick:ke=>{if(ke.stopPropagation(),!(X!=null&&String(X)===String(He))){try{ye(He)}catch{}try{q(Z)}catch{}return}Zt(Z)},"aria-label":"Delete item",children:"✕"})]},A.key??Z)}),f.jsxs("div",{style:{marginTop:12},children:[f.jsx("button",{className:"btn completed-toggle",onClick:()=>C(A=>!A),"aria-expanded":x,"aria-controls":`editor-completed-${t.id}`,children:f.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[f.jsx("span",{style:{transform:x?"rotate(90deg)":"rotate(0deg)",display:"inline-block"},children:"▸"}),f.jsxs("span",{children:[g.filter(A=>A.checked).length," completed items"]})]})}),x&&(Dt??g).filter(A=>A.checked).map((A,ne)=>{const Z=(Dt??g).indexOf(A),De="",He=(()=>{try{return ge(A)}catch{return A.key??Z}})(),Ot=(()=>{try{return X!=null&&String(X)===String(He)}catch{return!1}})();return f.jsxs("div",{className:`checklist-item completed ${De}${Ot?" is-active":""}`,style:{marginLeft:(A.indent||0)*18},draggable:!1,onClick:ke=>{try{ke.stopPropagation()}catch{}try{ye(He)}catch{}},children:[f.jsx("div",{style:{width:20}}),f.jsx("div",{className:`checkbox-visual ${A.checked?"checked":""}`,onClick:()=>Pr(Z),children:A.checked&&f.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:f.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})}),f.jsx("div",{style:{flex:1,textDecoration:"line-through",minWidth:0},children:f.jsx("div",{className:"rt-html",dangerouslySetInnerHTML:{__html:Sa.sanitize(String(A.content||""),{USE_PROFILES:{html:!0}})}})}),f.jsx("button",{className:"delete-item",onClick:ke=>{if(ke.stopPropagation(),!(X!=null&&String(X)===String(He))){try{ye(He)}catch{}return}Zt(Z)},"aria-label":"Delete item",children:"✕"})]},A.key??Z)})]})]}),Ze&&Ze.length>0&&f.jsxs("div",{className:"editor-images",style:{marginTop:10,marginBottom:8},children:[f.jsx("button",{type:"button",className:"btn editor-images-toggle",onClick:()=>St(A=>!A),"aria-expanded":it,children:f.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[f.jsx("span",{style:{transform:it?"rotate(90deg)":"rotate(0deg)",display:"inline-block"},children:"▸"}),f.jsxs("span",{children:["Images (",Ze.length,")"]})]})}),it&&f.jsx("div",{className:"editor-images-grid",style:{marginTop:8},children:Ze.map(A=>f.jsxs("div",{className:"note-image",role:"button",tabIndex:0,onClick:()=>vt(A.url),onKeyDown:ne=>{(ne.key==="Enter"||ne.key===" ")&&(ne.preventDefault(),vt(A.url))},style:{cursor:"zoom-in",position:"relative"},children:[f.jsx("img",{src:A.url,alt:"note image"}),f.jsx("button",{className:"image-delete","aria-label":"Delete image",title:"Delete image",onClick:ne=>{ne.stopPropagation(),Kt(A.id)},style:{position:"absolute",right:6,bottom:6},children:"🗑️"})]},A.id))})]}),f.jsxs("div",{className:"dialog-footer",style:{borderTop:k?`1px solid ${k}`:void 0},children:[f.jsxs("div",{className:"note-actions",style:{marginRight:"auto",display:"inline-flex",gap:8,justifyContent:"flex-start",color:k},children:[f.jsx("button",{className:"tiny palette",onClick:()=>me(!0),"aria-label":"Change color",title:"Change color",children:f.jsx(Xs,{icon:af,className:"palette-svg"})}),f.jsx("button",{className:"tiny",onClick:()=>fe(!0),"aria-label":"Reminder",title:"Reminder",children:f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),f.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),f.jsx("button",{className:"tiny",onClick:()=>Le(!0),"aria-label":"Collaborators",title:"Collaborators",children:f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"}),f.jsx("path",{d:"M6 14c-1.66 0-3 1.34-3 3v1h9.5c-.2-.63-.5-1.23-.9-1.76C11.7 15.6 9.9 14 6 14z"}),f.jsx("path",{d:"M20 16v2h-2v2h-2v-2h-2v-2h2v-2h2v2z"})]})}),f.jsx("button",{className:"tiny",onClick:()=>Y(!0),"aria-label":"Add image",title:"Add image",children:f.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5C3.9 3 3 3.9 3 5v14h18zM8.5 13.5l2.5 3L14.5 12l4.5 7H5l3.5-5.5z"})})}),o&&f.jsx("button",{ref:et,className:"tiny editor-more",onClick:A=>{A.stopPropagation(),It(ne=>!ne)},"aria-label":"More",title:"More",children:"⋮"})]}),f.jsxs("div",{style:{marginLeft:"auto",display:"flex",gap:8},children:[f.jsx("button",{className:"btn",onClick:e,children:"Cancel"}),f.jsx("button",{className:"btn",onClick:K,disabled:y,children:y?"Saving...":"Save"})]})]})]})});if(typeof document<"u"){const A=zn.createPortal($n,document.body);return f.jsxs(f.Fragment,{children:[A,o&&qe&&f.jsx(Jx,{anchorRef:et,itemsCount:o.onMoveToCollection?5:4,onClose:()=>It(!1),onDelete:o.onDelete,onMoveToCollection:o.onMoveToCollection,onAddLabel:o.onAddLabel,onUncheckAll:o.onUncheckAll,onCheckAll:o.onCheckAll,onSetWidth:o.onSetWidth}),J&&f.jsx(tf,{anchorRef:void 0,onPick:V,onClose:()=>me(!1)}),ue&&f.jsx(nf,{onClose:()=>fe(!1),onSet:ne=>{fe(!1),ne&&window.alert(`Reminder set (UI-only): ${ne}`)}}),W&&f.jsx(kc,{onClose:()=>Le(!1),onSelect:tt,current:(()=>{const ne=[];try{const xe=a&&a.id?Number(a.id):void 0,Z=t.owner||null;Z&&typeof Z.id=="number"&&Z.id!==xe&&ne.push({userId:Number(Z.id),email:String(Z.email||""),name:typeof Z.name=="string"?Z.name:void 0});const De=t.collaborators||[];for(const He of De){const Ot=He&&(He.user||{}),ke=typeof Ot.id=="number"?Number(Ot.id):typeof He.userId=="number"?Number(He.userId):void 0,Ke=typeof Ot.email=="string"?String(Ot.email):void 0,jt=typeof Ot.name=="string"?String(Ot.name):void 0;ke&&Ke&&ne.push({collabId:Number(He.id),userId:ke,email:Ke,name:jt})}}catch{}return ne})(),ownerId:typeof((sn=t.owner)==null?void 0:sn.id)=="number"?Number(t.owner.id):a==null?void 0:a.id,onRemove:Bt}),Ye&&f.jsx(rf,{onClose:()=>Y(!1),onAdd:pe}),Mt&&f.jsx(WR,{url:Mt,onClose:()=>vt(null)})]})}return $n}var uJ=mn.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:null}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:t=>{const e=t.style.textAlign;return this.options.alignments.includes(e)?e:this.options.defaultAlignment},renderHTML:t=>t.textAlign?{style:`text-align: ${t.textAlign}`}:{}}}}]},addCommands(){return{setTextAlign:t=>({commands:e})=>this.options.alignments.includes(t)?this.options.types.map(n=>e.updateAttributes(n,{textAlign:t})).some(n=>n):!1,unsetTextAlign:()=>({commands:t})=>this.options.types.map(e=>t.resetAttributes(e,"textAlign")).some(e=>e),toggleTextAlign:t=>({editor:e,commands:n})=>this.options.alignments.includes(t)?e.isActive({textAlign:t})?n.unsetTextAlign():n.setTextAlign(t):!1}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),Mc=uJ;const dJ=()=>{let t=!0;return(e,n)=>{if(t){t=!1;try{e()}finally{t=!0}}else n!==void 0&&n()}},fJ=/[\uD800-\uDBFF]/,hJ=/[\uDC00-\uDFFF]/,pJ=(t,e)=>{let n=0,r=0;for(;n0&&fJ.test(t[n-1])&&n--;r+n0&&hJ.test(t[t.length-r])&&r--,{index:n,remove:t.length-n-r,insert:e.slice(n,e.length-r)}},mJ=pJ,Ns=(t,e)=>t>>>e|t<<32-e,gJ=t=>Ns(t,2)^Ns(t,13)^Ns(t,22),yJ=t=>Ns(t,6)^Ns(t,11)^Ns(t,25),vJ=t=>Ns(t,7)^Ns(t,18)^t>>>3,bJ=t=>Ns(t,17)^Ns(t,19)^t>>>10,wJ=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),xJ=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);class kJ{constructor(){const e=new ArrayBuffer(320);this._H=new Uint32Array(e,0,8),this._H.set(xJ),this._W=new Uint32Array(e,64,64)}_updateHash(){const e=this._H,n=this._W;for(let d=16;d<64;d++)n[d]=bJ(n[d-2])+n[d-7]+vJ(n[d-15])+n[d-16];let r=e[0],i=e[1],s=e[2],o=e[3],l=e[4],a=e[5],c=e[6],u=e[7];for(let d=0,h,p;d<64;d++)h=u+yJ(l)+(l&a^~l&c)+wJ[d]+n[d]>>>0,p=gJ(r)+(r&i^r&s^i&s)>>>0,u=c,c=a,a=l,l=o+h>>>0,o=s,s=i,i=r,r=h+p>>>0;e[0]+=r,e[1]+=i,e[2]+=s,e[3]+=o,e[4]+=l,e[5]+=a,e[6]+=c,e[7]+=u}digest(e){let n=0;for(;n+56<=e.length;){let o=0;for(;o<16&&n+3=0&&n>>(3-l)*8;return s}}const SJ=t=>new kJ().digest(t),jn=new pn("y-sync"),no=new pn("y-undo");new pn("yjs-cursor");const CJ=t=>{for(let n=6;nfO(CJ(SJ(jK(t)))),Nm=(t,e)=>e===void 0?!t.deleted:e.sv.has(t.id.client)&&e.sv.get(t.id.client)>t.id.clock&&!Bc(e.ds,t.id),NJ=[{light:"#ecd44433",dark:"#ecd444"}],TJ=(t,e,n)=>{if(!t.has(n)){if(t.sizer.add(i)),e=e.filter(i=>!r.has(i))}t.set(n,lK(e))}return t.get(n)},AJ=(t,{colors:e=NJ,colorMapping:n=new Map,permanentUserData:r=null,onFirstRender:i=()=>{},mapping:s}={})=>{let o=!1;const l=new RJ(t,s),a=new hn({props:{editable:c=>{const u=jn.getState(c);return u.snapshot==null&&u.prevSnapshot==null}},key:jn,state:{init:(c,u)=>({type:t,doc:t.doc,binding:l,snapshot:null,prevSnapshot:null,isChangeOrigin:!1,isUndoRedoOperation:!1,addToHistory:!0,colors:e,colorMapping:n,permanentUserData:r}),apply:(c,u)=>{const d=c.getMeta(jn);if(d!==void 0){u=Object.assign({},u);for(const h in d)u[h]=d[h]}return u.addToHistory=c.getMeta("addToHistory")!==!1,u.isChangeOrigin=d!==void 0&&!!d.isChangeOrigin,u.isUndoRedoOperation=d!==void 0&&!!d.isChangeOrigin&&!!d.isUndoRedoOperation,l.prosemirrorView!==null&&d!==void 0&&(d.snapshot!=null||d.prevSnapshot!=null)&&MO(0,()=>{l.prosemirrorView!=null&&(d.restore==null?l._renderSnapshot(d.snapshot,d.prevSnapshot,u):(l._renderSnapshot(d.snapshot,d.snapshot,u),delete u.restore,delete u.snapshot,delete u.prevSnapshot,l.mux(()=>{l._prosemirrorChanged(l.prosemirrorView.state.doc)})))}),u}},view:c=>(l.initView(c),s==null&&l._forceRerender(),i(),{update:()=>{const u=a.getState(c.state);if(u.snapshot==null&&u.prevSnapshot==null&&(o||c.state.doc.content.findDiffStart(c.state.doc.type.createAndFill().content)!==null)){if(o=!0,u.addToHistory===!1&&!u.isChangeOrigin){const d=no.getState(c.state),h=d&&d.undoManager;h&&h.stopCapturing()}l.mux(()=>{u.doc.transact(d=>{d.meta.set("addToHistory",u.addToHistory),l._prosemirrorChanged(c.state.doc)},jn)})}},destroy:()=>{l.destroy()}})});return a},MJ=(t,e,n)=>{if(e!==null&&e.anchor!==null&&e.head!==null)if(e.type==="all")t.setSelection(new ri(t.doc));else if(e.type==="node"){const r=_h(n.doc,n.type,e.anchor,n.mapping);t.setSelection(IJ(t,r))}else{const r=_h(n.doc,n.type,e.anchor,n.mapping),i=_h(n.doc,n.type,e.head,n.mapping);r!==null&&i!==null&&t.setSelection(xt.between(t.doc.resolve(r),t.doc.resolve(i)))}},IJ=(t,e)=>{const n=t.doc.resolve(e);return n.nodeAfter?dt.create(t.doc,e):xt.near(n)},Mb=(t,e)=>({type:e.selection.jsonID,anchor:Ob(e.selection.anchor,t.type,t.mapping),head:Ob(e.selection.head,t.type,t.mapping)});class RJ{constructor(e,n=new Map){this.type=e,this.prosemirrorView=null,this.mux=dJ(),this.mapping=n,this.isOMark=new Map,this._observeFunction=this._typeChanged.bind(this),this.doc=e.doc,this.beforeTransactionSelection=null,this.beforeAllTransactions=()=>{this.beforeTransactionSelection===null&&this.prosemirrorView!=null&&(this.beforeTransactionSelection=Mb(this,this.prosemirrorView.state))},this.afterAllTransactions=()=>{this.beforeTransactionSelection=null},this._domSelectionInView=null}get _tr(){return this.prosemirrorView.state.tr.setMeta("addToHistory",!1)}_isLocalCursorInView(){return this.prosemirrorView.hasFocus()?(o1&&this._domSelectionInView===null&&(MO(0,()=>{this._domSelectionInView=null}),this._domSelectionInView=this._isDomSelectionInView()),this._domSelectionInView):!1}_isDomSelectionInView(){const e=this.prosemirrorView._root.getSelection();if(e==null||e.anchorNode==null)return!1;const n=this.prosemirrorView._root.createRange();n.setStart(e.anchorNode,e.anchorOffset),n.setEnd(e.focusNode,e.focusOffset),n.getClientRects().length===0&&n.startContainer&&n.collapsed&&n.selectNodeContents(n.startContainer);const i=n.getBoundingClientRect(),s=uf.documentElement;return i.bottom>=0&&i.right>=0&&i.left<=(window.innerWidth||s.clientWidth||0)&&i.top<=(window.innerHeight||s.clientHeight||0)}renderSnapshot(e,n){n||(n=YO(_O(),new Map)),this.prosemirrorView.dispatch(this._tr.setMeta(jn,{snapshot:e,prevSnapshot:n}))}unrenderSnapshot(){this.mapping.clear(),this.mux(()=>{const e=this.type.toArray().map(r=>Lh(r,this.prosemirrorView.state.schema,this)).filter(r=>r!==null),n=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new _e(we.from(e),0,0));n.setMeta(jn,{snapshot:null,prevSnapshot:null}),this.prosemirrorView.dispatch(n)})}_forceRerender(){this.mapping.clear(),this.mux(()=>{const e=this.beforeTransactionSelection!==null?null:this.prosemirrorView.state.selection,n=this.type.toArray().map(i=>Lh(i,this.prosemirrorView.state.schema,this)).filter(i=>i!==null),r=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new _e(we.from(n),0,0));if(e){const i=ia(ho(e.anchor,0),r.doc.content.size),s=ia(ho(e.head,0),r.doc.content.size);r.setSelection(xt.create(r.doc,i,s))}this.prosemirrorView.dispatch(r.setMeta(jn,{isChangeOrigin:!0,binding:this}))})}_renderSnapshot(e,n,r){let i=this.doc,s=this.type;if(e||(e=mv(this.doc)),e instanceof Uint8Array||n instanceof Uint8Array)if((!(e instanceof Uint8Array)||!(n instanceof Uint8Array))&&Dr(),i=new Fi({gc:!1}),vm(i,n),n=mv(i),vm(i,e),e=mv(i),s._item===null){const o=Array.from(this.doc.share.keys()).find(l=>this.doc.share.get(l)===this.type);s=i.getXmlFragment(o)}else{const o=i.store.clients.get(s._item.id.client)??[],l=ss(o,s._item.id.clock);s=o[l].content.type}this.mapping.clear(),this.mux(()=>{i.transact(o=>{const l=r.permanentUserData;l&&l.dss.forEach(d=>{hl(o,d,h=>{})});const a=(d,h)=>{const p=d==="added"?l.getUserByClientId(h.client):l.getUserByDeletedId(h);return{user:p,type:d,color:TJ(r.colorMapping,r.colors,p)}},c=ij(s,new g1(n.ds,e.sv)).map(d=>!d._item.deleted||Nm(d._item,e)||Nm(d._item,n)?Lh(d,this.prosemirrorView.state.schema,{mapping:new Map,isOMark:new Map},e,n,a):null).filter(d=>d!==null),u=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new _e(we.from(c),0,0));this.prosemirrorView.dispatch(u.setMeta(jn,{isChangeOrigin:!0}))},jn)})}_typeChanged(e,n){if(this.prosemirrorView==null)return;const r=jn.getState(this.prosemirrorView.state);if(e.length===0||r.snapshot!=null||r.prevSnapshot!=null){this.renderSnapshot(r.snapshot,r.prevSnapshot);return}this.mux(()=>{const i=(l,a)=>this.mapping.delete(a);hl(n,n.deleteSet,l=>{if(l.constructor===cn){const a=l.content.type;a&&this.mapping.delete(a)}}),n.changed.forEach(i),n.changedParentTypes.forEach(i);const s=this.type.toArray().map(l=>Mj(l,this.prosemirrorView.state.schema,this)).filter(l=>l!==null);let o=this._tr.replace(0,this.prosemirrorView.state.doc.content.size,new _e(we.from(s),0,0));MJ(o,this.beforeTransactionSelection,this),o=o.setMeta(jn,{isChangeOrigin:!0,isUndoRedoOperation:n.origin instanceof QO}),this.beforeTransactionSelection!==null&&this._isLocalCursorInView()&&o.scrollIntoView(),this.prosemirrorView.dispatch(o)})}_prosemirrorChanged(e){this.doc.transact(()=>{Rb(this.doc,this.type,e,this),this.beforeTransactionSelection=Mb(this,this.prosemirrorView.state)},jn)}initView(e){this.prosemirrorView!=null&&this.destroy(),this.prosemirrorView=e,this.doc.on("beforeAllTransactions",this.beforeAllTransactions),this.doc.on("afterAllTransactions",this.afterAllTransactions),this.type.observeDeep(this._observeFunction)}destroy(){this.prosemirrorView!=null&&(this.prosemirrorView=null,this.type.unobserveDeep(this._observeFunction),this.doc.off("beforeAllTransactions",this.beforeAllTransactions),this.doc.off("afterAllTransactions",this.afterAllTransactions))}}const Mj=(t,e,n,r,i,s)=>{const o=n.mapping.get(t);if(o===void 0){if(t instanceof Mr)return Lh(t,e,n,r,i,s);throw Oi()}return o},Lh=(t,e,n,r,i,s)=>{const o=[],l=a=>{var c,u;if(a instanceof Mr){const d=Mj(a,e,n,r,i,s);d!==null&&o.push(d)}else{const d=(u=(c=a._item.right)==null?void 0:c.content)==null?void 0:u.type;d instanceof pl&&!d._item.deleted&&d._item.id.client===d.doc.clientID&&(a.applyDelta([{retain:a.length},...d.toDelta()]),d.doc.transact(p=>{d._item.delete(p)}));const h=DJ(a,e,n,r,i,s);h!==null&&h.forEach(p=>{p!==null&&o.push(p)})}};r===void 0||i===void 0?t.toArray().forEach(l):ij(t,new g1(i.ds,r.sv)).forEach(l);try{const a=t.getAttributes(r);r!==void 0&&(Nm(t._item,r)?Nm(t._item,i)||(a.ychange=s?s("added",t._item.id):{type:"added"}):a.ychange=s?s("removed",t._item.id):{type:"removed"});const c=e.node(t.nodeName,a,o);return n.mapping.set(t,c),c}catch{return t.doc.transact(c=>{t._item.delete(c)},jn),n.mapping.delete(t),null}},DJ=(t,e,n,r,i,s)=>{const o=[],l=t.toDelta(r,i,s);try{for(let a=0;a{t._item.delete(c)},jn),null}return o},OJ=(t,e)=>{const n=new oi,r=t.map(i=>({insert:i.text,attributes:Rj(i.marks,e)}));return n.applyDelta(r),e.mapping.set(n,t),n},jJ=(t,e)=>{const n=new Mr(t.type.name);for(const r in t.attrs){const i=t.attrs[r];i!==null&&r!=="ychange"&&n.setAttribute(r,i)}return n.insert(0,Lg(t).map(r=>Ib(r,e))),e.mapping.set(n,t),n},Ib=(t,e)=>t instanceof Array?OJ(t,e):jJ(t,e),MN=t=>typeof t=="object"&&t!==null,A1=(t,e)=>{const n=Object.keys(t).filter(i=>t[i]!==null);let r=n.length===Object.keys(e).filter(i=>e[i]!==null).length;for(let i=0;i{const e=t.content.content,n=[];for(let r=0;r{const n=t.toDelta();return n.length===e.length&&n.every((r,i)=>r.insert===e[i].text&&lO(r.attributes||{}).length===e[i].marks.length&&zc(r.attributes,(s,o)=>{var u;const l=M1(o),a=e[i].marks;return a.find(d=>d.type.name===l)?A1(s,(u=a.find(d=>d.type.name===l))==null?void 0:u.attrs):!1}))},zd=(t,e)=>{if(t instanceof Mr&&!(e instanceof Array)&&Db(t,e)){const n=Lg(e);return t._length===n.length&&A1(t.getAttributes(),e.attrs)&&t.toArray().every((r,i)=>zd(r,n[i]))}return t instanceof oi&&e instanceof Array&&Ij(t,e)},Tm=(t,e)=>t===e||t instanceof Array&&e instanceof Array&&t.length===e.length&&t.every((n,r)=>e[r]===n),IN=(t,e,n)=>{const r=t.toArray(),i=Lg(e),s=i.length,o=r.length,l=ia(o,s);let a=0,c=0,u=!1;for(;a{let e="",n=t._start;const r={};for(;n!==null;)n.deleted||(n.countable&&n.content instanceof ls?e+=n.content.str:n.content instanceof qn&&(r[n.content.key]=null)),n=n.right;return{str:e,nAttrs:r}},LJ=(t,e,n)=>{n.mapping.set(t,e);const{nAttrs:r,str:i}=PJ(t),s=e.map(c=>({insert:c.text,attributes:Object.assign({},r,Rj(c.marks,n))})),{insert:o,remove:l,index:a}=mJ(i,s.map(c=>c.insert).join(""));t.delete(a,l),t.insert(a,o),t.applyDelta(s.map(c=>({retain:c.insert.length,attributes:c.attributes})))},_J=/(.*)(--[a-zA-Z0-9+/=]{8})$/,M1=t=>{var e;return((e=_J.exec(t))==null?void 0:e[1])??t},zJ=(t,e)=>{const n=[];for(const r in t)n.push(e.mark(M1(r),t[r]));return n},Rj=(t,e)=>{const n={};return t.forEach(r=>{if(r.type.name!=="ychange"){const i=as(e.isOMark,r.type,()=>!r.type.excludes(r.type));n[i?`${r.type.name}--${EJ(r.toJSON())}`:r.type.name]=r.attrs}}),n},Rb=(t,e,n,r)=>{if(e instanceof Mr&&e.nodeName!==n.type.name)throw new Error("node name mismatch!");if(r.mapping.set(e,n),e instanceof Mr){const d=e.getAttributes(),h=n.attrs;for(const p in h)h[p]!==null?d[p]!==h[p]&&p!=="ychange"&&e.setAttribute(p,h[p]):e.removeAttribute(p);for(const p in d)h[p]===void 0&&e.removeAttribute(p)}const i=Lg(n),s=i.length,o=e.toArray(),l=o.length,a=ia(s,l);let c=0,u=0;for(;c{for(;l-c-u>0&&s-c-u>0;){const h=o[c],p=i[c],m=o[l-u-1],g=i[s-u-1];if(h instanceof oi&&p instanceof Array)Ij(h,p)||LJ(h,p,r),c+=1;else{let v=h instanceof Mr&&Db(h,p),y=m instanceof Mr&&Db(m,g);if(v&&y){const b=IN(h,p,r),x=IN(m,g,r);b.foundMappedChild&&!x.foundMappedChild?y=!1:!b.foundMappedChild&&x.foundMappedChild||b.equalityFactor0&&(e.slice(c,c+d).forEach(h=>r.mapping.delete(h)),e.delete(c,d)),c+u!(e instanceof Array)&&t.nodeName===e.type.name,Ob=(t,e,n)=>{if(t===0)return pv(e,0,-1);let r=e._first===null?null:e._first.content.type;for(;r!==null&&e!==r;){if(r instanceof oi){if(r._length>=t)return pv(r,t,-1);if(t-=r._length,r._item!==null&&r._item.next!==null)r=r._item.next.content.type;else{do r=r._item===null?null:r._item.parent,t--;while(r!==e&&r!==null&&r._item!==null&&r._item.next===null);r!==null&&r!==e&&(r=r._item===null?null:r._item.next.content.type)}}else{const i=(n.get(r)||{nodeSize:0}).nodeSize;if(r._first!==null&&t1)return new bm(r._item===null?null:r._item.id,r._item===null?Od(r):null,null);if(t-=i,r._item!==null&&r._item.next!==null)r=r._item.next.content.type;else{if(t===0)return r=r._item===null?r:r._item.parent,new bm(r._item===null?null:r._item.id,r._item===null?Od(r):null,null);do r=r._item.parent,t--;while(r!==e&&r._item.next===null);r!==e&&(r=r._item.next.content.type)}}}if(r===null)throw Dr();if(t===0&&r.constructor!==oi&&r!==e)return FJ(r._item.parent,r._item)}return pv(e,e._length,-1)},FJ=(t,e)=>{let n=null,r=null;return t._item===null?r=Od(t):n=Ht(t._item.id.client,t._item.id.clock),new bm(n,r,e.id)},_h=(t,e,n,r)=>{const i=YY(n,t);if(i===null||i.type!==e&&!jd(e,i.type._item))return null;let s=i.type,o=0;if(s.constructor===oi)o=i.index;else if(s._item===null||!s._item.deleted){let l=s._first,a=0;for(;a{let i;if(r instanceof oi)i=r.toDelta().map(o=>{const l={type:"text",text:o.insert};return o.attributes&&(l.marks=Object.keys(o.attributes).map(a=>{const c=o.attributes[a],d={type:M1(a)};return Object.keys(c)&&(d.attrs=c),d})),l});else if(r instanceof Mr){i={type:r.nodeName};const s=r.getAttributes();Object.keys(s).length&&(i.attrs=s);const o=r.toArray();o.length&&(i.content=o.map(n).flat())}else Dr();return i};return{type:"doc",content:e.map(n)}}const BJ=t=>{const e=no.getState(t).undoManager;if(e!=null)return e.undo(),!0},UJ=t=>{const e=no.getState(t).undoManager;if(e!=null)return e.redo(),!0},HJ=new Set(["paragraph"]),VJ=(t,e)=>!(t instanceof cn)||!(t.content instanceof cs)||!(t.content.type instanceof pl||t.content.type instanceof Mr&&e.has(t.content.type.nodeName))||t.content.type._length===0,WJ=({protectedNodes:t=HJ,trackedOrigins:e=[],undoManager:n=null}={})=>new hn({key:no,state:{init:(r,i)=>{const s=jn.getState(i),o=n||new QO(s.type,{trackedOrigins:new Set([jn].concat(e)),deleteFilter:l=>VJ(l,t),captureTransaction:l=>l.meta.get("addToHistory")!==!1});return{undoManager:o,prevSel:null,hasUndoOps:o.undoStack.length>0,hasRedoOps:o.redoStack.length>0}},apply:(r,i,s,o)=>{const l=jn.getState(o).binding,a=i.undoManager,c=a.undoStack.length>0,u=a.redoStack.length>0;return l?{undoManager:a,prevSel:Mb(l,s),hasUndoOps:c,hasRedoOps:u}:c!==i.hasUndoOps||u!==i.hasRedoOps?Object.assign({},i,{hasUndoOps:a.undoStack.length>0,hasRedoOps:a.redoStack.length>0}):i}},view:r=>{const i=jn.getState(r.state),s=no.getState(r.state).undoManager;return s.on("stack-item-added",({stackItem:o})=>{const l=i.binding;l&&o.meta.set(l,no.getState(r.state).prevSel)}),s.on("stack-item-popped",({stackItem:o})=>{const l=i.binding;l&&(l.beforeTransactionSelection=o.meta.get(l)||l.beforeTransactionSelection)}),{destroy:()=>{s.destroy()}}}});function KJ(t){return!!t.getMeta(jn)}function YJ(t,e){const n=jn.getState(t);return _h(n.doc,n.type,e,n.binding.mapping)||0}function Dj(t,e){const n=jn.getState(t);return Ob(e,n.type,n.binding.mapping)}var zh=class Oj extends dx{constructor(e,n){super(e),this.yRelativePosition=n}static fromJSON(e){return new Oj(e.position,e.yRelativePosition)}toJSON(){return{position:this.position,yRelativePosition:this.yRelativePosition}}};function qJ(t,e){const n=Dj(e,t);return new zh(t,n)}function JJ(t,e,n){const r=t instanceof zh?t.yRelativePosition:null;if(KJ(e)&&r){const o=YJ(n,r);return{position:new zh(o,r),mapResult:null}}const i=p2(t,e),s=i.position.position;return{position:new zh(s,r??Dj(n,s)),mapResult:i.mapResult}}var GJ=mn.create({name:"collaboration",priority:1e3,addOptions(){return{document:null,field:"default",fragment:null,provider:null}},addStorage(){return{isDisabled:!1}},onCreate(){this.editor.extensionManager.extensions.find(t=>t.name==="undoRedo")&&console.warn('[tiptap warn]: "@tiptap/extension-collaboration" comes with its own history support and is not compatible with "@tiptap/extension-undo-redo".')},onBeforeCreate(){this.editor.utils.getUpdatedPosition=(t,e)=>JJ(t,e,this.editor.state),this.editor.utils.createMappablePosition=t=>qJ(t,this.editor.state)},addCommands(){return{undo:()=>({tr:t,state:e,dispatch:n})=>(t.setMeta("preventDispatch",!0),no.getState(e).undoManager.undoStack.length===0?!1:n?BJ(e):!0),redo:()=>({tr:t,state:e,dispatch:n})=>(t.setMeta("preventDispatch",!0),no.getState(e).undoManager.redoStack.length===0?!1:n?UJ(e):!0)}},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Mod-y":()=>this.editor.commands.redo(),"Shift-Mod-z":()=>this.editor.commands.redo()}},addProseMirrorPlugins(){var t;const e=this.options.fragment?this.options.fragment:this.options.document.getXmlFragment(this.options.field),n=WJ(this.options.yUndoOptions),r=n.spec.view;n.spec.view=o=>{const{undoManager:l}=no.getState(o.state);l.restore&&(l.restore(),l.restore=()=>{});const a=r?r(o):void 0;return{destroy:()=>{const c=l.trackedOrigins.has(l),u=l._observers;l.restore=()=>{c&&l.trackedOrigins.add(l),l.doc.on("afterTransaction",l.afterTransactionHandler),l._observers=u},a!=null&&a.destroy&&a.destroy()}}};const i={...this.options.ySyncOptions,onFirstRender:this.options.onFirstRender},s=AJ(e,i);return this.editor.options.enableContentCheck&&((t=e.doc)==null||t.on("beforeTransaction",()=>{try{const o=$J(e);if(o.content.length===0)return;this.editor.schema.nodeFromJSON(o).check()}catch(o){return this.editor.emit("contentError",{error:o,editor:this.editor,disableCollaboration:()=>{var l;(l=e.doc)==null||l.destroy(),this.storage.isDisabled=!0}}),!1}})),[s,n,this.editor.options.enableContentCheck&&new hn({key:new pn("filterInvalidContent"),filterTransaction:()=>{var o;return this.storage.isDisabled!==!1&&((o=e.doc)==null||o.destroy()),!0}})].filter(Boolean)}}),_g=GJ;function XJ({note:t,onClose:e,onSaved:n,noteBg:r,onImagesUpdated:i,onColorChanged:s,moreMenu:o}){var nt,pt;const{token:l,user:a}=Sr(),c=B.useRef((()=>{try{return`c${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`c${Math.random()}`}})()),u=B.useRef((()=>{try{return`rte-${(t==null?void 0:t.id)||"x"}-${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`rte-${Math.random()}`}})());B.useEffect(()=>{window.dispatchEvent(new Event("freemannotes:editor-modal-open"));try{const Q=u.current,F=()=>{try{e()}catch{}};window.dispatchEvent(new CustomEvent("freemannotes:back/register",{detail:{id:Q,onBack:F}}))}catch{}return()=>{try{window.dispatchEvent(new CustomEvent("freemannotes:back/unregister",{detail:{id:u.current}}))}catch{}window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}},[]);const[d,h]=B.useState(t.title||""),[p,m]=B.useState(!1),[g,v]=B.useState(!1),[y,b]=B.useState(!1),[x,C]=B.useState(!1),[S,M]=B.useState(!1),[N,z]=B.useState((t.images||[]).map(Q=>({id:Number(Q.id),url:String(Q.url)}))),[ee,L]=B.useState(!1),[q,X]=B.useState(null),[ye,Ce]=B.useState([]),[Te,se]=B.useState(!1),he=B.useRef(null);B.useRef(!1);const J=B.useRef(!1),me=B.useRef(!1),ue=B.useCallback(()=>{if(!me.current){me.current=!0;try{window.dispatchEvent(new CustomEvent("freemannotes:draft/dirty",{detail:{noteId:Number(t==null?void 0:t.id)}}))}catch{}}},[t==null?void 0:t.id]),fe=B.useMemo(()=>new Fi,[t.id]),W=B.useRef(null);B.useEffect(()=>{const Q=`note-${t.id}`,ae=`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/collab`,Se=new gf(ae,Q,fe);W.current=Se;const Pe=D=>{D&&(J.current=!0)};try{Se.on("sync",Pe)}catch{}return()=>{try{Se.off("sync",Pe)}catch{}try{Se.destroy()}catch{}}},[t.id,fe]);const Le=B.useCallback(()=>{try{fe.getMap("meta").set("imagesTick",{t:Date.now(),by:c.current})}catch{}},[fe]),Ye=B.useCallback(async()=>{try{const Q=await fetch(`/api/notes/${t.id}/images`,{headers:{Authorization:`Bearer ${l}`}});if(!Q.ok)return;const F=await Q.json(),ae=(F&&F.images||[]).map(Se=>({id:Number(Se.id),url:String(Se.url)}));z(ae),i&&i(ae)}catch{}},[t.id,l,i]);B.useEffect(()=>{const Q=(()=>{try{return fe.getMap("meta")}catch{return null}})();if(!Q)return;const F=()=>{try{const ae=Q.get("imagesTick");if(!ae||!ae.t||ae.by&&String(ae.by)===String(c.current))return;Ye()}catch{}};try{Q.observe(F)}catch{}return()=>{try{Q.unobserve(F)}catch{}}},[fe,Ye]);const Y=gg({extensions:[ta.configure({heading:{levels:[1,2,3]}}),TR.configure({openOnClick:!0,autolink:!0}),Mc.configure({types:["heading","paragraph"]}),_g.configure({document:fe}),bg,mn.create({name:"paragraphEnterFix",priority:1e3,addKeyboardShortcuts(){return{"Shift-Enter":()=>{const Q=this.editor;return Q.commands.splitBlock(),Q.commands.setParagraph(),!0},"Mod-Enter":()=>{const Q=this.editor;return Q.commands.splitBlock(),Q.commands.setParagraph(),!0}}}})],editorProps:{attributes:{class:"rt-editor"}}});function Ze(Q){if(!Y)return;const F=Y.state.selection;if(!F||!F.empty){Y.chain().focus()[`toggle${Q.charAt(0).toUpperCase()+Q.slice(1)}`]().run();return}const ae=F.$from;let Se=ae.depth;for(;Se>0&&!ae.node(Se).isBlock;)Se--;const Pe=ae.start(Se),D=ae.end(Se),G=Y.chain().focus().setTextSelection({from:Pe,to:D});Q==="bold"?G.toggleBold().run():Q==="italic"?G.toggleItalic().run():G.toggleUnderline().run();try{Y.chain().setTextSelection(F.from).run()}catch{}}B.useEffect(()=>{try{const Q=(t.images||[]).map(F=>({id:Number(F.id),url:String(F.url)}));z(F=>{try{if(F.length===Q.length&&F.every((ae,Se)=>{var Pe,D;return Number(ae.id)===Number((Pe=Q[Se])==null?void 0:Pe.id)&&String(ae.url)===String((D=Q[Se])==null?void 0:D.url)}))return F}catch{}return Q})}catch{}},[t.images]);const[,Pt]=B.useState(0);B.useEffect(()=>{if(!Y)return;const Q=()=>Pt(F=>F+1);return Y.on("selectionUpdate",Q),Y.on("transaction",Q),()=>{Y.off("selectionUpdate",Q),Y.off("transaction",Q)}},[Y]);function it(){if(!Y)return;const Q=window.prompt("Enter URL:");Q&&Y.chain().focus().extendMarkRange("link").setLink({href:Q}).run()}const St=B.useRef(null);B.useEffect(()=>{if(!Y)return;const Q=()=>{try{J.current&&ue()}catch{}St.current&&window.clearTimeout(St.current),St.current=window.setTimeout(async()=>{try{const F=Y.getJSON();await fetch(`/api/notes/${t.id}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({body:JSON.stringify(F),type:"TEXT"})})}catch{}},700)};return Y.on("update",Q),()=>{Y.off("update",Q),St.current&&window.clearTimeout(St.current)}},[Y,t.id,l,ue]);async function Mt(){try{const Q=(()=>{try{return JSON.stringify((Y==null?void 0:Y.getJSON())||{})}catch{return t.body||""}})();if((t.title||"")!==d){const F=await fetch(`/api/notes/${t.id}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({title:d})});if(!F.ok)throw new Error(await F.text())}n&&n({title:d,body:Q}),e()}catch(Q){console.error("Failed to update title",Q),window.alert("Failed to update title")}}function vt(Q){if(!Q)return;const F=Q.replace("#",""),ae=F.length===3?F.split("").map(At=>At+At).join(""):F;if(ae.length!==6)return;const Se=parseInt(ae.slice(0,2),16)/255,Pe=parseInt(ae.slice(2,4),16)/255,D=parseInt(ae.slice(4,6),16)/255,G=At=>At<=.03928?At/12.92:Math.pow((At+.055)/1.055,2.4),de=G(Se),ve=G(Pe),$e=G(D),Ve=.2126*de+.7152*ve+.0722*$e,Ne=(1+.05)/(Ve+.05),Je=(Ve+.05)/(0+.05);return Ne>=Je?"#ffffff":"#000000"}const We={},[ce,Re]=B.useState(r??(t.viewerColor||t.color||"")),qe=ce?vt(ce)||"var(--muted)":void 0;B.useEffect(()=>{Re(r??(t.viewerColor||t.color||""))},[r,t.viewerColor,t.color]),ce&&(We["--checkbox-bg"]=ce,We["--checkbox-border"]=qe||void 0,We["--checkbox-stroke"]=qe||void 0,We["--checkbox-checked-bg"]=ce,We["--checkbox-checked-mark"]=qe||void 0,We["--editor-surface"]=ce,We.background=ce,qe&&(We.color=qe));async function It(Q){const F=Q||"";try{const ae=await fetch(`/api/notes/${t.id}/prefs`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({color:F})});if(!ae.ok)throw new Error(await ae.text())}catch(ae){console.error("Failed to save color preference",ae),window.alert("Failed to save color preference")}Re(F);try{s==null||s(F)}catch{}}function et(Q){if(M(!1),!Q)return;const F=-Date.now();z(ae=>{const Pe=ae.some(D=>String(D.url)===String(Q))?ae:[...ae,{id:F,url:String(Q)}];return i&&i(Pe),Pe});try{L(!0)}catch{}(async()=>{try{const ae=await fetch(`/api/notes/${t.id}/images`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({url:Q})});if(!ae.ok)throw new Error(await ae.text());const Pe=(await ae.json()).image||null;Pe&&Pe.id&&Pe.url&&(z(D=>{const G=Number(Pe.id),de=String(Pe.url),ve=D.map(Ne=>Number(Ne.id)===F||String(Ne.url)===String(Q)?{id:G,url:de}:Ne),Ve=ve.some(Ne=>Number(Ne.id)===G)?ve:[...ve,{id:G,url:de}];return i&&i(Ve),Ve}),Le())}catch(ae){console.error("Failed to attach image",ae),window.alert("Failed to attach image")}})()}function kt(Q){Ce(F=>F.find(ae=>ae.id===Q.id)?F:[...F,Q]),C(!1),(async()=>{try{const F=await fetch(`/api/notes/${t.id}/collaborators`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify({email:Q.email})});if(!F.ok)throw new Error(await F.text())}catch(F){console.error("Failed to add collaborator",F),window.alert("Failed to add collaborator")}})()}async function bt(Q){try{const F=await fetch(`/api/notes/${t.id}/collaborators/${Q}`,{method:"DELETE",headers:{Authorization:`Bearer ${l}`}});if(!F.ok)throw new Error(await F.text())}catch(F){console.error("Failed to remove collaborator",F),window.alert("Failed to remove collaborator")}}async function Tt(Q){const F=N,ae=F.filter(Se=>Number(Se.id)!==Number(Q));z(ae),i&&i(ae);try{const Se=await QJ(t.id,Q,l);if(!Se.ok)throw new Error(await Se.text());Le()}catch(Se){console.error("Failed to delete image",Se),z(F),i&&i(F),window.alert("Failed to delete image")}}const Ue=f.jsx("div",{className:"image-dialog-backdrop",onMouseDown:Q=>{Q.target===Q.currentTarget&&Mt()},children:f.jsxs("div",{className:`image-dialog editor-dialog${p?" maximized":""}`,role:"dialog","aria-modal":!0,style:{width:p?"96vw":"min(1000px, 86vw)",...We},children:[f.jsxs("div",{className:"dialog-header",children:[f.jsx("strong",{children:"Edit note"}),f.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[f.jsx("button",{className:"tiny",onClick:()=>m(Q=>!Q),"aria-label":"Toggle maximize",title:"Toggle maximize",children:"⤢"}),f.jsx("button",{className:"icon-close",onClick:e,children:"✕"})]})]}),f.jsxs("div",{className:"dialog-body",children:[f.jsxs("div",{className:"rt-sticky-header",children:[f.jsx("div",{style:{display:"flex",gap:12,marginBottom:8},children:f.jsx("input",{placeholder:"Title",value:d,onChange:Q=>{h(Q.target.value);try{ue()}catch{}},style:{flex:1,background:"transparent",border:"none",color:"inherit",fontWeight:600,fontSize:18}})}),f.jsxs("div",{className:"rt-toolbar",style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",marginTop:0,marginBottom:0,overflowX:"auto",color:qe},children:[f.jsx("button",{className:"tiny",onClick:()=>Ze("bold"),"aria-pressed":Y==null?void 0:Y.isActive("bold"),"aria-label":"Bold",title:"Bold",children:"B"}),f.jsx("button",{className:"tiny",onClick:()=>Ze("italic"),"aria-pressed":Y==null?void 0:Y.isActive("italic"),"aria-label":"Italic",title:"Italic",children:"I"}),f.jsx("button",{className:"tiny",onClick:()=>Ze("underline"),"aria-pressed":Y==null?void 0:Y.isActive("underline"),"aria-label":"Underline",title:"Underline",children:"U"}),f.jsx("button",{className:"tiny",onClick:()=>Y==null?void 0:Y.chain().focus().toggleHeading({level:1}).run(),"aria-pressed":Y==null?void 0:Y.isActive("heading",{level:1}),"aria-label":"Heading 1",title:"Heading 1",children:"H1"}),f.jsx("button",{className:"tiny",onClick:()=>Y==null?void 0:Y.chain().focus().toggleHeading({level:2}).run(),"aria-pressed":Y==null?void 0:Y.isActive("heading",{level:2}),"aria-label":"Heading 2",title:"Heading 2",children:"H2"}),f.jsx("button",{className:"tiny",onClick:()=>Y==null?void 0:Y.chain().focus().toggleHeading({level:3}).run(),"aria-pressed":Y==null?void 0:Y.isActive("heading",{level:3}),"aria-label":"Heading 3",title:"Heading 3",children:"H3"}),f.jsx("button",{className:"tiny",onClick:()=>Y==null?void 0:Y.chain().focus().toggleBulletList().run(),"aria-pressed":Y==null?void 0:Y.isActive("bulletList"),"aria-label":"Bulleted list",title:"Bulleted list",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("circle",{cx:"5",cy:"6",r:"1.5"}),f.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),f.jsx("circle",{cx:"5",cy:"12",r:"1.5"}),f.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),f.jsx("circle",{cx:"5",cy:"18",r:"1.5"}),f.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>Y==null?void 0:Y.chain().focus().toggleOrderedList().run(),"aria-pressed":Y==null?void 0:Y.isActive("orderedList"),"aria-label":"Numbered list",title:"Numbered list",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("text",{x:"3.5",y:"7",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"1."}),f.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),f.jsx("text",{x:"3.5",y:"13",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"2."}),f.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),f.jsx("text",{x:"3.5",y:"19",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"3."}),f.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>Y==null?void 0:Y.chain().focus().setTextAlign("left").run(),"aria-pressed":Y==null?void 0:Y.isActive({textAlign:"left"}),"aria-label":"Align left",title:"Align left",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("rect",{x:"4",y:"5",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"4",y:"9",width:"10",height:"2",rx:"1"}),f.jsx("rect",{x:"4",y:"13",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"4",y:"17",width:"8",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>Y==null?void 0:Y.chain().focus().setTextAlign("center").run(),"aria-pressed":Y==null?void 0:Y.isActive({textAlign:"center"}),"aria-label":"Align center",title:"Align center",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("rect",{x:"5",y:"5",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"7",y:"9",width:"10",height:"2",rx:"1"}),f.jsx("rect",{x:"5",y:"13",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"8",y:"17",width:"8",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>Y==null?void 0:Y.chain().focus().setTextAlign("right").run(),"aria-pressed":Y==null?void 0:Y.isActive({textAlign:"right"}),"aria-label":"Align right",title:"Align right",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("rect",{x:"6",y:"5",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"10",y:"9",width:"10",height:"2",rx:"1"}),f.jsx("rect",{x:"6",y:"13",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"12",y:"17",width:"8",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>Y==null?void 0:Y.chain().focus().setTextAlign("justify").run(),"aria-pressed":Y==null?void 0:Y.isActive({textAlign:"justify"}),"aria-label":"Justify",title:"Justify",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("rect",{x:"5",y:"5",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"5",y:"9",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"5",y:"13",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"5",y:"17",width:"14",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:it,"aria-label":"Insert link",title:"Insert link",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("path",{d:"M9.17 14.83a3 3 0 0 1 0-4.24l2.83-2.83a3 3 0 1 1 4.24 4.24l-.88.88",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),f.jsx("path",{d:"M14.83 9.17a3 3 0 0 1 0 4.24l-2.83 2.83a3 3 0 1 1-4.24-4.24l.88-.88",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]})})]})]}),f.jsx("div",{onKeyDown:Q=>{try{if(!(Q.ctrlKey||Q.metaKey)){const Se=String(Q.key||"");(Se.length===1||Se==="Backspace"||Se==="Enter"||Se==="Delete")&&ue()}}catch{}if(!(!Y||!(Q.ctrlKey||Q.metaKey))&&Y.isFocused)switch(Q.key.toLowerCase()){case"b":Q.preventDefault(),Ze("bold");break;case"i":Q.preventDefault(),Ze("italic");break;case"u":Q.preventDefault(),Ze("underline");break;case"k":Q.preventDefault(),it();break;case"l":Q.preventDefault(),Y.chain().focus().setTextAlign("left").run();break;case"r":Q.preventDefault(),Y.chain().focus().setTextAlign("right").run();break;case"e":Q.preventDefault(),Y.chain().focus().setTextAlign("center").run();break;case"j":Q.preventDefault(),Y.chain().focus().setTextAlign("justify").run();break}},children:f.jsx(Zd,{editor:Y,style:{color:qe}})}),N&&N.length>0&&f.jsxs("div",{className:"editor-images",style:{marginTop:10},children:[f.jsx("button",{type:"button",className:"btn editor-images-toggle",onClick:()=>L(Q=>!Q),"aria-expanded":ee,children:f.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[f.jsx("span",{style:{transform:ee?"rotate(90deg)":"rotate(0deg)",display:"inline-block"},children:"▸"}),f.jsxs("span",{children:["Images (",N.length,")"]})]})}),ee&&f.jsx("div",{className:"editor-images-grid",style:{marginTop:8},children:N.map(Q=>f.jsxs("div",{className:"note-image",role:"button",tabIndex:0,onClick:()=>X(Q.url),onKeyDown:F=>{(F.key==="Enter"||F.key===" ")&&(F.preventDefault(),X(Q.url))},style:{cursor:"zoom-in",position:"relative"},children:[f.jsx("img",{src:Q.url,alt:"note image"}),f.jsx("button",{className:"image-delete","aria-label":"Delete image",title:"Delete image",onClick:F=>{F.stopPropagation(),Tt(Q.id)},style:{position:"absolute",right:6,bottom:6},children:"🗑️"})]},Q.id))})]})]}),f.jsxs("div",{className:"dialog-footer",style:{borderTop:`1px solid ${qe||"rgba(255,255,255,0.15)"}`},children:[f.jsxs("div",{className:"note-actions",style:{marginRight:"auto",display:"inline-flex",gap:8,justifyContent:"flex-start",color:qe},children:[f.jsx("button",{className:"tiny palette",onClick:()=>v(!0),"aria-label":"Change color",title:"Change color",children:f.jsx(Xs,{icon:af,className:"palette-svg"})}),f.jsx("button",{className:"tiny",onClick:()=>b(!0),"aria-label":"Reminder",title:"Reminder",children:f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),f.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),f.jsx("button",{className:"tiny",onClick:()=>C(!0),"aria-label":"Collaborators",title:"Collaborators",children:f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"}),f.jsx("path",{d:"M6 14c-1.66 0-3 1.34-3 3v1h9.5c-.2-.63-.5-1.23-.9-1.76C11.7 15.6 9.9 14 6 14z"}),f.jsx("path",{d:"M20 16v2h-2v2h-2v-2h-2v-2h2v-2h2v2z"})]})}),f.jsx("button",{className:"tiny",onClick:()=>M(!0),"aria-label":"Add image",title:"Add image",children:f.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5C3.9 3 3 3.9 3 5v14h18zM8.5 13.5l2.5 3L14.5 12l4.5 7H5l3.5-5.5z"})})}),o&&f.jsx("button",{ref:he,className:"tiny editor-more",onClick:Q=>{Q.stopPropagation(),se(F=>!F)},"aria-label":"More",title:"More",children:"⋮"})]}),f.jsx("div",{style:{marginLeft:"auto",display:"flex",gap:8},children:f.jsx("button",{className:"btn",onClick:Mt,children:"Save"})})]})]})});if(x&&((()=>{const Q=[];try{const F=a&&a.id?Number(a.id):void 0,ae=t.owner||null;ae&&typeof ae.id=="number"&&ae.id!==F&&Q.push({userId:Number(ae.id),email:String(ae.email||""),name:typeof ae.name=="string"?ae.name:void 0});const Se=t.collaborators||[];for(const Pe of Se){const D=Pe&&(Pe.user||{}),G=typeof D.id=="number"?Number(D.id):typeof Pe.userId=="number"?Number(Pe.userId):void 0,de=typeof D.email=="string"?String(D.email):void 0,ve=typeof D.name=="string"?String(D.name):void 0;G&&de&&Q.push({collabId:Number(Pe.id),userId:G,email:de,name:ve})}}catch{}return Q})(),typeof((nt=t.owner)==null?void 0:nt.id)=="number"?Number(t.owner.id):a==null||a.id),typeof document<"u"){const Q=zn.createPortal(Ue,document.body);return f.jsxs(f.Fragment,{children:[Q,o&&Te&&f.jsx(Jx,{anchorRef:he,itemsCount:o.onMoveToCollection?5:4,onClose:()=>se(!1),onDelete:o.onDelete,onMoveToCollection:o.onMoveToCollection,onAddLabel:o.onAddLabel,onSetWidth:o.onSetWidth}),g&&f.jsx(tf,{anchorRef:void 0,onPick:It,onClose:()=>v(!1)}),y&&f.jsx(nf,{onClose:()=>b(!1),onSet:F=>{b(!1),F&&window.alert(`Reminder set (UI-only): ${F}`)}}),x&&f.jsx(kc,{onClose:()=>C(!1),onSelect:kt,current:(()=>{const F=[];try{const ae=a&&a.id?Number(a.id):void 0,Se=t.owner||null;Se&&typeof Se.id=="number"&&Se.id!==ae&&F.push({userId:Number(Se.id),email:String(Se.email||""),name:typeof Se.name=="string"?Se.name:void 0});const Pe=t.collaborators||[];for(const D of Pe){const G=D&&(D.user||{}),de=typeof G.id=="number"?Number(G.id):typeof D.userId=="number"?Number(D.userId):void 0,ve=typeof G.email=="string"?String(G.email):void 0,$e=typeof G.name=="string"?String(G.name):void 0;de&&ve&&F.push({collabId:Number(D.id),userId:de,email:ve,name:$e})}}catch{}return F})(),ownerId:typeof((pt=t.owner)==null?void 0:pt.id)=="number"?Number(t.owner.id):a==null?void 0:a.id,onRemove:bt}),S&&f.jsx(rf,{onClose:()=>M(!1),onAdd:et}),q&&f.jsx(WR,{url:q,onClose:()=>X(null)})]})}return Ue}function QJ(t,e,n){return fetch(`/api/notes/${t}/images/${e}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`}})}function ZJ({noteId:t,onClose:e,onChanged:n}){const{token:r}=Sr(),[i,s]=B.useState([]),[o,l]=B.useState([]),[a,c]=B.useState([]),[u,d]=B.useState(!1),[h,p]=B.useState(""),[m,g]=B.useState(!1);B.useEffect(()=>{try{return window.dispatchEvent(new Event("freemannotes:editor-modal-open")),()=>{setTimeout(()=>{try{window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}catch{}},0)}}catch{return}},[]);const v=i.length?Number(i[i.length-1].id):null,y=B.useCallback(async()=>{if(!r){l([]);return}d(!0);try{const L=v==null?"":`?parentId=${encodeURIComponent(String(v))}`,X=await(await fetch(`/api/collections${L}`,{headers:{Authorization:`Bearer ${r}`}})).json(),ye=Array.isArray(X==null?void 0:X.collections)?X.collections:[];l(ye.map(Ce=>({id:Number(Ce.id),name:String(Ce.name||""),parentId:Ce.parentId==null?null:Number(Ce.parentId),hasChildren:!!Ce.hasChildren,noteCount:typeof Ce.noteCount=="number"?Number(Ce.noteCount):void 0})).filter(Ce=>Number.isFinite(Ce.id)&&Ce.name.length))}catch{l([])}finally{d(!1)}},[r,v]);B.useEffect(()=>{y()},[y]);const b=B.useCallback(async()=>{if(!r){c([]);return}try{const L=await fetch(`/api/notes/${encodeURIComponent(String(t))}/collections`,{headers:{Authorization:`Bearer ${r}`}});if(!L.ok)return;const q=await L.json(),X=Array.isArray(q==null?void 0:q.collections)?q.collections:[];c(X.map(ye=>({id:Number(ye.id),name:String(ye.name||""),parentId:ye.parentId==null?null:Number(ye.parentId)})).filter(ye=>Number.isFinite(ye.id)&&ye.name.length))}catch{}},[r,t]);B.useEffect(()=>{b()},[b]),B.useEffect(()=>{const L=q=>{q.key==="Escape"&&e()};return window.addEventListener("keydown",L),()=>window.removeEventListener("keydown",L)},[e]);const x=B.useMemo(()=>new Set(a.map(L=>Number(L.id)).filter(L=>Number.isFinite(L))),[a]),C=B.useCallback((L,q)=>{const X=Number(L),ye=Number(q);!Number.isFinite(X)||!Number.isFinite(ye)||ye===0||l(Ce=>Ce.map(Te=>Number(Te.id)!==X||typeof Te.noteCount!="number"?Te:{...Te,noteCount:Math.max(0,Number(Te.noteCount)+ye)}))},[]),S=async L=>{if(!r||m||!Number.isFinite(L))return;const q=x.has(Number(L));g(!0);try{const X=await fetch(`/api/notes/${encodeURIComponent(String(t))}/collections`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({collectionId:Number(L)})});if(!X.ok)throw new Error(await X.text());const ye=await X.json(),Ce=Array.isArray(ye==null?void 0:ye.collections)?ye.collections:[];c(Ce.map(Te=>({id:Number(Te.id),name:String(Te.name||""),parentId:Te.parentId==null?null:Number(Te.parentId)})).filter(Te=>Number.isFinite(Te.id)&&Te.name.length)),q||C(L,1);try{n(Ce)}catch{}}catch(X){window.alert("Failed to add note to collection: "+String(X))}finally{g(!1)}},M=async L=>{if(!r||m||!Number.isFinite(L))return;const q=x.has(Number(L));g(!0);try{const X=await fetch(`/api/notes/${encodeURIComponent(String(t))}/collections/${encodeURIComponent(String(L))}`,{method:"DELETE",headers:{Authorization:`Bearer ${r}`}});if(!X.ok)throw new Error(await X.text());const ye=await X.json(),Ce=Array.isArray(ye==null?void 0:ye.collections)?ye.collections:[];c(Ce.map(Te=>({id:Number(Te.id),name:String(Te.name||""),parentId:Te.parentId==null?null:Number(Te.parentId)})).filter(Te=>Number.isFinite(Te.id)&&Te.name.length)),q&&C(L,-1);try{n(Ce)}catch{}}catch(X){window.alert("Failed to remove from collection: "+String(X))}finally{g(!1)}},N=async()=>{if(!r||m)return;const L=Array.from(new Set(a.map(q=>Number(q.id)).filter(q=>Number.isFinite(q))));g(!0);try{const q=await fetch(`/api/notes/${encodeURIComponent(String(t))}/collections`,{method:"DELETE",headers:{Authorization:`Bearer ${r}`}});if(!q.ok)throw new Error(await q.text());c([]),L.forEach(X=>C(X,-1));try{n([])}catch{}}catch(q){window.alert("Failed to clear collections: "+String(q))}finally{g(!1)}},z=async()=>{var q;if(!r)return;const L=String(h||"").trim();if(L&&!m){g(!0);try{const X=await fetch("/api/collections",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({name:L,parentId:v})});if(!X.ok)throw new Error(await X.text());const ye=await X.json(),Ce=Number((q=ye==null?void 0:ye.collection)==null?void 0:q.id);if(Number.isFinite(Ce)){try{window.dispatchEvent(new CustomEvent("collections:changed",{detail:{invalidateAll:!0,reason:"create",id:Ce}}))}catch{}try{p("")}catch{}g(!1),await S(Ce);return}await y()}catch(X){window.alert("Failed to create collection: "+String(X))}finally{g(!1)}}},ee=i.map(L=>L.name).join(" / ");return zn.createPortal(f.jsx("div",{style:{position:"fixed",inset:0,background:"var(--modal-backdrop, rgba(0,0,0,0.66))",zIndex:10050,display:"flex",alignItems:"center",justifyContent:"center",padding:16},onPointerDown:L=>{L.target===L.currentTarget&&(L.preventDefault(),L.stopPropagation(),setTimeout(()=>e(),0))},onClick:L=>{L.target===L.currentTarget&&(L.preventDefault(),L.stopPropagation())},children:f.jsxs("div",{role:"dialog","aria-label":"Add to collection","aria-modal":"true",style:{width:"min(520px, 100%)",maxHeight:"min(680px, 100%)",overflow:"auto",background:"var(--modal-surface, var(--panel, var(--card)))",color:"var(--text, var(--fg))",border:"1px solid var(--modal-border, var(--border, rgba(255,255,255,0.10)))",borderRadius:12,boxShadow:"0 18px 48px rgba(0,0,0,0.42)",padding:14},onPointerDown:L=>L.stopPropagation(),onMouseDown:L=>L.stopPropagation(),onClick:L=>L.stopPropagation(),children:[f.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[f.jsx("div",{style:{display:"flex",alignItems:"center",gap:8},children:i.length>0&&f.jsxs(f.Fragment,{children:[f.jsx("button",{className:"btn",onClick:()=>s(L=>L.slice(0,-1)),disabled:m,title:"Back",children:"Back"}),f.jsx("button",{className:"btn",onClick:()=>s([]),disabled:m,title:"Root",children:"All"})]})}),f.jsx("button",{className:"btn",onClick:e,disabled:m,children:"Done"})]}),f.jsxs("div",{style:{marginTop:10,marginBottom:10},children:[f.jsx("div",{style:{fontWeight:700},children:"Add to…"}),f.jsx("div",{style:{color:"var(--muted)",fontSize:12},children:ee||"All notes"})]}),f.jsxs("div",{style:{display:"flex",gap:8,marginBottom:10},children:[v!=null&&f.jsx("button",{className:"btn",onClick:()=>{S(Number(v))},disabled:m,title:"Add to current collection",children:"Add here"}),f.jsx("button",{className:"btn",onClick:N,disabled:m,title:"Remove from all collections",children:"Remove all"})]}),f.jsxs("div",{style:{display:"grid",gap:6},children:[u&&f.jsx("div",{style:{color:"var(--muted)"},children:"Loading…"}),!u&&o.length===0&&f.jsx("div",{style:{color:"var(--muted)"},children:"No sub-collections"}),o.map(L=>f.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"8px 10px",borderRadius:10,border:"1px solid var(--border)",background:"var(--panel-2, transparent)"},children:[f.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0,flex:1},children:[f.jsx("button",{className:"btn",onClick:()=>s(q=>[...q,{id:L.id,name:L.name}]),disabled:m,title:"Open",children:"Open"}),f.jsxs("div",{style:{overflow:"hidden"},children:[f.jsx("div",{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:L.name}),typeof L.noteCount=="number"&&f.jsxs("div",{style:{color:"var(--muted)",fontSize:12},children:[L.noteCount," notes"]})]})]}),(()=>{const q=x.has(Number(L.id));return f.jsx("button",{className:"btn",onClick:()=>{q?M(L.id):S(L.id)},disabled:m,title:q?"Remove note from this collection":"Add note to this collection",children:q?"Remove":"Add"})})()]},L.id))]}),f.jsxs("div",{style:{marginTop:12,borderTop:"1px solid var(--border)",paddingTop:10},children:[f.jsx("div",{style:{fontWeight:700,marginBottom:6},children:"New collection"}),f.jsxs("div",{style:{display:"flex",gap:8},children:[f.jsx("input",{value:h,onChange:L=>p(L.target.value),placeholder:"Name",style:{flex:1,minWidth:0,padding:"8px 10px",borderRadius:10,border:"1px solid var(--border)",background:"var(--panel)",color:"var(--text)"},onKeyDown:L=>{L.key==="Enter"&&z()},disabled:m}),f.jsx("button",{className:"btn",onClick:z,disabled:m||!h.trim(),children:"Create & add"})]})]})]})}),document.body)}function eG({noteId:t,onClose:e,onUpdated:n}){const{token:r}=Sr(),[i,s]=w.useState([]),[o,l]=w.useState(new Set),[a,c]=w.useState(""),[u,d]=w.useState(!1);w.useEffect(()=>{r&&Promise.all([fetch("/api/labels",{headers:{Authorization:`Bearer ${r}`}}).then(v=>v.json()),fetch("/api/notes",{headers:{Authorization:`Bearer ${r}`}}).then(v=>v.json())]).then(([v,y])=>{const b=Array.isArray(v.labels)?v.labels:[];s(b);const x=(Array.isArray(y.notes)?y.notes:[]).find(S=>S.id===t),C=new Set(((x==null?void 0:x.noteLabels)||[]).map(S=>{var M;return(M=S.label)==null?void 0:M.id}).filter(S=>typeof S=="number"));l(C)}).catch(()=>{})},[r,t]),w.useEffect(()=>{try{return window.dispatchEvent(new Event("freemannotes:editor-modal-open")),()=>{setTimeout(()=>{try{window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}catch{}},0)}}catch{return}},[]);async function h(v){if(r){d(!0);try{let y={};if(typeof v=="string")y={name:v};else{const C=i.find(S=>S.id===v);if(!C)return;y={name:C.name}}const b=await fetch(`/api/notes/${t}/labels`,{method:"POST",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json"},body:JSON.stringify(y)});if(!b.ok)throw new Error(await b.text());const x=await b.json();if(x!=null&&x.label){const C=x.label,M=i.some(z=>z.id===C.id)?i:[...i,C],N=new Set(o);N.add(C.id),s(M),l(N),n&&n(M.filter(z=>N.has(z.id))),typeof window<"u"&&window.dispatchEvent(new CustomEvent("labels:refresh"))}}finally{d(!1)}}}async function p(v){if(r){d(!0);try{const y=await fetch(`/api/notes/${t}/labels/${v}`,{method:"DELETE",headers:{Authorization:`Bearer ${r}`}});if(!y.ok)throw new Error(await y.text());const b=new Set(o);b.delete(v),l(b),n&&n(i.filter(x=>b.has(x.id)))}finally{d(!1)}}}async function m(v){if(!(!r||!window.confirm("Delete this label? This will remove it from all notes and from the sidebar."))){d(!0);try{const b=await fetch(`/api/labels/${v}`,{method:"DELETE",headers:{Authorization:`Bearer ${r}`}});if(!b.ok)throw new Error(await b.text());const x=i.filter(S=>S.id!==v),C=new Set(o);C.delete(v),s(x),l(C),n&&n(x.filter(S=>C.has(S.id))),typeof window<"u"&&window.dispatchEvent(new CustomEvent("labels:refresh"))}finally{d(!1)}}}const g=f.jsx("div",{className:"image-dialog-backdrop",onPointerDown:v=>{v.target===v.currentTarget&&(v.preventDefault(),v.stopPropagation(),setTimeout(()=>e(),0))},onClick:v=>{v.target===v.currentTarget&&(v.preventDefault(),v.stopPropagation())},children:f.jsxs("div",{className:"image-dialog",role:"dialog","aria-modal":!0,style:{width:360},onPointerDown:v=>{v.stopPropagation()},onMouseDown:v=>{v.stopPropagation()},onClick:v=>{v.stopPropagation()},children:[f.jsxs("div",{className:"dialog-header",children:[f.jsx("strong",{children:"Labels"}),f.jsx("button",{className:"icon-close",onClick:e,children:"✕"})]}),f.jsxs("div",{className:"dialog-body",children:[f.jsxs("div",{style:{display:"flex",gap:8,marginBottom:8},children:[f.jsx("input",{value:a,onChange:v=>c(v.target.value),placeholder:"Create new label",className:"image-url-input"}),f.jsx("button",{className:"btn",onClick:async()=>{const v=a.trim();v&&(await h(v),c(""))},disabled:u,children:"Add"})]}),f.jsx("div",{children:i.length===0?f.jsx("div",{style:{color:"var(--muted)"},children:"No labels yet"}):i.map(v=>{const y=o.has(v.id);return f.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 0",justifyContent:"space-between"},children:[f.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,flex:1},children:[f.jsx("input",{type:"checkbox",checked:y,onChange:async()=>{y?await p(v.id):await h(v.id)}}),f.jsx("span",{children:v.name})]}),f.jsx("button",{className:"tiny",onClick:()=>m(v.id),title:"Delete label","aria-label":"Delete label",style:{color:"var(--danger, #d33)"},children:"✕"})]},v.id)})})]}),f.jsx("div",{className:"dialog-footer",children:f.jsx("button",{className:"btn",onClick:()=>{n&&n(i.filter(v=>o.has(v.id))),e()},children:"Close"})})]})});return typeof document<"u"?zn.createPortal(g,document.body):g}function Fs(t){if(!t)return;const e=t.replace("#",""),n=e.length===3?e.split("").map(m=>m+m).join(""):e;if(n.length!==6)return;const r=parseInt(n.slice(0,2),16)/255,i=parseInt(n.slice(2,4),16)/255,s=parseInt(n.slice(4,6),16)/255,o=m=>m<=.03928?m/12.92:Math.pow((m+.055)/1.055,2.4),l=o(r),a=o(i),c=o(s),u=.2126*l+.7152*a+.0722*c,d=(m,g)=>(Math.max(m,g)+.05)/(Math.min(m,g)+.05),h=d(1,u),p=d(0,u);return h>=p?"#ffffff":"#000000"}function El({note:t,onChange:e,openRequest:n,onOpenRequestHandled:r,dragHandleAttributes:i,dragHandleListeners:s}){var Pr;const o=w.useRef(null),l=w.useRef(null),a=w.useRef(null),c=w.useRef(null),u=w.useRef(null),d=w.useRef(null),h=(()=>{try{return Aw()}catch{return{effective:"dark"}}})(),[p,m]=w.useState(t.viewerColor||t.color||""),[g,v]=w.useState(t.viewerColor||t.color?Fs(t.viewerColor||t.color):void 0),[y,b]=w.useState(!1),[x,C]=w.useState(t.images||[]),[S,M]=w.useState(3),[N,z]=w.useState(t.items||[]),[ee,L]=w.useState(t.title||"");B.useEffect(()=>{try{const I=(t.images||[]).map(H=>({id:Number(H.id),url:String(H.url)}));C(I)}catch{}},[t.id,t.images]);function q(I){try{e==null||e({type:"images",noteId:t.id,images:I})}catch{}}function X(I){try{e==null||e({type:"color",noteId:t.id,color:I||""})}catch{}}function ye(I){C(H=>{const K=I(H);try{setTimeout(()=>q(K),0)}catch{}return K})}const[Ce,Te]=w.useState(!1),[se,he]=w.useState([]),[J,me]=w.useState(()=>(t.noteLabels||[]).map(I=>I.label).filter(I=>I&&typeof I.id=="number"&&typeof I.name=="string")),[ue,fe]=B.useState(()=>{try{const I=t.viewerCollections;return Array.isArray(I)?I.filter(H=>H&&typeof H.id=="number"&&typeof H.name=="string").map(H=>({id:Number(H.id),name:String(H.name),parentId:H.parentId==null?null:Number(H.parentId)})):[]}catch{return[]}}),[W,Le]=w.useState(!1),[Ye,Y]=w.useState(null),[Ze,Pt]=w.useState(!1),[it,St]=B.useState(null),[Mt,vt]=B.useState({}),[We,ce]=w.useState(!1),[Re,qe]=w.useState(!1),[It,et]=w.useState(!1),[kt,bt]=w.useState(!1),[Tt,Ue]=w.useState(!1),[nt,pt]=w.useState(!0),[Q,F]=B.useState(null),[ae,Se]=w.useState(!1);B.useEffect(()=>{try{const I=t.viewerCollections;if(!Array.isArray(I)){fe([]);return}const H=I.filter(K=>K&&typeof K.id=="number"&&typeof K.name=="string").map(K=>({id:Number(K.id),name:String(K.name),parentId:K.parentId==null?null:Number(K.parentId)}));fe(H)}catch{fe([])}},[t.id,t.viewerCollections]);const Pe=B.useMemo(()=>{try{const I=window.matchMedia;return!!(I&&(I("(pointer: coarse)").matches||I("(any-pointer: coarse)").matches))}catch{return!1}},[]),D=Pe?"center":"flex-start",G=B.useCallback(()=>{t.type==="CHECKLIST"||t.items&&t.items.length?bt(!0):Ue(!0)},[t.type,t.items]),de=B.useRef(0);B.useEffect(()=>{const I=Number(n||0);if(I&&I!==de.current){de.current=I,G();try{r&&r(Number(t.id))}catch{}}},[n,G,r,t.id]);const ve=B.useCallback(I=>{if(!I)return!1;try{return!!I.closest('button, a, input, textarea, select, [contenteditable="true"], [role="button"], .more-menu, .dropdown, .color-palette')}catch{return!1}},[]),$e=B.useCallback((I=!1)=>{c.current==null&&(c.current=requestAnimationFrame(()=>{c.current=null;const H=l.current;if(H)try{if(!(H.scrollHeight>H.clientHeight+1)){H.style.maxHeight&&(H.style.maxHeight=""),u.current=null,d.current=null;return}const oe=H.style.maxHeight;I&&oe&&(H.style.maxHeight="",H.getBoundingClientRect());const U=H.clientHeight;if(!Number.isFinite(U)||U<=0){I&&oe&&(H.style.maxHeight=oe);return}let k=0;const V=N&&N.length>0?H.querySelector(".note-item-text")??H:H,pe=parseFloat(getComputedStyle(V).lineHeight||"0");if(Number.isFinite(pe)&&pe>0&&(k=pe),!Number.isFinite(k)||k<12){oe&&(H.style.maxHeight=oe);return}if(I&&u.current!=null&&d.current!=null&&Math.abs(u.current-k)<.5&&Math.abs(d.current-U)<.5)return;const tt=U%k;if(tt<2||k-tt<2){I&&oe&&(H.style.maxHeight=oe);return}const Bt=Math.max(k,Math.floor(U-tt));H.style.maxHeight=`${Bt}px`,u.current=k,d.current=U}catch{}}))},[N]);B.useEffect(()=>{const I=l.current;if(!I)return;const H=()=>{try{const k=I.scrollHeight>I.clientHeight+1;Se(k)}catch{}},K=requestAnimationFrame(()=>{H(),$e(!0)});let oe=null;try{oe=new ResizeObserver(()=>{H(),$e()}),oe.observe(I)}catch{}const U=()=>$e(!0);return window.addEventListener("notes-grid:recalc",U),window.addEventListener("resize",U),()=>{try{cancelAnimationFrame(K)}catch{}try{oe&&oe.disconnect()}catch{}try{window.removeEventListener("notes-grid:recalc",U)}catch{}try{window.removeEventListener("resize",U)}catch{}if(c.current!=null){try{cancelAnimationFrame(c.current)}catch{}c.current=null}}},[t.id,ee,N.length,nt,Q,t.body,x.length,J.length,$e]),B.useEffect(()=>{const I=a.current;if(!I)return;const H=6,K=()=>{try{const k=getComputedStyle(document.documentElement).getPropertyValue("--image-thumb-size")||"",V=Math.max(24,parseInt(String(k).trim(),10)||96),pe=I.clientWidth||0,tt=Math.max(1,Math.floor((pe+H)/(V+H)));M(tt)}catch{}};K();let oe=null;try{oe=new ResizeObserver(()=>K()),oe.observe(I)}catch{}return window.addEventListener("resize",K),window.addEventListener("notes-grid:recalc",K),()=>{try{oe&&oe.disconnect()}catch{}window.removeEventListener("resize",K),window.removeEventListener("notes-grid:recalc",K)}},[]);const Ve=w.useRef(null),{token:Ne,user:Je}=Sr();B.useEffect(()=>{const I=H=>{try{const K=H,oe=(K==null?void 0:K.detail)||{};if(oe!=null&&oe.invalidateAll){vt({});return}const U=Array.isArray(oe==null?void 0:oe.ids)?oe.ids:Number.isFinite(Number(oe==null?void 0:oe.id))?[Number(oe.id)]:[];if(!U.length)return;vt(k=>{const V={...k};for(const pe of U)try{delete V[Number(pe)]}catch{}return V})}catch{}};try{window.addEventListener("collections:changed",I)}catch{}return()=>{try{window.removeEventListener("collections:changed",I)}catch{}}},[]);const At=B.useMemo(()=>{try{const I=ue.map(H=>Number(H.id)).filter(H=>Number.isFinite(H));return it!=="collections"?"":I.join(",")}catch{return""}},[ue,it]);B.useEffect(()=>{if(!Ne||!ue.length)return;const I=At?At.split(",").map(oe=>Number(oe)).filter(oe=>Number.isFinite(oe)):[];if(!I.length)return;let H=!1;const K=new AbortController;return(async()=>{try{const oe=I.filter(V=>!Mt[V]);if(!oe.length)return;const U=await Promise.all(oe.map(async V=>{var pe,tt;try{const Bt=await fetch(`/api/collections/${V}/breadcrumb`,{headers:{Authorization:Ne?`Bearer ${Ne}`:""},signal:K.signal});if(!Bt.ok)throw new Error(await Bt.text());const Kt=await Bt.json(),sn=(Array.isArray(Kt==null?void 0:Kt.breadcrumb)?Kt.breadcrumb:[]).map(A=>String((A==null?void 0:A.name)||"")).filter(Boolean).join(" / ");return[V,sn||((pe=ue.find(A=>Number(A.id)===V))==null?void 0:pe.name)||String(V)]}catch{return[V,((tt=ue.find(Bt=>Number(Bt.id)===V))==null?void 0:tt.name)||String(V)]}}));if(H)return;const k={};for(const[V,pe]of U)k[Number(V)]=String(pe||"");vt(V=>({...V,...k}))}catch{}})(),()=>{H=!0;try{K.abort()}catch{}}},[Ne,ue,At,Mt]);const rt=B.useMemo(()=>new Fi,[t.id]),Wt=B.useRef(null),Rt=B.useRef(null);B.useEffect(()=>{const I=`note-${t.id}`,K=`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/collab`,oe=new gf(K,I,rt);Wt.current=oe;const U=rt.getArray("checklist");Rt.current=U;const k=()=>{try{if(U.length===0)return;const V=U.toArray().map(pe=>({id:typeof pe.get("id")=="number"?Number(pe.get("id")):void 0,content:String(pe.get("content")||""),checked:!!pe.get("checked"),indent:Number(pe.get("indent")||0)}));z(V)}catch{}};return U.observeDeep(k),oe.on("sync",V=>{V&&k()}),()=>{try{U.unobserveDeep(k)}catch{}try{oe.destroy()}catch{}}},[t.id,rt]),B.useEffect(()=>{if(t.type!=="TEXT"){F(null);return}let I=null;try{I=new ug({extensions:[ta.configure({heading:{levels:[1,2,3]}}),TR.configure({openOnClick:!1,autolink:!0}),Mc.configure({types:["heading","paragraph"]}),_g.configure({document:rt})],content:""});const H=()=>{try{const U=(I==null?void 0:I.getHTML())||"",k=Sa.sanitize(U,{USE_PROFILES:{html:!0}});F(k)}catch{}};I.on("update",H);const K=Wt.current,oe=U=>{U&&H()};return K==null||K.on("sync",oe),()=>{try{I==null||I.destroy()}catch{}try{K==null||K.off("sync",oe)}catch{}}}catch{}},[t.id,t.type,rt]);function dn(){const I=t.body||"",H=U=>U.replace(/&/g,"&").replace(//g,">"),K=(U,k)=>!k||!k.length?H(U):k.reduce((V,pe)=>{var tt;switch(pe.type){case"bold":return`${V}`;case"italic":return`${V}`;case"underline":return`${V}`;case"link":{const Bt=typeof((tt=pe.attrs)==null?void 0:tt.href)=="string"?pe.attrs.href:"#";return`${V}`}default:return V}},H(U)),oe=(U,k=!1)=>{var tt;if(!U)return"";if(Array.isArray(U))return U.map(Bt=>oe(Bt,k)).join("");const V=U.type;if(V==="text")return K(U.text||"",U.marks);if(V==="hardBreak")return"
    ";if((V==="paragraph"||V==="heading")&&(!U.content||U.content.length===0))return k?"":"

    ";const pe=U.content?oe(U.content,V==="listItem"):"";switch(V){case"paragraph":return`

    ${pe}

    `;case"heading":{const Bt=Math.min(6,Math.max(1,Number(((tt=U.attrs)==null?void 0:tt.level)||1)));return`${pe}`}case"bulletList":return`
      ${pe}
    `;case"orderedList":return`
      ${pe}
    `;case"listItem":return`
  • ${pe.replace(/^

    |<\/p>$/g,"")}

  • `;case"blockquote":return`
    ${pe}
    `;case"codeBlock":return`
    ${H(U.textContent||"")}
    `;default:return pe}};try{const U=JSON.parse(I),k=oe(U);return Sa.sanitize(k,{USE_PROFILES:{html:!0}})}catch{const U=H(I).replace(/\n/g,"
    ");return Sa.sanitize(`

    ${U}

    `)}}B.useEffect(()=>{const I=t.viewerColor||t.color||"";m(I||""),v(I?Fs(I):void 0)},[t.id,t.viewerColor,t.color]),B.useEffect(()=>{me((t.noteLabels||[]).map(I=>I.label).filter(I=>I&&typeof I.id=="number"&&typeof I.name=="string"))},[t.noteLabels]),B.useEffect(()=>{L(t.title||"")},[t.title]),B.useEffect(()=>{C((t.images||[]).map(I=>({id:Number(I.id),url:String(I.url)})))},[t.images]),B.useEffect(()=>{try{const I=(t.collaborators||[]).map(H=>{const K=H&&(H.user||{});if(K&&typeof K.id=="number"&&typeof K.email=="string"){const oe=typeof K.userImageUrl=="string"?String(K.userImageUrl):typeof H.userImageUrl=="string"?String(H.userImageUrl):void 0;return{collabId:Number(H.id),userId:Number(K.id),email:String(K.email),name:typeof K.name=="string"?String(K.name):void 0,userImageUrl:oe}}return null}).filter(Boolean);he(I)}catch{}},[t.collaborators]),B.useRef(null),B.useRef(!1);async function Dt(I){const H=I||"";try{const K=await fetch(`/api/notes/${t.id}/prefs`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:Ne?`Bearer ${Ne}`:""},body:JSON.stringify({color:H})});if(!K.ok)throw new Error(await K.text())}catch(K){console.error("Failed to save color preference",K),window.alert("Failed to save color preference")}H?(m(H),v(Fs(H))):(m(""),v("var(--muted)"));try{X(H)}catch{}ce(!1)}function Lt(I){qe(!1),I&&(async()=>{try{const H=await fetch(`/api/notes/${t.id}/images`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:Ne?`Bearer ${Ne}`:""},body:JSON.stringify({url:I})});if(!H.ok)throw new Error(await H.text());const oe=(await H.json()).image||null;oe&&oe.id&&oe.url&&ye(U=>U.some(V=>Number(V.id)===Number(oe.id))?U:[...U,{id:Number(oe.id),url:String(oe.url)}])}catch(H){console.error("Failed to attach image",H),ye(K=>K.some(U=>String(U.url)===String(I))?K:[...K,{id:Date.now(),url:I}]),window.alert("Failed to attach image to server; showing locally")}})()}async function tn(I,H){const K=Rt.current;if(K){const oe=K.toArray().findIndex(U=>typeof U.get("id")=="number"?Number(U.get("id"))===I:!1);if(oe>=0){const U=K.get(oe);if(U.set("checked",H),Number(U.get("indent")||0)===0)for(let V=oe+1;V0)pe.set("checked",H);else break}return}}try{const oe=await fetch(`/api/notes/${t.id}/items/${I}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Ne}`},body:JSON.stringify({checked:H})});if(!oe.ok)throw new Error(await oe.text());z(U=>U.map(k=>k.id===I?{...k,checked:H}:k))}catch(oe){console.error(oe),window.alert("Failed to update checklist item — please try again.")}}function te(I){et(!1),I&&window.alert(`Reminder set (UI-only): ${I}`)}function re(){const I=!y;b(I),fetch(`/api/notes/${t.id}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:Ne?`Bearer ${Ne}`:""},body:JSON.stringify({archived:I})}).then(()=>e&&e()).catch(H=>{console.error(H),window.alert("Failed to archive note")})}async function je(){var I;try{const H=typeof((I=t.owner)==null?void 0:I.id)=="number"?Number(t.owner.id):void 0,K=Je&&Je.id?Number(Je.id):void 0;if(H&&K&&H!==K){const U=se.find(k=>typeof k.userId=="number"&&k.userId===K);if(U&&typeof U.collabId=="number"){const k=await fetch(`/api/notes/${t.id}/collaborators/${U.collabId}`,{method:"DELETE",headers:{Authorization:Ne?`Bearer ${Ne}`:""}});if(!k.ok)throw new Error(await k.text());e&&e();return}window.alert("You are not the owner and could not find your collaborator entry to remove.");return}const oe=await fetch(`/api/notes/${t.id}`,{method:"DELETE",headers:{Authorization:Ne?`Bearer ${Ne}`:""}});if(!oe.ok)throw new Error(await oe.text());e&&e()}catch(H){console.error(H),window.alert("Failed to delete or leave note")}}const[Xe,ge]=w.useState(!1);function Ae(){ge(!0)}async function ze(){try{const I=(N||[]).map((K,oe)=>({id:K.id,content:K.content,checked:!1,ord:typeof K.ord=="number"?K.ord:oe,indent:typeof K.indent=="number"?K.indent:0}));z(I);const H=await fetch(`/api/notes/${t.id}/items`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:Ne?`Bearer ${Ne}`:""},body:JSON.stringify({items:I})});if(!H.ok)throw new Error(await H.text())}catch(I){console.error(I),window.alert("Failed to uncheck all items")}}async function lt(){try{const I=(N||[]).map((K,oe)=>({id:K.id,content:K.content,checked:!0,ord:typeof K.ord=="number"?K.ord:oe,indent:typeof K.indent=="number"?K.indent:0}));z(I);const H=await fetch(`/api/notes/${t.id}/items`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:Ne?`Bearer ${Ne}`:""},body:JSON.stringify({items:I})});if(!H.ok)throw new Error(await H.text())}catch(I){console.error(I),window.alert("Failed to check all items")}}function $t(I){he(H=>H.find(K=>K.userId===I.id)?H:[...H,{userId:I.id,email:I.email,name:I.name,userImageUrl:I.userImageUrl}]),Te(!1),(async()=>{try{const H=await fetch(`/api/notes/${t.id}/collaborators`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:Ne?`Bearer ${Ne}`:""},body:JSON.stringify({email:I.email})});if(!H.ok)throw new Error(await H.text());const K=await H.json(),oe=K&&(K.collaborator||null);oe&&typeof oe.id=="number"&&he(U=>U.map(k=>k.userId===I.id?{...k,collabId:Number(oe.id)}:k))}catch(H){console.error("Failed to add collaborator",H),window.alert("Failed to add collaborator"),he(K=>K.filter(oe=>oe.userId!==I.id))}})()}async function wt(I){try{const H=await fetch(`/api/notes/${t.id}/collaborators/${I}`,{method:"DELETE",headers:{Authorization:Ne?`Bearer ${Ne}`:""}});if(!H.ok)throw new Error(await H.text());he(K=>K.filter(oe=>oe.collabId!==I)),e&&e()}catch(H){console.error("Failed to remove collaborator",H),window.alert("Failed to remove collaborator")}}async function Jt(I){try{const H=await fetch(`/api/notes/${t.id}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:Ne?`Bearer ${Ne}`:""},body:JSON.stringify({cardSpan:I})});if(!H.ok)throw new Error(await H.text());try{window.dispatchEvent(new Event("notes-grid:recalc"))}catch{}e&&e()}catch(H){console.error("Failed to set card width",H),window.alert("Failed to set card width")}}const _t=(()=>{const I=(p||"").toLowerCase().trim(),H=new Set(["#1e1e1e","#121212","#181818","#1c1c1c","#161616"]),K=new Set(["#ffffff","#fff"]);return h.effective==="light"&&H.has(I)||h.effective==="dark"&&K.has(I)?"":p})(),fn=_t?Fs(_t):void 0,bn=fn==="#ffffff"||fn==="var(--muted)"?"rgba(0,0,0,0.12)":"rgba(255,255,255,0.06)",nn=[];try{const I=Je&&Je.id?Number(Je.id):void 0,H=t.owner||null;if(H&&typeof H.id=="number"&&H.id!==I){const K=typeof H.name=="string"&&H.name?H.name:String(H.email||"").split("@")[0];nn.push({key:`owner-${H.id}`,userId:Number(H.id),name:K,email:String(H.email||""),userImageUrl:typeof H.userImageUrl=="string"?String(H.userImageUrl):void 0})}for(const K of se)if(typeof K.userId=="number"&&K.userId!==I){const oe=K.name&&K.name.length?K.name:String(K.email).split("@")[0];nn.push({key:K.collabId||`u-${K.userId}`,userId:Number(K.userId),name:oe,email:K.email,userImageUrl:K.userImageUrl})}}catch{}const rn={background:_t||void 0,color:fn||void 0,opacity:y?.6:1,position:"relative","--chip-bg":bn};return _t&&(rn["--checkbox-bg"]=_t,rn["--checkbox-border"]=Fs(_t),rn["--checkbox-stroke"]=Fs(_t),rn["--checkbox-checked-bg"]=_t,rn["--checkbox-checked-mark"]=Fs(_t)),f.jsxs("article",{ref:I=>{o.current=I},className:`note-card${J.length>0?" has-labels":""}${ue.length>0?" has-collections":""}${N&&N.length>0?" has-checklist":""}`,style:rn,...ee?{}:i||{},...ee?{}:(()=>{const I=s||{},{onKeyDown:H,...K}=I;return K})(),"data-clipped":ae?"1":void 0,onClick:I=>{const H=I.target;ve(H)||G()},children:[f.jsx("input",{ref:Ve,type:"file",accept:"image/*",style:{display:"none"}}),ee&&f.jsx("div",{className:"note-title",...i||{},...(()=>{const I=s||{},{onKeyDown:H,...K}=I;return K})(),style:{cursor:"pointer"},onClick:()=>{G()},role:"button",tabIndex:0,onKeyDown:I=>{try{const H=s==null?void 0:s.onKeyDown;typeof H=="function"&&H(I)}catch{}I.defaultPrevented||(I.key==="Enter"||I.key===" ")&&(I.preventDefault(),G())},children:ee}),(()=>{if(!(nn.length>0||J.length>0||ue.length>0))return null;const H=`note-meta-panel-${Number(t.id)}`,K=ue.map(U=>({...U,path:Mt[Number(U.id)]||String(U.name||"")})).sort((U,k)=>String(U.path).localeCompare(String(k.path))),oe=()=>{Pe||St(null)};return f.jsxs("div",{className:`note-meta${it?" is-expanded":""}`,onPointerDown:U=>{U.stopPropagation()},onClick:U=>{U.stopPropagation()},onMouseLeave:oe,onBlurCapture:U=>{const k=U.relatedTarget;k&&U.currentTarget.contains(k)||St(null)},children:[f.jsxs("div",{className:"note-meta-bar",children:[nn.length>0&&f.jsxs("button",{type:"button",className:`chip chip--meta${it==="collab"?" is-active":""}`,"aria-expanded":it==="collab","aria-controls":H,title:"Collaborators",onMouseEnter:()=>{Pe||St("collab")},onFocus:U=>{var k,V;try{if(!((V=(k=U.currentTarget)==null?void 0:k.matches)==null?void 0:V.call(k,":focus-visible")))return}catch{}St("collab")},onClick:U=>{U.stopPropagation(),St(k=>k==="collab"?null:"collab")},children:[f.jsx(Xs,{icon:x9,className:"meta-fa-icon"}),f.jsx("span",{children:nn.length})]}),J.length>0&&f.jsxs("button",{type:"button",className:`chip chip--meta${it==="labels"?" is-active":""}`,"aria-expanded":it==="labels","aria-controls":H,title:"Labels",onMouseEnter:()=>{Pe||St("labels")},onFocus:U=>{var k,V;try{if(!((V=(k=U.currentTarget)==null?void 0:k.matches)==null?void 0:V.call(k,":focus-visible")))return}catch{}St("labels")},onClick:U=>{U.stopPropagation(),St(k=>k==="labels"?null:"labels")},children:[f.jsx(Xs,{icon:S9,className:"meta-fa-icon"}),f.jsx("span",{children:J.length})]}),ue.length>0&&f.jsxs("button",{type:"button",className:`chip chip--meta chip--meta-collections${it==="collections"?" is-active":""}`,"aria-expanded":it==="collections","aria-controls":H,title:`${ue.length} collections`,onMouseEnter:()=>{Pe||St("collections")},onFocus:U=>{var k,V;try{if(!((V=(k=U.currentTarget)==null?void 0:k.matches)==null?void 0:V.call(k,":focus-visible")))return}catch{}St("collections")},onClick:U=>{U.stopPropagation(),St(k=>k==="collections"?null:"collections")},children:[f.jsx(Xs,{icon:k9,className:"meta-fa-icon"}),f.jsx("span",{children:ue.length})]})]}),f.jsxs("div",{id:H,className:`note-meta-panel${it?" is-open":""}`,role:"region","aria-label":"Note metadata",children:[it==="collab"&&f.jsx("div",{className:"collab-chips","aria-label":"Collaborators",children:nn.map(U=>{const k=(Je==null?void 0:Je.chipDisplayMode)||"image+text",V=(k==="image"||k==="image+text")&&!!U.userImageUrl,pe=k==="text"||k==="image+text";return f.jsxs("button",{type:"button",className:"chip",title:U.email,style:{display:"inline-flex",alignItems:"center",gap:6},onClick:tt=>{tt.stopPropagation();try{e==null||e({type:"filter:collaborator",noteId:Number(t.id),userId:Number(U.userId),name:String(U.name||"")})}catch{}},children:[V?f.jsx("img",{src:U.userImageUrl,alt:"",style:{width:18,height:18,borderRadius:"50%",objectFit:"cover"}}):null,pe?f.jsx("span",{children:U.name}):null]},U.key)})}),it==="labels"&&f.jsx("div",{className:"label-chips","aria-label":"Labels",children:J.map(U=>f.jsx("button",{type:"button",className:"chip",onClick:k=>{k.stopPropagation();try{e==null||e({type:"filter:labels",noteId:Number(t.id),labelId:Number(U.id),labelName:String(U.name||"")})}catch{}},children:U.name},U.id))}),it==="collections"&&f.jsx("div",{className:"note-collections","aria-label":"Collections",children:f.jsx("div",{className:"note-collections-list",role:"list",children:K.map(U=>f.jsx("button",{type:"button",className:"chip note-collection-chip",title:U.path,onClick:k=>{k.stopPropagation();try{e==null||e({type:"filter:collection",noteId:Number(t.id),collectionId:Number(U.id),collectionName:String(U.name||"")})}catch{}},children:U.path},U.id))})})]})]})})(),f.jsx("div",{className:"note-body",ref:l,onClick:()=>{G()},children:N&&N.length>0?f.jsxs("div",{children:[f.jsx("div",{className:"note-items-list",children:N.filter(I=>!I.checked).map((I,H)=>f.jsxs("div",{className:"note-item",style:{display:"flex",gap:8,alignItems:D,marginLeft:(I.indent||0)*16},children:[f.jsx("button",{className:`note-checkbox ${I.checked?"checked":""}`,type:"button",onClick:K=>{K.stopPropagation(),tn(I.id,!I.checked)},"aria-pressed":!!I.checked,style:{background:"var(--checkbox-bg)",border:"2px solid var(--checkbox-border)",color:"var(--checkbox-stroke)"},children:I.checked&&f.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:f.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})}),f.jsx("div",{className:"note-item-text",children:f.jsx("div",{className:"rt-html",dangerouslySetInnerHTML:{__html:Sa.sanitize(String(I.content||""),{USE_PROFILES:{html:!0}})}})})]},typeof I.id=="number"?I.id:`i-${H}`))}),N.some(I=>I.checked)&&f.jsx("div",{style:{marginTop:6},children:f.jsx("button",{className:"btn completed-toggle",onClick:I=>{I.stopPropagation(),pt(H=>!H)},"aria-expanded":nt,"aria-controls":`completed-${t.id}`,children:f.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[f.jsx("span",{style:{transform:nt?"rotate(90deg)":"rotate(0deg)",display:"inline-block"},children:"▸"}),f.jsxs("span",{children:[N.filter(I=>I.checked).length," completed items"]})]})})}),nt&&N.some(I=>I.checked)&&f.jsx("div",{className:"note-items-list",style:{marginTop:6},children:N.filter(I=>I.checked).map((I,H)=>f.jsxs("div",{className:"note-item completed",style:{display:"flex",gap:8,alignItems:D,marginLeft:(I.indent||0)*16,opacity:.7},children:[f.jsx("button",{className:`note-checkbox ${I.checked?"checked":""}`,type:"button",onClick:K=>{K.stopPropagation(),tn(I.id,!I.checked)},"aria-pressed":!!I.checked,style:{background:"var(--checkbox-bg)",border:"2px solid var(--checkbox-border)",color:"var(--checkbox-stroke)"},children:I.checked&&f.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:f.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})}),f.jsx("div",{className:"note-item-text",style:{textDecoration:"line-through"},children:f.jsx("div",{className:"rt-html",dangerouslySetInnerHTML:{__html:Sa.sanitize(String(I.content||""),{USE_PROFILES:{html:!0}})}})})]},`c-${typeof I.id=="number"?I.id:H}`))})]}):Q||t.body?f.jsx("div",{className:"note-html",dangerouslySetInnerHTML:{__html:Q||dn()}}):null}),x&&x.length>0&&f.jsx("div",{className:"note-images",ref:a,children:(()=>{const I=Math.max(1,S)*3,H=x.slice(0,Math.min(x.length,I)),K=Math.max(0,x.length-I);return H.map((oe,U)=>f.jsxs("button",{className:"note-image",style:{padding:0,border:"none",background:"transparent",cursor:"pointer"},onClick:()=>{G()},children:[f.jsx("img",{src:oe.url,alt:"note image"}),K>0&&U===H.length-1&&f.jsxs("span",{className:"note-image-moreOverlay","aria-label":`${K} more images`,children:["+",K," more"]})]},oe.id))})()}),f.jsx("div",{className:"footer-hover-zone","aria-hidden":!0}),f.jsx("div",{className:"note-footer","aria-hidden":!1,children:f.jsxs("div",{className:"note-actions",children:[f.jsx("button",{className:"tiny palette",onClick:()=>ce(!0),"aria-label":"Change color",title:"Change color",children:f.jsx(Xs,{icon:af,className:"palette-svg"})}),f.jsx("button",{className:"tiny",onClick:()=>et(!0),"aria-label":"Reminder",title:"Reminder",children:f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),f.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),f.jsx("button",{className:"tiny",onClick:()=>Te(!0),"aria-label":"Collaborators",title:"Collaborators",children:f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"}),f.jsx("path",{d:"M6 14c-1.66 0-3 1.34-3 3v1h9.5c-.2-.63-.5-1.23-.9-1.76C11.7 15.6 9.9 14 6 14z"}),f.jsx("path",{d:"M20 16v2h-2v2h-2v-2h-2v-2h2v-2h2v2z"})]})}),f.jsx("button",{className:"tiny",onClick:()=>qe(!0),"aria-label":"Add image",title:"Add image",children:f.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5C3.9 3 3 3.9 3 5v14h18zM8.5 13.5l2.5 3L14.5 12l4.5 7H5l3.5-5.5z"})})}),f.jsx("button",{className:"tiny",onClick:re,"aria-label":"Archive",title:"Archive",children:f.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M20.54 5.23L19.4 4H4.6L3.46 5.23 3 6v2h18V6l-.46-.77zM6 10v9h12V10H6zm3 2h6v2H9v-2z"})})}),f.jsx("button",{className:"tiny",onClick:I=>{I.stopPropagation(),Y({x:I.clientX,y:I.clientY}),Le(H=>!H)},"aria-label":"More",title:"More",children:"⋮"})]})}),W&&f.jsx(Jx,{anchorRef:o,anchorPoint:Ye,itemsCount:5,onClose:()=>Le(!1),onDelete:je,onMoveToCollection:()=>Pt(!0),onAddLabel:Ae,onUncheckAll:ze,onCheckAll:lt,onSetWidth:Jt}),Ze&&f.jsx(ZJ,{noteId:Number(t.id),onClose:()=>Pt(!1),onChanged:I=>{try{const H=Array.isArray(I)?I.map(K=>({id:Number(K.id),name:String(K.name||""),parentId:K.parentId==null?null:Number(K.parentId)})).filter(K=>Number.isFinite(K.id)&&K.name.length):[];fe(H)}catch{}try{e==null||e({type:"collections",noteId:Number(t.id),collections:I})}catch{}}}),Xe&&f.jsx(eG,{noteId:t.id,onClose:()=>ge(!1),onUpdated:I=>{me(I);try{e==null||e({type:"labels",noteId:t.id,labels:I})}catch{}}}),Ce&&f.jsx(kc,{onClose:()=>Te(!1),onSelect:$t,current:(()=>{const I=[],H=Je&&Je.id?Number(Je.id):void 0,K=t.owner||null;K&&typeof K.id=="number"&&K.id!==H&&I.push({userId:Number(K.id),email:String(K.email||""),name:typeof K.name=="string"?K.name:void 0,userImageUrl:typeof K.userImageUrl=="string"?String(K.userImageUrl):void 0});for(const oe of se)typeof oe.userId=="number"&&I.push({collabId:oe.collabId,userId:oe.userId,email:oe.email,name:oe.name,userImageUrl:oe.userImageUrl});return I})(),ownerId:typeof((Pr=t.owner)==null?void 0:Pr.id)=="number"?Number(t.owner.id):Je==null?void 0:Je.id,onRemove:wt}),We&&f.jsx(tf,{anchorRef:o,onPick:Dt,onClose:()=>ce(!1)}),Re&&f.jsx(rf,{onClose:()=>qe(!1),onAdd:Lt}),It&&f.jsx(nf,{onClose:()=>et(!1),onSet:te}),kt&&f.jsx(cJ,{note:{...t,items:N,images:x},noteBg:p,onColorChanged:I=>{try{const H=String(I||"");m(H),v(H?Fs(H):"var(--muted)"),X(H)}catch{}},onClose:()=>bt(!1),onSaved:({items:I,title:H})=>{z(I),L(H)},onImagesUpdated:I=>{ye(()=>I)},moreMenu:{onDelete:je,onAddLabel:Ae,onMoveToCollection:()=>Pt(!0),onUncheckAll:ze,onCheckAll:lt,onSetWidth:Jt}}),Tt&&f.jsx(XJ,{note:{...t,images:x},noteBg:p,onColorChanged:I=>{try{const H=String(I||"");m(H),v(H?Fs(H):"var(--muted)"),X(H)}catch{}},onClose:()=>Ue(!1),onSaved:({title:I,body:H})=>{L(I),t.body=H},onImagesUpdated:I=>{ye(()=>I)},moreMenu:{onDelete:je,onAddLabel:Ae,onMoveToCollection:()=>Pt(!0),onSetWidth:Jt}})]})}function jj(t){if(/^wss?:\/\//i.test(t))return t;const e=t.startsWith("/")?t:`/${t}`;return typeof window>"u"||!window.location?`ws://localhost${e}`:`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}${e}`}function tG({onCreated:t,openRequest:e,activeCollection:n}){const{token:r,user:i}=Sr(),[s,o]=w.useState(!1),[l,a]=w.useState("text"),[c,u]=w.useState(""),[d,h]=w.useState(""),[p,m]=w.useState(!1),g=gg({extensions:[ta.configure({heading:{levels:[1,2,3]}}),Mc.configure({types:["heading","paragraph"]}),bg,mn.create({name:"paragraphEnterFix",priority:1e3,addKeyboardShortcuts(){return{"Shift-Enter":()=>{const D=this.editor;return D.commands.splitBlock(),D.commands.setParagraph(),!0},"Mod-Enter":()=>{const D=this.editor;return D.commands.splitBlock(),D.commands.setParagraph(),!0}}}})],content:"",editorProps:{attributes:{class:"rt-editor"}}});function v(){try{const D=window.matchMedia;if(!D)return!1;const G=D("(pointer: coarse)").matches||D("(any-pointer: coarse)").matches,de=D("(max-width: 720px)").matches;return!!(G&&de)}catch{return!1}}const y=w.useRef("");if(!y.current)try{y.current=`take-note-${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{y.current=`take-note-${Math.random()}`}function b(D){if(!g)return;const G=g.state.selection;if(!G||!G.empty){g.chain().focus()[`toggle${D.charAt(0).toUpperCase()+D.slice(1)}`]().run();return}const de=G.$from;let ve=de.depth;for(;ve>0&&!de.node(ve).isBlock;)ve--;const $e=de.start(ve),Ve=de.end(ve),Ne=g.chain().focus().setTextSelection({from:$e,to:Ve});D==="bold"?Ne.toggleBold().run():D==="italic"?Ne.toggleItalic().run():Ne.toggleUnderline().run();try{g.chain().setTextSelection(G.from).run()}catch{}}const[,x]=w.useState(0);w.useEffect(()=>{if(!g)return;const D=()=>x(G=>G+1);return g.on("selectionUpdate",D),g.on("transaction",D),()=>{g.off("selectionUpdate",D),g.off("transaction",D)}},[g]);const C=w.useRef(!1),S=w.useRef(0),M=n&&Number.isFinite(Number(n.id))?Number(n.id):null,N=n&&typeof n.path=="string"?String(n.path):"",[z,ee]=w.useState(!1);w.useEffect(()=>{const D=Number((e==null?void 0:e.nonce)||0);if(!D||D===S.current)return;S.current=D;const G=(e==null?void 0:e.mode)||"text";a(G);try{C.current=!0}catch{}try{ee(M!=null)}catch{}o(!0),m(v()),G==="checklist"?(X(de=>de&&de.length?de:[{content:""}]),setTimeout(()=>ae(0),30)):requestAnimationFrame(()=>{try{g==null||g.commands.focus("end")}catch{}})},[e==null?void 0:e.nonce,e==null?void 0:e.mode,g]);const L=w.useRef(!1);w.useEffect(()=>{try{s&&!L.current&&(L.current=!0,window.dispatchEvent(new Event("freemannotes:editor-modal-open"))),!s&&L.current&&(L.current=!1,window.dispatchEvent(new Event("freemannotes:editor-modal-close")))}catch{}},[s]),w.useEffect(()=>{if(!s)return;const D=y.current,G=()=>{try{const de=et.current;if(de.showImageDialog){We(!1);return}if(de.showCollaborator){Mt(!1);return}if(de.showReminderPicker){it(!1);return}if(de.showPalette){Ze(!1);return}}catch{}try{nt()}catch{try{nt()}catch{}}};try{window.dispatchEvent(new CustomEvent("freemannotes:back/register",{detail:{id:D,onBack:G}}))}catch{}return()=>{try{window.dispatchEvent(new CustomEvent("freemannotes:back/unregister",{detail:{id:D}}))}catch{}}},[s]);const[q,X]=w.useState([]),[ye,Ce]=w.useState(!1),Te=w.useRef(null),se=w.useRef(null),he=w.useRef(null),J=w.useRef([]),[,me]=w.useState(0),ue=w.useRef(!1),[fe,W]=w.useState(""),[Le,Ye]=w.useState(void 0),[Y,Ze]=w.useState(!1),[Pt,it]=w.useState(!1),[St,Mt]=w.useState(!1),[vt,We]=w.useState(!1),[ce,Re]=w.useState(null),[qe,It]=w.useState([]),et=w.useRef({showPalette:!1,showReminderPicker:!1,showCollaborator:!1,showImageDialog:!1});w.useEffect(()=>{et.current={showPalette:Y,showReminderPicker:Pt,showCollaborator:St,showImageDialog:vt}},[Y,Pt,St,vt]);function kt(){var de;let D=he.current;if(D&&D.isFocused)return D;const G=typeof document<"u"&&((de=document.getSelection())==null?void 0:de.anchorNode)||null;if(G){const ve=J.current.find($e=>{var Ve;try{return!!($e&&((Ve=$e.view)!=null&&Ve.dom)&&$e.view.dom.contains(G))}catch{return!1}});ve&&(D=ve)}else{const ve=typeof document<"u"?document.activeElement:null;if(ve){const $e=J.current.find(Ve=>{try{return!!(Ve&&Ve.view&&Ve.view.dom&&(Ve.view.dom===ve||Ve.view.dom.contains(ve)))}catch{return!1}});$e&&(D=$e)}}if(!D||!(D!=null&&D.isFocused)){const ve=J.current.find($e=>!!($e&&$e.isFocused));ve&&(D=ve)}return D||null}function bt(D){var At;const G=kt();if(!G)return;const de=(At=G.state)==null?void 0:At.selection;if(!de||!de.empty){const rt=G.chain().focus();D==="bold"?rt.toggleBold().run():D==="italic"?rt.toggleItalic().run():rt.toggleUnderline().run();try{const Wt=de==null?void 0:de.from;requestAnimationFrame(()=>{try{const Rt=G.chain().focus();typeof Wt=="number"&&Rt.setTextSelection(Wt),Rt.run()}catch{}})}catch{}return}const ve=de.$from;let $e=ve.depth;for(;$e>0&&!ve.node($e).isBlock;)$e--;const Ve=ve.start($e),Ne=ve.end($e),Je=G.chain().focus().setTextSelection({from:Ve,to:Ne});D==="bold"?Je.toggleBold().run():D==="italic"?Je.toggleItalic().run():Je.toggleUnderline().run();try{G.chain().focus().setTextSelection(de.from).run()}catch{}try{const rt=de.from;requestAnimationFrame(()=>{var Wt,Rt;try{try{(Rt=(Wt=G.view)==null?void 0:Wt.focus)==null||Rt.call(Wt)}catch{}G.chain().focus().setTextSelection(rt).run()}catch{}})}catch{}try{me(rt=>rt+1)}catch{}}function Tt(D){var Wt,Rt;const G=kt();if(!G)return!1;const de=(Wt=G.state)==null?void 0:Wt.selection;if(!de)return!1;const ve=(((Rt=G.schema)==null?void 0:Rt.marks)||{})[D];if(!ve)return!1;const $e=de.$from;let Ve=$e.depth;for(;Ve>0&&!$e.node(Ve).isBlock;)Ve--;const Ne=$e.start(Ve),Je=$e.end(Ve);let At=!1,rt=!0;try{G.state.doc.nodesBetween(Ne,Je,dn=>{dn&&dn.isText&&(At=!0,ve.isInSet(dn.marks)||(rt=!1))})}catch{}return At&&rt}function Ue(){try{const D=!!c.trim(),G=!!fe,de=!!(ce||qe&&qe.length);if(l==="checklist"){const $e=(q||[]).some(Ve=>!!String(Ve.content||"").trim()||!!Ve.checked);return D||G||de||$e}const ve=!!((g==null?void 0:g.getText())||"").trim();return D||G||de||ve}catch{return!1}}function nt(){try{o(!1)}catch{}try{m(!1)}catch{}try{Ze(!1)}catch{}try{it(!1)}catch{}try{Mt(!1)}catch{}try{We(!1)}catch{}try{u(""),h(""),X([]),W(""),Re(null),It([])}catch{}try{g==null||g.commands.clearContent()}catch{}}w.useEffect(()=>{function D(de){var rt,Wt,Rt,dn,Dt;if(!s)return;if(C.current){C.current=!1;return}if(de.defaultPrevented)return;const ve=Te.current;if(!ve)return;const $e=de.target,Ve=(rt=document.querySelector(".palette-popover"))==null?void 0:rt.contains($e),Ne=(Wt=document.querySelector(".reminder-popover"))==null?void 0:Wt.contains($e),Je=(Rt=document.querySelector(".collab-modal"))==null?void 0:Rt.contains($e),At=(dn=document.querySelector(".image-dialog"))==null?void 0:dn.contains($e);if(!(Ve||Ne||Je||At)){try{if((((Dt=de.composedPath)==null?void 0:Dt.call(de))||[]).includes(ve))return}catch{}de.target instanceof Node&&ve.contains(de.target)||nt()}}function G(de){s&&de.key==="Escape"&&nt()}return document.addEventListener("click",D),document.addEventListener("keydown",G),()=>{document.removeEventListener("click",D),document.removeEventListener("keydown",G)}},[s]);function pt(D){if(!D)return;const G=D.replace("#",""),de=G.length===3?G.split("").map(Lt=>Lt+Lt).join(""):G;if(de.length!==6)return;const ve=parseInt(de.slice(0,2),16)/255,$e=parseInt(de.slice(2,4),16)/255,Ve=parseInt(de.slice(4,6),16)/255,Ne=Lt=>Lt<=.03928?Lt/12.92:Math.pow((Lt+.055)/1.055,2.4),Je=Ne(ve),At=Ne($e),rt=Ne(Ve),Wt=.2126*Je+.7152*At+.0722*rt,Rt=(Lt,tn)=>(Math.max(Lt,tn)+.05)/(Math.min(Lt,tn)+.05),dn=Rt(1,Wt),Dt=Rt(0,Wt);return dn>=Dt?"#ffffff":"#000000"}w.useEffect(()=>{Ye(fe?pt(fe):"var(--muted)")},[fe]);function Q(D,G){X(de=>de.map((ve,$e)=>$e===D?{...ve,content:G}:ve))}function F(D){X(G=>G.map((de,ve)=>ve===D?{...de,checked:!de.checked}:de))}function ae(D){setTimeout(()=>{const G=J.current[D];try{G&&G.chain().focus().run()}catch{}},30)}async function Se(){var D;Ce(!0);try{if(!r)throw new Error("Not authenticated");const G=l==="text"?(g==null?void 0:g.getJSON())||{}:{},de={title:c,body:null,type:l==="checklist"?"CHECKLIST":"TEXT",color:fe||null};l==="checklist"&&(de.items=q.map((Ne,Je)=>({content:Ne.content,ord:Je})));const ve=await fetch("/api/notes",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify(de)});if(!ve.ok)throw new Error(await ve.text());const $e=await ve.json(),Ve=(D=$e==null?void 0:$e.note)==null?void 0:D.id;if(Ve&&z&&M!=null)try{const Ne=await fetch(`/api/notes/${Ve}/collections`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({collectionId:M})});if(!Ne.ok)throw new Error(await Ne.text())}catch(Ne){console.warn("Created note but failed to add to collection",Ne);try{window.alert("Note created, but failed to add it to the current collection.")}catch{}}if(Ve&&l==="text")try{const Ne=new Fi,Je=`note-${Ve}`,At=new gf(jj("/collab"),Je,Ne),rt=new ug({extensions:[ta.configure({heading:{levels:[1,2,3]}}),Mc.configure({types:["heading","paragraph"]}),_g.configure({document:Ne})],content:""});await new Promise(Wt=>{At.on("sync",Rt=>{Rt&&Wt()})});try{rt==null||rt.commands.setContent(G)}catch{}await new Promise(Wt=>setTimeout(Wt,100));try{rt==null||rt.destroy()}catch{}try{At.destroy()}catch{}try{Ne.destroy()}catch{}try{await fetch(`/api/notes/${Ve}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({body:JSON.stringify(G),type:"TEXT"})})}catch{}}catch(Ne){console.warn("Failed to seed Yjs content for new note",Ne)}if(Ve&&qe.length)for(const Ne of qe)try{await fetch(`/api/notes/${Ve}/collaborators`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({email:Ne.email})})}catch{}if(Ve&&ce)try{await fetch(`/api/notes/${Ve}/images`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({url:ce})})}catch{}u(""),h(""),X([]),o(!1),W(""),Re(null),It([]);try{ee(M!=null)}catch{}g==null||g.commands.clearContent(),t&&t()}catch(G){console.error("Failed to create note",G),window.alert("Failed to create note")}finally{Ce(!1)}}if(!s)return f.jsx("div",{ref:Te,children:f.jsxs("div",{className:"take-note-bar",role:"button",tabIndex:0,onMouseDown:D=>{try{D.preventDefault()}catch{}try{D.stopPropagation()}catch{}C.current=!0;try{ee(M!=null)}catch{}a("text"),o(!0)},onClick:D=>{try{D.preventDefault()}catch{}try{D.stopPropagation()}catch{}C.current=!0;try{ee(M!=null)}catch{}a("text"),o(!0)},onKeyDown:D=>{if(D.key==="Enter"||D.key===" "){D.preventDefault(),C.current=!0;try{ee(M!=null)}catch{}a("text"),o(!0)}},children:[f.jsx("div",{style:{flex:1,padding:"10px 12px"},children:"Create a new note"}),f.jsx("div",{className:"checkbox-visual",onMouseDown:D=>{D.stopPropagation()},onClick:D=>{D.stopPropagation(),C.current=!0;try{ee(M!=null)}catch{}a("checklist"),X([{content:""}]),o(!0),ae(0)},"aria-label":"Start checklist",children:f.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:f.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})})]})});const Pe={};return fe&&(Pe.background=fe,Pe["--checkbox-bg"]=fe,Pe["--checkbox-border"]="#ffffff",Pe["--checkbox-checked-bg"]=fe,Pe["--checkbox-checked-mark"]="#ffffff",Pe["--editor-surface"]=fe),f.jsxs("div",{className:`take-note-expanded${p?" maximized":""}`,ref:Te,style:{padding:12,...Pe},children:[l==="text"?f.jsxs("div",{children:[f.jsxs("div",{className:"rt-sticky-header",children:[f.jsx("div",{style:{display:"flex",justifyContent:"flex-start"},children:f.jsx("input",{placeholder:"Title",value:c,onChange:D=>u(D.target.value),style:{fontSize:18,fontWeight:600,border:"none",background:"transparent",color:"inherit"}})}),f.jsxs("div",{className:"rt-toolbar",style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",marginTop:8,marginBottom:0,overflowX:"auto"},children:[f.jsx("button",{className:"tiny",onClick:()=>b("bold"),"aria-pressed":g==null?void 0:g.isActive("bold"),children:"B"}),f.jsx("button",{className:"tiny",onClick:()=>b("italic"),"aria-pressed":g==null?void 0:g.isActive("italic"),children:"I"}),f.jsx("button",{className:"tiny",onClick:()=>b("underline"),"aria-pressed":g==null?void 0:g.isActive("underline"),children:"U"}),f.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().toggleHeading({level:1}).run(),"aria-pressed":g==null?void 0:g.isActive("heading",{level:1}),children:"H1"}),f.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().toggleHeading({level:2}).run(),"aria-pressed":g==null?void 0:g.isActive("heading",{level:2}),children:"H2"}),f.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().toggleHeading({level:3}).run(),"aria-pressed":g==null?void 0:g.isActive("heading",{level:3}),children:"H3"}),f.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().toggleBulletList().run(),"aria-pressed":g==null?void 0:g.isActive("bulletList"),"aria-label":"Bulleted list",title:"Bulleted list",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("circle",{cx:"5",cy:"6",r:"1.5"}),f.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),f.jsx("circle",{cx:"5",cy:"12",r:"1.5"}),f.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),f.jsx("circle",{cx:"5",cy:"18",r:"1.5"}),f.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().toggleOrderedList().run(),"aria-pressed":g==null?void 0:g.isActive("orderedList"),"aria-label":"Numbered list",title:"Numbered list",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("text",{x:"3.5",y:"7",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"1."}),f.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),f.jsx("text",{x:"3.5",y:"13",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"2."}),f.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),f.jsx("text",{x:"3.5",y:"19",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"3."}),f.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().setTextAlign("left").run(),"aria-pressed":g==null?void 0:g.isActive({textAlign:"left"}),"aria-label":"Align left",title:"Align left",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("rect",{x:"4",y:"5",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"4",y:"9",width:"10",height:"2",rx:"1"}),f.jsx("rect",{x:"4",y:"13",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"4",y:"17",width:"8",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().setTextAlign("center").run(),"aria-pressed":g==null?void 0:g.isActive({textAlign:"center"}),"aria-label":"Align center",title:"Align center",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("rect",{x:"5",y:"5",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"7",y:"9",width:"10",height:"2",rx:"1"}),f.jsx("rect",{x:"5",y:"13",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"8",y:"17",width:"8",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().setTextAlign("right").run(),"aria-pressed":g==null?void 0:g.isActive({textAlign:"right"}),"aria-label":"Align right",title:"Align right",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("rect",{x:"6",y:"5",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"10",y:"9",width:"10",height:"2",rx:"1"}),f.jsx("rect",{x:"6",y:"13",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"12",y:"17",width:"8",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>g==null?void 0:g.chain().focus().setTextAlign("justify").run(),"aria-pressed":g==null?void 0:g.isActive({textAlign:"justify"}),"aria-label":"Justify",title:"Justify",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("rect",{x:"5",y:"5",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"5",y:"9",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"5",y:"13",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"5",y:"17",width:"14",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>m(D=>!D),"aria-label":"Toggle maximize",title:"Toggle maximize",children:"⤢"})]})]}),f.jsx("div",{onKeyDown:D=>{if(!(!g||!(D.ctrlKey||D.metaKey))&&g.isFocused)switch(D.key.toLowerCase()){case"b":D.preventDefault(),b("bold");break;case"i":D.preventDefault(),b("italic");break;case"u":D.preventDefault(),b("underline");break;case"l":D.preventDefault(),g.chain().focus().setTextAlign("left").run();break;case"r":D.preventDefault(),g.chain().focus().setTextAlign("right").run();break;case"e":D.preventDefault(),g.chain().focus().setTextAlign("center").run();break;case"j":D.preventDefault(),g.chain().focus().setTextAlign("justify").run();break}},children:f.jsx(Zd,{editor:g})})]}):f.jsxs("div",{children:[f.jsxs("div",{className:"rt-sticky-header",children:[f.jsx("div",{style:{display:"flex",justifyContent:"flex-start"},children:f.jsx("input",{placeholder:"Title",value:c,onChange:D=>u(D.target.value),style:{fontSize:18,fontWeight:600,border:"none",background:"transparent",color:"inherit"}})}),f.jsxs("div",{className:"rt-toolbar",style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",marginTop:8,marginBottom:0},onPointerDown:D=>D.preventDefault(),onPointerUp:D=>D.preventDefault(),children:[f.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:D=>{D.preventDefault(),D.stopPropagation(),ue.current=!0,bt("bold")},onPointerUp:D=>{D.preventDefault(),D.stopPropagation()},onMouseDownCapture:D=>{D.preventDefault(),D.stopPropagation()},onMouseUp:D=>D.preventDefault(),onClick:()=>{if(ue.current){ue.current=!1;return}bt("bold")},"aria-pressed":Tt("bold"),children:"B"}),f.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:D=>{D.preventDefault(),D.stopPropagation(),ue.current=!0,bt("italic")},onPointerUp:D=>{D.preventDefault(),D.stopPropagation()},onMouseDownCapture:D=>{D.preventDefault(),D.stopPropagation()},onMouseUp:D=>D.preventDefault(),onClick:()=>{if(ue.current){ue.current=!1;return}bt("italic")},"aria-pressed":Tt("italic"),children:"I"}),f.jsx("button",{className:"tiny",type:"button",tabIndex:-1,onPointerDownCapture:D=>{D.preventDefault(),D.stopPropagation(),ue.current=!0,bt("underline")},onPointerUp:D=>{D.preventDefault(),D.stopPropagation()},onMouseDownCapture:D=>{D.preventDefault(),D.stopPropagation()},onMouseUp:D=>D.preventDefault(),onClick:()=>{if(ue.current){ue.current=!1;return}bt("underline")},"aria-pressed":Tt("underline"),children:"U"})]})]}),f.jsxs("div",{style:{marginTop:8},children:[q.length===0&&f.jsx("div",{style:{marginBottom:8},children:f.jsx("button",{className:"btn",onPointerDown:D=>{D.preventDefault(),D.stopPropagation()},onMouseDown:D=>{D.preventDefault(),D.stopPropagation()},onClick:D=>{D.preventDefault(),D.stopPropagation(),X([{content:""}]),setTimeout(()=>ae(0),30)},children:"Add an item"})}),q.map((D,G)=>f.jsxs("div",{className:"checklist-item",draggable:!0,onDragStart:de=>{var ve;se.current=G,(ve=de.dataTransfer)==null||ve.setData("text/plain",String(G))},onDragOver:de=>de.preventDefault(),onDrop:de=>{de.preventDefault();const ve=se.current??parseInt(de.dataTransfer.getData("text/plain")||"-1",10),$e=G;ve>=0&&ve!==$e&&X(Ve=>{const Ne=[...Ve],[Je]=Ne.splice(ve,1);return Ne.splice($e,0,Je),Ne}),se.current=null},style:{display:"flex",gap:8,alignItems:"center"},children:[f.jsx("div",{className:"drag-handle",style:{width:20,cursor:"grab",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none"},"aria-hidden":!0,children:"≡"}),f.jsx("div",{className:"checkbox-visual",onClick:()=>F(G),"aria-hidden":!0,children:D.checked&&f.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:f.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round"})})}),f.jsx("div",{style:{flex:1},children:f.jsx(Lx,{value:D.content,onChange:de=>Q(G,de),onEnter:()=>{X(de=>{const ve=[...de];return ve.splice(G+1,0,{content:""}),ve}),ae(G+1)},onArrowUp:()=>ae(Math.max(0,G-1)),onArrowDown:()=>ae(Math.min(q.length-1,G+1)),onBackspaceEmpty:()=>{G>0&&(X(de=>{const ve=[...de];return ve.splice(G,1),ve}),ae(G-1))},onFocus:de=>{he.current=de,J.current[G]=de,me(ve=>ve+1)},placeholder:"",autoFocus:G===0})}),f.jsx("button",{className:"delete-item",onClick:de=>{de.stopPropagation(),X(ve=>{const $e=ve.filter((Ne,Je)=>Je!==G);if($e.length===0)return he.current=null,J.current=[],$e;const Ve=Math.max(0,Math.min(G-1,$e.length-1));return setTimeout(()=>ae(Ve),30),$e})},"aria-label":"Delete item",title:"Delete item",children:"✕"})]},G))]})]}),ce&&f.jsxs("div",{style:{marginTop:10,display:"flex",alignItems:"center",gap:10},children:[f.jsx("div",{className:"note-image",style:{width:96,height:72,flex:"0 0 auto"},children:f.jsx("img",{src:ce,alt:"selected",style:{width:"100%",height:"100%",objectFit:"cover",borderRadius:6,display:"block"}})}),f.jsx("div",{style:{flex:1,fontSize:13,opacity:.9},children:"1 image selected"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>Re(null),style:{padding:"6px 10px"},children:"Remove"})]}),f.jsxs("div",{className:"note-footer","aria-hidden":!1,style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:10,flexWrap:"wrap"},children:[f.jsxs("div",{style:{marginRight:"auto",display:"flex",flexDirection:"column",gap:8,minWidth:0,color:fe?Le:void 0},children:[!!M&&!!N&&f.jsxs("label",{className:"create-collection-toggle",title:N,children:[f.jsx("input",{type:"checkbox",checked:!!z,onChange:D=>ee(!!D.target.checked)}),f.jsx("span",{className:"create-collection-toggle__text",children:"Add to current collection:"}),f.jsx("span",{className:"create-collection-toggle__path",children:N})]}),f.jsxs("div",{className:"note-actions",style:{display:"inline-flex",gap:8},children:[f.jsx("button",{className:"tiny palette",onClick:()=>Ze(!0),"aria-label":"Change color",title:"Change color",children:f.jsx(Xs,{icon:af,className:"palette-svg"})}),f.jsx("button",{className:"tiny",onClick:()=>it(!0),"aria-label":"Reminder",title:"Reminder",children:f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),f.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),f.jsx("button",{className:"tiny",onClick:()=>Mt(!0),"aria-label":"Collaborators",title:"Collaborators",children:f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"}),f.jsx("path",{d:"M6 14c-1.66 0-3 1.34-3 3v1h9.5c-.2-.63-.5-1.23-.9-1.76C11.7 15.6 9.9 14 6 14z"}),f.jsx("path",{d:"M20 16v2h-2v2h-2v-2h-2v-2h2v-2h2v2z"})]})}),f.jsx("button",{className:"tiny",onClick:()=>We(!0),"aria-label":"Add image",title:"Add image",children:f.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5C3.9 3 3 3.9 3 5v14h18zM8.5 13.5l2.5 3L14.5 12l4.5 7H5l3.5-5.5z"})})})]})]}),f.jsx("button",{className:"btn",onClick:async()=>{nt()},children:"Cancel"}),f.jsx("button",{className:"btn",onClick:Se,disabled:ye||!Ue(),children:ye?"Saving...":"Save"})]}),Y&&f.jsx(tf,{anchorRef:Te,onPick:D=>{W(D)},onClose:()=>Ze(!1)}),Pt&&f.jsx(nf,{onClose:()=>it(!1),onSet:D=>{it(!1)}}),St&&f.jsx(kc,{onClose:()=>Mt(!1),onSelect:D=>{It(G=>G.find(de=>de.id===D.id)?G:[...G,D]),Mt(!1)},current:(()=>{const D=i&&i.id?Number(i.id):void 0;return qe.filter(G=>typeof G.id=="number"?G.id!==D:!0).map(G=>({userId:G.id,email:G.email}))})(),ownerId:i==null?void 0:i.id,onRemove:()=>{}}),vt&&f.jsx(rf,{onClose:()=>We(!1),onAdd:D=>Re(D||null)})]})}function nG({anchorRef:t,onClose:e,onDiscard:n}){const r=w.useRef(null),[i,s]=w.useState({position:"fixed",visibility:"hidden",left:0,top:0,zIndex:1e4});w.useLayoutEffect(()=>{const l=t==null?void 0:t.current,a=r.current;if(!a)return;const c=8,u=()=>{a.style.width="auto",a.style.height="auto";const h=Math.ceil(a.offsetWidth),p=Math.ceil(a.offsetHeight);return{w:h,h:p}};if(!l){const{w:h,h:p}=u();let m=Math.round(window.innerWidth-h-c),g=Math.round(window.innerHeight-p-c);mwindow.innerWidth-c&&(m=Math.max(c,window.innerWidth-h-c)),gwindow.innerHeight-c&&(g=Math.max(c,window.innerHeight-p-c)),s({position:"fixed",left:m,top:g,visibility:"visible",zIndex:1e4,width:`${h}px`,height:`${p}px`});return}const d=l.getBoundingClientRect();requestAnimationFrame(()=>{const{w:h,h:p}=u();let m=Math.round(d.right-h),g=Math.round(d.bottom-p);mwindow.innerWidth-c&&(m=Math.max(c,window.innerWidth-h-c)),gwindow.innerHeight-c&&(g=Math.max(c,window.innerHeight-p-c)),s({position:"fixed",left:m,top:g,visibility:"visible",zIndex:1e4,width:`${h}px`,height:`${p}px`})})},[t]),w.useLayoutEffect(()=>{function l(a){r.current&&(r.current.contains(a.target)||e())}return document.addEventListener("pointerdown",l),document.addEventListener("mousedown",l),()=>{document.removeEventListener("pointerdown",l),document.removeEventListener("mousedown",l)}},[e]);const o=f.jsx("div",{ref:r,className:"more-menu",style:i,role:"dialog","aria-label":"More options",children:f.jsx("button",{className:"more-item",onClick:()=>{n(),e()},children:"Discard"})});return zn.createPortal(o,document.body)}function rG({open:t,mode:e,onClose:n,onCreated:r,activeCollection:i}){const{token:s,user:o}=Sr();function l(){try{return`u${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`u${Math.random()}`}}const[a,c]=B.useState(""),[u,d]=B.useState([]),[h,p]=B.useState(""),[m,g]=B.useState(void 0),[v,y]=B.useState(!1),[b,x]=B.useState(!1),[C,S]=B.useState(!1),[M,N]=B.useState(!1),[z,ee]=B.useState(null),[L,q]=B.useState([]),X=i&&Number.isFinite(Number(i.id))?Number(i.id):null,ye=i&&typeof i.path=="string"?String(i.path):"",[Ce,Te]=B.useState(!1),[se,he]=B.useState(!1),J=B.useRef(null),me=B.useRef(null),[ue,fe]=B.useState(!1),W=gg({extensions:[ta.configure({heading:{levels:[1,2,3]}}),Mc.configure({types:["heading","paragraph"]}),bg,mn.create({name:"paragraphEnterFix",priority:1e3,addKeyboardShortcuts(){return{"Shift-Enter":()=>{const te=this.editor;return te.commands.splitBlock(),te.commands.setParagraph(),!0},"Mod-Enter":()=>{const te=this.editor;return te.commands.splitBlock(),te.commands.setParagraph(),!0}}}})],editorProps:{attributes:{class:"rt-editor"}},content:""}),Le=B.useRef({showPalette:!1,showReminderPicker:!1,showCollaborator:!1,showImageDialog:!1,showMore:!1});B.useEffect(()=>{Le.current={showPalette:v,showReminderPicker:b,showCollaborator:C,showImageDialog:M,showMore:ue}},[v,b,C,M,ue]);const Ye=B.useRef((()=>{try{return`mcreate-${Date.now().toString(36)}${Math.random().toString(36).slice(2,8)}`}catch{return`mcreate-${Math.random()}`}})());B.useEffect(()=>{if(t){window.dispatchEvent(new Event("freemannotes:editor-modal-open"));try{const te=Ye.current,re=()=>{try{const je=Le.current;if(je.showMore){fe(!1);return}if(je.showImageDialog){N(!1);return}if(je.showCollaborator){S(!1);return}if(je.showReminderPicker){x(!1);return}if(je.showPalette){y(!1);return}}catch{}try{Y()}catch{}};window.dispatchEvent(new CustomEvent("freemannotes:back/register",{detail:{id:te,onBack:re}}))}catch{}return()=>{try{window.dispatchEvent(new CustomEvent("freemannotes:back/unregister",{detail:{id:Ye.current}}))}catch{}window.dispatchEvent(new Event("freemannotes:editor-modal-close"))}}},[t]),B.useEffect(()=>{if(t){c(""),p(""),ee(null),q([]),y(!1),x(!1),S(!1),N(!1),fe(!1);try{Te(X!=null)}catch{}e==="checklist"?(d([{uid:l(),content:"",checked:!1,indent:0}]),window.setTimeout(()=>Ne(0),30)):(d([]),requestAnimationFrame(()=>{try{W==null||W.commands.focus("end")}catch{}}));try{W==null||W.commands.clearContent()}catch{}}},[t,e,W]),B.useEffect(()=>{g(h?dn(h):void 0)},[h]);function Y(){if(!se){try{de()}catch{}try{fe(!1)}catch{}try{y(!1)}catch{}try{x(!1)}catch{}try{S(!1)}catch{}try{N(!1)}catch{}try{W==null||W.commands.clearContent()}catch{}try{c(""),d([]),p(""),ee(null),q([])}catch{}n()}}function Ze(){try{const te=!!a.trim(),re=!!h,je=!!(z||L&&L.length);if(e==="checklist"){const ge=(u||[]).some(Ae=>!!String(Ae.content||"").trim()||!!Ae.checked);return te||re||je||ge}const Xe=!!((W==null?void 0:W.getText())||"").trim();return te||re||je||Xe}catch{return!1}}async function Pt(){var te;if(!se){he(!0);try{if(!s)throw new Error("Not authenticated");const re=e==="text"?(W==null?void 0:W.getJSON())||{}:{},je={title:a,body:null,type:e==="checklist"?"CHECKLIST":"TEXT",color:h||null};e==="checklist"&&(je.items=u.map((ze,lt)=>({content:ze.content,checked:!!ze.checked,indent:typeof ze.indent=="number"?ze.indent:0,ord:lt})));const Xe=await fetch("/api/notes",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify(je)});if(!Xe.ok)throw new Error(await Xe.text());const ge=await Xe.json(),Ae=(te=ge==null?void 0:ge.note)==null?void 0:te.id;if(Ae&&Ce&&X!=null)try{const ze=await fetch(`/api/notes/${Ae}/collections`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify({collectionId:X})});if(!ze.ok)throw new Error(await ze.text())}catch(ze){console.warn("Created note but failed to add to collection",ze);try{window.alert("Note created, but failed to add it to the current collection.")}catch{}}if(Ae&&e==="text")try{const ze=new Fi,lt=`note-${Ae}`,$t=new gf(jj("/collab"),lt,ze),wt=new ug({extensions:[ta.configure({heading:{levels:[1,2,3]}}),Mc.configure({types:["heading","paragraph"]}),_g.configure({document:ze})],content:""});await new Promise(Jt=>{$t.on("sync",_t=>{_t&&Jt()})});try{wt==null||wt.commands.setContent(re)}catch{}await new Promise(Jt=>setTimeout(Jt,100));try{wt==null||wt.destroy()}catch{}try{$t.destroy()}catch{}try{ze.destroy()}catch{}try{await fetch(`/api/notes/${Ae}`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify({body:JSON.stringify(re),type:"TEXT"})})}catch{}}catch(ze){console.warn("Failed to seed Yjs content for new note",ze)}if(Ae&&L.length)for(const ze of L)try{await fetch(`/api/notes/${Ae}/collaborators`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify({email:ze.email})})}catch{}if(Ae&&z)try{await fetch(`/api/notes/${Ae}/images`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify({url:z})})}catch{}try{W==null||W.commands.clearContent()}catch{}r(),n()}catch(re){console.error("Failed to create note",re),window.alert("Failed to create note")}finally{he(!1)}}}const it=B.useRef([]),[St,Mt]=B.useState(null),[vt,We]=B.useState(null),[ce,Re]=B.useState(null),qe=B.useRef(null),It=B.useRef({x:0,y:0}),et=B.useRef(null),kt=B.useRef(0),bt=B.useRef(null),Tt=B.useRef(0),Ue=B.useRef(null),nt=B.useRef(0),pt=B.useRef(null),Q=B.useMemo(()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(pointer: coarse)").matches}catch{return!1}},[]),F=B.useMemo(()=>{const te={directionLockPx:0,indentPx:16,ghostOverlapUpPct:.7,ghostOverlapDownPct:.7};return Q?te:{...te,directionLockPx:6}},[Q]);function ae(te,re){var Ae,ze;const je=re,Xe=Number(((Ae=te[re])==null?void 0:Ae.indent)||0);let ge=re+1;for(;geXe;)ge++;return[je,ge]}function Se(te,re,je){d(Xe=>{const ge=[...Xe||[]],Ae=ge.slice(te,re);ge.splice(te,re-te);let ze=je;return ze>te&&(ze=ze-(re-te)),ze<0&&(ze=0),ze>ge.length&&(ze=ge.length),ge.splice(ze,0,...Ae),ge})}function Pe(te,re){if(et.current!=="vertical"||St===null)return"";const[je,Xe]=ae(re,St);return vt===null||te>=je&&teXe-1&&te<=vt?"shift-up":"":St>vt&&te>=vt&&te{var ze,lt;Ue.current=null;const re=(ze=pt.current)==null?void 0:ze.querySelector(".dialog-body");if(!re)return;const je=re.getBoundingClientRect(),Xe=nt.current,ge=60,Ae=12;Xeje.bottom-ge&&(re.scrollTop+=Ae),(lt=bt.current)!=null&<.active&&et.current==="vertical"&&qe.current&&(Ue.current=window.requestAnimationFrame(te))};Ue.current=window.requestAnimationFrame(te)}function G(){Ue.current!=null&&(window.cancelAnimationFrame(Ue.current),Ue.current=null)}function de(){var te,re,je;if(G(),qe.current){try{qe.current.remove()}catch{}qe.current=null}try{(je=(re=(te=pt.current)==null?void 0:te.style)==null?void 0:re.removeProperty)==null||je.call(re,"--checklist-item-shift")}catch{}Mt(null),We(null),Re(null),bt.current=null,et.current=null,Tt.current=0}function ve(){d(te=>[...te||[],{uid:l(),content:"",checked:!1,indent:0}])}function $e(te,re){d(je=>(je||[]).map((Xe,ge)=>ge===te?{...Xe,content:re}:Xe))}function Ve(te){d(re=>{var ze;const je=[...re||[]],Xe=je[te];if(!Xe)return je;const ge=!Xe.checked,Ae=Number(Xe.indent||0);if(je[te]={...Xe,checked:ge},Ae===0)for(let lt=te+1;lt0;lt++)je[lt]={...je[lt],checked:ge};return je})}function Ne(te){window.setTimeout(()=>{const re=it.current[te];try{re&&re.chain().focus().run()}catch{}},30)}const Je=B.useRef(null),[,At]=B.useState(0);function rt(){var je;let te=Je.current;if(te&&te.isFocused)return te;const re=typeof document<"u"&&((je=document.getSelection())==null?void 0:je.anchorNode)||null;if(re){const Xe=it.current.find(ge=>{var Ae;try{return!!(ge&&((Ae=ge.view)!=null&&Ae.dom)&&ge.view.dom.contains(re))}catch{return!1}});Xe&&(te=Xe)}else{const Xe=typeof document<"u"?document.activeElement:null;if(Xe){const ge=it.current.find(Ae=>{try{return!!(Ae&&Ae.view&&Ae.view.dom&&(Ae.view.dom===Xe||Ae.view.dom.contains(Xe)))}catch{return!1}});ge&&(te=ge)}}if(!te||!(te!=null&&te.isFocused)){const Xe=it.current.find(ge=>!!(ge&&ge.isFocused));Xe&&(te=Xe)}return te||null}function Wt(te){var ze;const re=rt();if(!re)return;const je=(ze=re.state)==null?void 0:ze.selection;if(!je)return;if(!je.empty){const lt=re.chain().focus();te==="bold"?lt.toggleBold():te==="italic"?lt.toggleItalic():lt.toggleUnderline(),lt.run();try{At($t=>$t+1)}catch{}return}let Xe=je.from,ge=je.to;try{const lt=je.$from;let $t=lt.depth;for(;$t>0&&!lt.node($t).isBlock;)$t--;Xe=lt.start($t),ge=lt.end($t)}catch{}const Ae=re.chain().focus().setTextSelection({from:Xe,to:ge});te==="bold"?Ae.toggleBold():te==="italic"?Ae.toggleItalic():Ae.toggleUnderline(),Ae.run();try{re.chain().focus().setTextSelection(je.from).run()}catch{}try{At(lt=>lt+1)}catch{}}function Rt(te){var Jt,_t;const re=rt();if(!re)return!1;const je=(Jt=re.state)==null?void 0:Jt.selection;if(!je)return!1;const Xe=(((_t=re.schema)==null?void 0:_t.marks)||{})[te];if(!Xe)return!1;const ge=je.$from;let Ae=ge.depth;for(;Ae>0&&!ge.node(Ae).isBlock;)Ae--;const ze=ge.start(Ae),lt=ge.end(Ae);let $t=!1,wt=!0;try{re.state.doc.nodesBetween(ze,lt,fn=>{fn&&fn.isText&&($t=!0,Xe.isInSet(fn.marks)||(wt=!1))})}catch{}return $t&&wt}function dn(te){if(!te)return;const re=te.replace("#",""),je=re.length===3?re.split("").map(nn=>nn+nn).join(""):re;if(je.length!==6)return;const Xe=parseInt(je.slice(0,2),16)/255,ge=parseInt(je.slice(2,4),16)/255,Ae=parseInt(je.slice(4,6),16)/255,ze=nn=>nn<=.03928?nn/12.92:Math.pow((nn+.055)/1.055,2.4),lt=ze(Xe),$t=ze(ge),wt=ze(Ae),Jt=.2126*lt+.7152*$t+.0722*wt,_t=(nn,rn)=>(Math.max(nn,rn)+.05)/(Math.min(nn,rn)+.05),fn=_t(1,Jt),bn=_t(0,Jt);return fn>=bn?"#ffffff":"#000000"}if(!t)return null;const Dt={};h&&(Dt.background=h,Dt["--editor-surface"]=h);const Lt=e==="checklist"?"New checklist":"New note",tn=f.jsxs("div",{className:"image-dialog-backdrop",ref:J,onMouseDown:te=>{if(te.target===te.currentTarget)try{te.preventDefault()}catch{}},children:[f.jsxs("div",{ref:pt,className:`image-dialog editor-dialog maximized${e==="checklist"?" checklist-editor":""}`,role:"dialog","aria-modal":!0,style:{width:"100vw",...Dt},children:[f.jsxs("div",{className:"dialog-header",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[f.jsx("button",{className:"btn",type:"button",onClick:Y,disabled:se,children:"Cancel"}),f.jsx("strong",{children:Lt}),f.jsx("button",{className:"btn",type:"button",onClick:Pt,disabled:se||!Ze(),children:se?"Saving…":"Save"})]}),f.jsxs("div",{className:"dialog-body",children:[e==="text"?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"rt-sticky-header",children:[f.jsx("div",{style:{display:"flex",gap:12,marginBottom:8},children:f.jsx("input",{placeholder:"Title",value:a,onChange:te=>c(te.target.value),style:{flex:1,background:"transparent",border:"none",color:"inherit",fontWeight:600,fontSize:18}})}),f.jsxs("div",{className:"rt-toolbar",style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",marginTop:0,marginBottom:0,overflowX:"auto",color:m||"inherit"},children:[f.jsx("button",{className:"tiny",onClick:()=>W==null?void 0:W.chain().focus().toggleBold().run(),"aria-pressed":W==null?void 0:W.isActive("bold"),"aria-label":"Bold",title:"Bold",children:"B"}),f.jsx("button",{className:"tiny",onClick:()=>W==null?void 0:W.chain().focus().toggleItalic().run(),"aria-pressed":W==null?void 0:W.isActive("italic"),"aria-label":"Italic",title:"Italic",children:"I"}),f.jsx("button",{className:"tiny",onClick:()=>W==null?void 0:W.chain().focus().toggleUnderline().run(),"aria-pressed":W==null?void 0:W.isActive("underline"),"aria-label":"Underline",title:"Underline",children:"U"}),f.jsx("button",{className:"tiny",onClick:()=>W==null?void 0:W.chain().focus().toggleHeading({level:1}).run(),"aria-pressed":W==null?void 0:W.isActive("heading",{level:1}),"aria-label":"Heading 1",title:"Heading 1",children:"H1"}),f.jsx("button",{className:"tiny",onClick:()=>W==null?void 0:W.chain().focus().toggleHeading({level:2}).run(),"aria-pressed":W==null?void 0:W.isActive("heading",{level:2}),"aria-label":"Heading 2",title:"Heading 2",children:"H2"}),f.jsx("button",{className:"tiny",onClick:()=>W==null?void 0:W.chain().focus().toggleHeading({level:3}).run(),"aria-pressed":W==null?void 0:W.isActive("heading",{level:3}),"aria-label":"Heading 3",title:"Heading 3",children:"H3"}),f.jsx("button",{className:"tiny",onClick:()=>W==null?void 0:W.chain().focus().toggleBulletList().run(),"aria-pressed":W==null?void 0:W.isActive("bulletList"),"aria-label":"Bulleted list",title:"Bulleted list",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("circle",{cx:"5",cy:"6",r:"1.5"}),f.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),f.jsx("circle",{cx:"5",cy:"12",r:"1.5"}),f.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),f.jsx("circle",{cx:"5",cy:"18",r:"1.5"}),f.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>W==null?void 0:W.chain().focus().toggleOrderedList().run(),"aria-pressed":W==null?void 0:W.isActive("orderedList"),"aria-label":"Numbered list",title:"Numbered list",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("text",{x:"3.5",y:"7",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"1."}),f.jsx("rect",{x:"9",y:"5",width:"10",height:"2",rx:"1"}),f.jsx("text",{x:"3.5",y:"13",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"2."}),f.jsx("rect",{x:"9",y:"11",width:"10",height:"2",rx:"1"}),f.jsx("text",{x:"3.5",y:"19",fontSize:"6",fontFamily:"system-ui, Arial",fill:"currentColor",children:"3."}),f.jsx("rect",{x:"9",y:"17",width:"10",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>W==null?void 0:W.chain().focus().setTextAlign("left").run(),"aria-pressed":W==null?void 0:W.isActive({textAlign:"left"}),"aria-label":"Align left",title:"Align left",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("rect",{x:"4",y:"5",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"4",y:"9",width:"10",height:"2",rx:"1"}),f.jsx("rect",{x:"4",y:"13",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"4",y:"17",width:"8",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>W==null?void 0:W.chain().focus().setTextAlign("center").run(),"aria-pressed":W==null?void 0:W.isActive({textAlign:"center"}),"aria-label":"Align center",title:"Align center",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("rect",{x:"5",y:"5",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"7",y:"9",width:"10",height:"2",rx:"1"}),f.jsx("rect",{x:"5",y:"13",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"8",y:"17",width:"8",height:"2",rx:"1"})]})}),f.jsx("button",{className:"tiny",onClick:()=>W==null?void 0:W.chain().focus().setTextAlign("right").run(),"aria-pressed":W==null?void 0:W.isActive({textAlign:"right"}),"aria-label":"Align right",title:"Align right",children:f.jsxs("svg",{viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:[f.jsx("rect",{x:"6",y:"5",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"10",y:"9",width:"10",height:"2",rx:"1"}),f.jsx("rect",{x:"6",y:"13",width:"14",height:"2",rx:"1"}),f.jsx("rect",{x:"12",y:"17",width:"8",height:"2",rx:"1"})]})})]})]}),f.jsx(Zd,{editor:W,style:{color:m||"inherit"}})]}):f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"rt-sticky-header",children:[f.jsx("div",{style:{display:"flex",gap:12,marginBottom:8},children:f.jsx("input",{placeholder:"Title",value:a,onChange:te=>c(te.target.value),style:{flex:1,background:"transparent",border:"none",color:"inherit",fontWeight:600,fontSize:18}})}),f.jsxs("div",{className:"rt-toolbar",style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",marginTop:0,marginBottom:0,overflowX:"auto",color:m||"inherit"},children:[f.jsx("button",{className:"tiny",onClick:()=>Wt("bold"),"aria-pressed":Rt("bold"),"aria-label":"Bold",title:"Bold",children:"B"}),f.jsx("button",{className:"tiny",onClick:()=>Wt("italic"),"aria-pressed":Rt("italic"),"aria-label":"Italic",title:"Italic",children:"I"}),f.jsx("button",{className:"tiny",onClick:()=>Wt("underline"),"aria-pressed":Rt("underline"),"aria-label":"Underline",title:"Underline",children:"U"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>{ve(),Ne(u.length)},style:{padding:"6px 10px"},children:"Add item"})]})]}),f.jsx("div",{className:"checklist-items",children:(ce??u??[]).map((te,re)=>{const Xe=Pe(re,ce??u??[]);return f.jsxs("div",{className:`checklist-item${St===re?" drag-source":""}${Xe?" "+Xe:""}`,style:{marginLeft:Number(te.indent||0)*18},draggable:!1,onClick:ge=>{try{ge.stopPropagation()}catch{}},children:[f.jsxs("div",{className:"drag-gutter",style:{cursor:"grab",userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",touchAction:"none"},onMouseDown:ge=>{ge.preventDefault()},onPointerDown:ge=>{try{ge.preventDefault()}catch{}try{ge.stopPropagation()}catch{}ge.currentTarget.setPointerCapture(ge.pointerId),nt.current=ge.clientY,bt.current={active:!0,startX:ge.clientX,startY:ge.clientY,idx:re,pointerId:ge.pointerId},et.current=null,Re(null)},onPointerMove:ge=>{var Jt,_t,fn,bn,nn,rn,Pr,I;const Ae=bt.current;if(!Ae||!Ae.active)return;try{ge.preventDefault()}catch{}nt.current=ge.clientY;const ze=ge.clientX-Ae.startX,lt=ge.clientY-Ae.startY,$t=F.directionLockPx;if(et.current===null&&(Math.abs(ze)>$t||Math.abs(lt)>$t)&&(et.current=Math.abs(ze)>Math.abs(lt)?"horizontal":"vertical"),et.current==="vertical"){const H=Ae.idx;if(!qe.current){const U=Array.from(((Jt=pt.current)==null?void 0:Jt.querySelectorAll(".checklist-item"))||[])[H];if(U){const k=U.getBoundingClientRect();It.current={x:ge.clientX-k.left,y:ge.clientY-k.top};const V=U.cloneNode(!0);V.style.position="fixed",V.style.left=k.left+"px",V.style.top=ge.clientY-(It.current.y||0)+"px",V.style.width=k.width+"px",V.style.pointerEvents="none",V.style.zIndex="9999",V.style.opacity="0.98",V.classList.add("checklist-ghost"),document.body.appendChild(V),qe.current=V,Mt(H),We(H),kt.current=k.left;try{(bn=(fn=(_t=pt.current)==null?void 0:_t.style)==null?void 0:fn.setProperty)==null||bn.call(fn,"--checklist-item-shift",`${Math.round(k.height)}px`)}catch{}}}qe.current&&(qe.current.style.left=kt.current+"px",qe.current.style.top=ge.clientY-(It.current.y||0)+"px",D());const K=Array.from(((nn=pt.current)==null?void 0:nn.querySelectorAll(".checklist-item"))||[]);if(K.length){let oe=null;const U=qe.current?qe.current.getBoundingClientRect():{top:ge.clientY-10,bottom:ge.clientY+10},k=ge.clientY>(Tt.current||ge.clientY);Tt.current=ge.clientY;const V=k?F.ghostOverlapDownPct:F.ghostOverlapUpPct;for(let pe=0;pe=V){oe=pe;break}}oe!=null&&oe!==vt&&We(oe)}return}const wt=F.indentPx;if(et.current==="horizontal"){const H=Ae.idx;if(H===0&&ze>0){Re(null);return}const K=u;if(ze>wt){const[oe,U]=ae(K,H),k=[...K],V=k.splice(oe,U-oe);let pe=null;for(let tt=H-1;tt>=0;tt--)if(Number(((rn=K[tt])==null?void 0:rn.indent)||0)===0){pe=tt;break}if(pe!=null){const tt=K[pe].uid,Bt=k.findIndex($n=>$n.uid===tt);let Kt=Bt>=0?Bt+1:Math.min(oe,k.length);for(;Kt0;)Kt++;const Zt=V.map($n=>({...$n,indent:1}));k.splice(Kt,0,...Zt)}else{let tt=Math.min(oe,k.length);for(;tt0;)tt++;const Bt=V.map(Kt=>({...Kt,indent:1}));k.splice(tt,0,...Bt)}Re(k)}else if(ze<-wt){const[oe,U]=ae(K,H),k=[...K];for(let V=oe;V{try{ge.currentTarget.releasePointerCapture(ge.pointerId)}catch{}if(bt.current=null,ce){d(ce),Re(null),et.current=null,de();return}if(et.current==="vertical"&&St!==null){const Ae=St,ze=u,[lt,$t]=ae(ze,Ae);if(vt!==null){const wt=Ae=lt&&wt<$t||Se(lt,$t,wt)}}et.current=null,de()},children:[f.jsx("div",{className:"drag-handle","aria-hidden":!0,children:"≡"}),f.jsx("div",{className:`checkbox-visual ${te.checked?"checked":""}`,onClick:ge=>{ge.stopPropagation(),Ve(re)},onPointerDown:ge=>{ge.stopPropagation()},onPointerUp:ge=>{ge.stopPropagation()},children:te.checked&&f.jsx("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,focusable:"false",children:f.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),f.jsx("div",{style:{flex:1,minWidth:0},children:f.jsx(Lx,{value:te.content,onChange:ge=>$e(re,ge),onEnter:()=>{d(ge=>{const Ae=[...ge||[]];return Ae.splice(re+1,0,{uid:l(),content:"",checked:!1,indent:Number(te.indent||0)}),Ae}),Ne(re+1)},onArrowUp:()=>Ne(Math.max(0,re-1)),onArrowDown:()=>Ne(Math.min(u.length-1,re+1)),onBackspaceEmpty:()=>{re>0&&(d(ge=>{const Ae=[...ge||[]];return Ae.splice(re,1),Ae}),Ne(re-1))},onFocus:ge=>{Je.current=ge,it.current[re]=ge;try{At(Ae=>Ae+1)}catch{}},placeholder:"",autoFocus:re===0})}),f.jsx("button",{className:"delete-item",type:"button",onClick:ge=>{ge.stopPropagation(),d(Ae=>{const ze=(Ae||[]).filter(($t,wt)=>wt!==re);if(ze.length===0)return Je.current=null,it.current=[],ze;const lt=Math.max(0,Math.min(re-1,ze.length-1));return window.setTimeout(()=>Ne(lt),30),ze})},"aria-label":"Delete item",title:"Delete item",children:"✕"})]},te.uid||String(re))})})]}),z&&f.jsxs("div",{style:{marginTop:10,display:"flex",alignItems:"center",gap:10},children:[f.jsx("div",{className:"note-image",style:{width:96,height:72,flex:"0 0 auto"},children:f.jsx("img",{src:z,alt:"selected",style:{width:"100%",height:"100%",objectFit:"cover",borderRadius:6,display:"block"}})}),f.jsx("div",{style:{flex:1,fontSize:13,opacity:.9},children:"1 image selected"}),f.jsx("button",{className:"btn",type:"button",onClick:()=>ee(null),style:{padding:"6px 10px"},children:"Remove"})]})]}),f.jsxs("div",{className:"dialog-footer",style:{display:"block"},children:[!!X&&!!ye&&f.jsxs("label",{className:"create-collection-toggle",title:ye,style:{margin:"0 0 10px"},children:[f.jsx("input",{type:"checkbox",checked:!!Ce,onChange:te=>Te(!!te.target.checked)}),f.jsx("span",{className:"create-collection-toggle__text",children:"Add to current collection:"}),f.jsx("span",{className:"create-collection-toggle__path",children:ye})]}),f.jsxs("div",{className:"note-actions",style:{display:"inline-flex",gap:8,justifyContent:"flex-start",color:m||"inherit"},children:[f.jsx("button",{className:"tiny palette",onClick:()=>y(!0),"aria-label":"Change color",title:"Change color",children:f.jsx(Xs,{icon:af,className:"palette-svg"})}),f.jsx("button",{className:"tiny",onClick:()=>x(!0),"aria-label":"Reminder",title:"Reminder",children:f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"}),f.jsx("path",{d:"M18 8V7a6 6 0 1 0-12 0v1c0 3.5-2 5-2 5h16s-2-1.5-2-5z"})]})}),f.jsx("button",{className:"tiny",onClick:()=>S(!0),"aria-label":"Collaborators",title:"Collaborators",children:f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[f.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"}),f.jsx("path",{d:"M6 14c-1.66 0-3 1.34-3 3v1h9.5c-.2-.63-.5-1.23-.9-1.76C11.7 15.6 9.9 14 6 14z"}),f.jsx("path",{d:"M20 16v2h-2v2h-2v-2h-2v-2h2v-2h2v2z"})]})}),f.jsx("button",{className:"tiny",onClick:()=>N(!0),"aria-label":"Add image",title:"Add image",children:f.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5C3.9 3 3 3.9 3 5v14h18zM8.5 13.5l2.5 3L14.5 12l4.5 7H5l3.5-5.5z"})})}),f.jsx("button",{ref:me,className:"tiny editor-more",onClick:te=>{te.stopPropagation(),fe(re=>!re)},"aria-label":"More",title:"More",children:"⋮"})]})]})]}),v&&f.jsx(tf,{anchorRef:J,onPick:te=>{p(te)},onClose:()=>y(!1)}),b&&f.jsx(nf,{onClose:()=>x(!1),onSet:te=>{x(!1),te&&window.alert(`Reminder set (UI-only): ${te}`)}}),C&&f.jsx(kc,{onClose:()=>S(!1),onSelect:te=>{q(re=>re.find(je=>je.id===te.id)?re:[...re,te]),S(!1)},current:(()=>{const te=o&&o.id?Number(o.id):void 0;return L.filter(re=>typeof re.id=="number"?re.id!==te:!0).map(re=>({userId:re.id,email:re.email}))})(),ownerId:o==null?void 0:o.id,onRemove:()=>{}}),M&&f.jsx(rf,{onClose:()=>N(!1),onAdd:te=>ee(te||null)}),ue&&f.jsx(nG,{anchorRef:me,onClose:()=>fe(!1),onDiscard:Y})]});return zn.createPortal(tn,document.body)}const RN=B.memo(function({note:e,setItemRef:n,isDragSource:r,isDragTarget:i,disabled:s,onChange:o,style:l}){const a=Number(e==null?void 0:e.id),{setNodeRef:c,listeners:u,attributes:d}=e4({id:a,disabled:s}),{setNodeRef:h}=i4({id:a}),p=w.useCallback(g=>{c(g),h(g),n(g,a)},[c,h,n,a]),m=(r?" note-drag-source":"")+(i?" note-drag-target":"");return f.jsx("div",{"data-note-id":a,ref:p,className:m.trim(),style:l,children:f.jsx(El,{note:e,onChange:o,dragHandleAttributes:s?void 0:d,dragHandleListeners:s?void 0:u})})});function iG({selectedLabelIds:t=[],selectedCollectionId:e=null,collectionStack:n=[],selectedCollaboratorId:r=null,searchQuery:i="",sortConfig:s=Ks,onClearAllFilters:o,onSetSelectedLabelIds:l,onSetSelectedCollaboratorId:a,onSelectCollectionById:c,onSetCollectionStack:u,onSetSearchQuery:d,onSortConfigChange:h}){var W1;const{token:p}=Sr(),[m,g]=w.useState([]),[v,y]=w.useState(!0),[b,x]=w.useState(!1),C=w.useRef([]),[S,M]=w.useState("desktop"),N=w.useRef("desktop"),[z,ee]=w.useState(1),[L,q]=w.useState(1),X=w.useRef(1),ye=w.useRef(1),[Ce,Te]=w.useState(0);w.useEffect(()=>{const E=()=>Te(R=>R+1),T=()=>Te(R=>Math.max(0,R-1));return window.addEventListener("freemannotes:editor-modal-open",E),window.addEventListener("freemannotes:editor-modal-close",T),()=>{window.removeEventListener("freemannotes:editor-modal-open",E),window.removeEventListener("freemannotes:editor-modal-close",T)}},[]);const se=Ce>0;w.useEffect(()=>{const E=document.documentElement;return se?E.classList.add("is-editor-modal-open"):E.classList.remove("is-editor-modal-open"),()=>{try{E.classList.remove("is-editor-modal-open")}catch{}}},[se]),w.useEffect(()=>{if(Ce<=0)return;const E=window.setTimeout(()=>{try{!!document.querySelector('[aria-modal="true"]')||Te(0)}catch{}},400);return()=>{try{window.clearTimeout(E)}catch{}}},[Ce]);const he=w.useRef(new Map),J=w.useRef(0),me=w.useRef(null),ue=w.useRef(null),fe=w.useRef(!1),[W,Le]=w.useState(!1),[Ye,Y]=w.useState(0),[Ze,Pt]=w.useState("text"),[it,St]=w.useState(null),Mt=w.useMemo(()=>{const E=Array.isArray(n)?n:[];if(!E.length)return null;const T=E[E.length-1],R=Number(T==null?void 0:T.id),P=E.map(j=>String((j==null?void 0:j.name)||"")).filter(Boolean).join(" / ");return!Number.isFinite(R)||!P?null:{id:R,path:P}},[n]),vt=w.useCallback(E=>{Le(!1),St(E)},[]);w.useEffect(()=>{if(!W)return;const E=T=>{try{const R=T==null?void 0:T.target;if(R&&R.closest&&R.closest(".mobile-add-note"))return}catch{}Le(!1)};return window.addEventListener("pointerdown",E,{capture:!0}),()=>{try{window.removeEventListener("pointerdown",E,{capture:!0})}catch{}}},[W]);const We=w.useRef(!1),ce=w.useRef(null),Re=w.useRef(null),qe=w.useRef(null),It=w.useRef(-1),et=w.useRef([]),kt=w.useRef(null),bt=w.useRef(null),Tt=w.useRef(null),Ue=w.useRef(null),nt=w.useRef(null),pt=w.useRef([]),Q=w.useRef(null),F=w.useRef(2),ae=w.useRef(1),Se=w.useRef(!1),Pe=w.useRef(null),D=w.useRef(null),[G,de]=w.useState(null),[ve,$e]=w.useState(null),[Ve,Ne]=w.useState([]),Je=w.useRef(null),At=w.useRef(null),[rt,Wt]=w.useState(null),[Rt,dn]=w.useState(null),Dt=w.useRef(null),Lt=w.useRef(null),tn=w.useRef(!1),te=w.useRef(null),re=w.useRef(null),je=w.useRef(null),Xe=w.useCallback(E=>{if(!E)return null;const T=E.touches&&E.touches[0]||E.changedTouches&&E.changedTouches[0];return T&&typeof T.clientX=="number"&&typeof T.clientY=="number"?{x:T.clientX,y:T.clientY}:typeof E.clientX=="number"&&typeof E.clientY=="number"?{x:E.clientX,y:E.clientY}:null},[]),ge=w.useCallback(E=>{const T=Xe(E);T&&(te.current=T);const R=j=>{tn.current&&(te.current={x:j.clientX,y:j.clientY})},P=j=>{if(!tn.current)return;const _=j.touches&&j.touches[0];_&&(te.current={x:_.clientX,y:_.clientY})};window.addEventListener("pointermove",R,{capture:!0,passive:!1}),window.addEventListener("touchmove",P,{capture:!0,passive:!0}),je.current=()=>{try{window.removeEventListener("pointermove",R,{capture:!0})}catch{}try{window.removeEventListener("touchmove",P,{capture:!0})}catch{}}},[Xe]),Ae=w.useCallback(()=>{try{je.current&&je.current()}catch{}je.current=null,te.current=null},[]),ze=w.useCallback(()=>{const E=document.querySelector(".main-area");if(E&&E.scrollHeight>E.clientHeight+1)return E;const T=document.scrollingElement;return T&&T.scrollHeight>T.clientHeight+1?T:null},[]),lt=w.useCallback(()=>{if(re.current!=null)return;const E=96,T=12,R=()=>{if(!tn.current){re.current=null;return}const P=te.current;if(!P){re.current=requestAnimationFrame(R);return}const j=window.innerHeight||0,_=P.y,O=Math.max(0,j-P.y);let $=0;if(_{if(re.current!=null){try{cancelAnimationFrame(re.current)}catch{}re.current=null}},[]),[wt,Jt]=w.useState(!1),[_t,fn]=w.useState(null),[bn,nn]=w.useState(null),[rn,Pr]=w.useState(null),I=w.useRef(null),H=w.useRef(null),K=w.useRef(null);function oe(E){try{const T=(localStorage.getItem("prefs.animationSpeed")||"normal").toLowerCase(),R={fast:{resize:250,swap:250,rearrange:250},normal:{resize:600,swap:500,rearrange:480},slow:{resize:1e3,swap:1e3,rearrange:1e3}};return(R[T]||R.normal)[E]}catch{return E==="resize"?600:E==="swap"?500:480}}function U(){if(!D.current)try{const E=window.scrollX||0,T=window.scrollY||0,R=document.body;D.current={x:E,y:T,position:R.style.position||"",top:R.style.top||"",left:R.style.left||"",right:R.style.right||"",width:R.style.width||"",overflow:R.style.overflow||""},R.style.position="fixed",R.style.top=`-${T}px`,R.style.left=`-${E}px`,R.style.right="0px",R.style.width="100%",R.style.overflow="hidden"}catch{}}function k(){const E=D.current;if(E){D.current=null;try{const T=document.body;T.style.position=E.position,T.style.top=E.top,T.style.left=E.left,T.style.right=E.right,T.style.width=E.width,T.style.overflow=E.overflow,window.scrollTo(E.x,E.y)}catch{}}}w.useLayoutEffect(()=>{Re.current=G},[G]),w.useLayoutEffect(()=>{qe.current=ve},[ve]),w.useLayoutEffect(()=>{et.current=Ve;const E=Ve.indexOf("spacer");It.current=E},[Ve]),w.useEffect(()=>{const E=document.documentElement;return G!=null?E.classList.add("is-note-rearrange-dragging"):E.classList.remove("is-note-rearrange-dragging"),()=>{try{E.classList.remove("is-note-rearrange-dragging")}catch{}}},[G]);async function V(){y(!0);try{const E=await fetch("/api/notes",{headers:{Authorization:`Bearer ${p}`}});if(!E.ok)throw new Error(await E.text());let R=(await E.json()).notes||[];try{const P=localStorage.getItem("notesOrder");if(P){const j=JSON.parse(P||"[]");if(Array.isArray(j)&&j.length){const _=new Map(R.map(le=>[le.id,le])),O=[],$=new Set;for(const le of j)_.has(le)&&!$.has(le)&&(O.push(_.get(le)),$.add(le));const ie=[];for(const le of R)$.has(le.id)||ie.push(le);R=[...ie,...O]}}}catch{}g(R);try{setTimeout(()=>window.dispatchEvent(new Event("notes-grid:recalc")),0)}catch{}}catch(E){console.error("Failed to load notes",E),g([])}finally{y(!1)}}function pe(E,T){g(R=>R.map(P=>{if(Number(P.id)!==Number(E))return P;const j=(Array.isArray(T)?T:[]).filter(_=>_&&typeof _.id=="number"&&typeof _.name=="string").map(_=>({id:_.id,label:{id:_.id,name:_.name}}));return{...P,noteLabels:j}}))}function tt(E,T){g(R=>R.map(P=>{if(Number(P.id)!==Number(E))return P;const j=(Array.isArray(T)?T:[]).filter(_=>_&&typeof _.url=="string").map(_=>({id:Number(_.id||Date.now()),url:String(_.url)}));return{...P,images:j}}))}function Bt(E,T){const R=(typeof T=="string"?T:"")||"";g(P=>P.map(j=>Number(j.id)!==Number(E)?j:{...j,viewerColor:R.length?R:null}))}function Kt(E,T){const R=(Array.isArray(T)?T:[]).filter(P=>P&&typeof P.id=="number"&&typeof P.name=="string").map(P=>({id:Number(P.id),name:String(P.name),parentId:P.parentId==null?null:Number(P.parentId)}));g(P=>P.map(j=>Number(j.id)!==Number(E)?j:{...j,viewerCollections:R}))}w.useEffect(()=>{p?V():g([])},[p]),w.useEffect(()=>{C.current=m},[m]),w.useEffect(()=>{Dt.current=rt},[rt]),w.useEffect(()=>{Lt.current=Rt},[Rt]);const Zt=!!(s&&s.sortKey==="default"&&s.groupBy==="none"&&s.smartFilter==="none"),$n=(()=>{try{return localStorage.getItem("prefs.dragBehavior")||"swap"}catch{return"swap"}})(),sn=Zt&&$n==="swap",A=Zt&&$n==="rearrange",ne=sn&&wt;w.useEffect(()=>{if(!sn)return;Wt(null),dn(null);const E=requestAnimationFrame(()=>{try{D1()}catch{}});return()=>{try{cancelAnimationFrame(E)}catch{}}},[sn,z,L]);function xe(E){const T=st.get(E);return T?T.pinned?"pinned":"others":null}function Z(){if(H.current!=null){try{window.clearTimeout(H.current)}catch{}H.current=null}}const De=X_(fS(dM,{activationConstraint:{distance:6}}),fS(fM,{activationConstraint:{delay:160,tolerance:12}}));function He(E){var j;if(!sn)return;const T=Number(E.active.id);if(!Number.isFinite(T))return;tn.current=!0,ge(E.activatorEvent),lt(),fn(T);const R=he.current.get(T),P=(j=R==null?void 0:R.getBoundingClientRect)==null?void 0:j.call(R);P&&P.width>0&&P.height>0?Pr({width:P.width,height:P.height}):Pr(null),nn(null),I.current=null,Z(),Jt(!0)}function Ot(E){var O;if(!sn)return;const T=Number(E.active.id),R=(O=E.over)==null?void 0:O.id,P=R==null?NaN:Number(R);if(!Number.isFinite(T))return;if(!Number.isFinite(P)||T===P){(I.current!=null||bn!=null)&&(I.current=null,Z(),bn!=null&&nn(null));return}const j=xe(T),_=xe(P);if(!j||!_||j!==_){I.current!=null&&(I.current=null,Z(),nn(null));return}I.current!==P&&(I.current=P,Z(),nn(null),H.current=window.setTimeout(()=>{I.current===P&&nn(P)},380))}function ke(){Z(),I.current=null,tn.current=!1,$t(),Ae(),fn(null),nn(null),Jt(!1),Pr(null)}w.useEffect(()=>{const E=document.documentElement;return sn&&_t!=null?E.classList.add("is-note-swap-dragging"):E.classList.remove("is-note-swap-dragging"),()=>{try{E.classList.remove("is-note-swap-dragging")}catch{}}},[sn,_t]);function Ke(E){sn&&ke()}function jt(E){if(!sn)return;const T=Number(E.active.id),R=bn!=null?Number(bn):NaN,P=Number.isFinite(T)?xe(T):null;if(P){const j=P==="pinned"?Je.current:At.current;if(j){const _=Array.from(j.querySelectorAll(".notes-masonry-col"));K.current={section:P,heights:_.map(O=>O.getBoundingClientRect().height)}}}ke(),!(!Number.isFinite(T)||!Number.isFinite(R)||T===R||!P)&&xe(R)===P&&g(j=>{const _=j.findIndex(le=>Number(le==null?void 0:le.id)===T),O=j.findIndex(le=>Number(le==null?void 0:le.id)===R);if(_<0||O<0||!!j[_].pinned!=!!j[O].pinned)return j;const $=[...j],ie=$[_];return $[_]=$[O],$[O]=ie,requestAnimationFrame(()=>{try{bf($)}catch{}}),$})}const st=w.useMemo(()=>{const E=new Map;for(const T of m){const R=Number(T==null?void 0:T.id);Number.isFinite(R)&&E.set(R,T)}return E},[m]),ct=(E,T)=>Math.max(0,Math.min(T,Math.floor(E)));function mt(E){const T=new Map;for(const R of E){const P=he.current.get(R);P&&T.set(R,P.getBoundingClientRect())}return T}function yt(E,T){const R=[];for(const[P,j]of E.entries()){const _=he.current.get(P);if(!_)continue;const O=_.getBoundingClientRect(),$=j.left-O.left,ie=j.top-O.top;$===0&&ie===0||R.push({el:_,dx:$,dy:ie})}if(R.length){for(const P of R)P.el.style.transition="none",P.el.style.transform=`translate(${P.dx}px, ${P.dy}px)`;document.body.getBoundingClientRect();for(const P of R){const j=P.el;j.style.transition=`transform ${T}ms cubic-bezier(.2,.9,.2,1)`,j.style.transform="";const _=()=>{try{j.style.transition="",j.removeEventListener("transitionend",_)}catch{}};j.addEventListener("transitionend",_)}}}function ft(){const E=et.current;if(!E.length){pt.current=[],Q.current=null;return}const T=pt.current,R=new Array(E.length),P=[];try{for(let j=0;j=O.left&&E<=O.left+O.width&&T>=O.top&&T<=O.top+O.height)return _}let P=-1,j=Number.POSITIVE_INFINITY;for(let _=0;_P&&(P=$,R=j)}return{idx:R,area:P}}function Yt(E,T,R){const P=E.filter(O=>Number(O)!==Number(T)),j=ct(R,P.length),_=[];for(let O=0;OO!=="spacer").map(O=>Number(O)).filter(O=>Number.isFinite(O))}function zt(E){const T=et.current,R=T.indexOf("spacer");if(R<0)return;const P=ct(E,T.length-1);if(P===R)return;const j=Ct(T,R,P),_=mt(j),O=[...T];O.splice(R,1),O.splice(P,0,"spacer");const $=Math.max(150,Math.min(650,oe("rearrange")));Pe.current={before:_,ms:$},Ne(O)}w.useLayoutEffect(()=>{if(G==null)return;try{ft()}catch{}const E=Pe.current;if(E){Pe.current=null;try{yt(E.before,E.ms)}catch{}}},[G,Ve]);function ln(){We.current=!1,ce.current=null,bt.current=null,kt.current=null,pt.current=[],Q.current=null,Se.current=!1,F.current=2,ae.current=1;try{document.documentElement.classList.remove("is-note-rearrange-dragging")}catch{}if(k(),nt.current!=null){try{cancelAnimationFrame(nt.current)}catch{}nt.current=null}}function bi(){de(null),$e(null),Ne([]),ln();try{requestAnimationFrame(()=>{try{window.dispatchEvent(new Event("notes-grid:recalc")),window.dispatchEvent(new Event("resize"))}catch{}})}catch{}}function $i(E){if(!E)return!1;try{return!!E.closest('button, a, input, textarea, select, [contenteditable="true"], .more-menu, .dropdown, .color-palette')}catch{return!1}}function Vc(E){var j;const T=he.current.get(E),R=(j=T==null?void 0:T.dataset)==null?void 0:j.__rowspan,P=R?Number(R):NaN;return Number.isFinite(P)&&P>0?P:2}function us(E,T){if(E===T)return!0;if(!E||!T||E.length!==T.length)return!1;for(let R=0;R1);for(let _=0;_[]);const j=10,_=P.map(le=>le.left).sort((le,be)=>le-be),O=[];for(const le of _){const be=O[O.length-1];(O.length===0||Math.abs(le-be)>j)&&O.push(le)}const $=Math.max(T,O.length,1),ie=Array.from({length:$},()=>[]);for(const le of P){let be=0,Fe=1/0;for(let ot=0;otle.sort((be,Fe)=>be.top-Fe.top).map(be=>be.id))}function D1(){if(sn)try{const E=R1(Je.current),T=R1(At.current);E&&Wt(R=>us(R,E)?R:E),T&&dn(R=>us(R,T)?R:T)}catch{}}w.useEffect(()=>{if(!sn){Wt(null),dn(null);return}const E=window.setTimeout(()=>{D1()},0);return()=>{try{clearTimeout(E)}catch{}}},[sn,m]);const O1=w.useMemo(()=>{try{const E=Math.max(1,Number(z)||1),T=rt&&rt.length?rt.length:0;return Math.max(E,T===E?T:0,1)}catch{return 1}},[sn,rt,z]),j1=w.useMemo(()=>{try{const E=Math.max(1,Number(L)||1),T=Rt&&Rt.length?Rt.length:0;return Math.max(E,T===E?T:0,1)}catch{return 1}},[sn,Rt,L]),pa=w.useMemo(()=>!ne||!rt?null:I1(rt,O1),[ne,rt,O1,st]),ma=w.useMemo(()=>!ne||!Rt?null:I1(Rt,j1),[ne,Rt,j1,st]);function wo(E){if(!E)return 0;if(E instanceof Date)return E.getTime();const T=Date.parse(String(E));return Number.isFinite(T)?T:0}function P1(E){const T=s||Ks;if(T.sortKey==="default")return E;const R=T.sortDir==="asc"?1:-1,P=[...E];return P.sort((j,_)=>{if(T.sortKey==="createdAt")return(wo(j.createdAt)-wo(_.createdAt))*R;if(T.sortKey==="updatedAt")return(wo(j.updatedAt)-wo(_.updatedAt))*R;if(T.sortKey==="title"){const O=String(j.title||"").trim(),$=String(_.title||"").trim(),ie=O.localeCompare($,void 0,{sensitivity:"base"});return ie!==0?ie*R:(wo(j.createdAt)-wo(_.createdAt))*-1}return 0}),P}function L1(E){const T=new Date(E),R=(T.getDay()+6)%7;return T.setHours(0,0,0,0),T.setDate(T.getDate()-R),T.getTime()}function _1(E){const T=s||Ks;if(T.groupBy==="none")return[{key:"all",title:"",notes:E,sortMs:0}];const R=new Map;if(T.groupBy==="week"){const j=L1(new Date),_=j-7*24*60*60*1e3;for(const $ of E){const ie=wo($.createdAt),le=L1(new Date(ie||0));let be="older",Fe="Older",Ee=0;le>=j?(be="thisWeek",Fe="This week",Ee=j):le>=_&&(be="lastWeek",Fe="Last week",Ee=_);const ot=R.get(be)||{title:Fe,notes:[],sortMs:Ee};ot.notes.push($),R.set(be,ot)}return["thisWeek","lastWeek","older"].filter($=>R.has($)).map($=>({key:$,title:R.get($).title,notes:R.get($).notes,sortMs:R.get($).sortMs}))}if(T.groupBy==="month"){for(const _ of E){const O=wo(_.createdAt),$=new Date(O||0),ie=$.getFullYear(),le=$.getMonth(),be=`${ie}-${String(le+1).padStart(2,"0")}`,Fe=$.toLocaleString(void 0,{month:"long",year:"numeric"}),Ee=new Date(ie,le,1).getTime(),ot=R.get(be)||{title:Fe,notes:[],sortMs:Ee};ot.notes.push(_),R.set(be,ot)}const P=Array.from(R.entries()).map(([_,O])=>({key:_,title:O.title,notes:O.notes,sortMs:O.sortMs})),j=T.sortKey==="createdAt"&&T.sortDir==="asc"?1:-1;return P.sort((_,O)=>(_.sortMs-O.sortMs)*j),P}return[{key:"all",title:"",notes:E,sortMs:0}]}w.useEffect(()=>{if(fe.current){fe.current=!1;return}requestAnimationFrame(()=>{try{window.dispatchEvent(new Event("notes-grid:recalc"))}catch{}})},[t,e,i,m,s==null?void 0:s.groupBy,s==null?void 0:s.sortKey,s==null?void 0:s.sortDir,s==null?void 0:s.smartFilter]),w.useEffect(()=>{if(!p)return;const E=(()=>{try{return YA().deviceKey}catch{return null}})();let T=null;try{const P=`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/events?token=${encodeURIComponent(p)}`;T=new WebSocket(P),T.onmessage=j=>{try{const _=JSON.parse(String(j.data||"{}"));if(!_||!_.type)return;switch(_.type){case"note-created":V();break;case"notes-reordered":{const O=_.payload||{},ie=(Array.isArray(O.ids)?O.ids:[]).map(le=>Number(le)).filter(le=>Number.isFinite(le));if(!ie.length)break;try{localStorage.setItem("notesOrder",JSON.stringify(ie))}catch{}g(le=>{const be=new Map;for(const Be of le){const Qe=Number(Be==null?void 0:Be.id);Number.isFinite(Qe)&&be.set(Qe,Be)}const Fe=new Set,Ee=[];for(const Be of ie){const Qe=be.get(Be);Qe&&(Ee.push(Qe),Fe.add(Be))}const ot=[];for(const Be of le){const Qe=Number(Be==null?void 0:Be.id);(!Number.isFinite(Qe)||!Fe.has(Qe))&&ot.push(Be)}return[...ot,...Ee]});break}case"note-deleted":{const O=_.payload||{},$=Number(O.noteId);Number.isFinite($)&&g(ie=>ie.filter(le=>Number(le.id)!==$));break}case"note-images-changed":{const O=_.payload||{},$=Number(O.noteId);if(!Number.isFinite($))break;(async()=>{try{const ie=await fetch(`/api/notes/${$}/images`,{headers:{Authorization:`Bearer ${p}`}});if(!ie.ok)return;const le=await ie.json(),be=Array.isArray(le==null?void 0:le.images)?le.images:[];tt($,be)}catch{}})();break}case"note-color-changed":{const O=_.payload||{},$=Number(O.noteId);if(!Number.isFinite($))break;const ie=typeof O.color=="string"?String(O.color):"";Bt($,ie);break}case"note-collections-changed":{const O=_.payload||{},$=Number(O.noteId);if(!Number.isFinite($))break;const ie=Array.isArray(O.collections)?O.collections:[];Kt($,ie);break}case"note-collection-changed":{V();break}case"note-shared":V();break;case"note-unshared":{const O=Number(_.noteId||_.payload&&_.payload.noteId);Number.isFinite(O)&&g($=>$.filter(ie=>Number(ie.id)!==O));break}case"collab-removed":{const O=Number(_.noteId||_.payload&&_.payload.noteId),$=Number(_.userId||_.payload&&_.payload.userId);Number.isFinite(O)&&Number.isFinite($)&&g(ie=>ie.map(le=>{if(Number(le.id)!==O)return le;const Fe=(Array.isArray(le.collaborators)?le.collaborators:[]).filter(Ee=>{const ot=Ee&&(Ee.user||{});return(typeof ot.id=="number"?Number(ot.id):typeof Ee.userId=="number"?Number(Ee.userId):void 0)!==$});return{...le,collaborators:Fe}}));break}case"user-photo-updated":{const O=_.payload||{},$=Number(O.userId),ie=String(O.userImageUrl||"");Number.isFinite($)&&g(le=>le.map(be=>{const Fe=be.owner||null,Ee=Fe&&Fe.id===$?{...Fe,userImageUrl:ie}:Fe,Be=(Array.isArray(be.collaborators)?be.collaborators:[]).map(Qe=>{const Et=Qe&&(Qe.user||{});return typeof Et.id=="number"&&Number(Et.id)===$?{...Qe,user:{...Et,userImageUrl:ie}}:Qe});return{...be,owner:Ee,collaborators:Be}}));break}case"user-prefs-updated":{const O=_.payload||{},$=typeof O.deviceKey=="string"&&O.deviceKey?String(O.deviceKey):null;if($&&E&&$!==E)break;try{if(typeof O.noteWidth=="number"){document.documentElement.style.setProperty("--note-card-width",`${Number(O.noteWidth)}px`);try{localStorage.setItem("prefs.noteWidth",String(Number(O.noteWidth)))}catch{}}if(typeof O.checklistTextSize=="number"){document.documentElement.style.setProperty("--checklist-text-size",`${Number(O.checklistTextSize)}px`);try{localStorage.setItem("prefs.checklistTextSize",String(Number(O.checklistTextSize)))}catch{}}if(typeof O.noteLineSpacing=="number"){document.documentElement.style.setProperty("--note-line-height",String(Number(O.noteLineSpacing)));try{localStorage.setItem("prefs.noteLineSpacing",String(Number(O.noteLineSpacing)))}catch{}}if(typeof O.imageThumbSize=="number"){document.documentElement.style.setProperty("--image-thumb-size",`${Number(O.imageThumbSize)}px`);try{localStorage.setItem("prefs.imageThumbSize",String(Number(O.imageThumbSize)))}catch{}}if(typeof O.fontFamily=="string"&&O.fontFamily){document.documentElement.style.setProperty("--app-font-family",String(O.fontFamily));try{localStorage.setItem("prefs.fontFamily",String(O.fontFamily))}catch{}}}catch{}try{window.dispatchEvent(new Event("notes-grid:recalc")),window.dispatchEvent(new Event("resize"))}catch{}break}}}catch{}}}catch{}return()=>{try{T&&T.close()}catch{}}},[p]),w.useRef(null),w.useEffect(()=>{const E=new WeakSet,T=new WeakMap;let R=null,P=null;function j(){if(We.current)return;const ie=(()=>{try{const En=window.matchMedia,hr=!!(En&&(En("(pointer: coarse)").matches||En("(any-pointer: coarse)").matches)),Bn=window.visualViewport&&typeof window.visualViewport.width=="number"?window.visualViewport.width:window.innerWidth,ai=window.visualViewport&&typeof window.visualViewport.height=="number"?window.visualViewport.height:window.innerHeight,ds=Math.min(Bn,ai);if(hr){if(ds<=600)return"phone";if(ds<=1024)return ai>=Bn?"tablet-portrait":"tablet-landscape"}return"desktop"}catch{return"desktop"}})();ie!==N.current&&(N.current=ie,M(ie));const le=getComputedStyle(document.documentElement);let be=parseInt(le.getPropertyValue("--note-card-width"))||300;const Fe=parseInt(le.getPropertyValue("--gap"))||16,Ee=document.querySelector(".main-area"),ot=Ee?Ee.clientWidth:0,Be=document.querySelector(".notes-area"),Qe=Be?Be.clientWidth:0,Et=document.querySelector(".sidebar"),Gt=Et?Et.clientWidth:parseInt(le.getPropertyValue("--sidebar-width"))||220,Zn=window.innerWidth-Gt-64,er=Math.max(ot,Qe,Zn,0),li=Array.from(document.querySelectorAll(".notes-area .notes-grid, .notes-area .notes-masonry")),Ds=document.querySelector(".notes-area")||document.querySelector(".main-area")||document.body,tr=Ds.getBoundingClientRect(),nr=Math.floor(tr.right),wf=parseInt(getComputedStyle(Ds).paddingRight||"0")||0;for(const En of li){const hr=getComputedStyle(En),Bn=parseInt(hr.getPropertyValue("--gap"))||Fe,ai=Math.floor(En.getBoundingClientRect().left),ds=nr-wf,Un=Math.max(0,ds-ai),Bi=Math.max(0,Math.min(er,Un)),Ui=Math.max(1,Math.floor((Bi+Bn)/(be+Bn)));let Hn=Ui,ko=be;if(ie==="phone"){const K1=(()=>{try{const $j=window.visualViewport&&typeof window.visualViewport.width=="number"?window.visualViewport.width:window.innerWidth,Bj=window.visualViewport&&typeof window.visualViewport.height=="number"?window.visualViewport.height:window.innerHeight;return $j>Bj}catch{return!1}})(),zj=K1?120:140,Fj=K1?4:2;let Kc=Math.floor((Un+Bn)/(zj+Bn));Kc=Math.max(2,Math.min(Fj,Kc||0)),Hn=Kc,ko=Math.max(110,Math.floor((Un-Math.max(0,Kc-1)*Bn)/Kc))}else ie==="tablet-portrait"?Hn=Math.max(2,Math.min(3,Ui)):ie==="tablet-landscape"&&(Hn=Math.max(3,Math.min(4,Ui)));ie==="phone"?En.style.setProperty("--note-card-width",`${ko}px`):En.style.removeProperty("--note-card-width");const Lj=Hn*ko+Math.max(0,Hn-1)*Bn,_j=Math.min(Lj,Un);Number(En.dataset.__cols||"0")!==Hn&&(En.style.setProperty("--cols",String(Hn)),En.dataset.__cols=String(Hn)),En.style.width=`${_j}px`;try{En===Je.current?X.current!==Hn&&(X.current=Hn,ee(Hn)):En===At.current&&ye.current!==Hn&&(ye.current=Hn,q(Hn))}catch{}}try{window.__notesGridDebug={cardWidth:be,gap:Fe,availMain:ot,availArea:Qe,availFallback:Zn,avail:er,grids:li.map(En=>{const hr=getComputedStyle(En),Bn=parseInt(hr.getPropertyValue("--gap"))||Fe,ai=Math.floor(En.getBoundingClientRect().left),ds=nr-wf,Un=Math.max(0,ds-ai),Bi=Math.max(0,Math.min(er,Un)),Ui=Math.max(1,Math.floor((Bi+Bn)/(be+Bn))),Hn=Math.min(Ui*be+Math.max(0,Ui-1)*Bn,Un);return{left:ai,rightEdge:ds,availableToRight:Un,gridAvail:Bi,gridCols:Ui,gridTotal:Hn}}),autoFit:localStorage.getItem("prefs.autoFitColumns")==="1",anim:{resizeMs:oe("resize"),swapMs:oe("swap"),rearrangeMs:oe("rearrange")},showGuides:En=>{for(const hr of li)if(En){const Bn=parseInt(getComputedStyle(hr).getPropertyValue("--gap"))||Fe,ai=be+Bn,Un=(parseInt(le.getPropertyValue("--row"))||8)+Bn,Bi=`repeating-linear-gradient(to right, rgba(255,255,255,0.08) 0, rgba(255,255,255,0.08) 1px, transparent 1px, transparent ${ai}px)`,Ui=`repeating-linear-gradient(to bottom, rgba(255,255,255,0.08) 0, rgba(255,255,255,0.08) 1px, transparent 1px, transparent ${Un}px)`;hr.style.backgroundImage=`${Bi}, ${Ui}`,hr.style.backgroundSize=`${ai}px 100%, 100% ${Un}px`,hr.style.backgroundPosition="left top, left top"}else hr.style.backgroundImage="",hr.style.backgroundSize=""}}}catch{}try{for(const En of li){const hr=getComputedStyle(En),Bn=parseInt(hr.getPropertyValue("--row"))||parseInt(le.getPropertyValue("--row"))||8,ai=parseInt(hr.getPropertyValue("--gap"))||Fe,ds=Array.from(En.querySelectorAll("[data-note-id]"));for(const Un of ds){const Bi=Un.querySelector(".note-card"),Ui=Bi?Bi.getBoundingClientRect().height:Un.getBoundingClientRect().height,Hn=Math.max(1,Math.ceil((Ui+ai)/(Bn+ai)));Un.dataset.__rowspan!==String(Hn)&&(Un.style.gridRowEnd=`span ${Hn}`,Un.dataset.__rowspan=String(Hn));try{if(R){const ko=Bi||Un;E.has(ko)||(R.observe(ko),E.add(ko),Bi&&T.set(ko,Un))}}catch{}}}}catch{}}function _(){We.current||P==null&&(P=requestAnimationFrame(()=>{P=null,j()}))}j();const O=document.querySelector(".main-area")||document.body,$=new ResizeObserver(()=>_());$.observe(O);try{R=new ResizeObserver(ie=>{try{if(We.current)return;const le=getComputedStyle(document.documentElement),be=parseInt(le.getPropertyValue("--gap"))||16,Fe=parseInt(getComputedStyle(document.body).getPropertyValue("--gap"))||be;for(const Ee of ie){const ot=Ee.target,Be=T.get(ot)||ot,Qe=Be!=null&&Be.closest?Be.closest(".notes-grid, .notes-masonry"):null,Et=getComputedStyle(Qe||Be),Gt=parseInt(Et.getPropertyValue("--row"))||parseInt(le.getPropertyValue("--row"))||8,Jr=parseInt(Et.getPropertyValue("--gap"))||Fe,Zn=ot.getBoundingClientRect().height,er=Math.max(1,Math.ceil((Zn+Jr)/(Gt+Jr)));Be.dataset.__rowspan!==String(er)&&(Be.style.gridRowEnd=`span ${er}`,Be.dataset.__rowspan=String(er))}}catch{_()}})}catch{}return window.addEventListener("resize",_),window.addEventListener("notes-grid:recalc",_),()=>{$.disconnect(),window.removeEventListener("resize",_),window.removeEventListener("notes-grid:recalc",_);try{P!=null&&cancelAnimationFrame(P)}catch{}try{R&&R.disconnect()}catch{}}},[]);const z1=w.useMemo(()=>{var T;const E=new Map;for(let R=0;R{const E=Array.isArray(t)?t:[],T=e==null?null:Number(e),R=(i||"").trim().toLowerCase(),P=Ee=>{if(!E.length)return!0;const ot=(Ee.noteLabels||[]).map(Be=>{var Qe;return(Qe=Be.label)==null?void 0:Qe.id}).filter(Be=>typeof Be=="number");return E.some(Be=>ot.includes(Be))},j=Ee=>!!(!R||String(Ee.title||"").toLowerCase().includes(R)||String(Ee.body||"").toLowerCase().includes(R)||(Array.isArray(Ee.items)?Ee.items:[]).some(Qe=>String(Qe.content||"").toLowerCase().includes(R))||(Array.isArray(Ee.noteLabels)?Ee.noteLabels:[]).some(Qe=>{var Et;return String(((Et=Qe.label)==null?void 0:Et.name)||"").toLowerCase().includes(R)})),_=Ee=>{var Qe;if(T==null||!Number.isFinite(T))return!0;const ot=Array.isArray(Ee.viewerCollections)?Ee.viewerCollections:[];for(const Et of ot){const Gt=Et&&typeof Et.id=="number"?Number(Et.id):null;if(Gt!=null&&Number.isFinite(Gt)&&Number(Gt)===Number(T))return!0}const Be=Array.isArray(Ee.noteCollections)?Ee.noteCollections:[];for(const Et of Be){const Gt=Et&&typeof Et.collectionId=="number"?Number(Et.collectionId):typeof((Qe=Et==null?void 0:Et.collection)==null?void 0:Qe.id)=="number"?Number(Et.collection.id):null;if(Gt!=null&&Number.isFinite(Gt)&&Number(Gt)===Number(T))return!0}return!1},O=r==null?null:Number(r),$=Ee=>{var ot,Be;if(O==null||!Number.isFinite(O))return!0;try{const Qe=typeof((ot=Ee==null?void 0:Ee.owner)==null?void 0:ot.id)=="number"?Number(Ee.owner.id):typeof(Ee==null?void 0:Ee.ownerId)=="number"?Number(Ee.ownerId):null;if(Qe!=null&&Number(Qe)===Number(O))return!0;const Et=Array.isArray(Ee==null?void 0:Ee.collaborators)?Ee.collaborators:[];for(const Gt of Et){const Jr=typeof((Be=Gt==null?void 0:Gt.user)==null?void 0:Be.id)=="number"?Number(Gt.user.id):typeof(Gt==null?void 0:Gt.userId)=="number"?Number(Gt.userId):null;if(Jr!=null&&Number(Jr)===Number(O))return!0}}catch{}return!1},ie=m.filter(Ee=>Ee.pinned).filter(P).filter(_).filter($).filter(j),le=m.filter(Ee=>!Ee.pinned).filter(P).filter(_).filter($).filter(j),be=P1(ie),Fe=P1(le);return{pinned:be,others:Fe,pinnedGroups:_1(be),otherGroups:_1(Fe)}},[m,t,e,r,i,s]),Wc=w.useMemo(()=>{var ie,le;const E=[],T=Array.isArray(n)?n:[],R=T.length?T.map(be=>String(be.name||"")).filter(Boolean).join(" / "):"";R&&E.push({id:"collection",text:`Collection: ${R}`,onClear:()=>{try{u&&u([])}catch{}}});const P=Array.isArray(t)?t:[];if(P.length){const be=new Map;for(const Ee of m){const ot=Array.isArray(Ee==null?void 0:Ee.noteLabels)?Ee.noteLabels:[];for(const Be of ot){const Qe=typeof((ie=Be==null?void 0:Be.label)==null?void 0:ie.id)=="number"?Number(Be.label.id):null,Et=typeof((le=Be==null?void 0:Be.label)==null?void 0:le.name)=="string"?String(Be.label.name):null;Qe!=null&&Et&&be.set(Qe,Et)}}const Fe=P.map(Ee=>be.get(Number(Ee))||`#${Number(Ee)}`).join(", ");E.push({id:"labels",text:`Labels: ${Fe}`,onClear:()=>{try{l&&l([])}catch{}}})}const j=r==null?null:Number(r);if(j!=null&&Number.isFinite(j)){let be="";try{e:for(const Fe of m){const Ee=Fe==null?void 0:Fe.owner;if(Ee&&typeof Ee.id=="number"&&Number(Ee.id)===j){be=String(Ee.name||Ee.email||j);break e}const ot=Array.isArray(Fe==null?void 0:Fe.collaborators)?Fe.collaborators:[];for(const Be of ot){const Qe=Be==null?void 0:Be.user;if(Qe&&typeof Qe.id=="number"&&Number(Qe.id)===j){be=String(Qe.name||Qe.email||j);break e}}}}catch{}E.push({id:"collaborator",text:`With: ${be||String(j)}`,onClear:()=>{try{a&&a(null)}catch{}}})}const _=(i||"").trim();_&&E.push({id:"search",text:`Search: ${_}`,onClear:()=>{try{d&&d("")}catch{}}});const O=s||Ks;if(O.sortKey!=="default"){const be=O.sortKey==="createdAt"?`Date created: ${O.sortDir==="asc"?"Ascending":"Descending"}`:O.sortKey==="updatedAt"?`Date updated: ${O.sortDir==="asc"?"Ascending":"Descending"}`:O.sortKey==="title"?`Alphabetical: ${O.sortDir==="asc"?"A→Z":"Z→A"}`:`Sort: ${String(O.sortKey)}`;E.push({id:"sort",text:be,onClear:()=>{try{h&&h({...O,sortKey:"default",sortDir:Ks.sortDir})}catch{}}})}if(O.groupBy&&O.groupBy!=="none"&&E.push({id:"group",text:`Grouping: ${O.groupBy==="week"?"Week":O.groupBy==="month"?"Month":String(O.groupBy)}`,onClear:()=>{try{h&&h({...O,groupBy:"none"})}catch{}}}),O.smartFilter&&O.smartFilter!=="none"){const be=O.smartFilter==="dueSoon"?"Filter: Due soon":O.smartFilter==="leastAccessed"?"Filter: Least accessed":O.smartFilter==="mostEdited"?"Filter: Most edited":O.smartFilter==="atRisk"?"Filter: At risk":`Filter: ${String(O.smartFilter)}`;E.push({id:"smartFilter",text:be,onClear:()=>{try{h&&h({...O,smartFilter:"none"})}catch{}}})}const $=E.length>0;return{title:R||"All notes",chips:E,show:!0,hasAnyFilter:$}},[n,t,r,i,m,s,l,a,u,d,h]);w.useEffect(()=>{if(!sn)return;const E=K.current;if(!E)return;K.current=null;const T=E.section==="pinned"?Je.current:At.current;if(!T)return;const R=Array.from(T.querySelectorAll(".notes-masonry-col"));if(!R.length)return;const P=E.heights,j=R.map(O=>O.getBoundingClientRect().height),_=oe("swap");for(let O=0;O{try{$.style.transition="",$.style.height="",$.removeEventListener("transitionend",le)}catch{}};$.addEventListener("transitionend",le)}},[sn,m]);function yf(E,T){const R=new Map;he.current.forEach((P,j)=>{P&&R.set(j,P.getBoundingClientRect())}),fe.current=!0,g(P=>{const j=[...P],_=j[E],O=j[T];return!_||!O?P:(j[E]=O,j[T]=_,j)}),requestAnimationFrame(()=>{const P=new Map;he.current.forEach((j,_)=>{j&&P.set(_,j.getBoundingClientRect())}),P.forEach((j,_)=>{const O=R.get(_),$=he.current.get(_);if(!O||!$)return;const ie=O.left-j.left,le=O.top-j.top;if(ie===0&&le===0)return;$.style.transition="none",$.style.transform=`translate(${ie}px, ${le}px)`,$.getBoundingClientRect(),$.style.transition=`transform ${oe("swap")}ms ease-in-out`,$.style.transform="";const be=()=>{try{$.style.transition="",$.removeEventListener("transitionend",be)}catch{}};$.addEventListener("transitionend",be)})})}function vf(E,T){const R=new Map;he.current.forEach((P,j)=>{P&&R.set(j,P.getBoundingClientRect())}),fe.current=!0,g(P=>{const j=[...P];if(E<0||T<0||E>=j.length||T>=j.length)return P;const[_]=j.splice(E,1);return j.splice(T,0,_),j}),requestAnimationFrame(()=>{const P=new Map;he.current.forEach((j,_)=>{j&&P.set(_,j.getBoundingClientRect())}),P.forEach((j,_)=>{const O=R.get(_),$=he.current.get(_);if(!O||!$)return;const ie=O.left-j.left,le=O.top-j.top;if(ie===0&&le===0)return;$.style.transition="none",$.style.transform=`translate(${ie}px, ${le}px)`,$.getBoundingClientRect(),$.style.transition=`transform ${oe("rearrange")}ms ease-in-out`,$.style.transform="";const be=()=>{try{$.style.transition="",$.removeEventListener("transitionend",be)}catch{}};$.addEventListener("transitionend",be)})})}async function bf(E){try{localStorage.setItem("notesOrder",JSON.stringify(E.map(T=>T.id)))}catch{}if(p)try{const T=E.map(P=>P.id),R=await fetch("/api/notes/order",{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${p}`},body:JSON.stringify({ids:T})});if(!R.ok)throw new Error(await R.text())}catch(T){console.error("Failed to persist note order to server",T)}}const xo=w.useCallback(E=>{if(E&&E.type==="filter:collection"&&typeof E.collectionId=="number"){try{a&&a(null)}catch{}try{c&&c(Number(E.collectionId),typeof E.collectionName=="string"?String(E.collectionName):void 0)}catch{}return}if(E&&E.type==="filter:collaborator"&&typeof E.userId=="number"){try{a&&a(Number(E.userId))}catch{}return}if(E&&E.type==="filter:labels"){const T=typeof E.labelId=="number"?Number(E.labelId):null;if(T!=null&&Number.isFinite(T)){try{l&&l([T])}catch{}return}if(Array.isArray(E.labelIds)){const R=E.labelIds.map(P=>Number(P)).filter(P=>Number.isFinite(P));try{l&&l(R)}catch{}return}}if(E&&E.type==="labels"&&typeof E.noteId=="number"&&Array.isArray(E.labels)){pe(E.noteId,E.labels);return}if(E&&E.type==="images"&&typeof E.noteId=="number"&&Array.isArray(E.images)){tt(E.noteId,E.images);return}if(E&&E.type==="color"&&typeof E.noteId=="number"){Bt(E.noteId,typeof E.color=="string"?String(E.color):"");return}if(E&&E.type==="collections"&&typeof E.noteId=="number"&&Array.isArray(E.collections)){Kt(E.noteId,E.collections);return}if(E&&E.type==="collection"&&typeof E.noteId=="number"){V();return}V()},[p,s,i,t,e,l,a,c]);w.useEffect(()=>{!v&&p&&x(!0)},[v,p]);const zg=E=>{try{const T=Number((E==null?void 0:E.cardSpan)||1);return Math.max(1,Math.min(S==="phone"?2:3,Number.isFinite(T)?T:1))}catch{return 1}},Fg=sn&&_t!=null&&st.get(Number(_t))||null,U1=A&&G!=null&&st.get(Number(G))||null;function H1(E,T,R,P,j){if(!A||se||!Zt||E.button!=null&&E.button!==0||$i(E.target)||Re.current!=null||Se.current)return;const _=he.current.get(Number(T));if(!_)return;const O=_.getBoundingClientRect();if(!O||O.width<10||O.height<10)return;const $=String(E.pointerType||"mouse"),ie=E.pointerId??1,le=E.currentTarget;if(ce.current={noteId:Number(T),section:R,sectionIds:Array.isArray(P)?P.map(be=>Number(be)).filter(be=>Number.isFinite(be)):[],startClientX:E.clientX,startClientY:E.clientY,lastClientX:E.clientX,lastClientY:E.clientY,pointerId:ie,pointerType:$,touchArmed:!1,longPressTimerId:null,captureEl:le},bt.current={x:E.clientX,y:E.clientY},kt.current=O,ae.current=Math.max(1,Math.min(3,Number(j)||1)),F.current=(()=>{var Ee;const be=(Ee=_==null?void 0:_.dataset)==null?void 0:Ee.__rowspan,Fe=be?Number(be):NaN;return Number.isFinite(Fe)&&Fe>0?Fe:2})(),$==="touch"){const be=window.setTimeout(()=>{var Et,Gt;const Fe=ce.current;if(!Fe||Number(Fe.pointerId)!==Number(ie)||Number(Fe.noteId)!==Number(T)||We.current||Re.current!=null||Se.current)return;const Ee=typeof Fe.lastClientX=="number"?Fe.lastClientX:Fe.startClientX,ot=typeof Fe.lastClientY=="number"?Fe.lastClientY:Fe.startClientY,Be=Ee-Fe.startClientX,Qe=ot-Fe.startClientY;if(Be*Be+Qe*Qe>9){ce.current=null;return}Fe.touchArmed=!0;try{(Gt=(Et=Fe.captureEl)==null?void 0:Et.setPointerCapture)==null||Gt.call(Et,Fe.pointerId)}catch{}$g(Fe.sectionIds)},220);ce.current.longPressTimerId=be;return}}function $g(E){const T=ce.current,R=kt.current;if(!T||!R)return;const P=T.noteId,j=Math.max(0,E.findIndex(_=>Number(_)===Number(P)));We.current=!0,Jt(!0),de(P),$e(T.section),Ne(Yt(E,P,j));try{document.documentElement.classList.add("is-note-rearrange-dragging")}catch{}T.pointerType==="touch"&&U(),requestAnimationFrame(()=>{const _=Tt.current;_&&(_.style.transform="translate(0px, 0px) scale(1.03)")})}function V1(E,T){const R=kt.current,P=bt.current;if(!R||!P)return{dx:0,dy:0};let j=E-P.x,_=T-P.y;const O=Q.current;if(!O)return{dx:j,dy:_};const $=18,ie=O.left-$,le=O.right-R.width+$,be=O.top-$,Fe=O.bottom-R.height+$,Ee=R.left+j,ot=R.top+_,Be=Math.min(Math.max(Ee,ie),le),Qe=Math.min(Math.max(ot,be),Fe);return j=Be-R.left,_=Qe-R.top,{dx:j,dy:_}}function Pj(E,T){const R=kt.current,P=bt.current,j=Tt.current;if(!R||!P||!j)return;const{dx:_,dy:O}=V1(E,T);j.style.transform=`translate(${_}px, ${O}px) scale(1.03)`}return w.useEffect(()=>{if(!A)return;const E=R=>{const P=ce.current;if(!P||P.pointerId!=null&&R.pointerId!=null&&Number(R.pointerId)!==Number(P.pointerId))return;P.pointerType==="touch"&&(P.lastClientX=R.clientX,P.lastClientY=R.clientY);const j=Re.current,_=P.sectionIds;if(!(!_||!_.length)){if(j==null&&!We.current){const O=R.clientX-P.startClientX,$=R.clientY-P.startClientY;if(P.pointerType==="touch"){const ie=Math.abs(O),le=Math.abs($),be=4;if(!P.touchArmed){if(ie>be||le>be){try{P.longPressTimerId!=null&&window.clearTimeout(P.longPressTimerId)}catch{}ce.current=null}return}$g(_)}else{if(O*O+$*$<6*6)return;$g(_)}}if(We.current){try{R.preventDefault()}catch{}nt.current==null&&(nt.current=requestAnimationFrame(()=>{nt.current=null,Pj(R.clientX,R.clientY);const O=et.current,$=pt.current;if(!O.length||$.length!==O.length)return;const ie=kt.current,le=bt.current;if(!ie||!le)return;const{dx:be,dy:Fe}=V1(R.clientX,R.clientY),Ee=ie.left+be,ot=ie.top+Fe,Be={left:Ee,top:ot,right:Ee+ie.width,bottom:ot+ie.height},Qe=Ee+ie.width/2,Et=ot+ie.height/2,Gt=on(Be),Jr=Gt.idx>=0&&Gt.area>0?Gt.idx:Qt(Qe,Et);if(Jr<0)return;const Zn=It.current;if(Jr===Zn)return;const er=$[Zn]||null,li=$[Jr]||null;if(!er||!li)return;const Ds=li.cx-er.cx,tr=li.cy-er.cy,nr=(li.cx+er.cx)/2,wf=(li.cy+er.cy)/2,En=(Qe-nr)*Ds+(Et-wf)*tr,hr=Math.sqrt(Ds*Ds+tr*tr)||1,Bn=P.pointerType==="touch"?10:6;En<=Bn*hr||zt(Jr)}))}}},T=R=>{const P=ce.current;if(!P||P.pointerId!=null&&R.pointerId!=null&&Number(R.pointerId)!==Number(P.pointerId))return;try{P.longPressTimerId!=null&&window.clearTimeout(P.longPressTimerId)}catch{}if(!We.current||Re.current==null){ce.current=null;return}const j=Number(Re.current),_=qe.current,O=et.current,$=O.indexOf("spacer"),ie=$>=0?O[$+1]:null,le=typeof ie=="number"?Number(ie):null;Se.current=!0;const be=Tt.current,Fe=kt.current,Ee=Math.max(150,Math.min(650,oe("rearrange"))),ot=Ue.current,Be=ot?ot.getBoundingClientRect():null;if(be&&Fe&&Be){const Et=Be.left-Fe.left,Gt=Be.top-Fe.top;be.style.transition=`transform ${Ee}ms cubic-bezier(.2,.9,.2,1)`,be.style.transform=`translate(${Et}px, ${Gt}px) scale(1)`}_&&g(Et=>{var li,Ds;const Gt=Et.findIndex(tr=>Number(tr==null?void 0:tr.id)===j);if(Gt<0)return Et;const Jr=Et[Gt];if(!!Jr.pinned!=(_==="pinned"))return Et;const Zn=[...Et];Zn.splice(Gt,1);let er=Zn.length;if(le!=null){const tr=Zn.findIndex(nr=>Number(nr==null?void 0:nr.id)===le);tr>=0&&(er=tr)}else if(_==="pinned"){let tr=-1;for(let nr=0;nr{try{bf(Zn)}catch{}}),Zn});const Qe=()=>{try{be&&(be.style.transition="",be.removeEventListener("transitionend",Qe))}catch{}Jt(!1),bi()};be?(be.addEventListener("transitionend",Qe),window.setTimeout(Qe,Ee+80)):Qe()};return window.addEventListener("pointermove",E,{capture:!0,passive:!1}),window.addEventListener("pointerup",T,{capture:!0}),window.addEventListener("pointercancel",T,{capture:!0}),()=>{try{window.removeEventListener("pointermove",E,{capture:!0})}catch{}try{window.removeEventListener("pointerup",T,{capture:!0})}catch{}try{window.removeEventListener("pointercancel",T,{capture:!0})}catch{}}},[A,se,p]),v&&!b?f.jsx("div",{children:"Loading notes…"}):f.jsxs("section",{className:"notes-area",children:[f.jsxs("div",{className:"take-note-sticky",children:[f.jsx(tG,{onCreated:V,openRequest:{nonce:Ye,mode:Ze},activeCollection:Mt}),Wc.show&&f.jsx("div",{className:"grid-context",role:"region","aria-label":"Current view",children:f.jsxs("div",{className:"grid-context__text",children:[f.jsxs("div",{className:"grid-context__title-row",children:[f.jsx("div",{className:"grid-context__title",children:Wc.title}),!!o&&!!Wc.hasAnyFilter&&f.jsx("button",{type:"button",className:"grid-context__clear",onClick:()=>{try{o()}catch{}},"aria-label":"Clear all filters",title:"Clear",children:"Clear"})]}),!!((W1=Wc.chips)!=null&&W1.length)&&f.jsx("div",{className:"grid-context__chips","aria-label":"Active filters",children:Wc.chips.map(E=>f.jsxs("span",{className:"grid-chip",children:[f.jsx("span",{className:"grid-chip__text",title:String(E.text||""),children:String(E.text||"")}),typeof E.onClear=="function"&&f.jsx("button",{type:"button",className:"grid-chip__clear",onClick:()=>{try{E.onClear()}catch{}},"aria-label":`Clear ${String(E.text||"filter")}`,title:"Clear",children:"×"})]},String(E.id)))})]})})]}),W&&f.jsx("div",{className:"mobile-add-backdrop","aria-hidden":"true",onPointerDown:()=>Le(!1)}),f.jsxs("div",{className:"mobile-add-note","aria-label":"Add note",children:[W&&f.jsxs("div",{className:"mobile-add-menu",role:"menu","aria-label":"Create",children:[f.jsxs("button",{type:"button",className:"mobile-add-menu-item",role:"menuitem",onClick:()=>vt("text"),children:[f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:f.jsx("path",{fill:"currentColor",d:"M6 2h9l5 5v15a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm8 1.5V8h4.5L14 3.5ZM7 11h10v1.6H7V11Zm0 4h10v1.6H7V15Zm0 4h7v1.6H7V19Z"})}),f.jsx("span",{children:"New note"})]}),f.jsxs("button",{type:"button",className:"mobile-add-menu-item",role:"menuitem",onClick:()=>vt("checklist"),children:[f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-hidden":!0,focusable:"false",children:f.jsx("path",{fill:"currentColor",d:"M9.2 7.2 7.9 5.9 6 7.8 5.1 6.9 4 8l2 2 3.2-3.2ZM10.5 8H20v1.6h-9.5V8Zm-1.3 6.2-1.3-1.3L6 14.8l-.9-.9L4 15l2 2 3.2-3.2ZM10.5 15H20v1.6h-9.5V15Z"})}),f.jsx("span",{children:"New checklist"})]})]}),f.jsx("button",{type:"button",className:"mobile-add-fab","aria-haspopup":"menu","aria-expanded":W,onClick:()=>Le(E=>!E),children:"+"})]}),f.jsx(rG,{open:it!=null,mode:it||"text",onClose:()=>St(null),onCreated:V,activeCollection:Mt}),sn?f.jsxs(X3,{sensors:De,collisionDetection:l3,onDragStart:He,onDragOver:Ot,onDragEnd:jt,onDragCancel:Ke,children:[F1.length>0&&f.jsxs("div",{className:"notes-section",children:[f.jsx("h4",{className:"section-title",children:"Pinned"}),$1.map(E=>f.jsxs("div",{children:[E.title&&E.key!=="all"&&f.jsx("h5",{className:"section-title",style:{marginTop:10,marginBottom:6,color:"var(--muted)"},children:E.title}),f.jsx("div",{className:"notes-grid notes-grid--swap",ref:Je,children:E.notes.map(T=>{const R=zg(T),P=(j,_)=>{j?he.current.set(_,j):he.current.delete(_)};return f.jsx(RN,{note:T,setItemRef:P,style:{gridColumn:`span ${R}`},isDragSource:_t!=null&&Number(_t)===Number(T.id),isDragTarget:bn!=null&&Number(bn)===Number(T.id),disabled:se,onChange:xo},T.id)})})]},E.key))]}),f.jsx("div",{className:"notes-section",children:B1.map(E=>f.jsxs("div",{children:[E.title&&E.key!=="all"&&f.jsx("h5",{className:"section-title",style:{marginTop:10,marginBottom:6,color:"var(--muted)"},children:E.title}),f.jsx("div",{className:"notes-grid notes-grid--swap",ref:At,children:E.notes.map(T=>{const R=zg(T),P=(j,_)=>{j?he.current.set(_,j):he.current.delete(_)};return f.jsx(RN,{note:T,setItemRef:P,style:{gridColumn:`span ${R}`},isDragSource:_t!=null&&Number(_t)===Number(T.id),isDragTarget:bn!=null&&Number(bn)===Number(T.id),disabled:se,onChange:xo},T.id)})})]},E.key))}),f.jsx(y4,{children:Fg?f.jsx("div",{className:"note-drag-ghost",style:{width:rn?`${rn.width}px`:(()=>{const E=zg(Fg);return`calc(${E} * var(--note-card-width) + ${Math.max(0,E-1)} * var(--gap))`})(),height:rn?`${rn.height}px`:void 0},children:f.jsx(El,{note:Fg,onChange:xo})}):null})]}):f.jsxs(f.Fragment,{children:[F1.length>0&&f.jsxs("div",{className:"notes-section",children:[f.jsx("h4",{className:"section-title",children:"Pinned"}),$1.map(E=>f.jsxs("div",{children:[E.title&&E.key!=="all"&&f.jsx("h5",{className:"section-title",style:{marginTop:10,marginBottom:6,color:"var(--muted)"},children:E.title}),f.jsx("div",{className:"notes-grid"+(wt?" notes-grid--manual":""),ref:Je,children:A&&ve==="pinned"&&Ve.length?Ve.map((T,R)=>{var $;if(T==="spacer")return f.jsx("div",{ref:Ue,className:"note-rearrange-spacer",style:{gridColumn:`span ${ae.current}`,gridRowEnd:`span ${F.current}`,height:`${(($=kt.current)==null?void 0:$.height)||0}px`}},"spacer");const P=Number(T),j=st.get(P);if(!j)return null;const _=Math.max(1,Math.min(3,Number(j.cardSpan||1))),O=(pa==null?void 0:pa.get(Number(j.id)))||null;return f.jsx("div",{"data-note-id":j.id,style:O?{gridColumnStart:O.colStart,gridColumnEnd:`span ${O.colSpan}`,gridRowStart:O.rowStart,gridRowEnd:`span ${O.rowSpan}`}:{gridColumn:`span ${_}`},ref:ie=>{ie?he.current.set(j.id,ie):he.current.delete(j.id)},children:f.jsx(El,{note:j,onChange:xo})},j.id)}):E.notes.map(T=>{const R=z1.get(Number(T.id))??-1,P=Math.max(1,Math.min(3,Number(T.cardSpan||1))),j=(pa==null?void 0:pa.get(Number(T.id)))||null,_=E.notes.map($=>Number($.id)).filter($=>Number.isFinite($)),O=A?{draggable:!1,onPointerDown:$=>H1($,Number(T.id),"pinned",_,P)}:{draggable:Zt&&!se,onDragStart:$=>{Zt&&(ue.current=Number(T.id),$.dataTransfer.setData("text/plain",String(R)),me.current=R)},onDragEnd:()=>{Zt&&(me.current=null,ue.current=null)},onDragOver:$=>{if(Zt){$.preventDefault();try{const ie=localStorage.getItem("prefs.dragBehavior")||"swap",le=me.current;if(ie==="rearrange"&&le!==null&&le!==R){const be=Date.now(),Ee=$.currentTarget.getBoundingClientRect(),ot=Math.min(28,Math.floor(Ee.height*.2)),Be=Math.min(20,Math.floor(Ee.width*.2)),Qe=$.clientY>Ee.top+ot&&$.clientYEe.left+Be&&$.clientXGt&&(vf(le,R),J.current=be,me.current=R)}}catch{}}},onDrop:$=>{if(!Zt)return;$.preventDefault();const ie=Number($.dataTransfer.getData("text/plain")),le=Number.isFinite(ie)?ie:me.current??-1,be=R;try{(localStorage.getItem("prefs.dragBehavior")||"swap")==="rearrange"?vf(le,be):yf(le,be)}catch{yf(le,be)}requestAnimationFrame(()=>{try{bf(C.current)}catch{}}),me.current=null,ue.current=null}};return f.jsx("div",{"data-note-id":T.id,style:j?{gridColumnStart:j.colStart,gridColumnEnd:`span ${j.colSpan}`,gridRowStart:j.rowStart,gridRowEnd:`span ${j.rowSpan}`}:{gridColumn:`span ${P}`},ref:$=>{$?he.current.set(T.id,$):he.current.delete(T.id)},...O,children:f.jsx(El,{note:T,onChange:xo})},T.id)})})]},E.key))]}),f.jsx("div",{className:"notes-section",children:B1.map(E=>f.jsxs("div",{children:[E.title&&E.key!=="all"&&f.jsx("h5",{className:"section-title",style:{marginTop:10,marginBottom:6,color:"var(--muted)"},children:E.title}),f.jsx("div",{className:"notes-grid"+(wt?" notes-grid--manual":""),ref:At,children:A&&ve==="others"&&Ve.length?Ve.map((T,R)=>{var $;if(T==="spacer")return f.jsx("div",{ref:Ue,className:"note-rearrange-spacer",style:{gridColumn:`span ${ae.current}`,gridRowEnd:`span ${F.current}`,height:`${(($=kt.current)==null?void 0:$.height)||0}px`}},"spacer");const P=Number(T),j=st.get(P);if(!j)return null;const _=Math.max(1,Math.min(3,Number(j.cardSpan||1))),O=(ma==null?void 0:ma.get(Number(j.id)))||null;return f.jsx("div",{"data-note-id":j.id,style:O?{gridColumnStart:O.colStart,gridColumnEnd:`span ${O.colSpan}`,gridRowStart:O.rowStart,gridRowEnd:`span ${O.rowSpan}`}:{gridColumn:`span ${_}`},ref:ie=>{ie?he.current.set(j.id,ie):he.current.delete(j.id)},children:f.jsx(El,{note:j,onChange:xo})},j.id)}):E.notes.map(T=>{const R=z1.get(Number(T.id))??-1,P=Math.max(1,Math.min(3,Number(T.cardSpan||1))),j=(ma==null?void 0:ma.get(Number(T.id)))||null,_=E.notes.map($=>Number($.id)).filter($=>Number.isFinite($)),O=A?{draggable:!1,onPointerDown:$=>H1($,Number(T.id),"others",_,P)}:{draggable:Zt&&!se,onDragStart:$=>{Zt&&(ue.current=Number(T.id),$.dataTransfer.setData("text/plain",String(R)),me.current=R)},onDragEnd:()=>{Zt&&(me.current=null,ue.current=null)},onDragOver:$=>{if(Zt){$.preventDefault();try{const ie=localStorage.getItem("prefs.dragBehavior")||"swap",le=me.current;if(ie==="rearrange"&&le!==null&&le!==R){const be=Date.now(),Ee=$.currentTarget.getBoundingClientRect(),ot=Math.min(28,Math.floor(Ee.height*.2)),Be=Math.min(20,Math.floor(Ee.width*.2)),Qe=$.clientY>Ee.top+ot&&$.clientYEe.left+Be&&$.clientXGt&&(vf(le,R),J.current=be,me.current=R)}}catch{}}},onDrop:$=>{if(!Zt)return;$.preventDefault();const ie=Number($.dataTransfer.getData("text/plain")),le=Number.isFinite(ie)?ie:me.current??-1,be=R;try{(localStorage.getItem("prefs.dragBehavior")||"swap")==="rearrange"?vf(le,be):yf(le,be)}catch{yf(le,be)}requestAnimationFrame(()=>{try{bf(C.current)}catch{}}),me.current=null,ue.current=null}};return f.jsx("div",{"data-note-id":T.id,style:j?{gridColumnStart:j.colStart,gridColumnEnd:`span ${j.colSpan}`,gridRowStart:j.rowStart,gridRowEnd:`span ${j.rowSpan}`}:{gridColumn:`span ${P}`},ref:$=>{$?he.current.set(T.id,$):he.current.delete(T.id)},...O,children:f.jsx(El,{note:T,onChange:xo})},T.id)})})]},E.key))})]}),A&&U1&&kt.current?zn.createPortal(f.jsx("div",{ref:Tt,className:"note-rearrange-overlay",style:{position:"fixed",left:`${kt.current.left}px`,top:`${kt.current.top}px`,width:`${kt.current.width}px`,height:`${kt.current.height}px`},children:f.jsx("div",{className:"note-rearrange-overlay-inner",children:f.jsx(El,{note:U1,onChange:xo})})}),document.body):null]})}function sG({onClose:t}){const{register:e,uploadPhoto:n}=Sr(),[r,i]=w.useState(""),[s,o]=w.useState(""),[l,a]=w.useState(""),[c,u]=w.useState(""),[d,h]=w.useState(""),[p,m]=w.useState(!1),[g,v]=w.useState(null),[y,b]=w.useState(null),[x,C]=w.useState(null),[S,M]=w.useState(null),N=l.length>0&&s===l;function z({ok:X}){return X?f.jsx("svg",{viewBox:"0 0 24 24",width:18,height:18,"aria-hidden":!0,focusable:"false",style:{color:"#4caf50"},children:f.jsx("path",{d:"M20 6L9 17l-5-5",fill:"none",stroke:"currentColor",strokeWidth:"2.6",strokeLinecap:"round",strokeLinejoin:"round"})}):f.jsx("svg",{viewBox:"0 0 24 24",width:18,height:18,"aria-hidden":!0,focusable:"false",style:{color:"#ff6e6e"},children:f.jsx("path",{d:"M6 6L18 18M18 6L6 18",fill:"none",stroke:"currentColor",strokeWidth:"2.6",strokeLinecap:"round",strokeLinejoin:"round"})})}async function ee(X){if(X.preventDefault(),v(null),!c.trim()||!r.trim()||!s){v("All fields are required");return}if(s!==l){v("Passwords do not match");return}m(!0);try{await e(r,s,c,d||void 0);try{if(x){const ye=await q(x);await n(ye)}}catch{}t()}catch(ye){v((ye==null?void 0:ye.message)??String(ye))}finally{m(!1)}}function L(X){var Ce;const ye=((Ce=X.target.files)==null?void 0:Ce[0])||null;C(ye);try{M(Te=>{try{Te&&URL.revokeObjectURL(Te)}catch{}return ye?URL.createObjectURL(ye):null})}catch{M(null)}}w.useEffect(()=>()=>{try{S&&URL.revokeObjectURL(S)}catch{}},[S]);function q(X){return new Promise((ye,Ce)=>{const Te=new FileReader;Te.onload=()=>ye(String(Te.result||"")),Te.onerror=se=>Ce(se),Te.readAsDataURL(X)})}return w.useEffect(()=>{fetch("/api/config").then(X=>X.json()).then(X=>b(!!X.userRegistrationEnabled)).catch(()=>b(!1))},[]),f.jsx("div",{className:"image-dialog-backdrop",children:f.jsxs("div",{className:"image-dialog",role:"dialog","aria-modal":!0,children:[f.jsxs("div",{className:"dialog-header",children:[f.jsx("strong",{children:"Register"}),f.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),f.jsxs("form",{onSubmit:ee,children:[f.jsx("div",{style:{marginBottom:8},children:f.jsx("input",{placeholder:"Name",value:c,onChange:X=>u(X.target.value),className:"image-url-input",required:!0})}),f.jsx("div",{style:{marginBottom:8},children:f.jsx("input",{placeholder:"Email",value:r,onChange:X=>i(X.target.value),className:"image-url-input"})}),f.jsx("div",{style:{marginBottom:8},children:f.jsx("input",{placeholder:"Password",type:"password",value:s,onChange:X=>o(X.target.value),className:"image-url-input"})}),f.jsx("div",{style:{marginBottom:8},children:f.jsx("input",{placeholder:"Confirm password",type:"password",value:l,onChange:X=>a(X.target.value),className:"image-url-input"})}),f.jsxs("div",{style:{marginBottom:12},children:[f.jsx("label",{style:{display:"block",marginBottom:6},children:"Profile photo (optional):"}),f.jsx("input",{type:"file",accept:"image/*",onChange:L}),S&&f.jsxs("div",{style:{marginTop:10,display:"flex",alignItems:"center",gap:10},children:[f.jsx("img",{src:S,alt:"Selected profile preview",style:{width:64,height:64,borderRadius:"50%",objectFit:"cover"}}),f.jsx("div",{style:{color:"var(--muted)",fontSize:13},children:"Preview"})]})]}),f.jsx("div",{style:{display:"grid",rowGap:6,margin:"10px 2px 12px"},"aria-live":"polite",children:f.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,color:"var(--muted)"},children:[f.jsx(z,{ok:N})," ",f.jsx("span",{children:"Passwords match"})]})}),f.jsx("div",{style:{marginBottom:8},children:f.jsx("input",{placeholder:"Invite token (optional)",value:d,onChange:X=>h(X.target.value),className:"image-url-input"})}),y===!1&&f.jsx("div",{style:{color:"salmon",marginBottom:8},children:"Registration is currently disabled — you must provide a valid invite token."}),g&&f.jsx("div",{style:{color:"salmon",marginBottom:8},children:g}),f.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:[f.jsx("button",{type:"button",className:"btn",onClick:t,children:"Cancel"}),f.jsx("button",{type:"submit",className:"btn",disabled:p||!c.trim()||!r.trim()||!s||!l||!N,children:p?"Registering...":"Register"})]})]})]})})}function oG({onClose:t}){const{login:e}=Sr(),[n,r]=w.useState(""),[i,s]=w.useState(""),[o,l]=w.useState(!1),[a,c]=w.useState(null);async function u(d){d.preventDefault(),c(null),l(!0);try{await e(n,i),t()}catch(h){c((h==null?void 0:h.message)??String(h))}finally{l(!1)}}return f.jsx("div",{className:"image-dialog-backdrop",children:f.jsxs("div",{className:"image-dialog",role:"dialog","aria-modal":!0,children:[f.jsxs("div",{className:"dialog-header",children:[f.jsx("strong",{children:"Sign in"}),f.jsx("button",{className:"icon-close",onClick:t,children:"✕"})]}),f.jsxs("form",{onSubmit:u,children:[f.jsx("div",{style:{marginBottom:8},children:f.jsx("input",{placeholder:"Email",value:n,onChange:d=>r(d.target.value),className:"image-url-input"})}),f.jsx("div",{style:{marginBottom:8},children:f.jsx("input",{placeholder:"Password",type:"password",value:i,onChange:d=>s(d.target.value),className:"image-url-input"})}),a&&f.jsx("div",{style:{color:"salmon",marginBottom:8},children:a}),f.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:[f.jsx("button",{type:"button",className:"btn",onClick:t,children:"Cancel"}),f.jsx("button",{type:"submit",className:"btn",disabled:o,children:o?"Signing in...":"Sign in"})]})]})]})})}function DN({selectedLabelIds:t,selectedCollectionId:e,collectionStack:n,selectedCollaboratorId:r,searchQuery:i,sortConfig:s,onClearAllFilters:o,onSetSelectedLabelIds:l,onSetSelectedCollaboratorId:a,onSelectCollectionById:c,onSetCollectionStack:u,onSetSearchQuery:d,onSortConfigChange:h}){const{user:p}=Sr(),[m,g]=w.useState(!1),[v,y]=w.useState(!1),[b,x]=w.useState(null);return w.useEffect(()=>{fetch("/api/config").then(C=>C.json()).then(C=>x(!!C.userRegistrationEnabled)).catch(()=>x(!1))},[]),p?f.jsx(iG,{selectedLabelIds:t||[],selectedCollectionId:e??null,collectionStack:n||[],selectedCollaboratorId:r??null,searchQuery:i,sortConfig:s,onClearAllFilters:o,onSetSelectedLabelIds:l,onSetSelectedCollaboratorId:a,onSelectCollectionById:c,onSetCollectionStack:u,onSetSearchQuery:d,onSortConfigChange:h}):f.jsxs("div",{style:{padding:24,display:"flex",flexDirection:"column",alignItems:"center"},children:[f.jsx("h2",{children:"Welcome to FreemanNotes"}),f.jsx("p",{children:"Please sign in to view and manage your notes."}),f.jsxs("div",{style:{display:"flex",gap:8,marginTop:12},children:[f.jsx("button",{className:"btn",onClick:()=>y(!0),children:"Sign in"}),b&&f.jsx("button",{className:"btn",onClick:()=>g(!0),children:"Create account"})]}),m&&f.jsx(sG,{onClose:()=>g(!1)}),v&&f.jsx(oG,{onClose:()=>y(!1)})]})}function lG({onClose:t,isPhone:e}){const{canInstall:n,isInstalled:r,promptInstall:i}=Mw(),s=async()=>{const o=await i();try{t()}catch{}return o};return f.jsx("div",{className:`image-dialog-backdrop prefs-backdrop${e?" phone":""}`,children:f.jsxs("div",{className:`prefs-dialog${e?" phone":""} pwa-install-dialog`,role:"dialog","aria-modal":!0,"aria-label":"Install app",children:[f.jsxs("div",{className:"dialog-header prefs-header",children:[f.jsx("span",{}),f.jsx("strong",{className:"prefs-title",children:"Install app"}),f.jsx("button",{className:"icon-close",type:"button",onClick:t,"aria-label":"Close",children:"✕"})]}),f.jsx("div",{className:"dialog-body prefs-body",children:r?f.jsx("div",{style:{color:"var(--muted)"},children:"Freeman Notes is already installed."}):n?f.jsxs("div",{style:{display:"grid",gap:12},children:[f.jsx("div",{style:{color:"var(--muted)",lineHeight:1.45},children:"Install Freeman Notes for faster launch and an app-like fullscreen experience."}),f.jsxs("div",{style:{display:"flex",gap:10,justifyContent:"flex-end"},children:[f.jsx("button",{className:"btn",type:"button",onClick:t,children:"Not now"}),f.jsx("button",{className:"btn",type:"button",onClick:s,children:"Install"})]})]}):f.jsxs("div",{style:{display:"grid",gap:10},children:[f.jsx("div",{style:{color:"var(--muted)",lineHeight:1.45},children:"If you don’t see an install option, open your browser menu and choose “Install app” or “Add to Home screen”."}),f.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:f.jsx("button",{className:"btn",type:"button",onClick:t,children:"Close"})})]})})]})})}function aG(){return f.jsx(E_,{children:f.jsx(S_,{children:f.jsx(cG,{})})})}function cG(){const{user:t,token:e}=Sr(),{canInstall:n,isInstalled:r}=Mw(),[i,s]=B.useState(!1),o=B.useRef(0),[l,a]=B.useState([]),[c,u]=B.useState(null),[d,h]=B.useState([]),[p,m]=B.useState(!1),[g,v]=B.useState(!1),[y,b]=B.useState(!1),[x,C]=B.useState(""),[S,M]=B.useState(Ks),N=d.length?Number(d[d.length-1].id):null,z=B.useRef([]),ee=B.useRef(!1),L=B.useRef(0),q=B.useRef(!1),X=B.useCallback(()=>{a([]),u(null),h([]),C(""),M(Ks)},[]),ye=B.useCallback(async(se,he)=>{const J=Number(se);if(Number.isFinite(J)){if(!e){h([{id:J,name:String(he||J)}]);return}try{const me=await fetch(`/api/collections/${encodeURIComponent(String(J))}/breadcrumb`,{headers:{Authorization:`Bearer ${e}`}});if(!me.ok)throw new Error(await me.text());const ue=await me.json(),W=(Array.isArray(ue==null?void 0:ue.breadcrumb)?ue.breadcrumb:[]).map(Le=>({id:Number(Le.id),name:String(Le.name||"")})).filter(Le=>Number.isFinite(Le.id)&&Le.name.length);W.length?h(W):h([{id:J,name:String(he||J)}])}catch{h([{id:J,name:String(he||J)}])}}},[e]),Ce=se=>{a(he=>he.includes(se)?he.filter(J=>J!==se):[...he,se])},Te=()=>a([]);return B.useEffect(()=>{var he,J;function se(){try{const me=window.matchMedia,ue=!!(me&&(me("(pointer: coarse)").matches||me("(any-pointer: coarse)").matches)),fe=window.visualViewport&&typeof window.visualViewport.width=="number"?window.visualViewport.width:window.innerWidth,W=window.visualViewport&&typeof window.visualViewport.height=="number"?window.visualViewport.height:window.innerHeight,Le=Math.min(fe,W);b(ue&&Le<=600)}catch{b(!1)}}se(),window.addEventListener("resize",se);try{(he=window.visualViewport)==null||he.addEventListener("resize",se)}catch{}try{(J=window.visualViewport)==null||J.addEventListener("scroll",se)}catch{}return()=>{var me,ue;window.removeEventListener("resize",se);try{(me=window.visualViewport)==null||me.removeEventListener("resize",se)}catch{}try{(ue=window.visualViewport)==null||ue.removeEventListener("scroll",se)}catch{}}},[]),B.useEffect(()=>{if(t&&!r&&n)try{const se=Date.now(),he=Number(localStorage.getItem("pwa.installNudge.dismissedAt")||"0")||0,J=7*24*60*60*1e3;if(he&&se-he{try{s(!0)}catch{}},900);return()=>{try{window.clearTimeout(me)}catch{}}}catch{}},[t,n,r]),B.useEffect(()=>{if(y&&!ee.current){ee.current=!0;try{history.replaceState({...history.state||{},__freemannotes_base:!0},document.title),history.pushState({...history.state||{},__freemannotes_sentinel:!0},document.title)}catch{}}},[y]),B.useEffect(()=>{if(!y)return;const se=z.current,he=ue=>{var fe;try{const W=ue==null?void 0:ue.detail,Le=String((W==null?void 0:W.id)||""),Ye=W==null?void 0:W.onBack;if(!Le||typeof Ye!="function")return;for(let Y=se.length-1;Y>=0;Y--)((fe=se[Y])==null?void 0:fe.id)===Le&&se.splice(Y,1);se.push({id:Le,onBack:Ye});try{history.pushState({...history.state||{},__freemannotes_overlay:!0,__freemannotes_overlay_id:Le},document.title)}catch{}}catch{}},J=ue=>{var fe;try{const W=ue==null?void 0:ue.detail,Le=String((W==null?void 0:W.id)||"");if(!Le)return;for(let Ye=se.length-1;Ye>=0;Ye--)((fe=se[Ye])==null?void 0:fe.id)===Le&&se.splice(Ye,1)}catch{}},me=ue=>{var fe;try{if(!y)return;if(se.length>0){const Ye=se.pop();try{(fe=Ye==null?void 0:Ye.onBack)==null||fe.call(Ye)}catch{}return}const W=ue==null?void 0:ue.state;if(!W||!!W.__freemannotes_base){if(q.current){q.current=!1;return}const Ye=Date.now(),Y=L.current||0;if(L.current=Ye,Ye-Y<=800&&window.confirm("Exit FreemanNotes?")){q.current=!0,window.setTimeout(()=>{var it;try{history.back()}catch{}try{(it=window.close)==null||it.call(window)}catch{}},0);return}window.setTimeout(()=>{try{history.go(1)}catch{}},0)}}catch{}};return window.addEventListener("freemannotes:back/register",he),window.addEventListener("freemannotes:back/unregister",J),window.addEventListener("popstate",me),()=>{window.removeEventListener("freemannotes:back/register",he),window.removeEventListener("freemannotes:back/unregister",J),window.removeEventListener("popstate",me)}},[y]),B.useEffect(()=>{if(!g)return;function se(he){he.key==="Escape"&&v(!1)}return window.addEventListener("keydown",se),()=>window.removeEventListener("keydown",se)},[g]),B.useEffect(()=>{y||v(!1)},[y]),B.useEffect(()=>{if(!y)return;let se=!1,he=!1,J=!1,me=0,ue=0,fe=0,W=0,Le=null,Ye=null;const Y=140,Ze=24,Pt=28,it=80,St=360,Mt=8,vt=1.2;function We(Ue){const nt=Ue;if(!nt)return!1;try{return nt.closest(".note-card")?!!nt.closest('input, textarea, select, button, a, [contenteditable="true"]'):!!nt.closest('input, textarea, select, button, a, [contenteditable="true"], .take-note-expanded, .image-dialog, .prefs-dialog')}catch{return!1}}function ce(Ue,nt,pt,Q,F){if(We(pt))return!1;let ae=!1;try{const D=pt;ae=!!(D&&D.closest&&D.closest(".note-card"))}catch{}const Se=!g&&Ue<=Y&&(!ae||Ue<=Ze),Pe=g&&Ue<=St;return!Se&&!Pe?!1:(me=Ue,ue=nt,fe=Ue,W=nt,se=!0,Le=Q,Ye=F,he=Se,J=Pe,!0)}function Re(Ue,nt,pt){fe=Ue,W=nt;const Q=fe-me,F=W-ue;if(Math.abs(F)>it&&Math.abs(F)>Math.abs(Q)*vt){se=!1,Le=null,Ye=null,he=!1,J=!1;return}if(pt&&Math.abs(Q)>Mt&&Math.abs(Q)>Math.abs(F)*vt&&pt(),he&&Q>=Pt&&Math.abs(F)<=it){v(!0),se=!1,Le=null,Ye=null,he=!1,J=!1;return}if(J&&Q<=-34&&Math.abs(F)<=it){v(!1),se=!1,Le=null,Ye=null,he=!1,J=!1;return}}function qe(Ue){var nt,pt;try{if(Ue.pointerType!=="touch"||Le!=null||We(Ue.target)||!ce(Ue.clientX,Ue.clientY,Ue.target,Ue.pointerId,null))return;try{(pt=(nt=Ue.target)==null?void 0:nt.setPointerCapture)==null||pt.call(nt,Ue.pointerId)}catch{}}catch{}}function It(Ue){try{if(!se||Le==null||Ue.pointerId!==Le)return;Re(Ue.clientX,Ue.clientY,()=>Ue.preventDefault())}catch{}}function et(Ue){try{if(Le==null||Ue.pointerId!==Le)return}catch{}se=!1,Le=null,Ye=null,he=!1,J=!1}function kt(Ue){try{if(Ye!=null||Le!=null||!Ue.touches||Ue.touches.length!==1)return;const nt=Ue.touches[0];ce(nt.clientX,nt.clientY,Ue.target,null,nt.identifier)}catch{}}function bt(Ue){try{if(!se||Ye==null)return;const nt=Array.from(Ue.touches||[]).find(pt=>pt.identifier===Ye);if(!nt)return;Re(nt.clientX,nt.clientY,()=>Ue.preventDefault())}catch{}}function Tt(Ue){try{if(Ye==null||Array.from(Ue.touches||[]).some(pt=>pt.identifier===Ye))return}catch{}se=!1,Le=null,Ye=null,he=!1,J=!1}return document.addEventListener("pointerdown",qe,{capture:!0}),document.addEventListener("pointermove",It,{capture:!0,passive:!1}),document.addEventListener("pointerup",et,{capture:!0}),document.addEventListener("pointercancel",et,{capture:!0}),document.addEventListener("touchstart",kt,{capture:!0,passive:!0}),document.addEventListener("touchmove",bt,{capture:!0,passive:!1}),document.addEventListener("touchend",Tt,{capture:!0}),document.addEventListener("touchcancel",Tt,{capture:!0}),()=>{document.removeEventListener("pointerdown",qe,{capture:!0}),document.removeEventListener("pointermove",It,{capture:!0}),document.removeEventListener("pointerup",et,{capture:!0}),document.removeEventListener("pointercancel",et,{capture:!0}),document.removeEventListener("touchstart",kt,{capture:!0}),document.removeEventListener("touchmove",bt,{capture:!0}),document.removeEventListener("touchend",Tt,{capture:!0}),document.removeEventListener("touchcancel",Tt,{capture:!0})}},[y,g]),t?f.jsxs("div",{className:"app-root"+(y?" phone":"")+(g?" drawer-open":""),children:[f.jsx(__,{onToggleSidebar:()=>{y?v(se=>!se):m(se=>!se)},searchQuery:x,onSearchChange:C}),f.jsxs("div",{className:"app-body",children:[!y&&f.jsx(uS,{selectedLabelIds:l,onToggleLabel:Ce,onClearLabels:Te,collapsed:p,collectionStack:d,onCollectionStackChange:h,sortConfig:S,onSortConfigChange:M}),f.jsx("main",{className:"main-area",children:f.jsx(DN,{selectedLabelIds:l,selectedCollectionId:N,collectionStack:d,selectedCollaboratorId:c,searchQuery:x,sortConfig:S,onClearAllFilters:X,onSetSelectedLabelIds:a,onSetSelectedCollaboratorId:u,onSelectCollectionById:ye,onSetCollectionStack:h,onSetSearchQuery:C,onSortConfigChange:M})})]}),y&&f.jsxs(f.Fragment,{children:[g&&f.jsx("div",{className:"mobile-sidebar-backdrop",role:"button","aria-label":"Close menu",tabIndex:0,onClick:()=>v(!1),onKeyDown:se=>{(se.key==="Enter"||se.key===" ")&&v(!1)}}),f.jsx("div",{className:"mobile-sidebar-drawer"+(g?" open":""),"aria-hidden":!g,children:f.jsx(uS,{selectedLabelIds:l,onToggleLabel:Ce,onClearLabels:Te,collapsed:!1,collectionStack:d,onCollectionStackChange:h,sortConfig:S,onSortConfigChange:M,onRequestClose:()=>v(!1)})})]}),i&&f.jsx(lG,{isPhone:y,onClose:()=>{try{localStorage.setItem("pwa.installNudge.dismissedAt",String(Date.now()))}catch{}s(!1)}})]}):f.jsx("div",{className:"app-root",style:{minHeight:"100vh"},children:f.jsx("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},children:f.jsx(DN,{})})})}function uG(){try{const t=document.documentElement,e={"prefs.checklistSpacing":"--checklist-gap","prefs.checkboxSize":"--checklist-checkbox-size","prefs.checklistTextSize":"--checklist-text-size","prefs.noteWidth":"--note-card-width","prefs.imageThumbSize":"--image-thumb-size","prefs.fontFamily":"--app-font-family","prefs.noteLineSpacing":"--note-line-height"},n=new Set(["prefs.checklistSpacing","prefs.checkboxSize","prefs.checklistTextSize","prefs.noteWidth","prefs.imageThumbSize"]);Object.entries(e).forEach(([r,i])=>{const s=localStorage.getItem(r);s===null||s===""||(n.has(r)?/[^0-9.-]/.test(s)?t.style.setProperty(i,s):t.style.setProperty(i,`${s}px`):t.style.setProperty(i,s))});try{window.dispatchEvent(new Event("notes-grid:recalc"))}catch{}}catch(t){console.warn("Failed to apply saved prefs",t)}}uG();try{"serviceWorker"in navigator&&(async()=>{var t,e,n;try{const r=await navigator.serviceWorker.getRegistrations();let i=!1;for(const s of r){const o=String(((t=s.active)==null?void 0:t.scriptURL)||((e=s.waiting)==null?void 0:e.scriptURL)||((n=s.installing)==null?void 0:n.scriptURL)||"");if(o.endsWith("/sw.js")||o.includes("/sw.js?")){i=!0;continue}try{await s.unregister()}catch{}}if(!i)try{await navigator.serviceWorker.register("/sw.js",{scope:"/"})}catch{}}catch{}})()}catch{}const dG=KA(document.getElementById("root"));dG.render(f.jsx(aG,{})); diff --git a/client-dist/assets/manifest-D-CrtgCD.webmanifest b/client-dist/assets/manifest-D-CrtgCD.webmanifest new file mode 100644 index 0000000..f0e89f0 --- /dev/null +++ b/client-dist/assets/manifest-D-CrtgCD.webmanifest @@ -0,0 +1,13 @@ +{ + "name": "FreemanNotes", + "short_name": "Freeman", + "start_url": "/", + "scope": "/", + "display": "standalone", + "background_color": "#121212", + "theme_color": "#121212", + "icons": [ + { "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any maskable" }, + { "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any maskable" } + ] +} diff --git a/client-dist/assets/manifest-DdfYsMAL.webmanifest b/client-dist/assets/manifest-DdfYsMAL.webmanifest deleted file mode 100644 index 4a0fcaa..0000000 --- a/client-dist/assets/manifest-DdfYsMAL.webmanifest +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "FreemanNotes", - "short_name": "Freeman", - "start_url": "/", - "display": "standalone", - "background_color": "#121212", - "theme_color": "#121212", - "icons": [ - { "src": "/icons/darkicon.png", "sizes": "any", "type": "image/png", "purpose": "any maskable" }, - { "src": "/icons/freemannotes-dark.svg", "sizes": "512x512", "type": "image/svg+xml", "purpose": "any maskable" } - ] -} diff --git a/client-dist/icons/icon-192.png b/client-dist/icons/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..1b746175b5f80de0f506f89f2febd42843494492 GIT binary patch literal 52341 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 literal 0 HcmV?d00001 diff --git a/client-dist/icons/icon-512.png b/client-dist/icons/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d8137a4c0e39a3cb8a74499087bd65ac68a64c8e GIT binary patch literal 294097 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%0Ax4-@)elj&TK1vr}CEtd2#^&4H`nBJL?lTN`KO` zW$9nuw#)oFK!Btn=D{%#VG9CDdfgv^FA#+^1Pm4e1-x$WC#6kG zp~!Vs%%s>dLWmnu319;FDdWKK{tYBG@3&kx4 zd4uUrY3T{*aFKE)B^w}RFP5Z$JW2>IA3Zk+k1YhCyi7?OhM&Nb8fM@_&-Deu47T_j z8)OBjE$KWyE)=)dFF*+`>38yX^J?&T6DSD{2P=#a;p&DuWLX0}=&A z1UP&OioF38`&1NrNoZR^5v_Yv6cIS_YAE(;DDvirN3I(v@|q~}7%28xDDqk;_S#FI zSf{ojkW@_n0Rtuz#Xb|oejUYL`hIjw?l-c;Wq*GLdUP%CqxPr&RAb=7{{;gu`hVzL z)doajpNo&#ik{vlYD;==7zEJ!C4quvU$1dH^L+?ZdI@lmi04RPDL|gdzlqlw#ELfO z=h1zA2E6=z#JeTH9|2vumfo2V3%3!smziFt^ZeZGGmMl0H|gHSqZtOf#3^JEI~UiK)|g60LmN?`za-mKoJ7~ zD*bIMekt@E#iaXCptQv`1pJx-MN<(n6LRv z2FwvZz(E27wYa#q8naUkTwZu~e1|GSs*3m}UjH}!3J>BxP>k@ZDLDC|gJ84*kw z63iH;QOBp_QsnV)mT;-%^uR*1EIE^naHREPzp_@*^`nvIQjL-Vtp^Ruyq9z|4-cP2h@V=JfmMe8Fc= z?}FG*OPaOQ^J%7(6J(VpXR+JG{{57HO&KTDmd;cx8i?gRe3}U#n`ddZEv*94tbtql zfO+6%3j&!I#rL9h{@%1s-;GK(lSPZ$Ri?a3Yl6sr$vj6qL$JkVglE>8qrLfii~Y1z ztT0q2)Drjh(K$@AMel<6tpS^vEokErupF-eIygzJ-;Wig-$yDL2B;`9mzcHS!+UYD;o$15b z!Na))#xe?D^k1&X$zy;V2SooC<-zSfZkOs7--j$Uw6y!zIuZVC{^$M~%_HKy$Ox7F zw#N*+1bDg(I9Y@2^J(cdEO-qAilHN9>If-51dEGMXS#8GxB)Zw@50Qf?YMM&6w}8B zaN(|AJhQzHKh+;+YXH#+pCWfaUy_$6IwCmU6~Ti;rFdeZ7Ef)f#(TG>@XS~W=XX=_ zAPNqw$Lx_NOdqVrg?%-+bf6ydhbeuq8q@nySU5rqf@PTA7srPlY{joE9>MQ^_&9$5 zk(@(h-*Ud7V2YgoGeDi)WnW9G^gEG#eM3RwfL-NcPoKZxFetz3tMcqfQr zJx=6n6*bV~Whk$2<2V~iv8`z67Znwe8{p38odN=} zSZu`Yc7G$FQ#wp&B|!O_;S%^%8kDJ+M%YGhqSHD}?Hk1itc@ASDE_o?=gvm!q(q3= zLr5fDEQLERSq|*F^IU8t9{|W=E0nbh@|O^$fm#Fz3BnK$6&rCXs+=5RalV-)*yKs@cazeWC5=ee2Ro!LiiLuPB55leF|o5O9hxK!9AUX`pQ z#+r7{+>8Easj$U8GWU@tbuk;y9M9ZO+}}34+xH`(eS8f8AqE}fDj@3;Sye>4k-`w) z(N^Z<`cSR3kgJKTZlu)xYQ_>Jl)bQ0iSu%=BWr^Aj?VXv+tGGkiEG4lWF50>fw0JR zvQEkE^u8QGB-@_%kz3Gqw>g2Nv%L7`L=+=)_I(NRoZzmotf%;$06+raLbBFXxK2#++BxHpB~2lb@dp2{lkyq_da(TU;EkT@P}V|4&V6S zUcgtsbP50GM_$0`dnV9W9Yk||DN-dCq9FtK-+wPY_@R$reqkBQ*KS~G`6lKUu3~egQT4wgG?~Or=>-4y^f7hjRCA1_0!{Mm}2( z=$n!B_4a`7cPR3=BTmg=t2U2pu zN(KOsHAVt}Xjbe>rrjv+gtpfzaaQCsv$tpWPUW7vE|=-^*gcf<+Xzq=cn&FdIqR1~ z+w%S4V;nmW&I*vrw7syDIE#NdEdbJbm#b877XWN5n*{*E3bv8*F9ZOb`=w<=w6|S_ zP`99IIxL+m0bT@&M%Y_~)<^(H`|I(_$w^$emv{q4aOr3t&fnF87x#7Gu`QK&s4tHD ziAAtGf|H#g9PhAjqCJR*`Vx5ea5>&HT!!}yCh^!n45!Cacxh*iAPzdzz`OzHY4(4h zj@`&qB{%ZWx0Hq+7;jz7KICE?e7arV#m+l+HLwlMr(HcQx z%#G%%2%73jQB#>fA|69BQG#dBJddCL%vWS~zz z06=a487xF4PjA%%koFfk{D)4ZvmO9gPc~BAg#g9+imJf<>;YU@0W!*ZeTBU~0LZ=8 zsodTU04Stb*J~%|f03_kHfr~*JnuZ`Z05gne(%h=!gMd(AsIy|6{7?J(keh8LEIzb zYGM#UN}LolgE@MZ{XDjw2zNjh5U>FN1^r3D=mbY>MQ{QDX$i1hNy4%qdGj4E3_4Ed z=Q8A_`-QNM2zP+(O42ehI6n*kAp82piaoq(0Knr(766dXUu&&cJ62@k6J-38aAk^^ z0KPwE2oQ^)9)zZ7uoOSSiWf$45u$zc4&hW+gaZZNHBgGjx1{i%krKRTD1rBlB=O8-3NP=abir1f zKiG(i`)ftE!2TLs+ESwiUpZzE*JJj+5gcicqRLf-a!)a;OgE}R9#jV1C^g(D z3;WPm5kYfZ8Jg=W(NI^5>gqa#!U?1*>u_Ou4j=ybCvj=!3a(v$4U5ayv9NqqDF5Z_ z3kJN%IjCx5Cn=xptgyk$g zc}pUEgt4^$yO3l+K(5#p06oTa1t>^}%yhXOdu_p@!WMw_l=-bF{#yYH8!4bd7K8M9 z+H@Pk@P7ttGBDeLs*8>2#))hRW(D=0PEg5Tz;Kc>RNT z?Smi1mBnQ&UB8Jdr1TfBVrl6ru3o!=>o;D-?A!vDuf2--#cSvv*ottx9Epl*#7Zj> zj1wJn3N_8W=pLHnblQ^2Ceg+m|B--38DMG{Mlc4SU;R5>*AF}N(4Ega`AH-?G?&Zs ztjq2BONxls%*ZN5Zfc~MWu^cJ?ueic;olMQ0r@Nh*&QvmuJY%As`UVXJ?oIs!*Y_2HxY-Bxp!_GZN|Eh8#j^F4t9`W+VpR`4V<8=5CF*C&Q-3mW{8+oXTJx90YFA^ zu4@6{6ivGS`qaJo`cq*5K>LM@F#lv=V*rqA6%hBbNrMQ$QSh20sFXke<;I(46qXi* z>h;54RD=?*3*&WhJb7RUmriZROH=)LM7Y{b$;(-QSBpTs^6c^Bh^T+yd zs5^m_QiPJQhFCm`a4d>wB8k#e1*&UmP*GijvQ!PqE9y{P)5;8}1t5>h%`nBu0e*FffFVEpaAO0Agd;VpVrfLu^DM!2{ zg-EgtR;+@V0?7){-an4&#vU&8L|Gs{h2qI5#*9(}DW;2<0X;w8GBgynRnQ$Pz&rR! zmuNH$<3X3p{ihypV3p__70p^zjL3@cABOF;4ocM#9h*!$>sJ<}vcel%0CGjOVj?w% zV-f7gc6+8FJL`JU$N2z2A%#*%@ozNSTn_-`Q((D1?v0dwJ{JH-=;txj7n-#@m3po} zH=kv|dCo=vAXk|<+a})(H{Ut=QoA;4Kj-m6?RYEgo9}yNo@dYeIL%VF1J$?4xSf2e zXupibNz~lfNbwgE`CSUl{sjQYDF3t&0Lby_=To5h-esq9&7{x?H=yWy8;MBuTPqH; zyzNfpOb*BQ%r~Q7lkQjGm=gfpit;CMvXtfn2R@7VCPW&dpR6HHw~(- z9^ToA>R>SWdW~$;KMk6;vQ&b2#K;Pl#(SN zDN34GH}{~UZvypggIp^@P{GUWCE}fltWy6dc6t6dYD61s9dySE@Dr3FkaWA%Sr&E#x18}im3{8u zoeu!4brlFQ9P!;mWFjD7Sq*J^t71COul4%bk?bmmTnfE-HvrkBV za3Fp&XEtQHIWpfR$BG!ap~Fp7$h^c7>YHi5_X4&vf{d-3AY zt$1!v2hQ&6!t~KW%p4!WnO%)|cp#2@I&>Us4d6tVj(d7c+|wPzeSHK1qPV{&ga>=0 zc+W^Fp59i4mku=H>{Khx?Qh2Uea)CYwH43aHH4lD6=A&yk+_LqB!Y0H1o2oU60sV@ z;*E%x)S{%K5veL-YZM@WBKe6Hoy_=pD28WWI*$*1?9-T?U&7qdHMRs?vjM=u!aNq2 zC_7*QH*b(-;3me$x52Q2h?i8LqOOI@m`6%$nLU#%0aW&zm;v3CRU}zwweYHL#)wqx zA3Pqcs!_9$!|L0w9&))_V4W<=aQMKTzMy>%{DZgz1z_S8}*!wk$ zf=7tSEuXKkkhQ@n84JMLK_q`>z

    3+eDh*$Glm|XENXLIwI|n3~@xtW1I7xDS^2n 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Νp%nl&) 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%0D4v7`s7 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 literal 0 HcmV?d00001 diff --git a/client-dist/index.html b/client-dist/index.html index 71c59be..ab1ce84 100644 --- a/client-dist/index.html +++ b/client-dist/index.html @@ -5,9 +5,9 @@ FreemanNotes — Phase 1 - - - + + +

    diff --git a/client-dist/sw.js b/client-dist/sw.js new file mode 100644 index 0000000..ea5314a --- /dev/null +++ b/client-dist/sw.js @@ -0,0 +1,16 @@ +// Minimal service worker to satisfy PWA installability criteria. +// Intentionally no offline caching yet; fetch is pass-through. + +self.addEventListener('install', (event) => { + try { self.skipWaiting(); } catch {} +}); + +self.addEventListener('activate', (event) => { + event.waitUntil((async () => { + try { await self.clients.claim(); } catch {} + })()); +}); + +self.addEventListener('fetch', (event) => { + // No-op: allow browser to handle requests normally. +}); diff --git a/client/manifest.webmanifest b/client/manifest.webmanifest index 4a0fcaa..f0e89f0 100644 --- a/client/manifest.webmanifest +++ b/client/manifest.webmanifest @@ -2,11 +2,12 @@ "name": "FreemanNotes", "short_name": "Freeman", "start_url": "/", + "scope": "/", "display": "standalone", "background_color": "#121212", "theme_color": "#121212", "icons": [ - { "src": "/icons/darkicon.png", "sizes": "any", "type": "image/png", "purpose": "any maskable" }, - { "src": "/icons/freemannotes-dark.svg", "sizes": "512x512", "type": "image/svg+xml", "purpose": "any maskable" } + { "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any maskable" }, + { "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any maskable" } ] } diff --git a/client/public/icons/icon-192.png b/client/public/icons/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..1b746175b5f80de0f506f89f2febd42843494492 GIT binary patch literal 52341 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 literal 0 HcmV?d00001 diff --git a/client/public/icons/icon-512.png b/client/public/icons/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d8137a4c0e39a3cb8a74499087bd65ac68a64c8e GIT binary patch literal 294097 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

    3+eDh*$Glm|XENXLIwI|n3~@xtW1I7xDS^2n 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Νp%nl&) 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%0D4v7`s7 z93E3q&E_GO1uh^H91<7|Kenpga~-;dk4F*U^Mo&JX!Y6^&x2|_G6ZiM`PdH z^v|1%Q&T-kl-$S|oFq!OiDLT(foIjglx+efMNvl|<{0;U`?JXDFol}-UDKR}Vf3@{ zpb1%1vC(7rL?ELEoa5rGbW$$Q6w}Z1Iq#@1U8uSJ{JG?$M6BXzDLs=R+eNAa)TuTh zhWQhIw6inF6Rm6n`lehI148wS5q9yEgoyOF(gtU-EuljA+}AqbxuWQ~M6MEwEunxc zw`UIX!_1t~&xC`J5kvtT3|FetOo>;6sH@VCC68%8JA1O)nB;cIk{FY{;Ka@7V(vZ{ zNv&tl{#~G*Znmj((qitCD|>pj)$4qxKHw2iwQh)eJ#VRdT7GmYy>_~pW8`$#1g=Pw z;3C6b7G`G^W@m|Mly0(}b+Y+$PLydtoxgIs>ZW25hXn0GpA_AEsk=3pl??O=T_44p zMH^o4@C%duP@U3tXVQDuj6=U^sw*{*orPrTt%BxbH}*rT-@)(q0!U0oWCwxrn4v;9 z)ua2dYq05r^`SzEH(0Hv2Nza`*y0|hylG=_+s~b{EB`C&ke`}i@LGV;B!t^5$J+6! zn{4lIMfE!Z!yC5C!^PZB)JA$E<*l~Ysn;c6uW4ER1~Gci#ysE4@GQQ%zBnMUOM=;T z?Y-z#7}%}8gVMoZ@J_z{8=y_;?18o>FWB08U#r@vgJa{Q>J2Q~PB3?(ZOggEg`d3l0Cch2`%W5x!>4Ti4{cAg2Xcyl|-J%?%L;UA4 ztt@qYDh`v1T)4M6b$?kUT>RUQk+*qDacK(;d8zm5-0r?Or83IzJ9mb{WLR><-%6F< zoCyy~EKroI?Dhk5VLYM5;p`5voay20(mYd9<2=VnXQN&< zPwc_)-TP?e!$oGpF()xWI?R=o3ydn+NBeTLfUzomn2Lrf7 zW3vGwSiXk&9p7$HRPCdq4@nG^7p}ZVPaR`XH-t*{c2RG{PKL(cgkd&Ak3YF88K=!t zViQU16qI0{>z3^E%KDb!t8HMn?z$j2w%Tj8Jq}X$)Yg}zvS^*QK`1fBy{bfXv$EP- z*wZ_>WoSRpcEcf8DYOp_F$hWJ7%`fkTD* z`3y({Fy+{|?ee?Z`s~!8E#D?V*=`?)rw1~++Xy}9>dhb%G-KM;?K}$-k>3g1M8fnD zz$TK=b?r@SN|zC0RT}nCPoCpb2s7QBaEJoj3;7IjAuV+9dS)ijpaKcuHgUSqyBtOw zBw-vNRVQH3@}|HFiFAP(-3c+fs@3ye(O5*Lk!|2vTlP4_Dd5L7s&{8yE8tsX-NpcR z)$T$RQtzK>N>I{U@h`acVmO!(F-oDc^9zi2pdGsY>}9~~D#!0zdU=wP>ntW-BnSt$ zDGySXvne1=gW5RXQY~i>jVG>@1Lh-b{f&}Vh^$RI>tz^Ka8+oAcnykEcWCVEyM`ST z#I$duH3;2P8T-^L6mo%7EMt-5GT91Vp#+nA%YINC6>OCi3R`RM@OSHWReceF22dxgU#&dsvipwvB?xt)D%Yth zSq}~e^rowGTAgGbUEBfx{=$0A^3E@yYqy%L2UD(SOXS19B^nFqW1-`7oY{r#3+W5* z#dX+3%cDf$b6e&=;#nka_Zx{Z18A!JkH2iDjP+N3(lm5WWUcnW!R$eGR8 zzU`glrU+3{gz;ar+~bQ-;5Qk?ap7nHks+3^M-bV3QQ1j)AR8|PW}GK3j`SpfV77rn zd@~5vK5G0ri6Ho&5r^lL&X7-loTzPVgh!3Kn}R`oD&KYNm$sGQL|;0q60>OlM7P{8q_Hc zqo4NJGG;l>whapeJjQwDz<&%acBd%>W0O`4Sto~|mWfCbm0AeM(4=QML_%bt_Y&p{ zSDKJa{Z=A)P&Xi|))-Bhp#dTzPaaP!(N!RWTgeG-nl0r8d_gcCoy^4os01H<4#7V* z?FWxHoIMioZRDW>{-w=8v>l~&rhO=j!2Zx6_{F04UUZPN3q#=Tbq$P>-L0flfQ$Do zhiIw^+}+d2+rpH8ZQn-};#kjCt$M7xlYyy5y`B{QpttV16iEO6c8taV zW5J_Z-1HlK+cL%py>~z+6hdItXeryYo^KA14-8Tp+VTL!JZypvqximDINa19M5Mr| zdzG~(maj?xdo%#}1vwJ%Ct8zFuKp)2QjiqW%Y?P7+P|b@qNB4c-H0(Zm=7hGcsAYc z5wSnn|Ed4sp%-6AS^!)zumO9tM%}DY;>vq}lJnO9eh^JUDzL9P!}p%|*b3Q=eSUNO zZNg0P$zc}2ueAAc%B4lq+@xE^fB%<}DTQQo)Z9c#$=l@1+^umhsv}JQ!cx@-=o%5_ z;?q>dO7Eab87O0yDd{aJ1&R%^J(=9YlAWg#0YO+gD&jGVc12UUnBii~%_j+sY>I?~ zL1#Wt-zv6@e`{X;PN^z*AoBjc(Uj0p0sH1r95aw11|o;eIc+PlV9TjS3=TV>mGB0j z1g%(rMnbVIBhC@{6T5MU0F1ou(ZOsv!AW6otThzR7951_d%JNCvV}U^fY1Ccn4eMkG8Z_=5>t!yq69Mi+r5-6h$sF=! zB+wl}tbeK58+zV?-yutSCB(j<=d_cvvE{R#CvECl{qbJvsMqsOz0KeaJ@^ArfxIBj z6uO-zp=AZ=XJi6@vs?rhOFWnv$E9^Rf-lATM_zR-%|9v#adyrUIDh&(%C6F|Q0fQ0 zy?OI^Iu0gMV17GmMhzRFUVgEX_Ch5P-S!QQ*l1#Llt&7aT7m*Ry!g?J`ZYA?JrQXC zCFh)a0Qsyt5{<-4U|%qlqkZ%?tXeKT-UMXfGqmt<)IeIaqjG4bR=iutENE`%K4`0@ zQY_CPj=6T=W3+;o^lv*W&{^jrVR>I(UfT6?tnzYmU#bo6CWbQyMwW=?Kc~Nc_nu|C zZpj&vKtzBcrRMtB+Y6%x{P%M5v6>pN;H01D3-uy2KMXG~7wIv((HxxDHk)|uxearo z%?WyQgyAHJ1|kL(=D_~@6U100+L1i56R2J(EjgX7Bl}h3p4Eh g&yw#ykl6DI8_vwvig!y}0(iURq?M(rBuqm84~3mGNdN!< literal 0 HcmV?d00001 diff --git a/client/public/sw.js b/client/public/sw.js new file mode 100644 index 0000000..ea5314a --- /dev/null +++ b/client/public/sw.js @@ -0,0 +1,16 @@ +// Minimal service worker to satisfy PWA installability criteria. +// Intentionally no offline caching yet; fetch is pass-through. + +self.addEventListener('install', (event) => { + try { self.skipWaiting(); } catch {} +}); + +self.addEventListener('activate', (event) => { + event.waitUntil((async () => { + try { await self.clients.claim(); } catch {} + })()); +}); + +self.addEventListener('fetch', (event) => { + // No-op: allow browser to handle requests normally. +}); diff --git a/client/src/App.tsx b/client/src/App.tsx index f730868..f735da7 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -2,9 +2,11 @@ import React from "react"; import Header from "./components/Header"; import Sidebar from "./components/Sidebar"; import AuthGate from "./components/AuthGate"; +import PwaInstallModal from "./components/PwaInstallModal"; import { AuthProvider, useAuth } from "./authContext"; import { ThemeProvider } from "./themeContext"; import { DEFAULT_SORT_CONFIG, SortConfig } from './sortTypes'; +import { usePwaInstall } from './lib/pwaInstall'; /** * Phase 1 app shell. @@ -22,6 +24,9 @@ export default function App(): JSX.Element { function AppShell(): JSX.Element { const { user, token } = useAuth(); + const { canInstall, isInstalled } = usePwaInstall(); + const [showPwaInstall, setShowPwaInstall] = React.useState(false); + const lastPwaNudgeAtRef = React.useRef(0); const [selectedLabelIds, setSelectedLabelIds] = React.useState([]); const [selectedCollaboratorId, setSelectedCollaboratorId] = React.useState(null); const [collectionStack, setCollectionStack] = React.useState>([]); @@ -101,6 +106,26 @@ function AppShell(): JSX.Element { }; }, []); + React.useEffect(() => { + // We can’t show the native browser install prompt without a user gesture. + // Instead, show our own modal nudge when install becomes available. + if (!user) return; + if (isInstalled) return; + if (!canInstall) return; + try { + const now = Date.now(); + const dismissedAt = Number(localStorage.getItem('pwa.installNudge.dismissedAt') || '0') || 0; + const coolDownMs = 7 * 24 * 60 * 60 * 1000; + if (dismissedAt && (now - dismissedAt) < coolDownMs) return; + if (lastPwaNudgeAtRef.current && (now - lastPwaNudgeAtRef.current) < 30_000) return; + lastPwaNudgeAtRef.current = now; + const t = window.setTimeout(() => { + try { setShowPwaInstall(true); } catch {} + }, 900); + return () => { try { window.clearTimeout(t); } catch {} }; + } catch {} + }, [user, canInstall, isInstalled]); + React.useEffect(() => { if (!isPhone) return; if (backRootArmedRef.current) return; @@ -475,6 +500,16 @@ function AppShell(): JSX.Element { )} + + {showPwaInstall && ( + { + try { localStorage.setItem('pwa.installNudge.dismissedAt', String(Date.now())); } catch {} + setShowPwaInstall(false); + }} + /> + )} ); } diff --git a/client/src/components/PreferencesModal.tsx b/client/src/components/PreferencesModal.tsx index 5fba2ec..40fd475 100644 --- a/client/src/components/PreferencesModal.tsx +++ b/client/src/components/PreferencesModal.tsx @@ -4,6 +4,7 @@ declare const __APP_VERSION__: string; import { useAuth } from '../authContext'; import SettingsModal from './SettingsModal'; import { useTheme } from '../themeContext'; +import { usePwaInstall } from '../lib/pwaInstall'; const APP_VERSION = typeof __APP_VERSION__ !== 'undefined' ? __APP_VERSION__ : '0.0.0'; const ABOUT_ICON_DARK = '/icons/darkicon.png'; @@ -15,6 +16,7 @@ const VERSION_ICON_LIGHT = '/icons/version-light.png'; export default function PreferencesModal({ onClose }: { onClose: () => void }) { const auth = (() => { try { return useAuth(); } catch { return null as any; } })(); const themeCtx = (() => { try { return useTheme(); } catch { return null as any; } })(); + const { canInstall, isInstalled, promptInstall } = usePwaInstall(); const effectiveTheme = (themeCtx && (themeCtx as any).effective) || 'dark'; const themeChoice = (themeCtx && (themeCtx as any).choice) || 'system'; const setThemeChoice: (t: any) => void = (themeCtx && (themeCtx as any).setChoice) || (() => {}); @@ -258,32 +260,102 @@ export default function PreferencesModal({ onClose }: { onClose: () => void }) { }; }, [photoPreviewUrl]); return ( -

    -
    -
    - Preferences - +
    +
    +
    + {isPhone && activeSection != null ? ( + + ) : ( + + )} + + {activeSection == null ? (isPhone ? 'Settings' : 'Preferences') : ( + activeSection === 'about' ? 'About' : + activeSection === 'appearance' ? 'Appearance' : + activeSection === 'colors' ? 'Colors' : + activeSection === 'drag' ? 'Drag & Animation' : + activeSection === 'collaborators' ? 'Collaborators' : + 'Preferences' + )} + +
    -
    + +
    {activeSection == null ? ( -
    -
    - - - {false && } - - + isPhone ? ( +
    +
    + {!isInstalled && canInstall && ( + + )} + + + + +
    + +
    + +
    + {(auth?.user as any)?.role === 'admin' && ( + + )} + +
    -
    - - - { (auth?.user as any)?.role === 'admin' && } - + ) : ( +
    +
    + {!isInstalled && canInstall && ( + + )} + + + {false && } + + +
    +
    + + + {(auth?.user as any)?.role === 'admin' && } + +
    -
    + ) ) : activeSection === 'about' ? (
    - + {!isPhone && }

    About Freeman Notes

    @@ -302,16 +374,16 @@ export default function PreferencesModal({ onClose }: { onClose: () => void }) {

    No manhacks. No surveillance. Just free notes, recorded and remembered on your terms.

    - - + + - { (auth?.user as any)?.role === 'admin' && } - + {(auth?.user as any)?.role === 'admin' && } +
    ) : activeSection === 'appearance' ? (
    - + {!isPhone && }

    Appearance

    @@ -407,16 +479,16 @@ export default function PreferencesModal({ onClose }: { onClose: () => void }) {
    - - + + - { (auth?.user as any)?.role === 'admin' && } - + {(auth?.user as any)?.role === 'admin' && } +
    ) : activeSection === 'colors' ? (
    - + {!isPhone && }

    Colors

    @@ -429,17 +501,17 @@ export default function PreferencesModal({ onClose }: { onClose: () => void }) { setPendingCheckboxBorder(e.target.value)} style={{ width: 44, height: 28, padding: 0 }} />
    - - - + + + - { (auth?.user as any)?.role === 'admin' && } - + {(auth?.user as any)?.role === 'admin' && } +
    ) : activeSection === 'drag' ? (
    - + {!isPhone && }

    Drag & Animation

    @@ -459,16 +531,16 @@ export default function PreferencesModal({ onClose }: { onClose: () => void }) {
    - - + + - { (auth?.user as any)?.role === 'admin' && } - + {(auth?.user as any)?.role === 'admin' && } +
    ) : (
    - + {!isPhone && }

    Collaborators

    @@ -480,11 +552,11 @@ export default function PreferencesModal({ onClose }: { onClose: () => void }) {
    - - + + - { (auth?.user as any)?.role === 'admin' && } - + {(auth?.user as any)?.role === 'admin' && } +
    )} diff --git a/client/src/components/PwaInstallModal.tsx b/client/src/components/PwaInstallModal.tsx new file mode 100644 index 0000000..c7a406c --- /dev/null +++ b/client/src/components/PwaInstallModal.tsx @@ -0,0 +1,50 @@ +import React from 'react'; +import { usePwaInstall } from '../lib/pwaInstall'; + +export default function PwaInstallModal({ onClose, isPhone }: { onClose: () => void; isPhone?: boolean }) { + const { canInstall, isInstalled, promptInstall } = usePwaInstall(); + + const onInstall = async () => { + const outcome = await promptInstall(); + // Either way, close the modal; we’ll re-check installed state. + try { onClose(); } catch {} + return outcome; + }; + + return ( +
    +
    +
    + + Install app + +
    + +
    + {isInstalled ? ( +
    Freeman Notes is already installed.
    + ) : canInstall ? ( +
    +
    + Install Freeman Notes for faster launch and an app-like fullscreen experience. +
    +
    + + +
    +
    + ) : ( +
    +
    + If you don’t see an install option, open your browser menu and choose “Install app” or “Add to Home screen”. +
    +
    + +
    +
    + )} +
    +
    +
    + ); +} diff --git a/client/src/lib/pwaInstall.ts b/client/src/lib/pwaInstall.ts new file mode 100644 index 0000000..28f6585 --- /dev/null +++ b/client/src/lib/pwaInstall.ts @@ -0,0 +1,129 @@ +import * as React from 'react'; + +// Non-standard event supported by Chromium-based browsers (and some others). +export type BeforeInstallPromptEvent = Event & { + prompt: () => Promise; + userChoice: Promise<{ outcome: 'accepted' | 'dismissed'; platform: string }>; +}; + +type PwaState = { + isInstalled: boolean; + canInstall: boolean; +}; + +let initialized = false; +let deferredPrompt: BeforeInstallPromptEvent | null = null; +let state: PwaState = { isInstalled: false, canInstall: false }; +const subscribers = new Set<() => void>(); + +function computeIsInstalled(): boolean { + try { + const isStandalone = window.matchMedia && window.matchMedia('(display-mode: standalone)').matches; + const isIosStandalone = (navigator as any)?.standalone === true; + return !!(isStandalone || isIosStandalone); + } catch { + return false; + } +} + +async function computeIsInstalledRelatedApps(): Promise { + try { + const fn = (navigator as any)?.getInstalledRelatedApps; + if (typeof fn !== 'function') return false; + const apps = await fn.call(navigator); + return Array.isArray(apps) && apps.length > 0; + } catch { + return false; + } +} + +function publish(next: Partial) { + state = { ...state, ...next }; + for (const cb of subscribers) { + try { cb(); } catch {} + } +} + +export function initPwaInstall(): void { + if (initialized) return; + initialized = true; + + // Initial state + publish({ isInstalled: computeIsInstalled() }); + // Related apps can mark installed even when display-mode is not standalone. + computeIsInstalledRelatedApps().then((installed) => { + if (installed) publish({ isInstalled: true }); + }).catch(() => {}); + + // Capture install prompt + window.addEventListener('beforeinstallprompt', (e: Event) => { + try { + // Prevent the browser from showing its mini-infobar; we’ll present our own UI. + e.preventDefault(); + } catch {} + deferredPrompt = e as BeforeInstallPromptEvent; + publish({ canInstall: true, isInstalled: computeIsInstalled() }); + }); + + window.addEventListener('appinstalled', () => { + deferredPrompt = null; + publish({ isInstalled: true, canInstall: false }); + }); + + // If the user installs via browser UI, we may not get appinstalled in all cases. + window.addEventListener('visibilitychange', () => { + if (document.visibilityState !== 'visible') return; + publish({ isInstalled: computeIsInstalled() }); + }); +} + +export function getPwaInstallState(): PwaState { + return state; +} + +export function subscribePwaInstall(cb: () => void): () => void { + subscribers.add(cb); + return () => { subscribers.delete(cb); }; +} + +export async function promptPwaInstall(): Promise<'accepted' | 'dismissed' | 'unavailable'> { + const ev = deferredPrompt; + if (!ev) return 'unavailable'; + try { + await ev.prompt(); + const choice = await ev.userChoice; + if (choice?.outcome === 'accepted') { + deferredPrompt = null; + publish({ canInstall: false }); + return 'accepted'; + } + return 'dismissed'; + } catch { + return 'unavailable'; + } +} + +export function usePwaInstall() { + // Ensure we initialize exactly once when any component uses the hook. + React.useEffect(() => { + try { initPwaInstall(); } catch {} + }, []); + + const [snap, setSnap] = React.useState(() => getPwaInstallState()); + + React.useEffect(() => { + return subscribePwaInstall(() => { + try { setSnap(getPwaInstallState()); } catch {} + }); + }, []); + + const promptInstall = React.useCallback(async () => { + return await promptPwaInstall(); + }, []); + + return { + isInstalled: !!snap.isInstalled, + canInstall: !!snap.canInstall && !snap.isInstalled, + promptInstall, + }; +} diff --git a/client/src/main.tsx b/client/src/main.tsx index 97a2cbc..7e2a739 100644 --- a/client/src/main.tsx +++ b/client/src/main.tsx @@ -35,15 +35,24 @@ function applySavedPrefs() { applySavedPrefs(); -// If a legacy service worker is still registered from previous builds, unregister it to prevent -// intercepting requests and causing network errors on third-party beacons or mixed-content issues. +// Service worker: unregister legacy SWs but keep/register our minimal /sw.js. try { if ('serviceWorker' in navigator) { - navigator.serviceWorker.getRegistrations().then(regs => { - regs.forEach(reg => { - try { reg.unregister(); } catch {} - }); - }).catch(() => {}); + (async () => { + try { + const regs = await navigator.serviceWorker.getRegistrations(); + let hasOur = false; + for (const reg of regs) { + const scriptUrl = String(reg.active?.scriptURL || reg.waiting?.scriptURL || reg.installing?.scriptURL || ''); + const isOur = scriptUrl.endsWith('/sw.js') || scriptUrl.includes('/sw.js?'); + if (isOur) { hasOur = true; continue; } + try { await reg.unregister(); } catch {} + } + if (!hasOur) { + try { await navigator.serviceWorker.register('/sw.js', { scope: '/' }); } catch {} + } + } catch {} + })(); } } catch {} diff --git a/client/src/styles.css b/client/src/styles.css index 67763c1..337fd29 100644 --- a/client/src/styles.css +++ b/client/src/styles.css @@ -1444,20 +1444,105 @@ button.chip:focus{outline:2px solid rgba(255,255,255,0.18);outline-offset:2px;} } } /* Preferences dialog: fixed width independent of note width */ +.prefs-backdrop{ + padding: 16px; +} .prefs-dialog{ width: 420px; + max-width: min(520px, calc(100vw - 32px)); background:#181818; /* solid opaque background */ color:#ffffff; /* white text */ border-radius:10px; padding:12px; border:1px solid rgba(255,255,255,0.04); display:flex; flex-direction:column; max-height:80vh; + box-sizing: border-box; } :root[data-theme="light"] .prefs-dialog{ background:#ffffff; color:#000000; border:1px solid rgba(0,0,0,0.08); } + +.prefs-header{ + gap: 10px; +} +.prefs-title{ text-align: center; flex: 1 1 auto; } +.prefs-back{ + min-width: 44px; + display: inline-flex; + align-items: center; + justify-content: center; +} +.prefs-body{ + padding: 12px; +} + +.prefs-list{ + display: flex; + flex-direction: column; + border-radius: 12px; + border: 1px solid rgba(255,255,255,0.10); + background: rgba(255,255,255,0.04); + overflow: hidden; +} +:root[data-theme="light"] .prefs-list{ + border-color: rgba(0,0,0,0.10); + background: rgba(0,0,0,0.03); +} + +.prefs-item{ + appearance: none; + -webkit-appearance: none; + background: transparent; + border: none; + color: inherit; + cursor: pointer; + padding: 14px 14px; + display: flex; + align-items: center; + justify-content: space-between; + font-size: 16px; + font-weight: 650; +} +.prefs-item + .prefs-item{ + border-top: 1px solid rgba(255,255,255,0.08); +} +:root[data-theme="light"] .prefs-item + .prefs-item{ + border-top-color: rgba(0,0,0,0.08); +} +.prefs-item:active{ + background: rgba(255,255,255,0.06); +} +:root[data-theme="light"] .prefs-item:active{ + background: rgba(0,0,0,0.06); +} +.prefs-item__label{ min-width: 0; } +.prefs-item__chev{ opacity: 0.65; font-size: 18px; } +.prefs-item--danger{ color: #ff6b6b; } +:root[data-theme="light"] .prefs-item--danger{ color: #c23b3b; } + +@media (pointer: coarse) and (max-width: 720px) { + .prefs-backdrop.phone{ align-items: stretch; justify-content: stretch; padding: 0; } + .prefs-dialog.phone{ + width: 100vw; + height: 100dvh; + max-width: none; + max-height: none; + border-radius: 0; + padding: 0; + border: none; + } + .prefs-dialog.phone .prefs-header{ + padding: calc(10px + env(safe-area-inset-top)) 12px 10px; + background: var(--editor-surface, var(--card)); + border-bottom: 1px solid rgba(255,255,255,0.06); + } + :root[data-theme="light"] .prefs-dialog.phone .prefs-header{ border-bottom-color: rgba(0,0,0,0.08); } + .prefs-dialog.phone .prefs-body{ + padding: 12px 12px calc(12px + env(safe-area-inset-bottom)); + } +} .about-hero-group{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; margin:18px auto; width:100%; max-width:420px; position:relative; padding-bottom:38px; } .about-hero{ display:flex; align-items:center; justify-content:flex-start; gap:20px; width:100%; } .about-hero-icon{ width:160px; height:160px; object-fit:contain; filter: drop-shadow(0 14px 30px rgba(0,0,0,0.6)); }

    -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%0Ax4-@)elj&TK1vr}CEtd2#^&4H`nBJL?lTN`KO` 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