forked from EduCraft/curriculum-project-hub
0fd21e51f7
- 新 GridLibraryView:双击下钻文件夹/项目,面包屑+返回跳级,项目内文件同网格, 双击进 FileEditor 预览;工具条按上下文出新建文件夹/项目/文件 - 右键菜单(ContextMenu):打开/新建子文件夹/重命名/授权管理/详情/删除, 按节点 role 动态显隐;文件菜单:打开预览/下载/删除;空白处右键出新建+刷新 - GridCard 大图标卡片(琥珀文件夹/立方体项目/文档文件);授权与详情复用 GrantsPanel/OverviewPanel(Modal 加 maxW prop);Icon 补 5 个图标 - 管理后台 /database 保留树状 LibraryView 不动;后端零改动
17 lines
650 B
Svelte
17 lines
650 B
Svelte
<script lang="ts">
|
|
import type { Snippet } from "svelte";
|
|
|
|
let { title, onclose, children, maxW = 440 }: { title: string; onclose: () => void; children: Snippet; maxW?: number } = $props();
|
|
</script>
|
|
|
|
<div
|
|
class="fixed inset-0 z-40 flex items-center justify-center bg-black/30 p-4"
|
|
role="presentation"
|
|
onclick={(e) => { if (e.target === e.currentTarget) onclose(); }}
|
|
>
|
|
<div class="max-h-[88vh] w-full overflow-y-auto rounded-2xl border border-line-soft bg-panel p-6 shadow-[0_4px_20px_rgba(26,26,24,.07)]" style="max-width:{maxW}px">
|
|
<div class="mb-4 text-[15px] font-semibold">{title}</div>
|
|
{@render children()}
|
|
</div>
|
|
</div>
|