@haklex/rich-ext-gallery 0.0.82 → 0.0.84

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.
@@ -1,2 +1 @@
1
- :root{--rc-text:#000;--rc-text-secondary:#27272a;--rc-text-tertiary:#71717a;--rc-text-quaternary:#a1a1aa;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f4f4f5;--rc-fill:#e8e8ec;--rc-fill-secondary:#eeeeef;--rc-fill-tertiary:#f4f4f6;--rc-fill-quaternary:#f9f9fa;--rc-border:#f4f4f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#3f3f46;--rc-code-bg:#f4f4f5;--rc-hr-border:#e4e4e7;--rc-quote-border:#2563eb;--rc-quote-bg:#eff6ff;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-line-height:1.7;--rc-line-height-tight:1.4;--rc-font-family:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}:root.dark{--rc-text:#fafafa;--rc-text-secondary:#a1a1aa;--rc-text-tertiary:#71717a;--rc-text-quaternary:#52525b;--rc-bg:#09090b;--rc-bg-secondary:#18181b;--rc-bg-tertiary:#27272a;--rc-fill:#2a2a2f;--rc-fill-secondary:#222226;--rc-fill-tertiary:#1b1b1f;--rc-fill-quaternary:#131316;--rc-border:#27272a;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#e4e4e7;--rc-code-bg:#27272a;--rc-hr-border:#27272a;--rc-quote-border:#60a5fa;--rc-quote-bg:#1e3a5f;--rc-alert-info:#7db9e5;--rc-alert-warning:#da864a;--rc-alert-tip:#54da48;--rc-alert-caution:#e16973;--rc-alert-important:#9966e0;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-line-height:1.7;--rc-line-height-tight:1.4;--rc-font-family:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}.yectnr0{--rc-text:#000;--rc-text-secondary:#27272a;--rc-text-tertiary:#71717a;--rc-text-quaternary:#a1a1aa;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f4f4f5;--rc-fill:#e8e8ec;--rc-fill-secondary:#eeeeef;--rc-fill-tertiary:#f4f4f6;--rc-fill-quaternary:#f9f9fa;--rc-border:#f4f4f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#3f3f46;--rc-code-bg:#f4f4f5;--rc-hr-border:#e4e4e7;--rc-quote-border:#2563eb;--rc-quote-bg:#eff6ff;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-line-height:1.7;--rc-line-height-tight:1.4;--rc-font-family:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}.yectnr1{--rc-text:#000;--rc-text-secondary:#27272a;--rc-text-tertiary:#71717a;--rc-text-quaternary:#a1a1aa;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f4f4f5;--rc-fill:#e8e8ec;--rc-fill-secondary:#eeeeef;--rc-fill-tertiary:#f4f4f6;--rc-fill-quaternary:#f9f9fa;--rc-border:#f4f4f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#3f3f46;--rc-code-bg:#f4f4f5;--rc-hr-border:#e4e4e7;--rc-quote-border:#2563eb;--rc-quote-bg:#eff6ff;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-line-height:1.8;--rc-line-height-tight:1.4;--rc-font-family:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}.yectnr2{--rc-text:#000;--rc-text-secondary:#27272a;--rc-text-tertiary:#71717a;--rc-text-quaternary:#a1a1aa;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f4f4f5;--rc-fill:#e8e8ec;--rc-fill-secondary:#eeeeef;--rc-fill-tertiary:#f4f4f6;--rc-fill-quaternary:#f9f9fa;--rc-border:#f4f4f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#3f3f46;--rc-code-bg:#f4f4f5;--rc-hr-border:#e4e4e7;--rc-quote-border:#a1a1aa;--rc-quote-bg:#fafafa;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:none;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:2px;--rc-space-sm:4px;--rc-space-md:10px;--rc-space-lg:16px;--rc-space-xl:20px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:14px;--rc-font-size-small:12px;--rc-line-height:1.5;--rc-line-height-tight:1.3;--rc-font-family:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm:3px;--rc-radius-md:6px;--rc-radius-lg:12px}.dark .yectnr0,[data-theme=dark] .yectnr0,.dark.yectnr0,[data-theme=dark].yectnr0,.dark .yectnr1,[data-theme=dark] .yectnr1,.dark.yectnr1,[data-theme=dark].yectnr1,.dark .yectnr2,[data-theme=dark] .yectnr2,.dark.yectnr2,[data-theme=dark].yectnr2{--rc-text:#fafafa;--rc-text-secondary:#a1a1aa;--rc-text-tertiary:#71717a;--rc-text-quaternary:#52525b;--rc-bg:#09090b;--rc-bg-secondary:#18181b;--rc-bg-tertiary:#27272a;--rc-fill:#2a2a2f;--rc-fill-secondary:#222226;--rc-fill-tertiary:#1b1b1f;--rc-fill-quaternary:#131316;--rc-border:#27272a;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#e4e4e7;--rc-code-bg:#27272a;--rc-hr-border:#27272a;--rc-quote-border:#60a5fa;--rc-quote-bg:#1e3a5f;--rc-alert-info:#7db9e5;--rc-alert-warning:#da864a;--rc-alert-tip:#54da48;--rc-alert-caution:#e16973;--rc-alert-important:#9966e0;--rc-shadow-top-bar:0 8px 30px #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006}._10ydd1n0{width:100%;margin:16px 0;position:relative}._10ydd1n1{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}._10ydd1n2{column-count:3;column-gap:12px}._10ydd1n2 figure{break-inside:avoid;margin-bottom:12px}._10ydd1n3{position:relative}._10ydd1n4{white-space:nowrap;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;width:100%;overflow-x:auto}._10ydd1n4::-webkit-scrollbar{display:none}._10ydd1n5{cursor:pointer;margin:0;transition:transform .2s;display:inline-block}._10ydd1n5:hover{transform:scale(1.02)}._10ydd1n5 img{border-radius:4px;display:block}._10ydd1n6{border:1px solid var(--rc-border);background:var(--rc-bg-secondary);width:32px;height:32px;color:var(--rc-text-secondary);cursor:pointer;-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);z-index:10;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}._10ydd1n7{left:8px}._10ydd1n8{right:8px}._10ydd1n9{z-index:10;gap:8px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}._10ydd1na{background:var(--rc-text-secondary);opacity:.5;-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);cursor:pointer;border-radius:50%;width:6px;height:6px;transition:opacity .2s}._10ydd1na:hover,._10ydd1nb{opacity:1}._10ydd1nc{border:1px solid var(--rc-border);border-radius:.5rem;width:100%;min-height:120px;margin:16px 0;position:relative;overflow:hidden}._10ydd1nd{z-index:5;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .2s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}._10ydd1nd:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._10ydd1ne{background:var(--rc-bg);border:1px solid var(--rc-border);color:var(--rc-text);font-size:var(--rc-font-size-sm);opacity:0;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-weight:500;transition:opacity .2s;display:flex}._10ydd1nc:hover ._10ydd1ne{opacity:1}._10ydd1nf{color:var(--rc-text-secondary);font-size:var(--rc-font-size-md);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:120px;padding:2rem;display:flex}._10ydd1ng._10ydd1ng{border-radius:.5rem;flex-direction:column;gap:0;width:calc(100vw - 2rem);height:min(720px,85vh);padding:0;display:flex;overflow:hidden}._10ydd1ng._10ydd1ng[data-open],._10ydd1ng._10ydd1ng[data-closed]{animation:none}._10ydd1nh{border-bottom:1px solid var(--rc-border);flex-shrink:0;align-items:center;gap:10px;height:48px;padding:0 12px 0 16px;display:flex}._10ydd1ni{font-size:var(--rc-font-size-md);color:var(--rc-text);align-items:center;gap:.5rem;font-weight:600;line-height:1;display:flex}._10ydd1nj{align-items:center;gap:2px;margin-left:auto;display:flex}._10ydd1nk{width:32px;height:32px;color:var(--rc-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-left:8px;transition:background .15s,color .15s;display:flex}._10ydd1nk:hover{background:color-mix(in srgb, currentColor 8%, transparent);color:var(--rc-text)}._10ydd1nl{flex:1;min-height:0;padding:1rem;overflow-y:auto}._10ydd1nm{flex-direction:column;gap:.75rem;display:flex}._10ydd1nn{border:1px solid var(--rc-border);background:color-mix(in srgb, var(--rc-text) 2%, transparent);border-radius:.5rem;align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}._10ydd1no{width:24px;height:24px;color:var(--rc-text-secondary);cursor:grab;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-top:4px;transition:background .15s,color .15s;display:flex}._10ydd1no:hover{background:color-mix(in srgb, currentColor 8%, transparent);color:var(--rc-text)}._10ydd1no:active{cursor:grabbing}._10ydd1np{background-color:color-mix(in srgb, var(--rc-text) 5%, transparent);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex;overflow:hidden}._10ydd1np img{object-fit:cover;width:100%;height:100%}._10ydd1nq{color:color-mix(in srgb, var(--rc-text-secondary) 40%, transparent)}._10ydd1nr{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}._10ydd1ns{border:1px solid var(--rc-border);background:var(--rc-bg);width:100%;color:var(--rc-text);font-size:var(--rc-font-size-sm);border-radius:4px;outline:none;padding:4px 8px;transition:border-color .15s}._10ydd1ns:focus{border-color:color-mix(in srgb, var(--rc-text) 30%, transparent)}._10ydd1ns::placeholder{color:color-mix(in srgb, var(--rc-text-secondary) 50%, transparent)}._10ydd1nt{flex-direction:column;flex-shrink:0;gap:2px;display:flex}._10ydd1nu{width:28px;height:28px;color:var(--rc-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}._10ydd1nu:hover{background:color-mix(in srgb, var(--rc-alert-caution) 10%, transparent);color:var(--rc-alert-caution)}._10ydd1nv{border:1px dashed var(--rc-border);width:100%;color:var(--rc-text-secondary);font-size:var(--rc-font-size-sm);cursor:pointer;background:0 0;border-radius:.5rem;justify-content:center;align-items:center;gap:6px;padding:.625rem;transition:border-color .15s,color .15s,background .15s;display:flex}._10ydd1nv:hover{border-color:color-mix(in srgb, var(--rc-text) 20%, transparent);color:var(--rc-text);background:color-mix(in srgb, var(--rc-text) 2%, transparent)}._10ydd1nw{border-top:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-text) 1.5%, transparent);flex-shrink:0;justify-content:space-between;align-items:center;height:44px;padding:0 1rem;display:flex}._10ydd1nx{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary)}._10ydd1ny{align-items:center;gap:.5rem;display:flex}._10ydd1nz{font-size:var(--rc-font-size-xs);cursor:pointer;border-radius:.375rem;height:28px;padding:.25rem .75rem;font-weight:500;transition:background-color .15s,border-color .15s}._10ydd1n10{color:var(--rc-text-secondary);border:1px solid var(--rc-border);background-color:#0000}._10ydd1n10:hover{background-color:color-mix(in srgb, var(--rc-text) 4%, transparent)}._10ydd1n11{background-color:var(--rc-text);color:var(--rc-bg);border:1px solid #0000}._10ydd1n11:hover{background-color:color-mix(in srgb, var(--rc-text) 85%, transparent)}._10ydd1n12{color:var(--rc-text-secondary);font-size:var(--rc-font-size-md);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex}@media (max-width:768px){._10ydd1n2{column-count:2}}@media (max-width:480px){._10ydd1n1{grid-template-columns:1fr}._10ydd1n2{column-count:1}}@media (min-width:640px){._10ydd1ng._10ydd1ng{max-width:56rem}}
2
- /*$vite$:1*/
1
+ :root{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}:root.dark{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}.yectnr0{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}.yectnr1{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.8;--rc-line-height-tight: 1.4;--rc-font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}.yectnr2{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #a1a1aa;--rc-quote-bg: #fafafa;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: none;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 2px;--rc-space-sm: 4px;--rc-space-md: 10px;--rc-space-lg: 16px;--rc-space-xl: 20px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 14px;--rc-font-size-small: 12px;--rc-line-height: 1.5;--rc-line-height-tight: 1.3;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 3px;--rc-radius-md: 6px;--rc-radius-lg: 12px}.dark .yectnr0,[data-theme=dark] .yectnr0,.dark.yectnr0,[data-theme=dark].yectnr0,.dark .yectnr1,[data-theme=dark] .yectnr1,.dark.yectnr1,[data-theme=dark].yectnr1,.dark .yectnr2,[data-theme=dark] .yectnr2,.dark.yectnr2,[data-theme=dark].yectnr2{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4)}._10ydd1n0{position:relative;width:100%;margin:16px 0}._10ydd1n1{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}._10ydd1n2{column-count:3;column-gap:12px}._10ydd1n2 figure{break-inside:avoid;margin-bottom:12px}._10ydd1n3{position:relative}._10ydd1n4{width:100%;overflow-x:auto;white-space:nowrap;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}._10ydd1n4::-webkit-scrollbar{display:none}._10ydd1n5{display:inline-block;margin:0;cursor:pointer;transition:transform .2s ease}._10ydd1n5:hover{transform:scale(1.02)}._10ydd1n5 img{display:block;border-radius:4px}._10ydd1n6{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:1px solid var(--rc-border);background:var(--rc-bg-secondary);color:var(--rc-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(20px) saturate(180%);z-index:10}._10ydd1n7{left:8px}._10ydd1n8{right:8px}._10ydd1n9{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:10}._10ydd1na{width:6px;height:6px;border-radius:50%;background:var(--rc-text-secondary);opacity:.5;backdrop-filter:blur(20px) saturate(180%);cursor:pointer;transition:opacity .2s}._10ydd1na:hover,._10ydd1nb{opacity:1}._10ydd1nc{position:relative;width:100%;margin:16px 0;border-radius:.5rem;overflow:hidden;border:1px solid var(--rc-border);min-height:120px}._10ydd1nd{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;border:none;transition:background .2s}._10ydd1nd:hover{background:color-mix(in srgb,currentColor 6%,transparent)}._10ydd1ne{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;background:var(--rc-bg);border:1px solid var(--rc-border);color:var(--rc-text);font-size:var(--rc-font-size-sm);font-weight:500;opacity:0;transition:opacity .2s}._10ydd1nc:hover ._10ydd1ne{opacity:1}._10ydd1nf{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:.75rem;color:var(--rc-text-secondary);font-size:var(--rc-font-size-md);min-height:120px}._10ydd1ng._10ydd1ng{padding:0;gap:0;display:flex;flex-direction:column;overflow:hidden;width:calc(100vw - 2rem);height:min(720px,85vh);border-radius:.5rem}._10ydd1ng._10ydd1ng[data-open],._10ydd1ng._10ydd1ng[data-closed]{animation:none}._10ydd1nh{display:flex;align-items:center;height:48px;flex-shrink:0;padding:0 12px 0 16px;border-bottom:1px solid var(--rc-border);gap:10px}._10ydd1ni{display:flex;align-items:center;gap:.5rem;font-size:var(--rc-font-size-md);font-weight:600;color:var(--rc-text);line-height:1}._10ydd1nj{margin-left:auto;display:flex;align-items:center;gap:2px}._10ydd1nk{margin-left:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:none;background:transparent;color:var(--rc-text-secondary);cursor:pointer;transition:background .15s,color .15s}._10ydd1nk:hover{background:color-mix(in srgb,currentColor 8%,transparent);color:var(--rc-text)}._10ydd1nl{flex:1;min-height:0;overflow-y:auto;padding:1rem}._10ydd1nm{display:flex;flex-direction:column;gap:.75rem}._10ydd1nn{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border-radius:.5rem;border:1px solid var(--rc-border);background:color-mix(in srgb,var(--rc-text) 2%,transparent)}._10ydd1no{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:var(--rc-text-secondary);cursor:grab;margin-top:4px;border-radius:4px;transition:background .15s,color .15s}._10ydd1no:hover{background:color-mix(in srgb,currentColor 8%,transparent);color:var(--rc-text)}._10ydd1no:active{cursor:grabbing}._10ydd1np{width:64px;height:64px;border-radius:4px;overflow:hidden;flex-shrink:0;background-color:color-mix(in srgb,var(--rc-text) 5%,transparent);display:flex;align-items:center;justify-content:center}._10ydd1np img{width:100%;height:100%;object-fit:cover}._10ydd1nq{color:color-mix(in srgb,var(--rc-text-secondary) 40%,transparent)}._10ydd1nr{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}._10ydd1ns{width:100%;padding:4px 8px;border-radius:4px;border:1px solid var(--rc-border);background:var(--rc-bg);color:var(--rc-text);font-size:var(--rc-font-size-sm);outline:none;transition:border-color .15s}._10ydd1ns:focus{border-color:color-mix(in srgb,var(--rc-text) 30%,transparent)}._10ydd1ns::placeholder{color:color-mix(in srgb,var(--rc-text-secondary) 50%,transparent)}._10ydd1nt{display:flex;flex-direction:column;gap:2px;flex-shrink:0}._10ydd1nu{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;border:none;background:transparent;color:var(--rc-text-secondary);cursor:pointer;transition:background .15s,color .15s}._10ydd1nu:hover{background:color-mix(in srgb,var(--rc-alert-caution) 10%,transparent);color:var(--rc-alert-caution)}._10ydd1nv{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:.625rem;border-radius:.5rem;border:1px dashed var(--rc-border);background:transparent;color:var(--rc-text-secondary);font-size:var(--rc-font-size-sm);cursor:pointer;transition:border-color .15s,color .15s,background .15s}._10ydd1nv:hover{border-color:color-mix(in srgb,var(--rc-text) 20%,transparent);color:var(--rc-text);background:color-mix(in srgb,var(--rc-text) 2%,transparent)}._10ydd1nw{display:flex;align-items:center;justify-content:space-between;padding:0 1rem;height:44px;border-top:1px solid var(--rc-border);flex-shrink:0;background-color:color-mix(in srgb,var(--rc-text) 1.5%,transparent)}._10ydd1nx{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary)}._10ydd1ny{display:flex;align-items:center;gap:.5rem}._10ydd1nz{padding:.25rem .75rem;border-radius:.375rem;font-size:var(--rc-font-size-xs);font-weight:500;cursor:pointer;height:28px;transition:background-color .15s,border-color .15s}._10ydd1n10{background-color:transparent;color:var(--rc-text-secondary);border:1px solid var(--rc-border)}._10ydd1n10:hover{background-color:color-mix(in srgb,var(--rc-text) 4%,transparent)}._10ydd1n11{background-color:var(--rc-text);color:var(--rc-bg);border:1px solid transparent}._10ydd1n11:hover{background-color:color-mix(in srgb,var(--rc-text) 85%,transparent)}._10ydd1n12{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;color:var(--rc-text-secondary);font-size:var(--rc-font-size-md);padding:2rem}@media(max-width:768px){._10ydd1n2{column-count:2}}@media(max-width:480px){._10ydd1n1{grid-template-columns:1fr}._10ydd1n2{column-count:1}}@media(min-width:640px){._10ydd1ng._10ydd1ng{max-width:56rem}}
package/dist/static.mjs CHANGED
@@ -1,5 +1,11 @@
1
- import { a as GalleryRenderer, n as $isGalleryNode, o as GalleryRenderer_default, r as GalleryNode, t as $createGalleryNode } from "./GalleryNode-CXLSG7vE.js";
2
- //#region src/static.ts
3
- var galleryNodes = [GalleryNode];
4
- //#endregion
5
- export { $createGalleryNode, $isGalleryNode, GalleryNode, GalleryRenderer, GalleryRenderer_default as default, galleryNodes };
1
+ import { G as GalleryNode } from "./GalleryNode-CV8DRu_G.js";
2
+ import { $, B, a, C } from "./GalleryNode-CV8DRu_G.js";
3
+ const galleryNodes = [GalleryNode];
4
+ export {
5
+ $ as $createGalleryNode,
6
+ B as $isGalleryNode,
7
+ GalleryNode,
8
+ a as GalleryRenderer,
9
+ C as default,
10
+ galleryNodes
11
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-ext-gallery",
3
- "version": "0.0.82",
3
+ "version": "0.0.84",
4
4
  "description": "Image gallery extension with drag-and-drop",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,9 +30,9 @@
30
30
  "@dnd-kit/utilities": "^3.2.2",
31
31
  "react-intersection-observer": "^10.0.3",
32
32
  "react-photo-view": "^1.2.7",
33
- "@haklex/rich-editor": "0.0.82",
34
- "@haklex/rich-style-token": "0.0.82",
35
- "@haklex/rich-editor-ui": "0.0.82"
33
+ "@haklex/rich-editor": "0.0.84",
34
+ "@haklex/rich-editor-ui": "0.0.84",
35
+ "@haklex/rich-style-token": "0.0.84"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/react": "^19.2.14",
@@ -1,313 +0,0 @@
1
- import { createRendererDecoration, decodeThumbHash } from "@haklex/rich-editor/renderers";
2
- import { DecoratorNode } from "lexical";
3
- import { ChevronLeft, ChevronRight } from "lucide-react";
4
- import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
5
- import "react-photo-view/dist/react-photo-view.css";
6
- import { useInView } from "react-intersection-observer";
7
- import { PhotoProvider, PhotoView } from "react-photo-view";
8
- import { jsx, jsxs } from "react/jsx-runtime";
9
- //#region src/styles.css.ts
10
- var gallery = "_10ydd1n0";
11
- var galleryGrid = "_10ydd1n1";
12
- var galleryMasonry = "_10ydd1n2";
13
- var galleryCarousel = "_10ydd1n3";
14
- var galleryContainer = "_10ydd1n4";
15
- var galleryItem = "_10ydd1n5";
16
- var galleryIndicators = "_10ydd1n9";
17
- var galleryIndicator = "_10ydd1na";
18
- var galleryEditContainer = "_10ydd1nc";
19
- var galleryEditOverlay = "_10ydd1nd";
20
- var galleryEditLabel = "_10ydd1ne";
21
- var galleryEmptyState = "_10ydd1nf";
22
- var galleryDialogPopup = "_10ydd1ng";
23
- var galleryDialogHeader = "_10ydd1nh";
24
- var galleryDialogTitle = "_10ydd1ni";
25
- var galleryHeaderActions = "_10ydd1nj";
26
- var galleryHeaderClose = "_10ydd1nk";
27
- var galleryDialogBody = "_10ydd1nl";
28
- var galleryImageList = "_10ydd1nm";
29
- var galleryImageCard = "_10ydd1nn";
30
- var galleryImageDragHandle = "_10ydd1no";
31
- var galleryImageThumb = "_10ydd1np";
32
- var galleryImageThumbPlaceholder = "_10ydd1nq";
33
- var galleryImageFields = "_10ydd1nr";
34
- var galleryImageInput = "_10ydd1ns";
35
- var galleryImageActions = "_10ydd1nt";
36
- var galleryImageDeleteBtn = "_10ydd1nu";
37
- var galleryAddBtn = "_10ydd1nv";
38
- var galleryDialogFooter = "_10ydd1nw";
39
- var galleryFooterInfo = "_10ydd1nx";
40
- var galleryFooterActions = "_10ydd1ny";
41
- var galleryFooterBtnCancel = "_10ydd1n10 _10ydd1nz";
42
- var galleryFooterBtnSave = "_10ydd1n11 _10ydd1nz";
43
- var galleryDialogEmpty = "_10ydd1n12";
44
- //#endregion
45
- //#region src/GalleryRenderer.tsx
46
- var IMAGE_CONTAINER_MARGIN_INSET = 60;
47
- var CHILD_GAP = 15;
48
- var AUTOPLAY_DURATION = 5e3;
49
- function throttle(func, wait) {
50
- let timeout = null;
51
- return ((...args) => {
52
- if (!timeout) timeout = setTimeout(() => {
53
- func(...args);
54
- timeout = null;
55
- }, wait);
56
- });
57
- }
58
- function clsx(...classes) {
59
- return classes.filter(Boolean).join(" ");
60
- }
61
- function useThumbhashStyle(image) {
62
- return useMemo(() => {
63
- if (!image.thumbhash) return;
64
- const url = decodeThumbHash(image.thumbhash);
65
- if (!url) return;
66
- return {
67
- backgroundImage: `url(${url})`,
68
- backgroundSize: "cover"
69
- };
70
- }, [image.thumbhash]);
71
- }
72
- var GalleryRenderer = ({ images, layout }) => {
73
- const [containerRef, setContainerRef] = useState(null);
74
- const [, setUpdated] = useState({});
75
- const memoedChildContainerWidthRef = useRef(0);
76
- useEffect(() => {
77
- if (!containerRef) return;
78
- const ob = new ResizeObserver(() => {
79
- setUpdated({});
80
- calChild(containerRef);
81
- });
82
- function calChild(containerRef) {
83
- const $child = containerRef.children.item(0);
84
- if ($child) memoedChildContainerWidthRef.current = $child.clientWidth;
85
- }
86
- calChild(containerRef);
87
- ob.observe(containerRef);
88
- return () => {
89
- ob.disconnect();
90
- };
91
- }, [containerRef]);
92
- const [currentIndex, setCurrentIndex] = useState(0);
93
- const handleOnScroll = useCallback(throttle((e) => {
94
- const $ = e.target;
95
- setCurrentIndex(Math.floor(($.scrollLeft + IMAGE_CONTAINER_MARGIN_INSET + 15) / memoedChildContainerWidthRef.current));
96
- }, 60), []);
97
- const handleScrollTo = useCallback((i) => {
98
- if (!containerRef) return;
99
- containerRef.scrollTo({
100
- left: memoedChildContainerWidthRef.current * i,
101
- behavior: "smooth"
102
- });
103
- }, [containerRef]);
104
- const autoplayTimerRef = useRef(null);
105
- const isForward = useRef(true);
106
- const autoplayRef = useRef(true);
107
- const handleCancelAutoplay = useCallback(() => {
108
- if (!autoplayRef.current) return;
109
- autoplayRef.current = false;
110
- if (autoplayTimerRef.current) clearInterval(autoplayTimerRef.current);
111
- }, []);
112
- const { ref } = useInView({
113
- initialInView: false,
114
- triggerOnce: images.length < 2,
115
- onChange(inView) {
116
- if (images.length < 2 || !autoplayRef.current) return;
117
- if (inView) autoplayTimerRef.current = setInterval(() => {
118
- setCurrentIndex((prev) => {
119
- if (prev + 1 > images.length - 1 && isForward.current) isForward.current = false;
120
- if (prev - 1 < 0 && !isForward.current) isForward.current = true;
121
- const index = prev + (isForward.current ? 1 : -1);
122
- handleScrollTo(index);
123
- return index;
124
- });
125
- }, AUTOPLAY_DURATION);
126
- else if (autoplayTimerRef.current) clearInterval(autoplayTimerRef.current);
127
- }
128
- });
129
- useEffect(() => () => {
130
- if (autoplayTimerRef.current) clearInterval(autoplayTimerRef.current);
131
- }, []);
132
- if (images.length === 0) return null;
133
- const layoutClass = layout === "masonry" ? galleryMasonry : layout === "carousel" ? galleryCarousel : galleryGrid;
134
- if (images.length === 1 || layout === "grid" || layout === "masonry") return /* @__PURE__ */ jsx(PhotoProvider, { children: /* @__PURE__ */ jsx("div", {
135
- className: clsx(gallery, layoutClass),
136
- children: images.map((image, index) => /* @__PURE__ */ jsx(GalleryFigure, { image }, index))
137
- }) });
138
- return /* @__PURE__ */ jsx(PhotoProvider, { children: /* @__PURE__ */ jsxs("div", {
139
- className: clsx(gallery, galleryCarousel),
140
- ref,
141
- onTouchMove: handleCancelAutoplay,
142
- onWheel: handleCancelAutoplay,
143
- children: [
144
- /* @__PURE__ */ jsx("div", {
145
- className: galleryContainer,
146
- ref: setContainerRef,
147
- onScroll: handleOnScroll,
148
- onTouchStart: handleCancelAutoplay,
149
- children: images.map((image, index) => /* @__PURE__ */ jsx(GalleryFigure, {
150
- image,
151
- style: {
152
- width: `calc(100% - ${IMAGE_CONTAINER_MARGIN_INSET}px)`,
153
- marginRight: `${CHILD_GAP}px`
154
- }
155
- }, index))
156
- }),
157
- currentIndex > 0 && /* @__PURE__ */ jsx("button", {
158
- className: clsx("_10ydd1n6", "_10ydd1n7"),
159
- onClick: () => handleScrollTo(currentIndex - 1),
160
- children: /* @__PURE__ */ jsx(ChevronLeft, { size: 18 })
161
- }),
162
- currentIndex < images.length - 1 && /* @__PURE__ */ jsx("button", {
163
- className: clsx("_10ydd1n6", "_10ydd1n8"),
164
- onClick: () => handleScrollTo(currentIndex + 1),
165
- children: /* @__PURE__ */ jsx(ChevronRight, { size: 18 })
166
- }),
167
- /* @__PURE__ */ jsx("div", {
168
- className: galleryIndicators,
169
- children: images.map((_, i) => /* @__PURE__ */ jsx("div", {
170
- className: clsx(galleryIndicator, currentIndex === i && "_10ydd1nb"),
171
- onClick: () => handleScrollTo(i)
172
- }, i))
173
- })
174
- ]
175
- }) });
176
- };
177
- var GalleryFigure = memo(({ image, style }) => {
178
- const thumbStyle = useThumbhashStyle(image);
179
- return /* @__PURE__ */ jsx(PhotoView, {
180
- src: image.src,
181
- children: /* @__PURE__ */ jsx("figure", {
182
- className: galleryItem,
183
- style: {
184
- ...thumbStyle,
185
- ...style
186
- },
187
- children: /* @__PURE__ */ jsx("img", {
188
- alt: image.alt || "",
189
- height: image.height,
190
- loading: "lazy",
191
- src: image.src,
192
- style: {
193
- maxWidth: "100%",
194
- height: "auto"
195
- },
196
- width: image.width
197
- })
198
- })
199
- });
200
- });
201
- var GalleryRenderer_default = memo(GalleryRenderer);
202
- //#endregion
203
- //#region \0@oxc-project+runtime@0.115.0/helpers/typeof.js
204
- function _typeof(o) {
205
- "@babel/helpers - typeof";
206
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
207
- return typeof o;
208
- } : function(o) {
209
- return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
210
- }, _typeof(o);
211
- }
212
- //#endregion
213
- //#region \0@oxc-project+runtime@0.115.0/helpers/toPrimitive.js
214
- function toPrimitive(t, r) {
215
- if ("object" != _typeof(t) || !t) return t;
216
- var e = t[Symbol.toPrimitive];
217
- if (void 0 !== e) {
218
- var i = e.call(t, r || "default");
219
- if ("object" != _typeof(i)) return i;
220
- throw new TypeError("@@toPrimitive must return a primitive value.");
221
- }
222
- return ("string" === r ? String : Number)(t);
223
- }
224
- //#endregion
225
- //#region \0@oxc-project+runtime@0.115.0/helpers/toPropertyKey.js
226
- function toPropertyKey(t) {
227
- var i = toPrimitive(t, "string");
228
- return "symbol" == _typeof(i) ? i : i + "";
229
- }
230
- //#endregion
231
- //#region \0@oxc-project+runtime@0.115.0/helpers/defineProperty.js
232
- function _defineProperty(e, r, t) {
233
- return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
234
- value: t,
235
- enumerable: !0,
236
- configurable: !0,
237
- writable: !0
238
- }) : e[r] = t, e;
239
- }
240
- //#endregion
241
- //#region src/GalleryNode.ts
242
- var GalleryNode = class GalleryNode extends DecoratorNode {
243
- static getType() {
244
- return "gallery";
245
- }
246
- static clone(node) {
247
- return new GalleryNode({
248
- images: node.__images.map((img) => ({ ...img })),
249
- layout: node.__layout
250
- }, node.__key);
251
- }
252
- constructor(payload, key) {
253
- super(key);
254
- _defineProperty(this, "__images", void 0);
255
- _defineProperty(this, "__layout", void 0);
256
- this.__images = payload.images;
257
- this.__layout = payload.layout || "grid";
258
- }
259
- createDOM(_config) {
260
- const div = document.createElement("div");
261
- div.className = `rich-gallery rich-gallery-${this.__layout}`;
262
- return div;
263
- }
264
- updateDOM() {
265
- return false;
266
- }
267
- isInline() {
268
- return false;
269
- }
270
- static importJSON(serializedNode) {
271
- return $createGalleryNode({
272
- images: serializedNode.images,
273
- layout: serializedNode.layout
274
- });
275
- }
276
- exportJSON() {
277
- return {
278
- ...super.exportJSON(),
279
- type: "gallery",
280
- images: this.__images,
281
- layout: this.__layout,
282
- version: 1
283
- };
284
- }
285
- getImages() {
286
- return this.getLatest().__images;
287
- }
288
- setImages(images) {
289
- const writable = this.getWritable();
290
- writable.__images = images;
291
- }
292
- getLayout() {
293
- return this.getLatest().__layout;
294
- }
295
- setLayout(layout) {
296
- const writable = this.getWritable();
297
- writable.__layout = layout;
298
- }
299
- decorate(_editor, _config) {
300
- return createRendererDecoration("Gallery", GalleryRenderer, {
301
- images: this.__images,
302
- layout: this.__layout
303
- });
304
- }
305
- };
306
- function $createGalleryNode(payload) {
307
- return new GalleryNode(payload);
308
- }
309
- function $isGalleryNode(node) {
310
- return node instanceof GalleryNode;
311
- }
312
- //#endregion
313
- export { galleryImageList as A, galleryHeaderClose as C, galleryImageDragHandle as D, galleryImageDeleteBtn as E, galleryImageThumbPlaceholder as M, galleryImageFields as O, galleryHeaderActions as S, galleryImageCard as T, galleryEmptyState as _, GalleryRenderer as a, galleryFooterBtnSave as b, galleryDialogBody as c, galleryDialogHeader as d, galleryDialogPopup as f, galleryEditOverlay as g, galleryEditLabel as h, _defineProperty as i, galleryImageThumb as j, galleryImageInput as k, galleryDialogEmpty as l, galleryEditContainer as m, $isGalleryNode as n, GalleryRenderer_default as o, galleryDialogTitle as p, GalleryNode as r, galleryAddBtn as s, $createGalleryNode as t, galleryDialogFooter as u, galleryFooterActions as v, galleryImageActions as w, galleryFooterInfo as x, galleryFooterBtnCancel as y };