Replace the FilePond photo path in edit mode with our own thumbnail grid that talks straight to the media API (the gpx-manager pattern). Add/delete/reorder each persist immediately, decoupled from the form's text-field Save: - Add: HEIC->JPEG client-side, stock POST .../media per file, then ONE reorder after the batch (renumber photo-01..NN). On a failed reorder: auto-retry (idempotent), else roll the just-uploaded files back so no orphan stock-named image breaks cover=first. Upload progress shown per file. - Delete: inline 'Delete? [Confirm] [Cancel]' (Confirm disabled in flight), stock DELETE, then renumber the survivors. - Reorder: SortableJS drag -> POST /entry/<slug>/photos/order. On failure the move reverts to last-known-good; the shown grid never disagrees with disk without an inline error. - Loading + empty states; first cell badged Cover; photo-NN URLs cache-busted since reorder reuses them for different bytes. FilePond is fully decommissioned in edit mode (initPhotoConversion early-returns under EDIT_MODE): no stale photo_order manifest is posted on text Save, so cache-on-save can't delete a live-added photo. Create-mode FilePond is untouched. Adds sortablejs (bundled into js/post via the post-form entry). SVG excluded in the file-input accept; the server-side SVG block is a documented fast-follow. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
12 lines
23 KiB
CSS
12 lines
23 KiB
CSS
.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:0 0}.cm-fat-cursor{caret-color:transparent}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;inset:-50px 0 0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error,.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:0;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:0}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;inset:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors,.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:0 0}.EasyMDEContainer{display:block}.CodeMirror-rtl pre{direction:rtl}.EasyMDEContainer.sided--no-fullscreen{display:flex;flex-direction:row;flex-wrap:wrap}.EasyMDEContainer .CodeMirror{box-sizing:border-box;height:auto;border:1px solid #ced4da;border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding:10px;font:inherit;z-index:0;word-wrap:break-word}.EasyMDEContainer .CodeMirror-scroll{cursor:text}.EasyMDEContainer .CodeMirror-fullscreen{background:#fff;position:fixed!important;inset:50px 0 0;height:auto;z-index:8;border-right:none!important;border-bottom-right-radius:0!important}.EasyMDEContainer .CodeMirror-sided{width:50%!important}.EasyMDEContainer.sided--no-fullscreen .CodeMirror-sided{border-right:none!important;border-bottom-right-radius:0;position:relative;flex:1 1 auto}.EasyMDEContainer .CodeMirror-placeholder{opacity:.5}.EasyMDEContainer .CodeMirror-focused .CodeMirror-selected{background:#d9d9d9}.editor-toolbar{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;padding:9px 10px;border-top:1px solid #ced4da;border-left:1px solid #ced4da;border-right:1px solid #ced4da;border-top-left-radius:4px;border-top-right-radius:4px}.editor-toolbar.fullscreen{width:100%;height:50px;padding-top:10px;padding-bottom:10px;box-sizing:border-box;background:#fff;border:0;position:fixed;top:0;left:0;opacity:1;z-index:9}.editor-toolbar.fullscreen:before{width:20px;height:50px;background:-moz-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,#fff),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:linear-gradient(to right,#fff 0,#fff0);position:fixed;top:0;left:0;margin:0;padding:0}.editor-toolbar.fullscreen:after{width:20px;height:50px;background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(100%,#fff));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,#fff 100%);background:linear-gradient(to right,#fff0 0,#fff);position:fixed;top:0;right:0;margin:0;padding:0}.EasyMDEContainer.sided--no-fullscreen .editor-toolbar{width:100%}.editor-toolbar .easymde-dropdown,.editor-toolbar button{background:0 0;display:inline-block;text-align:center;text-decoration:none!important;height:30px;margin:0;padding:0;border:1px solid transparent;border-radius:3px;cursor:pointer}.editor-toolbar button{font-weight:700;min-width:30px;padding:0 6px;white-space:nowrap}.editor-toolbar button.active,.editor-toolbar button:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar i.separator{display:inline-block;width:0;border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;text-indent:-10px;margin:0 6px}.editor-toolbar button:after{font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:65%;vertical-align:text-bottom;position:relative;top:2px}.editor-toolbar button.heading-1:after{content:"1"}.editor-toolbar button.heading-2:after{content:"2"}.editor-toolbar button.heading-3:after{content:"3"}.editor-toolbar button.heading-bigger:after{content:"\25b2"}.editor-toolbar button.heading-smaller:after{content:"\25bc"}.editor-toolbar.disabled-for-preview button:not(.no-disable){opacity:.6;pointer-events:none}@media only screen and (max-width:700px){.editor-toolbar i.no-mobile{display:none}}.editor-statusbar{padding:8px 10px;font-size:12px;color:#959694;text-align:right}.EasyMDEContainer.sided--no-fullscreen .editor-statusbar{width:100%}.editor-statusbar span{display:inline-block;min-width:4em;margin-left:1em}.editor-statusbar .lines:before{content:"lines: "}.editor-statusbar .words:before{content:"words: "}.editor-statusbar .characters:before{content:"characters: "}.editor-preview-full{position:absolute;width:100%;height:100%;top:0;left:0;z-index:7;overflow:auto;display:none;box-sizing:border-box}.editor-preview-side{position:fixed;bottom:0;width:50%;top:50px;right:0;z-index:9;overflow:auto;display:none;box-sizing:border-box;border:1px solid #ddd;word-wrap:break-word}.editor-preview-active-side{display:block}.EasyMDEContainer.sided--no-fullscreen .editor-preview-active-side{flex:1 1 auto;height:auto;position:static}.editor-preview-active{display:block}.editor-preview{padding:10px;background:#fafafa}.editor-preview>p{margin-top:0}.editor-preview pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th{border:1px solid #ddd;padding:5px}.cm-s-easymde .cm-tag{color:#63a35c}.cm-s-easymde .cm-attribute{color:#795da3}.cm-s-easymde .cm-string{color:#183691}.cm-s-easymde .cm-header-1{font-size:calc(1.375rem + 1.5vw)}.cm-s-easymde .cm-header-2{font-size:calc(1.325rem + .9vw)}.cm-s-easymde .cm-header-3{font-size:calc(1.3rem + .6vw)}.cm-s-easymde .cm-header-4{font-size:calc(1.275rem + .3vw)}.cm-s-easymde .cm-header-5{font-size:1.25rem}.cm-s-easymde .cm-header-6{font-size:1rem}.cm-s-easymde .cm-header-1,.cm-s-easymde .cm-header-2,.cm-s-easymde .cm-header-3,.cm-s-easymde .cm-header-4,.cm-s-easymde .cm-header-5,.cm-s-easymde .cm-header-6{margin-bottom:.5rem;line-height:1.2}.cm-s-easymde .cm-comment{background:#0000000d;border-radius:2px}.cm-s-easymde .cm-link{color:#7f8c8d}.cm-s-easymde .cm-url{color:#aab2b3}.cm-s-easymde .cm-quote{color:#7f8c8d;font-style:italic}.editor-toolbar .easymde-dropdown{position:relative;background:linear-gradient(to bottom right,#fff 0 84%,#333 50% 100%);border-radius:0;border:1px solid #fff}.editor-toolbar .easymde-dropdown:hover{background:linear-gradient(to bottom right,#fff 0 84%,#333 50% 100%)}.easymde-dropdown-content{display:block;visibility:hidden;position:absolute;background-color:#f9f9f9;box-shadow:0 8px 16px #0003;padding:8px;z-index:2;top:30px}.easymde-dropdown:active .easymde-dropdown-content,.easymde-dropdown:focus .easymde-dropdown-content,.easymde-dropdown:focus-within .easymde-dropdown-content{visibility:visible}.easymde-dropdown-content button{display:block}span[data-img-src]:after{content:"";background-image:var(--bg-image);display:block;max-height:100%;max-width:100%;background-size:contain;height:0;padding-top:var(--height);width:var(--width);background-repeat:no-repeat}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:#ff000026}.post-edit-error{margin:1rem 0;padding:.75rem 1rem;border:1px solid #E5786A;border-radius:8px;background:#e5786a1f;color:#e5786a;font-size:.9rem;line-height:1.4}.editor-toolbar .mde-btn:before{font-style:normal;font-weight:400;font-family:inherit}.editor-toolbar .mde-bold:before{content:"B";font-weight:700}.editor-toolbar .mde-italic:before{content:"I";font-style:italic}.editor-toolbar .mde-ul:before{content:"\2022\2002\2014"}.editor-toolbar .mde-link:before{content:"\1f517"}.editor-toolbar .mde-preview:before{content:"\1f441"}.EasyMDEContainer .CodeMirror{min-height:180px}.photo-convert-status:empty{display:none}.photo-convert-status{font-size:var(--text-sm);margin-top:var(--space-2)}.photo-reauth-hint{display:none;font-size:var(--text-sm);color:var(--color-ink-muted);margin-top:var(--space-2)}.photo-reauth-hint.is-shown{display:block}.post-form-wrap select{width:100%;font-family:var(--font-ui);font-size:var(--text-base);padding:.875rem 2.5rem .875rem 1rem;min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-canvas);color:var(--color-ink);-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2390887E' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}.post-form-wrap select:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.post-form-wrap input[type=number]{width:100%;font-family:var(--font-ui);font-size:var(--text-base);padding:.875rem 1rem;min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-canvas);color:var(--color-ink);-webkit-appearance:none;appearance:none}.post-form-wrap input[type=number]:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.more-options{margin-bottom:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-canvas)}.more-options__summary{cursor:pointer;padding:.875rem 1rem;min-height:44px;display:flex;align-items:center;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;color:var(--color-ink);list-style:none;user-select:none}.more-options__summary::-webkit-details-marker{display:none}.more-options__summary:before{content:"\25b8";margin-right:var(--space-2);color:var(--color-ink-muted);transition:transform .15s}.more-options[open] .more-options__summary:before{transform:rotate(90deg)}.more-options[open] .more-options__summary{border-bottom:1px solid var(--color-border)}.more-options>.form-field{padding:0 1rem}.more-options>.form-field:first-of-type{padding-top:var(--space-4)}.more-options>.form-field:last-child{padding-bottom:var(--space-4);margin-bottom:0}.btn-action.is-loading{position:relative;color:transparent;pointer-events:none}.btn-action.is-loading:after{content:"";position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid var(--color-ink-muted);border-top-color:var(--color-accent);border-radius:50%;animation:post-spin .7s linear infinite}.btn-action[disabled]{opacity:.5;cursor:not-allowed}@keyframes post-spin{to{transform:rotate(360deg)}}.post-form-wrap .notices{padding:1rem 1.1rem;border-radius:var(--radius-md);font-size:var(--text-base);margin:0 0 var(--space-5);background:var(--color-canvas);color:var(--color-ink);border-left:4px solid var(--color-accent)}.post-form-wrap .notices p{margin:0}.post-form-wrap .notices.error,.post-form-wrap .notices.red{border-left-color:var(--color-error)}.post-form-wrap .notices.success,.post-form-wrap .notices.green{border-left-color:var(--color-accent)}.post-success{margin:0 0 var(--space-5);padding:1.1rem;border-radius:var(--radius-md);background:var(--color-accent-light);border:1px solid var(--color-accent)}.post-success__title{font-family:var(--font-ui);font-size:var(--text-md);font-weight:600;color:var(--color-ink);margin:0 0 var(--space-3)}.post-success__actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.post-success__view{flex:1;min-width:140px;text-align:center;padding:.8rem 1rem;min-height:44px;border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-on);font-weight:600;text-decoration:none}.post-success__again{flex:1;min-width:140px;text-align:center;padding:.8rem 1rem;min-height:44px;border-radius:var(--radius-md);background:transparent;color:var(--color-ink);border:1px solid var(--color-border);font-weight:600;text-decoration:none}.filepond--credits{display:none!important}.filepond--root{font-family:var(--font-ui);font-size:var(--text-base)}.filepond--panel-root{background-color:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-md)}.filepond--drop-label,.filepond--drop-label label{color:var(--color-ink-muted)}.filepond--label-action{color:var(--color-accent);text-decoration-color:var(--color-accent)}.filepond--item-panel{background-color:var(--color-surface-raised);border-radius:var(--radius-md)}.filepond--drip-blob{background-color:var(--color-accent)}.filepond--file{color:var(--color-ink)}.filepond--file-action-button{color:var(--color-ink);background-color:#00000073}.filepond--file-action-button:hover{background-color:#000000a6}.filepond--image-preview-overlay{display:none!important}.filepond--item[data-filepond-item-state=processing-complete] .filepond--file-info,.filepond--item[data-filepond-item-state=processing-complete] .filepond--file-status{opacity:0}.filepond--item[data-filepond-item-state=processing-complete]:after{content:"\2713";position:absolute;top:8px;right:8px;z-index:5;width:24px;height:24px;line-height:24px;text-align:center;border-radius:50%;background:var(--color-accent);color:#fff;font-size:15px;font-weight:700;box-shadow:0 1px 3px #00000059;pointer-events:none}.photos-collapse{margin-bottom:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-canvas)}.photos-collapse__summary{cursor:pointer;padding:.875rem 1rem;min-height:44px;display:flex;align-items:center;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;color:var(--color-ink);list-style:none;user-select:none}.photos-collapse__summary::-webkit-details-marker{display:none}.photos-collapse__summary:before{content:"\25b8";margin-right:var(--space-2);color:var(--color-ink-muted);transition:transform .15s}.photos-collapse[open] .photos-collapse__summary:before{transform:rotate(90deg)}.photos-collapse[open] .photos-collapse__summary{border-bottom:1px solid var(--color-border)}.photos-collapse>:not(summary){padding-left:1rem;padding-right:1rem}.photos-collapse[open] .filepond--root,.photos-collapse[open] .filepond-root{margin:var(--space-4) 0}.photos-collapse[open]>.photo-convert-status:last-child,.photos-collapse[open]>.photo-reauth-hint:last-child{padding-bottom:var(--space-4)}.EasyMDEContainer .CodeMirror{background:var(--color-canvas);color:var(--color-ink);border:1px solid var(--color-border);border-radius:0 0 var(--radius-md) var(--radius-md);font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-normal);padding:var(--space-1)}.EasyMDEContainer .CodeMirror-cursor{border-color:var(--color-ink)}.EasyMDEContainer .CodeMirror-selected{background:var(--color-accent-light)!important}.EasyMDEContainer .editor-toolbar{background:var(--color-surface-raised);border:1px solid var(--color-border);border-bottom:none;border-radius:var(--radius-md) var(--radius-md) 0 0;opacity:1}.EasyMDEContainer .editor-toolbar button{color:var(--color-ink)!important;min-width:34px;height:34px}.EasyMDEContainer .editor-toolbar button:hover,.EasyMDEContainer .editor-toolbar button.active{background:var(--color-accent-light);border-color:var(--color-border)}.EasyMDEContainer .editor-toolbar i.separator{border-color:var(--color-border)}.EasyMDEContainer .editor-preview,.EasyMDEContainer .editor-preview-side{background:var(--color-canvas);color:var(--color-ink)}.EasyMDEContainer .editor-preview a{color:var(--color-accent)}.photo-editor{margin-bottom:var(--space-5)}.photo-editor__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.photo-editor__label{font-family:var(--font-ui);font-size:var(--text-base);font-weight:600;color:var(--color-ink)}.photo-editor__add{font-family:var(--font-ui);font-size:var(--text-sm);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer}.photo-editor__add:disabled{opacity:.5;cursor:default}.photo-editor__status{font-size:var(--text-sm);color:var(--color-ink-muted);min-height:1.2em;margin:0 0 var(--space-2)}.photo-editor__status.error{color:var(--color-error)}.photo-editor__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}@media (min-width: 600px){.photo-editor__grid{grid-template-columns:repeat(4,1fr)}}.photo-editor__loading,.photo-editor__empty{grid-column:1 / -1;color:var(--color-ink-muted);font-size:var(--text-sm);padding:var(--space-4) 0}.photo-editor__cell{position:relative;aspect-ratio:1 / 1;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface-raised);cursor:grab;touch-action:none}.photo-editor__cell:active{cursor:grabbing}.photo-editor__img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none;user-select:none;pointer-events:none}.photo-editor__cell:first-child:after{content:"Cover";position:absolute;left:var(--space-1);bottom:var(--space-1);font-family:var(--font-ui);font-size:var(--text-xs, .7rem);font-weight:600;color:#fff;background:var(--color-accent);padding:1px 6px;border-radius:var(--radius-sm);pointer-events:none}.photo-editor__del{position:absolute;top:var(--space-1);right:var(--space-1);width:24px;height:24px;line-height:1;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:.85rem;cursor:pointer}.photo-editor__del:hover{background:#000000bf}.photo-editor__del:disabled{opacity:.4;cursor:default}.photo-editor__confirm{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2);background:#000000b8;text-align:center}.photo-editor__confirm-q{color:#fff;font-family:var(--font-ui);font-size:var(--text-sm)}.photo-editor__confirm button{font-family:var(--font-ui);font-size:var(--text-xs, .72rem);border:none;border-radius:var(--radius-sm);padding:3px 10px;cursor:pointer}.photo-editor__confirm-yes{background:var(--color-error);color:#fff}.photo-editor__confirm-no{background:#fff;color:var(--color-ink)}.photo-editor__confirm button:disabled{opacity:.5;cursor:default}.photo-editor__cell.sortable-ghost{opacity:.4}.photo-editor__cell.sortable-chosen{outline:2px solid var(--color-accent)}
|
|
/*! Bundled license information:
|
|
|
|
easymde/dist/easymde.min.css:
|
|
(**
|
|
* easymde v2.21.0
|
|
* Copyright Jeroen Akkerman
|
|
* @link https://github.com/ionaru/easy-markdown-editor
|
|
* @license MIT
|
|
*)
|
|
*/
|