yggdrasil/components/mod.rs
1//! 组件模块 —— 按「可复用层级」组织,从通用到特定。
2//!
3//! 【导航】写 `view!` 前先查这里,避免手搓重复的 Tailwind class:
4//! - 要 class 常量或通用原子(按钮 / 输入 / 徽章 / 空状态)? → **原子层**
5//! - 要页面外壳或全局导航? → **布局层**
6//! - 要特定页面域(文章 / 评论 / 代码运行)的组件? → **feature 层**
7//! - 数据加载占位? → **骨架屏层**
8//!
9//! 层级越靠上越通用、对 app 其余部分依赖越少;feature 层组件绑定各自的
10//! `models` / `routes` / `api`,不应跨页面域复用。同一类样式或结构只允许
11//! 存在一个实现 —— 新增前先在本模块对应层查找,缺功能就扩展现有组件,
12//! 不要在旁边另起一套(散落的内联 class 是被禁止的反模式)。
13
14// ========= 原子层 (atoms) — 跨页面复用,无 app 领域依赖 =========
15// class 常量与最基础的展示 / 输入原子。写新页面前先扫这一层。
16
17/// 空状态组件(无数据时的插画配图 + 文案)。
18pub mod empty_state;
19/// 增强脚本/灯箱资源的按需注入(leptos_meta 的 Script/Stylesheet;`Script` 不按 src 去重,脚本必须是幂等 IIFE)。
20/// `pub(crate)`:head 注入管线无可视预览,不进图鉴目录。
21pub(crate) mod enhance_assets;
22/// 表单控件(FormInput / FormSelect / AlertBox / …)与 INPUT class 常量。
23pub mod forms;
24/// 吉祥物像素贴图(装饰图,表情与文件一一对应)。
25pub mod mascot;
26/// 通用 UI 原子与全部 class 常量(卡片 / 按钮 / 徽章 / 分页 / spinner / checkbox)。
27/// 任何 inline Tailwind class 字符串上线前,先在此查是否已有常量。
28pub mod ui;
29
30// ========= 骨架屏层 (skeletons) — 纯展示占位 =========
31// 内部仅依赖原子层的 SkeletonBox + ADMIN class;不含业务逻辑。
32
33/// 各页面数据加载期间的占位组件集合,以及通用骨架原子。
34pub mod skeletons;
35
36// ========= 布局层 (layouts) — 页面外壳与全局导航 =========
37
38/// 后台布局组件(侧栏 + 内容区 + admin 路由骨架屏切换)。
39pub mod admin_layout;
40/// 后台命令面板(⌘K)。
41pub mod admin_palette;
42/// 页脚与回到顶部按钮组件。
43pub mod footer;
44/// 前台布局组件(header + footer + 路由骨架屏切换)。
45pub mod frontend_layout;
46/// 顶部导航栏组件。
47pub mod header;
48/// 导航项生成组件。
49pub mod nav;
50/// ⌘K 面板公共部分:打开句柄、全局快捷键、文本匹配与面板外壳(前台搜索与后台命令面板共用)。
51pub mod palette;
52/// 搜索面板(⌘K)
53pub mod search_palette;
54/// 分享元信息(description / Open Graph / Twitter 卡片)。
55pub mod share_meta;
56
57// ========= feature 层 — 绑定特定领域 (models / Route / api) =========
58// 按页面域划分;跨域复用前先考虑原子层。
59
60/// 素材选择与上传 modal 组件。仅后台写作/素材/资料页与图鉴预览使用。
61pub mod assets;
62/// 代码运行器组件(可运行代码块 UI)。
63pub mod code_runner;
64/// 评论组件(列表 / 表单 / 待审核项)。
65pub mod comments;
66/// 文章详情页组件(标题 / 正文 / 目录 / 面包屑 / 相邻导航)。
67pub mod post;
68/// SQL 查询结果表格组件(后台 SQL 控制台专用)。
69pub mod sql_result_table;