domma-cms 0.36.3 → 0.36.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/css/admin.css +1 -1
- package/admin/js/lib/card-builder.js +3 -3
- package/admin/js/lib/editor-folding.js +1 -1
- package/admin/js/lib/effects-builder.js +2 -2
- package/admin/js/lib/markdown-toolbar.js +3 -3
- package/admin/js/lib/shortcode-modal.js +1 -1
- package/admin/js/lib/timeline-builder.js +2 -2
- package/admin/js/views/actions-list.js +1 -1
- package/admin/js/views/api-endpoint-editor.js +3 -3
- package/admin/js/views/api-endpoints.js +2 -2
- package/admin/js/views/api-tokens.js +4 -4
- package/admin/js/views/blocks.js +5 -5
- package/admin/js/views/collection-editor.js +4 -4
- package/admin/js/views/collection-entries.js +1 -1
- package/admin/js/views/component-editor.js +1 -1
- package/admin/js/views/components.js +2 -2
- package/admin/js/views/effects.js +1 -1
- package/admin/js/views/form-editor.js +7 -7
- package/admin/js/views/layouts.js +1 -1
- package/admin/js/views/login.js +1 -1
- package/admin/js/views/menu-editor.js +8 -8
- package/admin/js/views/menu-locations.js +1 -1
- package/admin/js/views/menus.js +3 -3
- package/admin/js/views/my-profile.js +1 -1
- package/admin/js/views/notifications.js +1 -1
- package/admin/js/views/page-editor.js +29 -29
- package/admin/js/views/project-detail.js +1 -1
- package/admin/js/views/project-editor.js +1 -1
- package/admin/js/views/project-settings.js +1 -1
- package/admin/js/views/projects.js +2 -2
- package/admin/js/views/user-editor.js +1 -1
- package/admin/js/views/view-editor.js +1 -1
- package/admin/js/views/view-preview.js +1 -1
- package/admin/js/views/views-list.js +1 -1
- package/package.json +1 -1
package/admin/css/admin.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.dashboard-layout{display:flex;flex-direction:column;min-height:100vh}.dashboard-wrapper{display:flex;flex:1;min-height:0}.dashboard-main{flex:1;min-width:0;overflow-y:auto}.view-container{padding:1.5rem 2rem;max-width:1200px}.view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.view-header h1{font-size:1.5rem;font-weight:700;margin:0;display:flex;align-items:center;gap:.5rem}.view-header-actions{display:flex;gap:.5rem}.stat-card .card-body{display:flex;align-items:center;gap:1rem}.stat-icon{width:44px;height:44px;border-radius:8px;background:color-mix(in srgb,var(--dm-primary) 14%,transparent);color:var(--dm-primary, #5b8cff);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.stat-icon--success{background:color-mix(in srgb,var(--dm-success) 15%,transparent);color:var(--dm-success)}.stat-icon--warning{background:color-mix(in srgb,var(--dm-warning) 15%,transparent);color:var(--dm-warning)}.stat-value{font-size:1.75rem;font-weight:700;line-height:1}.stat-label{font-size:.8rem;color:var(--dm-text-muted, #888);margin-top:.25rem}.toolbar{display:flex;align-items:center;gap:.75rem}.form-check-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem}.form-hint{display:block;font-size:.8rem;color:var(--dm-text-muted, #888);margin-top:.25rem}.dashboard-main:has(#editor-meta-tabs){overflow:hidden}.view-container:has(#editor-meta-tabs){display:flex;flex-direction:column;height:calc(100dvh - 60px);max-width:100%;padding-bottom:0}.view-container:has(#block-editor-body){max-width:100%}.view-container:has(#ep-editor-tabs){max-width:100%}.ep-editor-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1.3fr);gap:1rem;align-items:start}.ep-editor-grid>.ep-tryit-col,.ep-editor-grid>.ep-results-col{position:sticky;top:1rem;display:flex;flex-direction:column;gap:1rem;min-width:0}@media(max-width:1500px){.ep-editor-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ep-editor-grid>:first-child{grid-column:1 / -1}.ep-editor-grid>.ep-tryit-col,.ep-editor-grid>.ep-results-col{position:static}}@media(max-width:1024px){.ep-editor-grid{grid-template-columns:minmax(0,1fr)}}#editor-meta-tabs{flex:1;min-height:0;display:flex;flex-direction:column}#editor-meta-tabs .tab-content{flex:1;min-height:0;overflow:hidden}#editor-meta-tabs .tab-panel{height:100%;overflow-y:auto}#editor-meta-tabs .tab-panel:has(.editor-card),#live-preview-panel{overflow:hidden}.page-live-preview-frame{display:block;width:100%;height:calc(100vh - 180px);border:none;border-radius:6px}.editor-card{display:flex;flex-direction:column;height:100%}.editor-card .card-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:0!important}.editor-toolbar{display:flex;align-items:center;gap:2px;padding:6px 10px;border-bottom:1px solid var(--dm-border, rgba(255, 255, 255, .08));flex-wrap:wrap;flex-shrink:0}.editor-toolbar-btn{background:none;border:none;color:var(--dm-text-muted, #888);padding:6px 8px;border-radius:4px;cursor:pointer;display:flex;align-items:center;transition:color .15s,background .15s}.editor-toolbar-btn:hover{color:var(--dm-text, #eee);background:var(--dm-hover-bg)}.editor-toolbar-sep{width:1px;height:20px;background:var(--dm-border, rgba(255, 255, 255, .08));margin:0 4px;flex-shrink:0}.editor-toolbar-right{margin-left:auto;display:flex;align-items:center;gap:2px}.editor-view-btn{background:none;border:none;color:var(--dm-text-muted, #888);padding:6px 8px;border-radius:4px;cursor:pointer;display:flex;align-items:center;transition:color .15s,background .15s}.editor-view-btn:hover{color:var(--dm-text, #eee);background:var(--dm-hover-bg)}.editor-view-btn.active{color:var(--dm-primary, #5b8cff);background:color-mix(in srgb,var(--dm-primary) 14%,transparent)}.editor-body{display:flex;flex:1;min-height:0}.editor-pane{flex:1;display:flex;flex-direction:column;min-width:0}.editor-pane--write,.editor-pane--preview{overflow:hidden}.editor-pane--write{flex-direction:row}.editor-line-numbers{padding:1rem .6rem 1rem .75rem;background:var(--dm-background-alt, rgba(0, 0, 0, .15));border-right:1px solid var(--dm-border, rgba(255, 255, 255, .08));color:var(--dm-text-muted, #666);font-family:Fira Code,Courier New,monospace;font-size:.9rem;line-height:1.6;text-align:right;user-select:none;white-space:pre;overflow:hidden;flex-shrink:0;min-width:2.5rem}.editor-line-numbers--foldable{padding:1rem 0;min-width:3rem;white-space:normal;text-align:left;display:flex;flex-direction:column}.editor-line-number-row{display:flex;align-items:center;justify-content:flex-end;padding-right:.6rem;gap:.15rem}.fold-toggle{display:inline-flex;align-items:center;justify-content:center;width:1em;font-size:.6rem;cursor:default;color:transparent}.fold-toggle--open,.fold-toggle--folded{cursor:pointer;color:var(--dm-text-muted, #666);transition:color .1s}.fold-toggle--open:hover,.fold-toggle--folded:hover{color:var(--dm-primary, #4a9eff)}.editor-line-num{min-width:1.5rem;text-align:right}.editor-mode-write .editor-pane--preview,.editor-mode-write .editor-divider,.editor-mode-preview .editor-pane--write,.editor-mode-preview .editor-divider{display:none}.editor-divider{width:1px;background:var(--dm-border, rgba(255,255,255,.08));flex-shrink:0}.editor-textarea{flex:1;resize:none;border:none;border-radius:0;background:transparent;font-family:Fira Code,Courier New,monospace;font-size:.9rem;padding:1rem;outline:none;color:inherit;line-height:1.6}.editor-preview{flex:1;padding:1rem;overflow-y:auto;line-height:1.7}.editor-preview h1,.editor-preview h2,.editor-preview h3{margin-top:1.5rem}.editor-preview p{margin-bottom:.75rem}.editor-preview code{background:var(--dm-code-bg);padding:.1em .3em;border-radius:3px;font-size:.9em}.editor-fullscreen{position:fixed;inset:0;z-index:1000;border-radius:0;margin:0}.editor-fullscreen .card-body{height:100vh}.media-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;max-height:400px;overflow-y:auto;padding:.25rem}.media-picker-item{cursor:pointer;border:2px solid transparent;border-radius:6px;overflow:hidden;transition:border-color .15s}.media-picker-item:hover{border-color:var(--dm-primary, #5b8cff)}.media-picker-item img{width:100%;height:80px;object-fit:cover;display:block}.media-picker-item span{display:block;font-size:.75rem;padding:4px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docs-body h3{margin-top:1.25rem;margin-bottom:.5rem}.docs-body p{margin-bottom:.5rem;line-height:1.6}.docs-body ol,.docs-body ul{margin-bottom:.75rem;padding-left:1.25rem}.docs-body li{margin-bottom:.25rem}.docs-body hr{margin:1.25rem 0;border-color:var(--dm-border, rgba(255, 255, 255, .08))}.docs-body .table{margin-bottom:.75rem}.nav-items-header,.nav-item-row{display:flex;gap:.5rem;align-items:center;padding:.35rem .75rem}.nav-items-header{border-bottom:1px solid var(--dm-border, rgba(255,255,255,.08));padding-bottom:.4rem;margin-bottom:.25rem}.nav-item-row{border-bottom:1px solid var(--dm-border, rgba(255,255,255,.04))}.nav-item-row:last-child{border-bottom:none}.nav-col-indent{width:18px;flex-shrink:0;color:var(--dm-text-muted, #888);text-align:center;font-size:.85rem}.nav-col-main{flex:2;min-width:0}.nav-col-icon{flex:0 0 90px}.nav-col-parent{flex:2;min-width:0}.nav-col-action{flex-shrink:0}.nav-item-row--child{background:color-mix(in srgb,var(--dm-text) 3%,transparent)}.nav-col-action{display:flex;align-items:center;gap:.25rem}.nav-item-row--hidden{opacity:.45}.nav-item-row--hidden .item-text,.nav-item-row--hidden .footer-link-text{text-decoration:line-through}.btn-toggle-hidden{color:var(--dm-text-muted, #888)}.btn-toggle-hidden.active{color:var(--dm-warning, #f59e0b)}.fb-field-card.fb-drag-over{outline:2px dashed var(--dm-primary, #6366f1);outline-offset:-2px}.fb-fields-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:1rem;align-items:start}.fb-preview-pane{position:sticky;top:1rem;min-width:0}@media(max-width:1100px){.fb-fields-layout{grid-template-columns:1fr}.fb-preview-pane{position:static}}.toggle-label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;cursor:pointer;margin-right:1rem}.preset-toggles{display:flex;flex-wrap:wrap;margin-top:.75rem}.presets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:900px){.presets-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.presets-grid{grid-template-columns:1fr}}.card-header{padding:.5rem 1rem}.card-header h2{margin:0;font-size:.9rem;font-weight:600;letter-spacing:.02em}.preset-card .card-header{display:flex;align-items:center;justify-content:space-between}.preset-card .card-header h3{margin:0;font-size:1rem}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.media-card{background:var(--dm-card-bg, rgba(255,255,255,.04));border:1px solid var(--dm-border, rgba(255,255,255,.08));border-radius:8px;overflow:hidden}.media-preview{height:130px;display:flex;align-items:center;justify-content:center;background:#0003;overflow:hidden}.media-thumb{width:100%;height:100%;object-fit:cover}.media-thumb--file{font-size:2rem;color:var(--dm-text-muted, #888)}.media-info{padding:.5rem .75rem;display:flex;flex-direction:column;gap:.15rem}.media-name{font-size:.8rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}.media-rename-input{width:100%;font-size:.8rem;font-weight:500;padding:.1rem .25rem;border:1px solid var(--dm-primary, #7c6af7);border-radius:3px;background:var(--dm-input-bg, transparent);color:inherit;outline:none}.media-size{font-size:.75rem;color:var(--dm-text-muted, #888)}.media-actions{padding:.5rem .75rem;display:flex;gap:.4rem;border-top:1px solid var(--dm-border, rgba(255,255,255,.08))}#admin-topbar{height:60px;display:flex;align-items:center;gap:1rem;padding:0 1.25rem;background:var(--dm-navbar-bg, rgba(0,0,0,.3));border-bottom:1px solid var(--dm-border, rgba(255,255,255,.08));position:sticky;top:0;z-index:200;flex-shrink:0}.topbar-brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.95rem;color:inherit;flex-shrink:0;margin-right:.5rem}.topbar-brand span[data-icon],.topbar-brand svg{color:var(--dm-primary, #5b8cff);width:22px;height:22px}.topbar-brand-text{opacity:.85}.topbar-brand-logo{height:28px;width:auto;display:inline-block;vertical-align:middle;margin-right:.4em;object-fit:contain}.topbar-user{display:flex;align-items:center;gap:.6rem;flex:1}.topbar-user-name{font-size:.875rem;font-weight:500}.topbar-role-badge{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.15rem .45rem;border-radius:4px}.topbar-role-badge--admin{background:color-mix(in srgb,var(--dm-primary) 15%,transparent);color:var(--dm-primary)}.topbar-role-badge--manager{background:color-mix(in srgb,var(--dm-success) 15%,transparent);color:var(--dm-success)}.topbar-role-badge--editor{background:color-mix(in srgb,var(--dm-warning) 15%,transparent);color:var(--dm-warning)}.topbar-role-badge--subscriber{background:color-mix(in srgb,var(--dm-text-muted) 15%,transparent);color:var(--dm-text-muted)}.topbar-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.topbar-action-link{display:flex;align-items:center;gap:.35rem;font-size:.875rem;color:var(--dm-text-muted, #888);text-decoration:none;padding:.4rem .65rem;border-radius:6px;transition:color .15s,background .15s}.topbar-action-link:hover{color:var(--dm-text, #eee);background:var(--dm-hover-bg)}.topbar-action-link span[data-icon],.topbar-action-link svg{width:16px;height:16px}.topbar-signout{display:flex;align-items:center;gap:.35rem;font-size:.875rem}.topbar-signout span[data-icon],.topbar-signout svg{width:16px;height:16px}.login-wrap{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--dm-background, #0f1117);z-index:100;overflow-y:auto}.login-card{width:100%;max-width:460px}.ob-done-icon{font-size:3rem;color:var(--dm-success);margin-bottom:1rem;text-align:center}.btn-skip{display:block;text-align:center;margin-top:.75rem;font-size:.85rem;color:var(--dm-text-muted, #888);text-decoration:none}.btn-skip:hover{text-decoration:underline}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.theme-swatch{border:2px solid var(--dm-border, rgba(255,255,255,.1));border-radius:8px;overflow:hidden;cursor:pointer;transition:border-color .15s,transform .1s}.theme-swatch:hover{border-color:var(--dm-primary, #5b8cff);transform:translateY(-1px)}.theme-swatch.selected{border-color:var(--dm-primary, #5b8cff);box-shadow:0 0 0 2px var(--dm-primary, #5b8cff)}.theme-swatch-preview{height:52px;position:relative;display:flex;align-items:flex-end;padding:.35rem}.theme-swatch-accent{width:28px;height:6px;border-radius:3px}.theme-swatch-label{display:flex;justify-content:space-between;align-items:center;padding:.3rem .45rem;font-size:.7rem;background:var(--dm-card-bg, rgba(255,255,255,.04))}.theme-swatch-mode{color:var(--dm-text-muted, #888);font-size:.65rem}.login-logo{display:flex;align-items:center;gap:.75rem;margin-bottom:1.75rem;font-size:1.5rem}.login-logo span[data-icon]{font-size:2rem;color:var(--dm-primary, #5b8cff)}.login-logo h1{margin:0;font-size:1.5rem;font-weight:700}.login-heading{font-size:1.1rem;font-weight:600;margin-bottom:1.25rem}.btn-block{width:100%}.plugins-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.plugin-card{display:flex;flex-direction:column}.plugin-card .card-body{flex:1}.plugin-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.plugin-icon{width:40px;height:40px;border-radius:8px;background:color-mix(in srgb,var(--dm-primary) 14%,transparent);color:var(--dm-primary, #5b8cff);display:flex;align-items:center;justify-content:center;flex-shrink:0}.plugin-meta{flex:1;min-width:0}.plugin-name{font-weight:600;margin-bottom:.15rem}.plugin-version{font-size:.75rem;color:var(--dm-text-muted, #888)}.plugin-desc{font-size:.875rem;color:var(--dm-text-muted, #888);margin-bottom:1rem}.plugin-footer{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-top:1px solid var(--dm-border, rgba(255,255,255,.08))}.plugin-footer-actions{display:flex;align-items:center;gap:.5rem}#admin-sidebar .sidebar-link{position:relative!important}#admin-sidebar .sidebar-badge{position:absolute!important;right:.75rem!important;top:50%!important;transform:translateY(-50%)!important;margin-left:0!important;padding-left:.45rem!important;padding-right:.45rem!important}#admin-sidebar .sidebar-text{padding-right:2rem!important}#admin-sidebar.sidebar-dark{background:var(--dm-surface);border-color:var(--dm-border)}#admin-sidebar.sidebar-dark .sidebar-header{background:var(--dm-surface-raised);border-color:var(--dm-border)}#admin-sidebar.sidebar-dark .sidebar-header-title{color:var(--dm-text)}#admin-sidebar.sidebar-dark .sidebar-link{color:var(--dm-text-muted)}#admin-sidebar.sidebar-dark .sidebar-link:hover{color:var(--dm-text);background:var(--dm-surface-overlay)}#admin-sidebar.sidebar-dark .sidebar-link.active{color:var(--dm-primary);background:color-mix(in srgb,var(--dm-primary) 14%,transparent);border-left-color:var(--dm-primary)}#admin-sidebar.sidebar-dark .sidebar-heading{color:var(--dm-text-muted)}#admin-sidebar.sidebar-dark .sidebar-divider{background:var(--dm-border)}#admin-sidebar.sidebar-dark .sidebar-footer{background:var(--dm-surface-raised);border-color:var(--dm-border)}.sidebar-heading--collapsible{display:flex!important;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}.sidebar-heading-toggle{display:flex;align-items:center;opacity:.5;flex-shrink:0;transition:transform .2s ease}.sidebar-heading--collapsible.is-collapsed .sidebar-heading-toggle{transform:rotate(-90deg)}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.p-0{padding:0!important}.text-muted{color:var(--dm-text-muted, #888)}@media(max-width:768px){.view-container{padding:1rem}.editor-body{flex-direction:column}.editor-divider{width:auto;height:1px}}.image-editor{display:flex;flex-direction:column;gap:0}.image-editor-toolbar{display:flex;flex-direction:row;align-items:center;gap:.25rem;padding:.5rem .75rem;border-bottom:1px solid var(--dm-border, rgba(255, 255, 255, .1))}.image-editor-sep{display:inline-block;width:1px;height:1.5rem;background:var(--dm-border, rgba(255, 255, 255, .15));margin:0 .25rem;flex-shrink:0}.editor-toolbar-btn.active{color:var(--dm-primary, #7c6af7);background:color-mix(in srgb,var(--dm-primary, #7c6af7) 15%,transparent)}.editor-toolbar-caret{font-size:.6rem;line-height:1;margin-left:2px;opacity:.6}.editor-toolbar-dropdown{position:absolute;z-index:1000;background:var(--dm-surface, #1e1e2e);border:1px solid var(--dm-border, rgba(255, 255, 255, .1));border-radius:8px;box-shadow:0 8px 24px #0006;padding:4px;min-width:160px}.editor-toolbar-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;color:var(--dm-text, #ddd);padding:7px 10px;border-radius:5px;cursor:pointer;font-size:.85rem;transition:background .12s,color .12s}.editor-toolbar-dropdown-item:hover{background:var(--dm-hover-bg);color:var(--dm-text, #fff)}.editor-toolbar-dropdown-item span[data-icon],.editor-toolbar-dropdown-item svg{width:15px;height:15px;flex-shrink:0;opacity:.75}.editor-toolbar{position:relative}.editor-effects-dropdown-menu{position:absolute;top:100%;z-index:1000;background:var(--dm-surface, #1e1e2e);border:1px solid var(--dm-border, rgba(255, 255, 255, .1));border-radius:8px;box-shadow:0 8px 24px #0006;padding:6px;min-width:180px;max-height:340px;overflow-y:auto}.editor-effects-category{padding:6px 8px 3px;font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--dm-text-muted, #888)}.editor-effects-item{display:block;width:100%;text-align:left;background:none;border:none;color:var(--dm-text, #ddd);padding:6px 10px;border-radius:5px;cursor:pointer;font-size:.85rem;transition:background .12s,color .12s}.editor-effects-item:hover{background:var(--dm-hover-bg);color:var(--dm-text, #fff)}.editor-icon-picker{position:absolute;z-index:1000;background:var(--dm-surface, #1e1e2e);border:1px solid var(--dm-border, rgba(255, 255, 255, .1));border-radius:8px;box-shadow:0 8px 24px #0006;padding:8px;width:320px}.editor-icon-picker-search{width:100%;margin-bottom:8px;font-size:.8rem}.editor-spacer-picker{position:absolute;z-index:9999;background:var(--dm-surface, #1e1e2e);border:1px solid var(--dm-border, #333);border-radius:8px;padding:12px;width:240px;box-shadow:0 8px 24px #00000073}.editor-spacer-picker-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--dm-text-muted, #888);margin-bottom:10px}.editor-spacer-picker-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.editor-spacer-slider{flex:1;accent-color:var(--dm-primary, #6366f1);cursor:pointer}.editor-spacer-slider-value{font-size:13px;font-weight:600;min-width:38px;text-align:right;color:var(--dm-text, #cdd6f4)}.editor-spacer-insert-btn{width:100%}.editor-icon-picker-size-row{display:flex;align-items:center;gap:8px;padding:0 8px 8px}.editor-icon-picker-size-row label{font-size:11px;color:var(--dm-text-muted, #888);white-space:nowrap}.editor-icon-picker-size{width:70px;font-size:12px;padding:3px 6px}.editor-icon-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:2px;max-height:280px;overflow-y:auto}.editor-icon-picker-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 2px;border-radius:5px;cursor:pointer;background:none;border:none;color:var(--dm-text, #ddd);font-size:.58rem;text-align:center;gap:4px;overflow:hidden;transition:background .12s,color .12s}.editor-icon-picker-item:hover{background:var(--dm-hover-bg);color:var(--dm-text, #fff)}.editor-icon-picker-item span[data-icon],.editor-icon-picker-item svg{width:16px;height:16px;flex-shrink:0}.editor-icon-picker-item>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.editor-icon-picker-empty{grid-column:1 / -1;text-align:center;color:var(--dm-text-muted, #888);font-size:.8rem;padding:1.5rem}.image-editor-canvas{min-height:320px;max-height:520px;background:#111;overflow:hidden;display:flex;align-items:center;justify-content:center}.image-editor-canvas img{display:block;max-width:100%;max-height:520px}.image-editor-resize{display:flex;flex-direction:row;align-items:center;gap:.5rem;padding:.6rem .75rem;border-top:1px solid var(--dm-border, rgba(255, 255, 255, .1));font-size:.85rem}.image-editor-resize label{font-weight:600;color:var(--dm-text-muted, #888);font-size:.8rem}.image-editor-resize .form-input{width:5rem;padding:.25rem .5rem;font-size:.85rem}.image-editor-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:.75rem;border-top:1px solid var(--dm-border, rgba(255, 255, 255, .1));gap:.5rem}.image-editor-effects{border-top:1px solid var(--dm-border, rgba(255, 255, 255, .1))}.image-editor-tab-bar{display:flex;flex-direction:row;overflow-x:auto;border-bottom:1px solid var(--dm-border, rgba(255, 255, 255, .1));scrollbar-width:none}.image-editor-tab-bar::-webkit-scrollbar{display:none}.image-editor-tab-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .85rem;font-size:.8rem;font-weight:500;border:none;border-bottom:2px solid transparent;background:transparent;cursor:pointer;color:var(--dm-text-muted, #888);white-space:nowrap;transition:color .15s,border-color .15s;flex-shrink:0}.image-editor-tab-btn:hover{color:var(--dm-text, #eee)}.image-editor-tab-btn.active{color:var(--dm-primary, #7c6af7);border-bottom-color:var(--dm-primary, #7c6af7)}.image-editor-tab-panel{padding:.75rem;max-height:200px;overflow-y:auto}.ie-presets-grid{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}.ie-preset-btn.active{color:var(--dm-primary, #7c6af7);background:color-mix(in srgb,var(--dm-primary, #7c6af7) 15%,transparent);border-color:var(--dm-primary, #7c6af7)}.ie-server-note{font-size:.73rem;color:var(--dm-text-muted, #888);font-style:italic;margin:.25rem 0 0;line-height:1.4}.ie-slider-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.ie-slider-label{width:6rem;font-size:.8rem;color:var(--dm-text-muted, #888);font-weight:600;flex-shrink:0}.ie-slider{flex:1;accent-color:var(--dm-primary, #7c6af7);cursor:pointer}.ie-slider-val{width:3rem;font-size:.8rem;text-align:right;color:var(--dm-text, #eee);flex-shrink:0}.ie-select{flex:1;font-size:.85rem;padding:.25rem .5rem}.ie-colour-input{width:40px;height:28px;padding:0;border:1px solid var(--dm-border, rgba(255, 255, 255, .15));border-radius:4px;cursor:pointer;background:transparent;flex-shrink:0}.ie-wm-preview-row{display:flex;align-items:center;gap:.5rem;margin:.4rem 0}.ie-wm-preview-img{width:48px;height:48px;object-fit:contain;border-radius:4px;background:var(--dm-surface-raised, rgba(255, 255, 255, .06));flex-shrink:0}.ie-wm-preview-name{font-size:.8rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dm-text, #eee)}.ie-media-picker{padding:.25rem 0}.ie-media-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.5rem;max-height:300px;overflow-y:auto}.ie-media-thumb{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.4rem;border-radius:6px;cursor:pointer;border:2px solid transparent;transition:border-color .15s,background .15s}.ie-media-thumb:hover{background:var(--dm-surface-raised, rgba(255, 255, 255, .08));border-color:var(--dm-primary, #7c6af7)}.ie-media-thumb img{width:72px;height:72px;object-fit:cover;border-radius:4px}.ie-media-thumb-name{font-size:.7rem;color:var(--dm-text-muted, #888);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:72px}.dm-slideover-left,.dm-slideover-right{width:min(40rem,95vw)!important;min-width:min(36rem,100vw)!important;max-width:100vw!important}.dm-slideover-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--dm-border, #333);flex-shrink:0}.dm-slideover-title{margin:0;font-size:1rem;font-weight:600}.dm-slideover-close{padding:.2rem .35rem!important;line-height:1;font-size:.75rem}.dm-slideover-body{flex:1;overflow-y:auto;min-height:0;padding:1.5rem!important;box-sizing:border-box}.dm-slideover>div:not(.dm-slideover-header):not(.dm-slideover-body):not(.dm-slideover-close){padding:1.5rem!important;box-sizing:border-box}.dm-slideover-body>div{padding-left:0!important;padding-right:0!important}.dm-slideover-body>button.btn:last-child{margin-top:.5rem}.dconfig-textarea{font-family:monospace;min-height:100px;resize:vertical}.dm-editor-line-numbers{white-space:pre}.dm-code-inline{font-family:Fira Code,Courier New,monospace;font-size:.82em;padding:.15em .35em;border-radius:3px;background:var(--dm-background-alt, rgba(0, 0, 0, .18));color:var(--dm-text, inherit);border:1px solid var(--dm-border, rgba(255, 255, 255, .08))}.dm-code-block{font-family:Fira Code,Courier New,monospace;font-size:.82rem;line-height:1.6;padding:.65rem .9rem;border-radius:6px;background:var(--dm-background-alt, rgba(0, 0, 0, .18));color:var(--dm-text, inherit);border:1px solid var(--dm-border, rgba(255, 255, 255, .08));white-space:pre;overflow-x:auto;display:block;margin:.4rem 0}.tabs-centered{text-align:center}.tabs-centered .tab-list{display:inline-flex}.tabs-centered .tab-content{text-align:left}@media(max-width:768px){.view-header{flex-direction:column;align-items:flex-start}.theme-grid{grid-template-columns:repeat(2,1fr)}.nav-item-row{flex-wrap:wrap}.nav-col-icon,.nav-col-parent{display:none}#admin-topbar{padding:0 .75rem}.topbar-brand-text{display:none}.image-editor-toolbar{flex-wrap:wrap}}#topbar-bell{position:relative}.topbar-bell-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;background:var(--dm-danger, #dc2626);color:var(--dm-danger-text, #fff);font-size:10px;font-weight:700;line-height:16px;border-radius:9999px;text-align:center;pointer-events:none}.cb-scaffolder{padding:1rem 1.1rem;background:var(--dm-background-alt);border:1px solid var(--dm-primary);border-radius:8px;color:var(--dm-text)}.cb-scaffolder-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.cb-scaffolder-head .cb-icon{flex-shrink:0;color:var(--dm-primary)}.cb-scaffolder-head h2{margin:0;font-size:1.05rem;font-weight:700;color:var(--dm-text)}.cb-scaffolder-blurb{margin:0 0 .75rem;font-size:.88rem;line-height:1.5;color:var(--dm-text-muted)}.cb-recipe-list{display:flex;flex-direction:column;gap:.5rem}.cb-recipe-card{display:flex;align-items:flex-start;gap:.75rem;text-align:left;padding:.75rem 1rem;background:var(--dm-surface);border:1px solid var(--dm-border);border-radius:6px;cursor:pointer;transition:border-color .12s;width:100%;color:var(--dm-text)}.cb-recipe-card:hover{border-color:var(--dm-primary)}.cb-recipe-card .cb-icon{flex-shrink:0;font-size:1.5rem;color:var(--dm-primary);margin-top:.1rem}.cb-recipe-meta{flex:1}.cb-recipe-name{font-weight:600;margin-bottom:.15rem;font-size:.95rem;color:var(--dm-text)}.cb-recipe-desc{font-size:.83rem;line-height:1.45;color:var(--dm-text-muted)}.cb-apply-panel{padding:1rem 1.1rem;background:var(--dm-surface);border:1px solid var(--dm-primary);border-radius:8px;color:var(--dm-text)}.cb-apply-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.cb-apply-head .cb-icon{color:var(--dm-primary);font-size:1.4rem}.cb-apply-head h3{margin:0;font-size:1rem;font-weight:600;color:var(--dm-text)}.cb-apply-desc,.cb-apply-hint{margin:.25rem 0 .75rem;font-size:.85rem;line-height:1.5;color:var(--dm-text-muted)}.cb-apply-hint{font-size:.75rem;margin-top:.2rem}.cb-apply-field{margin-bottom:.6rem}.cb-apply-field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:.2rem;color:var(--dm-text)}.cb-apply-field input{width:100%;padding:.4rem .55rem;border:1px solid var(--dm-border);border-radius:4px;font-size:.88rem;background:var(--dm-surface);color:var(--dm-text)}.cb-apply-status{margin:.5rem 0;font-size:.85rem;min-height:1.2rem;color:var(--dm-text)}.cb-apply-status.cb-error{color:var(--dm-danger, #dc2626)}.cb-apply-buttons{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.cb-success-panel{padding:1rem 1.1rem;background:var(--dm-surface);border:1px solid var(--dm-success, #16a34a);border-radius:8px;color:var(--dm-text)}.cb-success-panel .cb-icon{color:var(--dm-success, #16a34a);font-size:1.4rem}.cb-success-summary{margin:.25rem 0 .5rem;padding-left:1.2rem;font-size:.86rem;line-height:1.6;color:var(--dm-text)}.cb-success-warning{margin:.5rem 0;padding:.5rem .75rem;background:var(--dm-background-alt);border-left:3px solid var(--dm-warning, #eab308);border-radius:0 4px 4px 0;font-size:.82rem;color:var(--dm-text-muted)}.cb-success-snippet-label{margin:0 0 .25rem;font-size:.82rem;font-weight:600;color:var(--dm-text)}.cb-success-actions{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.cb-code{position:relative}.cb-code pre{background:var(--dm-background-alt);color:var(--dm-text);display:block;padding:.6rem 2.4rem .6rem .75rem;white-space:pre;overflow-x:auto;margin:0;border-radius:6px;font-size:.82em;font-family:monospace;line-height:1.45}.cb-code .cb-copy{position:absolute;top:.35rem;right:.35rem;background:none;border:none;cursor:pointer;opacity:.45;padding:.2rem;line-height:1;color:var(--dm-text)}.cb-code .cb-copy:hover{opacity:1}.cb-intro{padding:.75rem 1rem;border-left:3px solid var(--dm-primary);background:var(--dm-background-alt);border-radius:0 6px 6px 0}.cb-intro p{margin:0;font-size:.92rem;line-height:1.5;color:var(--dm-text)}.cb-tutorial-link{display:flex;align-items:center;gap:.6rem;padding:.65rem .85rem;border:1px solid var(--dm-border);border-radius:6px;text-decoration:none;color:var(--dm-text);font-size:.88rem;transition:border-color .12s}.cb-tutorial-link:hover{border-color:var(--dm-primary)}.cb-tutorial-link .cb-icon{flex-shrink:0;color:var(--dm-primary)}.cb-tutorial-link .cb-arrow{color:var(--dm-text-muted);font-size:1.1rem;margin-left:auto}.menu-tree-row{display:grid;grid-template-columns:16px 1.4fr 1.4fr .9fr .7fr .9fr repeat(6,auto);gap:6px;align-items:center;padding:4px 0;transition:opacity .15s ease}.menu-tree-row--hidden{opacity:.5}.menu-tree-grip{cursor:grab;color:var(--dm-text-muted)}.menu-tree{padding:8px 0}.menu-tree-row--separator{display:grid;grid-template-columns:16px minmax(80px,1fr) repeat(7,auto);gap:6px;align-items:center;padding:2px 0;opacity:.85}.menu-tree-row--separator:hover{opacity:1}.menu-tree-row--separator .me-sep-line{display:flex;align-items:center;gap:10px;width:100%}.menu-tree-row--separator .me-sep-line:before,.menu-tree-row--separator .me-sep-line:after{content:"";flex:1;border-top:1px dashed var(--dm-border, rgba(128, 128, 128, .55))}.menu-tree-row--separator .me-sep-label{font-size:.66rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--dm-text-muted, #8a8a8a);white-space:nowrap}.dm-admin-sidebar .sidebar-divider{border:0;border-top:1px solid var(--dm-border, rgba(128, 128, 128, .5));margin:.5rem .75rem;opacity:.8}.menu-tree-row .me-icon-wrap{display:flex;gap:2px}.menu-tree-row .me-icon-wrap .me-icon{flex:1;min-width:0}.menu-tree-row .me-icon-wrap .me-icon-pick{flex-shrink:0;padding:.2rem .45rem;font-size:.85em}.dm-admin-sidebar{display:flex;flex-direction:column;gap:2px;padding:8px 0}.dm-admin-sidebar details{margin:0}.dm-admin-sidebar details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border-radius:4px;user-select:none}.dm-admin-sidebar details>summary::-webkit-details-marker{display:none}.dm-admin-sidebar details>summary:after{content:"\25b8";margin-left:auto;transition:transform .15s ease;color:var(--dm-text-muted, #999);font-size:.85em}.dm-admin-sidebar details[open]>summary:after{transform:rotate(90deg)}.dm-admin-sidebar details>div{padding-left:1rem;border-left:1px solid var(--dm-border-light, rgba(0, 0, 0, .08));margin-left:.95rem}.dm-admin-sidebar .sidebar-link{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;text-decoration:none;color:var(--dm-text, inherit);border-radius:4px}.dm-admin-sidebar .sidebar-link:hover,.dm-admin-sidebar details>summary:hover{background:var(--dm-hover-bg, rgba(0, 0, 0, .05))}.dm-admin-sidebar .sidebar-link.active{background:var(--dm-active-bg, rgba(0, 0, 0, .08));font-weight:600}.dm-admin-sidebar .sidebar-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-admin-sidebar [data-icon]{flex-shrink:0}.dm-admin-sidebar-header{display:flex;align-items:center;gap:.5rem;padding:.65rem .85rem;margin:0 0 .5rem;font-weight:600;font-size:.95rem;letter-spacing:.01em;color:var(--dm-text, inherit);border-bottom:1px solid var(--dm-border-light, rgba(0, 0, 0, .08))}.dm-admin-sidebar-header [data-icon]{color:var(--dm-text-muted, #999)}.dm-admin-sidebar .sidebar-badge{margin-left:auto;padding:0 .4rem;min-width:1.25rem;height:1.1rem;line-height:1.1rem;text-align:center;font-size:.7rem;font-weight:600;border-radius:999px;background:var(--dm-active-bg, rgba(0, 0, 0, .12));color:var(--dm-text-muted, #888)}.dm-admin-sidebar .sidebar-link.active .sidebar-badge{background:var(--dm-primary, #4a86e8);color:var(--dm-primary-text, #fff)}.dm-admin-sidebar .sidebar-children{overflow:hidden;transition:max-height .22s ease,opacity .18s ease}.dm-admin-sidebar details:not([open])>.sidebar-children{opacity:0}.dm-admin-sidebar{position:relative}.dm-admin-sidebar-handle{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;background:transparent;z-index:10;transition:background .15s}.dm-admin-sidebar-handle:hover,.dm-admin-sidebar-handle:active{background:var(--dm-primary, #4a86e8);opacity:.35}.dm-admin-sidebar--dark{background:#1a1d24;color:#e3e6eb}.dm-admin-sidebar--dark .sidebar-link,.dm-admin-sidebar--dark summary{color:#e3e6eb}.dm-admin-sidebar--dark .sidebar-link:hover,.dm-admin-sidebar--dark details>summary:hover{background:#ffffff0f}.dm-admin-sidebar--dark .sidebar-link.active{background:#4a86e840}.dm-admin-sidebar--dark .sidebar-badge{background:#ffffff1f;color:#cbd0d8}.dm-admin-sidebar--light{background:#fff;color:#1a1d24;border-right:1px solid rgba(0,0,0,.08)}.dm-admin-sidebar--light .sidebar-link,.dm-admin-sidebar--light summary{color:#1a1d24}.dm-admin-sidebar--light .sidebar-link:hover,.dm-admin-sidebar--light details>summary:hover{background:#0000000a}.dm-admin-sidebar--light .sidebar-link.active{background:#4a86e826}.dm-admin-sidebar--transparent{background:transparent}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--dm-border-light, rgba(0, 0, 0, .08))}.page-header h2{margin:0;display:flex;align-items:center;gap:.5rem;font-size:1.4rem;line-height:1.2}.page-header h2 [data-icon]{color:var(--dm-text-muted, #888)}.header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.card+.card,.card+p,p+.card,.card+.toolbar,.toolbar+.card,.card+.grid{margin-top:1rem}.toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:0 0 1rem}.btn+.btn,.btn+a.btn,a.btn+.btn,a.btn+a.btn{margin-left:.35rem}[style*=inline-flex] .btn+.btn,[style*=inline-flex] .btn+a.btn,[style*=inline-flex] a.btn+.btn{margin-left:0}.card-body>[id$=-form],.card-body>form{margin:.25rem 0}.card-header{display:flex;align-items:center;gap:.5rem}.card-header h3{margin:0;font-size:1.05rem}.card-header [data-icon]{color:var(--dm-text-muted, #888)}.page-header+p.text-muted{margin:-.5rem 0 1rem}.dm-pe-grid{gap:.75rem 1rem}.dm-pe-grid .form-group{display:flex;flex-direction:column;gap:.25rem;margin:0}.dm-pe-grid .form-group.col-span-2{grid-column:1 / -1}.dm-pe-grid label{font-size:.85rem;font-weight:600;color:var(--dm-text, inherit)}.dm-pe-grid label .required{color:var(--dm-danger, #c33);margin-left:2px}.dm-pe-grid .form-hint{font-size:.75rem;color:var(--dm-text-muted, #888);margin-top:.1rem}.dm-pe-grid .form-input{width:100%;padding:.4rem .6rem}.dm-pe-grid textarea.form-input{resize:vertical;min-height:2.5rem}.dm-menu-badge{display:inline-block;margin-left:6px;padding:1px 7px;font-size:.7em;font-weight:700;line-height:1.4;border-radius:999px;background:var(--dm-text-muted);color:var(--dm-text-inverse, #fff);vertical-align:middle}.menu-tree-row--slim{display:grid;grid-template-columns:16px 1fr auto repeat(9,auto);gap:6px;align-items:center}.menu-tree-row--slim .me-row-label{font-weight:600}.menu-tree-row--slim .me-row-url{color:var(--dm-text-muted);font-size:.85em}.me-item-form{display:flex;flex-direction:column;gap:10px;padding:4px 2px}.me-item-form .form-field{display:flex;flex-direction:column;gap:4px}.me-item-form .form-label{font-size:.85em;color:var(--dm-text-muted)}.me-form-section{margin:12px 0 2px;padding-top:10px;border-top:1px solid var(--dm-border-light, rgba(0,0,0,.15));font-size:.78em;text-transform:uppercase;letter-spacing:.06em;color:var(--dm-text-muted)}.me-item-form .me-form-section:first-child{margin-top:0;padding-top:0;border-top:0}.me-item-form .me-colour-hex{width:48px;height:32px;padding:2px}.me-item-form .me-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.me-item-form .me-field-grid .form-field{margin:0}.me-item-form .me-icon-field{display:flex;align-items:center;gap:8px}.me-item-form .me-icon-field .form-input{flex:1}.me-item-form .me-icon-preview{width:24px;height:24px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;color:var(--dm-text-muted)}
|
|
1
|
+
.dashboard-layout{display:flex;flex-direction:column;min-height:100vh}.dashboard-wrapper{display:flex;flex:1;min-height:0}.dashboard-main{flex:1;min-width:0;overflow-y:auto}.view-container{padding:1.5rem 2rem;max-width:1200px}.view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.view-header h1{font-size:1.5rem;font-weight:700;margin:0;display:flex;align-items:center;gap:.5rem}.view-header-actions{display:flex;gap:.5rem}.stat-card .card-body{display:flex;align-items:center;gap:1rem}.stat-icon{width:44px;height:44px;border-radius:8px;background:color-mix(in srgb,var(--dm-primary) 14%,transparent);color:var(--dm-primary, #5b8cff);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.stat-icon--success{background:color-mix(in srgb,var(--dm-success) 15%,transparent);color:var(--dm-success)}.stat-icon--warning{background:color-mix(in srgb,var(--dm-warning) 15%,transparent);color:var(--dm-warning)}.stat-value{font-size:1.75rem;font-weight:700;line-height:1}.stat-label{font-size:.8rem;color:var(--dm-text-muted, #888);margin-top:.25rem}.toolbar{display:flex;align-items:center;gap:.75rem}.form-check-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem}.form-hint{display:block;font-size:.8rem;color:var(--dm-text-muted, #888);margin-top:.25rem}.dashboard-main:has(#editor-meta-tabs){overflow:hidden}.view-container:has(#editor-meta-tabs){display:flex;flex-direction:column;height:calc(100dvh - 60px);max-width:100%;padding-bottom:0}.view-container:has(#block-editor-body){max-width:100%}.view-container:has(#ep-editor-tabs){max-width:100%}.ep-editor-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1.3fr);gap:1rem;align-items:start}.ep-editor-grid>.ep-tryit-col,.ep-editor-grid>.ep-results-col{position:sticky;top:1rem;display:flex;flex-direction:column;gap:1rem;min-width:0}@media(max-width:1500px){.ep-editor-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ep-editor-grid>:first-child{grid-column:1 / -1}.ep-editor-grid>.ep-tryit-col,.ep-editor-grid>.ep-results-col{position:static}}@media(max-width:1024px){.ep-editor-grid{grid-template-columns:minmax(0,1fr)}}#editor-meta-tabs{flex:1;min-height:0;display:flex;flex-direction:column}#editor-meta-tabs .tab-content{flex:1;min-height:0;overflow:hidden}#editor-meta-tabs .tab-panel{height:100%;overflow-y:auto}#editor-meta-tabs .tab-panel:has(.editor-card),#live-preview-panel{overflow:hidden}.page-live-preview-frame{display:block;width:100%;height:calc(100vh - 180px);border:none;border-radius:6px}.editor-card{display:flex;flex-direction:column;height:100%}.editor-card .card-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:0!important}.editor-toolbar{display:flex;align-items:center;gap:2px;padding:6px 10px;border-bottom:1px solid var(--dm-border, rgba(255, 255, 255, .08));flex-wrap:wrap;flex-shrink:0}.editor-toolbar-btn{background:none;border:none;color:var(--dm-text-muted, #888);padding:6px 8px;border-radius:4px;cursor:pointer;display:flex;align-items:center;transition:color .15s,background .15s}.editor-toolbar-btn:hover{color:var(--dm-text, #eee);background:var(--dm-hover-bg)}.editor-toolbar-sep{width:1px;height:20px;background:var(--dm-border, rgba(255, 255, 255, .08));margin:0 4px;flex-shrink:0}.editor-toolbar-right{margin-left:auto;display:flex;align-items:center;gap:2px}.editor-view-btn{background:none;border:none;color:var(--dm-text-muted, #888);padding:6px 8px;border-radius:4px;cursor:pointer;display:flex;align-items:center;transition:color .15s,background .15s}.editor-view-btn:hover{color:var(--dm-text, #eee);background:var(--dm-hover-bg)}.editor-view-btn.active{color:var(--dm-primary, #5b8cff);background:color-mix(in srgb,var(--dm-primary) 14%,transparent)}.editor-body{display:flex;flex:1;min-height:0}.editor-pane{flex:1;display:flex;flex-direction:column;min-width:0}.editor-pane--write,.editor-pane--preview{overflow:hidden}.editor-pane--write{flex-direction:row}.editor-line-numbers{padding:1rem .6rem 1rem .75rem;background:var(--dm-background-alt, rgba(0, 0, 0, .15));border-right:1px solid var(--dm-border, rgba(255, 255, 255, .08));color:var(--dm-text-muted, #666);font-family:Fira Code,Courier New,monospace;font-size:.9rem;line-height:1.6;text-align:right;user-select:none;white-space:pre;overflow:hidden;flex-shrink:0;min-width:2.5rem}.editor-line-numbers--foldable{padding:1rem 0;min-width:3rem;white-space:normal;text-align:left;display:flex;flex-direction:column}.editor-line-number-row{display:flex;align-items:center;justify-content:flex-end;padding-right:.6rem;gap:.15rem}.fold-toggle{display:inline-flex;align-items:center;justify-content:center;width:1em;font-size:.6rem;cursor:default;color:transparent}.fold-toggle--open,.fold-toggle--folded{cursor:pointer;color:var(--dm-text-muted, #666);transition:color .1s}.fold-toggle--open:hover,.fold-toggle--folded:hover{color:var(--dm-primary, #4a9eff)}.editor-line-num{min-width:1.5rem;text-align:right}.editor-mode-write .editor-pane--preview,.editor-mode-write .editor-divider,.editor-mode-preview .editor-pane--write,.editor-mode-preview .editor-divider{display:none}.editor-divider{width:1px;background:var(--dm-border, rgba(255,255,255,.08));flex-shrink:0}.editor-textarea{flex:1;resize:none;border:none;border-radius:0;background:transparent;font-family:Fira Code,Courier New,monospace;font-size:.9rem;padding:1rem;outline:none;color:inherit;line-height:1.6}.editor-preview{flex:1;padding:1rem;overflow-y:auto;line-height:1.7}.editor-preview h1,.editor-preview h2,.editor-preview h3{margin-top:1.5rem}.editor-preview p{margin-bottom:.75rem}.editor-preview code{background:var(--dm-code-bg);padding:.1em .3em;border-radius:3px;font-size:.9em}.editor-fullscreen{position:fixed;inset:0;z-index:1000;border-radius:0;margin:0}.editor-fullscreen .card-body{height:100vh}.media-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;max-height:400px;overflow-y:auto;padding:.25rem}.media-picker-item{cursor:pointer;border:2px solid transparent;border-radius:6px;overflow:hidden;transition:border-color .15s}.media-picker-item:hover{border-color:var(--dm-primary, #5b8cff)}.media-picker-item img{width:100%;height:80px;object-fit:cover;display:block}.media-picker-item span{display:block;font-size:.75rem;padding:4px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docs-body h3{margin-top:1.25rem;margin-bottom:.5rem}.docs-body p{margin-bottom:.5rem;line-height:1.6}.docs-body ol,.docs-body ul{margin-bottom:.75rem;padding-left:1.25rem}.docs-body li{margin-bottom:.25rem}.docs-body hr{margin:1.25rem 0;border-color:var(--dm-border, rgba(255, 255, 255, .08))}.docs-body .table{margin-bottom:.75rem}.nav-items-header,.nav-item-row{display:flex;gap:.5rem;align-items:center;padding:.35rem .75rem}.nav-items-header{border-bottom:1px solid var(--dm-border, rgba(255,255,255,.08));padding-bottom:.4rem;margin-bottom:.25rem}.nav-item-row{border-bottom:1px solid var(--dm-border, rgba(255,255,255,.04))}.nav-item-row:last-child{border-bottom:none}.nav-col-indent{width:18px;flex-shrink:0;color:var(--dm-text-muted, #888);text-align:center;font-size:.85rem}.nav-col-main{flex:2;min-width:0}.nav-col-icon{flex:0 0 90px}.nav-col-parent{flex:2;min-width:0}.nav-col-action{flex-shrink:0}.nav-item-row--child{background:color-mix(in srgb,var(--dm-text) 3%,transparent)}.nav-col-action{display:flex;align-items:center;gap:.25rem}.nav-item-row--hidden{opacity:.45}.nav-item-row--hidden .item-text,.nav-item-row--hidden .footer-link-text{text-decoration:line-through}.btn-toggle-hidden{color:var(--dm-text-muted, #888)}.btn-toggle-hidden.active{color:var(--dm-warning, #f59e0b)}.fb-field-card.fb-drag-over{outline:2px dashed var(--dm-primary, #6366f1);outline-offset:-2px}.view-container:has(.fb-fields-layout){max-width:none}.fb-fields-layout{display:grid;grid-template-columns:minmax(0,6fr) minmax(320px,4fr);gap:1.25rem;align-items:start}.fb-preview-pane{position:sticky;top:1rem;min-width:0}@media(max-width:1100px){.fb-fields-layout{grid-template-columns:1fr}.fb-preview-pane{position:static}}.toggle-label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;cursor:pointer;margin-right:1rem}.preset-toggles{display:flex;flex-wrap:wrap;margin-top:.75rem}.presets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:900px){.presets-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.presets-grid{grid-template-columns:1fr}}.card-header{padding:.5rem 1rem}.card-header h2{margin:0;font-size:.9rem;font-weight:600;letter-spacing:.02em}.preset-card .card-header{display:flex;align-items:center;justify-content:space-between}.preset-card .card-header h3{margin:0;font-size:1rem}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.media-card{background:var(--dm-card-bg, rgba(255,255,255,.04));border:1px solid var(--dm-border, rgba(255,255,255,.08));border-radius:8px;overflow:hidden}.media-preview{height:130px;display:flex;align-items:center;justify-content:center;background:#0003;overflow:hidden}.media-thumb{width:100%;height:100%;object-fit:cover}.media-thumb--file{font-size:2rem;color:var(--dm-text-muted, #888)}.media-info{padding:.5rem .75rem;display:flex;flex-direction:column;gap:.15rem}.media-name{font-size:.8rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}.media-rename-input{width:100%;font-size:.8rem;font-weight:500;padding:.1rem .25rem;border:1px solid var(--dm-primary, #7c6af7);border-radius:3px;background:var(--dm-input-bg, transparent);color:inherit;outline:none}.media-size{font-size:.75rem;color:var(--dm-text-muted, #888)}.media-actions{padding:.5rem .75rem;display:flex;gap:.4rem;border-top:1px solid var(--dm-border, rgba(255,255,255,.08))}#admin-topbar{height:60px;display:flex;align-items:center;gap:1rem;padding:0 1.25rem;background:var(--dm-navbar-bg, rgba(0,0,0,.3));border-bottom:1px solid var(--dm-border, rgba(255,255,255,.08));position:sticky;top:0;z-index:200;flex-shrink:0}.topbar-brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.95rem;color:inherit;flex-shrink:0;margin-right:.5rem}.topbar-brand span[data-icon],.topbar-brand svg{color:var(--dm-primary, #5b8cff);width:22px;height:22px}.topbar-brand-text{opacity:.85}.topbar-brand-logo{height:28px;width:auto;display:inline-block;vertical-align:middle;margin-right:.4em;object-fit:contain}.topbar-user{display:flex;align-items:center;gap:.6rem;flex:1}.topbar-user-name{font-size:.875rem;font-weight:500}.topbar-role-badge{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.15rem .45rem;border-radius:4px}.topbar-role-badge--admin{background:color-mix(in srgb,var(--dm-primary) 15%,transparent);color:var(--dm-primary)}.topbar-role-badge--manager{background:color-mix(in srgb,var(--dm-success) 15%,transparent);color:var(--dm-success)}.topbar-role-badge--editor{background:color-mix(in srgb,var(--dm-warning) 15%,transparent);color:var(--dm-warning)}.topbar-role-badge--subscriber{background:color-mix(in srgb,var(--dm-text-muted) 15%,transparent);color:var(--dm-text-muted)}.topbar-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.topbar-action-link{display:flex;align-items:center;gap:.35rem;font-size:.875rem;color:var(--dm-text-muted, #888);text-decoration:none;padding:.4rem .65rem;border-radius:6px;transition:color .15s,background .15s}.topbar-action-link:hover{color:var(--dm-text, #eee);background:var(--dm-hover-bg)}.topbar-action-link span[data-icon],.topbar-action-link svg{width:16px;height:16px}.topbar-signout{display:flex;align-items:center;gap:.35rem;font-size:.875rem}.topbar-signout span[data-icon],.topbar-signout svg{width:16px;height:16px}.login-wrap{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--dm-background, #0f1117);z-index:100;overflow-y:auto}.login-card{width:100%;max-width:460px}.ob-done-icon{font-size:3rem;color:var(--dm-success);margin-bottom:1rem;text-align:center}.btn-skip{display:block;text-align:center;margin-top:.75rem;font-size:.85rem;color:var(--dm-text-muted, #888);text-decoration:none}.btn-skip:hover{text-decoration:underline}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.theme-swatch{border:2px solid var(--dm-border, rgba(255,255,255,.1));border-radius:8px;overflow:hidden;cursor:pointer;transition:border-color .15s,transform .1s}.theme-swatch:hover{border-color:var(--dm-primary, #5b8cff);transform:translateY(-1px)}.theme-swatch.selected{border-color:var(--dm-primary, #5b8cff);box-shadow:0 0 0 2px var(--dm-primary, #5b8cff)}.theme-swatch-preview{height:52px;position:relative;display:flex;align-items:flex-end;padding:.35rem}.theme-swatch-accent{width:28px;height:6px;border-radius:3px}.theme-swatch-label{display:flex;justify-content:space-between;align-items:center;padding:.3rem .45rem;font-size:.7rem;background:var(--dm-card-bg, rgba(255,255,255,.04))}.theme-swatch-mode{color:var(--dm-text-muted, #888);font-size:.65rem}.login-logo{display:flex;align-items:center;gap:.75rem;margin-bottom:1.75rem;font-size:1.5rem}.login-logo span[data-icon]{font-size:2rem;color:var(--dm-primary, #5b8cff)}.login-logo h1{margin:0;font-size:1.5rem;font-weight:700}.login-heading{font-size:1.1rem;font-weight:600;margin-bottom:1.25rem}.btn-block{width:100%}.plugins-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.plugin-card{display:flex;flex-direction:column}.plugin-card .card-body{flex:1}.plugin-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.plugin-icon{width:40px;height:40px;border-radius:8px;background:color-mix(in srgb,var(--dm-primary) 14%,transparent);color:var(--dm-primary, #5b8cff);display:flex;align-items:center;justify-content:center;flex-shrink:0}.plugin-meta{flex:1;min-width:0}.plugin-name{font-weight:600;margin-bottom:.15rem}.plugin-version{font-size:.75rem;color:var(--dm-text-muted, #888)}.plugin-desc{font-size:.875rem;color:var(--dm-text-muted, #888);margin-bottom:1rem}.plugin-footer{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-top:1px solid var(--dm-border, rgba(255,255,255,.08))}.plugin-footer-actions{display:flex;align-items:center;gap:.5rem}#admin-sidebar .sidebar-link{position:relative!important}#admin-sidebar .sidebar-badge{position:absolute!important;right:.75rem!important;top:50%!important;transform:translateY(-50%)!important;margin-left:0!important;padding-left:.45rem!important;padding-right:.45rem!important}#admin-sidebar .sidebar-text{padding-right:2rem!important}#admin-sidebar.sidebar-dark{background:var(--dm-surface);border-color:var(--dm-border)}#admin-sidebar.sidebar-dark .sidebar-header{background:var(--dm-surface-raised);border-color:var(--dm-border)}#admin-sidebar.sidebar-dark .sidebar-header-title{color:var(--dm-text)}#admin-sidebar.sidebar-dark .sidebar-link{color:var(--dm-text-muted)}#admin-sidebar.sidebar-dark .sidebar-link:hover{color:var(--dm-text);background:var(--dm-surface-overlay)}#admin-sidebar.sidebar-dark .sidebar-link.active{color:var(--dm-primary);background:color-mix(in srgb,var(--dm-primary) 14%,transparent);border-left-color:var(--dm-primary)}#admin-sidebar.sidebar-dark .sidebar-heading{color:var(--dm-text-muted)}#admin-sidebar.sidebar-dark .sidebar-divider{background:var(--dm-border)}#admin-sidebar.sidebar-dark .sidebar-footer{background:var(--dm-surface-raised);border-color:var(--dm-border)}.sidebar-heading--collapsible{display:flex!important;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}.sidebar-heading-toggle{display:flex;align-items:center;opacity:.5;flex-shrink:0;transition:transform .2s ease}.sidebar-heading--collapsible.is-collapsed .sidebar-heading-toggle{transform:rotate(-90deg)}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.p-0{padding:0!important}.text-muted{color:var(--dm-text-muted, #888)}@media(max-width:768px){.view-container{padding:1rem}.editor-body{flex-direction:column}.editor-divider{width:auto;height:1px}}.image-editor{display:flex;flex-direction:column;gap:0}.image-editor-toolbar{display:flex;flex-direction:row;align-items:center;gap:.25rem;padding:.5rem .75rem;border-bottom:1px solid var(--dm-border, rgba(255, 255, 255, .1))}.image-editor-sep{display:inline-block;width:1px;height:1.5rem;background:var(--dm-border, rgba(255, 255, 255, .15));margin:0 .25rem;flex-shrink:0}.editor-toolbar-btn.active{color:var(--dm-primary, #7c6af7);background:color-mix(in srgb,var(--dm-primary, #7c6af7) 15%,transparent)}.editor-toolbar-caret{font-size:.6rem;line-height:1;margin-left:2px;opacity:.6}.editor-toolbar-dropdown{position:absolute;z-index:1000;background:var(--dm-surface, #1e1e2e);border:1px solid var(--dm-border, rgba(255, 255, 255, .1));border-radius:8px;box-shadow:0 8px 24px #0006;padding:4px;min-width:160px}.editor-toolbar-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;color:var(--dm-text, #ddd);padding:7px 10px;border-radius:5px;cursor:pointer;font-size:.85rem;transition:background .12s,color .12s}.editor-toolbar-dropdown-item:hover{background:var(--dm-hover-bg);color:var(--dm-text, #fff)}.editor-toolbar-dropdown-item span[data-icon],.editor-toolbar-dropdown-item svg{width:15px;height:15px;flex-shrink:0;opacity:.75}.editor-toolbar{position:relative}.editor-effects-dropdown-menu{position:absolute;top:100%;z-index:1000;background:var(--dm-surface, #1e1e2e);border:1px solid var(--dm-border, rgba(255, 255, 255, .1));border-radius:8px;box-shadow:0 8px 24px #0006;padding:6px;min-width:180px;max-height:340px;overflow-y:auto}.editor-effects-category{padding:6px 8px 3px;font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--dm-text-muted, #888)}.editor-effects-item{display:block;width:100%;text-align:left;background:none;border:none;color:var(--dm-text, #ddd);padding:6px 10px;border-radius:5px;cursor:pointer;font-size:.85rem;transition:background .12s,color .12s}.editor-effects-item:hover{background:var(--dm-hover-bg);color:var(--dm-text, #fff)}.editor-icon-picker{position:absolute;z-index:1000;background:var(--dm-surface, #1e1e2e);border:1px solid var(--dm-border, rgba(255, 255, 255, .1));border-radius:8px;box-shadow:0 8px 24px #0006;padding:8px;width:320px}.editor-icon-picker-search{width:100%;margin-bottom:8px;font-size:.8rem}.editor-spacer-picker{position:absolute;z-index:9999;background:var(--dm-surface, #1e1e2e);border:1px solid var(--dm-border, #333);border-radius:8px;padding:12px;width:240px;box-shadow:0 8px 24px #00000073}.editor-spacer-picker-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--dm-text-muted, #888);margin-bottom:10px}.editor-spacer-picker-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.editor-spacer-slider{flex:1;accent-color:var(--dm-primary, #6366f1);cursor:pointer}.editor-spacer-slider-value{font-size:13px;font-weight:600;min-width:38px;text-align:right;color:var(--dm-text, #cdd6f4)}.editor-spacer-insert-btn{width:100%}.editor-icon-picker-size-row{display:flex;align-items:center;gap:8px;padding:0 8px 8px}.editor-icon-picker-size-row label{font-size:11px;color:var(--dm-text-muted, #888);white-space:nowrap}.editor-icon-picker-size{width:70px;font-size:12px;padding:3px 6px}.editor-icon-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:2px;max-height:280px;overflow-y:auto}.editor-icon-picker-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 2px;border-radius:5px;cursor:pointer;background:none;border:none;color:var(--dm-text, #ddd);font-size:.58rem;text-align:center;gap:4px;overflow:hidden;transition:background .12s,color .12s}.editor-icon-picker-item:hover{background:var(--dm-hover-bg);color:var(--dm-text, #fff)}.editor-icon-picker-item span[data-icon],.editor-icon-picker-item svg{width:16px;height:16px;flex-shrink:0}.editor-icon-picker-item>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.editor-icon-picker-empty{grid-column:1 / -1;text-align:center;color:var(--dm-text-muted, #888);font-size:.8rem;padding:1.5rem}.image-editor-canvas{min-height:320px;max-height:520px;background:#111;overflow:hidden;display:flex;align-items:center;justify-content:center}.image-editor-canvas img{display:block;max-width:100%;max-height:520px}.image-editor-resize{display:flex;flex-direction:row;align-items:center;gap:.5rem;padding:.6rem .75rem;border-top:1px solid var(--dm-border, rgba(255, 255, 255, .1));font-size:.85rem}.image-editor-resize label{font-weight:600;color:var(--dm-text-muted, #888);font-size:.8rem}.image-editor-resize .form-input{width:5rem;padding:.25rem .5rem;font-size:.85rem}.image-editor-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:.75rem;border-top:1px solid var(--dm-border, rgba(255, 255, 255, .1));gap:.5rem}.image-editor-effects{border-top:1px solid var(--dm-border, rgba(255, 255, 255, .1))}.image-editor-tab-bar{display:flex;flex-direction:row;overflow-x:auto;border-bottom:1px solid var(--dm-border, rgba(255, 255, 255, .1));scrollbar-width:none}.image-editor-tab-bar::-webkit-scrollbar{display:none}.image-editor-tab-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .85rem;font-size:.8rem;font-weight:500;border:none;border-bottom:2px solid transparent;background:transparent;cursor:pointer;color:var(--dm-text-muted, #888);white-space:nowrap;transition:color .15s,border-color .15s;flex-shrink:0}.image-editor-tab-btn:hover{color:var(--dm-text, #eee)}.image-editor-tab-btn.active{color:var(--dm-primary, #7c6af7);border-bottom-color:var(--dm-primary, #7c6af7)}.image-editor-tab-panel{padding:.75rem;max-height:200px;overflow-y:auto}.ie-presets-grid{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}.ie-preset-btn.active{color:var(--dm-primary, #7c6af7);background:color-mix(in srgb,var(--dm-primary, #7c6af7) 15%,transparent);border-color:var(--dm-primary, #7c6af7)}.ie-server-note{font-size:.73rem;color:var(--dm-text-muted, #888);font-style:italic;margin:.25rem 0 0;line-height:1.4}.ie-slider-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.ie-slider-label{width:6rem;font-size:.8rem;color:var(--dm-text-muted, #888);font-weight:600;flex-shrink:0}.ie-slider{flex:1;accent-color:var(--dm-primary, #7c6af7);cursor:pointer}.ie-slider-val{width:3rem;font-size:.8rem;text-align:right;color:var(--dm-text, #eee);flex-shrink:0}.ie-select{flex:1;font-size:.85rem;padding:.25rem .5rem}.ie-colour-input{width:40px;height:28px;padding:0;border:1px solid var(--dm-border, rgba(255, 255, 255, .15));border-radius:4px;cursor:pointer;background:transparent;flex-shrink:0}.ie-wm-preview-row{display:flex;align-items:center;gap:.5rem;margin:.4rem 0}.ie-wm-preview-img{width:48px;height:48px;object-fit:contain;border-radius:4px;background:var(--dm-surface-raised, rgba(255, 255, 255, .06));flex-shrink:0}.ie-wm-preview-name{font-size:.8rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dm-text, #eee)}.ie-media-picker{padding:.25rem 0}.ie-media-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.5rem;max-height:300px;overflow-y:auto}.ie-media-thumb{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.4rem;border-radius:6px;cursor:pointer;border:2px solid transparent;transition:border-color .15s,background .15s}.ie-media-thumb:hover{background:var(--dm-surface-raised, rgba(255, 255, 255, .08));border-color:var(--dm-primary, #7c6af7)}.ie-media-thumb img{width:72px;height:72px;object-fit:cover;border-radius:4px}.ie-media-thumb-name{font-size:.7rem;color:var(--dm-text-muted, #888);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:72px}.dm-slideover-left,.dm-slideover-right{width:min(40rem,95vw)!important;min-width:min(36rem,100vw)!important;max-width:100vw!important}.dm-slideover-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--dm-border, #333);flex-shrink:0}.dm-slideover-title{margin:0;font-size:1rem;font-weight:600}.dm-slideover-close{padding:.2rem .35rem!important;line-height:1;font-size:.75rem}.dm-slideover-body{flex:1;overflow-y:auto;min-height:0;padding:1.5rem!important;box-sizing:border-box}.dm-slideover>div:not(.dm-slideover-header):not(.dm-slideover-body):not(.dm-slideover-close){padding:1.5rem!important;box-sizing:border-box}.dm-slideover-body>div{padding-left:0!important;padding-right:0!important}.dm-slideover-body>button.btn:last-child{margin-top:.5rem}.dconfig-textarea{font-family:monospace;min-height:100px;resize:vertical}.dm-editor-line-numbers{white-space:pre}.dm-code-inline{font-family:Fira Code,Courier New,monospace;font-size:.82em;padding:.15em .35em;border-radius:3px;background:var(--dm-background-alt, rgba(0, 0, 0, .18));color:var(--dm-text, inherit);border:1px solid var(--dm-border, rgba(255, 255, 255, .08))}.dm-code-block{font-family:Fira Code,Courier New,monospace;font-size:.82rem;line-height:1.6;padding:.65rem .9rem;border-radius:6px;background:var(--dm-background-alt, rgba(0, 0, 0, .18));color:var(--dm-text, inherit);border:1px solid var(--dm-border, rgba(255, 255, 255, .08));white-space:pre;overflow-x:auto;display:block;margin:.4rem 0}.tabs-centered{text-align:center}.tabs-centered .tab-list{display:inline-flex}.tabs-centered .tab-content{text-align:left}@media(max-width:768px){.view-header{flex-direction:column;align-items:flex-start}.theme-grid{grid-template-columns:repeat(2,1fr)}.nav-item-row{flex-wrap:wrap}.nav-col-icon,.nav-col-parent{display:none}#admin-topbar{padding:0 .75rem}.topbar-brand-text{display:none}.image-editor-toolbar{flex-wrap:wrap}}#topbar-bell{position:relative}.topbar-bell-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;background:var(--dm-danger, #dc2626);color:var(--dm-danger-text, #fff);font-size:10px;font-weight:700;line-height:16px;border-radius:9999px;text-align:center;pointer-events:none}.cb-scaffolder{padding:1rem 1.1rem;background:var(--dm-background-alt);border:1px solid var(--dm-primary);border-radius:8px;color:var(--dm-text)}.cb-scaffolder-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.cb-scaffolder-head .cb-icon{flex-shrink:0;color:var(--dm-primary)}.cb-scaffolder-head h2{margin:0;font-size:1.05rem;font-weight:700;color:var(--dm-text)}.cb-scaffolder-blurb{margin:0 0 .75rem;font-size:.88rem;line-height:1.5;color:var(--dm-text-muted)}.cb-recipe-list{display:flex;flex-direction:column;gap:.5rem}.cb-recipe-card{display:flex;align-items:flex-start;gap:.75rem;text-align:left;padding:.75rem 1rem;background:var(--dm-surface);border:1px solid var(--dm-border);border-radius:6px;cursor:pointer;transition:border-color .12s;width:100%;color:var(--dm-text)}.cb-recipe-card:hover{border-color:var(--dm-primary)}.cb-recipe-card .cb-icon{flex-shrink:0;font-size:1.5rem;color:var(--dm-primary);margin-top:.1rem}.cb-recipe-meta{flex:1}.cb-recipe-name{font-weight:600;margin-bottom:.15rem;font-size:.95rem;color:var(--dm-text)}.cb-recipe-desc{font-size:.83rem;line-height:1.45;color:var(--dm-text-muted)}.cb-apply-panel{padding:1rem 1.1rem;background:var(--dm-surface);border:1px solid var(--dm-primary);border-radius:8px;color:var(--dm-text)}.cb-apply-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.cb-apply-head .cb-icon{color:var(--dm-primary);font-size:1.4rem}.cb-apply-head h3{margin:0;font-size:1rem;font-weight:600;color:var(--dm-text)}.cb-apply-desc,.cb-apply-hint{margin:.25rem 0 .75rem;font-size:.85rem;line-height:1.5;color:var(--dm-text-muted)}.cb-apply-hint{font-size:.75rem;margin-top:.2rem}.cb-apply-field{margin-bottom:.6rem}.cb-apply-field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:.2rem;color:var(--dm-text)}.cb-apply-field input{width:100%;padding:.4rem .55rem;border:1px solid var(--dm-border);border-radius:4px;font-size:.88rem;background:var(--dm-surface);color:var(--dm-text)}.cb-apply-status{margin:.5rem 0;font-size:.85rem;min-height:1.2rem;color:var(--dm-text)}.cb-apply-status.cb-error{color:var(--dm-danger, #dc2626)}.cb-apply-buttons{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.cb-success-panel{padding:1rem 1.1rem;background:var(--dm-surface);border:1px solid var(--dm-success, #16a34a);border-radius:8px;color:var(--dm-text)}.cb-success-panel .cb-icon{color:var(--dm-success, #16a34a);font-size:1.4rem}.cb-success-summary{margin:.25rem 0 .5rem;padding-left:1.2rem;font-size:.86rem;line-height:1.6;color:var(--dm-text)}.cb-success-warning{margin:.5rem 0;padding:.5rem .75rem;background:var(--dm-background-alt);border-left:3px solid var(--dm-warning, #eab308);border-radius:0 4px 4px 0;font-size:.82rem;color:var(--dm-text-muted)}.cb-success-snippet-label{margin:0 0 .25rem;font-size:.82rem;font-weight:600;color:var(--dm-text)}.cb-success-actions{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.cb-code{position:relative}.cb-code pre{background:var(--dm-background-alt);color:var(--dm-text);display:block;padding:.6rem 2.4rem .6rem .75rem;white-space:pre;overflow-x:auto;margin:0;border-radius:6px;font-size:.82em;font-family:monospace;line-height:1.45}.cb-code .cb-copy{position:absolute;top:.35rem;right:.35rem;background:none;border:none;cursor:pointer;opacity:.45;padding:.2rem;line-height:1;color:var(--dm-text)}.cb-code .cb-copy:hover{opacity:1}.cb-intro{padding:.75rem 1rem;border-left:3px solid var(--dm-primary);background:var(--dm-background-alt);border-radius:0 6px 6px 0}.cb-intro p{margin:0;font-size:.92rem;line-height:1.5;color:var(--dm-text)}.cb-tutorial-link{display:flex;align-items:center;gap:.6rem;padding:.65rem .85rem;border:1px solid var(--dm-border);border-radius:6px;text-decoration:none;color:var(--dm-text);font-size:.88rem;transition:border-color .12s}.cb-tutorial-link:hover{border-color:var(--dm-primary)}.cb-tutorial-link .cb-icon{flex-shrink:0;color:var(--dm-primary)}.cb-tutorial-link .cb-arrow{color:var(--dm-text-muted);font-size:1.1rem;margin-left:auto}.menu-tree-row{display:grid;grid-template-columns:16px 1.4fr 1.4fr .9fr .7fr .9fr repeat(6,auto);gap:6px;align-items:center;padding:4px 0;transition:opacity .15s ease}.menu-tree-row--hidden{opacity:.5}.menu-tree-grip{cursor:grab;color:var(--dm-text-muted)}.menu-tree{padding:8px 0}.menu-tree-row--separator{display:grid;grid-template-columns:16px minmax(80px,1fr) repeat(7,auto);gap:6px;align-items:center;padding:2px 0;opacity:.85}.menu-tree-row--separator:hover{opacity:1}.menu-tree-row--separator .me-sep-line{display:flex;align-items:center;gap:10px;width:100%}.menu-tree-row--separator .me-sep-line:before,.menu-tree-row--separator .me-sep-line:after{content:"";flex:1;border-top:1px dashed var(--dm-border, rgba(128, 128, 128, .55))}.menu-tree-row--separator .me-sep-label{font-size:.66rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--dm-text-muted, #8a8a8a);white-space:nowrap}.dm-admin-sidebar .sidebar-divider{border:0;border-top:1px solid var(--dm-border, rgba(128, 128, 128, .5));margin:.5rem .75rem;opacity:.8}.menu-tree-row .me-icon-wrap{display:flex;gap:2px}.menu-tree-row .me-icon-wrap .me-icon{flex:1;min-width:0}.menu-tree-row .me-icon-wrap .me-icon-pick{flex-shrink:0;padding:.2rem .45rem;font-size:.85em}.dm-admin-sidebar{display:flex;flex-direction:column;gap:2px;padding:8px 0}.dm-admin-sidebar details{margin:0}.dm-admin-sidebar details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border-radius:4px;user-select:none}.dm-admin-sidebar details>summary::-webkit-details-marker{display:none}.dm-admin-sidebar details>summary:after{content:"\25b8";margin-left:auto;transition:transform .15s ease;color:var(--dm-text-muted, #999);font-size:.85em}.dm-admin-sidebar details[open]>summary:after{transform:rotate(90deg)}.dm-admin-sidebar details>div{padding-left:1rem;border-left:1px solid var(--dm-border-light, rgba(0, 0, 0, .08));margin-left:.95rem}.dm-admin-sidebar .sidebar-link{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;text-decoration:none;color:var(--dm-text, inherit);border-radius:4px}.dm-admin-sidebar .sidebar-link:hover,.dm-admin-sidebar details>summary:hover{background:var(--dm-hover-bg, rgba(0, 0, 0, .05))}.dm-admin-sidebar .sidebar-link.active{background:var(--dm-active-bg, rgba(0, 0, 0, .08));font-weight:600}.dm-admin-sidebar .sidebar-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-admin-sidebar [data-icon]{flex-shrink:0}.dm-admin-sidebar-header{display:flex;align-items:center;gap:.5rem;padding:.65rem .85rem;margin:0 0 .5rem;font-weight:600;font-size:.95rem;letter-spacing:.01em;color:var(--dm-text, inherit);border-bottom:1px solid var(--dm-border-light, rgba(0, 0, 0, .08))}.dm-admin-sidebar-header [data-icon]{color:var(--dm-text-muted, #999)}.dm-admin-sidebar .sidebar-badge{margin-left:auto;padding:0 .4rem;min-width:1.25rem;height:1.1rem;line-height:1.1rem;text-align:center;font-size:.7rem;font-weight:600;border-radius:999px;background:var(--dm-active-bg, rgba(0, 0, 0, .12));color:var(--dm-text-muted, #888)}.dm-admin-sidebar .sidebar-link.active .sidebar-badge{background:var(--dm-primary, #4a86e8);color:var(--dm-primary-text, #fff)}.dm-admin-sidebar .sidebar-children{overflow:hidden;transition:max-height .22s ease,opacity .18s ease}.dm-admin-sidebar details:not([open])>.sidebar-children{opacity:0}.dm-admin-sidebar{position:relative}.dm-admin-sidebar-handle{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;background:transparent;z-index:10;transition:background .15s}.dm-admin-sidebar-handle:hover,.dm-admin-sidebar-handle:active{background:var(--dm-primary, #4a86e8);opacity:.35}.dm-admin-sidebar--dark{background:#1a1d24;color:#e3e6eb}.dm-admin-sidebar--dark .sidebar-link,.dm-admin-sidebar--dark summary{color:#e3e6eb}.dm-admin-sidebar--dark .sidebar-link:hover,.dm-admin-sidebar--dark details>summary:hover{background:#ffffff0f}.dm-admin-sidebar--dark .sidebar-link.active{background:#4a86e840}.dm-admin-sidebar--dark .sidebar-badge{background:#ffffff1f;color:#cbd0d8}.dm-admin-sidebar--light{background:#fff;color:#1a1d24;border-right:1px solid rgba(0,0,0,.08)}.dm-admin-sidebar--light .sidebar-link,.dm-admin-sidebar--light summary{color:#1a1d24}.dm-admin-sidebar--light .sidebar-link:hover,.dm-admin-sidebar--light details>summary:hover{background:#0000000a}.dm-admin-sidebar--light .sidebar-link.active{background:#4a86e826}.dm-admin-sidebar--transparent{background:transparent}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--dm-border-light, rgba(0, 0, 0, .08))}.page-header h2{margin:0;display:flex;align-items:center;gap:.5rem;font-size:1.4rem;line-height:1.2}.page-header h2 [data-icon]{color:var(--dm-text-muted, #888)}.header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.card+.card,.card+p,p+.card,.card+.toolbar,.toolbar+.card,.card+.grid{margin-top:1rem}.toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:0 0 1rem}.btn+.btn,.btn+a.btn,a.btn+.btn,a.btn+a.btn{margin-left:.35rem}[style*=inline-flex] .btn+.btn,[style*=inline-flex] .btn+a.btn,[style*=inline-flex] a.btn+.btn{margin-left:0}.card-body>[id$=-form],.card-body>form{margin:.25rem 0}.card-header{display:flex;align-items:center;gap:.5rem}.card-header h3{margin:0;font-size:1.05rem}.card-header [data-icon]{color:var(--dm-text-muted, #888)}.page-header+p.text-muted{margin:-.5rem 0 1rem}.dm-pe-grid{gap:.75rem 1rem}.dm-pe-grid .form-group{display:flex;flex-direction:column;gap:.25rem;margin:0}.dm-pe-grid .form-group.col-span-2{grid-column:1 / -1}.dm-pe-grid label{font-size:.85rem;font-weight:600;color:var(--dm-text, inherit)}.dm-pe-grid label .required{color:var(--dm-danger, #c33);margin-left:2px}.dm-pe-grid .form-hint{font-size:.75rem;color:var(--dm-text-muted, #888);margin-top:.1rem}.dm-pe-grid .form-input{width:100%;padding:.4rem .6rem}.dm-pe-grid textarea.form-input{resize:vertical;min-height:2.5rem}.dm-menu-badge{display:inline-block;margin-left:6px;padding:1px 7px;font-size:.7em;font-weight:700;line-height:1.4;border-radius:999px;background:var(--dm-text-muted);color:var(--dm-text-inverse, #fff);vertical-align:middle}.menu-tree-row--slim{display:grid;grid-template-columns:16px 1fr auto repeat(9,auto);gap:6px;align-items:center}.menu-tree-row--slim .me-row-label{font-weight:600}.menu-tree-row--slim .me-row-url{color:var(--dm-text-muted);font-size:.85em}.me-item-form{display:flex;flex-direction:column;gap:10px;padding:4px 2px}.me-item-form .form-field{display:flex;flex-direction:column;gap:4px}.me-item-form .form-label{font-size:.85em;color:var(--dm-text-muted)}.me-form-section{margin:12px 0 2px;padding-top:10px;border-top:1px solid var(--dm-border-light, rgba(0,0,0,.15));font-size:.78em;text-transform:uppercase;letter-spacing:.06em;color:var(--dm-text-muted)}.me-item-form .me-form-section:first-child{margin-top:0;padding-top:0;border-top:0}.me-item-form .me-colour-hex{width:48px;height:32px;padding:2px}.me-item-form .me-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.me-item-form .me-field-grid .form-field{margin:0}.me-item-form .me-icon-field{display:flex;align-items:center;gap:8px}.me-item-form .me-icon-field .form-input{flex:1}.me-item-form .me-icon-preview{width:24px;height:24px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;color:var(--dm-text-muted)}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{replaceRange as
|
|
1
|
+
import{replaceRange as R}from"./markdown-toolbar.js";const M=[{key:"header-body",group:"Basic",label:"Header + Body",thumb:"\u25A4"},{key:"basic",group:"Basic",label:"Body only",thumb:"\u25AD"},{key:"header-body-footer",group:"Basic",label:"Header + Body + Footer",thumb:"\u2630"},{key:"no-header-footer",group:"Basic",label:"Body + Footer (no header)",thumb:"\u25A5"},{key:"icon-top",group:"Icon",label:"Icon top (stacked)",thumb:"\u2B06\u2605"},{key:"icon-inline",group:"Icon",label:"Icon inline",thumb:"\u2605\u25B6"},{key:"image-top",group:"Image",label:"Image top",thumb:"\u{1F5BC}"},{key:"image-overlay",group:"Image",label:"Image + overlay title",thumb:"\u{1F5BC}\u2726"},{key:"thumb-left",group:"Image",label:"Thumbnail left",thumb:"\u{1F5BC}\u2590"},{key:"thumb-right",group:"Image",label:"Thumbnail right",thumb:"\u258C\u{1F5BC}"},{key:"wide-left-image",group:"Image",label:"Wide image left",thumb:"\u{1F5BC}\u258D"},{key:"full-bg",group:"Image",label:"Full background",thumb:"\u{1F5BC}"},{key:"split-half",group:"Image",label:"Split half",thumb:"\u2592\u2590"},{key:"avatar-profile",group:"People",label:"Avatar / Profile",thumb:"\u{1F464}"},{key:"stat-metric",group:"People",label:"Stat / Metric",thumb:"\u{1F4CA}"},{key:"quote-testimonial",group:"People",label:"Quote / Testimonial",thumb:"\u201C"},{key:"rating-review",group:"People",label:"Rating / Review",thumb:"\u2605"},{key:"activity-feed",group:"People",label:"Activity feed",thumb:"\u{1F514}"},{key:"callout",group:"Content",label:"Callout",thumb:"\u{1F4A1}"},{key:"code-snippet",group:"Content",label:"Code snippet",thumb:"</>"},{key:"file-document",group:"Content",label:"File / Document",thumb:"\u{1F4C4}"},{key:"tag-cloud",group:"Content",label:"Tag cloud",thumb:"\u{1F3F7}"},{key:"video-media",group:"Media",label:"Video / Media",thumb:"\u25B6"},{key:"location-map",group:"Special",label:"Location / Map",thumb:"\u{1F4CD}"},{key:"step-numbered",group:"Special",label:"Step / Numbered",thumb:"\u2460"},{key:"corner-badge",group:"Special",label:"Corner badge",thumb:"\u{1F3F7}"},{key:"badge-band",group:"Special",label:"Badge band",thumb:"\u2B1B"},{key:"glass-gradient-border",group:"Special",label:"Glass gradient border",thumb:"\u25C8"},{key:"timeline-entry",group:"Special",label:"Timeline entry",thumb:"\u2022\u2014"},{key:"before-after",group:"Compare",label:"Before / After",thumb:"\u2194"},{key:"pricing",group:"Compare",label:"Pricing card",thumb:"\xA3"},{key:"feature-comparison",group:"Compare",label:"Feature comparison",thumb:"\u2611"},{key:"progress-goal",group:"Compare",label:"Progress / Goal",thumb:"\u25B0"}],j=["clean","gradient","glass","accent","dark","glow"],O=["indigo","ocean","sunset","forest","rose","midnight","aurora","fire","lagoon","dusk","lime","gold","arctic","slate"],B={indigo:"#6366f1,#8b5cf6",ocean:"#0891b2,#2563eb",sunset:"#f59e0b,#ef4444",forest:"#10b981,#0d9488",rose:"#fb7185,#e11d48",midnight:"#1e1b4b,#4338ca",aurora:"#06b6d4,#6366f1",fire:"#ef4444,#f97316",lagoon:"#06b6d4,#0e7490",dusk:"#7c3aed,#db2777",lime:"#84cc16,#10b981",gold:"#f59e0b,#b45309",arctic:"#bae6fd,#e0f2fe",slate:"#475569,#1e293b"};function N(e){return typeof I>"u"||typeof I.list!="function"?[]:!e||e==="all"?I.list():I.list(e)}function q(){const e=typeof I<"u"&&I._categories?I._categories:null,t=[{slug:"all",label:"All icons"}];return e&&Object.keys(e).forEach(o=>{t.push({slug:o,label:e[o].name||o})}),t}function G(e,t){const o=N(e),r=(t||"").trim().toLowerCase();return r?o.filter(i=>i.toLowerCase().includes(r)):o}let C=null,a=null,$=null,_=null;export const CardBuilder={open(e,t={}){C||($=e,_=t,a={layout:"header-body",variant:"clean",gradient:"indigo",title:"",subtitle:"",icon:"",iconLayout:"inline",image:"",body:"",footer:"",hover:!1,collapsible:!1,value:"",delta:"",progress:"50",price:"",period:"",lang:"JavaScript",filename:"",filesize:"",filetype:"PDF",rating:"5",duration:"",address:"",step:"1",badge:"New",tags:"",calloutType:"info",font:"",fontSize:"",borderless:!1,shadow:"",rounded:"",textAlign:"",padding:""},U())},close(){E()}};function A(){const e=a,t=[];e.layout!=="header-body"&&t.push(`layout="${e.layout}"`),e.title&&t.push(`title="${e.title}"`),e.subtitle&&t.push(`subtitle="${e.subtitle}"`),e.icon&&t.push(`icon="${e.icon}"`),e.icon&&e.iconLayout==="stacked"&&t.push('icon-layout="stacked"'),e.image&&t.push(`image="${e.image}"`),e.variant!=="clean"&&t.push(`variant="${e.variant}"`),e.variant==="gradient"&&e.gradient!=="indigo"&&t.push(`gradient="${e.gradient}"`),e.hover&&t.push("hover"),e.collapsible&&t.push('collapsible="true"'),e.font&&t.push(`font="${e.font}"`),e.fontSize&&t.push(`font-size="${e.fontSize}"`),e.borderless&&t.push("borderless"),e.shadow&&t.push(`shadow="${e.shadow}"`),e.rounded&&t.push(`rounded="${e.rounded}"`),e.textAlign&&t.push(`text-align="${e.textAlign}"`),e.padding&&t.push(`padding="${e.padding}"`),e.footer&&!["pricing","feature-comparison","activity-feed","before-after","progress-goal"].includes(e.layout)&&t.push(`footer="${e.footer}"`);const o={"stat-metric":()=>{e.value&&t.push(`value="${e.value}"`),e.delta&&t.push(`delta="${e.delta}"`),e.progress&&t.push(`progress="${e.progress}"`)},pricing:()=>{e.price&&t.push(`price="${e.price}"`),e.period&&t.push(`period="${e.period}"`)},"code-snippet":()=>t.push(`lang="${e.lang}"`),"file-document":()=>{t.push(`filename="${e.filename}"`),e.filesize&&t.push(`filesize="${e.filesize}"`),e.filetype&&t.push(`filetype="${e.filetype}"`)},"rating-review":()=>t.push(`rating="${e.rating}"`),"video-media":()=>{e.duration&&t.push(`duration="${e.duration}"`)},"location-map":()=>{e.address&&t.push(`address="${e.address}"`)},"step-numbered":()=>t.push(`step="${e.step}"`),"corner-badge":()=>{e.badge&&t.push(`badge="${e.badge}"`)},"badge-band":()=>{e.badge&&t.push(`badge="${e.badge}"`)},"tag-cloud":()=>{e.tags&&t.push(`tags="${e.tags}"`)},"avatar-profile":()=>{e.tags&&t.push(`tags="${e.tags}"`)},callout:()=>{e.calloutType&&t.push(`callout-type="${e.calloutType}"`)},"split-half":()=>{}};o[e.layout]&&o[e.layout]();const r=t.length?" "+t.join(" "):"",i=e.body.trim()||"Content here.",l={"before-after":`[before]Before item 1 \xB7 Before item 2[/before]
|
|
2
2
|
[after]After item 1 \xB7 After item 2[/after]`,pricing:`[feature]Feature one[/feature]
|
|
3
3
|
[feature]Feature two[/feature]`,"feature-comparison":`[feature]Included feature[/feature]
|
|
4
4
|
[feature excluded]Excluded feature[/feature]`,"activity-feed":'[activity user="Alice" action="published a page" time="2 min ago"]',"progress-goal":`[milestone done]Phase 1[/milestone]
|
|
5
|
-
[milestone]Phase 2[/milestone]`}[e.layout]||i;return`[card${
|
|
5
|
+
[milestone]Phase 2[/milestone]`}[e.layout]||i;return`[card${r}]
|
|
6
6
|
${l}
|
|
7
|
-
[/card]`}function E(){C&&(C.remove(),C=null,a=null)}function G(){const e=T();F(z,z.selectionStart,z.selectionEnd,e),E()}function H(){C=document.createElement("div"),Object.assign(C.style,{position:"fixed",inset:"0",background:"rgba(0,0,0,.6)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:"9999",padding:"24px",isolation:"isolate"});const e=document.createElement("div");Object.assign(e.style,{background:"var(--dm-surface,#1e293b)",border:"1px solid var(--dm-border,#334155)",borderRadius:"14px",width:"100%",maxWidth:"860px",maxHeight:"90vh",display:"flex",flexDirection:"column",boxShadow:"var(--dm-shadow-lg)",overflow:"hidden"});const t=r("div","display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--dm-border,#334155);flex-shrink:0"),o=r("span","font-weight:700;color:var(--dm-text,#f1f5f9);font-size:14px");o.textContent="Insert Card";const n=r("button","background:var(--dm-border,#334155);border:none;color:var(--dm-text-muted,#94a3b8);border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:14px");n.textContent="\u2715",n.addEventListener("click",E),t.appendChild(o),t.appendChild(n);const i=r("div","display:grid;grid-template-columns:280px 1fr;flex:1;overflow:hidden");i.appendChild(U()),i.appendChild(pe());const d=r("div","display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;border-top:1px solid var(--dm-border,#334155);flex-shrink:0"),l=r("button","padding:8px 18px;border-radius:8px;border:none;background:var(--dm-border,#334155);color:var(--dm-text-muted,#94a3b8);font-size:12px;font-weight:700;cursor:pointer");l.textContent="Cancel",l.addEventListener("click",E);const g=r("button","padding:8px 18px;border-radius:8px;border:none;background:var(--dm-primary);color:var(--dm-primary-text);font-size:12px;font-weight:700;cursor:pointer");g.textContent="Insert Card",g.addEventListener("click",G),d.appendChild(l),d.appendChild(g),e.appendChild(t),e.appendChild(i),e.appendChild(d),C.appendChild(e),C.addEventListener("click",b=>{b.target===C&&E()}),document.body.appendChild(C),D(),x()}function r(e,t=""){const o=document.createElement(e);return t&&(o.style.cssText=t),o}const k="padding:7px 10px;border-radius:7px;border:1px solid var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text,#e2e8f0);font-size:12px;font-family:inherit;width:100%";function U(){const e=r("div","padding:18px;border-right:1px solid var(--dm-border,#334155);display:flex;flex-direction:column;gap:14px;overflow-y:auto");e.appendChild(p("Layout",Y()));const t=r("div","display:contents");t.id="cb-dyn-fields",e.appendChild(t),e.appendChild(A()),e.appendChild(p("Style",V()));const o=r("div");return o.id="cb-grad-wrap",o.style.display=a.variant==="gradient"?"":"none",o.appendChild(p("Gradient",W())),e.appendChild(o),e.appendChild(p("Options",J())),e.appendChild(A()),e.appendChild(Z()),e}function Y(){const e=r("select",k+";cursor:pointer"),t={};return R.forEach(o=>{(t[o.group]=t[o.group]||[]).push(o)}),Object.entries(t).forEach(([o,n])=>{const i=document.createElement("optgroup");i.label=o,n.forEach(d=>{const l=document.createElement("option");l.value=d.key,l.textContent=`${d.thumb} ${d.label}`,d.key===a.layout&&(l.selected=!0),i.appendChild(l)}),e.appendChild(i)}),e.addEventListener("change",()=>{a.layout=e.value,D(),x()}),e}function V(){const e=r("div","display:grid;grid-template-columns:repeat(3,1fr);gap:5px"),t={clean:"background:#f8fafc;color:#374151;border:2px solid #e2e8f0",gradient:"background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:2px solid transparent",glass:"background:rgba(255,255,255,.06);color:#94a3b8;border:2px dashed #334155",accent:"background:#fff;color:#4338ca;border-left:4px solid #6366f1;border-top:2px solid #e2e8f0;border-right:2px solid #e2e8f0;border-bottom:2px solid #e2e8f0",dark:"background:#0f172a;color:#818cf8;border:2px solid #334155",glow:"color:#818cf8;border:2px solid #6366f1;box-shadow:0 0 6px rgba(99,102,241,.4)"};return M.forEach(o=>{const n=r("div",`padding:6px 4px;border-radius:7px;font-size:10px;font-weight:700;text-align:center;cursor:pointer;${t[o]}`);n.textContent=o.charAt(0).toUpperCase()+o.slice(1),n.dataset.variant=o,o===a.variant&&(n.style.outline="2px solid var(--dm-primary)"),n.addEventListener("click",()=>{a.variant=o,e.querySelectorAll("[data-variant]").forEach(d=>{d.style.outline=""}),n.style.outline="2px solid var(--dm-primary)";const i=document.getElementById("cb-grad-wrap");i&&(i.style.display=o==="gradient"?"":"none"),x()}),e.appendChild(n)}),e}function W(){const e=r("div","display:flex;flex-wrap:wrap;gap:7px");return j.forEach(t=>{const[o,n]=(B[t]||"#6366f1,#8b5cf6").split(","),i=r("div",`width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,${o},${n});cursor:pointer;border:2px solid transparent;transition:border-color .15s`);i.title=t,t===a.gradient&&(i.style.borderColor="var(--dm-text)"),i.addEventListener("click",()=>{a.gradient=t,e.querySelectorAll("div").forEach(d=>{d.style.borderColor="transparent"}),i.style.borderColor="var(--dm-text)",x()}),e.appendChild(i)}),e}function J(){const e=r("div","display:flex;gap:6px");return["hover","collapsible"].forEach(t=>{const o=r("div"),n=i=>{o.style.cssText=`flex:1;padding:6px 8px;border-radius:7px;border:1px solid;font-size:11px;font-weight:700;text-align:center;cursor:pointer;${i?"border-color:var(--dm-primary);background:color-mix(in srgb, var(--dm-primary) 18%, transparent);color:var(--dm-primary)":"border-color:var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text-muted,#64748b)"}`};n(a[t]),o.textContent=t.charAt(0).toUpperCase()+t.slice(1),o.addEventListener("click",()=>{a[t]=!a[t],n(a[t]),x()}),e.appendChild(o)}),e}function S(e,t){const o=r("select",k+";cursor:pointer");return t.forEach(([n,i])=>{const d=document.createElement("option");d.value=n,d.textContent=i,n===a[e]&&(d.selected=!0),o.appendChild(d)}),o.addEventListener("change",()=>{a[e]=o.value,x()}),o}function Q(e,t){const o=r("div"),n=i=>{o.style.cssText=`flex:1;padding:6px 8px;border-radius:7px;border:1px solid;font-size:11px;font-weight:700;text-align:center;cursor:pointer;${i?"border-color:var(--dm-primary);background:color-mix(in srgb, var(--dm-primary) 18%, transparent);color:var(--dm-primary)":"border-color:var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text-muted,#64748b)"}`};return n(a[e]),o.textContent=t,o.addEventListener("click",()=>{a[e]=!a[e],n(a[e]),x()}),o}function X(){const e=r("div","display:flex;gap:6px");return[["","Left"],["center","Centre"],["right","Right"]].forEach(([t,o])=>{const n=r("div"),i=d=>{n.style.cssText=`flex:1;padding:5px 4px;border-radius:7px;border:1px solid;font-size:11px;font-weight:700;text-align:center;cursor:pointer;${d?"border-color:var(--dm-primary);background:color-mix(in srgb, var(--dm-primary) 18%, transparent);color:var(--dm-primary)":"border-color:var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text-muted,#64748b)"}`};i(a.textAlign===t),n.textContent=o,n.addEventListener("click",()=>{a.textAlign=t,e.querySelectorAll("div").forEach((d,l)=>i([["","Left"],["center","Centre"],["right","Right"]][l][0]===t)),x()}),e.appendChild(n)}),e}function Z(){const e=r("div","display:flex;flex-direction:column;gap:14px"),t=r("div","font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--dm-text-muted,#475569)");t.textContent="Presentation",e.appendChild(t);const o=r("div","display:grid;grid-template-columns:1fr 1fr;gap:10px"),n=(d,l)=>{const g=r("div","display:flex;flex-direction:column;gap:5px"),b=r("div","font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--dm-text-muted,#475569)");b.textContent=d,g.appendChild(b),g.appendChild(l),o.appendChild(g)};n("Font",S("font",[["","Default"],["serif","Serif"],["mono","Mono"]])),n("Size",S("fontSize",[["","Default"],["sm","Small"],["lg","Large"],["xl","XL"]])),n("Shadow",S("shadow",[["","Default"],["none","None"],["md","Medium"],["lg","Large"]])),n("Padding",S("padding",[["","Default"],["compact","Compact"],["spacious","Spacious"]])),n("Corners",S("rounded",[["","Default"],["none","Square"],["sm","Small"],["lg","Large"],["full","Full"]])),e.appendChild(o),e.appendChild(p("Align",X()));const i=r("div","display:flex;gap:6px");return i.appendChild(Q("borderless","Borderless")),e.appendChild(i),e}function p(e,t){const o=r("div","display:flex;flex-direction:column;gap:5px"),n=r("div","font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--dm-text-muted,#475569)");return n.textContent=e,o.appendChild(n),o.appendChild(t),o}function A(){return r("div","height:1px;background:var(--dm-border,#334155);margin:2px 0")}function f(e,t){const o=r("input",k);return o.type="text",t&&(o.placeholder=t),o.value=a[e]||"",o.addEventListener("input",()=>{a[e]=o.value,x()}),o}function K(e,t){const o=r("select",k+";cursor:pointer");return t.forEach(n=>{const i=document.createElement("option");i.value=n,i.textContent=n,n===a[e]&&(i.selected=!0),o.appendChild(i)}),o.addEventListener("change",()=>{a[e]=o.value,x()}),o}const ee={"icon-top":["subtitle","icon","iconLayout"],"icon-inline":["subtitle","icon","iconLayout"],"image-top":["image"],"image-overlay":["image"],"thumb-left":["image"],"thumb-right":["image"],"wide-left-image":["image"],"full-bg":["image"],"split-half":["image"],"avatar-profile":["subtitle","icon","tags"],"stat-metric":["value","delta","progress"],"quote-testimonial":["subtitle","icon"],callout:["calloutType","icon"],"video-media":["image","duration"],"location-map":["address"],"step-numbered":["step"],"corner-badge":["icon","badge"],"badge-band":["icon","badge"],"rating-review":["rating","subtitle","icon"],"tag-cloud":["tags"],"activity-feed":[],"code-snippet":["lang"],"file-document":["filename","filesize","filetype"],"before-after":[],pricing:["price","period"],"feature-comparison":["subtitle"],"progress-goal":["progress"],"timeline-entry":["subtitle","badge"],"glass-gradient-border":[]},te=new Set(["basic","no-header-footer","code-snippet","file-document","stat-metric"]),oe=new Set(["stat-metric","file-document"]),re=new Set(["pricing","feature-comparison","activity-feed","before-after","progress-goal"]);function D(){const e=document.getElementById("cb-dyn-fields");if(!e)return;for(;e.firstChild;)e.removeChild(e.firstChild);const t=a.layout,o=ee[t]||[];te.has(t)||e.appendChild(p("Title",f("title","Card heading"))),o.forEach(n=>{const i={subtitle:()=>p("Subtitle",f("subtitle","Secondary line")),icon:()=>p("Icon",ie()),iconLayout:()=>p("Icon layout",ae()),image:()=>p("Image",le()),value:()=>p("Value",f("value","\xA324,980")),delta:()=>p("Delta",f("delta","\u2191 12.4%")),progress:()=>p("Progress %",f("progress","50")),price:()=>p("Price",f("price","\xA329")),period:()=>p("Period",f("period","per month")),lang:()=>p("Language",f("lang","JavaScript")),filename:()=>p("Filename",f("filename","document.pdf")),filesize:()=>p("File size",f("filesize","2.4 MB")),filetype:()=>p("File type",f("filetype","PDF")),rating:()=>p("Rating (1\u20135)",f("rating","5")),duration:()=>p("Duration",f("duration","4:32")),address:()=>p("Address",f("address","12 Main St")),step:()=>p("Step number",f("step","1")),badge:()=>p("Badge label",f("badge","New")),tags:()=>p("Tags (comma-separated)",f("tags","Design, CSS")),calloutType:()=>p("Type",K("calloutType",["info","warn","success","error"]))};i[n]&&e.appendChild(i[n]())}),oe.has(t)||e.appendChild(p("Body content",ne())),re.has(t)||e.appendChild(p("Footer",f("footer","")))}function ne(){const e=r("textarea",k+";resize:vertical;min-height:60px;line-height:1.5");return e.value=a.body||"",e.addEventListener("input",()=>{a.body=e.value,x()}),e}function ie(){const e=r("div","display:flex;gap:6px"),t=r("input",k+";flex:1");t.type="text",t.placeholder="icon name",t.value=a.icon||"",t.addEventListener("input",()=>{a.icon=t.value,x()});const o=r("button","padding:0 10px;height:34px;background:var(--dm-border,#334155);border:none;color:var(--dm-text-muted,#94a3b8);border-radius:7px;font-size:13px;cursor:pointer;flex-shrink:0");return o.title="Browse icons",o.textContent="\u2605",o.addEventListener("click",()=>P(n=>{a.icon=n,t.value=n,x()})),e.appendChild(t),e.appendChild(o),e}function ae(){const e=r("div","display:flex;gap:6px");return["inline","stacked"].forEach(t=>{const o=r("div"),n=i=>{o.style.cssText=`flex:1;padding:6px;border-radius:7px;border:1px solid;font-size:11px;font-weight:700;text-align:center;cursor:pointer;${i?"border-color:var(--dm-primary);background:color-mix(in srgb, var(--dm-primary) 18%, transparent);color:var(--dm-primary)":"border-color:var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text-muted,#64748b)"}`};n(a.iconLayout===t),o.textContent=t.charAt(0).toUpperCase()+t.slice(1),o.addEventListener("click",()=>{a.iconLayout=t,e.querySelectorAll("div").forEach((i,d)=>n(["inline","stacked"][d]===t)),x()}),e.appendChild(o)}),e}function de(){return new Promise(async e=>{let t=[];$&&typeof $.onMediaBrowse=="function"&&(t=await $.onMediaBrowse()||[]);const o=document.createElement("dialog");o.style.cssText="margin:auto;padding:0;border:none;border-radius:12px;background:var(--dm-surface,#1e293b);width:min(700px,95vw);max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--dm-shadow-lg)";const n=document.createElement("style");n.textContent="dialog.cb-media-picker::backdrop{background:rgba(0,0,0,.75)}",o.className="cb-media-picker";const i=m=>{o.close(),o.remove(),n.remove(),e(m)},d=r("div","display:flex;justify-content:space-between;align-items:center;flex-shrink:0;padding:16px 20px;border-bottom:1px solid var(--dm-border,#334155)"),l=r("div","font-weight:700;font-size:14px;color:var(--dm-text,#f1f5f9)");l.textContent="Select Image";const g=r("button","background:var(--dm-border,#334155);border:none;color:var(--dm-text-muted,#94a3b8);border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:14px");g.textContent="\xD7",g.addEventListener("click",()=>i(null)),o.addEventListener("cancel",()=>i(null)),d.appendChild(l),d.appendChild(g);const b=r("div","padding:16px;overflow-y:auto;flex:1"),v=r("div","display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px"),y=t.filter(m=>/\.(png|jpe?g|gif|webp|svg)$/i.test(m.name||""));if(y.length)y.forEach(m=>{const c=r("div","display:flex;flex-direction:column;gap:6px;cursor:pointer;border:2px solid transparent;border-radius:8px;padding:6px"),h=document.createElement("img");h.src=m.url,h.alt=m.name||"",h.style.cssText="width:100%;height:80px;object-fit:cover;border-radius:6px;display:block";const s=r("div","font-size:9px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--dm-text-muted,#94a3b8)");s.textContent=m.name||m.url,c.appendChild(h),c.appendChild(s),c.addEventListener("mouseenter",()=>{c.style.borderColor="var(--dm-primary)"}),c.addEventListener("mouseleave",()=>{c.style.borderColor="transparent"}),c.addEventListener("click",()=>i(m.url)),v.appendChild(c)});else{const m=r("div","color:var(--dm-text-muted,#94a3b8);font-size:13px;padding:20px;text-align:center");m.textContent="No images uploaded yet.",v.appendChild(m)}b.appendChild(v),o.appendChild(d),o.appendChild(b),document.head.appendChild(n),document.body.appendChild(o),o.showModal()})}function le(){const e=r("div","display:flex;gap:6px"),t=r("input",k+";flex:1");t.type="text",t.placeholder="/media/image.jpg",t.value=a.image||"",t.addEventListener("input",()=>{a.image=t.value,x()});const o=r("button","padding:0 10px;height:34px;background:var(--dm-border,#334155);border:none;color:var(--dm-text-muted,#94a3b8);border-radius:7px;font-size:13px;cursor:pointer;flex-shrink:0");return o.title="Browse media",o.textContent="\u{1F4C1}",o.addEventListener("click",async()=>{const n=await de();n&&(a.image=n,t.value=n,x())}),e.appendChild(t),e.appendChild(o),e}function pe(){const e=r("div","padding:20px;background:var(--dm-surface,#f8fafc);display:flex;flex-direction:column;gap:14px;overflow-y:auto"),t=r("div","font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--dm-text-muted,#94a3b8)");t.textContent="Live Preview";const o=r("div","flex:1;display:flex;align-items:flex-start;justify-content:center");o.id="cb-preview-area";const n=r("div","font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--dm-text-muted,#94a3b8);margin-bottom:6px");n.textContent="Shortcode";const i=r("div","background:var(--dm-surface,#1e293b);border:1px solid var(--dm-border,#334155);border-radius:8px;padding:10px 14px;font-family:monospace;font-size:11px;color:var(--dm-primary,#a5b4fc);line-height:1.8;white-space:pre-wrap;word-break:break-all");return i.id="cb-snippet",e.appendChild(t),e.appendChild(o),e.appendChild(n),e.appendChild(i),e}function x(){const e=document.getElementById("cb-preview-area");if(!e)return;for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(se());const t=document.getElementById("cb-snippet");t&&(t.textContent=T())}function se(){const e=a,[t,o]=(B[e.gradient]||"#6366f1,#8b5cf6").split(","),n=`linear-gradient(135deg,${t},${o})`,i={clean:"background:var(--dm-surface,#fff);border:1px solid var(--dm-border,#e5e7eb);box-shadow:0 1px 4px rgba(0,0,0,.06)",gradient:`background:${n};color:#fff`,glass:"background:rgba(255,255,255,.12);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.25);box-shadow:0 4px 24px rgba(0,0,0,.12)",accent:"background:var(--dm-surface,#fff);border-top:1px solid var(--dm-border,#e5e7eb);border-right:1px solid var(--dm-border,#e5e7eb);border-bottom:1px solid var(--dm-border,#e5e7eb);border-left:4px solid #6366f1",dark:"background:#0f172a;color:#e2e8f0;border:1px solid #1e293b",glow:"background:var(--dm-surface,#fff);border:1px solid #6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.15),0 0 20px rgba(99,102,241,.3)"},d=e.variant==="gradient"?`background:${n};color:#fff;padding:12px 16px`:"background:var(--dm-border,#f3f4f6);color:var(--dm-text,#111);padding:12px 16px",l=r("div");l.style.cssText=`width:100%;max-width:300px;border-radius:12px;overflow:hidden;font-size:13px;font-family:system-ui,sans-serif;${i[e.variant]||i.clean}`;const g={serif:"Georgia,serif",mono:"'SF Mono','Fira Code',monospace"};e.font&&g[e.font]&&(l.style.fontFamily=g[e.font]);const b={sm:"11px",lg:"15px",xl:"17px"};e.fontSize&&b[e.fontSize]&&(l.style.fontSize=b[e.fontSize]),e.borderless&&(l.style.border="none");const v={none:"none",md:"0 4px 12px rgba(0,0,0,.1)",lg:"0 10px 30px rgba(0,0,0,.18)"};e.shadow&&v[e.shadow]!==void 0&&(l.style.boxShadow=v[e.shadow]);const y={none:"0",sm:"4px",lg:"20px",full:"9999px"};if(e.rounded&&y[e.rounded]!==void 0&&(l.style.borderRadius=y[e.rounded]),e.textAlign&&(l.style.textAlign=e.textAlign),new Set(["image-top","image-overlay","thumb-left","thumb-right","wide-left-image","full-bg","split-half","video-media"]).has(e.layout)){const u=r("div","height:120px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-size:2rem;background-color:var(--dm-border,#e2e8f0)");e.image&&(u.style.backgroundImage=`url('${e.image}')`),e.image||(u.textContent="\u{1F5BC}"),l.appendChild(u)}if(!new Set(["basic","no-header-footer","image-overlay","stat-metric","quote-testimonial","activity-feed","before-after","code-snippet","file-document","glass-gradient-border"]).has(e.layout)&&e.title){const u=r("div",d),w=r("div","font-weight:700");w.textContent=e.title,u.appendChild(w),l.appendChild(u)}const h=e.variant==="dark"?"color:#94a3b8;":e.variant==="gradient"?"color:rgba(255,255,255,.85);":"",s=r("div",`padding:13px 16px;${h}`);if(new Set(["before-after","pricing","feature-comparison","activity-feed","progress-goal"]).has(e.layout)){const u=r("em","font-size:11px;color:var(--dm-text-muted,#9ca3af)");u.textContent="Simplified preview \u2014 full render on save.",s.appendChild(u)}else if(e.layout==="stat-metric"){const u=r("div","font-size:2rem;font-weight:800");u.textContent=e.value||"\u2014";const w=r("div","font-size:.8rem;opacity:.7");if(w.textContent=e.title||"",s.appendChild(w),s.appendChild(u),e.delta){const _=r("div","font-size:.78rem;font-weight:600;color:#10b981");_.textContent=e.delta,s.appendChild(_)}}else s.textContent=e.body||"Card body content.";if(e.padding){const u=e.padding==="compact"?"8px 12px":"24px 28px";s.style.padding=u}if(l.appendChild(s),e.footer){const u=e.variant==="gradient"?"rgba(255,255,255,.6)":"var(--dm-text-muted,#9ca3af)",w=r("div",`padding:9px 16px;border-top:1px solid rgba(128,128,128,.15);font-size:11px;color:${u}`);w.textContent=e.footer,l.appendChild(w)}return l}function P(e){const t=r("div","position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:10000;padding:24px"),o=r("div","background:var(--dm-surface,#1e293b);border:1px solid var(--dm-border,#475569);border-radius:12px;padding:16px;width:100%;max-width:520px;max-height:70vh;display:flex;flex-direction:column;gap:12px"),n=r("div","display:flex;gap:8px;flex-wrap:wrap"),i=r("input","flex:1;min-width:160px;padding:8px 12px;border-radius:8px;border:1px solid var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text,#e2e8f0);font-size:13px;font-family:inherit");i.type="text",i.placeholder="Search icons\u2026";const d=r("select","padding:8px 12px;border-radius:8px;border:1px solid var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text,#e2e8f0);font-size:13px;font-family:inherit;cursor:pointer");N().forEach(({slug:c,label:h})=>{const s=document.createElement("option");s.value=c,s.textContent=h,d.appendChild(s)});const l=r("button","padding:8px 14px;background:var(--dm-border,#334155);border:none;border-radius:8px;color:var(--dm-text-muted,#94a3b8);font-size:12px;cursor:pointer");l.textContent="\u2715 Close",l.addEventListener("click",()=>t.remove()),n.appendChild(i),n.appendChild(d),n.appendChild(l);const g=r("div","font-size:11px;color:var(--dm-text-muted,#94a3b8)"),b=r("div","display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;overflow-y:auto;max-height:400px");let v=null;const y=r("button","padding:8px 18px;background:var(--dm-primary);border:none;border-radius:8px;color:var(--dm-primary-text);font-size:12px;font-weight:700;cursor:pointer;align-self:flex-end");y.textContent="Select an icon";function m(){for(;b.firstChild;)b.removeChild(b.firstChild);const c=q(d.value,i.value);g.textContent=`${c.length} icon${c.length===1?"":"s"}`,c.forEach(h=>{const s=r("div","display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:8px;cursor:pointer;border:2px solid transparent;background:var(--dm-surface,#0f172a)"),L=document.createElement("span");L.setAttribute("data-icon",h),L.style.fontSize="20px";const u=r("div","font-size:8px;color:var(--dm-text-muted,#475569);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%");u.textContent=h,s.appendChild(L),s.appendChild(u),s.addEventListener("click",()=>{v&&(v.style.borderColor="transparent"),s.style.borderColor="var(--dm-primary)",v=s,y.textContent=`Use: ${h}`}),s.addEventListener("dblclick",()=>{e(h),t.remove()}),b.appendChild(s)}),typeof I<"u"&&I.scan&&I.scan(b)}i.addEventListener("input",m),d.addEventListener("change",m),m(),y.addEventListener("click",()=>{if(v){const c=v.querySelector("[data-icon]").getAttribute("data-icon");e(c),t.remove()}}),o.appendChild(n),o.appendChild(g),o.appendChild(b),o.appendChild(y),t.appendChild(o),t.addEventListener("click",c=>{c.target===t&&t.remove()}),document.body.appendChild(t),i.focus()}export function openIconPicker(e){P(e)}
|
|
7
|
+
[/card]`}function E(){C&&(C.remove(),C=null,a=null)}function H(){const e=A();R($,$.selectionStart,$.selectionEnd,e),E()}function U(){C=document.createElement("div"),Object.assign(C.style,{position:"fixed",inset:"0",background:"rgba(0,0,0,.6)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:"9999",padding:"24px",isolation:"isolate"});const e=document.createElement("div");Object.assign(e.style,{background:"var(--dm-surface,#1e293b)",border:"1px solid var(--dm-border,#334155)",borderRadius:"14px",width:"100%",maxWidth:"860px",maxHeight:"90vh",display:"flex",flexDirection:"column",boxShadow:"var(--dm-shadow-lg)",overflow:"hidden"});const t=n("div","display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--dm-border,#334155);flex-shrink:0"),o=n("span","font-weight:700;color:var(--dm-text,#f1f5f9);font-size:14px");o.textContent="Insert Card";const r=n("button","background:var(--dm-border,#334155);border:none;color:var(--dm-text-muted,#94a3b8);border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:14px");r.title="Close",S(r,"x"),r.addEventListener("click",E),t.appendChild(o),t.appendChild(r);const i=n("div","display:grid;grid-template-columns:280px 1fr;flex:1;overflow:hidden");i.appendChild(V()),i.appendChild(ce());const d=n("div","display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;border-top:1px solid var(--dm-border,#334155);flex-shrink:0"),l=n("button","padding:8px 18px;border-radius:8px;border:none;background:var(--dm-border,#334155);color:var(--dm-text-muted,#94a3b8);font-size:12px;font-weight:700;cursor:pointer");l.textContent="Cancel",l.addEventListener("click",E);const f=n("button","padding:8px 18px;border-radius:8px;border:none;background:var(--dm-primary);color:var(--dm-primary-text);font-size:12px;font-weight:700;cursor:pointer");f.textContent="Insert Card",f.addEventListener("click",H),d.appendChild(l),d.appendChild(f),e.appendChild(t),e.appendChild(i),e.appendChild(d),C.appendChild(e),C.addEventListener("click",b=>{b.target===C&&E()}),document.body.appendChild(C),D(),x()}function n(e,t=""){const o=document.createElement(e);return t&&(o.style.cssText=t),o}function S(e,t,o=14){e.textContent="";const r=document.createElement("span");return r.setAttribute("data-icon",t),r.setAttribute("data-icon-size",String(o)),r.style.cssText="display:inline-flex;align-items:center;vertical-align:middle;",e.appendChild(r),typeof I<"u"&&I.scan&&I.scan(e),e}function Y(e,t,o,r=14){return S(e,t,r),e.appendChild(document.createTextNode(" "+o)),e}const k="padding:7px 10px;border-radius:7px;border:1px solid var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text,#e2e8f0);font-size:12px;font-family:inherit;width:100%";function V(){const e=n("div","padding:18px;border-right:1px solid var(--dm-border,#334155);display:flex;flex-direction:column;gap:14px;overflow-y:auto");e.appendChild(p("Layout",W()));const t=n("div","display:contents");t.id="cb-dyn-fields",e.appendChild(t),e.appendChild(P()),e.appendChild(p("Style",J()));const o=n("div");return o.id="cb-grad-wrap",o.style.display=a.variant==="gradient"?"":"none",o.appendChild(p("Gradient",Q())),e.appendChild(o),e.appendChild(p("Options",X())),e.appendChild(P()),e.appendChild(ee()),e}function W(){const e=n("select",k+";cursor:pointer"),t={};return M.forEach(o=>{(t[o.group]=t[o.group]||[]).push(o)}),Object.entries(t).forEach(([o,r])=>{const i=document.createElement("optgroup");i.label=o,r.forEach(d=>{const l=document.createElement("option");l.value=d.key,l.textContent=`${d.thumb} ${d.label}`,d.key===a.layout&&(l.selected=!0),i.appendChild(l)}),e.appendChild(i)}),e.addEventListener("change",()=>{a.layout=e.value,D(),x()}),e}function J(){const e=n("div","display:grid;grid-template-columns:repeat(3,1fr);gap:5px"),t={clean:"background:#f8fafc;color:#374151;border:2px solid #e2e8f0",gradient:"background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:2px solid transparent",glass:"background:rgba(255,255,255,.06);color:#94a3b8;border:2px dashed #334155",accent:"background:#fff;color:#4338ca;border-left:4px solid #6366f1;border-top:2px solid #e2e8f0;border-right:2px solid #e2e8f0;border-bottom:2px solid #e2e8f0",dark:"background:#0f172a;color:#818cf8;border:2px solid #334155",glow:"color:#818cf8;border:2px solid #6366f1;box-shadow:0 0 6px rgba(99,102,241,.4)"};return j.forEach(o=>{const r=n("div",`padding:6px 4px;border-radius:7px;font-size:10px;font-weight:700;text-align:center;cursor:pointer;${t[o]}`);r.textContent=o.charAt(0).toUpperCase()+o.slice(1),r.dataset.variant=o,o===a.variant&&(r.style.outline="2px solid var(--dm-primary)"),r.addEventListener("click",()=>{a.variant=o,e.querySelectorAll("[data-variant]").forEach(d=>{d.style.outline=""}),r.style.outline="2px solid var(--dm-primary)";const i=document.getElementById("cb-grad-wrap");i&&(i.style.display=o==="gradient"?"":"none"),x()}),e.appendChild(r)}),e}function Q(){const e=n("div","display:flex;flex-wrap:wrap;gap:7px");return O.forEach(t=>{const[o,r]=(B[t]||"#6366f1,#8b5cf6").split(","),i=n("div",`width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,${o},${r});cursor:pointer;border:2px solid transparent;transition:border-color .15s`);i.title=t,t===a.gradient&&(i.style.borderColor="var(--dm-text)"),i.addEventListener("click",()=>{a.gradient=t,e.querySelectorAll("div").forEach(d=>{d.style.borderColor="transparent"}),i.style.borderColor="var(--dm-text)",x()}),e.appendChild(i)}),e}function X(){const e=n("div","display:flex;gap:6px");return["hover","collapsible"].forEach(t=>{const o=n("div"),r=i=>{o.style.cssText=`flex:1;padding:6px 8px;border-radius:7px;border:1px solid;font-size:11px;font-weight:700;text-align:center;cursor:pointer;${i?"border-color:var(--dm-primary);background:color-mix(in srgb, var(--dm-primary) 18%, transparent);color:var(--dm-primary)":"border-color:var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text-muted,#64748b)"}`};r(a[t]),o.textContent=t.charAt(0).toUpperCase()+t.slice(1),o.addEventListener("click",()=>{a[t]=!a[t],r(a[t]),x()}),e.appendChild(o)}),e}function L(e,t){const o=n("select",k+";cursor:pointer");return t.forEach(([r,i])=>{const d=document.createElement("option");d.value=r,d.textContent=i,r===a[e]&&(d.selected=!0),o.appendChild(d)}),o.addEventListener("change",()=>{a[e]=o.value,x()}),o}function Z(e,t){const o=n("div"),r=i=>{o.style.cssText=`flex:1;padding:6px 8px;border-radius:7px;border:1px solid;font-size:11px;font-weight:700;text-align:center;cursor:pointer;${i?"border-color:var(--dm-primary);background:color-mix(in srgb, var(--dm-primary) 18%, transparent);color:var(--dm-primary)":"border-color:var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text-muted,#64748b)"}`};return r(a[e]),o.textContent=t,o.addEventListener("click",()=>{a[e]=!a[e],r(a[e]),x()}),o}function K(){const e=n("div","display:flex;gap:6px");return[["","Left"],["center","Centre"],["right","Right"]].forEach(([t,o])=>{const r=n("div"),i=d=>{r.style.cssText=`flex:1;padding:5px 4px;border-radius:7px;border:1px solid;font-size:11px;font-weight:700;text-align:center;cursor:pointer;${d?"border-color:var(--dm-primary);background:color-mix(in srgb, var(--dm-primary) 18%, transparent);color:var(--dm-primary)":"border-color:var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text-muted,#64748b)"}`};i(a.textAlign===t),r.textContent=o,r.addEventListener("click",()=>{a.textAlign=t,e.querySelectorAll("div").forEach((d,l)=>i([["","Left"],["center","Centre"],["right","Right"]][l][0]===t)),x()}),e.appendChild(r)}),e}function ee(){const e=n("div","display:flex;flex-direction:column;gap:14px"),t=n("div","font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--dm-text-muted,#475569)");t.textContent="Presentation",e.appendChild(t);const o=n("div","display:grid;grid-template-columns:1fr 1fr;gap:10px"),r=(d,l)=>{const f=n("div","display:flex;flex-direction:column;gap:5px"),b=n("div","font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--dm-text-muted,#475569)");b.textContent=d,f.appendChild(b),f.appendChild(l),o.appendChild(f)};r("Font",L("font",[["","Default"],["serif","Serif"],["mono","Mono"]])),r("Size",L("fontSize",[["","Default"],["sm","Small"],["lg","Large"],["xl","XL"]])),r("Shadow",L("shadow",[["","Default"],["none","None"],["md","Medium"],["lg","Large"]])),r("Padding",L("padding",[["","Default"],["compact","Compact"],["spacious","Spacious"]])),r("Corners",L("rounded",[["","Default"],["none","Square"],["sm","Small"],["lg","Large"],["full","Full"]])),e.appendChild(o),e.appendChild(p("Align",K()));const i=n("div","display:flex;gap:6px");return i.appendChild(Z("borderless","Borderless")),e.appendChild(i),e}function p(e,t){const o=n("div","display:flex;flex-direction:column;gap:5px"),r=n("div","font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--dm-text-muted,#475569)");return r.textContent=e,o.appendChild(r),o.appendChild(t),o}function P(){return n("div","height:1px;background:var(--dm-border,#334155);margin:2px 0")}function g(e,t){const o=n("input",k);return o.type="text",t&&(o.placeholder=t),o.value=a[e]||"",o.addEventListener("input",()=>{a[e]=o.value,x()}),o}function te(e,t){const o=n("select",k+";cursor:pointer");return t.forEach(r=>{const i=document.createElement("option");i.value=r,i.textContent=r,r===a[e]&&(i.selected=!0),o.appendChild(i)}),o.addEventListener("change",()=>{a[e]=o.value,x()}),o}const oe={"icon-top":["subtitle","icon","iconLayout"],"icon-inline":["subtitle","icon","iconLayout"],"image-top":["image"],"image-overlay":["image"],"thumb-left":["image"],"thumb-right":["image"],"wide-left-image":["image"],"full-bg":["image"],"split-half":["image"],"avatar-profile":["subtitle","icon","tags"],"stat-metric":["value","delta","progress"],"quote-testimonial":["subtitle","icon"],callout:["calloutType","icon"],"video-media":["image","duration"],"location-map":["address"],"step-numbered":["step"],"corner-badge":["icon","badge"],"badge-band":["icon","badge"],"rating-review":["rating","subtitle","icon"],"tag-cloud":["tags"],"activity-feed":[],"code-snippet":["lang"],"file-document":["filename","filesize","filetype"],"before-after":[],pricing:["price","period"],"feature-comparison":["subtitle"],"progress-goal":["progress"],"timeline-entry":["subtitle","badge"],"glass-gradient-border":[]},re=new Set(["basic","no-header-footer","code-snippet","file-document","stat-metric"]),ne=new Set(["stat-metric","file-document"]),ie=new Set(["pricing","feature-comparison","activity-feed","before-after","progress-goal"]);function D(){const e=document.getElementById("cb-dyn-fields");if(!e)return;for(;e.firstChild;)e.removeChild(e.firstChild);const t=a.layout,o=oe[t]||[];re.has(t)||e.appendChild(p("Title",g("title","Card heading"))),o.forEach(r=>{const i={subtitle:()=>p("Subtitle",g("subtitle","Secondary line")),icon:()=>p("Icon",de()),iconLayout:()=>p("Icon layout",le()),image:()=>p("Image",se()),value:()=>p("Value",g("value","\xA324,980")),delta:()=>p("Delta",g("delta","\u2191 12.4%")),progress:()=>p("Progress %",g("progress","50")),price:()=>p("Price",g("price","\xA329")),period:()=>p("Period",g("period","per month")),lang:()=>p("Language",g("lang","JavaScript")),filename:()=>p("Filename",g("filename","document.pdf")),filesize:()=>p("File size",g("filesize","2.4 MB")),filetype:()=>p("File type",g("filetype","PDF")),rating:()=>p("Rating (1\u20135)",g("rating","5")),duration:()=>p("Duration",g("duration","4:32")),address:()=>p("Address",g("address","12 Main St")),step:()=>p("Step number",g("step","1")),badge:()=>p("Badge label",g("badge","New")),tags:()=>p("Tags (comma-separated)",g("tags","Design, CSS")),calloutType:()=>p("Type",te("calloutType",["info","warn","success","error"]))};i[r]&&e.appendChild(i[r]())}),ne.has(t)||e.appendChild(p("Body content",ae())),ie.has(t)||e.appendChild(p("Footer",g("footer","")))}function ae(){const e=n("textarea",k+";resize:vertical;min-height:60px;line-height:1.5");return e.value=a.body||"",e.addEventListener("input",()=>{a.body=e.value,x()}),e}function de(){const e=n("div","display:flex;gap:6px"),t=n("input",k+";flex:1");t.type="text",t.placeholder="icon name",t.value=a.icon||"",t.addEventListener("input",()=>{a.icon=t.value,x()});const o=n("button","padding:0 10px;height:34px;background:var(--dm-border,#334155);border:none;color:var(--dm-text-muted,#94a3b8);border-radius:7px;font-size:13px;cursor:pointer;flex-shrink:0");return o.title="Browse icons",S(o,"star"),o.addEventListener("click",()=>F(r=>{a.icon=r,t.value=r,x()})),e.appendChild(t),e.appendChild(o),e}function le(){const e=n("div","display:flex;gap:6px");return["inline","stacked"].forEach(t=>{const o=n("div"),r=i=>{o.style.cssText=`flex:1;padding:6px;border-radius:7px;border:1px solid;font-size:11px;font-weight:700;text-align:center;cursor:pointer;${i?"border-color:var(--dm-primary);background:color-mix(in srgb, var(--dm-primary) 18%, transparent);color:var(--dm-primary)":"border-color:var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text-muted,#64748b)"}`};r(a.iconLayout===t),o.textContent=t.charAt(0).toUpperCase()+t.slice(1),o.addEventListener("click",()=>{a.iconLayout=t,e.querySelectorAll("div").forEach((i,d)=>r(["inline","stacked"][d]===t)),x()}),e.appendChild(o)}),e}function pe(){return new Promise(async e=>{let t=[];_&&typeof _.onMediaBrowse=="function"&&(t=await _.onMediaBrowse()||[]);const o=document.createElement("dialog");o.style.cssText="margin:auto;padding:0;border:none;border-radius:12px;background:var(--dm-surface,#1e293b);width:min(700px,95vw);max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--dm-shadow-lg)";const r=document.createElement("style");r.textContent="dialog.cb-media-picker::backdrop{background:rgba(0,0,0,.75)}",o.className="cb-media-picker";const i=m=>{o.close(),o.remove(),r.remove(),e(m)},d=n("div","display:flex;justify-content:space-between;align-items:center;flex-shrink:0;padding:16px 20px;border-bottom:1px solid var(--dm-border,#334155)"),l=n("div","font-weight:700;font-size:14px;color:var(--dm-text,#f1f5f9)");l.textContent="Select Image";const f=n("button","background:var(--dm-border,#334155);border:none;color:var(--dm-text-muted,#94a3b8);border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:14px");f.title="Close",S(f,"x"),f.addEventListener("click",()=>i(null)),o.addEventListener("cancel",()=>i(null)),d.appendChild(l),d.appendChild(f);const b=n("div","padding:16px;overflow-y:auto;flex:1"),v=n("div","display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px"),y=t.filter(m=>/\.(png|jpe?g|gif|webp|svg)$/i.test(m.name||""));if(y.length)y.forEach(m=>{const c=n("div","display:flex;flex-direction:column;gap:6px;cursor:pointer;border:2px solid transparent;border-radius:8px;padding:6px"),h=document.createElement("img");h.src=m.url,h.alt=m.name||"",h.style.cssText="width:100%;height:80px;object-fit:cover;border-radius:6px;display:block";const s=n("div","font-size:9px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--dm-text-muted,#94a3b8)");s.textContent=m.name||m.url,c.appendChild(h),c.appendChild(s),c.addEventListener("mouseenter",()=>{c.style.borderColor="var(--dm-primary)"}),c.addEventListener("mouseleave",()=>{c.style.borderColor="transparent"}),c.addEventListener("click",()=>i(m.url)),v.appendChild(c)});else{const m=n("div","color:var(--dm-text-muted,#94a3b8);font-size:13px;padding:20px;text-align:center");m.textContent="No images uploaded yet.",v.appendChild(m)}b.appendChild(v),o.appendChild(d),o.appendChild(b),document.head.appendChild(r),document.body.appendChild(o),o.showModal()})}function se(){const e=n("div","display:flex;gap:6px"),t=n("input",k+";flex:1");t.type="text",t.placeholder="/media/image.jpg",t.value=a.image||"",t.addEventListener("input",()=>{a.image=t.value,x()});const o=n("button","padding:0 10px;height:34px;background:var(--dm-border,#334155);border:none;color:var(--dm-text-muted,#94a3b8);border-radius:7px;font-size:13px;cursor:pointer;flex-shrink:0");return o.title="Browse media",S(o,"folder"),o.addEventListener("click",async()=>{const r=await pe();r&&(a.image=r,t.value=r,x())}),e.appendChild(t),e.appendChild(o),e}function ce(){const e=n("div","padding:20px;background:var(--dm-surface,#f8fafc);display:flex;flex-direction:column;gap:14px;overflow-y:auto"),t=n("div","font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--dm-text-muted,#94a3b8)");t.textContent="Live Preview";const o=n("div","flex:1;display:flex;align-items:flex-start;justify-content:center");o.id="cb-preview-area";const r=n("div","font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--dm-text-muted,#94a3b8);margin-bottom:6px");r.textContent="Shortcode";const i=n("div","background:var(--dm-surface,#1e293b);border:1px solid var(--dm-border,#334155);border-radius:8px;padding:10px 14px;font-family:monospace;font-size:11px;color:var(--dm-primary,#a5b4fc);line-height:1.8;white-space:pre-wrap;word-break:break-all");return i.id="cb-snippet",e.appendChild(t),e.appendChild(o),e.appendChild(r),e.appendChild(i),e}function x(){const e=document.getElementById("cb-preview-area");if(!e)return;for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(ue());const t=document.getElementById("cb-snippet");t&&(t.textContent=A())}function ue(){const e=a,[t,o]=(B[e.gradient]||"#6366f1,#8b5cf6").split(","),r=`linear-gradient(135deg,${t},${o})`,i={clean:"background:var(--dm-surface,#fff);border:1px solid var(--dm-border,#e5e7eb);box-shadow:0 1px 4px rgba(0,0,0,.06)",gradient:`background:${r};color:#fff`,glass:"background:rgba(255,255,255,.12);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.25);box-shadow:0 4px 24px rgba(0,0,0,.12)",accent:"background:var(--dm-surface,#fff);border-top:1px solid var(--dm-border,#e5e7eb);border-right:1px solid var(--dm-border,#e5e7eb);border-bottom:1px solid var(--dm-border,#e5e7eb);border-left:4px solid #6366f1",dark:"background:#0f172a;color:#e2e8f0;border:1px solid #1e293b",glow:"background:var(--dm-surface,#fff);border:1px solid #6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.15),0 0 20px rgba(99,102,241,.3)"},d=e.variant==="gradient"?`background:${r};color:#fff;padding:12px 16px`:"background:var(--dm-border,#f3f4f6);color:var(--dm-text,#111);padding:12px 16px",l=n("div");l.style.cssText=`width:100%;max-width:300px;border-radius:12px;overflow:hidden;font-size:13px;font-family:system-ui,sans-serif;${i[e.variant]||i.clean}`;const f={serif:"Georgia,serif",mono:"'SF Mono','Fira Code',monospace"};e.font&&f[e.font]&&(l.style.fontFamily=f[e.font]);const b={sm:"11px",lg:"15px",xl:"17px"};e.fontSize&&b[e.fontSize]&&(l.style.fontSize=b[e.fontSize]),e.borderless&&(l.style.border="none");const v={none:"none",md:"0 4px 12px rgba(0,0,0,.1)",lg:"0 10px 30px rgba(0,0,0,.18)"};e.shadow&&v[e.shadow]!==void 0&&(l.style.boxShadow=v[e.shadow]);const y={none:"0",sm:"4px",lg:"20px",full:"9999px"};if(e.rounded&&y[e.rounded]!==void 0&&(l.style.borderRadius=y[e.rounded]),e.textAlign&&(l.style.textAlign=e.textAlign),new Set(["image-top","image-overlay","thumb-left","thumb-right","wide-left-image","full-bg","split-half","video-media"]).has(e.layout)){const u=n("div","height:120px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-size:2rem;background-color:var(--dm-border,#e2e8f0)");e.image&&(u.style.backgroundImage=`url('${e.image}')`),e.image||(u.textContent="\u{1F5BC}"),l.appendChild(u)}if(!new Set(["basic","no-header-footer","image-overlay","stat-metric","quote-testimonial","activity-feed","before-after","code-snippet","file-document","glass-gradient-border"]).has(e.layout)&&e.title){const u=n("div",d),w=n("div","font-weight:700");w.textContent=e.title,u.appendChild(w),l.appendChild(u)}const h=e.variant==="dark"?"color:#94a3b8;":e.variant==="gradient"?"color:rgba(255,255,255,.85);":"",s=n("div",`padding:13px 16px;${h}`);if(new Set(["before-after","pricing","feature-comparison","activity-feed","progress-goal"]).has(e.layout)){const u=n("em","font-size:11px;color:var(--dm-text-muted,#9ca3af)");u.textContent="Simplified preview \u2014 full render on save.",s.appendChild(u)}else if(e.layout==="stat-metric"){const u=n("div","font-size:2rem;font-weight:800");u.textContent=e.value||"\u2014";const w=n("div","font-size:.8rem;opacity:.7");if(w.textContent=e.title||"",s.appendChild(w),s.appendChild(u),e.delta){const T=n("div","font-size:.78rem;font-weight:600;color:#10b981");T.textContent=e.delta,s.appendChild(T)}}else s.textContent=e.body||"Card body content.";if(e.padding){const u=e.padding==="compact"?"8px 12px":"24px 28px";s.style.padding=u}if(l.appendChild(s),e.footer){const u=e.variant==="gradient"?"rgba(255,255,255,.6)":"var(--dm-text-muted,#9ca3af)",w=n("div",`padding:9px 16px;border-top:1px solid rgba(128,128,128,.15);font-size:11px;color:${u}`);w.textContent=e.footer,l.appendChild(w)}return l}function F(e){const t=n("div","position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:10000;padding:24px"),o=n("div","background:var(--dm-surface,#1e293b);border:1px solid var(--dm-border,#475569);border-radius:12px;padding:16px;width:100%;max-width:520px;max-height:70vh;display:flex;flex-direction:column;gap:12px"),r=n("div","display:flex;gap:8px;flex-wrap:wrap"),i=n("input","flex:1;min-width:160px;padding:8px 12px;border-radius:8px;border:1px solid var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text,#e2e8f0);font-size:13px;font-family:inherit");i.type="text",i.placeholder="Search icons\u2026";const d=n("select","padding:8px 12px;border-radius:8px;border:1px solid var(--dm-border,#334155);background:var(--dm-surface,#0f172a);color:var(--dm-text,#e2e8f0);font-size:13px;font-family:inherit;cursor:pointer");q().forEach(({slug:c,label:h})=>{const s=document.createElement("option");s.value=c,s.textContent=h,d.appendChild(s)});const l=n("button","padding:8px 14px;background:var(--dm-border,#334155);border:none;border-radius:8px;color:var(--dm-text-muted,#94a3b8);font-size:12px;cursor:pointer");Y(l,"x","Close"),l.addEventListener("click",()=>t.remove()),r.appendChild(i),r.appendChild(d),r.appendChild(l);const f=n("div","font-size:11px;color:var(--dm-text-muted,#94a3b8)"),b=n("div","display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;overflow-y:auto;max-height:400px");let v=null;const y=n("button","padding:8px 18px;background:var(--dm-primary);border:none;border-radius:8px;color:var(--dm-primary-text);font-size:12px;font-weight:700;cursor:pointer;align-self:flex-end");y.textContent="Select an icon";function m(){for(;b.firstChild;)b.removeChild(b.firstChild);const c=G(d.value,i.value);f.textContent=`${c.length} icon${c.length===1?"":"s"}`,c.forEach(h=>{const s=n("div","display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:8px;cursor:pointer;border:2px solid transparent;background:var(--dm-surface,#0f172a)"),z=document.createElement("span");z.setAttribute("data-icon",h),z.style.fontSize="20px";const u=n("div","font-size:8px;color:var(--dm-text-muted,#475569);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%");u.textContent=h,s.appendChild(z),s.appendChild(u),s.addEventListener("click",()=>{v&&(v.style.borderColor="transparent"),s.style.borderColor="var(--dm-primary)",v=s,y.textContent=`Use: ${h}`}),s.addEventListener("dblclick",()=>{e(h),t.remove()}),b.appendChild(s)}),typeof I<"u"&&I.scan&&I.scan(b)}i.addEventListener("input",m),d.addEventListener("change",m),m(),y.addEventListener("click",()=>{if(v){const c=v.querySelector("[data-icon]").getAttribute("data-icon");e(c),t.remove()}}),o.appendChild(r),o.appendChild(f),o.appendChild(b),o.appendChild(y),t.appendChild(o),t.addEventListener("click",c=>{c.target===t&&t.remove()}),document.body.appendChild(t),i.focus()}export function openIconPicker(e){F(e)}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const k=["card","grid","row","tabs","accordion","carousel","hero","timeline","slideover","dconfig"],b=new RegExp(`^\\[(${k.join("|")})(\\s[^\\]]*)?\\]`,"i"),x="\u2026",G="\u200B";function j(n,f,o){return`${n.trimEnd()} ${x} [/${f}]${G}${o}`}function $(n,f,o){const c=new RegExp(`^\\[\\/${o}\\]`,"i"),h=new RegExp(`^\\[${o}(\\s[^\\]]*)?\\]`,"i");let d=1;for(let u=f+1;u<n.length;u++){const g=n[u].trimStart();if(h.test(g)&&d++,c.test(g)&&(d--,d===0))return u}return-1}function F(n){const f=[];for(let o=0;o<n.length;o++){const h=n[o].trimStart().match(b);if(!h)continue;const d=h[1].toLowerCase(),u=$(n,o,d);u>o&&f.push({lineIndex:o,tag:d,closeIndex:u})}return f}function B(n){for(;n.firstChild;)n.removeChild(n.firstChild)}export function createFoldingManager(n,f,o={}){const c=new Map;let h=0,d=null;function u(e){d&&d(!0),e(),d&&d(!1)}function g(){return n.value.split(`
|
|
2
|
-
`)}function p(){const e=g(),t=F(e),i=new Set(t.map(s=>s.lineIndex)),l=new Set;e.forEach((s,r)=>{c.has(s)&&l.add(r)}),B(f),e.forEach((s,r)=>{const m=document.createElement("span");m.className="editor-line-number-row";const a=document.createElement("span");l.has(r)?(a.className="fold-toggle fold-toggle--folded",a.setAttribute("title","Unfold block"),a.textContent="\
|
|
2
|
+
`)}function p(){const e=g(),t=F(e),i=new Set(t.map(s=>s.lineIndex)),l=new Set;e.forEach((s,r)=>{c.has(s)&&l.add(r)}),B(f),e.forEach((s,r)=>{const m=document.createElement("span");m.className="editor-line-number-row";const a=document.createElement("span");l.has(r)?(a.className="fold-toggle fold-toggle--folded",a.setAttribute("title","Unfold block"),a.textContent="\u25B8",a.addEventListener("click",()=>w(r))):i.has(r)?(a.className="fold-toggle fold-toggle--open",a.setAttribute("title","Fold block"),a.textContent="\u25BE",a.addEventListener("click",()=>C(r))):a.className="fold-toggle fold-toggle--empty",m.appendChild(a);const E=document.createElement("span");E.className="editor-line-num",E.textContent=String(r+1),m.appendChild(E),f.appendChild(m)}),f.scrollTop=n.scrollTop}function C(e){const t=g(),i=t[e].trimStart().match(b);if(!i)return;const l=i[1].toLowerCase(),s=$(t,e,l);if(s<=e)return;const r=t.slice(e,s+1).join(`
|
|
3
3
|
`),m=j(t[e],l,++h);c.set(m,r);const a=[...t.slice(0,e),m,...t.slice(s+1)];u(()=>{n.value=a.join(`
|
|
4
4
|
`)}),p(),o.onFoldChange&&o.onFoldChange()}function w(e){const t=g(),i=t[e],l=c.get(i);if(!l)return;c.delete(i);const s=l.split(`
|
|
5
5
|
`),r=[...t.slice(0,e),...s,...t.slice(e+1)];u(()=>{n.value=r.join(`
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{EFFECTS as _,effectsByCategory as z,effectsInjectableInto as
|
|
1
|
+
import{EFFECTS as _,effectsByCategory as z,effectsInjectableInto as A,getEffect as u}from"./effect-defs.js";import{insertAtCursor as R,replaceRange as x}from"./markdown-toolbar.js";let g=null;function j(e,t,r=14){e.textContent="";const o=document.createElement("span");return o.setAttribute("data-icon",t),o.setAttribute("data-icon-size",String(r)),o.style.cssText="display:inline-flex;align-items:center;vertical-align:middle;",e.appendChild(o),I.scan(e),e}function L(e,t,r,o=14){return j(e,t,o),e.appendChild(document.createTextNode(" "+r)),e}export const EffectsBuilder={open(e){if(g)return;const t={textarea:e,activeEffect:S.get("effects-builder-last")||"reveal",scope:"standalone",host:null,editing:null,fieldValues:{}};if(t.host=F(e),t.host&&A(t.host.name).map(c=>c.name).includes(t.activeEffect)&&!(t.activeEffect in t.host.attrs)&&(t.scope="inject"),t.editing=q(e),t.editing){t.activeEffect=t.editing.name,t.scope="standalone";const a=u(t.editing.name);for(const c of a.attrs)if(c.name in t.editing.attrs){const s=t.editing.attrs[c.name];c.type==="number"?t.fieldValues[c.name]=Number(s):c.type==="checkbox"?t.fieldValues[c.name]=s==="true":t.fieldValues[c.name]=s}}const r=E.slideover({title:"Effects",size:"lg",position:"right",onClose:()=>{g=null}}),o=O(t,r);r.element.appendChild(o),r.open(),I.scan(o),g={state:t,slideover:r}},close(){g&&(g.slideover.close(),g=null)}};function O(e,t){const r=document.createElement("div");r.style.cssText="display:grid;grid-template-columns:170px 1fr;height:100%;min-height:520px;";const o=document.createElement("div");o.className="effects-rail",o.style.cssText="background:var(--dm-background-alt,#15152a);border-right:1px solid var(--dm-border,#2a2a40);padding:.5rem .35rem;font-size:.8rem;overflow-y:auto;";const a=document.createElement("div");a.className="effects-pane",a.style.cssText="padding:1rem;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;";function c(){H(a,e,t)}return b(o,e,c),c(),r.appendChild(o),r.appendChild(a),r}function b(e,t,r){e.replaceChildren();for(const o of z()){const a=document.createElement("div");a.style.cssText="color:var(--dm-text-muted,#888);text-transform:uppercase;font-size:.65rem;letter-spacing:.05em;margin:.4rem .35rem .25rem;",a.textContent=o.category,e.appendChild(a);for(const c of o.effects){const s=document.createElement("button");s.type="button",s.dataset.effect=c.name,s.style.cssText="display:block;width:100%;text-align:left;padding:.3rem .5rem;border:none;background:transparent;color:var(--dm-text,#ddd);border-radius:3px;font-size:.8rem;cursor:pointer;margin-bottom:.1rem;",s.textContent=c.label,c.name===t.activeEffect&&(s.style.background="var(--dm-primary,#4338ca)",s.style.color="var(--dm-primary-text,#fff)"),s.addEventListener("click",()=>{t.activeEffect=c.name,S.set("effects-builder-last",c.name),t.fieldValues={},b(e,t,r),r()}),e.appendChild(s)}}}function V(e,t){if(e.type==="select"){const o=document.createElement("select");o.style.cssText="width:100%;padding:.35rem .5rem;background:var(--dm-input-bg,#1a1a1a);border:1px solid var(--dm-border,#333);border-radius:3px;color:var(--dm-text,#eee);font-size:.85rem;";for(const[a,c]of e.options){const s=document.createElement("option");s.value=a,s.textContent=c,o.appendChild(s)}return o.value=t??e.default??"",o}if(e.type==="checkbox"){const o=document.createElement("input");return o.type="checkbox",o.checked=t??e.default??!1,o}const r=document.createElement("input");return r.type=e.type==="number"?"number":e.type==="colour"?"color":"text",r.value=t??e.default??"",e.placeholder&&(r.placeholder=e.placeholder),e.type==="number"&&(e.min!=null&&(r.min=e.min),e.max!=null&&(r.max=e.max),e.step!=null&&(r.step=e.step)),r.style.cssText="width:100%;padding:.35rem .5rem;background:var(--dm-input-bg,#1a1a1a);border:1px solid var(--dm-border,#333);border-radius:3px;color:var(--dm-text,#eee);font-size:.85rem;",r}function v(e,t){return t.type==="checkbox"?e.checked:t.type==="number"?e.value===""?"":Number(e.value):e.value}function N(e,t,r){const o=u(t.activeEffect);if(e.replaceChildren(),o.attrs.length===0){const c=document.createElement("div");c.style.cssText="color:var(--dm-text-muted,#888);font-size:.8rem;font-style:italic;",c.textContent="This effect takes no parameters.",e.appendChild(c);return}const a=document.createElement("div");a.style.cssText="display:grid;grid-template-columns:1fr 1fr;gap:.6rem .7rem;";for(const c of o.attrs){const s=document.createElement("div"),d=document.createElement("label");d.style.cssText="display:block;color:var(--dm-text-muted,#888);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem;",d.textContent=c.label,s.appendChild(d);const i=V(c,t.fieldValues[c.name]);if(i.addEventListener("input",()=>{t.fieldValues[c.name]=v(i,c),r()}),i.addEventListener("change",()=>{t.fieldValues[c.name]=v(i,c),r()}),s.appendChild(i),c.hint){const n=document.createElement("div");n.style.cssText="color:var(--dm-text-muted,#666);font-size:.7rem;margin-top:.15rem;",n.textContent=c.hint,s.appendChild(n)}a.appendChild(s)}e.appendChild(a)}function y(e){const t={},r=/(\w[\w-]*)(?:\s*=\s*"([^"]*)"|\s*=\s*'([^']*)'|\s*=\s*(\S+))?/g;for(const o of e.matchAll(r)){const a=o[1],c=o[2]??o[3]??o[4]??"";t[a]=c}return t}const B=_.filter(e=>!e.selfClosing).map(e=>e.name);function q(e){const t=e.value,r=e.selectionStart;for(const o of B){const a=new RegExp(`\\[${o}([^\\]]*)\\]`,"g"),c=new RegExp(`\\[/${o}\\]`,"g"),s=[];for(const n of t.matchAll(a)){if(n.index>=r)break;s.push({type:"open",start:n.index,end:n.index+n[0].length,attrStr:n[1]})}for(const n of t.matchAll(c)){if(n.index>=r)break;s.push({type:"close",start:n.index,end:n.index+n[0].length})}s.sort((n,l)=>n.start-l.start);let d=0,i=null;for(const n of s)n.type==="open"?(d++,i=n):(d--,d<0&&(d=0,i=null));if(d>0&&i){const n=new RegExp(`\\[/${o}\\]`,"g"),l=t.slice(r),m=l.match(n);if(m){const f=r+l.indexOf(m[0]);return{name:o,blockStart:i.start,blockEnd:f+m[0].length,openTagEnd:i.end,attrs:y(i.attrStr)}}}}return null}const P=["card","hero","banner","col","button"];function F(e){const t=e.value,r=e.selectionStart;for(const o of P){const a=new RegExp(`\\[${o}([^\\]]*)\\]`,"g"),c=new RegExp(`\\[/${o}\\]`,"g"),s=[];for(const n of t.matchAll(a)){if(n.index>=r)break;s.push({type:"open",start:n.index,end:n.index+n[0].length,attrStr:n[1]})}for(const n of t.matchAll(c)){if(n.index>=r)break;s.push({type:"close",start:n.index,end:n.index+n[0].length})}s.sort((n,l)=>n.start-l.start);let d=0,i=null;for(const n of s)n.type==="open"?(d++,i=n):(d--,d<0&&(d=0,i=null));if(d>0&&i){const n=new RegExp(`\\[/${o}\\]`,"g"),l=t.slice(r),m=l.match(n);if(m){const f=r+l.indexOf(m[0]);return{name:o,openTagStart:i.start,openTagEnd:i.end,closeTagStart:f,closeTagEnd:f+m[0].length,attrs:y(i.attrStr)}}}}return null}function C(e,t){const r=[];for(const o of t.attrs){const a=e.fieldValues[o.name];a===void 0||a===""||a===null||a!==o.default&&(o.type==="checkbox"?r.push(`${o.name}="${a?"true":"false"}"`):r.push(`${o.name}="${String(a).replace(/"/g,""")}"`))}return r.join(" ")}function k(e){const t=u(e.activeEffect),r=C(e,t),o=r?" ":"";if(e.scope==="inject"&&e.host){const a=e.host.attrs,c=t.name,s=[];for(const d of Object.keys(a)){if(d===c||d.startsWith(c+"-"))continue;const i=a[d];s.push(i===""?d:`${d}="${String(i).replace(/"/g,""")}"`)}s.push(c);for(const d of t.attrs){const i=e.fieldValues[d.name];if(i===void 0||i===""||i===null||i===d.default)continue;const n=d.type==="checkbox"?i?"true":"false":String(i).replace(/"/g,""");s.push(`${c}-${d.name}="${n}"`)}return`[${e.host.name} ${s.join(" ")}]\u2026[/${e.host.name}]`}return t.selfClosing?`[${t.name}${o}${r} /]`:`[${t.name}${o}${r}]
|
|
2
2
|
Content
|
|
3
|
-
[/${t.name}]`}function
|
|
3
|
+
[/${t.name}]`}function T(e,t){e.replaceChildren();const r=document.createElement("div");r.style.cssText="color:var(--dm-text-muted,#888);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;",r.textContent="Shortcode (live)",e.appendChild(r);const o=document.createElement("pre");o.style.cssText="background:var(--dm-code-bg,#000);border:1px solid var(--dm-border,#333);padding:.5rem .65rem;border-radius:3px;font-family:var(--dm-font-mono,monospace);font-size:.75rem;color:var(--dm-code-text,#7c6af7);line-height:1.5;white-space:pre-wrap;word-break:break-all;margin:0;",o.textContent=k(t),e.appendChild(o)}function D(e,t,r){if(e.replaceChildren(),t.editing)return;const o=u(t.activeEffect),a=t.host&&o.hosts.includes(t.host.name),c=document.createElement("div");c.style.cssText="background:var(--dm-background-alt,#15152a);border:1px solid var(--dm-border,#2a2a40);border-radius:4px;padding:.5rem .6rem;";const s=document.createElement("div");if(s.style.cssText="color:var(--dm-text-muted,#888);text-transform:uppercase;font-size:.65rem;letter-spacing:.05em;margin-bottom:.3rem;",s.textContent="Apply as",c.appendChild(s),!a){const n=document.createElement("div");n.style.cssText="color:var(--dm-text-muted,#888);font-size:.75rem;font-style:italic;",t.host?n.textContent=`Inserted as a standalone block (${o.label} cannot be injected into [${t.host.name}]).`:n.textContent="Inserted as a standalone block.",c.appendChild(n),e.appendChild(c),t.scope="standalone";return}const d=document.createElement("div");d.style.cssText="display:flex;gap:.3rem;";function i(n,l){const m=document.createElement("button");return m.type="button",m.style.cssText="flex:1;padding:.35rem;border:1px solid var(--dm-border,#333);border-radius:3px;font-size:.75rem;font-weight:600;cursor:pointer;",t.scope===n?(m.style.background="var(--dm-primary,#4338ca)",m.style.color="var(--dm-primary-text,#fff)",m.style.borderColor="var(--dm-primary,#4338ca)"):(m.style.background="transparent",m.style.color="var(--dm-text-muted,#bbb)"),m.textContent=l,m.addEventListener("click",()=>{t.scope=n,r()}),m}d.appendChild(i("standalone","Standalone block")),d.appendChild(i("inject",`Inject into [${t.host.name}]`)),c.appendChild(d),e.appendChild(c)}let h=0;function $(e){return e.replace(/-([a-z])/g,(t,r)=>r.toUpperCase())}function w(e,t){e.replaceChildren();const r=u(t.activeEffect),o=document.createElement("div");o.style.cssText="display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem;";const a=document.createElement("div");if(a.style.cssText="color:var(--dm-text-muted,#888);text-transform:uppercase;font-size:.65rem;letter-spacing:.05em;",a.textContent="Live preview",o.appendChild(a),!r.previewable){const i=document.createElement("div");i.style.cssText="background:var(--dm-background-alt,#15152a);border:1px solid var(--dm-border,#2a2a40);border-radius:4px;padding:.6rem;color:var(--dm-text-muted,#888);font-size:.8rem;font-style:italic;text-align:center;",i.textContent="Runs full-page on the published site \u2014 no inline preview.",e.appendChild(i);return}const c=document.createElement("button");c.type="button",c.style.cssText="background:transparent;border:1px solid var(--dm-border,#333);color:var(--dm-text-muted,#888);font-size:.65rem;padding:.15rem .4rem;border-radius:2px;cursor:pointer;",L(c,"refresh-cw","Replay",12),o.appendChild(c),e.appendChild(o);const s=document.createElement("div");s.style.cssText="background:var(--dm-background-alt,#1a1a2e);border:1px solid var(--dm-border,#2a2a40);border-radius:4px;padding:1rem;text-align:center;min-height:80px;position:relative;overflow:hidden;",e.appendChild(s);function d(){h++;const i=h;s.replaceChildren();const n=document.createElement("div");n.style.cssText="background:linear-gradient(135deg,#6366f1,#a855f7);color:#fff;padding:.6rem;border-radius:4px;font-size:.8rem;font-weight:600;",n.textContent="Sample content",s.appendChild(n);const l=window.Domma&&window.Domma.effects;if(!l)return;const m={};for(const f of r.attrs){const p=t.fieldValues[f.name];p===void 0||p===""||p===null||(m[$(f.name)]=p)}try{const f=l[$(r.name)];if(typeof f=="function"){if(i!==h)return;f(n,m)}}catch(f){console.warn("Effects preview failed:",f)}}c.addEventListener("click",d),d()}function H(e,t,r){const o=u(t.activeEffect);e.replaceChildren();const a=document.createElement("h3");a.style.cssText="margin:0;font-size:1rem;color:var(--dm-text,#eee);",a.textContent=o.label,e.appendChild(a);const c=document.createElement("p");c.style.cssText="margin:0;color:var(--dm-text-muted,#999);font-size:.8rem;line-height:1.4;",c.textContent=o.description,e.appendChild(c);const s=document.createElement("div");e.appendChild(s);const d=document.createElement("div");e.appendChild(d);const i=document.createElement("div");e.appendChild(i);const n=document.createElement("div");e.appendChild(n);function l(){D(s,t,l),N(d,t,()=>{T(i,t),w(n,t)}),T(i,t),w(n,t)}l();const m=document.createElement("div");m.style.cssText="display:flex;gap:.5rem;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--dm-border,#2a2a40);";const f=document.createElement("button");f.type="button",f.className="btn btn-ghost",f.textContent="Cancel",f.addEventListener("click",()=>r.close()),m.appendChild(f);const p=document.createElement("button");p.type="button",p.className="btn btn-primary",p.style.flex="2",p.textContent=t.editing?"Update":"Insert effect",p.addEventListener("click",()=>K(t,r)),m.appendChild(p),e.appendChild(m)}function K(e,t){const r=e.textarea,o=k(e);if(e.editing){const a=u(e.editing.name),c=r.value,s=`[/${a.name}]`.length,d=e.editing.openTagEnd,i=e.editing.blockEnd-s,n=c.substring(d,i),l=C(e,a),m=l?" ":"",f=a.selfClosing?`[${a.name}${m}${l} /]`:`[${a.name}${m}${l}]${n}[/${a.name}]`;x(r,e.editing.blockStart,e.editing.blockEnd,f);const p=a.selfClosing?e.editing.blockStart+f.length:e.editing.blockStart+f.indexOf("]")+1;r.setSelectionRange(p,p),t.close();return}if(e.scope==="inject"&&e.host){const a=u(e.activeEffect),c=e.host.attrs,s=a.name,d=[];for(const n of Object.keys(c)){if(n===s||n.startsWith(s+"-"))continue;const l=c[n];d.push(l===""?n:`${n}="${String(l).replace(/"/g,""")}"`)}d.push(s);for(const n of a.attrs){const l=e.fieldValues[n.name];if(l===void 0||l===""||l===null||l===n.default)continue;const m=n.type==="checkbox"?l?"true":"false":String(l).replace(/"/g,""");d.push(`${s}-${n.name}="${m}"`)}const i=`[${e.host.name} ${d.join(" ")}]`;x(r,e.host.openTagStart,e.host.openTagEnd,i),t.close();return}R(r,o),t.close()}
|