Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c0ad7331d4 | ||
|
|
6c612911b3 | ||
|
|
82ce0f3154 | ||
|
|
ea641433f7 | ||
|
|
cfd9b55a28 | ||
|
|
c1b08ad915 | ||
|
|
125d0592c9 | ||
|
|
a127d5a314 | ||
|
|
a08782a959 | ||
|
|
28b1f90b26 | ||
|
|
d3ba189a7d | ||
|
|
9f677a9f0d | ||
|
|
c1950e142a | ||
|
|
032b5601ac | ||
|
|
d01664197f | ||
|
|
bcc221c3bd | ||
|
|
430d107d44 |
No files matched your search
+12
-2
@@ -1,18 +1,24 @@
|
||||
# build output
|
||||
dist/
|
||||
templates/
|
||||
|
||||
# generated types
|
||||
.astro/
|
||||
|
||||
# dependencies
|
||||
node_modules/
|
||||
|
||||
# docs site
|
||||
docs/.vitepress/cache/
|
||||
docs/.vitepress/dist/
|
||||
docs/node_modules/
|
||||
|
||||
# logs
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
|
||||
# environment variables
|
||||
.env
|
||||
.env.production
|
||||
@@ -23,4 +29,8 @@ pnpm-debug.log*
|
||||
# jetbrains setting folder
|
||||
.idea/
|
||||
|
||||
templates/
|
||||
# AI working artifacts
|
||||
llms.txt
|
||||
.tmp-*
|
||||
|
||||
.workbuddy/
|
||||
@@ -4,13 +4,19 @@
|
||||
|
||||
> 本项目由 AI 开发完成,人工仅进行部分功能测试及问题找寻
|
||||
|
||||
## 环境要求
|
||||
|
||||
- Halo **2.27.0 及以上**(页面布局契约、微信读书页面均依赖 2.27 的新能力)
|
||||
- v1.2.0 起内置主题配色系统(纯 CSS 变量实现);更低版本的 Halo 请使用主题 v1.1.x
|
||||
|
||||
## 特点
|
||||
|
||||
1. **响应式设计** — 适配桌面端与移动端,支持暗色模式
|
||||
2. **插件兼容性** — 适配 8 款常用 Halo 插件,安装即用
|
||||
3. **内置灯箱** — 主题内置 LightGallery 灯箱,支持 EXIF 信息展示;安装 lightgallery.js 插件后自动禁用内置灯箱
|
||||
4. **可配置性** — 丰富的后台设置项,支持自定义首页模块、文章卡片、导航栏样式等
|
||||
5. **性能优化** — 图片懒加载、CSS/HTML 压缩、requestAnimationFrame 节流、Vue 组件按需加载
|
||||
1. **响应式设计** — 适配桌面端与移动端,支持暗色模式,移动端使用动态视口单位适配地址栏
|
||||
2. **插件兼容性** — 适配 11 款常用 Halo 插件,安装即用;提供页面布局契约,插件前台页面自动复用主题外观
|
||||
3. **内置灯箱** — 主题内置 LightGallery 灯箱,支持 EXIF 信息展示;安装 lightgallery.js 插件后自动禁用
|
||||
4. **可配置性** — 17 个设置分组、122 个配置项,几乎所有模块可独立开关
|
||||
5. **性能优化** — 服务端字数统计(API 扩展包)、图片懒加载与响应式缩略图、首屏整屏吸附(仅首屏边界接管,内容区保留原生滚动)、Hero 离屏停绘、CSS/HTML 压缩;详见[开发指南 - 性能与滚动顺滑](docs/customize/development.md)
|
||||
6. **页面布局契约** — 提供 `templates/layout.html`,插件页面不再回退到 Halo 内置布局
|
||||
|
||||
## 预览
|
||||
|
||||
@@ -20,15 +26,53 @@
|
||||
|
||||
| 插件名称 | 插件标识 | 适配页面路由 | 说明 |
|
||||
|----------|---------|-------------|------|
|
||||
| [瞬间](https://halo.run/store/apps/app-SnwWD) | `PluginMoments` | `/moments` | 瞬间动态页面,支持点赞、评论、标签筛选 |
|
||||
| [瞬间](https://halo.run/store/apps/app-SnwWD) | `PluginMoments` | `/moments` | 瞬间动态页面,支持点赞、评论、标签筛选、顶部封面 |
|
||||
| [图库](https://halo.run/store/apps/app-BmQJW) | `PluginPhotos` | `/photos` | 图片展示页面,支持分组、灯箱预览 |
|
||||
| [友情链接](https://halo.run/store/apps/app-hqbe) | `PluginLinks` | `/links` | 友链展示页面,支持分组展示 |
|
||||
| [友情链接](https://halo.run/store/apps/app-hfbQg) | `PluginLinks` | `/links` | 友链展示页面,支持随机排列、随机传送门、评论区开关 |
|
||||
| [朋友圈](https://github.com/halo-sigs/plugin-friends) | `plugin-friends` | `/friends` | RSS 订阅朋友圈页面 |
|
||||
| [装备管理](https://github.com/chengzhongxue/plugin-equipment) | `equipment` | `/equipments` | 装备展示页面,按分组展示,支持封面图 |
|
||||
| [豆瓣](https://github.com/chengzhongxue/plugin-douban) | `plugin-douban` | `/douban` | 豆瓣记录页面,支持类型/状态/标签筛选,默认电影 |
|
||||
| [豆瓣](https://github.com/chengzhongxue/plugin-douban) | `plugin-douban` | `/douban` | 豆瓣记录页面,支持类型/状态/标签筛选,默认音乐;需插件 **v1.2.6+**(SQLite 数据结构) |
|
||||
| [Steam 信息展示](https://github.com/Tim0x0/halo-plugin-steam) | `PluginSteam` | `/steam` | Steam 游戏库页面,含用户资料、统计数据、最近游玩、游戏库分页 |
|
||||
| [微信读书](https://github.com/yeora26/halo-weread-plugin) | `halo-weread-plugin` | 自定义页面 | 书架展示页面,见下方「自定义页面模板」 |
|
||||
| [记得](https://github.com/yyliucha/plugin-important-dates) | `plugin-important-dates` | `/important-dates` | 重要日期 / 牵挂的人 / 爱车双视图页面,见下方「扩展页面」 |
|
||||
| [文章组件](https://github.com/acanyo/plugin-content-widgets) | `plugin-content-widgets` | 文章内 | 提示框、标签页、时间线等内容组件,主题已映射 `--xhhao-com-*` 变量,自动跟随明暗模式 |
|
||||
| [API 扩展包](https://github.com/HowieHz/halo-plugin-extra-api) | `extra-api` | 全站 | 服务端字数统计、中英文混排排版、可选服务端代码高亮 |
|
||||
|
||||
> **注意**:插件需要单独安装,安装后主题会自动适配对应页面。若未安装某插件,对应页面不会出现。
|
||||
> **注意**:插件需要单独安装,安装后主题会自动适配对应页面。若未安装某插件,对应页面或功能自动隐藏/降级,不会报错。
|
||||
|
||||
## 自定义页面模板
|
||||
|
||||
在 Halo 后台「页面 → 新建 → 自定义模板」中选择使用:
|
||||
|
||||
| 模板名 | 模板文件 | 说明 |
|
||||
|--------|---------|------|
|
||||
| 留言板 | `page_messageboard.html` | 留言墙页面,标题与副标题可配置 |
|
||||
| 订阅 | `page_subscriptions.html` | 博友文章订阅动态,依赖链接管理插件的 RSS 订阅,支持分页/下滑加载与列表/网格布局 |
|
||||
| 微信读书 | `weread.html` | 微信读书书架展示,依赖微信读书插件,访客免登录查看 |
|
||||
|
||||
## 主要功能
|
||||
|
||||
### 首页
|
||||
|
||||
- Hero 首屏:明暗双背景图、大标题/副标题独立配色、一言(支持自动刷新与淡入淡出过渡)、下滑箭头平滑滚动
|
||||
- 欢迎弹窗:基于访客 IP 地理定位的欢迎提示,支持 5 种位置、自定义 API 与会话去重开关
|
||||
- 滚动吸附:首屏与内容区之间滚轮/触摸自动吸附,进入内容区后恢复原生自由滚动
|
||||
- 文章卡片:可配置显示字数(依赖 API 扩展包)、阅读量、分类、标签、摘要行数
|
||||
|
||||
### 文章
|
||||
|
||||
- 目录(TOC):桌面端侧栏 + 移动端抽屉,滚动高亮、展开模式可选
|
||||
- 上下篇导航:悬停反馈与方向箭头动画
|
||||
- 相关推荐、分享按钮、赞赏、版权声明可独立开关
|
||||
- 字数与阅读时间:优先使用 API 扩展包的服务端统计,未安装时前端计算兜底
|
||||
|
||||
### 全局
|
||||
|
||||
- 点击特效:核心价值观 / 爱心 / 烟花 / 粒子等 9 种可选
|
||||
- 页脚全站统计:文章、分类、评论、访问、点赞、总字数,支持开关与统计项选择(默认开启)
|
||||
- 动效:呼吸动画、滚动渐入,可独立关闭
|
||||
- 备案信息:ICP 与公网安备号,公网安备自动带徽标
|
||||
- 鼠标光感跟随已移除(性能考量)
|
||||
|
||||
## 灯箱集成
|
||||
|
||||
@@ -53,36 +97,90 @@
|
||||
2. 进入 Halo 后台 → 主题管理 → 安装主题 → 上传 ZIP 包
|
||||
3. 安装完成后点击「启用」
|
||||
|
||||
> **升级后首页 404「资源不存在 / Template index was not found」**:说明上传的 ZIP 里没有 `templates/`
|
||||
> 模板文件(从源码仓库打包时漏了构建步骤)。请换用完整安装包重新上传,详见 [FAQ 安装相关](docs/faq.md)。
|
||||
>
|
||||
> **升级后如果整站没了样式**:Halo 页面缓存或前置反向代理里可能还留着上一版本的 HTML,
|
||||
> 它引用的 CSS 文件名带内容哈希,升级后已被删除,请求会直接 500。
|
||||
> 先在 Halo 后台执行一次「清理缓存」(并刷新 CDN / Nginx 缓存)即可。
|
||||
> 主题从 v1.2.1 起会把历史版本的哈希资源一并发进安装包,旧 HTML 也不会请求失败。
|
||||
>
|
||||
> **升级主题或修改配色后,部分页面不生效**:如果安装了「页面静态缓存」插件,
|
||||
> 它只随文章变更自动刷新,主题层的变更需要手动点一次「刷新页面缓存」,
|
||||
> 详见 [FAQ:升级主题或修改配色后部分页面不生效](docs/faq.md#升级主题或修改配色后部分页面的新样式配色不生效)。
|
||||
|
||||
或从源码构建:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/warm-island/theme-warm-island.git
|
||||
cd theme-warm-island
|
||||
npm install
|
||||
npm run build
|
||||
git clone https://git.nxxy335.top/nxxy335/halo-theme-WarmIsland.git
|
||||
cd halo-theme-WarmIsland
|
||||
pnpm install
|
||||
pnpm release # build → snapshot → package
|
||||
```
|
||||
|
||||
构建产物在 `templates/` 目录下,将其复制到 Halo 主题目录即可。
|
||||
`pnpm build` 只生成 `templates/`(模板 + 静态资源),不会产出 ZIP;
|
||||
安装包由 `pnpm package` 生成到 `dist/warm-island-<version>.zip`。
|
||||
|
||||
## 开发
|
||||
|
||||
```bash
|
||||
# 安装依赖
|
||||
npm install
|
||||
pnpm install
|
||||
|
||||
# 开发模式(监听文件变化)
|
||||
npm run dev
|
||||
# 开发模式(监听文件变化,自动构建到 templates/)
|
||||
pnpm dev
|
||||
|
||||
# 构建
|
||||
npm run build
|
||||
# 构建(输出到 templates/,并自动合并历史版本的静态资源)
|
||||
pnpm build
|
||||
|
||||
# 把本次构建的哈希资源快照进 compat/assets(发版前必做)
|
||||
pnpm snapshot
|
||||
|
||||
# 打包 dist/warm-island-<version>.zip
|
||||
pnpm package
|
||||
|
||||
# 点击特效脚本冒烟测试
|
||||
pnpm smoke
|
||||
```
|
||||
|
||||
发版流程:`pnpm release`(等价于 `pnpm build` → `pnpm snapshot` → `pnpm package`),
|
||||
并把 `compat/assets` 的新增文件一起提交。`pnpm package` 会校验模板、资源目录与版本号一致性,
|
||||
产物缺失时直接报错,避免打出不含 `templates/` 的空壳安装包。
|
||||
|
||||
### 目录结构
|
||||
|
||||
```
|
||||
├── src/
|
||||
│ ├── components/ # 组件(导航、页脚、Hero、弹窗、特效等)
|
||||
│ ├── layouts/ # Layout.astro(含页面布局契约渲染模式)
|
||||
│ ├── pages/ # 页面模板(构建后输出到 templates/)
|
||||
│ └── styles/ # SCSS 样式(正文样式在 _content.scss,全局生效)
|
||||
├── compat/
|
||||
│ └── assets/ # 历史版本哈希静态资源,构建时合并进 templates/assets
|
||||
├── scripts/ # 构建后置、资源快照、打包、冒烟测试
|
||||
├── templates/ # 构建产物,Halo 实际加载的模板
|
||||
├── settings.yaml # 后台设置项定义
|
||||
└── theme.yaml # 主题清单与自定义页面模板注册
|
||||
```
|
||||
|
||||
### 主题开发注意事项
|
||||
|
||||
- **静态资源文件名带内容哈希**:升级后旧文件被删除,被缓存的 HTML 仍会请求旧文件名并触发 500,
|
||||
所以每个版本的哈希文件都要留一份(见 `compat/assets` 与 `pnpm snapshot`)
|
||||
- **Thymeleaf 字符串字面量必须加单引号**:`th:text="'文本'"`,裸中文遇到逗号/空格/emoji 会导致页面 500
|
||||
- **`th:attr` 只用简单表达式**(取属性、Elvis 默认值、三元、拼接、等值比较),表达式对象方法调用会被受限求值器拒绝
|
||||
- **凡是与后台开关绑定的模板表达式都要给默认值**:`?: '默认值'`,配置未落库时属性会被整体移除,功能会静默失效
|
||||
- **正文样式必须写在全局样式表**(`src/styles/_content.scss`):Astro scoped 样式对 Thymeleaf 运行时注入的内容无效
|
||||
- **内联脚本统一加 `th:inline="none"`**:避免 Thymeleaf 解析脚本中的 `[[` / `[(` / `${}`
|
||||
- **新插入的动画元素要强制回流**(读一次 `offsetWidth`):否则初态与终态在同一帧被合并,transition 不触发
|
||||
- 修改主题外观无需单独维护 `layout.astro`:页面布局契约复用 `Layout.astro`,构建时自动生成
|
||||
|
||||
## 技术栈
|
||||
|
||||
- [Halo](https://halo.run) 2.24+
|
||||
- [Astro](https://astro.build) + [vite-plugin-halo-theme](https://github.com/halo-sigs/vite-plugin-halo-theme)
|
||||
- [Halo](https://halo.run) 2.27+
|
||||
- [Astro](https://astro.build) 6(构建输出 Thymeleaf 模板)
|
||||
- [Thymeleaf](https://www.thymeleaf.org) 模板引擎
|
||||
- [Vue 3](https://vuejs.org) Islands 交互组件
|
||||
- [Sass](https://sass-lang.com/) 样式
|
||||
|
||||
## 许可
|
||||
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
const http = require('http');
|
||||
|
||||
function apiCall(method, path, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const options = {
|
||||
hostname: 'localhost',
|
||||
port: 8090,
|
||||
path: path,
|
||||
method: method,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
}
|
||||
};
|
||||
|
||||
const req = http.request(options, (res) => {
|
||||
let body = '';
|
||||
res.on('data', chunk => body += chunk);
|
||||
res.on('end', () => {
|
||||
try {
|
||||
const cookies = res.headers['set-cookie'];
|
||||
resolve({ status: res.statusCode, data: JSON.parse(body), cookies });
|
||||
} catch(e) {
|
||||
resolve({ status: res.statusCode, data: body, cookies: res.headers['set-cookie'] });
|
||||
}
|
||||
});
|
||||
});
|
||||
req.on('error', reject);
|
||||
if (data) req.write(JSON.stringify(data));
|
||||
req.end();
|
||||
});
|
||||
}
|
||||
|
||||
async function main() {
|
||||
// Login first
|
||||
const loginRes = await apiCall('POST', '/api/auth/signin', { username: 'admin', password: 'admin' });
|
||||
console.log('Login status:', loginRes.status);
|
||||
|
||||
// Get the session cookie
|
||||
const cookies = loginRes.cookies || [];
|
||||
const cookieStr = cookies.map(c => c.split(';')[0]).join('; ');
|
||||
console.log('Cookies:', cookieStr);
|
||||
|
||||
// Now get theme settings using the cookie
|
||||
const http2 = require('http');
|
||||
function apiWithCookie(method, path, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const options = {
|
||||
hostname: 'localhost',
|
||||
port: 8090,
|
||||
path: path,
|
||||
method: method,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Cookie': cookieStr
|
||||
}
|
||||
};
|
||||
const req = http2.request(options, (res) => {
|
||||
let body = '';
|
||||
res.on('data', chunk => body += chunk);
|
||||
res.on('end', () => {
|
||||
try {
|
||||
resolve({ status: res.statusCode, data: JSON.parse(body) });
|
||||
} catch(e) {
|
||||
resolve({ status: res.statusCode, data: body });
|
||||
}
|
||||
});
|
||||
});
|
||||
req.on('error', reject);
|
||||
if (data) req.write(JSON.stringify(data));
|
||||
req.end();
|
||||
});
|
||||
}
|
||||
|
||||
// Get activated theme
|
||||
const themeRes = await apiWithCookie('GET', '/apis/api.console.halo.run/v1alpha1/themes?sort=creationTimestamp%2Cdesc');
|
||||
console.log('Themes status:', themeRes.status);
|
||||
|
||||
if (themeRes.data && themeRes.data.items) {
|
||||
const activeTheme = themeRes.data.items.find(t => t.spec && t.spec.activationTime);
|
||||
if (activeTheme) {
|
||||
console.log('Active theme:', activeTheme.metadata.name);
|
||||
|
||||
// Get theme settings
|
||||
const settingsRes = await apiWithCookie('GET', `/apis/api.console.halo.run/v1alpha1/themes/${activeTheme.metadata.name}/setting`);
|
||||
console.log('Settings status:', settingsRes.status);
|
||||
console.log('Settings:', JSON.stringify(settingsRes.data).substring(0, 500));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main().catch(console.error);
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";:root{--bg: #faf7f2;--bg-raised: #f3ede5;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #2c2420;--ink-2: #7a6e64;--ink-3: #b5a99e;--rule: #e8e0d6;--accent: #d4764e;--accent-hover: #c4613a;--accent-bg: #fdf0e8;--mist-pink: #f0e4de;--sea-salt: #e8e0d6;--caramel: #8b6f5e;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px color-mix(in srgb, var(--ink) 6%, transparent);--shadow-md: 0 4px 16px color-mix(in srgb, var(--ink) 8%, transparent);--shadow-lg: 0 8px 32px color-mix(in srgb, var(--ink) 12%, transparent);--shadow-glow: 0 0 40px color-mix(in srgb, var(--accent) 15%, transparent)}html.dark{--bg: #1e1c1a;--bg-raised: #292623;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #e9e4dd;--ink-2: #aaa096;--ink-3: #7c7268;--rule: #3b362f;--accent: #e89a64;--accent-hover: #f2ad79;--accent-bg: #2c231b;--mist-pink: #2e2823;--sea-salt: #302b26;--caramel: #a38b7b;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .24);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px rgba(232, 154, 100, .12)}html[data-palette=matcha]{--bg: #f6f8f1;--bg-raised: #ecf1e3;--ink: #26302a;--ink-2: #6d7a6e;--ink-3: #a8b3a4;--rule: #dde5d4;--accent: #6f9d52;--accent-hover: #5d8943;--accent-bg: #ecf3e2;--mist-pink: #e7eddc;--sea-salt: #dfe8d3;--caramel: #7d8a68}html[data-palette=matcha].dark{--bg: #1b1f1a;--bg-raised: #252b22;--ink: #e6e9e0;--ink-2: #a3ab9c;--ink-3: #767e70;--rule: #363d33;--accent: #9cc47f;--accent-hover: #aed493;--accent-bg: #242c1f;--mist-pink: #262d22;--sea-salt: #282f24;--caramel: #98a387}html[data-palette=indigo]{--bg: #f5f7fa;--bg-raised: #eaeff5;--ink: #232a33;--ink-2: #66707d;--ink-3: #a3adb8;--rule: #dce2ea;--accent: #4a6fa5;--accent-hover: #3d5d8c;--accent-bg: #e9eff8;--mist-pink: #e2e8f0;--sea-salt: #dbe4ee;--caramel: #707c8e}html[data-palette=indigo].dark{--bg: #191d23;--bg-raised: #222831;--ink: #e4e7ec;--ink-2: #9aa4b1;--ink-3: #6d7683;--rule: #323a45;--accent: #7fa3d1;--accent-hover: #93b4dc;--accent-bg: #1f2632;--mist-pink: #232830;--sea-salt: #252b34;--caramel: #8b95a6}html[data-palette=sakura]{--bg: #faf5f6;--bg-raised: #f3eaec;--ink: #322a2c;--ink-2: #7d6e72;--ink-3: #b4a6aa;--rule: #ecdfe2;--accent: #d97387;--accent-hover: #c85d72;--accent-bg: #fbeef1;--mist-pink: #f2e2e6;--sea-salt: #eddfe3;--caramel: #96757e}html[data-palette=sakura].dark{--bg: #201b1c;--bg-raised: #2a2425;--ink: #ece5e6;--ink-2: #b0a4a7;--ink-3: #7f7276;--rule: #3c3436;--accent: #e89aab;--accent-hover: #f0aec0;--accent-bg: #2d2225;--mist-pink: #2f2729;--sea-salt: #31282a;--caramel: #a88d94}html[data-palette=violet]{--bg: #f7f5fa;--bg-raised: #eeeaf5;--ink: #2b2733;--ink-2: #6f6a7c;--ink-3: #aaa5b6;--rule: #e2ddeb;--accent: #8a6fc0;--accent-hover: #7759ae;--accent-bg: #f0eaf9;--mist-pink: #e8e2f0;--sea-salt: #e3dcee;--caramel: #7f7590}html[data-palette=violet].dark{--bg: #1c1a21;--bg-raised: #26222f;--ink: #e8e5ee;--ink-2: #a49eaf;--ink-3: #746e80;--rule: #373241;--accent: #b49ae0;--accent-hover: #c3ace8;--accent-bg: #262033;--mist-pink: #292434;--sea-salt: #2b2536;--caramel: #948caa}html[data-palette=sea]{--bg: #f3f8f7;--bg-raised: #e8f0ee;--ink: #21302d;--ink-2: #647872;--ink-3: #9fb1ac;--rule: #d9e6e3;--accent: #3d9c8f;--accent-hover: #2f8578;--accent-bg: #e5f3f0;--mist-pink: #dee9e6;--sea-salt: #d6e5e1;--caramel: #6c8680}html[data-palette=sea].dark{--bg: #181f1e;--bg-raised: #212a28;--ink: #e3eae8;--ink-2: #9aaba6;--ink-3: #6d7d79;--rule: #2f3b39;--accent: #6cc3b4;--accent-hover: #82d0c2;--accent-bg: #1d2a27;--mist-pink: #222c2a;--sea-salt: #242e2c;--caramel: #869894}html[data-palette=amber]{--bg: #faf7ef;--bg-raised: #f3eddc;--ink: #322b1e;--ink-2: #7d7360;--ink-3: #b5ab94;--rule: #eae1cb;--accent: #b97f1c;--accent-hover: #9f6a0e;--accent-bg: #f9efd8;--mist-pink: #f0e8d2;--sea-salt: #ebe2ca;--caramel: #96835c}html[data-palette=amber].dark{--bg: #201d16;--bg-raised: #2a261d;--ink: #ebe6d9;--ink-2: #b0a893;--ink-3: #7f7866;--rule: #3c3729;--accent: #e0a83e;--accent-hover: #ebba5c;--accent-bg: #2c251a;--mist-pink: #2f2a1e;--sea-salt: #312c20;--caramel: #a89a76}html[data-palette=plum]{--bg: #f9f4f5;--bg-raised: #f1e8ea;--ink: #2f2427;--ink-2: #796a6f;--ink-3: #b1a2a7;--rule: #e9dde0;--accent: #a4506b;--accent-hover: #8d3f59;--accent-bg: #f7e9ee;--mist-pink: #ecdee2;--sea-salt: #e5d8db;--caramel: #8d6f77}html[data-palette=plum].dark{--bg: #1f1a1b;--bg-raised: #292223;--ink: #eae2e4;--ink-2: #ada0a4;--ink-3: #7c6e73;--rule: #3a3133;--accent: #d98aa3;--accent-hover: #e39fb5;--accent-bg: #2b2023;--mist-pink: #2d2527;--sea-salt: #2f2729;--caramel: #a08890}html[data-palette=graphite]{--bg: #f7f7f6;--bg-raised: #eeedeb;--ink: #262626;--ink-2: #6e6e6c;--ink-3: #ababa8;--rule: #e0e0de;--accent: #3f3f3e;--accent-hover: #262626;--accentLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";:root{--bg: #faf7f2;--bg-raised: #f3ede5;--bg-overlay: rgba(250, 247, 242, .85);--ink: #2c2420;--ink-2: #7a6e64;--ink-3: #b5a99e;--rule: #e8e0d6;--accent: #d4764e;--accent-hover: #c4613a;--accent-bg: #fdf0e8;--mist-pink: #f0e4de;--sea-salt: #e8e0d6;--caramel: #8b6f5e;--glass-bg: rgba(250, 247, 242, .72);--glass-border: rgba(232, 224, 214, .5);--shadow-sm: 0 1px 3px rgba(44, 36, 32, .06);--shadow-md: 0 4px 16px rgba(44, 36, 32, .08);--shadow-lg: 0 8px 32px rgba(44, 36, 32, .12);--shadow-glow: 0 0 40px rgba(212, 118, 78, .15)}html.dark{--bg: #1a1614;--bg-raised: #26211d;--bg-overlay: rgba(26, 22, 20, .85);--ink: #ede6de;--ink-2: #a2978c;--ink-3: #6f6459;--rule: #38322b;--accent: #e8955f;--accent-hover: #f0a872;--accent-bg: #2a1e16;--mist-pink: #2e2420;--sea-salt: #2e2822;--caramel: #a08878;--glass-bg: rgba(26, 22, 20, .72);--glass-border: rgba(46, 40, 34, .5);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px rgba(0, 0, 0, .25);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .35);--shadow-glow: 0 0 40px rgba(232, 149, 95, .12)}:root{--font-sans: "LXGW WenKai", "Noto Serif SC", "Source Han Serif SC", Georgia, serif;--font-body: "LXGW WenKai", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: clamp(.75rem, .7rem + .2vw, .8rem);--text-sm: clamp(.875rem, .82rem + .2vw, .95rem);--text-base: clamp(1rem, .94rem + .25vw, 1.05rem);--text-md: clamp(1.1rem, 1.02rem + .3vw, 1.2rem);--text-lg: clamp(1.2rem, 1.1rem + .45vw, 1.3rem);--text-xl: clamp(1.35rem, 1.2rem + .7vw, 1.6rem);--text-2xl: clamp(1.65rem, 1.4rem + 1.05vw, 2rem);--text-3xl: clamp(1.95rem, 1.6rem + 1.65vw, 2.4rem);--text-4xl: clamp(2.3rem, 1.8rem + 2.25vw, 3.2rem);--text-5xl: clamp(2.8rem, 2rem + 3.5vw, 4rem);--leading-none: 1;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.6;--leading-relaxed: 1.75;--leading-loose: 2;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-wider: .08em;--tracking-widest: .12em}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:700;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--ink);margin-bottom:var(--space-sm)}h1{font-size:var(--text-3xl);margin-bottom:var(--space-lg)}h2{font-size:var(--text-2xl);padding-left:var(--space-md);border-left:3px solid var(--accent);margin-bottom:var(--space-sm)}h3{font-size:var(--text-xl);position:relative;padding-left:var(--space-lg)}h3:before{content:"";display:block;position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.6}h4{font-size:var(--text-md);color:var(--ink-2)}h5{font-size:var(--text-base);color:var(--ink-2)}h6{font-size:var(--text-sm);color:var(--ink-3)}.wi-post__body :is(h1,h2,h3,h4,h5,h6),.wi-page__body :is(h1,h2,h3,h4,h5,h6),.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6){font-family:var(--font-sans);font-weight:700;line-height:1.35;letter-spacing:-.01em;color:var(--ink);scroll-margin-top:88px;text-wrap:balance;padding-left:0;border-left:0}.wi-post__body :is(h1,h2,h3,h4,h5,h6):before,.wi-post__body :is(h1,h2,h3,h4,h5,h6):after,.wi-page__body :is(h1,h2,h3,h4,h5,h6):before,.wi-page__body :is(h1,h2,h3,h4,h5,h6):after,.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6):before,.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6):after{content:none}.wi-post__body h1,.wi-page__body h1,.wi-messageboard__body h1{font-size:clamp(1.45rem,1.3rem + .7vw,1.75rem);margin-top:2em;margin-bottom:.7em}.wi-post__body h2,.wi-page__body h2,.wi-messageboard__body h2{font-size:clamp(1.3rem,1.2rem + .5vw,1.5rem);margin-top:1.9em;margin-bottom:.65em}.wi-post__body h3,.wi-page__body h3,.wi-messageboard__body h3{font-size:clamp(1.15rem,1.08rem + .35vw,1.28rem);margin-top:1.7em;margin-bottom:.6em}.wi-post__body h4,.wi-page__body h4,.wi-messageboard__body h4{font-size:clamp(1.05rem,1rem + .25vw,1.13rem);margin-top:1.5em;margin-bottom:.5em}.wi-post__body h5,.wi-page__body h5,.wi-messageboard__body h5{font-size:1rem;margin-top:1.4em;margin-bottom:.45em}.wi-post__body h6,.wi-page__body h6,.wi-messageboard__body h6{font-size:.95rem;font-weight:600;color:var(--ink-3);margin-top:1.4em;margin-bottom:.45em}.wi-post__body :is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6),.wi-page__body :is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6),.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6){margin-top:.6em}.wi-post__body>:is(h1,h2,h3,h4,h5,h6):first-child,.wi-page__body>:is(h1,h2,h3,h4,h5,h6):first-child,.wi-messageboard__body>:is(h1,h2,h3,h4,h5,h6):first-child{margin-top:0}.wi-post__body p,.wi-page__body p,.wi-messageboard__body p{margin-block-end:1.2em}.wi-post__body *,.wi-page__body *,.wi-messageboard__body *{max-width:100%}.wi-post__body :is(pre,code,table),.wi-page__body :is(pre,code,table),.wi-messageboard__body :is(pre,code,table){overflow-x:auto}.wi-post__body pre,.wi-page__body pre,.wi-messageboard__body pre{margin-block:1.5em;padding:1.25em;border-radius:12px;border:1pxLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";:root{--bg: #faf7f2;--bg-raised: #f3ede5;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #2c2420;--ink-2: #7a6e64;--ink-3: #b5a99e;--rule: #e8e0d6;--accent: #d4764e;--accent-hover: #c4613a;--accent-bg: #fdf0e8;--mist-pink: #f0e4de;--sea-salt: #e8e0d6;--caramel: #8b6f5e;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px color-mix(in srgb, var(--ink) 6%, transparent);--shadow-md: 0 4px 16px color-mix(in srgb, var(--ink) 8%, transparent);--shadow-lg: 0 8px 32px color-mix(in srgb, var(--ink) 12%, transparent);--shadow-glow: 0 0 40px color-mix(in srgb, var(--accent) 15%, transparent)}html.dark{--bg: #1e1c1a;--bg-raised: #292623;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #e9e4dd;--ink-2: #aaa096;--ink-3: #7c7268;--rule: #3b362f;--accent: #e89a64;--accent-hover: #f2ad79;--accent-bg: #2c231b;--mist-pink: #2e2823;--sea-salt: #302b26;--caramel: #a38b7b;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .24);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px rgba(232, 154, 100, .12)}html[data-palette=matcha]{--bg: #f6f8f1;--bg-raised: #ecf1e3;--ink: #26302a;--ink-2: #6d7a6e;--ink-3: #a8b3a4;--rule: #dde5d4;--accent: #6f9d52;--accent-hover: #5d8943;--accent-bg: #ecf3e2;--mist-pink: #e7eddc;--sea-salt: #dfe8d3;--caramel: #7d8a68}html[data-palette=matcha].dark{--bg: #1b1f1a;--bg-raised: #252b22;--ink: #e6e9e0;--ink-2: #a3ab9c;--ink-3: #767e70;--rule: #363d33;--accent: #9cc47f;--accent-hover: #aed493;--accent-bg: #242c1f;--mist-pink: #262d22;--sea-salt: #282f24;--caramel: #98a387}html[data-palette=indigo]{--bg: #f5f7fa;--bg-raised: #eaeff5;--ink: #232a33;--ink-2: #66707d;--ink-3: #a3adb8;--rule: #dce2ea;--accent: #4a6fa5;--accent-hover: #3d5d8c;--accent-bg: #e9eff8;--mist-pink: #e2e8f0;--sea-salt: #dbe4ee;--caramel: #707c8e}html[data-palette=indigo].dark{--bg: #191d23;--bg-raised: #222831;--ink: #e4e7ec;--ink-2: #9aa4b1;--ink-3: #6d7683;--rule: #323a45;--accent: #7fa3d1;--accent-hover: #93b4dc;--accent-bg: #1f2632;--mist-pink: #232830;--sea-salt: #252b34;--caramel: #8b95a6}html[data-palette=sakura]{--bg: #faf5f6;--bg-raised: #f3eaec;--ink: #322a2c;--ink-2: #7d6e72;--ink-3: #b4a6aa;--rule: #ecdfe2;--accent: #d97387;--accent-hover: #c85d72;--accent-bg: #fbeef1;--mist-pink: #f2e2e6;--sea-salt: #eddfe3;--caramel: #96757e}html[data-palette=sakura].dark{--bg: #201b1c;--bg-raised: #2a2425;--ink: #ece5e6;--ink-2: #b0a4a7;--ink-3: #7f7276;--rule: #3c3436;--accent: #e89aab;--accent-hover: #f0aec0;--accent-bg: #2d2225;--mist-pink: #2f2729;--sea-salt: #31282a;--caramel: #a88d94}html[data-palette=violet]{--bg: #f7f5fa;--bg-raised: #eeeaf5;--ink: #2b2733;--ink-2: #6f6a7c;--ink-3: #aaa5b6;--rule: #e2ddeb;--accent: #8a6fc0;--accent-hover: #7759ae;--accent-bg: #f0eaf9;--mist-pink: #e8e2f0;--sea-salt: #e3dcee;--caramel: #7f7590}html[data-palette=violet].dark{--bg: #1c1a21;--bg-raised: #26222f;--ink: #e8e5ee;--ink-2: #a49eaf;--ink-3: #746e80;--rule: #373241;--accent: #b49ae0;--accent-hover: #c3ace8;--accent-bg: #262033;--mist-pink: #292434;--sea-salt: #2b2536;--caramel: #948caa}html[data-palette=sea]{--bg: #f3f8f7;--bg-raised: #e8f0ee;--ink: #21302d;--ink-2: #647872;--ink-3: #9fb1ac;--rule: #d9e6e3;--accent: #3d9c8f;--accent-hover: #2f8578;--accent-bg: #e5f3f0;--mist-pink: #dee9e6;--sea-salt: #d6e5e1;--caramel: #6c8680}html[data-palette=sea].dark{--bg: #181f1e;--bg-raised: #212a28;--ink: #e3eae8;--ink-2: #9aaba6;--ink-3: #6d7d79;--rule: #2f3b39;--accent: #6cc3b4;--accent-hover: #82d0c2;--accent-bg: #1d2a27;--mist-pink: #222c2a;--sea-salt: #242e2c;--caramel: #869894}html[data-palette=amber]{--bg: #faf7ef;--bg-raised: #f3eddc;--ink: #322b1e;--ink-2: #7d7360;--ink-3: #b5ab94;--rule: #eae1cb;--accent: #b97f1c;--accent-hover: #9f6a0e;--accent-bg: #f9efd8;--mist-pink: #f0e8d2;--sea-salt: #ebe2ca;--caramel: #96835c}html[data-palette=amber].dark{--bg: #201d16;--bg-raised: #2a261d;--ink: #ebe6d9;--ink-2: #b0a893;--ink-3: #7f7866;--rule: #3c3729;--accent: #e0a83e;--accent-hover: #ebba5c;--accent-bg: #2c251a;--mist-pink: #2f2a1e;--sea-salt: #312c20;--caramel: #a89a76}html[data-palette=plum]{--bg: #f9f4f5;--bg-raised: #f1e8ea;--ink: #2f2427;--ink-2: #796a6f;--ink-3: #b1a2a7;--rule: #e9dde0;--accent: #a4506b;--accent-hover: #8d3f59;--accent-bg: #f7e9ee;--mist-pink: #ecdee2;--sea-salt: #e5d8db;--caramel: #8d6f77}html[data-palette=plum].dark{--bg: #1f1a1b;--bg-raised: #292223;--ink: #eae2e4;--ink-2: #ada0a4;--ink-3: #7c6e73;--rule: #3a3133;--accent: #d98aa3;--accent-hover: #e39fb5;--accent-bg: #2b2023;--mist-pink: #2d2527;--sea-salt: #2f2729;--caramel: #a08890}html[data-palette=graphite]{--bg: #f7f7f6;--bg-raised: #eeedeb;--ink: #262626;--ink-2: #6e6e6c;--ink-3: #ababa8;--rule: #e0e0de;--accent: #3f3f3e;--accent-hover: #262626;--accentLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";:root{--bg: #faf7f2;--bg-raised: #f3ede5;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #2c2420;--ink-2: #7a6e64;--ink-3: #b5a99e;--rule: #e8e0d6;--accent: #d4764e;--accent-hover: #c4613a;--accent-bg: #fdf0e8;--mist-pink: #f0e4de;--sea-salt: #e8e0d6;--caramel: #8b6f5e;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px color-mix(in srgb, var(--ink) 6%, transparent);--shadow-md: 0 4px 16px color-mix(in srgb, var(--ink) 8%, transparent);--shadow-lg: 0 8px 32px color-mix(in srgb, var(--ink) 12%, transparent);--shadow-glow: 0 0 40px color-mix(in srgb, var(--accent) 15%, transparent)}html.dark{--bg: #1e1c1a;--bg-raised: #292623;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #e9e4dd;--ink-2: #aaa096;--ink-3: #7c7268;--rule: #3b362f;--accent: #e89a64;--accent-hover: #f2ad79;--accent-bg: #2c231b;--mist-pink: #2e2823;--sea-salt: #302b26;--caramel: #a38b7b;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .24);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px rgba(232, 154, 100, .12)}html[data-palette=matcha]{--bg: #f6f8f1;--bg-raised: #ecf1e3;--ink: #26302a;--ink-2: #6d7a6e;--ink-3: #a8b3a4;--rule: #dde5d4;--accent: #6f9d52;--accent-hover: #5d8943;--accent-bg: #ecf3e2;--mist-pink: #e7eddc;--sea-salt: #dfe8d3;--caramel: #7d8a68}html[data-palette=matcha].dark{--bg: #1b1f1a;--bg-raised: #252b22;--ink: #e6e9e0;--ink-2: #a3ab9c;--ink-3: #767e70;--rule: #363d33;--accent: #9cc47f;--accent-hover: #aed493;--accent-bg: #242c1f;--mist-pink: #262d22;--sea-salt: #282f24;--caramel: #98a387}html[data-palette=indigo]{--bg: #f5f7fa;--bg-raised: #eaeff5;--ink: #232a33;--ink-2: #66707d;--ink-3: #a3adb8;--rule: #dce2ea;--accent: #4a6fa5;--accent-hover: #3d5d8c;--accent-bg: #e9eff8;--mist-pink: #e2e8f0;--sea-salt: #dbe4ee;--caramel: #707c8e}html[data-palette=indigo].dark{--bg: #191d23;--bg-raised: #222831;--ink: #e4e7ec;--ink-2: #9aa4b1;--ink-3: #6d7683;--rule: #323a45;--accent: #7fa3d1;--accent-hover: #93b4dc;--accent-bg: #1f2632;--mist-pink: #232830;--sea-salt: #252b34;--caramel: #8b95a6}html[data-palette=sakura]{--bg: #faf5f6;--bg-raised: #f3eaec;--ink: #322a2c;--ink-2: #7d6e72;--ink-3: #b4a6aa;--rule: #ecdfe2;--accent: #d97387;--accent-hover: #c85d72;--accent-bg: #fbeef1;--mist-pink: #f2e2e6;--sea-salt: #eddfe3;--caramel: #96757e}html[data-palette=sakura].dark{--bg: #201b1c;--bg-raised: #2a2425;--ink: #ece5e6;--ink-2: #b0a4a7;--ink-3: #7f7276;--rule: #3c3436;--accent: #e89aab;--accent-hover: #f0aec0;--accent-bg: #2d2225;--mist-pink: #2f2729;--sea-salt: #31282a;--caramel: #a88d94}html[data-palette=violet]{--bg: #f7f5fa;--bg-raised: #eeeaf5;--ink: #2b2733;--ink-2: #6f6a7c;--ink-3: #aaa5b6;--rule: #e2ddeb;--accent: #8a6fc0;--accent-hover: #7759ae;--accent-bg: #f0eaf9;--mist-pink: #e8e2f0;--sea-salt: #e3dcee;--caramel: #7f7590}html[data-palette=violet].dark{--bg: #1c1a21;--bg-raised: #26222f;--ink: #e8e5ee;--ink-2: #a49eaf;--ink-3: #746e80;--rule: #373241;--accent: #b49ae0;--accent-hover: #c3ace8;--accent-bg: #262033;--mist-pink: #292434;--sea-salt: #2b2536;--caramel: #948caa}html[data-palette=sea]{--bg: #f3f8f7;--bg-raised: #e8f0ee;--ink: #21302d;--ink-2: #647872;--ink-3: #9fb1ac;--rule: #d9e6e3;--accent: #3d9c8f;--accent-hover: #2f8578;--accent-bg: #e5f3f0;--mist-pink: #dee9e6;--sea-salt: #d6e5e1;--caramel: #6c8680}html[data-palette=sea].dark{--bg: #181f1e;--bg-raised: #212a28;--ink: #e3eae8;--ink-2: #9aaba6;--ink-3: #6d7d79;--rule: #2f3b39;--accent: #6cc3b4;--accent-hover: #82d0c2;--accent-bg: #1d2a27;--mist-pink: #222c2a;--sea-salt: #242e2c;--caramel: #869894}html[data-palette=amber]{--bg: #faf7ef;--bg-raised: #f3eddc;--ink: #322b1e;--ink-2: #7d7360;--ink-3: #b5ab94;--rule: #eae1cb;--accent: #b97f1c;--accent-hover: #9f6a0e;--accent-bg: #f9efd8;--mist-pink: #f0e8d2;--sea-salt: #ebe2ca;--caramel: #96835c}html[data-palette=amber].dark{--bg: #201d16;--bg-raised: #2a261d;--ink: #ebe6d9;--ink-2: #b0a893;--ink-3: #7f7866;--rule: #3c3729;--accent: #e0a83e;--accent-hover: #ebba5c;--accent-bg: #2c251a;--mist-pink: #2f2a1e;--sea-salt: #312c20;--caramel: #a89a76}html[data-palette=plum]{--bg: #f9f4f5;--bg-raised: #f1e8ea;--ink: #2f2427;--ink-2: #796a6f;--ink-3: #b1a2a7;--rule: #e9dde0;--accent: #a4506b;--accent-hover: #8d3f59;--accent-bg: #f7e9ee;--mist-pink: #ecdee2;--sea-salt: #e5d8db;--caramel: #8d6f77}html[data-palette=plum].dark{--bg: #1f1a1b;--bg-raised: #292223;--ink: #eae2e4;--ink-2: #ada0a4;--ink-3: #7c6e73;--rule: #3a3133;--accent: #d98aa3;--accent-hover: #e39fb5;--accent-bg: #2b2023;--mist-pink: #2d2527;--sea-salt: #2f2729;--caramel: #a08890}html[data-palette=graphite]{--bg: #f7f7f6;--bg-raised: #eeedeb;--ink: #262626;--ink-2: #6e6e6c;--ink-3: #ababa8;--rule: #e0e0de;--accent: #3f3f3e;--accent-hover: #262626;--accentLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";:root{--bg: #faf7f2;--bg-raised: #f3ede5;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #2c2420;--ink-2: #7a6e64;--ink-3: #b5a99e;--rule: #e8e0d6;--accent: #d4764e;--accent-hover: #c4613a;--accent-bg: #fdf0e8;--mist-pink: #f0e4de;--sea-salt: #e8e0d6;--caramel: #8b6f5e;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px color-mix(in srgb, var(--ink) 6%, transparent);--shadow-md: 0 4px 16px color-mix(in srgb, var(--ink) 8%, transparent);--shadow-lg: 0 8px 32px color-mix(in srgb, var(--ink) 12%, transparent);--shadow-glow: 0 0 40px color-mix(in srgb, var(--accent) 15%, transparent)}html.dark{--bg: #1e1c1a;--bg-raised: #292623;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #e9e4dd;--ink-2: #aaa096;--ink-3: #7c7268;--rule: #3b362f;--accent: #e89a64;--accent-hover: #f2ad79;--accent-bg: #2c231b;--mist-pink: #2e2823;--sea-salt: #302b26;--caramel: #a38b7b;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .24);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px rgba(232, 154, 100, .12)}html[data-palette=matcha]{--bg: #f6f8f1;--bg-raised: #ecf1e3;--ink: #26302a;--ink-2: #6d7a6e;--ink-3: #a8b3a4;--rule: #dde5d4;--accent: #6f9d52;--accent-hover: #5d8943;--accent-bg: #ecf3e2;--mist-pink: #e7eddc;--sea-salt: #dfe8d3;--caramel: #7d8a68}html[data-palette=matcha].dark{--bg: #1b1f1a;--bg-raised: #252b22;--ink: #e6e9e0;--ink-2: #a3ab9c;--ink-3: #767e70;--rule: #363d33;--accent: #9cc47f;--accent-hover: #aed493;--accent-bg: #242c1f;--mist-pink: #262d22;--sea-salt: #282f24;--caramel: #98a387}html[data-palette=indigo]{--bg: #f5f7fa;--bg-raised: #eaeff5;--ink: #232a33;--ink-2: #66707d;--ink-3: #a3adb8;--rule: #dce2ea;--accent: #4a6fa5;--accent-hover: #3d5d8c;--accent-bg: #e9eff8;--mist-pink: #e2e8f0;--sea-salt: #dbe4ee;--caramel: #707c8e}html[data-palette=indigo].dark{--bg: #191d23;--bg-raised: #222831;--ink: #e4e7ec;--ink-2: #9aa4b1;--ink-3: #6d7683;--rule: #323a45;--accent: #7fa3d1;--accent-hover: #93b4dc;--accent-bg: #1f2632;--mist-pink: #232830;--sea-salt: #252b34;--caramel: #8b95a6}html[data-palette=sakura]{--bg: #faf5f6;--bg-raised: #f3eaec;--ink: #322a2c;--ink-2: #7d6e72;--ink-3: #b4a6aa;--rule: #ecdfe2;--accent: #d97387;--accent-hover: #c85d72;--accent-bg: #fbeef1;--mist-pink: #f2e2e6;--sea-salt: #eddfe3;--caramel: #96757e}html[data-palette=sakura].dark{--bg: #201b1c;--bg-raised: #2a2425;--ink: #ece5e6;--ink-2: #b0a4a7;--ink-3: #7f7276;--rule: #3c3436;--accent: #e89aab;--accent-hover: #f0aec0;--accent-bg: #2d2225;--mist-pink: #2f2729;--sea-salt: #31282a;--caramel: #a88d94}html[data-palette=violet]{--bg: #f7f5fa;--bg-raised: #eeeaf5;--ink: #2b2733;--ink-2: #6f6a7c;--ink-3: #aaa5b6;--rule: #e2ddeb;--accent: #8a6fc0;--accent-hover: #7759ae;--accent-bg: #f0eaf9;--mist-pink: #e8e2f0;--sea-salt: #e3dcee;--caramel: #7f7590}html[data-palette=violet].dark{--bg: #1c1a21;--bg-raised: #26222f;--ink: #e8e5ee;--ink-2: #a49eaf;--ink-3: #746e80;--rule: #373241;--accent: #b49ae0;--accent-hover: #c3ace8;--accent-bg: #262033;--mist-pink: #292434;--sea-salt: #2b2536;--caramel: #948caa}html[data-palette=sea]{--bg: #f3f8f7;--bg-raised: #e8f0ee;--ink: #21302d;--ink-2: #647872;--ink-3: #9fb1ac;--rule: #d9e6e3;--accent: #3d9c8f;--accent-hover: #2f8578;--accent-bg: #e5f3f0;--mist-pink: #dee9e6;--sea-salt: #d6e5e1;--caramel: #6c8680}html[data-palette=sea].dark{--bg: #181f1e;--bg-raised: #212a28;--ink: #e3eae8;--ink-2: #9aaba6;--ink-3: #6d7d79;--rule: #2f3b39;--accent: #6cc3b4;--accent-hover: #82d0c2;--accent-bg: #1d2a27;--mist-pink: #222c2a;--sea-salt: #242e2c;--caramel: #869894}html[data-palette=amber]{--bg: #faf7ef;--bg-raised: #f3eddc;--ink: #322b1e;--ink-2: #7d7360;--ink-3: #b5ab94;--rule: #eae1cb;--accent: #b97f1c;--accent-hover: #9f6a0e;--accent-bg: #f9efd8;--mist-pink: #f0e8d2;--sea-salt: #ebe2ca;--caramel: #96835c}html[data-palette=amber].dark{--bg: #201d16;--bg-raised: #2a261d;--ink: #ebe6d9;--ink-2: #b0a893;--ink-3: #7f7866;--rule: #3c3729;--accent: #e0a83e;--accent-hover: #ebba5c;--accent-bg: #2c251a;--mist-pink: #2f2a1e;--sea-salt: #312c20;--caramel: #a89a76}html[data-palette=plum]{--bg: #f9f4f5;--bg-raised: #f1e8ea;--ink: #2f2427;--ink-2: #796a6f;--ink-3: #b1a2a7;--rule: #e9dde0;--accent: #a4506b;--accent-hover: #8d3f59;--accent-bg: #f7e9ee;--mist-pink: #ecdee2;--sea-salt: #e5d8db;--caramel: #8d6f77}html[data-palette=plum].dark{--bg: #1f1a1b;--bg-raised: #292223;--ink: #eae2e4;--ink-2: #ada0a4;--ink-3: #7c6e73;--rule: #3a3133;--accent: #d98aa3;--accent-hover: #e39fb5;--accent-bg: #2b2023;--mist-pink: #2d2527;--sea-salt: #2f2729;--caramel: #a08890}html[data-palette=graphite]{--bg: #f7f7f6;--bg-raised: #eeedeb;--ink: #262626;--ink-2: #6e6e6c;--ink-3: #ababa8;--rule: #e0e0de;--accent: #3f3f3e;--accent-hover: #262626;--accentLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";:root{--bg: #faf7f2;--bg-raised: #f3ede5;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #2c2420;--ink-2: #7a6e64;--ink-3: #b5a99e;--rule: #e8e0d6;--accent: #d4764e;--accent-hover: #c4613a;--accent-bg: #fdf0e8;--mist-pink: #f0e4de;--sea-salt: #e8e0d6;--caramel: #8b6f5e;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px color-mix(in srgb, var(--ink) 6%, transparent);--shadow-md: 0 4px 16px color-mix(in srgb, var(--ink) 8%, transparent);--shadow-lg: 0 8px 32px color-mix(in srgb, var(--ink) 12%, transparent);--shadow-glow: 0 0 40px color-mix(in srgb, var(--accent) 15%, transparent)}html.dark{--bg: #1e1c1a;--bg-raised: #292623;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #e9e4dd;--ink-2: #aaa096;--ink-3: #7c7268;--rule: #3b362f;--accent: #e89a64;--accent-hover: #f2ad79;--accent-bg: #2c231b;--mist-pink: #2e2823;--sea-salt: #302b26;--caramel: #a38b7b;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .24);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px rgba(232, 154, 100, .12)}html[data-palette=matcha]{--bg: #f6f8f1;--bg-raised: #ecf1e3;--ink: #26302a;--ink-2: #6d7a6e;--ink-3: #a8b3a4;--rule: #dde5d4;--accent: #6f9d52;--accent-hover: #5d8943;--accent-bg: #ecf3e2;--mist-pink: #e7eddc;--sea-salt: #dfe8d3;--caramel: #7d8a68}html[data-palette=matcha].dark{--bg: #1b1f1a;--bg-raised: #252b22;--ink: #e6e9e0;--ink-2: #a3ab9c;--ink-3: #767e70;--rule: #363d33;--accent: #9cc47f;--accent-hover: #aed493;--accent-bg: #242c1f;--mist-pink: #262d22;--sea-salt: #282f24;--caramel: #98a387}html[data-palette=indigo]{--bg: #f5f7fa;--bg-raised: #eaeff5;--ink: #232a33;--ink-2: #66707d;--ink-3: #a3adb8;--rule: #dce2ea;--accent: #4a6fa5;--accent-hover: #3d5d8c;--accent-bg: #e9eff8;--mist-pink: #e2e8f0;--sea-salt: #dbe4ee;--caramel: #707c8e}html[data-palette=indigo].dark{--bg: #191d23;--bg-raised: #222831;--ink: #e4e7ec;--ink-2: #9aa4b1;--ink-3: #6d7683;--rule: #323a45;--accent: #7fa3d1;--accent-hover: #93b4dc;--accent-bg: #1f2632;--mist-pink: #232830;--sea-salt: #252b34;--caramel: #8b95a6}html[data-palette=sakura]{--bg: #faf5f6;--bg-raised: #f3eaec;--ink: #322a2c;--ink-2: #7d6e72;--ink-3: #b4a6aa;--rule: #ecdfe2;--accent: #d97387;--accent-hover: #c85d72;--accent-bg: #fbeef1;--mist-pink: #f2e2e6;--sea-salt: #eddfe3;--caramel: #96757e}html[data-palette=sakura].dark{--bg: #201b1c;--bg-raised: #2a2425;--ink: #ece5e6;--ink-2: #b0a4a7;--ink-3: #7f7276;--rule: #3c3436;--accent: #e89aab;--accent-hover: #f0aec0;--accent-bg: #2d2225;--mist-pink: #2f2729;--sea-salt: #31282a;--caramel: #a88d94}html[data-palette=violet]{--bg: #f7f5fa;--bg-raised: #eeeaf5;--ink: #2b2733;--ink-2: #6f6a7c;--ink-3: #aaa5b6;--rule: #e2ddeb;--accent: #8a6fc0;--accent-hover: #7759ae;--accent-bg: #f0eaf9;--mist-pink: #e8e2f0;--sea-salt: #e3dcee;--caramel: #7f7590}html[data-palette=violet].dark{--bg: #1c1a21;--bg-raised: #26222f;--ink: #e8e5ee;--ink-2: #a49eaf;--ink-3: #746e80;--rule: #373241;--accent: #b49ae0;--accent-hover: #c3ace8;--accent-bg: #262033;--mist-pink: #292434;--sea-salt: #2b2536;--caramel: #948caa}html[data-palette=sea]{--bg: #f3f8f7;--bg-raised: #e8f0ee;--ink: #21302d;--ink-2: #647872;--ink-3: #9fb1ac;--rule: #d9e6e3;--accent: #3d9c8f;--accent-hover: #2f8578;--accent-bg: #e5f3f0;--mist-pink: #dee9e6;--sea-salt: #d6e5e1;--caramel: #6c8680}html[data-palette=sea].dark{--bg: #181f1e;--bg-raised: #212a28;--ink: #e3eae8;--ink-2: #9aaba6;--ink-3: #6d7d79;--rule: #2f3b39;--accent: #6cc3b4;--accent-hover: #82d0c2;--accent-bg: #1d2a27;--mist-pink: #222c2a;--sea-salt: #242e2c;--caramel: #869894}html[data-palette=amber]{--bg: #faf7ef;--bg-raised: #f3eddc;--ink: #322b1e;--ink-2: #7d7360;--ink-3: #b5ab94;--rule: #eae1cb;--accent: #b97f1c;--accent-hover: #9f6a0e;--accent-bg: #f9efd8;--mist-pink: #f0e8d2;--sea-salt: #ebe2ca;--caramel: #96835c}html[data-palette=amber].dark{--bg: #201d16;--bg-raised: #2a261d;--ink: #ebe6d9;--ink-2: #b0a893;--ink-3: #7f7866;--rule: #3c3729;--accent: #e0a83e;--accent-hover: #ebba5c;--accent-bg: #2c251a;--mist-pink: #2f2a1e;--sea-salt: #312c20;--caramel: #a89a76}html[data-palette=plum]{--bg: #f9f4f5;--bg-raised: #f1e8ea;--ink: #2f2427;--ink-2: #796a6f;--ink-3: #b1a2a7;--rule: #e9dde0;--accent: #a4506b;--accent-hover: #8d3f59;--accent-bg: #f7e9ee;--mist-pink: #ecdee2;--sea-salt: #e5d8db;--caramel: #8d6f77}html[data-palette=plum].dark{--bg: #1f1a1b;--bg-raised: #292223;--ink: #eae2e4;--ink-2: #ada0a4;--ink-3: #7c6e73;--rule: #3a3133;--accent: #d98aa3;--accent-hover: #e39fb5;--accent-bg: #2b2023;--mist-pink: #2d2527;--sea-salt: #2f2729;--caramel: #a08890}html[data-palette=graphite]{--bg: #f7f7f6;--bg-raised: #eeedeb;--ink: #262626;--ink-2: #6e6e6c;--ink-3: #ababa8;--rule: #e0e0de;--accent: #3f3f3e;--accent-hover: #262626;--accentLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";:root{--bg: #faf7f2;--bg-raised: #f3ede5;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #2c2420;--ink-2: #7a6e64;--ink-3: #b5a99e;--rule: #e8e0d6;--accent: #d4764e;--accent-hover: #c4613a;--accent-bg: #fdf0e8;--mist-pink: #f0e4de;--sea-salt: #e8e0d6;--caramel: #8b6f5e;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px color-mix(in srgb, var(--ink) 6%, transparent);--shadow-md: 0 4px 16px color-mix(in srgb, var(--ink) 8%, transparent);--shadow-lg: 0 8px 32px color-mix(in srgb, var(--ink) 12%, transparent);--shadow-glow: 0 0 40px color-mix(in srgb, var(--accent) 15%, transparent)}html.dark{--bg: #1e1c1a;--bg-raised: #292623;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #e9e4dd;--ink-2: #aaa096;--ink-3: #7c7268;--rule: #3b362f;--accent: #e89a64;--accent-hover: #f2ad79;--accent-bg: #2c231b;--mist-pink: #2e2823;--sea-salt: #302b26;--caramel: #a38b7b;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .24);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px rgba(232, 154, 100, .12)}html[data-palette=matcha]{--bg: #f6f8f1;--bg-raised: #ecf1e3;--ink: #26302a;--ink-2: #6d7a6e;--ink-3: #a8b3a4;--rule: #dde5d4;--accent: #6f9d52;--accent-hover: #5d8943;--accent-bg: #ecf3e2;--mist-pink: #e7eddc;--sea-salt: #dfe8d3;--caramel: #7d8a68}html[data-palette=matcha].dark{--bg: #1b1f1a;--bg-raised: #252b22;--ink: #e6e9e0;--ink-2: #a3ab9c;--ink-3: #767e70;--rule: #363d33;--accent: #9cc47f;--accent-hover: #aed493;--accent-bg: #242c1f;--mist-pink: #262d22;--sea-salt: #282f24;--caramel: #98a387}html[data-palette=indigo]{--bg: #f5f7fa;--bg-raised: #eaeff5;--ink: #232a33;--ink-2: #66707d;--ink-3: #a3adb8;--rule: #dce2ea;--accent: #4a6fa5;--accent-hover: #3d5d8c;--accent-bg: #e9eff8;--mist-pink: #e2e8f0;--sea-salt: #dbe4ee;--caramel: #707c8e}html[data-palette=indigo].dark{--bg: #191d23;--bg-raised: #222831;--ink: #e4e7ec;--ink-2: #9aa4b1;--ink-3: #6d7683;--rule: #323a45;--accent: #7fa3d1;--accent-hover: #93b4dc;--accent-bg: #1f2632;--mist-pink: #232830;--sea-salt: #252b34;--caramel: #8b95a6}html[data-palette=sakura]{--bg: #faf5f6;--bg-raised: #f3eaec;--ink: #322a2c;--ink-2: #7d6e72;--ink-3: #b4a6aa;--rule: #ecdfe2;--accent: #d97387;--accent-hover: #c85d72;--accent-bg: #fbeef1;--mist-pink: #f2e2e6;--sea-salt: #eddfe3;--caramel: #96757e}html[data-palette=sakura].dark{--bg: #201b1c;--bg-raised: #2a2425;--ink: #ece5e6;--ink-2: #b0a4a7;--ink-3: #7f7276;--rule: #3c3436;--accent: #e89aab;--accent-hover: #f0aec0;--accent-bg: #2d2225;--mist-pink: #2f2729;--sea-salt: #31282a;--caramel: #a88d94}html[data-palette=violet]{--bg: #f7f5fa;--bg-raised: #eeeaf5;--ink: #2b2733;--ink-2: #6f6a7c;--ink-3: #aaa5b6;--rule: #e2ddeb;--accent: #8a6fc0;--accent-hover: #7759ae;--accent-bg: #f0eaf9;--mist-pink: #e8e2f0;--sea-salt: #e3dcee;--caramel: #7f7590}html[data-palette=violet].dark{--bg: #1c1a21;--bg-raised: #26222f;--ink: #e8e5ee;--ink-2: #a49eaf;--ink-3: #746e80;--rule: #373241;--accent: #b49ae0;--accent-hover: #c3ace8;--accent-bg: #262033;--mist-pink: #292434;--sea-salt: #2b2536;--caramel: #948caa}html[data-palette=sea]{--bg: #f3f8f7;--bg-raised: #e8f0ee;--ink: #21302d;--ink-2: #647872;--ink-3: #9fb1ac;--rule: #d9e6e3;--accent: #3d9c8f;--accent-hover: #2f8578;--accent-bg: #e5f3f0;--mist-pink: #dee9e6;--sea-salt: #d6e5e1;--caramel: #6c8680}html[data-palette=sea].dark{--bg: #181f1e;--bg-raised: #212a28;--ink: #e3eae8;--ink-2: #9aaba6;--ink-3: #6d7d79;--rule: #2f3b39;--accent: #6cc3b4;--accent-hover: #82d0c2;--accent-bg: #1d2a27;--mist-pink: #222c2a;--sea-salt: #242e2c;--caramel: #869894}html[data-palette=amber]{--bg: #faf7ef;--bg-raised: #f3eddc;--ink: #322b1e;--ink-2: #7d7360;--ink-3: #b5ab94;--rule: #eae1cb;--accent: #b97f1c;--accent-hover: #9f6a0e;--accent-bg: #f9efd8;--mist-pink: #f0e8d2;--sea-salt: #ebe2ca;--caramel: #96835c}html[data-palette=amber].dark{--bg: #201d16;--bg-raised: #2a261d;--ink: #ebe6d9;--ink-2: #b0a893;--ink-3: #7f7866;--rule: #3c3729;--accent: #e0a83e;--accent-hover: #ebba5c;--accent-bg: #2c251a;--mist-pink: #2f2a1e;--sea-salt: #312c20;--caramel: #a89a76}html[data-palette=plum]{--bg: #f9f4f5;--bg-raised: #f1e8ea;--ink: #2f2427;--ink-2: #796a6f;--ink-3: #b1a2a7;--rule: #e9dde0;--accent: #a4506b;--accent-hover: #8d3f59;--accent-bg: #f7e9ee;--mist-pink: #ecdee2;--sea-salt: #e5d8db;--caramel: #8d6f77}html[data-palette=plum].dark{--bg: #1f1a1b;--bg-raised: #292223;--ink: #eae2e4;--ink-2: #ada0a4;--ink-3: #7c6e73;--rule: #3a3133;--accent: #d98aa3;--accent-hover: #e39fb5;--accent-bg: #2b2023;--mist-pink: #2d2527;--sea-salt: #2f2729;--caramel: #a08890}html[data-palette=graphite]{--bg: #f7f7f6;--bg-raised: #eeedeb;--ink: #262626;--ink-2: #6e6e6c;--ink-3: #ababa8;--rule: #e0e0de;--accent: #3f3f3e;--accent-hover: #262626;--accentLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";:root{--bg: #faf7f2;--bg-raised: #f3ede5;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #2c2420;--ink-2: #7a6e64;--ink-3: #b5a99e;--rule: #e8e0d6;--accent: #d4764e;--accent-hover: #c4613a;--accent-bg: #fdf0e8;--mist-pink: #f0e4de;--sea-salt: #e8e0d6;--caramel: #8b6f5e;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px color-mix(in srgb, var(--ink) 6%, transparent);--shadow-md: 0 4px 16px color-mix(in srgb, var(--ink) 8%, transparent);--shadow-lg: 0 8px 32px color-mix(in srgb, var(--ink) 12%, transparent);--shadow-glow: 0 0 40px color-mix(in srgb, var(--accent) 15%, transparent)}html.dark{--bg: #1e1c1a;--bg-raised: #292623;--bg-overlay: color-mix(in srgb, var(--bg) 85%, transparent);--ink: #e9e4dd;--ink-2: #aaa096;--ink-3: #7c7268;--rule: #3b362f;--accent: #e89a64;--accent-hover: #f2ad79;--accent-bg: #2c231b;--mist-pink: #2e2823;--sea-salt: #302b26;--caramel: #a38b7b;--glass-bg: color-mix(in srgb, var(--bg) 72%, transparent);--glass-border: color-mix(in srgb, var(--rule) 50%, transparent);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .24);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px rgba(232, 154, 100, .12)}html[data-palette=matcha]{--bg: #f6f8f1;--bg-raised: #ecf1e3;--ink: #26302a;--ink-2: #6d7a6e;--ink-3: #a8b3a4;--rule: #dde5d4;--accent: #6f9d52;--accent-hover: #5d8943;--accent-bg: #ecf3e2;--mist-pink: #e7eddc;--sea-salt: #dfe8d3;--caramel: #7d8a68}html[data-palette=matcha].dark{--bg: #1b1f1a;--bg-raised: #252b22;--ink: #e6e9e0;--ink-2: #a3ab9c;--ink-3: #767e70;--rule: #363d33;--accent: #9cc47f;--accent-hover: #aed493;--accent-bg: #242c1f;--mist-pink: #262d22;--sea-salt: #282f24;--caramel: #98a387}html[data-palette=indigo]{--bg: #f5f7fa;--bg-raised: #eaeff5;--ink: #232a33;--ink-2: #66707d;--ink-3: #a3adb8;--rule: #dce2ea;--accent: #4a6fa5;--accent-hover: #3d5d8c;--accent-bg: #e9eff8;--mist-pink: #e2e8f0;--sea-salt: #dbe4ee;--caramel: #707c8e}html[data-palette=indigo].dark{--bg: #191d23;--bg-raised: #222831;--ink: #e4e7ec;--ink-2: #9aa4b1;--ink-3: #6d7683;--rule: #323a45;--accent: #7fa3d1;--accent-hover: #93b4dc;--accent-bg: #1f2632;--mist-pink: #232830;--sea-salt: #252b34;--caramel: #8b95a6}html[data-palette=sakura]{--bg: #faf5f6;--bg-raised: #f3eaec;--ink: #322a2c;--ink-2: #7d6e72;--ink-3: #b4a6aa;--rule: #ecdfe2;--accent: #d97387;--accent-hover: #c85d72;--accent-bg: #fbeef1;--mist-pink: #f2e2e6;--sea-salt: #eddfe3;--caramel: #96757e}html[data-palette=sakura].dark{--bg: #201b1c;--bg-raised: #2a2425;--ink: #ece5e6;--ink-2: #b0a4a7;--ink-3: #7f7276;--rule: #3c3436;--accent: #e89aab;--accent-hover: #f0aec0;--accent-bg: #2d2225;--mist-pink: #2f2729;--sea-salt: #31282a;--caramel: #a88d94}html[data-palette=violet]{--bg: #f7f5fa;--bg-raised: #eeeaf5;--ink: #2b2733;--ink-2: #6f6a7c;--ink-3: #aaa5b6;--rule: #e2ddeb;--accent: #8a6fc0;--accent-hover: #7759ae;--accent-bg: #f0eaf9;--mist-pink: #e8e2f0;--sea-salt: #e3dcee;--caramel: #7f7590}html[data-palette=violet].dark{--bg: #1c1a21;--bg-raised: #26222f;--ink: #e8e5ee;--ink-2: #a49eaf;--ink-3: #746e80;--rule: #373241;--accent: #b49ae0;--accent-hover: #c3ace8;--accent-bg: #262033;--mist-pink: #292434;--sea-salt: #2b2536;--caramel: #948caa}html[data-palette=sea]{--bg: #f3f8f7;--bg-raised: #e8f0ee;--ink: #21302d;--ink-2: #647872;--ink-3: #9fb1ac;--rule: #d9e6e3;--accent: #3d9c8f;--accent-hover: #2f8578;--accent-bg: #e5f3f0;--mist-pink: #dee9e6;--sea-salt: #d6e5e1;--caramel: #6c8680}html[data-palette=sea].dark{--bg: #181f1e;--bg-raised: #212a28;--ink: #e3eae8;--ink-2: #9aaba6;--ink-3: #6d7d79;--rule: #2f3b39;--accent: #6cc3b4;--accent-hover: #82d0c2;--accent-bg: #1d2a27;--mist-pink: #222c2a;--sea-salt: #242e2c;--caramel: #869894}html[data-palette=amber]{--bg: #faf7ef;--bg-raised: #f3eddc;--ink: #322b1e;--ink-2: #7d7360;--ink-3: #b5ab94;--rule: #eae1cb;--accent: #b97f1c;--accent-hover: #9f6a0e;--accent-bg: #f9efd8;--mist-pink: #f0e8d2;--sea-salt: #ebe2ca;--caramel: #96835c}html[data-palette=amber].dark{--bg: #201d16;--bg-raised: #2a261d;--ink: #ebe6d9;--ink-2: #b0a893;--ink-3: #7f7866;--rule: #3c3729;--accent: #e0a83e;--accent-hover: #ebba5c;--accent-bg: #2c251a;--mist-pink: #2f2a1e;--sea-salt: #312c20;--caramel: #a89a76}html[data-palette=plum]{--bg: #f9f4f5;--bg-raised: #f1e8ea;--ink: #2f2427;--ink-2: #796a6f;--ink-3: #b1a2a7;--rule: #e9dde0;--accent: #a4506b;--accent-hover: #8d3f59;--accent-bg: #f7e9ee;--mist-pink: #ecdee2;--sea-salt: #e5d8db;--caramel: #8d6f77}html[data-palette=plum].dark{--bg: #1f1a1b;--bg-raised: #292223;--ink: #eae2e4;--ink-2: #ada0a4;--ink-3: #7c6e73;--rule: #3a3133;--accent: #d98aa3;--accent-hover: #e39fb5;--accent-bg: #2b2023;--mist-pink: #2d2527;--sea-salt: #2f2729;--caramel: #a08890}html[data-palette=graphite]{--bg: #f7f7f6;--bg-raised: #eeedeb;--ink: #262626;--ink-2: #6e6e6c;--ink-3: #ababa8;--rule: #e0e0de;--accent: #3f3f3e;--accent-hover: #262626;--accentLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";:root{--bg: #faf7f2;--bg-raised: #f3ede5;--bg-overlay: rgba(250, 247, 242, .85);--ink: #2c2420;--ink-2: #7a6e64;--ink-3: #b5a99e;--rule: #e8e0d6;--accent: #d4764e;--accent-hover: #c4613a;--accent-bg: #fdf0e8;--mist-pink: #f0e4de;--sea-salt: #e8e0d6;--caramel: #8b6f5e;--glass-bg: rgba(250, 247, 242, .72);--glass-border: rgba(232, 224, 214, .5);--shadow-sm: 0 1px 3px rgba(44, 36, 32, .06);--shadow-md: 0 4px 16px rgba(44, 36, 32, .08);--shadow-lg: 0 8px 32px rgba(44, 36, 32, .12);--shadow-glow: 0 0 40px rgba(212, 118, 78, .15)}html.dark{--bg: #1e1c1a;--bg-raised: #292623;--bg-overlay: rgba(30, 28, 26, .85);--ink: #e9e4dd;--ink-2: #aaa096;--ink-3: #7c7268;--rule: #3b362f;--accent: #e89a64;--accent-hover: #f2ad79;--accent-bg: #2c231b;--mist-pink: #2e2823;--sea-salt: #302b26;--caramel: #a38b7b;--glass-bg: rgba(30, 28, 26, .72);--glass-border: rgba(59, 54, 47, .5);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .24);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px rgba(232, 154, 100, .12)}:root{--font-sans: "LXGW WenKai", "Noto Serif SC", "Source Han Serif SC", Georgia, serif;--font-body: "LXGW WenKai", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: clamp(.75rem, .7rem + .2vw, .8rem);--text-sm: clamp(.875rem, .82rem + .2vw, .95rem);--text-base: clamp(1rem, .94rem + .25vw, 1.05rem);--text-md: clamp(1.1rem, 1.02rem + .3vw, 1.2rem);--text-lg: clamp(1.2rem, 1.1rem + .45vw, 1.3rem);--text-xl: clamp(1.35rem, 1.2rem + .7vw, 1.6rem);--text-2xl: clamp(1.65rem, 1.4rem + 1.05vw, 2rem);--text-3xl: clamp(1.95rem, 1.6rem + 1.65vw, 2.4rem);--text-4xl: clamp(2.3rem, 1.8rem + 2.25vw, 3.2rem);--text-5xl: clamp(2.8rem, 2rem + 3.5vw, 4rem);--leading-none: 1;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.6;--leading-relaxed: 1.75;--leading-loose: 2;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-wider: .08em;--tracking-widest: .12em}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:700;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--ink);margin-bottom:var(--space-sm)}h1{font-size:var(--text-3xl);margin-bottom:var(--space-lg)}h2{font-size:var(--text-2xl);padding-left:var(--space-md);border-left:3px solid var(--accent);margin-bottom:var(--space-sm)}h3{font-size:var(--text-xl);position:relative;padding-left:var(--space-lg)}h3:before{content:"";display:block;position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.6}h4{font-size:var(--text-md);color:var(--ink-2)}h5{font-size:var(--text-base);color:var(--ink-2)}h6{font-size:var(--text-sm);color:var(--ink-3)}.wi-post__body :is(h1,h2,h3,h4,h5,h6),.wi-page__body :is(h1,h2,h3,h4,h5,h6),.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6){font-family:var(--font-sans);font-weight:700;line-height:1.35;letter-spacing:-.01em;color:var(--ink);scroll-margin-top:88px;text-wrap:balance;padding-left:0;border-left:0}.wi-post__body :is(h1,h2,h3,h4,h5,h6):before,.wi-post__body :is(h1,h2,h3,h4,h5,h6):after,.wi-page__body :is(h1,h2,h3,h4,h5,h6):before,.wi-page__body :is(h1,h2,h3,h4,h5,h6):after,.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6):before,.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6):after{content:none}.wi-post__body h1,.wi-page__body h1,.wi-messageboard__body h1{font-size:clamp(1.6rem,1.4rem + 1vw,2rem);margin-top:2em;margin-bottom:.7em}.wi-post__body h2,.wi-page__body h2,.wi-messageboard__body h2{font-size:clamp(1.42rem,1.3rem + .6vw,1.68rem);margin-top:1.9em;margin-bottom:.65em}.wi-post__body h3,.wi-page__body h3,.wi-messageboard__body h3{font-size:clamp(1.24rem,1.16rem + .4vw,1.4rem);margin-top:1.7em;margin-bottom:.6em}.wi-post__body h4,.wi-page__body h4,.wi-messageboard__body h4{font-size:clamp(1.1rem,1.05rem + .25vw,1.2rem);margin-top:1.5em;margin-bottom:.5em}.wi-post__body h5,.wi-page__body h5,.wi-messageboard__body h5{font-size:1.04rem;margin-top:1.4em;margin-bottom:.45em}.wi-post__body h6,.wi-page__body h6,.wi-messageboard__body h6{font-size:.98rem;font-weight:600;color:var(--ink-3);margin-top:1.4em;margin-bottom:.45em}.wi-post__body :is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6),.wi-page__body :is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6),.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6){margin-top:.6em}.wi-post__body>:is(h1,h2,h3,h4,h5,h6):first-child,.wi-page__body>:is(h1,h2,h3,h4,h5,h6):first-child,.wi-messageboard__body>:is(h1,h2,h3,h4,h5,h6):first-child{margin-top:0}.wi-post__body p,.wi-page__body p,.wi-messageboard__body p{margin-block-end:1.2em}.wi-post__body *,.wi-page__body *,.wi-messageboard__body *{max-width:100%}.wi-post__body :is(pre,code,table),.wi-page__body :is(pre,code,table),.wi-messageboard__body :is(pre,code,table){overflow-x:auto}.wi-post__body pre,.wi-page__body pre,.wi-messageboard__body pre{margin-block:1.5em;padding:1.25em;border-radius:12px;border:1px Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
@charset "UTF-8";:root{--bg: #faf7f2;--bg-raised: #f3ede5;--bg-overlay: rgba(250, 247, 242, .85);--ink: #2c2420;--ink-2: #7a6e64;--ink-3: #b5a99e;--rule: #e8e0d6;--accent: #d4764e;--accent-hover: #c4613a;--accent-bg: #fdf0e8;--mist-pink: #f0e4de;--sea-salt: #e8e0d6;--caramel: #8b6f5e;--glass-bg: rgba(250, 247, 242, .72);--glass-border: rgba(232, 224, 214, .5);--shadow-sm: 0 1px 3px rgba(44, 36, 32, .06);--shadow-md: 0 4px 16px rgba(44, 36, 32, .08);--shadow-lg: 0 8px 32px rgba(44, 36, 32, .12);--shadow-glow: 0 0 40px rgba(212, 118, 78, .15)}html.dark{--bg: #1a1614;--bg-raised: #26211d;--bg-overlay: rgba(26, 22, 20, .85);--ink: #ede6de;--ink-2: #a2978c;--ink-3: #6f6459;--rule: #38322b;--accent: #e8955f;--accent-hover: #f0a872;--accent-bg: #2a1e16;--mist-pink: #2e2420;--sea-salt: #2e2822;--caramel: #a08878;--glass-bg: rgba(26, 22, 20, .72);--glass-border: rgba(46, 40, 34, .5);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px rgba(0, 0, 0, .25);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .35);--shadow-glow: 0 0 40px rgba(232, 149, 95, .12)}:root{--font-sans: "LXGW WenKai", "Noto Serif SC", "Source Han Serif SC", Georgia, serif;--font-body: "LXGW WenKai", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: clamp(.75rem, .7rem + .2vw, .8rem);--text-sm: clamp(.875rem, .82rem + .2vw, .95rem);--text-base: clamp(1rem, .94rem + .25vw, 1.05rem);--text-md: clamp(1.1rem, 1.02rem + .3vw, 1.2rem);--text-lg: clamp(1.2rem, 1.1rem + .45vw, 1.3rem);--text-xl: clamp(1.35rem, 1.2rem + .7vw, 1.6rem);--text-2xl: clamp(1.65rem, 1.4rem + 1.05vw, 2rem);--text-3xl: clamp(1.95rem, 1.6rem + 1.65vw, 2.4rem);--text-4xl: clamp(2.3rem, 1.8rem + 2.25vw, 3.2rem);--text-5xl: clamp(2.8rem, 2rem + 3.5vw, 4rem);--leading-none: 1;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.6;--leading-relaxed: 1.75;--leading-loose: 2;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-wider: .08em;--tracking-widest: .12em}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:700;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--ink);margin-bottom:var(--space-sm)}h1{font-size:var(--text-3xl);margin-bottom:var(--space-lg)}h2{font-size:var(--text-2xl);padding-left:var(--space-md);border-left:3px solid var(--accent);margin-bottom:var(--space-sm)}h3{font-size:var(--text-xl);position:relative;padding-left:var(--space-lg)}h3:before{content:"";display:block;position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.6}h4{font-size:var(--text-md);color:var(--ink-2)}h5{font-size:var(--text-base);color:var(--ink-2)}h6{font-size:var(--text-sm);color:var(--ink-3)}.wi-post__body :is(h1,h2,h3,h4,h5,h6),.wi-page__body :is(h1,h2,h3,h4,h5,h6),.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6){font-family:var(--font-sans);font-weight:700;line-height:1.35;letter-spacing:-.01em;color:var(--ink);scroll-margin-top:88px;text-wrap:balance;padding-left:0;border-left:0}.wi-post__body :is(h1,h2,h3,h4,h5,h6):before,.wi-post__body :is(h1,h2,h3,h4,h5,h6):after,.wi-page__body :is(h1,h2,h3,h4,h5,h6):before,.wi-page__body :is(h1,h2,h3,h4,h5,h6):after,.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6):before,.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6):after{content:none}.wi-post__body h1,.wi-page__body h1,.wi-messageboard__body h1{font-size:clamp(1.45rem,1.3rem + .7vw,1.75rem);margin-top:2em;margin-bottom:.7em}.wi-post__body h2,.wi-page__body h2,.wi-messageboard__body h2{font-size:clamp(1.3rem,1.2rem + .5vw,1.5rem);margin-top:1.9em;margin-bottom:.65em}.wi-post__body h3,.wi-page__body h3,.wi-messageboard__body h3{font-size:clamp(1.15rem,1.08rem + .35vw,1.28rem);margin-top:1.7em;margin-bottom:.6em}.wi-post__body h4,.wi-page__body h4,.wi-messageboard__body h4{font-size:clamp(1.05rem,1rem + .25vw,1.13rem);margin-top:1.5em;margin-bottom:.5em}.wi-post__body h5,.wi-page__body h5,.wi-messageboard__body h5{font-size:1rem;margin-top:1.4em;margin-bottom:.45em}.wi-post__body h6,.wi-page__body h6,.wi-messageboard__body h6{font-size:.95rem;font-weight:600;color:var(--ink-3);margin-top:1.4em;margin-bottom:.45em}.wi-post__body :is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6),.wi-page__body :is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6),.wi-messageboard__body :is(h1,h2,h3,h4,h5,h6)+:is(h1,h2,h3,h4,h5,h6){margin-top:.6em}.wi-post__body>:is(h1,h2,h3,h4,h5,h6):first-child,.wi-page__body>:is(h1,h2,h3,h4,h5,h6):first-child,.wi-messageboard__body>:is(h1,h2,h3,h4,h5,h6):first-child{margin-top:0}.wi-post__body p,.wi-page__body p,.wi-messageboard__body p{margin-block-end:1.2em}.wi-post__body *,.wi-page__body *,.wi-messageboard__body *{max-width:100%}.wi-post__body :is(pre,code,table),.wi-page__body :is(pre,code,table),.wi-messageboard__body :is(pre,code,table){overflow-x:auto}.wi-post__body pre,.wi-page__body pre,.wi-messageboard__body pre{margin-block:1.5em;padding:1.25em;border-radius:12px;border:1pxLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
@font-face{font-family:lg;src:url(data:font/woff2;base64,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) format("woff2"),url(/themes/warm-island/assets/lg.oyjwlqP2.ttf?io9a6k) format("truetype"),url(/themes/warm-island/assets/lg.CosQH4Cu.woff?io9a6k) format("woff"),url(/themes/warm-island/assets/lg.B0dIV2BS.svg?io9a6k#lg) format("svg");font-weight:400;font-style:normal;font-display:block}.lg-icon{font-family:lg!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lg-container{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.lg-next,.lg-prev{background-color:#00000073;border-radius:2px;color:#999;cursor:pointer;display:block;font-size:22px;margin-top:-10px;padding:8px 10px 9px;position:absolute;top:50%;z-index:1084;outline:none;border:none}.lg-next.disabled,.lg-prev.disabled{opacity:0!important;cursor:default}.lg-next:hover:not(.disabled),.lg-prev:hover:not(.disabled){color:#fff}.lg-single-item .lg-next,.lg-single-item .lg-prev{display:none}.lg-next{right:20px}.lg-next:before{content:""}.lg-prev{left:20px}.lg-prev:after{content:""}@-webkit-keyframes lg-right-end{0%{left:0}50%{left:-30px}to{left:0}}@-moz-keyframes lg-right-end{0%{left:0}50%{left:-30px}to{left:0}}@-ms-keyframes lg-right-end{0%{left:0}50%{left:-30px}to{left:0}}@keyframes lg-right-end{0%{left:0}50%{left:-30px}to{left:0}}@-webkit-keyframes lg-left-end{0%{left:0}50%{left:30px}to{left:0}}@-moz-keyframes lg-left-end{0%{left:0}50%{left:30px}to{left:0}}@-ms-keyframes lg-left-end{0%{left:0}50%{left:30px}to{left:0}}@keyframes lg-left-end{0%{left:0}50%{left:30px}to{left:0}}.lg-outer.lg-right-end .lg-object{-webkit-animation:lg-right-end .3s;-o-animation:lg-right-end .3s;animation:lg-riLine truncated
|
||||
@@ -0,0 +1,62 @@
|
||||
var I=function(){return I=Object.assign||function(t){for(var e,i=1,s=arguments.length;i<s;i++){e=arguments[i];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])}return t},I.apply(this,arguments)};function N(){for(var o=0,t=0,e=arguments.length;t<e;t++)o+=arguments[t].length;for(var i=Array(o),s=0,t=0;t<e;t++)for(var r=arguments[t],n=0,l=r.length;n<l;n++,s++)i[s]=r[n];return i}var p={afterAppendSlide:"lgAfterAppendSlide",init:"lgInit",hasVideo:"lgHasVideo",containerResize:"lgContainerResize",updateSlides:"lgUpdateSlides",afterAppendSubHtml:"lgAfterAppendSubHtml",beforeOpen:"lgBeforeOpen",afterOpen:"lgAfterOpen",slideItemLoad:"lgSlideItemLoad",beforeSlide:"lgBeforeSlide",afterSlide:"lgAfterSlide",posterClick:"lgPosterClick",dragStart:"lgDragStart",dragMove:"lgDragMove",dragEnd:"lgDragEnd",beforeNextSlide:"lgBeforeNextSlide",beforePrevSlide:"lgBeforePrevSlide",beforeClose:"lgBeforeClose",afterClose:"lgAfterClose"},q={mode:"lg-slide",easing:"ease",speed:400,licenseKey:"0000-0000-000-0000",height:"100%",width:"100%",addClass:"",startClass:"lg-start-zoom",backdropDuration:300,container:"",startAnimationDuration:400,zoomFromOrigin:!0,hideBarsDelay:0,showBarsAfter:1e4,slideDelay:0,supportLegacyBrowser:!0,allowMediaOverlap:!1,videoMaxSize:"1280-720",loadYouTubePoster:!0,defaultCaptionHeight:0,ariaLabelledby:"",ariaDescribedby:"",resetScrollPosition:!0,hideScrollbar:!1,closable:!0,swipeToClose:!0,closeOnTap:!0,showCloseIcon:!0,showMaximizeIcon:!1,loop:!0,escKey:!0,keyPress:!0,trapFocus:!0,controls:!0,slideEndAnimation:!0,hideControlOnEnd:!1,mousewheel:!1,getCaptionFromTitleOrAlt:!0,appendSubHtmlTo:".lg-sub-html",subHtmlSelectorRelative:!1,preload:2,numberOfSlideItemsInDom:10,selector:"",selectWithin:"",nextHtml:"",prevHtml:"",index:0,iframeWidth:"100%",iframeHeight:"100%",iframeMaxWidth:"100%",iframeMaxHeight:"100%",download:!0,counter:!0,appendCounterTo:".lg-toolbar",swipeThreshold:50,enableSwipe:!0,enableDrag:!0,dynamic:!1,dynamicEl:[],extraProps:[],exThumbImage:"",isMobile:void 0,mobileSettings:{controls:!1,showCloseIcon:!1,download:!1},plugins:[],strings:{closeGallery:"Close gallery",toggleMaximize:"Toggle maximize",previousSlide:"Previous slide",nextSlide:"Next slide",download:"Download",playVideo:"Play video",mediaLoadingFailed:"Oops... Failed to load content..."}};function V(){(function(){if(typeof window.CustomEvent=="function")return!1;function o(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var i=document.createEvent("CustomEvent");return i.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),i}window.CustomEvent=o})(),(function(){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector)})()}var D=(function(){function o(t){return this.cssVenderPrefixes=["TransitionDuration","TransitionTimingFunction","Transform","Transition"],this.selector=this._getSelector(t),this.firstElement=this._getFirstEl(),this}return o.generateUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=Math.random()*16|0,i=t=="x"?e:e&3|8;return i.toString(16)})},o.prototype._getSelector=function(t,e){if(e===void 0&&(e=document),typeof t!="string")return t;e=e||document;var i=t.substring(0,1);return i==="#"?e.querySelector(t):e.querySelectorAll(t)},o.prototype._each=function(t){return this.selector?(this.selector.length!==void 0?[].forEach.call(this.selector,t):t(this.selector,0),this):this},o.prototype._setCssVendorPrefix=function(t,e,i){var s=e.replace(/-([a-z])/gi,function(r,n){return n.toUpperCase()});this.cssVenderPrefixes.indexOf(s)!==-1?(t.style[s.charAt(0).toLowerCase()+s.slice(1)]=i,t.style["webkit"+s]=i,t.style["moz"+s]=i,t.style["ms"+s]=i,t.style["o"+s]=i):t.style[s]=i},o.prototype._getFirstEl=function(){return this.selector&&this.selector.length!==void 0?this.selector[0]:this.selector},o.prototype.isEventMatched=function(t,e){var i=e.split(".");return t.split(".").filter(function(s){return s}).every(function(s){return i.indexOf(s)!==-1})},o.prototype.attr=function(t,e){return e===void 0?this.firstElement?this.firstElement.getAttribute(t):"":(this._each(function(i){i.setAttribute(t,e)}),this)},o.prototype.find=function(t){return c(this._getSelector(t,this.selector))},o.prototype.first=function(){return this.selector&&this.selector.length!==void 0?c(this.selector[0]):c(this.selector)},o.prototype.eq=function(t){return c(this.selector[t])},o.prototype.parent=function(){return c(this.selector.parentElement)},o.prototype.get=function(){return this._getFirstEl()},o.prototype.removeAttr=function(t){var e=t.split(" ");return this._each(function(i){e.forEach(function(s){return i.removeAttribute(s)})}),this},o.prototype.wrap=function(t){if(!this.firstElement)return this;var e=document.createElement("div");return e.className=t,this.firstElement.parentNode.insertBefore(e,this.firstElement),this.firstElement.parentNode.removeChild(this.firstElement),e.appendChild(this.firstElement),this},o.prototype.addClasLine truncated
|
||||
<iframe class="lg-object" frameborder="0" `+n+' src="'+s+`" allowfullscreen="true"></iframe>
|
||||
</div>`},getImgMarkup:function(o,t,e,i,s,r){var n=i?'srcset="'+i+'"':"",l=s?'sizes="'+s+'"':"",g="<img "+e+" "+n+" "+l+' class="lg-object lg-image" data-index="'+o+'" src="'+t+'" />',h="";if(r){var d=typeof r=="string"?JSON.parse(r):r;h=d.map(function(u){var a="";return Object.keys(u).forEach(function(m){a+=" "+m+'="'+u[m]+'"'}),"<source "+a+"></source>"})}return""+h+g},getResponsiveSrc:function(o){for(var t=[],e=[],i="",s=0;s<o.length;s++){var r=o[s].split(" ");r[0]===""&&r.splice(0,1),e.push(r[0]),t.push(r[1])}for(var n=window.innerWidth,l=0;l<t.length;l++)if(parseInt(t[l],10)>n){i=e[l];break}return i},isImageLoaded:function(o){return!(!o||!o.complete||o.naturalWidth===0)},getVideoPosterMarkup:function(o,t,e,i,s){var r="";s&&s.youtube?r="lg-has-youtube":s&&s.vimeo?r="lg-has-vimeo":r="lg-has-html5";var n=t;return typeof t!="string"&&(n=t.outerHTML),'<div class="lg-video-cont '+r+'" style="'+e+`">
|
||||
<div class="lg-video-play-button">
|
||||
<svg
|
||||
viewBox="0 0 20 20"
|
||||
preserveAspectRatio="xMidYMid"
|
||||
focusable="false"
|
||||
aria-labelledby="`+i+`"
|
||||
role="img"
|
||||
class="lg-video-play-icon"
|
||||
>
|
||||
<title>`+i+`</title>
|
||||
<polygon class="lg-video-play-icon-inner" points="1,0 20,10 1,20"></polygon>
|
||||
</svg>
|
||||
<svg class="lg-video-play-icon-bg" viewBox="0 0 50 50" focusable="false">
|
||||
<circle cx="50%" cy="50%" r="20"></circle></svg>
|
||||
<svg class="lg-video-play-icon-circle" viewBox="0 0 50 50" focusable="false">
|
||||
<circle cx="50%" cy="50%" r="20"></circle>
|
||||
</svg>
|
||||
</div>
|
||||
`+n+`
|
||||
<img class="lg-object lg-video-poster" src="`+o+`" />
|
||||
</div>`},getFocusableElements:function(o){var t=o.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])'),e=[].filter.call(t,function(i){var s=window.getComputedStyle(i);return s.display!=="none"&&s.visibility!=="hidden"});return e},getDynamicOptions:function(o,t,e,i){var s=[],r=N(j,t);return[].forEach.call(o,function(n){for(var l={},g=0;g<n.attributes.length;g++){var h=n.attributes[g];if(h.specified){var d=K(h.name),u="";r.indexOf(d)>-1&&(u=d),u&&(l[u]=h.value)}}var a=c(n),m=a.find("img").first().attr("alt"),f=a.attr("title"),y=i?a.attr(i):a.find("img").first().attr("src");l.thumb=y,e&&!l.subHtml&&(l.subHtml=f||m||""),l.alt=m||f||"",s.push(l)}),s},isMobile:function(){return/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)},isVideo:function(o,t,e){if(!o){if(t)return{html5:!0};console.error("lightGallery :- data-src is not provided on slide item "+(e+1)+". Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/");return}var i=o.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i),s=o.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)(.*)?/i),r=o.match(/https?:\/\/(.+)?(wistia\.com|wi\.st)\/(medias|embed)\/([0-9a-z\-_]+)(.*)/);if(i)return{youtube:i};if(s)return{vimeo:s};if(r)return{wistia:r}}},$=0,U=(function(){function o(t,e){if(this.lgOpened=!1,this.index=0,this.plugins=[],this.lGalleryOn=!1,this.lgBusy=!1,this.currentItemsInDom=[],this.prevScrollTop=0,this.bodyPaddingRight=0,this.isDummyImageRemoved=!1,this.dragOrSwipeEnabled=!1,this.mediaContainerPosition={top:0,bottom:0},!t)return this;if($++,this.lgId=$,this.el=t,this.LGel=c(t),this.generateSettings(e),this.buildModules(),this.settings.dynamic&&this.settings.dynamicEl!==void 0&&!Array.isArray(this.settings.dynamicEl))throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.galleryItems=this.getItems(),this.normalizeSettings(),this.init(),this.validateLicense(),this}return o.prototype.generateSettings=function(t){if(this.settings=I(I({},q),t),this.settings.isMobile&&typeof this.settings.isMobile=="function"?this.settings.isMobile():b.isMobile()){var e=I(I({},this.settings.mobileSettings),this.settings.mobileSettings);this.settings=I(I({},this.settings),e)}},o.prototype.normalizeSettings=function(){if(this.settings.slideEndAnimation&&(this.settings.hideControlOnEnd=!1),this.settings.closable||(this.settings.swipeToClose=!1),this.zoomFromOrigin=this.settings.zoomFromOrigin,this.settings.dynamic&&(this.zoomFromOrigin=!1),this.settings.container){var t=this.settings.container;if(typeof t=="function")this.settings.container=t();else if(typeof t=="string"){var e=document.querySelector(t);this.settings.container=e??document.body}}else this.settings.container=document.body;this.settings.preload=Math.min(this.settings.preload,this.galleryItems.length)},o.prototype.init=function(){var t=this;this.addSlideVideoInfo(this.galleryItems),this.buildStructure(),this.LGel.trigger(p.init,{instance:this}),this.settings.keyPress&&this.keyPress(),setTimeout(function(){t.enableDrag(),t.enableSwipe(),t.triggerPosterClick()},50),this.arrow(),this.settings.mousewheel&&this.mousewheel(),this.settings.dynamic||this.openGalleryOnItemClick()},o.prototype.openGalleryOnItemClick=function(){for(var t=this,e=function(r){var n=i.items[r],l=c(n),g=D.generateUUID();l.attr("data-lg-id",g).on("click.lgcustom-item-"+g,function(h){h.preventDefault();var d=t.settings.index||r;t.openGallery(d,n)})},i=this,s=0;s<this.items.length;s++)e(s)},o.prototype.buildModules=function(){var t=this;this.settings.plugins.forEach(function(e){t.plugins.push(new e(t,c))})},o.prototype.validateLicense=function(){this.settings.licenseKey?this.settings.licenseKey==="0000-0000-000-0000"&&console.warn("lightGallery: "+this.settings.licenseKey+" license key is not valid for production use"):console.error("Please provide a valid license key")},o.prototype.getSlideItem=function(t){return c(this.getSlideItemId(t))},o.prototype.getSlideItemId=function(t){return"#lg-item-"+this.lgId+"-"+t},o.prototype.getIdName=function(t){return t+"-"+this.lgId},o.prototype.getElementById=function(t){return c("#"+this.getIdName(t))},o.prototype.manageSingleSlideClassName=function(){this.galleryItems.length<2?this.outer.addClass("lg-single-item"):this.outer.removeClass("lg-single-item")},o.prototype.buildStructure=function(){var t=this,e=this.$container&&this.$container.get();if(!e){var i="",s="";this.settings.controls&&(i='<button type="button" id="'+this.getIdName("lg-prev")+'" aria-label="'+this.settings.strings.previousSlide+'" class="lg-prev lg-icon"> '+this.settings.prevHtml+` </button>
|
||||
<button type="button" id="`+this.getIdName("lg-next")+'" aria-label="'+this.settings.strings.nextSlide+'" class="lg-next lg-icon"> '+this.settings.nextHtml+" </button>"),this.settings.appendSubHtmlTo!==".lg-item"&&(s='<div class="lg-sub-html" role="status" aria-live="polite"></div>');var r="";this.settings.allowMediaOverlap&&(r+="lg-media-overlap ");var n=this.settings.ariaLabelledby?'aria-labelledby="'+this.settings.ariaLabelledby+'"':"",l=this.settings.ariaDescribedby?'aria-describedby="'+this.settings.ariaDescribedby+'"':"",g="lg-container "+this.settings.addClass+" "+(document.body!==this.settings.container?"lg-inline":""),h=this.settings.closable&&this.settings.showCloseIcon?'<button type="button" aria-label="'+this.settings.strings.closeGallery+'" id="'+this.getIdName("lg-close")+'" class="lg-close lg-icon"></button>':"",d=this.settings.showMaximizeIcon?'<button type="button" aria-label="'+this.settings.strings.toggleMaximize+'" id="'+this.getIdName("lg-maximize")+'" class="lg-maximize lg-icon"></button>':"",u=`
|
||||
<div class="`+g+'" id="'+this.getIdName("lg-container")+'" tabindex="-1" aria-modal="true" '+n+" "+l+` role="dialog"
|
||||
>
|
||||
<div id="`+this.getIdName("lg-backdrop")+`" class="lg-backdrop"></div>
|
||||
|
||||
<div id="`+this.getIdName("lg-outer")+'" class="lg-outer lg-use-css3 lg-css3 lg-hide-items '+r+` ">
|
||||
|
||||
<div id="`+this.getIdName("lg-content")+`" class="lg-content">
|
||||
<div id="`+this.getIdName("lg-inner")+`" class="lg-inner">
|
||||
</div>
|
||||
`+i+`
|
||||
</div>
|
||||
<div id="`+this.getIdName("lg-toolbar")+`" class="lg-toolbar lg-group">
|
||||
`+d+`
|
||||
`+h+`
|
||||
</div>
|
||||
`+(this.settings.appendSubHtmlTo===".lg-outer"?s:"")+`
|
||||
<div id="`+this.getIdName("lg-components")+`" class="lg-components">
|
||||
`+(this.settings.appendSubHtmlTo===".lg-sub-html"?s:"")+`
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;c(this.settings.container).append(u),document.body!==this.settings.container&&c(this.settings.container).css("position","relative"),this.outer=this.getElementById("lg-outer"),this.$lgComponents=this.getElementById("lg-components"),this.$backdrop=this.getElementById("lg-backdrop"),this.$container=this.getElementById("lg-container"),this.$inner=this.getElementById("lg-inner"),this.$content=this.getElementById("lg-content"),this.$toolbar=this.getElementById("lg-toolbar"),this.$backdrop.css("transition-duration",this.settings.backdropDuration+"ms");var a=this.settings.mode+" ";this.manageSingleSlideClassName(),this.settings.enableDrag&&(a+="lg-grab "),this.outer.addClass(a),this.$inner.css("transition-timing-function",this.settings.easing),this.$inner.css("transition-duration",this.settings.speed+"ms"),this.settings.download&&this.$toolbar.append('<a id="'+this.getIdName("lg-download")+'" target="_blank" rel="noopener" aria-label="'+this.settings.strings.download+'" download class="lg-download lg-icon"></a>'),this.counter(),c(window).on("resize.lg.global"+this.lgId+" orientationchange.lg.global"+this.lgId,function(){t.refreshOnResize()}),this.hideBars(),this.manageCloseGallery(),this.toggleMaximize(),this.initModules()}},o.prototype.refreshOnResize=function(){if(this.lgOpened){var t=this.galleryItems[this.index],e=t.__slideVideoInfo;this.mediaContainerPosition=this.getMediaContainerPosition();var i=this.mediaContainerPosition,s=i.top,r=i.bottom;if(this.currentImageSize=b.getSize(this.items[this.index],this.outer,s+r,e&&this.settings.videoMaxSize),e&&this.resizeVideoSlide(this.index,this.currentImageSize),this.zoomFromOrigin&&!this.isDummyImageRemoved){var n=this.getDummyImgStyles(this.currentImageSize);this.outer.find(".lg-current .lg-dummy-img").first().attr("style",n)}this.LGel.trigger(p.containerResize)}},o.prototype.resizeVideoSlide=function(t,e){var i=this.getVideoContStyle(e),s=this.getSlideItem(t);s.find(".lg-video-cont").attr("style",i)},o.prototype.updateSlides=function(t,e){if(this.index>t.length-1&&(this.index=t.length-1),t.length===1&&(this.index=0),!t.length){this.closeGallery();return}var i=this.galleryItems[e].src;this.galleryItems=t,this.updateControls(),this.$inner.empty(),this.currentItemsInDom=[];var s=0;this.galleryItems.some(function(r,n){return r.src===i?(s=n,!0):!1}),this.currentItemsInDom=this.organizeSlideItems(s,-1),this.loadContent(s,!0),this.getSlideItem(s).addClass("lg-current"),this.index=s,this.updateCurrentCounter(s),this.LGel.trigger(p.updateSlides)},o.prototype.getItems=function(){if(this.items=[],this.settings.dynamic)return this.settings.dynamicEl||[];if(this.settings.selector==="this")this.items.push(this.el);else if(this.settings.selector)if(typeof this.settings.selector=="string")if(this.settings.selectWithin){var t=c(this.settings.selectWithin);this.items=t.find(this.settings.selector).get()}else this.items=this.el.querySelectorAll(this.settings.selector);else this.items=this.settings.selector;else this.items=this.el.children;return b.getDynamicOptions(this.items,this.settings.extraProps,this.settings.getCaptionFromTitleOrAlt,this.settings.exThumbImage)},o.prototype.shouldHideScrollbar=function(){return this.settings.hideScrollbar&&document.body===this.settings.container},o.prototype.hideScrollbar=function(){if(this.shouldHideScrollbar()){this.bodyPaddingRight=parseFloat(c("body").style().paddingRight);var t=document.documentElement.getBoundingClientRect(),e=window.innerWidth-t.width;c(document.body).css("padding-right",e+this.bodyPaddingRight+"px"),c(document.body).addClass("lg-overlay-open")}},o.prototype.resetScrollBar=function(){this.shouldHideScrollbar()&&(c(document.body).css("padding-right",this.bodyPaddingRight+"px"),c(document.body).removeClass("lg-overlay-open"))},o.prototype.openGallery=function(t,e){var i=this;if(t===void 0&&(t=this.settings.index),!this.lgOpened){this.lgOpened=!0,this.outer.removeClass("lg-hide-items"),this.hideScrollbar(),this.$container.addClass("lg-show");var s=this.getItemsToBeInsertedToDom(t,t);this.currentItemsInDom=s;var r="";s.forEach(function(a){r=r+('<div id="'+a+'" class="lg-item"></div>')}),this.$inner.append(r),this.addHtml(t);var n="";this.mediaContainerPosition=this.getMediaContainerPosition();var l=this.mediaContainerPosition,g=l.top,h=l.bottom;this.settings.allowMediaOverlap||this.setMediaContainerPosition(g,h);var d=this.galleryItems[t].__slideVideoInfo;this.zoomFromOrigin&&e&&(this.currentImageSize=b.getSize(e,this.outer,g+h,d&&this.settings.videoMaxSize),n=b.getTransform(e,this.outer,g,h,this.currentImageSize)),(!this.zoomFromOrigin||!n)&&(this.outer.addClass(this.settings.startClass),this.getSlideItem(t).removeClass("lg-complete"));var u=this.settings.zoomFromOrigin?100:this.settings.backdropDuration;setTimeout(function(){i.outer.addClass("lg-components-open")},u),this.index=t,this.LGel.trigger(p.beforeOpen),this.getSlideItem(t).addClass("lg-current"),this.lGalleryOn=!1,this.prevScrollTop=c(window).scrollTop(),
Line truncated
|
||||
<span id="`+this.getIdName("lg-counter-current")+'" class="lg-counter-current">'+(this.index+1)+` </span> /
|
||||
<span id="`+this.getIdName("lg-counter-all")+'" class="lg-counter-all">'+this.galleryItems.length+" </span></div>";this.outer.find(this.settings.appendCounterTo).append(t)}},o.prototype.addHtml=function(t){var e,i;if(this.galleryItems[t].subHtmlUrl?i=this.galleryItems[t].subHtmlUrl:e=this.galleryItems[t].subHtml,!i)if(e){var s=e.substring(0,1);if(s==="."||s==="#")try{this.settings.subHtmlSelectorRelative&&!this.settings.dynamic?e=c(this.items).eq(t).find(e).first().html():e=c(e).first().html()}catch{console.warn('Error processing subHtml selector "'+e+'"'),e=""}}else e="";if(this.settings.appendSubHtmlTo!==".lg-item")i?b.fetchCaptionFromUrl(i,this.outer.find(".lg-sub-html"),"replace"):this.outer.find(".lg-sub-html").html(e);else{var r=c(this.getSlideItemId(t));i?b.fetchCaptionFromUrl(i,r,"append"):r.append('<div class="lg-sub-html">'+e+"</div>")}typeof e<"u"&&e!==null&&(e===""?this.outer.find(this.settings.appendSubHtmlTo).addClass("lg-empty-html"):this.outer.find(this.settings.appendSubHtmlTo).removeClass("lg-empty-html")),this.LGel.trigger(p.afterAppendSubHtml,{index:t})},o.prototype.preload=function(t){for(var e=1;e<=this.settings.preload&&!(e>=this.galleryItems.length-t);e++)this.loadContent(t+e,!1);for(var i=1;i<=this.settings.preload&&!(t-i<0);i++)this.loadContent(t-i,!1)},o.prototype.getDummyImgStyles=function(t){return t?"width:"+t.width+`px;
|
||||
margin-left: -`+t.width/2+`px;
|
||||
margin-top: -`+t.height/2+`px;
|
||||
height:`+t.height+"px":""},o.prototype.getVideoContStyle=function(t){return t?"width:"+t.width+`px;
|
||||
height:`+t.height+"px":""},o.prototype.getDummyImageContent=function(t,e,i){var s;if(this.settings.dynamic||(s=c(this.items).eq(e)),s){var r=void 0;if(this.settings.exThumbImage?r=s.attr(this.settings.exThumbImage):r=s.find("img").first().attr("src"),!r)return"";var n=this.getDummyImgStyles(this.currentImageSize),l=document.createElement("img");return l.alt=i||"",l.src=r,l.className="lg-dummy-img",l.style.cssText=n,t.addClass("lg-first-slide"),this.outer.addClass("lg-first-slide-loading"),l}return""},o.prototype.setImgMarkup=function(t,e,i){var s=this.galleryItems[i],r=s.alt,n=s.srcset,l=s.sizes,g=s.sources,h="",d=r?'alt="'+r+'"':"";this.isFirstSlideWithZoomAnimation()?h=this.getDummyImageContent(e,i,d):h=b.getImgMarkup(i,t,d,n,l,g);var u=document.createElement("picture");u.className="lg-img-wrap",c(u).append(h),e.prepend(u)},o.prototype.onSlideObjectLoad=function(t,e,i,s){var r=t.find(".lg-object").first();b.isImageLoaded(r.get())||e?i():(r.on("load.lg error.lg",function(){i&&i()}),r.on("error.lg",function(){s&&s()}))},o.prototype.onLgObjectLoad=function(t,e,i,s,r,n){var l=this;this.onSlideObjectLoad(t,n,function(){l.triggerSlideItemLoad(t,e,i,s,r)},function(){t.addClass("lg-complete lg-complete_"),t.html('<span class="lg-error-msg">'+l.settings.strings.mediaLoadingFailed+"</span>")})},o.prototype.triggerSlideItemLoad=function(t,e,i,s,r){var n=this,l=this.galleryItems[e],g=r&&this.getSlideType(l)==="video"&&!l.poster?s:0;setTimeout(function(){t.addClass("lg-complete lg-complete_"),n.LGel.trigger(p.slideItemLoad,{index:e,delay:i||0,isFirstSlide:r})},g)},o.prototype.isFirstSlideWithZoomAnimation=function(){return!!(!this.lGalleryOn&&this.zoomFromOrigin&&this.currentImageSize)},o.prototype.addSlideVideoInfo=function(t){var e=this;t.forEach(function(i,s){i.__slideVideoInfo=b.isVideo(i.src,!!i.video,s),i.__slideVideoInfo&&e.settings.loadYouTubePoster&&!i.poster&&i.__slideVideoInfo.youtube&&(i.poster="//img.youtube.com/vi/"+i.__slideVideoInfo.youtube[1]+"/maxresdefault.jpg")})},o.prototype.loadContent=function(t,e){var i=this,s=this.galleryItems[t],r=c(this.getSlideItemId(t)),n=s.poster,l=s.srcset,g=s.sizes,h=s.sources,d=s.src,u=s.video,a=u&&typeof u=="string"?JSON.parse(u):u;if(s.responsive){var m=s.responsive.split(",");d=b.getResponsiveSrc(m)||d}var f=s.__slideVideoInfo,y="",w=!!s.iframe,v=!this.lGalleryOn,C=0;if(v&&(this.zoomFromOrigin&&this.currentImageSize?C=this.settings.startAnimationDuration+10:C=this.settings.backdropDuration+10),!r.hasClass("lg-loaded")){if(f){var P=this.mediaContainerPosition,F=P.top,B=P.bottom,H=b.getSize(this.items[t],this.outer,F+B,f&&this.settings.videoMaxSize);y=this.getVideoContStyle(H)}if(w){var T=b.getIframeMarkup(this.settings.iframeWidth,this.settings.iframeHeight,this.settings.iframeMaxWidth,this.settings.iframeMaxHeight,d,s.iframeTitle);r.prepend(T)}else if(n){var k="",W=v&&this.zoomFromOrigin&&this.currentImageSize;W&&(k=this.getDummyImageContent(r,t,""));var T=b.getVideoPosterMarkup(n,k||"",y,this.settings.strings.playVideo,f);r.prepend(T)}else if(f){var T='<div class="lg-video-cont " style="'+y+'"></div>';r.prepend(T)}else if(this.setImgMarkup(d,r,t),l||h){var Y=r.find(".lg-object");this.initPictureFill(Y)}(n||f)&&this.LGel.trigger(p.hasVideo,{index:t,src:d,html5Video:a,hasPoster:!!n}),this.LGel.trigger(p.afterAppendSlide,{index:t}),this.lGalleryOn&&this.settings.appendSubHtmlTo===".lg-item"&&this.addHtml(t)}var x=0;C&&!c(document.body).hasClass("lg-from-hash")&&(x=C),this.isFirstSlideWithZoomAnimation()&&(setTimeout(function(){r.removeClass("lg-start-end-progress lg-start-progress").removeAttr("style")},this.settings.startAnimationDuration+100),r.hasClass("lg-loaded")||setTimeout(function(){if(i.getSlideType(s)==="image"){var G=s.alt,R=G?'alt="'+G+'"':"";if(r.find(".lg-img-wrap").append(b.getImgMarkup(t,d,R,l,g,s.sources)),l||h){var Z=r.find(".lg-object");i.initPictureFill(Z)}}(i.getSlideType(s)==="image"||i.getSlideType(s)==="video"&&n)&&(i.onLgObjectLoad(r,t,C,x,!0,!1),i.onSlideObjectLoad(r,!!(f&&f.html5&&!n),function(){i.loadContentOnFirstSlideLoad(t,r,x)},function(){i.loadContentOnFirstSlideLoad(t,r,x)}))},this.settings.startAnimationDuration+100)),r.addClass("lg-loaded"),(!this.isFirstSlideWithZoomAnimation()||this.getSlideType(s)==="video"&&!n)&&this.onLgObjectLoad(r,t,C,x,v,!!(f&&f.html5&&!n)),(!this.zoomFromOrigin||!this.currentImageSize)&&r.hasClass("lg-complete_")&&!this.lGalleryOn&&setTimeout(function(){r.addClass("lg-complete")},this.settings.backdropDuration),this.lGalleryOn=!0,e===!0&&(r.hasClass("lg-complete_")?this.preload(t):r.find(".lg-object").first().on("load.lg error.lg",function(){i.preload(t)}))},o.prototype.loadContentOnFirstSlideLoad=function(t,e,i){var s=this;setTimeout(function(){e.find(".lg-dummy-img").remove(),e.removeClass("lg-first-slide"),s.outer.removeClass("lg-first-slide-loading"),s.isDummyImageRemoved=!0,s.preload(t)},i+300)},o.prototype.getItemsToBeInsertedToDom=function(t,e,i){var s=this;i===void 0&&(i=0);var r=[]
Line truncated
|
||||
<div class="lg-thumb lg-group">
|
||||
</div>
|
||||
</div>`;this.core.outer.addClass("lg-has-thumb"),this.settings.appendThumbnailsTo===".lg-components"?this.core.$lgComponents.append(e):this.core.outer.append(e),this.$thumbOuter=this.core.outer.find(".lg-thumb-outer").first(),this.$lgThumb=this.core.outer.find(".lg-thumb").first(),this.settings.animateThumb&&this.core.outer.find(".lg-thumb").css("transition-duration",this.core.settings.speed+"ms").css("width",this.thumbTotalWidth+"px").css("position","relative"),this.setThumbItemHtml(this.core.galleryItems)},o.prototype.enableThumbDrag=function(){var t=this,e={cords:{startX:0,endX:0},isMoved:!1,newTranslateX:0,startTime:new Date,endTime:new Date,touchMoveTime:0},i=!1;this.$thumbOuter.addClass("lg-grab"),this.core.outer.find(".lg-thumb").first().on("mousedown.lg.thumb",function(s){t.thumbTotalWidth>t.thumbOuterWidth&&(s.preventDefault(),e.cords.startX=s.pageX,e.startTime=new Date,t.thumbClickable=!1,i=!0,t.core.outer.get().scrollLeft+=1,t.core.outer.get().scrollLeft-=1,t.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))}),this.$LG(window).on("mousemove.lg.thumb.global"+this.core.lgId,function(s){t.core.lgOpened&&i&&(e.cords.endX=s.pageX,e=t.onThumbTouchMove(e))}),this.$LG(window).on("mouseup.lg.thumb.global"+this.core.lgId,function(){t.core.lgOpened&&(e.isMoved?e=t.onThumbTouchEnd(e):t.thumbClickable=!0,i&&(i=!1,t.$thumbOuter.removeClass("lg-grabbing").addClass("lg-grab")))})},o.prototype.enableThumbSwipe=function(){var t=this,e={cords:{startX:0,endX:0},isMoved:!1,newTranslateX:0,startTime:new Date,endTime:new Date,touchMoveTime:0};this.$lgThumb.on("touchstart.lg",function(i){t.thumbTotalWidth>t.thumbOuterWidth&&(i.preventDefault(),e.cords.startX=i.targetTouches[0].pageX,t.thumbClickable=!1,e.startTime=new Date)}),this.$lgThumb.on("touchmove.lg",function(i){t.thumbTotalWidth>t.thumbOuterWidth&&(i.preventDefault(),e.cords.endX=i.targetTouches[0].pageX,e=t.onThumbTouchMove(e))}),this.$lgThumb.on("touchend.lg",function(){e.isMoved?e=t.onThumbTouchEnd(e):t.thumbClickable=!0})},o.prototype.rebuildThumbnails=function(){var t=this;this.$thumbOuter.addClass("lg-rebuilding-thumbnails"),setTimeout(function(){t.thumbTotalWidth=t.core.galleryItems.length*(t.settings.thumbWidth+t.settings.thumbMargin),t.$lgThumb.css("width",t.thumbTotalWidth+"px"),t.$lgThumb.empty(),t.setThumbItemHtml(t.core.galleryItems),t.animateThumb(t.core.index)},50),setTimeout(function(){t.$thumbOuter.removeClass("lg-rebuilding-thumbnails")},200)},o.prototype.setTranslate=function(t){this.$lgThumb.css("transform","translate3d(-"+t+"px, 0px, 0px)")},o.prototype.getPossibleTransformX=function(t){return t>this.thumbTotalWidth-this.thumbOuterWidth&&(t=this.thumbTotalWidth-this.thumbOuterWidth),t<0&&(t=0),t},o.prototype.animateThumb=function(t){if(this.$lgThumb.css("transition-duration",this.core.settings.speed+"ms"),this.settings.animateThumb){var e=0;switch(this.settings.currentPagerPosition){case"left":e=0;break;case"middle":e=this.thumbOuterWidth/2-this.settings.thumbWidth/2;break;case"right":e=this.thumbOuterWidth-this.settings.thumbWidth}this.translateX=(this.settings.thumbWidth+this.settings.thumbMargin)*t-1-e,this.translateX>this.thumbTotalWidth-this.thumbOuterWidth&&(this.translateX=this.thumbTotalWidth-this.thumbOuterWidth),this.translateX<0&&(this.translateX=0),this.setTranslate(this.translateX)}},o.prototype.onThumbTouchMove=function(t){return t.newTranslateX=this.translateX,t.isMoved=!0,t.touchMoveTime=new Date().valueOf(),t.newTranslateX-=t.cords.endX-t.cords.startX,t.newTranslateX=this.getPossibleTransformX(t.newTranslateX),this.setTranslate(t.newTranslateX),this.$thumbOuter.addClass("lg-dragging"),t},o.prototype.onThumbTouchEnd=function(t){t.isMoved=!1,t.endTime=new Date,this.$thumbOuter.removeClass("lg-dragging");var e=t.endTime.valueOf()-t.startTime.valueOf(),i=t.cords.endX-t.cords.startX,s=Math.abs(i)/e;return s>.15&&t.endTime.valueOf()-t.touchMoveTime<30?(s+=1,s>2&&(s+=1),s=s+s*(Math.abs(i)/this.thumbOuterWidth),this.$lgThumb.css("transition-duration",Math.min(s-1,2)+"settings"),i=i*s,this.translateX=this.getPossibleTransformX(this.translateX-i),this.setTranslate(this.translateX)):this.translateX=t.newTranslateX,Math.abs(t.cords.endX-t.cords.startX)<this.settings.thumbnailSwipeThreshold&&(this.thumbClickable=!0),t},o.prototype.getThumbHtml=function(t,e,i){var s=this.core.galleryItems[e].__slideVideoInfo||{},r;s.youtube&&this.settings.loadYouTubeThumbnail?r="//img.youtube.com/vi/"+s.youtube[1]+"/"+this.settings.youTubeThumbSize+".jpg":r=t;var n=document.createElement("div");n.setAttribute("data-lg-item-id",e+""),n.className="lg-thumb-item "+(e===this.core.index?"active":""),n.style.cssText="width: "+this.settings.thumbWidth+"px; height: "+this.settings.thumbHeight+"; margin-right: "+this.settings.thumbMargin+"px;";var l=document.createElement("img");return l.alt=i||"",l.setAttribute("data-lg-item-id",e+""),l.src=r,n.appendChild(l),n},o.prototype.setThumbItemHtml=function(t){for(var e=0;e<t.length;e++){var i=this.getLine truncated
|
||||
webkitfullscreenchange.lg.global`+this.core.lgId+`
|
||||
mozfullscreenchange.lg.global`+this.core.lgId+`
|
||||
MSFullscreenChange.lg.global`+this.core.lgId,function(){t.core.lgOpened&&t.core.outer.toggleClass("lg-fullscreen-on")}),this.core.outer.find(".lg-fullscreen").first().on("click.lg",function(){t.isFullScreen()?t.exitFullscreen():t.requestFullscreen()})},o.prototype.closeGallery=function(){this.isFullScreen()&&this.exitFullscreen()},o.prototype.destroy=function(){this.$LG(document).off("fullscreenchange.lg.global"+this.core.lgId+`
|
||||
webkitfullscreenchange.lg.global`+this.core.lgId+`
|
||||
mozfullscreenchange.lg.global`+this.core.lgId+`
|
||||
MSFullscreenChange.lg.global`+this.core.lgId)},o})(),X=new WeakSet;function rt(o){return!!X.has(o)}function nt(o){X.add(o)}function lt(o,t){if(!o)return t||"";var e=o.split("|");if(e.length<8)return t||"";var i=e[0],s=e[1],r=e[2],n=e[3],l=e[4],g=e[5],h=e[6],d=e[7],u=i||s||r||n||l||g||h;if(!u)return t||"";var a='<div class="wi-lg-caption">'+(t||"")+"</div>";if(a+='<div class="wi-lg-exif">',(i||s)&&(a+='<span class="wi-lg-exif__item wi-lg-exif__camera">'+(i?i+" ":"")+s+"</span>"),r&&(a+='<span class="wi-lg-exif__item wi-lg-exif__lens">'+r+"</span>"),a+='<div class="wi-lg-exif__params">',n&&(a+='<span class="wi-lg-exif__item wi-lg-exif__aperture">f/'+n+"</span>"),l&&(a+='<span class="wi-lg-exif__item wi-lg-exif__shutter">'+l+"s</span>"),g&&(a+='<span class="wi-lg-exif__item wi-lg-exif__iso">ISO '+g+"</span>"),h){var m=h+"mm";d&&d!==h&&(m+=" (eq. "+d+"mm)"),a+='<span class="wi-lg-exif__item wi-lg-exif__focal">'+m+"</span>"}return a+="</div></div>",a}function at(o){var t=o.querySelectorAll(".wi-lightgallery-item[data-exif]");t.forEach(function(e){var i=e.getAttribute("data-exif");if(i){var s=e.getAttribute("data-sub-html")||"",r=lt(i,s);r&&r!==s&&e.setAttribute("data-sub-html",r)}})}function gt(){return{selector:".wi-lightgallery-item",plugins:[tt,it,ot],speed:280,mode:"lg-fade",licenseKey:"0000-0000-0000-0000",download:!1,counter:!0,preload:2,thumbWidth:80,thumbHeight:"60px",thumbMargin:4,zoomFromOrigin:!0,actualSize:!1,showZoomInOutIcons:!0,toggleThumb:!0,allowMediaOverlap:!0,mobileSettings:{controls:!0,showCloseIcon:!0,download:!1}}}function O(o){if(!rt(o)){var t=o.querySelectorAll(".wi-lightgallery-item");t.length!==0&&(at(o),J(o,gt()),nt(o))}}function ht(){return window.innerWidth<768}function E(){ut(),dt(),ct(),document.addEventListener("click",function(o){var t=o.target.closest(".lg-toggle-thumb");if(t){o.stopPropagation();var e=t.closest(".lg-outer");e&&e.classList.toggle("wi-thumb-shown")}},!0),document.addEventListener("click",function(o){var t=o.target.closest(".wi-lightgallery-item");t&&setTimeout(function(){var e=document.querySelector(".lg-outer");e&&!e.classList.contains("wi-thumb-shown")&&!ht()&&e.classList.add("wi-thumb-shown")},350)})}function ut(){var o=[".wi-post__body",".wi-page__body"];o.forEach(function(t){var e=document.querySelectorAll(t);e.forEach(function(i){mt(i),O(i)})})}function dt(){var o=document.querySelector(".wi-photos-page__all-groups");if(o){var t=o.querySelectorAll(".wi-photos-page__link");t.forEach(function(r){r.classList.add("wi-lightgallery-item")}),O(o);return}var e=document.querySelector(".wi-photos-page__grid:not(.wi-photos-page__all-groups .wi-photos-page__grid)");if(e){var i=e.querySelectorAll(".wi-photos-page__link");i.forEach(function(r){r.classList.add("wi-lightgallery-item")}),O(e);return}var s=document.querySelectorAll(".wi-photos-page__grid");s.forEach(function(r){ft(r),O(r)})}function ct(){var o=[".wi-moments-page__media",".wi-moments-page__card-media",".wi-moments-page__masonry-media"];o.forEach(function(t){var e=document.querySelectorAll(t);e.forEach(function(i){pt(i),O(i)})})}function mt(o){var t=o.querySelectorAll("img");t.forEach(function(e){var i=e.getAttribute("src");if(i){var s=e.getAttribute("width"),r=e.getAttribute("height");if(!(s&&parseInt(s)<50||r&&parseInt(r)<50)){var n=(e.getAttribute("class")||"").toLowerCase();if(!/emoji|icon|avatar|logo|badge|smiley/.test(n)&&e.getAttribute("role")!=="presentation"&&e.getAttribute("aria-hidden")!=="true"){var l=e.closest("a");if(l){if(l.getAttribute("target")==="_blank")return;if(l.classList.add("wi-lightgallery-item"),!l.getAttribute("data-src")){var g=l.getAttribute("href")||i;l.setAttribute("data-src",g)}var h=e.getAttribute("alt")||"";h&&!l.getAttribute("data-sub-html")&&l.setAttribute("data-sub-html",h)}else{var d=document.createElement("a");d.setAttribute("href",i),d.setAttribute("data-src",i),d.classList.add("wi-lightgallery-item");var u=e.getAttribute("alt")||"";u&&d.setAttribute("data-sub-html",u),e.parentNode.insertBefore(d,e),d.appendChild(e)}}}}})}function ft(o){var t=o.querySelectorAll(".wi-photos-page__link");t.forEach(function(e){e.classList.add("wi-lightgallery-item")})}function pt(o){var t=o.querySelectorAll("img");t.forEach(function(e){var i=e.getAttribute("src");i&&(e.classList.add("wi-lightgallery-item"),e.getAttribute("data-src")||e.setAttribute("data-src",i))})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",function(){"requestIdleCallback"in window?requestIdleCallback(E,{timeout:2e3}):setTimeout(E,200)}):"requestIdleCallback"in window?requestIdleCallback(E,{timeout:2e3}):setTimeout(E,200);
|
||||
@@ -0,0 +1,62 @@
|
||||
var I=function(){return I=Object.assign||function(t){for(var e,i=1,s=arguments.length;i<s;i++){e=arguments[i];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])}return t},I.apply(this,arguments)};function Z(){for(var o=0,t=0,e=arguments.length;t<e;t++)o+=arguments[t].length;for(var i=Array(o),s=0,t=0;t<e;t++)for(var r=arguments[t],n=0,l=r.length;n<l;n++,s++)i[s]=r[n];return i}var p={afterAppendSlide:"lgAfterAppendSlide",init:"lgInit",hasVideo:"lgHasVideo",containerResize:"lgContainerResize",updateSlides:"lgUpdateSlides",afterAppendSubHtml:"lgAfterAppendSubHtml",beforeOpen:"lgBeforeOpen",afterOpen:"lgAfterOpen",slideItemLoad:"lgSlideItemLoad",beforeSlide:"lgBeforeSlide",afterSlide:"lgAfterSlide",posterClick:"lgPosterClick",dragStart:"lgDragStart",dragMove:"lgDragMove",dragEnd:"lgDragEnd",beforeNextSlide:"lgBeforeNextSlide",beforePrevSlide:"lgBeforePrevSlide",beforeClose:"lgBeforeClose",afterClose:"lgAfterClose"},q={mode:"lg-slide",easing:"ease",speed:400,licenseKey:"0000-0000-000-0000",height:"100%",width:"100%",addClass:"",startClass:"lg-start-zoom",backdropDuration:300,container:"",startAnimationDuration:400,zoomFromOrigin:!0,hideBarsDelay:0,showBarsAfter:1e4,slideDelay:0,supportLegacyBrowser:!0,allowMediaOverlap:!1,videoMaxSize:"1280-720",loadYouTubePoster:!0,defaultCaptionHeight:0,ariaLabelledby:"",ariaDescribedby:"",resetScrollPosition:!0,hideScrollbar:!1,closable:!0,swipeToClose:!0,closeOnTap:!0,showCloseIcon:!0,showMaximizeIcon:!1,loop:!0,escKey:!0,keyPress:!0,trapFocus:!0,controls:!0,slideEndAnimation:!0,hideControlOnEnd:!1,mousewheel:!1,getCaptionFromTitleOrAlt:!0,appendSubHtmlTo:".lg-sub-html",subHtmlSelectorRelative:!1,preload:2,numberOfSlideItemsInDom:10,selector:"",selectWithin:"",nextHtml:"",prevHtml:"",index:0,iframeWidth:"100%",iframeHeight:"100%",iframeMaxWidth:"100%",iframeMaxHeight:"100%",download:!0,counter:!0,appendCounterTo:".lg-toolbar",swipeThreshold:50,enableSwipe:!0,enableDrag:!0,dynamic:!1,dynamicEl:[],extraProps:[],exThumbImage:"",isMobile:void 0,mobileSettings:{controls:!1,showCloseIcon:!1,download:!1},plugins:[],strings:{closeGallery:"Close gallery",toggleMaximize:"Toggle maximize",previousSlide:"Previous slide",nextSlide:"Next slide",download:"Download",playVideo:"Play video",mediaLoadingFailed:"Oops... Failed to load content..."}};function V(){(function(){if(typeof window.CustomEvent=="function")return!1;function o(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var i=document.createEvent("CustomEvent");return i.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),i}window.CustomEvent=o})(),(function(){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector)})()}var D=(function(){function o(t){return this.cssVenderPrefixes=["TransitionDuration","TransitionTimingFunction","Transform","Transition"],this.selector=this._getSelector(t),this.firstElement=this._getFirstEl(),this}return o.generateUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=Math.random()*16|0,i=t=="x"?e:e&3|8;return i.toString(16)})},o.prototype._getSelector=function(t,e){if(e===void 0&&(e=document),typeof t!="string")return t;e=e||document;var i=t.substring(0,1);return i==="#"?e.querySelector(t):e.querySelectorAll(t)},o.prototype._each=function(t){return this.selector?(this.selector.length!==void 0?[].forEach.call(this.selector,t):t(this.selector,0),this):this},o.prototype._setCssVendorPrefix=function(t,e,i){var s=e.replace(/-([a-z])/gi,function(r,n){return n.toUpperCase()});this.cssVenderPrefixes.indexOf(s)!==-1?(t.style[s.charAt(0).toLowerCase()+s.slice(1)]=i,t.style["webkit"+s]=i,t.style["moz"+s]=i,t.style["ms"+s]=i,t.style["o"+s]=i):t.style[s]=i},o.prototype._getFirstEl=function(){return this.selector&&this.selector.length!==void 0?this.selector[0]:this.selector},o.prototype.isEventMatched=function(t,e){var i=e.split(".");return t.split(".").filter(function(s){return s}).every(function(s){return i.indexOf(s)!==-1})},o.prototype.attr=function(t,e){return e===void 0?this.firstElement?this.firstElement.getAttribute(t):"":(this._each(function(i){i.setAttribute(t,e)}),this)},o.prototype.find=function(t){return c(this._getSelector(t,this.selector))},o.prototype.first=function(){return this.selector&&this.selector.length!==void 0?c(this.selector[0]):c(this.selector)},o.prototype.eq=function(t){return c(this.selector[t])},o.prototype.parent=function(){return c(this.selector.parentElement)},o.prototype.get=function(){return this._getFirstEl()},o.prototype.removeAttr=function(t){var e=t.split(" ");return this._each(function(i){e.forEach(function(s){return i.removeAttribute(s)})}),this},o.prototype.wrap=function(t){if(!this.firstElement)return this;var e=document.createElement("div");return e.className=t,this.firstElement.parentNode.insertBefore(e,this.firstElement),this.firstElement.parentNode.removeChild(this.firstElement),e.appendChild(this.firstElement),this},o.prototype.addClasLine truncated
|
||||
<iframe class="lg-object" frameborder="0" `+n+' src="'+s+`" allowfullscreen="true"></iframe>
|
||||
</div>`},getImgMarkup:function(o,t,e,i,s,r){var n=i?'srcset="'+i+'"':"",l=s?'sizes="'+s+'"':"",g="<img "+e+" "+n+" "+l+' class="lg-object lg-image" data-index="'+o+'" src="'+t+'" />',h="";if(r){var d=typeof r=="string"?JSON.parse(r):r;h=d.map(function(u){var a="";return Object.keys(u).forEach(function(m){a+=" "+m+'="'+u[m]+'"'}),"<source "+a+"></source>"})}return""+h+g},getResponsiveSrc:function(o){for(var t=[],e=[],i="",s=0;s<o.length;s++){var r=o[s].split(" ");r[0]===""&&r.splice(0,1),e.push(r[0]),t.push(r[1])}for(var n=window.innerWidth,l=0;l<t.length;l++)if(parseInt(t[l],10)>n){i=e[l];break}return i},isImageLoaded:function(o){return!(!o||!o.complete||o.naturalWidth===0)},getVideoPosterMarkup:function(o,t,e,i,s){var r="";s&&s.youtube?r="lg-has-youtube":s&&s.vimeo?r="lg-has-vimeo":r="lg-has-html5";var n=t;return typeof t!="string"&&(n=t.outerHTML),'<div class="lg-video-cont '+r+'" style="'+e+`">
|
||||
<div class="lg-video-play-button">
|
||||
<svg
|
||||
viewBox="0 0 20 20"
|
||||
preserveAspectRatio="xMidYMid"
|
||||
focusable="false"
|
||||
aria-labelledby="`+i+`"
|
||||
role="img"
|
||||
class="lg-video-play-icon"
|
||||
>
|
||||
<title>`+i+`</title>
|
||||
<polygon class="lg-video-play-icon-inner" points="1,0 20,10 1,20"></polygon>
|
||||
</svg>
|
||||
<svg class="lg-video-play-icon-bg" viewBox="0 0 50 50" focusable="false">
|
||||
<circle cx="50%" cy="50%" r="20"></circle></svg>
|
||||
<svg class="lg-video-play-icon-circle" viewBox="0 0 50 50" focusable="false">
|
||||
<circle cx="50%" cy="50%" r="20"></circle>
|
||||
</svg>
|
||||
</div>
|
||||
`+n+`
|
||||
<img class="lg-object lg-video-poster" src="`+o+`" />
|
||||
</div>`},getFocusableElements:function(o){var t=o.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])'),e=[].filter.call(t,function(i){var s=window.getComputedStyle(i);return s.display!=="none"&&s.visibility!=="hidden"});return e},getDynamicOptions:function(o,t,e,i){var s=[],r=Z(j,t);return[].forEach.call(o,function(n){for(var l={},g=0;g<n.attributes.length;g++){var h=n.attributes[g];if(h.specified){var d=K(h.name),u="";r.indexOf(d)>-1&&(u=d),u&&(l[u]=h.value)}}var a=c(n),m=a.find("img").first().attr("alt"),f=a.attr("title"),y=i?a.attr(i):a.find("img").first().attr("src");l.thumb=y,e&&!l.subHtml&&(l.subHtml=f||m||""),l.alt=m||f||"",s.push(l)}),s},isMobile:function(){return/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)},isVideo:function(o,t,e){if(!o){if(t)return{html5:!0};console.error("lightGallery :- data-src is not provided on slide item "+(e+1)+". Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/");return}var i=o.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i),s=o.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)(.*)?/i),r=o.match(/https?:\/\/(.+)?(wistia\.com|wi\.st)\/(medias|embed)\/([0-9a-z\-_]+)(.*)/);if(i)return{youtube:i};if(s)return{vimeo:s};if(r)return{wistia:r}}},$=0,U=(function(){function o(t,e){if(this.lgOpened=!1,this.index=0,this.plugins=[],this.lGalleryOn=!1,this.lgBusy=!1,this.currentItemsInDom=[],this.prevScrollTop=0,this.bodyPaddingRight=0,this.isDummyImageRemoved=!1,this.dragOrSwipeEnabled=!1,this.mediaContainerPosition={top:0,bottom:0},!t)return this;if($++,this.lgId=$,this.el=t,this.LGel=c(t),this.generateSettings(e),this.buildModules(),this.settings.dynamic&&this.settings.dynamicEl!==void 0&&!Array.isArray(this.settings.dynamicEl))throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.galleryItems=this.getItems(),this.normalizeSettings(),this.init(),this.validateLicense(),this}return o.prototype.generateSettings=function(t){if(this.settings=I(I({},q),t),this.settings.isMobile&&typeof this.settings.isMobile=="function"?this.settings.isMobile():b.isMobile()){var e=I(I({},this.settings.mobileSettings),this.settings.mobileSettings);this.settings=I(I({},this.settings),e)}},o.prototype.normalizeSettings=function(){if(this.settings.slideEndAnimation&&(this.settings.hideControlOnEnd=!1),this.settings.closable||(this.settings.swipeToClose=!1),this.zoomFromOrigin=this.settings.zoomFromOrigin,this.settings.dynamic&&(this.zoomFromOrigin=!1),this.settings.container){var t=this.settings.container;if(typeof t=="function")this.settings.container=t();else if(typeof t=="string"){var e=document.querySelector(t);this.settings.container=e??document.body}}else this.settings.container=document.body;this.settings.preload=Math.min(this.settings.preload,this.galleryItems.length)},o.prototype.init=function(){var t=this;this.addSlideVideoInfo(this.galleryItems),this.buildStructure(),this.LGel.trigger(p.init,{instance:this}),this.settings.keyPress&&this.keyPress(),setTimeout(function(){t.enableDrag(),t.enableSwipe(),t.triggerPosterClick()},50),this.arrow(),this.settings.mousewheel&&this.mousewheel(),this.settings.dynamic||this.openGalleryOnItemClick()},o.prototype.openGalleryOnItemClick=function(){for(var t=this,e=function(r){var n=i.items[r],l=c(n),g=D.generateUUID();l.attr("data-lg-id",g).on("click.lgcustom-item-"+g,function(h){h.preventDefault();var d=t.settings.index||r;t.openGallery(d,n)})},i=this,s=0;s<this.items.length;s++)e(s)},o.prototype.buildModules=function(){var t=this;this.settings.plugins.forEach(function(e){t.plugins.push(new e(t,c))})},o.prototype.validateLicense=function(){this.settings.licenseKey?this.settings.licenseKey==="0000-0000-000-0000"&&console.warn("lightGallery: "+this.settings.licenseKey+" license key is not valid for production use"):console.error("Please provide a valid license key")},o.prototype.getSlideItem=function(t){return c(this.getSlideItemId(t))},o.prototype.getSlideItemId=function(t){return"#lg-item-"+this.lgId+"-"+t},o.prototype.getIdName=function(t){return t+"-"+this.lgId},o.prototype.getElementById=function(t){return c("#"+this.getIdName(t))},o.prototype.manageSingleSlideClassName=function(){this.galleryItems.length<2?this.outer.addClass("lg-single-item"):this.outer.removeClass("lg-single-item")},o.prototype.buildStructure=function(){var t=this,e=this.$container&&this.$container.get();if(!e){var i="",s="";this.settings.controls&&(i='<button type="button" id="'+this.getIdName("lg-prev")+'" aria-label="'+this.settings.strings.previousSlide+'" class="lg-prev lg-icon"> '+this.settings.prevHtml+` </button>
|
||||
<button type="button" id="`+this.getIdName("lg-next")+'" aria-label="'+this.settings.strings.nextSlide+'" class="lg-next lg-icon"> '+this.settings.nextHtml+" </button>"),this.settings.appendSubHtmlTo!==".lg-item"&&(s='<div class="lg-sub-html" role="status" aria-live="polite"></div>');var r="";this.settings.allowMediaOverlap&&(r+="lg-media-overlap ");var n=this.settings.ariaLabelledby?'aria-labelledby="'+this.settings.ariaLabelledby+'"':"",l=this.settings.ariaDescribedby?'aria-describedby="'+this.settings.ariaDescribedby+'"':"",g="lg-container "+this.settings.addClass+" "+(document.body!==this.settings.container?"lg-inline":""),h=this.settings.closable&&this.settings.showCloseIcon?'<button type="button" aria-label="'+this.settings.strings.closeGallery+'" id="'+this.getIdName("lg-close")+'" class="lg-close lg-icon"></button>':"",d=this.settings.showMaximizeIcon?'<button type="button" aria-label="'+this.settings.strings.toggleMaximize+'" id="'+this.getIdName("lg-maximize")+'" class="lg-maximize lg-icon"></button>':"",u=`
|
||||
<div class="`+g+'" id="'+this.getIdName("lg-container")+'" tabindex="-1" aria-modal="true" '+n+" "+l+` role="dialog"
|
||||
>
|
||||
<div id="`+this.getIdName("lg-backdrop")+`" class="lg-backdrop"></div>
|
||||
|
||||
<div id="`+this.getIdName("lg-outer")+'" class="lg-outer lg-use-css3 lg-css3 lg-hide-items '+r+` ">
|
||||
|
||||
<div id="`+this.getIdName("lg-content")+`" class="lg-content">
|
||||
<div id="`+this.getIdName("lg-inner")+`" class="lg-inner">
|
||||
</div>
|
||||
`+i+`
|
||||
</div>
|
||||
<div id="`+this.getIdName("lg-toolbar")+`" class="lg-toolbar lg-group">
|
||||
`+d+`
|
||||
`+h+`
|
||||
</div>
|
||||
`+(this.settings.appendSubHtmlTo===".lg-outer"?s:"")+`
|
||||
<div id="`+this.getIdName("lg-components")+`" class="lg-components">
|
||||
`+(this.settings.appendSubHtmlTo===".lg-sub-html"?s:"")+`
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;c(this.settings.container).append(u),document.body!==this.settings.container&&c(this.settings.container).css("position","relative"),this.outer=this.getElementById("lg-outer"),this.$lgComponents=this.getElementById("lg-components"),this.$backdrop=this.getElementById("lg-backdrop"),this.$container=this.getElementById("lg-container"),this.$inner=this.getElementById("lg-inner"),this.$content=this.getElementById("lg-content"),this.$toolbar=this.getElementById("lg-toolbar"),this.$backdrop.css("transition-duration",this.settings.backdropDuration+"ms");var a=this.settings.mode+" ";this.manageSingleSlideClassName(),this.settings.enableDrag&&(a+="lg-grab "),this.outer.addClass(a),this.$inner.css("transition-timing-function",this.settings.easing),this.$inner.css("transition-duration",this.settings.speed+"ms"),this.settings.download&&this.$toolbar.append('<a id="'+this.getIdName("lg-download")+'" target="_blank" rel="noopener" aria-label="'+this.settings.strings.download+'" download class="lg-download lg-icon"></a>'),this.counter(),c(window).on("resize.lg.global"+this.lgId+" orientationchange.lg.global"+this.lgId,function(){t.refreshOnResize()}),this.hideBars(),this.manageCloseGallery(),this.toggleMaximize(),this.initModules()}},o.prototype.refreshOnResize=function(){if(this.lgOpened){var t=this.galleryItems[this.index],e=t.__slideVideoInfo;this.mediaContainerPosition=this.getMediaContainerPosition();var i=this.mediaContainerPosition,s=i.top,r=i.bottom;if(this.currentImageSize=b.getSize(this.items[this.index],this.outer,s+r,e&&this.settings.videoMaxSize),e&&this.resizeVideoSlide(this.index,this.currentImageSize),this.zoomFromOrigin&&!this.isDummyImageRemoved){var n=this.getDummyImgStyles(this.currentImageSize);this.outer.find(".lg-current .lg-dummy-img").first().attr("style",n)}this.LGel.trigger(p.containerResize)}},o.prototype.resizeVideoSlide=function(t,e){var i=this.getVideoContStyle(e),s=this.getSlideItem(t);s.find(".lg-video-cont").attr("style",i)},o.prototype.updateSlides=function(t,e){if(this.index>t.length-1&&(this.index=t.length-1),t.length===1&&(this.index=0),!t.length){this.closeGallery();return}var i=this.galleryItems[e].src;this.galleryItems=t,this.updateControls(),this.$inner.empty(),this.currentItemsInDom=[];var s=0;this.galleryItems.some(function(r,n){return r.src===i?(s=n,!0):!1}),this.currentItemsInDom=this.organizeSlideItems(s,-1),this.loadContent(s,!0),this.getSlideItem(s).addClass("lg-current"),this.index=s,this.updateCurrentCounter(s),this.LGel.trigger(p.updateSlides)},o.prototype.getItems=function(){if(this.items=[],this.settings.dynamic)return this.settings.dynamicEl||[];if(this.settings.selector==="this")this.items.push(this.el);else if(this.settings.selector)if(typeof this.settings.selector=="string")if(this.settings.selectWithin){var t=c(this.settings.selectWithin);this.items=t.find(this.settings.selector).get()}else this.items=this.el.querySelectorAll(this.settings.selector);else this.items=this.settings.selector;else this.items=this.el.children;return b.getDynamicOptions(this.items,this.settings.extraProps,this.settings.getCaptionFromTitleOrAlt,this.settings.exThumbImage)},o.prototype.shouldHideScrollbar=function(){return this.settings.hideScrollbar&&document.body===this.settings.container},o.prototype.hideScrollbar=function(){if(this.shouldHideScrollbar()){this.bodyPaddingRight=parseFloat(c("body").style().paddingRight);var t=document.documentElement.getBoundingClientRect(),e=window.innerWidth-t.width;c(document.body).css("padding-right",e+this.bodyPaddingRight+"px"),c(document.body).addClass("lg-overlay-open")}},o.prototype.resetScrollBar=function(){this.shouldHideScrollbar()&&(c(document.body).css("padding-right",this.bodyPaddingRight+"px"),c(document.body).removeClass("lg-overlay-open"))},o.prototype.openGallery=function(t,e){var i=this;if(t===void 0&&(t=this.settings.index),!this.lgOpened){this.lgOpened=!0,this.outer.removeClass("lg-hide-items"),this.hideScrollbar(),this.$container.addClass("lg-show");var s=this.getItemsToBeInsertedToDom(t,t);this.currentItemsInDom=s;var r="";s.forEach(function(a){r=r+('<div id="'+a+'" class="lg-item"></div>')}),this.$inner.append(r),this.addHtml(t);var n="";this.mediaContainerPosition=this.getMediaContainerPosition();var l=this.mediaContainerPosition,g=l.top,h=l.bottom;this.settings.allowMediaOverlap||this.setMediaContainerPosition(g,h);var d=this.galleryItems[t].__slideVideoInfo;this.zoomFromOrigin&&e&&(this.currentImageSize=b.getSize(e,this.outer,g+h,d&&this.settings.videoMaxSize),n=b.getTransform(e,this.outer,g,h,this.currentImageSize)),(!this.zoomFromOrigin||!n)&&(this.outer.addClass(this.settings.startClass),this.getSlideItem(t).removeClass("lg-complete"));var u=this.settings.zoomFromOrigin?100:this.settings.backdropDuration;setTimeout(function(){i.outer.addClass("lg-components-open")},u),this.index=t,this.LGel.trigger(p.beforeOpen),this.getSlideItem(t).addClass("lg-current"),this.lGalleryOn=!1,this.prevScrollTop=c(window).scrollTop(),
Line truncated
|
||||
<span id="`+this.getIdName("lg-counter-current")+'" class="lg-counter-current">'+(this.index+1)+` </span> /
|
||||
<span id="`+this.getIdName("lg-counter-all")+'" class="lg-counter-all">'+this.galleryItems.length+" </span></div>";this.outer.find(this.settings.appendCounterTo).append(t)}},o.prototype.addHtml=function(t){var e,i;if(this.galleryItems[t].subHtmlUrl?i=this.galleryItems[t].subHtmlUrl:e=this.galleryItems[t].subHtml,!i)if(e){var s=e.substring(0,1);if(s==="."||s==="#")try{this.settings.subHtmlSelectorRelative&&!this.settings.dynamic?e=c(this.items).eq(t).find(e).first().html():e=c(e).first().html()}catch{console.warn('Error processing subHtml selector "'+e+'"'),e=""}}else e="";if(this.settings.appendSubHtmlTo!==".lg-item")i?b.fetchCaptionFromUrl(i,this.outer.find(".lg-sub-html"),"replace"):this.outer.find(".lg-sub-html").html(e);else{var r=c(this.getSlideItemId(t));i?b.fetchCaptionFromUrl(i,r,"append"):r.append('<div class="lg-sub-html">'+e+"</div>")}typeof e<"u"&&e!==null&&(e===""?this.outer.find(this.settings.appendSubHtmlTo).addClass("lg-empty-html"):this.outer.find(this.settings.appendSubHtmlTo).removeClass("lg-empty-html")),this.LGel.trigger(p.afterAppendSubHtml,{index:t})},o.prototype.preload=function(t){for(var e=1;e<=this.settings.preload&&!(e>=this.galleryItems.length-t);e++)this.loadContent(t+e,!1);for(var i=1;i<=this.settings.preload&&!(t-i<0);i++)this.loadContent(t-i,!1)},o.prototype.getDummyImgStyles=function(t){return t?"width:"+t.width+`px;
|
||||
margin-left: -`+t.width/2+`px;
|
||||
margin-top: -`+t.height/2+`px;
|
||||
height:`+t.height+"px":""},o.prototype.getVideoContStyle=function(t){return t?"width:"+t.width+`px;
|
||||
height:`+t.height+"px":""},o.prototype.getDummyImageContent=function(t,e,i){var s;if(this.settings.dynamic||(s=c(this.items).eq(e)),s){var r=void 0;if(this.settings.exThumbImage?r=s.attr(this.settings.exThumbImage):r=s.find("img").first().attr("src"),!r)return"";var n=this.getDummyImgStyles(this.currentImageSize),l=document.createElement("img");return l.alt=i||"",l.src=r,l.className="lg-dummy-img",l.style.cssText=n,t.addClass("lg-first-slide"),this.outer.addClass("lg-first-slide-loading"),l}return""},o.prototype.setImgMarkup=function(t,e,i){var s=this.galleryItems[i],r=s.alt,n=s.srcset,l=s.sizes,g=s.sources,h="",d=r?'alt="'+r+'"':"";this.isFirstSlideWithZoomAnimation()?h=this.getDummyImageContent(e,i,d):h=b.getImgMarkup(i,t,d,n,l,g);var u=document.createElement("picture");u.className="lg-img-wrap",c(u).append(h),e.prepend(u)},o.prototype.onSlideObjectLoad=function(t,e,i,s){var r=t.find(".lg-object").first();b.isImageLoaded(r.get())||e?i():(r.on("load.lg error.lg",function(){i&&i()}),r.on("error.lg",function(){s&&s()}))},o.prototype.onLgObjectLoad=function(t,e,i,s,r,n){var l=this;this.onSlideObjectLoad(t,n,function(){l.triggerSlideItemLoad(t,e,i,s,r)},function(){t.addClass("lg-complete lg-complete_"),t.html('<span class="lg-error-msg">'+l.settings.strings.mediaLoadingFailed+"</span>")})},o.prototype.triggerSlideItemLoad=function(t,e,i,s,r){var n=this,l=this.galleryItems[e],g=r&&this.getSlideType(l)==="video"&&!l.poster?s:0;setTimeout(function(){t.addClass("lg-complete lg-complete_"),n.LGel.trigger(p.slideItemLoad,{index:e,delay:i||0,isFirstSlide:r})},g)},o.prototype.isFirstSlideWithZoomAnimation=function(){return!!(!this.lGalleryOn&&this.zoomFromOrigin&&this.currentImageSize)},o.prototype.addSlideVideoInfo=function(t){var e=this;t.forEach(function(i,s){i.__slideVideoInfo=b.isVideo(i.src,!!i.video,s),i.__slideVideoInfo&&e.settings.loadYouTubePoster&&!i.poster&&i.__slideVideoInfo.youtube&&(i.poster="//img.youtube.com/vi/"+i.__slideVideoInfo.youtube[1]+"/maxresdefault.jpg")})},o.prototype.loadContent=function(t,e){var i=this,s=this.galleryItems[t],r=c(this.getSlideItemId(t)),n=s.poster,l=s.srcset,g=s.sizes,h=s.sources,d=s.src,u=s.video,a=u&&typeof u=="string"?JSON.parse(u):u;if(s.responsive){var m=s.responsive.split(",");d=b.getResponsiveSrc(m)||d}var f=s.__slideVideoInfo,y="",w=!!s.iframe,v=!this.lGalleryOn,C=0;if(v&&(this.zoomFromOrigin&&this.currentImageSize?C=this.settings.startAnimationDuration+10:C=this.settings.backdropDuration+10),!r.hasClass("lg-loaded")){if(f){var P=this.mediaContainerPosition,F=P.top,B=P.bottom,H=b.getSize(this.items[t],this.outer,F+B,f&&this.settings.videoMaxSize);y=this.getVideoContStyle(H)}if(w){var T=b.getIframeMarkup(this.settings.iframeWidth,this.settings.iframeHeight,this.settings.iframeMaxWidth,this.settings.iframeMaxHeight,d,s.iframeTitle);r.prepend(T)}else if(n){var k="",W=v&&this.zoomFromOrigin&&this.currentImageSize;W&&(k=this.getDummyImageContent(r,t,""));var T=b.getVideoPosterMarkup(n,k||"",y,this.settings.strings.playVideo,f);r.prepend(T)}else if(f){var T='<div class="lg-video-cont " style="'+y+'"></div>';r.prepend(T)}else if(this.setImgMarkup(d,r,t),l||h){var Y=r.find(".lg-object");this.initPictureFill(Y)}(n||f)&&this.LGel.trigger(p.hasVideo,{index:t,src:d,html5Video:a,hasPoster:!!n}),this.LGel.trigger(p.afterAppendSlide,{index:t}),this.lGalleryOn&&this.settings.appendSubHtmlTo===".lg-item"&&this.addHtml(t)}var x=0;C&&!c(document.body).hasClass("lg-from-hash")&&(x=C),this.isFirstSlideWithZoomAnimation()&&(setTimeout(function(){r.removeClass("lg-start-end-progress lg-start-progress").removeAttr("style")},this.settings.startAnimationDuration+100),r.hasClass("lg-loaded")||setTimeout(function(){if(i.getSlideType(s)==="image"){var G=s.alt,R=G?'alt="'+G+'"':"";if(r.find(".lg-img-wrap").append(b.getImgMarkup(t,d,R,l,g,s.sources)),l||h){var N=r.find(".lg-object");i.initPictureFill(N)}}(i.getSlideType(s)==="image"||i.getSlideType(s)==="video"&&n)&&(i.onLgObjectLoad(r,t,C,x,!0,!1),i.onSlideObjectLoad(r,!!(f&&f.html5&&!n),function(){i.loadContentOnFirstSlideLoad(t,r,x)},function(){i.loadContentOnFirstSlideLoad(t,r,x)}))},this.settings.startAnimationDuration+100)),r.addClass("lg-loaded"),(!this.isFirstSlideWithZoomAnimation()||this.getSlideType(s)==="video"&&!n)&&this.onLgObjectLoad(r,t,C,x,v,!!(f&&f.html5&&!n)),(!this.zoomFromOrigin||!this.currentImageSize)&&r.hasClass("lg-complete_")&&!this.lGalleryOn&&setTimeout(function(){r.addClass("lg-complete")},this.settings.backdropDuration),this.lGalleryOn=!0,e===!0&&(r.hasClass("lg-complete_")?this.preload(t):r.find(".lg-object").first().on("load.lg error.lg",function(){i.preload(t)}))},o.prototype.loadContentOnFirstSlideLoad=function(t,e,i){var s=this;setTimeout(function(){e.find(".lg-dummy-img").remove(),e.removeClass("lg-first-slide"),s.outer.removeClass("lg-first-slide-loading"),s.isDummyImageRemoved=!0,s.preload(t)},i+300)},o.prototype.getItemsToBeInsertedToDom=function(t,e,i){var s=this;i===void 0&&(i=0);var r=[]
Line truncated
|
||||
<div class="lg-thumb lg-group">
|
||||
</div>
|
||||
</div>`;this.core.outer.addClass("lg-has-thumb"),this.settings.appendThumbnailsTo===".lg-components"?this.core.$lgComponents.append(e):this.core.outer.append(e),this.$thumbOuter=this.core.outer.find(".lg-thumb-outer").first(),this.$lgThumb=this.core.outer.find(".lg-thumb").first(),this.settings.animateThumb&&this.core.outer.find(".lg-thumb").css("transition-duration",this.core.settings.speed+"ms").css("width",this.thumbTotalWidth+"px").css("position","relative"),this.setThumbItemHtml(this.core.galleryItems)},o.prototype.enableThumbDrag=function(){var t=this,e={cords:{startX:0,endX:0},isMoved:!1,newTranslateX:0,startTime:new Date,endTime:new Date,touchMoveTime:0},i=!1;this.$thumbOuter.addClass("lg-grab"),this.core.outer.find(".lg-thumb").first().on("mousedown.lg.thumb",function(s){t.thumbTotalWidth>t.thumbOuterWidth&&(s.preventDefault(),e.cords.startX=s.pageX,e.startTime=new Date,t.thumbClickable=!1,i=!0,t.core.outer.get().scrollLeft+=1,t.core.outer.get().scrollLeft-=1,t.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))}),this.$LG(window).on("mousemove.lg.thumb.global"+this.core.lgId,function(s){t.core.lgOpened&&i&&(e.cords.endX=s.pageX,e=t.onThumbTouchMove(e))}),this.$LG(window).on("mouseup.lg.thumb.global"+this.core.lgId,function(){t.core.lgOpened&&(e.isMoved?e=t.onThumbTouchEnd(e):t.thumbClickable=!0,i&&(i=!1,t.$thumbOuter.removeClass("lg-grabbing").addClass("lg-grab")))})},o.prototype.enableThumbSwipe=function(){var t=this,e={cords:{startX:0,endX:0},isMoved:!1,newTranslateX:0,startTime:new Date,endTime:new Date,touchMoveTime:0};this.$lgThumb.on("touchstart.lg",function(i){t.thumbTotalWidth>t.thumbOuterWidth&&(i.preventDefault(),e.cords.startX=i.targetTouches[0].pageX,t.thumbClickable=!1,e.startTime=new Date)}),this.$lgThumb.on("touchmove.lg",function(i){t.thumbTotalWidth>t.thumbOuterWidth&&(i.preventDefault(),e.cords.endX=i.targetTouches[0].pageX,e=t.onThumbTouchMove(e))}),this.$lgThumb.on("touchend.lg",function(){e.isMoved?e=t.onThumbTouchEnd(e):t.thumbClickable=!0})},o.prototype.rebuildThumbnails=function(){var t=this;this.$thumbOuter.addClass("lg-rebuilding-thumbnails"),setTimeout(function(){t.thumbTotalWidth=t.core.galleryItems.length*(t.settings.thumbWidth+t.settings.thumbMargin),t.$lgThumb.css("width",t.thumbTotalWidth+"px"),t.$lgThumb.empty(),t.setThumbItemHtml(t.core.galleryItems),t.animateThumb(t.core.index)},50),setTimeout(function(){t.$thumbOuter.removeClass("lg-rebuilding-thumbnails")},200)},o.prototype.setTranslate=function(t){this.$lgThumb.css("transform","translate3d(-"+t+"px, 0px, 0px)")},o.prototype.getPossibleTransformX=function(t){return t>this.thumbTotalWidth-this.thumbOuterWidth&&(t=this.thumbTotalWidth-this.thumbOuterWidth),t<0&&(t=0),t},o.prototype.animateThumb=function(t){if(this.$lgThumb.css("transition-duration",this.core.settings.speed+"ms"),this.settings.animateThumb){var e=0;switch(this.settings.currentPagerPosition){case"left":e=0;break;case"middle":e=this.thumbOuterWidth/2-this.settings.thumbWidth/2;break;case"right":e=this.thumbOuterWidth-this.settings.thumbWidth}this.translateX=(this.settings.thumbWidth+this.settings.thumbMargin)*t-1-e,this.translateX>this.thumbTotalWidth-this.thumbOuterWidth&&(this.translateX=this.thumbTotalWidth-this.thumbOuterWidth),this.translateX<0&&(this.translateX=0),this.setTranslate(this.translateX)}},o.prototype.onThumbTouchMove=function(t){return t.newTranslateX=this.translateX,t.isMoved=!0,t.touchMoveTime=new Date().valueOf(),t.newTranslateX-=t.cords.endX-t.cords.startX,t.newTranslateX=this.getPossibleTransformX(t.newTranslateX),this.setTranslate(t.newTranslateX),this.$thumbOuter.addClass("lg-dragging"),t},o.prototype.onThumbTouchEnd=function(t){t.isMoved=!1,t.endTime=new Date,this.$thumbOuter.removeClass("lg-dragging");var e=t.endTime.valueOf()-t.startTime.valueOf(),i=t.cords.endX-t.cords.startX,s=Math.abs(i)/e;return s>.15&&t.endTime.valueOf()-t.touchMoveTime<30?(s+=1,s>2&&(s+=1),s=s+s*(Math.abs(i)/this.thumbOuterWidth),this.$lgThumb.css("transition-duration",Math.min(s-1,2)+"settings"),i=i*s,this.translateX=this.getPossibleTransformX(this.translateX-i),this.setTranslate(this.translateX)):this.translateX=t.newTranslateX,Math.abs(t.cords.endX-t.cords.startX)<this.settings.thumbnailSwipeThreshold&&(this.thumbClickable=!0),t},o.prototype.getThumbHtml=function(t,e,i){var s=this.core.galleryItems[e].__slideVideoInfo||{},r;s.youtube&&this.settings.loadYouTubeThumbnail?r="//img.youtube.com/vi/"+s.youtube[1]+"/"+this.settings.youTubeThumbSize+".jpg":r=t;var n=document.createElement("div");n.setAttribute("data-lg-item-id",e+""),n.className="lg-thumb-item "+(e===this.core.index?"active":""),n.style.cssText="width: "+this.settings.thumbWidth+"px; height: "+this.settings.thumbHeight+"; margin-right: "+this.settings.thumbMargin+"px;";var l=document.createElement("img");return l.alt=i||"",l.setAttribute("data-lg-item-id",e+""),l.src=r,n.appendChild(l),n},o.prototype.setThumbItemHtml=function(t){for(var e=0;e<t.length;e++){var i=this.getLine truncated
|
||||
webkitfullscreenchange.lg.global`+this.core.lgId+`
|
||||
mozfullscreenchange.lg.global`+this.core.lgId+`
|
||||
MSFullscreenChange.lg.global`+this.core.lgId,function(){t.core.lgOpened&&t.core.outer.toggleClass("lg-fullscreen-on")}),this.core.outer.find(".lg-fullscreen").first().on("click.lg",function(){t.isFullScreen()?t.exitFullscreen():t.requestFullscreen()})},o.prototype.closeGallery=function(){this.isFullScreen()&&this.exitFullscreen()},o.prototype.destroy=function(){this.$LG(document).off("fullscreenchange.lg.global"+this.core.lgId+`
|
||||
webkitfullscreenchange.lg.global`+this.core.lgId+`
|
||||
mozfullscreenchange.lg.global`+this.core.lgId+`
|
||||
MSFullscreenChange.lg.global`+this.core.lgId)},o})(),X=new WeakSet;function rt(o){return!!X.has(o)}function nt(o){X.add(o)}function lt(o,t){if(!o)return t||"";var e=o.split("|");if(e.length<8)return t||"";var i=e[0],s=e[1],r=e[2],n=e[3],l=e[4],g=e[5],h=e[6],d=e[7],u=i||s||r||n||l||g||h;if(!u)return t||"";var a='<div class="wi-lg-caption">'+(t||"")+"</div>";if(a+='<div class="wi-lg-exif">',(i||s)&&(a+='<span class="wi-lg-exif__item wi-lg-exif__camera">'+(i?i+" ":"")+s+"</span>"),r&&(a+='<span class="wi-lg-exif__item wi-lg-exif__lens">'+r+"</span>"),a+='<div class="wi-lg-exif__params">',n&&(a+='<span class="wi-lg-exif__item wi-lg-exif__aperture">f/'+n+"</span>"),l&&(a+='<span class="wi-lg-exif__item wi-lg-exif__shutter">'+l+"s</span>"),g&&(a+='<span class="wi-lg-exif__item wi-lg-exif__iso">ISO '+g+"</span>"),h){var m=h+"mm";d&&d!==h&&(m+=" (eq. "+d+"mm)"),a+='<span class="wi-lg-exif__item wi-lg-exif__focal">'+m+"</span>"}return a+="</div></div>",a}function at(o){var t=o.querySelectorAll(".wi-lightgallery-item[data-exif]");t.forEach(function(e){var i=e.getAttribute("data-exif");if(i){var s=e.getAttribute("data-sub-html")||"",r=lt(i,s);r&&r!==s&&e.setAttribute("data-sub-html",r)}})}function gt(){return{selector:".wi-lightgallery-item",plugins:[tt,it,ot],speed:280,mode:"lg-fade",licenseKey:"0000-0000-0000-0000",download:!1,counter:!0,preload:2,thumbWidth:80,thumbHeight:"60px",thumbMargin:4,zoomFromOrigin:!0,actualSize:!1,showZoomInOutIcons:!0,toggleThumb:!0,allowMediaOverlap:!0,mobileSettings:{controls:!0,showCloseIcon:!0,download:!1}}}function O(o){if(!rt(o)){var t=o.querySelectorAll(".wi-lightgallery-item");t.length!==0&&(at(o),J(o,gt()),nt(o))}}function ht(){return window.innerWidth<768}function E(){ut(),dt(),ct(),document.addEventListener("click",function(o){var t=o.target.closest(".lg-toggle-thumb");if(t){o.stopPropagation();var e=t.closest(".lg-outer");e&&e.classList.toggle("wi-thumb-shown")}},!0),document.addEventListener("click",function(o){var t=o.target.closest(".wi-lightgallery-item");t&&setTimeout(function(){var e=document.querySelector(".lg-outer");e&&!e.classList.contains("wi-thumb-shown")&&!ht()&&e.classList.add("wi-thumb-shown")},350)})}function ut(){var o=[".wi-post__body",".wi-page__body"];o.forEach(function(t){var e=document.querySelectorAll(t);e.forEach(function(i){mt(i),O(i)})})}function dt(){var o=document.querySelector(".wi-photos-page__all-groups");if(o){var t=o.querySelectorAll(".wi-photos-page__link");t.forEach(function(r){r.classList.add("wi-lightgallery-item")}),O(o);return}var e=document.querySelector(".wi-photos-page__grid:not(.wi-photos-page__all-groups .wi-photos-page__grid)");if(e){var i=e.querySelectorAll(".wi-photos-page__link");i.forEach(function(r){r.classList.add("wi-lightgallery-item")}),O(e);return}var s=document.querySelectorAll(".wi-photos-page__grid");s.forEach(function(r){ft(r),O(r)})}function ct(){var o=[".wi-moments-page__media",".wi-moments-page__card-media",".wi-moments-page__masonry-media"];o.forEach(function(t){var e=document.querySelectorAll(t);e.forEach(function(i){pt(i),O(i)})})}function mt(o){var t=o.querySelectorAll("img");t.forEach(function(e){var i=e.getAttribute("src");if(i){var s=e.getAttribute("width"),r=e.getAttribute("height");if(!(s&&parseInt(s)<50||r&&parseInt(r)<50)){var n=(e.getAttribute("class")||"").toLowerCase();if(!/emoji|icon|avatar|logo|badge|smiley/.test(n)&&e.getAttribute("role")!=="presentation"&&e.getAttribute("aria-hidden")!=="true"){var l=e.closest("a");if(l){if(l.getAttribute("target")==="_blank")return;if(l.classList.add("wi-lightgallery-item"),!l.getAttribute("data-src")){var g=l.getAttribute("href")||i;l.setAttribute("data-src",g)}var h=e.getAttribute("alt")||"";h&&!l.getAttribute("data-sub-html")&&l.setAttribute("data-sub-html",h)}else{var d=document.createElement("a");d.setAttribute("href",i),d.setAttribute("data-src",i),d.classList.add("wi-lightgallery-item");var u=e.getAttribute("alt")||"";u&&d.setAttribute("data-sub-html",u),e.parentNode.insertBefore(d,e),d.appendChild(e)}}}}})}function ft(o){var t=o.querySelectorAll(".wi-photos-page__link");t.forEach(function(e){e.classList.add("wi-lightgallery-item")})}function pt(o){var t=o.querySelectorAll("img");t.forEach(function(e){var i=e.getAttribute("src");if(i){var s=e.closest("a");if(s)s.classList.add("wi-lightgallery-item"),s.getAttribute("data-src")||s.setAttribute("data-src",i);else{var r=document.createElement("a");r.setAttribute("href",i),r.setAttribute("data-src",i),r.classList.add("wi-lightgallery-item"),e.parentNode.insertBefore(r,e),r.appendChild(e)}}})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",function(){"requestIdleCallback"in window?requestIdleCallback(E,{timeout:2e3}):setTimeout(E,200)}):"requestIdleCallback"in window?requestIdleCallback(E,{timeout:2e3}):setTimeout(E,200);
|
||||
@@ -0,0 +1 @@
|
||||
.wi-douban[data-astro-cid-nevwzhq2]{padding-block:1rem}.wi-douban__header[data-astro-cid-nevwzhq2]{text-align:center;margin-bottom:var(--space-3xl)}.wi-douban__title[data-astro-cid-nevwzhq2]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-nevwzhq2]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-douban__filters[data-astro-cid-nevwzhq2]{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-2xl)}.wi-douban__filter-group[data-astro-cid-nevwzhq2]{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.wi-douban__filter-tag[data-astro-cid-nevwzhq2]{display:inline-block;padding:6px 16px;border-radius:20px;font-size:var(--text-sm);color:var(--ink-2);background:var(--bg-raised);border:1px solid var(--rule);text-decoration:none;transition:color var(--duration-fast) var(--ease-out-quart),background var(--duration-fast) var(--ease-out-quart),border-color var(--duration-fast) var(--ease-out-quart)}.wi-douban__filter-tag--sm[data-astro-cid-nevwzhq2]{padding:4px 12px;font-size:var(--text-xs)}.wi-douban__filter-tag[data-astro-cid-nevwzhq2]:hover{color:var(--accent);border-color:var(--accent)}.wi-douban__filter-tag--active[data-astro-cid-nevwzhq2]{color:#fff;background:var(--accent);border-color:var(--accent)}.wi-douban__grid[data-astro-cid-nevwzhq2]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-lg)}.wi-douban__card[data-astro-cid-nevwzhq2]{position:relative;display:flex;gap:var(--space-md);padding:var(--space-lg);background:var(--bg-raised);border:1px solid var(--rule);border-radius:16px;transition:transform var(--duration-normal) var(--ease-out-expo),box-shadow var(--duration-normal) var(--ease-out-expo),border-color var(--duration-normal) var(--ease-out-expo)}.wi-douban__card[data-astro-cid-nevwzhq2]:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--accent)}.wi-douban__card-link[data-astro-cid-nevwzhq2]{position:absolute;inset:0;z-index:1}.wi-douban__poster[data-astro-cid-nevwzhq2]{flex-shrink:0;width:80px;height:112px;border-radius:8px;overflow:hidden;background:var(--bg)}.wi-douban__card[data-astro-cid-nevwzhq2][data-type=music] .wi-douban__poster[data-astro-cid-nevwzhq2]{width:80px;height:80px;border-radius:8px}.wi-douban__poster-img[data-astro-cid-nevwzhq2]{width:100%;height:100%;object-fit:cover}.wi-douban__poster--placeholder[data-astro-cid-nevwzhq2]{display:flex;align-items:center;justify-content:center;background:var(--accent-bg);color:var(--accent);font-size:var(--text-2xl);font-weight:700}.wi-douban__body[data-astro-cid-nevwzhq2]{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.wi-douban__name[data-astro-cid-nevwzhq2]{font-size:var(--text-md);font-weight:600;color:var(--ink);line-height:var(--leading-tight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wi-douban__subtitle[data-astro-cid-nevwzhq2]{font-size:var(--text-xs);color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wi-douban__meta[data-astro-cid-nevwzhq2]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--text-xs);color:var(--ink-3)}.wi-douban__score[data-astro-cid-nevwzhq2]{display:inline-flex;align-items:center;gap:2px;color:#f59e0b;font-weight:600}.wi-douban__star[data-astro-cid-nevwzhq2]{color:#f59e0b}.wi-douban__my-score[data-astro-cid-nevwzhq2]{color:var(--accent);font-weight:500}.wi-douban__tags[data-astro-cid-nevwzhq2]{display:flex;flex-wrap:wrap;gap:4px}.wi-douban__tag[data-astro-cid-nevwzhq2]{font-size:11px;color:var(--ink-3);padding:1px 6px;border-radius:4px;background:var(--bg);border:1px solid var(--rule)}.wi-douban__remark[data-astro-cid-nevwzhq2]{font-size:var(--text-sm);color:var(--ink-2);line-height:var(--leading-relaxed);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:4px;position:relative;z-index:2}@media(max-width:640px){.wi-douban__grid[data-astro-cid-nevwzhq2]{grid-template-columns:1fr}.wi-douban__card[data-astro-cid-nevwzhq2]{padding:var(--space-md)}.wi-douban__poster[data-astro-cid-nevwzhq2]{width:64px;height:90px}.wi-douban__card[data-astro-cid-nevwzhq2][data-type=music] .wi-douban__poster[data-astro-cid-nevwzhq2]{width:64px;height:64px}}
|
||||
@@ -0,0 +1 @@
|
||||
.wi-id[data-astro-cid-fcla5cd5]{padding-block:1rem 3rem}.wi-id__header[data-astro-cid-fcla5cd5]{text-align:center;margin-bottom:var(--space-xl)}.wi-id__title[data-astro-cid-fcla5cd5]{font-size:var(--text-4xl);margin-bottom:var(--space-xs)}.wi-id__subtitle[data-astro-cid-fcla5cd5]{font-size:var(--text-sm);color:var(--ink-3);letter-spacing:var(--tracking-wide);margin-block-end:0}.wi-page-accent[data-astro-cid-fcla5cd5]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-id__switch-wrap[data-astro-cid-fcla5cd5]{display:flex;justify-content:center;margin-bottom:var(--space-xl)}.wi-id__switch[data-astro-cid-fcla5cd5]{display:inline-flex;gap:4px;padding:4px;border-radius:9999px;background:var(--bg-raised);border:1px solid var(--rule)}.wi-id__switch-btn[data-astro-cid-fcla5cd5]{border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--text-sm);line-height:1.2;padding:7px 22px;border-radius:9999px;color:var(--ink-2);transition:background-color .2s ease,color .2s ease}.wi-id__switch-btn[data-astro-cid-fcla5cd5]:hover{color:var(--ink)}.wi-id__switch-btn[data-astro-cid-fcla5cd5].is-active{background:var(--accent);color:#fff;font-weight:600;box-shadow:var(--shadow-sm)}.wi-id[data-astro-cid-fcla5cd5][data-view=life] .wi-id--car[data-astro-cid-fcla5cd5],.wi-id[data-astro-cid-fcla5cd5][data-view=car] .wi-id--life[data-astro-cid-fcla5cd5]{display:none!important}.wi-id__notice[data-astro-cid-fcla5cd5]{display:flex;flex-direction:column;gap:4px;padding:12px 18px;margin-bottom:var(--space-lg);border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);border-radius:var(--radius-md, 12px);background:color-mix(in srgb,var(--accent) 8%,var(--bg-raised))}.wi-id__notice-item[data-astro-cid-fcla5cd5]{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--accent-hover);font-size:var(--text-sm);line-height:1.9}.wi-id__notice-text[data-astro-cid-fcla5cd5]{flex:1;min-width:0}.wi-id__notice-close[data-astro-cid-fcla5cd5]{flex:none;border:0;background:transparent;color:inherit;opacity:.45;cursor:pointer;font:inherit;font-size:.9rem;line-height:1.4;padding:0 2px;transition:opacity .15s ease}.wi-id__notice-close[data-astro-cid-fcla5cd5]:hover{opacity:.9}.wi-id__block[data-astro-cid-fcla5cd5]{margin-bottom:var(--space-2xl)}.wi-id__block-head[data-astro-cid-fcla5cd5]{display:flex;align-items:baseline;gap:10px;margin-bottom:var(--space-md)}.wi-id__block-head--sub[data-astro-cid-fcla5cd5]{margin-top:var(--space-xl)}.wi-id__block-title[data-astro-cid-fcla5cd5]{font-size:var(--text-xl);margin-bottom:0}.wi-id__sub-title[data-astro-cid-fcla5cd5]{font-size:var(--text-md);padding-left:var(--space-lg);margin-bottom:0}.wi-id__count[data-astro-cid-fcla5cd5]{font-size:var(--text-sm);font-weight:400;color:var(--ink-3)}.wi-id__grid[data-astro-cid-fcla5cd5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--space-md)}.wi-id__memo[data-astro-cid-fcla5cd5]{position:relative;padding:18px 16px 14px;border:1px solid var(--rule);border-radius:var(--radius-md, 12px);background:var(--bg-raised);box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease}.wi-id__memo[data-astro-cid-fcla5cd5]:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.wi-id__memo-days[data-astro-cid-fcla5cd5]{position:absolute;top:14px;right:14px;text-align:right;color:var(--accent);line-height:1.05}.wi-id__memo-days[data-astro-cid-fcla5cd5] strong[data-astro-cid-fcla5cd5]{display:block;font-size:1.5rem;font-weight:800}.wi-id__memo-days[data-astro-cid-fcla5cd5] span[data-astro-cid-fcla5cd5]{font-size:.62rem;letter-spacing:.04em;opacity:.8}.wi-id__memo-title[data-astro-cid-fcla5cd5]{font-size:var(--text-md);padding-left:0;margin-bottom:0;margin-right:62px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.wi-id__memo-title[data-astro-cid-fcla5cd5]:before{display:none}.wi-id__person[data-astro-cid-fcla5cd5] .wi-id__memo-title[data-astro-cid-fcla5cd5]{margin-right:0}.wi-id__pin[data-astro-cid-fcla5cd5]{flex:none;width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,#f43f5e,#be123c);box-shadow:0 2px 3px #00000040}.wi-id__rel[data-astro-cid-fcla5cd5]{font-size:.8em;font-weight:400;color:var(--ink-3)}.wi-id__memo-date[data-astro-cid-fcla5cd5]{margin:8px 0 0;font-size:var(--text-sm);color:var(--ink-2)}.wi-id__memo-sub[data-astro-cid-fcla5cd5]{margin:4px 0 0;font-size:var(--text-xs);color:var(--ink-3)}.wi-id__memo-people[data-astro-cid-fcla5cd5]{margin:8px 0 0;font-size:var(--text-sm);color:var(--ink-2)}.wi-id__tag[data-astro-cid-fcla5cd5]{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:9999px;font-size:.7rem;border:1px solid var(--rule);color:var(--ink-3)}.wi-id__person[data-astro-cid-fcla5cd5]{display:flex;align-items:center;gap:12px}.wi-id__person-info[data-astro-cid-fcla5cd5]{min-width:0}.wi-id__avatar[data-astro-cid-fcla5cd5]{position:relative;flex:none;width:40px;height:40Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-id[data-astro-cid-fcla5cd5]{padding-block:1rem 3rem}.wi-id__header[data-astro-cid-fcla5cd5]{text-align:center;margin-bottom:var(--space-xl)}.wi-id__title[data-astro-cid-fcla5cd5]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-id__subtitle[data-astro-cid-fcla5cd5]{font-size:var(--text-sm);color:var(--ink-3);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-fcla5cd5]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-id__switch-wrap[data-astro-cid-fcla5cd5]{display:flex;justify-content:center;margin-bottom:var(--space-xl)}.wi-id__switch[data-astro-cid-fcla5cd5]{display:inline-flex;gap:4px;padding:4px;border-radius:9999px;background:var(--bg-raised);border:1px solid var(--rule)}.wi-id__switch-btn[data-astro-cid-fcla5cd5]{border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--text-sm);line-height:1.2;padding:7px 22px;border-radius:9999px;color:var(--ink-2);transition:background-color .2s ease,color .2s ease}.wi-id__switch-btn[data-astro-cid-fcla5cd5]:hover{color:var(--ink)}.wi-id__switch-btn[data-astro-cid-fcla5cd5].is-active{background:var(--accent);color:#fff;font-weight:600;box-shadow:var(--shadow-sm)}.wi-id[data-astro-cid-fcla5cd5][data-view=life] .wi-id--car[data-astro-cid-fcla5cd5],.wi-id[data-astro-cid-fcla5cd5][data-view=car] .wi-id--life[data-astro-cid-fcla5cd5]{display:none!important}.wi-id__notice[data-astro-cid-fcla5cd5]{display:flex;flex-direction:column;gap:4px;padding:12px 18px;margin-bottom:var(--space-lg);border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);border-radius:var(--radius-md, 12px);background:color-mix(in srgb,var(--accent) 8%,var(--bg-raised))}.wi-id__notice-item[data-astro-cid-fcla5cd5]{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--accent-hover);font-size:var(--text-sm);line-height:1.9}.wi-id__notice-text[data-astro-cid-fcla5cd5]{flex:1;min-width:0}.wi-id__notice-close[data-astro-cid-fcla5cd5]{flex:none;border:0;background:transparent;color:inherit;opacity:.45;cursor:pointer;font:inherit;font-size:.9rem;line-height:1.4;padding:0 2px;transition:opacity .15s ease}.wi-id__notice-close[data-astro-cid-fcla5cd5]:hover{opacity:.9}.wi-id__block[data-astro-cid-fcla5cd5]{margin-bottom:var(--space-2xl)}.wi-id__block-head[data-astro-cid-fcla5cd5]{display:flex;align-items:baseline;gap:10px;margin-bottom:var(--space-md)}.wi-id__block-head--sub[data-astro-cid-fcla5cd5]{margin-top:var(--space-xl)}.wi-id__block-title[data-astro-cid-fcla5cd5]{font-size:var(--text-xl);margin-bottom:0}.wi-id__sub-title[data-astro-cid-fcla5cd5]{font-size:var(--text-md);padding-left:var(--space-lg);margin-bottom:0}.wi-id__count[data-astro-cid-fcla5cd5]{font-size:var(--text-sm);font-weight:400;color:var(--ink-3)}.wi-id__grid[data-astro-cid-fcla5cd5]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}@media(max-width:900px){.wi-id__grid[data-astro-cid-fcla5cd5]{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.wi-id__grid[data-astro-cid-fcla5cd5]{grid-template-columns:1fr}}.wi-id__memo[data-astro-cid-fcla5cd5]{position:relative;padding:18px 16px 14px;border:1px solid var(--rule);border-radius:var(--radius-md, 12px);background:var(--bg-raised);box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease}.wi-id__memo[data-astro-cid-fcla5cd5]:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.wi-id__memo-days[data-astro-cid-fcla5cd5]{position:absolute;top:14px;right:14px;text-align:right;color:var(--accent);line-height:1.05}.wi-id__memo-days[data-astro-cid-fcla5cd5] strong[data-astro-cid-fcla5cd5]{display:block;font-size:1.5rem;font-weight:800}.wi-id__memo-days[data-astro-cid-fcla5cd5] span[data-astro-cid-fcla5cd5]{font-size:.62rem;letter-spacing:.04em;opacity:.8}.wi-id__memo-title[data-astro-cid-fcla5cd5]{font-size:var(--text-md);padding-left:0;margin-bottom:0;margin-right:62px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.wi-id__memo-title[data-astro-cid-fcla5cd5]:before{display:none}.wi-id__person[data-astro-cid-fcla5cd5] .wi-id__memo-title[data-astro-cid-fcla5cd5]{margin-right:0}.wi-id__pin[data-astro-cid-fcla5cd5]{flex:none;width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,#f43f5e,#be123c);box-shadow:0 2px 3px #00000040}.wi-id__rel[data-astro-cid-fcla5cd5]{font-size:.8em;font-weight:400;color:var(--ink-3)}.wi-id__memo-date[data-astro-cid-fcla5cd5]{margin:8px 0 0;font-size:var(--text-sm);color:var(--ink-2)}.wi-id__memo-sub[data-astro-cid-fcla5cd5]{margin:4px 0 0;font-size:var(--text-xs);color:var(--ink-3)}.wi-id__memo-people[data-astro-cid-fcla5cd5]{margin:8px 0 0;font-size:var(--text-sm);color:var(--ink-2)}.wi-id__tag[data-astro-cid-fcla5cd5]{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:9999px;font-size:.7rem;border:1px solid var(--rule);color:var(--ink-3)}.wi-id__memo--person[data-astro-cid-fcla5cd5] .wiLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.hero[data-astro-cid-nlow4r3u]{position:fixed;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(160deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 85%,var(--accent) 15%) 40%,color-mix(in srgb,var(--bg) 90%,var(--mist-pink) 10%) 70%,var(--bg) 100%);width:100%}.hero__bg[data-astro-cid-nlow4r3u]{position:absolute;inset:0;pointer-events:none}.hero__blur-overlay[data-astro-cid-nlow4r3u]{position:absolute;inset:0;z-index:1;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);will-change:backdrop-filter;pointer-events:none}.hero__orb[data-astro-cid-nlow4r3u]{position:absolute;border-radius:50%;filter:blur(80px);animation:breathe 5s ease-in-out infinite}.hero__orb--1[data-astro-cid-nlow4r3u]{width:420px;height:420px;top:-10%;right:-5%;background:radial-gradient(circle,rgba(212,118,78,.4) 0%,transparent 70%);animation-delay:0s;animation-duration:5s}.hero__orb--2[data-astro-cid-nlow4r3u]{width:350px;height:350px;bottom:-8%;left:-5%;background:radial-gradient(circle,rgba(220,140,160,.3) 0%,transparent 70%);animation-delay:-1.8s;animation-duration:6s}.hero__orb--3[data-astro-cid-nlow4r3u]{width:300px;height:300px;top:40%;left:50%;transform:translate(-50%);background:radial-gradient(circle,rgba(180,150,200,.2) 0%,transparent 70%);animation-delay:-3.2s;animation-duration:4.5s}.hero__bg-image[data-astro-cid-nlow4r3u]{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.15}.hero__bg-image--dark[data-astro-cid-nlow4r3u],html.dark .hero__bg-image--light[data-astro-cid-nlow4r3u]{display:none}html.dark .hero__bg-image--dark[data-astro-cid-nlow4r3u]{display:block}.hero__content[data-astro-cid-nlow4r3u]{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-xl);gap:var(--space-lg);transition:opacity .4s ease,transform .4s ease}.hero__title[data-astro-cid-nlow4r3u]{font-family:var(--font-sans);font-size:clamp(3rem,8vw,6rem);font-weight:700;letter-spacing:-.03em;color:var(--hero-title-text, var(--ink));line-height:var(--leading-tight)}.hero__subtitle[data-astro-cid-nlow4r3u]{font-family:var(--font-body);font-size:var(--text-xl);color:var(--hero-subtitle-text, var(--ink-2));letter-spacing:.05em;line-height:var(--leading-normal)}.hero__description[data-astro-cid-nlow4r3u]{font-size:var(--text-lg);color:var(--ink-2);line-height:var(--leading-relaxed);max-width:560px;text-align:center;transition:opacity .3s ease}.hero__scroll-indicator[data-astro-cid-nlow4r3u]{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);z-index:2;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--ink-3);cursor:pointer;animation:scrollHint 2s ease-in-out infinite;transition:opacity .4s ease,color .2s ease,background .2s ease}.hero__scroll-indicator[data-astro-cid-nlow4r3u]:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.hero__scroll-indicator[data-astro-cid-nlow4r3u]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero--no-breath[data-astro-cid-nlow4r3u] .hero__orb[data-astro-cid-nlow4r3u]{animation:none}html.dark .hero[data-astro-cid-nlow4r3u]{background:linear-gradient(160deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 85%,var(--accent) 12%) 40%,var(--bg) 100%)}html.dark .hero__orb--1[data-astro-cid-nlow4r3u]{background:radial-gradient(circle,rgba(232,149,95,.25) 0%,transparent 70%)}html.dark .hero__orb--2[data-astro-cid-nlow4r3u]{background:radial-gradient(circle,rgba(200,120,140,.18) 0%,transparent 70%)}html.dark .hero__orb--3[data-astro-cid-nlow4r3u]{background:radial-gradient(circle,rgba(160,130,180,.12) 0%,transparent 70%)}@media(max-width:768px){.hero__title[data-astro-cid-nlow4r3u]{font-size:clamp(2.25rem,10vw,3.5rem)}.hero__orb--1[data-astro-cid-nlow4r3u]{width:260px;height:260px}.hero__orb--2[data-astro-cid-nlow4r3u]{width:220px;height:220px}.hero__orb--3[data-astro-cid-nlow4r3u]{width:180px;height:180px}.hero__content[data-astro-cid-nlow4r3u]{padding:var(--space-lg);gap:var(--space-md)}.hero__description[data-astro-cid-nlow4r3u]{max-width:90vw}}.wi-welcome-popup[data-astro-cid-4xlqga3i]{position:fixed;z-index:9999;max-width:min(380px,calc(100vw - 32px));pointer-events:none;opacity:0;transform:translateY(-12px);transition:opacity .4s var(--ease-out-expo),transform .4s var(--ease-out-expo);will-change:opacity,transform}.wi-welcome-popup[data-astro-cid-4xlqga3i][data-position=top-left]{top:88px;left:24px}.wi-welcome-popup[data-astro-cid-4xlqga3i][data-position=top-right]{top:88px;right:24px}.wi-welcome-popup[data-astro-cid-4xlqga3i][data-position=bottom-left]{bottom:24px;left:24px;transform:translateY(12px)}.wi-welcome-popup[data-astro-cid-4xlqga3i][data-position=bottom-right]{bottom:24px;right:24px;transform:translateY(12px)}.wi-welcome-popup[data-astro-cid-4xlqga3i][data-position=top-center]{top:88px;left:50%;transform:tLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.hero[data-astro-cid-nlow4r3u]{position:fixed;inset:0;z-index:-1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(160deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 85%,var(--accent) 15%) 40%,color-mix(in srgb,var(--bg) 90%,var(--mist-pink) 10%) 70%,var(--bg) 100%);width:100%}.hero__bg[data-astro-cid-nlow4r3u]{position:absolute;inset:0;pointer-events:none}.hero__blur-overlay[data-astro-cid-nlow4r3u]{position:absolute;inset:0;z-index:1;background:color-mix(in srgb,var(--bg) 26%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;will-change:opacity;pointer-events:none}.hero[data-astro-cid-nlow4r3u].wi-hero--offscreen{visibility:hidden}.hero[data-astro-cid-nlow4r3u].wi-hero--offscreen .hero__orb[data-astro-cid-nlow4r3u],.hero[data-astro-cid-nlow4r3u].wi-hero--offscreen .hero__scroll-indicator[data-astro-cid-nlow4r3u]{animation-play-state:paused}.hero__orb[data-astro-cid-nlow4r3u]{position:absolute;border-radius:50%;filter:blur(80px);animation:breathe 5s ease-in-out infinite}.hero__orb--1[data-astro-cid-nlow4r3u]{width:420px;height:420px;top:-10%;right:-5%;background:radial-gradient(circle,rgba(212,118,78,.4) 0%,transparent 70%);animation-delay:0s;animation-duration:5s}.hero__orb--2[data-astro-cid-nlow4r3u]{width:350px;height:350px;bottom:-8%;left:-5%;background:radial-gradient(circle,rgba(220,140,160,.3) 0%,transparent 70%);animation-delay:-1.8s;animation-duration:6s}.hero__orb--3[data-astro-cid-nlow4r3u]{width:300px;height:300px;top:40%;left:50%;transform:translate(-50%);background:radial-gradient(circle,rgba(180,150,200,.2) 0%,transparent 70%);animation-delay:-3.2s;animation-duration:4.5s}.hero__bg-image[data-astro-cid-nlow4r3u]{position:absolute;inset:0;background-size:cover;background-position:center;opacity:1}.hero__bg-image--dark[data-astro-cid-nlow4r3u],html.dark .hero__bg-image--light[data-astro-cid-nlow4r3u]{display:none}html.dark .hero__bg-image--dark[data-astro-cid-nlow4r3u]{display:block}.hero__content[data-astro-cid-nlow4r3u]{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-xl);gap:var(--space-lg);transition:opacity .4s ease,transform .4s ease}.hero__title[data-astro-cid-nlow4r3u]{font-family:var(--font-sans);font-size:clamp(3rem,8vw,6rem);font-weight:700;letter-spacing:-.03em;color:var(--hero-title-text, var(--ink));line-height:var(--leading-tight)}.hero__subtitle[data-astro-cid-nlow4r3u]{font-family:var(--font-body);font-size:var(--text-xl);color:var(--hero-subtitle-text, var(--ink-2));letter-spacing:.05em;line-height:var(--leading-normal)}.hero__description[data-astro-cid-nlow4r3u]{font-size:var(--text-lg);color:var(--hero-quote-text, var(--ink-2));line-height:var(--leading-relaxed);max-width:560px;text-align:center;transition:opacity .3s ease}.hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],.hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],.hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 1px 2px rgba(0,0,0,.22),0 2px 10px rgba(0,0,0,.16)}html.dark .hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],html.dark .hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],html.dark .hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 1px 3px rgba(0,0,0,.6),0 2px 12px rgba(0,0,0,.4)}.hero--fx-glow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],.hero--fx-glow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],.hero--fx-glow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 0 10px rgba(255,255,255,.85),0 0 26px rgba(255,255,255,.5)}html.dark .hero--fx-glow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],html.dark .hero--fx-glow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],html.dark .hero--fx-glow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 0 8px rgba(255,255,255,.45),0 0 24px rgba(255,255,255,.22)}.hero--fx-scrim[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:#ffffff73;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:24px;padding:var(--space-2xl)}html.dark .hero--fx-scrim[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:#0006}.hero--fx-gradient[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:linear-gradient(135deg,#ffffff8c,#ffffff2e);border-radius:24px;padding:var(--space-2xl)}html.dark .hero--fx-gradient[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:linear-gradient(135deg,#00000080,#00000029)}.hero--fx-frame[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:color-mix(in srgb,var(Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
.hero[data-astro-cid-nlow4r3u]{position:fixed;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(160deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 85%,var(--accent) 15%) 40%,color-mix(in srgb,var(--bg) 90%,var(--mist-pink) 10%) 70%,var(--bg) 100%);width:100%}.hero__bg[data-astro-cid-nlow4r3u]{position:absolute;inset:0;pointer-events:none}.hero__blur-overlay[data-astro-cid-nlow4r3u]{position:absolute;inset:0;z-index:1;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);will-change:backdrop-filter;pointer-events:none}.hero__orb[data-astro-cid-nlow4r3u]{position:absolute;border-radius:50%;filter:blur(80px);animation:breathe 5s ease-in-out infinite}.hero__orb--1[data-astro-cid-nlow4r3u]{width:420px;height:420px;top:-10%;right:-5%;background:radial-gradient(circle,rgba(212,118,78,.4) 0%,transparent 70%);animation-delay:0s;animation-duration:5s}.hero__orb--2[data-astro-cid-nlow4r3u]{width:350px;height:350px;bottom:-8%;left:-5%;background:radial-gradient(circle,rgba(220,140,160,.3) 0%,transparent 70%);animation-delay:-1.8s;animation-duration:6s}.hero__orb--3[data-astro-cid-nlow4r3u]{width:300px;height:300px;top:40%;left:50%;transform:translate(-50%);background:radial-gradient(circle,rgba(180,150,200,.2) 0%,transparent 70%);animation-delay:-3.2s;animation-duration:4.5s}.hero__bg-image[data-astro-cid-nlow4r3u]{position:absolute;inset:0;background-size:cover;background-position:center;opacity:1}.hero__bg-image--dark[data-astro-cid-nlow4r3u],html.dark .hero__bg-image--light[data-astro-cid-nlow4r3u]{display:none}html.dark .hero__bg-image--dark[data-astro-cid-nlow4r3u]{display:block}.hero__content[data-astro-cid-nlow4r3u]{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-xl);gap:var(--space-lg);transition:opacity .4s ease,transform .4s ease}.hero__title[data-astro-cid-nlow4r3u]{font-family:var(--font-sans);font-size:clamp(3rem,8vw,6rem);font-weight:700;letter-spacing:-.03em;color:var(--hero-title-text, var(--ink));line-height:var(--leading-tight);text-shadow:0 1px 3px rgba(255,253,250,.6),0 1px 14px rgba(255,253,250,.4)}html.dark .hero__title[data-astro-cid-nlow4r3u]{text-shadow:0 1px 3px rgba(0,0,0,.55),0 1px 14px rgba(0,0,0,.35)}.hero__subtitle[data-astro-cid-nlow4r3u]{font-family:var(--font-body);font-size:var(--text-xl);color:var(--hero-subtitle-text, var(--ink-2));letter-spacing:.05em;line-height:var(--leading-normal);text-shadow:0 1px 3px rgba(255,253,250,.6),0 1px 10px rgba(255,253,250,.4)}html.dark .hero__subtitle[data-astro-cid-nlow4r3u]{text-shadow:0 1px 3px rgba(0,0,0,.55),0 1px 10px rgba(0,0,0,.35)}.hero__description[data-astro-cid-nlow4r3u]{font-size:var(--text-lg);color:var(--ink-2);line-height:var(--leading-relaxed);max-width:560px;text-align:center;transition:opacity .3s ease;text-shadow:0 1px 3px rgba(255,253,250,.55)}html.dark .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 1px 3px rgba(0,0,0,.5)}.hero__scroll-indicator[data-astro-cid-nlow4r3u]{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);z-index:2;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--ink-3);cursor:pointer;animation:scrollHint 2s ease-in-out infinite;transition:opacity .4s ease,color .2s ease,background .2s ease}.hero__scroll-indicator[data-astro-cid-nlow4r3u]:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.hero__scroll-indicator[data-astro-cid-nlow4r3u]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero--no-breath[data-astro-cid-nlow4r3u] .hero__orb[data-astro-cid-nlow4r3u]{animation:none}html.dark .hero[data-astro-cid-nlow4r3u]{background:linear-gradient(160deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 85%,var(--accent) 12%) 40%,var(--bg) 100%)}html.dark .hero__orb--1[data-astro-cid-nlow4r3u]{background:radial-gradient(circle,rgba(232,149,95,.25) 0%,transparent 70%)}html.dark .hero__orb--2[data-astro-cid-nlow4r3u]{background:radial-gradient(circle,rgba(200,120,140,.18) 0%,transparent 70%)}html.dark .hero__orb--3[data-astro-cid-nlow4r3u]{background:radial-gradient(circle,rgba(160,130,180,.12) 0%,transparent 70%)}@media(max-width:768px){.hero__title[data-astro-cid-nlow4r3u]{font-size:clamp(2.25rem,10vw,3.5rem)}.hero__orb--1[data-astro-cid-nlow4r3u]{width:260px;height:260px}.hero__orb--2[data-astro-cid-nlow4r3u]{width:220px;height:220px}.hero__orb--3[data-astro-cid-nlow4r3u]{width:180px;height:180px}.hero__content[data-astro-cid-nlow4r3u]{padding:var(--space-lg);gap:var(--space-md)}.hero__description[data-astro-cid-nlow4r3u]{max-width:90vw}}.wi-welcome-popup[data-astro-cid-4xlqga3i]{position:fixed;z-index:9999;max-width:min(380px,calc(100vw - 32px));pointer-events:none;opacity:0;transform:translateY(-12px);transition:opacity .4s var(--ease-out-expo),transform .4s var(--ease-out-expo);will-change:opacity,transform}Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
.hero[data-astro-cid-nlow4r3u]{position:fixed;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(160deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 85%,var(--accent) 15%) 40%,color-mix(in srgb,var(--bg) 90%,var(--mist-pink) 10%) 70%,var(--bg) 100%);width:100%}.hero__bg[data-astro-cid-nlow4r3u]{position:absolute;inset:0;pointer-events:none}.hero__blur-overlay[data-astro-cid-nlow4r3u]{position:absolute;inset:0;z-index:1;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);will-change:backdrop-filter;pointer-events:none}.hero__orb[data-astro-cid-nlow4r3u]{position:absolute;border-radius:50%;filter:blur(80px);animation:breathe 5s ease-in-out infinite}.hero__orb--1[data-astro-cid-nlow4r3u]{width:420px;height:420px;top:-10%;right:-5%;background:radial-gradient(circle,rgba(212,118,78,.4) 0%,transparent 70%);animation-delay:0s;animation-duration:5s}.hero__orb--2[data-astro-cid-nlow4r3u]{width:350px;height:350px;bottom:-8%;left:-5%;background:radial-gradient(circle,rgba(220,140,160,.3) 0%,transparent 70%);animation-delay:-1.8s;animation-duration:6s}.hero__orb--3[data-astro-cid-nlow4r3u]{width:300px;height:300px;top:40%;left:50%;transform:translate(-50%);background:radial-gradient(circle,rgba(180,150,200,.2) 0%,transparent 70%);animation-delay:-3.2s;animation-duration:4.5s}.hero__bg-image[data-astro-cid-nlow4r3u]{position:absolute;inset:0;background-size:cover;background-position:center;opacity:1}.hero__bg-image--dark[data-astro-cid-nlow4r3u],html.dark .hero__bg-image--light[data-astro-cid-nlow4r3u]{display:none}html.dark .hero__bg-image--dark[data-astro-cid-nlow4r3u]{display:block}.hero__content[data-astro-cid-nlow4r3u]{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-xl);gap:var(--space-lg);transition:opacity .4s ease,transform .4s ease}.hero__title[data-astro-cid-nlow4r3u]{font-family:var(--font-sans);font-size:clamp(3rem,8vw,6rem);font-weight:700;letter-spacing:-.03em;color:var(--hero-title-text, var(--ink));line-height:var(--leading-tight)}.hero__subtitle[data-astro-cid-nlow4r3u]{font-family:var(--font-body);font-size:var(--text-xl);color:var(--hero-subtitle-text, var(--ink-2));letter-spacing:.05em;line-height:var(--leading-normal)}.hero__description[data-astro-cid-nlow4r3u]{font-size:var(--text-lg);color:var(--hero-quote-text, var(--ink-2));line-height:var(--leading-relaxed);max-width:560px;text-align:center;transition:opacity .3s ease}.hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],.hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],.hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 1px 2px rgba(0,0,0,.22),0 2px 10px rgba(0,0,0,.16)}html.dark .hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],html.dark .hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],html.dark .hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 1px 3px rgba(0,0,0,.6),0 2px 12px rgba(0,0,0,.4)}.hero--fx-glow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],.hero--fx-glow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],.hero--fx-glow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 0 10px rgba(255,255,255,.85),0 0 26px rgba(255,255,255,.5)}html.dark .hero--fx-glow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],html.dark .hero--fx-glow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],html.dark .hero--fx-glow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 0 8px rgba(255,255,255,.45),0 0 24px rgba(255,255,255,.22)}.hero--fx-scrim[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:#ffffff73;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:24px;padding:var(--space-2xl)}html.dark .hero--fx-scrim[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:#0006}.hero--fx-gradient[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:linear-gradient(135deg,#ffffff8c,#ffffff2e);border-radius:24px;padding:var(--space-2xl)}html.dark .hero--fx-gradient[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:linear-gradient(135deg,#00000080,#00000029)}.hero--fx-frame[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:color-mix(in srgb,var(--bg) 30%,transparent);border-radius:24px;padding:var(--space-2xl) var(--space-3xl);gap:var(--space-xl)}html.dark .hero--fx-frame[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{border-color:color-mix(in srgb,#ffffff 32%,transparent)}.hero--fx-frame[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u]{letter-spaciLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.hero[data-astro-cid-nlow4r3u]{position:fixed;inset:0;z-index:-1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(160deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 85%,var(--accent) 15%) 40%,color-mix(in srgb,var(--bg) 90%,var(--mist-pink) 10%) 70%,var(--bg) 100%);width:100%}.hero__bg[data-astro-cid-nlow4r3u]{position:absolute;inset:0;pointer-events:none}.hero__blur-overlay[data-astro-cid-nlow4r3u]{position:absolute;inset:0;z-index:1;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);will-change:backdrop-filter;pointer-events:none}.hero__orb[data-astro-cid-nlow4r3u]{position:absolute;border-radius:50%;filter:blur(80px);animation:breathe 5s ease-in-out infinite}.hero__orb--1[data-astro-cid-nlow4r3u]{width:420px;height:420px;top:-10%;right:-5%;background:radial-gradient(circle,rgba(212,118,78,.4) 0%,transparent 70%);animation-delay:0s;animation-duration:5s}.hero__orb--2[data-astro-cid-nlow4r3u]{width:350px;height:350px;bottom:-8%;left:-5%;background:radial-gradient(circle,rgba(220,140,160,.3) 0%,transparent 70%);animation-delay:-1.8s;animation-duration:6s}.hero__orb--3[data-astro-cid-nlow4r3u]{width:300px;height:300px;top:40%;left:50%;transform:translate(-50%);background:radial-gradient(circle,rgba(180,150,200,.2) 0%,transparent 70%);animation-delay:-3.2s;animation-duration:4.5s}.hero__bg-image[data-astro-cid-nlow4r3u]{position:absolute;inset:0;background-size:cover;background-position:center;opacity:1}.hero__bg-image--dark[data-astro-cid-nlow4r3u],html.dark .hero__bg-image--light[data-astro-cid-nlow4r3u]{display:none}html.dark .hero__bg-image--dark[data-astro-cid-nlow4r3u]{display:block}.hero__content[data-astro-cid-nlow4r3u]{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-xl);gap:var(--space-lg);transition:opacity .4s ease,transform .4s ease}.hero__title[data-astro-cid-nlow4r3u]{font-family:var(--font-sans);font-size:clamp(3rem,8vw,6rem);font-weight:700;letter-spacing:-.03em;color:var(--hero-title-text, var(--ink));line-height:var(--leading-tight)}.hero__subtitle[data-astro-cid-nlow4r3u]{font-family:var(--font-body);font-size:var(--text-xl);color:var(--hero-subtitle-text, var(--ink-2));letter-spacing:.05em;line-height:var(--leading-normal)}.hero__description[data-astro-cid-nlow4r3u]{font-size:var(--text-lg);color:var(--hero-quote-text, var(--ink-2));line-height:var(--leading-relaxed);max-width:560px;text-align:center;transition:opacity .3s ease}.hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],.hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],.hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 1px 2px rgba(0,0,0,.22),0 2px 10px rgba(0,0,0,.16)}html.dark .hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],html.dark .hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],html.dark .hero--fx-shadow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 1px 3px rgba(0,0,0,.6),0 2px 12px rgba(0,0,0,.4)}.hero--fx-glow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],.hero--fx-glow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],.hero--fx-glow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 0 10px rgba(255,255,255,.85),0 0 26px rgba(255,255,255,.5)}html.dark .hero--fx-glow[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u],html.dark .hero--fx-glow[data-astro-cid-nlow4r3u] .hero__subtitle[data-astro-cid-nlow4r3u],html.dark .hero--fx-glow[data-astro-cid-nlow4r3u] .hero__description[data-astro-cid-nlow4r3u]{text-shadow:0 0 8px rgba(255,255,255,.45),0 0 24px rgba(255,255,255,.22)}.hero--fx-scrim[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:#ffffff73;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:24px;padding:var(--space-2xl)}html.dark .hero--fx-scrim[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:#0006}.hero--fx-gradient[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:linear-gradient(135deg,#ffffff8c,#ffffff2e);border-radius:24px;padding:var(--space-2xl)}html.dark .hero--fx-gradient[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{background:linear-gradient(135deg,#00000080,#00000029)}.hero--fx-frame[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:color-mix(in srgb,var(--bg) 30%,transparent);border-radius:24px;padding:var(--space-2xl) var(--space-3xl);gap:var(--space-xl)}html.dark .hero--fx-frame[data-astro-cid-nlow4r3u] .hero__content[data-astro-cid-nlow4r3u]{border-color:color-mix(in srgb,#ffffff 32%,transparent)}.hero--fx-frame[data-astro-cid-nlow4r3u] .hero__title[data-astro-cid-nlow4r3u]{letter-spacLine truncated
|
||||
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
<json>
|
||||
<![CDATA[
|
||||
{
|
||||
"fontFamily": "lg",
|
||||
"majorVersion": 2,
|
||||
"minorVersion": 0,
|
||||
"fontURL": "",
|
||||
"copyright": "",
|
||||
"license": "",
|
||||
"licenseURL": "",
|
||||
"description": "Font generated by IcoMoon.",
|
||||
"version": "Version 2.0",
|
||||
"fontId": "lg",
|
||||
"psName": "lg",
|
||||
"subFamily": "Regular",
|
||||
"fullName": "lg"
|
||||
}
|
||||
]]>
|
||||
</json>
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="lg" horiz-adv-x="1024">
|
||||
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
||||
<missing-glyph horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="512" d="" />
|
||||
<glyph unicode="" glyph-name="pause_circle_outline" data-tags="pause_circle_outline" d="M554 256.667v340h86v-340h-86zM512 84.667q140 0 241 101t101 241-101 241-241 101-241-101-101-241 101-241 241-101zM512 852.667q176 0 301-125t125-301-125-301-301-125-301 125-125 301 125 301 301 125zM384 256.667v340h86v-340h-86z" />
|
||||
<glyph unicode="" glyph-name="play_circle_outline" data-tags="play_circle_outline" d="M512 84.667q140 0 241 101t101 241-101 241-241 101-241-101-101-241 101-241 241-101zM512 852.667q176 0 301-125t125-301-125-301-301-125-301 125-125 301 125 301 301 125zM426 234.667v384l256-192z" />
|
||||
<glyph unicode="" glyph-name="stack-2" data-tags="stack-2" d="M384 853.334h426.667q53 0 90.5-37.5t37.5-90.5v-426.667q0-53-37.5-90.5t-90.5-37.5h-426.667q-53 0-90.5 37.5t-37.5 90.5v426.667q0 53 37.5 90.5t90.5 37.5zM170.667 675.334v-547.333q0-17.667 12.5-30.167t30.167-12.5h547.333q-13.333-37.667-46.333-61.5t-74.333-23.833h-426.667q-53 0-90.5 37.5t-37.5 90.5v426.667q0 41.333 23.833 74.333t61.5 46.333zM810.667 768h-426.667q-17.667 0-30.167-12.5t-12.5-30.167v-426.667q0-17.667 12.5-30.167t30.167-12.5h426.667q17.667 0 30.167 12.5t12.5 30.167v426.667q0 17.667-12.5 30.167t-30.167 12.5z" />
|
||||
<glyph unicode="" glyph-name="clear" data-tags="clear" d="M810 664.667l-238-238 238-238-60-60-238 238-238-238-60 60 238 238-238 238 60 60 238-238 238 238z" />
|
||||
<glyph unicode="" glyph-name="arrow-left" data-tags="arrow-left" d="M426.667 768q17.667 0 30.167-12.5t12.5-30.167q0-18-12.667-30.333l-225.667-225.667h665q17.667 0 30.167-12.5t12.5-30.167-12.5-30.167-30.167-12.5h-665l225.667-225.667q12.667-12.333 12.667-30.333 0-17.667-12.5-30.167t-30.167-12.5q-18 0-30.333 12.333l-298.667 298.667q-12.333 13-12.333 30.333t12.333 30.333l298.667 298.667q12.667 12.333 30.333 12.333z" />
|
||||
<glyph unicode="" glyph-name="arrow-right" data-tags="arrow-right" d="M597.333 768q18 0 30.333-12.333l298.667-298.667q12.333-12.333 12.333-30.333t-12.333-30.333l-298.667-298.667q-12.333-12.333-30.333-12.333-18.333 0-30.5 12.167t-12.167 30.5q0 18 12.333 30.333l226 225.667h-665q-17.667 0-30.167 12.5t-12.5 30.167 12.5 30.167 30.167 12.5h665l-226 225.667q-12.333 12.333-12.333 30.333 0 18.333 12.167 30.5t30.5 12.167z" />
|
||||
<glyph unicode="" glyph-name="vertical_align_bottom" data-tags="vertical_align_bottom" d="M170 128.667h684v-86h-684v86zM682 384.667l-170-172-170 172h128v426h84v-426h128z" />
|
||||
<glyph unicode="" glyph-name="apps" data-tags="apps" d="M682 84.667v172h172v-172h-172zM682 340.667v172h172v-172h-172zM426 596.667v172h172v-172h-172zM682 768.667h172v-172h-172v172zM426 340.667v172h172v-172h-172zM170 340.667v172h172v-172h-172zM170 84.667v172h172v-172h-172zM426 84.667v172h172v-172h-172zM170 596.667v172h172v-172h-172z" />
|
||||
<glyph unicode="" glyph-name="fullscreen" data-tags="fullscreen" d="M598 724.667h212v-212h-84v128h-128v84zM726 212.667v128h84v-212h-212v84h128zM214 512.667v212h212v-84h-128v-128h-84zM298 340.667v-128h128v-84h-212v212h84z" />
|
||||
<glyph unicode="" glyph-name="fullscreen_exit" data-tags="fullscreen_exit" d="M682 596.667h128v-84h-212v212h84v-128zM598 128.667v212h212v-84h-128v-128h-84zM342 596.667v128h84v-212h-212v84h128zM214 256.667v84h212v-212h-84v128h-128z" />
|
||||
<glyph unicode="" glyph-name="zoom_in" data-tags="zoom_in" d="M512 512.667h-86v-86h-42v86h-86v42h86v86h42v-86h86v-42zM406 340.667q80 0 136 56t56 136-56 136-136 56-136-56-56-136 56-136 136-56zM662 340.667l212-212-64-64-212 212v34l-12 12q-76-66-180-66-116 0-197 80t-81 196 81 197 197 81 196-81 80-197q0-104-66-180l12-12h34z" />
|
||||
<glyph unicode="" glyph-name="zoom_out" data-tags="zoom_out" d="M298 554.667h214v-42h-214v42zM406 340.667q80 0 136 56t56 136-56 136-136 56-136-56-56-136 56-136 136-56zM662 340.667l212-212-64-64-212 212v34l-12 12q-76-66-180-66-116 0-197 80t-81 196 81 197 197 81 196-81 80-197q0-104-66-180l12-12h34z" />
|
||||
<glyph unicode="" glyph-name="share" data-tags="share" d="M768 252.667c68 0 124-56 124-124s-56-126-124-126-124 58-124 126c0 10 0 20 2 28l-302 176c-24-22-54-34-88-34-70 0-128 58-128 128s58 128 128 128c34 0 64-12 88-34l300 174c-2 10-4 20-4 30 0 70 58 128 128 128s128-58 128-128-58-128-128-128c-34 0-64 14-88 36l-300-176c2-10 4-20 4-30s-2-20-4-30l304-176c22 20 52 32 84 32z" />
|
||||
<glyph unicode="" glyph-name="rotate_left" data-tags="rotate_left" d="M554 764.667q126-16 213-112t87-226-87-226-213-112v86q92 16 153 87t61 165-61 165-153 87v-166l-194 190 194 194v-132zM302 156.667l62 62q46-34 106-44v-86q-96 12-168 68zM260 384.667q10-58 42-106l-60-60q-56 74-68 166h86zM304 574.667q-36-52-44-106h-86q12 90 70 166z" />
|
||||
<glyph unicode="" glyph-name="rotate_right" data-tags="rotate_right" d="M720 278.667q34 46 44 106h86q-12-92-68-166zM554 174.667q60 10 106 44l62-62q-72-56-168-68v86zM850 468.667h-86q-10 60-44 106l62 60q58-72 68-166zM664 702.667l-194-190v166q-92-16-153-87t-61-165 61-165 153-87v-86q-126 16-213 112t-87 226 87 226 213 112v132z" />
|
||||
<glyph unicode="" glyph-name="swap_horiz" data-tags="swap_horiz" d="M896 554.667l-170-170v128h-300v84h300v128zM298 468.667v-128h300v-84h-300v-128l-170 170z" />
|
||||
<glyph unicode="" glyph-name="swap_vert" data-tags="swap_vert" d="M384 810.667l170-170h-128v-300h-84v300h-128zM682 212.667h128l-170-170-170 170h128v300h84v-300z" />
|
||||
<glyph unicode="" glyph-name="facebook-with-circle" data-tags="facebook-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM628.429 612.659h-73.882c-8.755 0-18.483-11.52-18.483-26.829v-53.35h92.416l-13.978-76.083h-78.438v-228.403h-87.194v228.403h-79.104v76.083h79.104v44.749c0 64.205 44.544 116.378 105.677 116.378h73.882v-80.947z" />
|
||||
<glyph unicode="" glyph-name="google-with-circle" data-tags="google+-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM483.686 249.805c-30.874-15.002-64.102-16.589-76.954-16.589-2.458 0-3.84 0-3.84 0s-1.178 0-2.765 0c-20.070 0-119.962 4.608-119.962 95.59 0 89.395 108.8 96.41 142.131 96.41h0.87c-19.251 25.702-15.258 51.61-15.258 51.61-1.69-0.102-4.147-0.205-7.168-0.205-12.544 0-36.762 1.997-57.549 15.411-25.498 16.384-38.4 44.288-38.4 82.893 0 109.107 119.142 113.51 120.32 113.613h118.989v-2.611c0-13.312-23.91-15.923-40.192-18.125-5.53-0.819-16.64-1.894-19.763-3.482 30.157-16.128 35.021-41.421 35.021-79.104 0-42.906-16.794-65.587-34.611-81.51-11.059-9.882-19.712-17.613-19.712-28.006 0-10.189 11.878-20.582 25.702-32.717 22.579-19.917 53.555-47.002 53.555-92.723 0-47.258-20.326-81.050-60.416-100.454zM742.4 460.8h-76.8v-76.8h-51.2v76.8h-76.8v51.2h76.8v76.8h51.2v-76.8h76.8v-51.2zM421.018 401.92c-2.662 0-5.325-0.102-8.038-0.307-22.733-1.69-43.725-10.189-58.88-24.013-15.053-13.619-22.733-30.822-21.658-48.179 2.304-36.403 41.37-57.702 88.832-54.323 46.694 3.379 77.824 30.31 75.571 66.714-2.15 34.202-31.898 60.109-75.827 60.109zM465.766 599.808c-12.39 43.52-32.358 56.422-63.386 56.422-3.328 0-6.707-0.512-9.933-1.382-13.466-3.84-24.166-15.053-30.106-31.744-6.093-16.896-6.451-34.509-1.229-54.579 9.472-35.891 34.97-61.901 60.672-61.901 3.379 0 6.758 0.41 9.933 1.382 28.109 7.885 45.722 50.79 34.048 91.802z" />
|
||||
<glyph unicode="" glyph-name="pinterest-with-circle" data-tags="pinterest-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM545.638 344.32c-31.539 2.406-44.749 18.022-69.427 32.973-13.568-71.219-30.157-139.52-79.309-175.206-15.206 107.725 22.221 188.518 39.629 274.381-29.645 49.92 3.533 150.323 66.099 125.645 76.954-30.515-66.662-185.6 29.747-205.005 100.659-20.173 141.773 174.694 79.36 237.978-90.214 91.494-262.502 2.099-241.306-128.87 5.12-32 38.246-41.728 13.21-85.914-57.702 12.8-74.957 58.317-72.704 118.989 3.533 99.328 89.242 168.909 175.155 178.483 108.698 12.083 210.688-39.885 224.819-142.182 15.821-115.405-49.101-240.282-165.274-231.27z" />
|
||||
<glyph unicode="" glyph-name="twitter-with-circle" data-tags="twitter-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM711.936 549.683c0.205-4.198 0.256-8.397 0.256-12.493 0-128-97.331-275.507-275.405-275.507-54.682 0-105.574 15.974-148.378 43.52 7.526-0.922 15.258-1.28 23.091-1.28 45.363 0 87.091 15.411 120.218 41.421-42.342 0.819-78.080 28.774-90.419 67.174 5.888-1.075 11.93-1.69 18.176-1.69 8.806 0 17.408 1.178 25.498 3.379-44.288 8.909-77.67 48.026-77.67 94.925v1.178c13.056-7.219 28.006-11.622 43.878-12.134-26.010 17.408-43.059 47.002-43.059 80.64 0 17.715 4.762 34.406 13.107 48.691 47.77-58.573 119.040-97.075 199.526-101.222-1.69 7.117-2.509 14.49-2.509 22.118 0 53.402 43.315 96.819 96.819 96.819 27.802 0 52.992-11.776 70.656-30.618 22.067 4.403 42.752 12.39 61.44 23.501-7.219-22.579-22.528-41.574-42.547-53.606 19.61 2.406 38.246 7.578 55.603 15.309-12.954-19.405-29.389-36.506-48.282-50.125z" />
|
||||
<glyph unicode="" glyph-name="message-circle" data-tags="message-circle" d="M938.667 448.128v21.205c0 0.725-0.043 1.621-0.085 2.475-5.803 99.755-47.488 190.336-112.725 258.176-68.352 71.125-162.731 117.419-268.843 123.264-0.683 0.043-1.536 0.085-2.347 0.085h-20.864c-59.947 0.683-122.965-13.227-181.931-43.008-52.181-26.496-97.749-63.488-133.931-108.16-56.405-69.717-89.899-158.080-89.941-253.696-0.597-54.4 10.795-111.36 35.157-165.419l-75.605-226.859c-2.816-8.363-3.072-17.835 0-26.965 7.467-22.357 31.616-34.432 53.973-26.965l226.731 75.563c49.493-22.485 105.984-35.243 165.376-35.115 58.539 0.384 115.797 13.141 168.149 36.949 81.579 37.163 151.040 101.248 193.749 186.667 27.477 53.291 43.307 115.84 43.136 181.803zM853.333 447.872c0.128-52.267-12.459-101.333-33.664-142.464-34.176-68.352-88.832-118.827-153.259-148.139-41.387-18.859-86.827-28.971-133.376-29.269-52.096-0.128-101.163 12.459-142.293 33.664-10.624 5.504-22.528 6.059-33.067 2.56l-162.261-54.101 54.101 162.261c3.755 11.221 2.56 22.912-2.389 32.725-23.552 46.677-34.304 96.171-33.792 142.421 0.043 76.331 26.411 145.92 70.955 200.917 28.629 35.371 64.768 64.725 106.24 85.76 46.592 23.552 96.085 34.304 142.336 33.792h19.456c83.712-4.565 158.037-41.003 212.011-97.152 51.285-53.376 84.139-124.416 89.003-202.795z" />
|
||||
<glyph unicode="" glyph-name="maximize-2" data-tags="maximize-2" d="M793.003 768l-225.835-225.835c-16.683-16.683-16.683-43.691 0-60.331s43.691-16.683 60.331 0l225.835 225.835v-153.003c0-23.552 19.115-42.667 42.667-42.667s42.667 19.115 42.667 42.667v256c0 5.803-1.152 11.307-3.243 16.341s-5.163 9.728-9.216 13.781c-0.043 0.043-0.043 0.043-0.085 0.085-3.925 3.925-8.619 7.083-13.781 9.216-5.035 2.091-10.539 3.243-16.341 3.243h-256c-23.552 0-42.667-19.115-42.667-42.667s19.115-42.667 42.667-42.667zM230.997 85.334l225.835 225.835c16.683 16.683 16.683 43.691 0 60.331s-43.691 16.683-60.331 0l-225.835-225.835v153.003c0 23.552-19.115 42.667-42.667 42.667s-42.667-19.115-42.667-42.667v-256c0-23.552 19.115-42.667 42.667-42.667h256c23.552 0 42.667 19.115 42.667 42.667s-19.115 42.667-42.667 42.667z" />
|
||||
<glyph unicode="" glyph-name="minimize-2" data-tags="minimize-2" d="M700.331 554.667l225.835 225.835c16.683 16.683 16.683 43.691 0 60.331s-43.691 16.683-60.331 0l-225.835-225.835v153.003c0 23.552-19.115 42.667-42.667 42.667s-42.667-19.115-42.667-42.667v-256c0-5.803 1.152-11.307 3.243-16.341s5.163-9.728 9.216-13.781c0.043-0.043 0.043-0.043 0.085-0.085 3.925-3.925 8.619-7.083 13.781-9.216 5.035-2.091 10.539-3.243 16.341-3.243h256c23.552 0 42.667 19.115 42.667 42.667s-19.115 42.667-42.667 42.667zM158.165 12.502l225.835 225.835v-153.003c0-23.552 19.115-42.667 42.667-42.667s42.667 19.115 42.667 42.667v256c0 5.803-1.152 11.307-3.243 16.341s-5.163 9.728-9.216 13.781c-0.043 0.043-0.043 0.043-0.085 0.085-4.096 4.053-8.789 7.125-13.781 9.216-5.035 2.091-10.539 3.243-16.341 3.243h-256c-23.552 0-42.667-19.115-42.667-42.667s19.115-42.667 42.667-42.667h153.003l-225.835-225.835c-16.683-16.683-16.683-43.691 0-60.331s43.691-16.683 60.331 0z" />
|
||||
</font></defs></svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
.wi-links[data-astro-cid-au7rboj5]{padding-block:1rem}.wi-links__header[data-astro-cid-au7rboj5]{text-align:center;margin-bottom:var(--space-3xl)}.wi-links__portal[data-astro-cid-au7rboj5]{display:inline-flex;align-items:center;gap:.375rem;padding:.6rem 1.1rem;min-height:44px;margin-top:var(--space-md);border-radius:9999px;font-size:var(--text-sm);color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));border:none;cursor:pointer;font-family:inherit;font-weight:600;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 30%,transparent);transition:transform var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart),opacity var(--duration-fast) var(--ease-out-quart)}.wi-links__portal[data-astro-cid-au7rboj5]:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent);opacity:.95}.wi-links__portal[data-astro-cid-au7rboj5]:active{transform:translateY(0) scale(.97)}.wi-links__portal[data-astro-cid-au7rboj5] svg[data-astro-cid-au7rboj5]{transition:transform var(--duration-normal) var(--ease-out-expo)}.wi-links__portal[data-astro-cid-au7rboj5]:hover svg[data-astro-cid-au7rboj5]{transform:rotate(180deg) scale(1.1)}.wi-links__comment[data-astro-cid-au7rboj5]{margin-top:var(--space-3xl)}.wi-links__apply[data-astro-cid-au7rboj5]{margin-top:var(--space-3xl);padding:var(--space-xl);border:1px solid var(--rule);border-radius:var(--radius-lg, 16px);background:var(--bg-raised)}.wi-links__apply-title[data-astro-cid-au7rboj5]{text-align:center;font-size:var(--text-xl);font-weight:700;color:var(--ink);margin-bottom:var(--space-lg)}.wi-links__apply-result[data-astro-cid-au7rboj5]{text-align:center;font-size:var(--text-sm);color:var(--accent);margin-bottom:var(--space-md)}.wi-links__apply-result--ok[data-astro-cid-au7rboj5],.wi-links-check-ok[data-astro-cid-au7rboj5]{color:var(--accent)}.wi-links__apply-result--error[data-astro-cid-au7rboj5],.wi-links-check-error[data-astro-cid-au7rboj5]{color:#e6162d}html.dark .wi-links__apply-result--error[data-astro-cid-au7rboj5],html.dark .wi-links-check-error[data-astro-cid-au7rboj5]{color:#ff6b6b}.wi-links__apply-form[data-astro-cid-au7rboj5]{display:flex;flex-direction:column;gap:var(--space-md)}.wi-links__apply-row[data-astro-cid-au7rboj5]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.wi-links__apply-field[data-astro-cid-au7rboj5]{display:flex;flex-direction:column;gap:.35rem;font-size:var(--text-sm);color:var(--ink-2)}.wi-links__apply-field[data-astro-cid-au7rboj5] input[data-astro-cid-au7rboj5],.wi-links__apply-field[data-astro-cid-au7rboj5] textarea[data-astro-cid-au7rboj5]{padding:.6rem .8rem;border:1px solid var(--rule);border-radius:10px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:var(--text-sm);transition:border-color .15s ease,box-shadow .15s ease;resize:vertical}.wi-links__apply-field[data-astro-cid-au7rboj5] input[data-astro-cid-au7rboj5]:focus,.wi-links__apply-field[data-astro-cid-au7rboj5] textarea[data-astro-cid-au7rboj5]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.wi-links__apply-captcha[data-astro-cid-au7rboj5]{display:flex;align-items:flex-end;padding-bottom:2px}.wi-links__apply-captcha-img[data-astro-cid-au7rboj5]{border-radius:8px;border:1px solid var(--rule);cursor:pointer}.wi-links__apply-submit[data-astro-cid-au7rboj5]{align-self:center;padding:.65rem 2.2rem;min-height:44px;border:none;border-radius:9999px;font-size:var(--text-sm);font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));cursor:pointer;transition:transform var(--duration-fast) var(--ease-out-quart),opacity .15s ease}.wi-links__apply-submit[data-astro-cid-au7rboj5]:hover{transform:translateY(-1px);opacity:.95}.wi-links__apply-submit[data-astro-cid-au7rboj5]:active{transform:translateY(0) scale(.98)}.wi-links__apply--unavailable[data-astro-cid-au7rboj5] .wi-links__apply-form[data-astro-cid-au7rboj5]{display:none}.wi-links__apply--unavailable[data-astro-cid-au7rboj5] .wi-links__apply-unavailable-tip[data-astro-cid-au7rboj5]{display:block!important;text-align:center;color:var(--ink-3);font-size:var(--text-sm)}@media(max-width:640px){.wi-links__apply-row[data-astro-cid-au7rboj5]{grid-template-columns:1fr}}.wi-links__title[data-astro-cid-au7rboj5]{font-size:var(--text-4xl);margin-bottom:var(--space-xs)}.wi-links__subtitle[data-astro-cid-au7rboj5]{font-size:var(--text-sm);color:var(--ink-3);letter-spacing:var(--tracking-wide);margin-block-end:0}.wi-page-accent[data-astro-cid-au7rboj5]{display:block;width:48px;height:3px;margin:var(--space-md) auto 0;border-radius:9999px;background:var(--accent)}.wi-links__group[data-astro-cid-au7rboj5]{font-size:var(--text-lg);color:var(--ink-2);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:1px solid var(--rule);font-weight:600}.Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-links[data-astro-cid-au7rboj5]{padding-block:1rem}.wi-links__header[data-astro-cid-au7rboj5]{text-align:center;margin-bottom:var(--space-3xl)}.wi-links__portal[data-astro-cid-au7rboj5]{display:inline-flex;align-items:center;gap:.375rem;padding:.6rem 1.1rem;min-height:44px;margin-top:var(--space-md);border-radius:9999px;font-size:var(--text-sm);color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));border:none;cursor:pointer;font-family:inherit;font-weight:600;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 30%,transparent);transition:transform var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart),opacity var(--duration-fast) var(--ease-out-quart)}.wi-links__portal[data-astro-cid-au7rboj5]:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent);opacity:.95}.wi-links__portal[data-astro-cid-au7rboj5]:active{transform:translateY(0) scale(.97)}.wi-links__portal[data-astro-cid-au7rboj5] svg[data-astro-cid-au7rboj5]{transition:transform var(--duration-normal) var(--ease-out-expo)}.wi-links__portal[data-astro-cid-au7rboj5]:hover svg[data-astro-cid-au7rboj5]{transform:rotate(180deg) scale(1.1)}.wi-links__comment[data-astro-cid-au7rboj5]{margin-top:var(--space-3xl)}.wi-links__title[data-astro-cid-au7rboj5]{font-size:var(--text-4xl);margin-bottom:var(--space-xs)}.wi-links__subtitle[data-astro-cid-au7rboj5]{font-size:var(--text-sm);color:var(--ink-3);letter-spacing:var(--tracking-wide);margin-block-end:0}.wi-page-accent[data-astro-cid-au7rboj5]{display:block;width:48px;height:3px;margin:var(--space-md) auto 0;border-radius:9999px;background:var(--accent)}.wi-links__group[data-astro-cid-au7rboj5]{font-size:var(--text-lg);color:var(--ink-2);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:1px solid var(--rule);font-weight:600}.wi-links__grid[data-astro-cid-au7rboj5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-md);margin-bottom:var(--space-2xl)}.wi-links[data-astro-cid-au7rboj5][data-style=list] .wi-links__grid[data-astro-cid-au7rboj5]{grid-template-columns:1fr;max-width:720px}.wi-links[data-astro-cid-au7rboj5][data-style=list] .wi-links__card-inner[data-astro-cid-au7rboj5]{border-radius:12px;padding:var(--space-md) var(--space-lg)}.wi-links[data-astro-cid-au7rboj5][data-style=grid] .wi-links__grid[data-astro-cid-au7rboj5]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-sm)}.wi-links[data-astro-cid-au7rboj5][data-style=grid] .wi-links__card-inner[data-astro-cid-au7rboj5]{flex-direction:column;align-items:center;text-align:center;padding:var(--space-xl) var(--space-lg)}.wi-links[data-astro-cid-au7rboj5][data-style=grid] .wi-links__arrow[data-astro-cid-au7rboj5]{display:none}.wi-links__card[data-astro-cid-au7rboj5]{position:relative;border-radius:16px;text-decoration:none;color:inherit;overflow:hidden;display:flex}.wi-links__card-glow[data-astro-cid-au7rboj5]{position:absolute;inset:0;border-radius:16px;opacity:0;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,transparent) 0%,transparent 60%);transition:opacity var(--duration-normal) var(--ease-out-expo);pointer-events:none}.wi-links__card[data-astro-cid-au7rboj5]:hover .wi-links__card-glow[data-astro-cid-au7rboj5]{opacity:1}.wi-links__card-inner[data-astro-cid-au7rboj5]{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:16px;flex:1;transition:transform var(--duration-normal) var(--ease-out-expo),box-shadow var(--duration-normal) var(--ease-out-expo),border-color var(--duration-normal) var(--ease-out-expo)}.wi-links__card[data-astro-cid-au7rboj5]:hover .wi-links__card-inner[data-astro-cid-au7rboj5]{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--accent) 40%,var(--glass-border))}.wi-links__avatar[data-astro-cid-au7rboj5]{width:48px;height:48px;border-radius:12px;object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm);transition:transform var(--duration-normal) var(--ease-out-expo)}.wi-links__card[data-astro-cid-au7rboj5]:hover .wi-links__avatar[data-astro-cid-au7rboj5]{transform:scale(1.08)}.wi-links__avatar--placeholder[data-astro-cid-au7rboj5]{display:flex;align-items:center;justify-content:center;background:var(--accent-bg);color:var(--accent);font-family:var(--font-sans);font-size:var(--text-lg);font-weight:700;box-shadow:none;border-radius:12px}.wi-links__info[data-astro-cid-au7rboj5]{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.wi-links__name[data-astro-cid-au7rboj5]{font-size:var(--text-md);font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--duration-fast) var(--ease-out-quart)}.wi-links__card[data-astro-cid-au7rboj5]:hoveLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-links[data-astro-cid-au7rboj5]{padding-block:1rem}.wi-links__header[data-astro-cid-au7rboj5]{text-align:center;margin-bottom:var(--space-3xl)}.wi-links__portal[data-astro-cid-au7rboj5]{display:inline-flex;align-items:center;gap:.375rem;padding:.6rem 1.1rem;min-height:44px;margin-top:var(--space-md);border-radius:9999px;font-size:var(--text-sm);color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));border:none;cursor:pointer;font-family:inherit;font-weight:600;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 30%,transparent);transition:transform var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart),opacity var(--duration-fast) var(--ease-out-quart)}.wi-links__portal[data-astro-cid-au7rboj5]:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent);opacity:.95}.wi-links__portal[data-astro-cid-au7rboj5]:active{transform:translateY(0) scale(.97)}.wi-links__portal[data-astro-cid-au7rboj5] svg[data-astro-cid-au7rboj5]{transition:transform var(--duration-normal) var(--ease-out-expo)}.wi-links__portal[data-astro-cid-au7rboj5]:hover svg[data-astro-cid-au7rboj5]{transform:rotate(180deg) scale(1.1)}.wi-links__comment[data-astro-cid-au7rboj5]{margin-top:var(--space-3xl)}.wi-links__apply[data-astro-cid-au7rboj5]{margin-top:var(--space-3xl);padding:var(--space-xl);border:1px solid var(--rule);border-radius:var(--radius-lg, 16px);background:var(--bg-raised)}.wi-links__apply-title[data-astro-cid-au7rboj5]{text-align:center;font-size:var(--text-xl);font-weight:700;color:var(--ink);margin-bottom:var(--space-lg)}.wi-links__apply-result[data-astro-cid-au7rboj5]{text-align:center;font-size:var(--text-sm);color:var(--accent);margin-bottom:var(--space-md)}.wi-links__apply-result--ok[data-astro-cid-au7rboj5]{color:var(--accent)}.wi-links__apply-result--error[data-astro-cid-au7rboj5]{color:#e6162d}html.dark .wi-links__apply-result--error[data-astro-cid-au7rboj5]{color:#ff6b6b}.wi-links__apply-form[data-astro-cid-au7rboj5]{display:flex;flex-direction:column;gap:var(--space-md)}.wi-links__apply-row[data-astro-cid-au7rboj5]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.wi-links__apply-field[data-astro-cid-au7rboj5]{display:flex;flex-direction:column;gap:.35rem;font-size:var(--text-sm);color:var(--ink-2)}.wi-links__apply-field[data-astro-cid-au7rboj5] input[data-astro-cid-au7rboj5],.wi-links__apply-field[data-astro-cid-au7rboj5] textarea[data-astro-cid-au7rboj5]{padding:.6rem .8rem;border:1px solid var(--rule);border-radius:10px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:var(--text-sm);transition:border-color .15s ease,box-shadow .15s ease;resize:vertical}.wi-links__apply-field[data-astro-cid-au7rboj5] input[data-astro-cid-au7rboj5]:focus,.wi-links__apply-field[data-astro-cid-au7rboj5] textarea[data-astro-cid-au7rboj5]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.wi-links__apply-captcha[data-astro-cid-au7rboj5]{display:flex;align-items:flex-end;padding-bottom:2px}.wi-links__apply-captcha-img[data-astro-cid-au7rboj5]{border-radius:8px;border:1px solid var(--rule);cursor:pointer}.wi-links__apply-submit[data-astro-cid-au7rboj5]{align-self:center;padding:.65rem 2.2rem;min-height:44px;border:none;border-radius:9999px;font-size:var(--text-sm);font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));cursor:pointer;transition:transform var(--duration-fast) var(--ease-out-quart),opacity .15s ease}.wi-links__apply-submit[data-astro-cid-au7rboj5]:hover{transform:translateY(-1px);opacity:.95}.wi-links__apply-submit[data-astro-cid-au7rboj5]:active{transform:translateY(0) scale(.98)}.wi-links__apply--unavailable[data-astro-cid-au7rboj5] .wi-links__apply-form[data-astro-cid-au7rboj5]{display:none}.wi-links__apply--unavailable[data-astro-cid-au7rboj5] .wi-links__apply-unavailable-tip[data-astro-cid-au7rboj5]{display:block!important;text-align:center;color:var(--ink-3);font-size:var(--text-sm)}@media(max-width:640px){.wi-links__apply-row[data-astro-cid-au7rboj5]{grid-template-columns:1fr}}.wi-links__title[data-astro-cid-au7rboj5]{font-size:var(--text-4xl);margin-bottom:var(--space-xs)}.wi-links__subtitle[data-astro-cid-au7rboj5]{font-size:var(--text-sm);color:var(--ink-3);letter-spacing:var(--tracking-wide);margin-block-end:0}.wi-page-accent[data-astro-cid-au7rboj5]{display:block;width:48px;height:3px;margin:var(--space-md) auto 0;border-radius:9999px;background:var(--accent)}.wi-links__group[data-astro-cid-au7rboj5]{font-size:var(--text-lg);color:var(--ink-2);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:1px solid var(--rule);font-weight:600}.wi-links__grid[data-astro-cid-au7rboj5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-md);margin-bottom:varLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-links[data-astro-cid-au7rboj5]{padding-block:1rem}.wi-links__header[data-astro-cid-au7rboj5]{text-align:center;margin-bottom:var(--space-3xl)}.wi-links__portal[data-astro-cid-au7rboj5]{display:inline-flex;align-items:center;gap:.375rem;padding:.6rem 1.1rem;min-height:44px;margin-top:var(--space-md);border-radius:9999px;font-size:var(--text-sm);color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));border:none;cursor:pointer;font-family:inherit;font-weight:600;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 30%,transparent);transition:transform var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart),opacity var(--duration-fast) var(--ease-out-quart)}.wi-links__portal[data-astro-cid-au7rboj5]:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent);opacity:.95}.wi-links__portal[data-astro-cid-au7rboj5]:active{transform:translateY(0) scale(.97)}.wi-links__portal[data-astro-cid-au7rboj5] svg[data-astro-cid-au7rboj5]{transition:transform var(--duration-normal) var(--ease-out-expo)}.wi-links__portal[data-astro-cid-au7rboj5]:hover svg[data-astro-cid-au7rboj5]{transform:rotate(180deg) scale(1.1)}.wi-links__comment[data-astro-cid-au7rboj5]{margin-top:var(--space-3xl)}.wi-links__apply[data-astro-cid-au7rboj5]{margin-top:var(--space-3xl);padding:var(--space-xl);border:1px solid var(--rule);border-radius:var(--radius-lg, 16px);background:var(--bg-raised)}.wi-links__apply-title[data-astro-cid-au7rboj5]{text-align:center;font-size:var(--text-xl);font-weight:700;color:var(--ink);margin-bottom:var(--space-lg)}.wi-links__apply-result[data-astro-cid-au7rboj5]{text-align:center;font-size:var(--text-sm);color:var(--accent);margin-bottom:var(--space-md)}.wi-links__apply-result--error[data-astro-cid-au7rboj5]{color:#e6162d}html.dark .wi-links__apply-result--error[data-astro-cid-au7rboj5]{color:#ff6b6b}.wi-links__apply-form[data-astro-cid-au7rboj5]{display:flex;flex-direction:column;gap:var(--space-md)}.wi-links__apply-row[data-astro-cid-au7rboj5]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.wi-links__apply-field[data-astro-cid-au7rboj5]{display:flex;flex-direction:column;gap:.35rem;font-size:var(--text-sm);color:var(--ink-2)}.wi-links__apply-field[data-astro-cid-au7rboj5] input[data-astro-cid-au7rboj5],.wi-links__apply-field[data-astro-cid-au7rboj5] textarea[data-astro-cid-au7rboj5]{padding:.6rem .8rem;border:1px solid var(--rule);border-radius:10px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:var(--text-sm);transition:border-color .15s ease,box-shadow .15s ease;resize:vertical}.wi-links__apply-field[data-astro-cid-au7rboj5] input[data-astro-cid-au7rboj5]:focus,.wi-links__apply-field[data-astro-cid-au7rboj5] textarea[data-astro-cid-au7rboj5]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.wi-links__apply-captcha[data-astro-cid-au7rboj5]{display:flex;align-items:flex-end;padding-bottom:2px}.wi-links__apply-captcha-img[data-astro-cid-au7rboj5]{border-radius:8px;border:1px solid var(--rule);cursor:pointer}.wi-links__apply-submit[data-astro-cid-au7rboj5]{align-self:center;padding:.65rem 2.2rem;min-height:44px;border:none;border-radius:9999px;font-size:var(--text-sm);font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));cursor:pointer;transition:transform var(--duration-fast) var(--ease-out-quart),opacity .15s ease}.wi-links__apply-submit[data-astro-cid-au7rboj5]:hover{transform:translateY(-1px);opacity:.95}.wi-links__apply-submit[data-astro-cid-au7rboj5]:active{transform:translateY(0) scale(.98)}.wi-links__apply--unavailable[data-astro-cid-au7rboj5] .wi-links__apply-form[data-astro-cid-au7rboj5]{display:none}.wi-links__apply--unavailable[data-astro-cid-au7rboj5] .wi-links__apply-unavailable-tip[data-astro-cid-au7rboj5]{display:block!important;text-align:center;color:var(--ink-3);font-size:var(--text-sm)}@media(max-width:640px){.wi-links__apply-row[data-astro-cid-au7rboj5]{grid-template-columns:1fr}}.wi-links__title[data-astro-cid-au7rboj5]{font-size:var(--text-4xl);margin-bottom:var(--space-xs)}.wi-links__subtitle[data-astro-cid-au7rboj5]{font-size:var(--text-sm);color:var(--ink-3);letter-spacing:var(--tracking-wide);margin-block-end:0}.wi-page-accent[data-astro-cid-au7rboj5]{display:block;width:48px;height:3px;margin:var(--space-md) auto 0;border-radius:9999px;background:var(--accent)}.wi-links__group[data-astro-cid-au7rboj5]{font-size:var(--text-lg);color:var(--ink-2);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:1px solid var(--rule);font-weight:600}.wi-links__grid[data-astro-cid-au7rboj5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-md);margin-bottom:var(--space-2xl)}.wi-links[data-astro-cid-au7rboj5][data-style=list] .wi-linLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-links[data-astro-cid-au7rboj5]{padding-block:1rem}.wi-links__header[data-astro-cid-au7rboj5]{text-align:center;margin-bottom:var(--space-3xl)}.wi-links__portal[data-astro-cid-au7rboj5]{display:inline-flex;align-items:center;gap:.375rem;padding:.6rem 1.1rem;min-height:44px;margin-top:var(--space-md);border-radius:9999px;font-size:var(--text-sm);color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));border:none;cursor:pointer;font-family:inherit;font-weight:600;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 30%,transparent);transition:transform var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart),opacity var(--duration-fast) var(--ease-out-quart)}.wi-links__portal[data-astro-cid-au7rboj5]:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent);opacity:.95}.wi-links__portal[data-astro-cid-au7rboj5]:active{transform:translateY(0) scale(.97)}.wi-links__portal[data-astro-cid-au7rboj5] svg[data-astro-cid-au7rboj5]{transition:transform var(--duration-normal) var(--ease-out-expo)}.wi-links__portal[data-astro-cid-au7rboj5]:hover svg[data-astro-cid-au7rboj5]{transform:rotate(180deg) scale(1.1)}.wi-links__comment[data-astro-cid-au7rboj5]{margin-top:var(--space-3xl)}.wi-links__apply[data-astro-cid-au7rboj5]{margin-top:var(--space-3xl);padding:var(--space-xl);border:1px solid var(--rule);border-radius:var(--radius-lg, 16px);background:var(--bg-raised)}.wi-links__apply-title[data-astro-cid-au7rboj5]{text-align:center;font-size:var(--text-xl);font-weight:700;color:var(--ink);margin-bottom:var(--space-lg)}.wi-links__apply-result[data-astro-cid-au7rboj5]{text-align:center;font-size:var(--text-sm);color:var(--accent);margin-bottom:var(--space-md)}.wi-links__apply-result--ok[data-astro-cid-au7rboj5],.wi-links-check-ok[data-astro-cid-au7rboj5]{color:var(--accent)}.wi-links__apply-result--error[data-astro-cid-au7rboj5],.wi-links-check-error[data-astro-cid-au7rboj5]{color:#e6162d}html.dark .wi-links__apply-result--error[data-astro-cid-au7rboj5],html.dark .wi-links-check-error[data-astro-cid-au7rboj5]{color:#ff6b6b}.wi-links__apply-form[data-astro-cid-au7rboj5]{display:flex;flex-direction:column;gap:var(--space-md)}.wi-links__apply-row[data-astro-cid-au7rboj5]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.wi-links__apply-field[data-astro-cid-au7rboj5]{display:flex;flex-direction:column;gap:.35rem;font-size:var(--text-sm);color:var(--ink-2)}.wi-links__apply-field[data-astro-cid-au7rboj5] input[data-astro-cid-au7rboj5],.wi-links__apply-field[data-astro-cid-au7rboj5] textarea[data-astro-cid-au7rboj5]{padding:.6rem .8rem;border:1px solid var(--rule);border-radius:10px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:var(--text-sm);transition:border-color .15s ease,box-shadow .15s ease;resize:vertical}.wi-links__apply-field[data-astro-cid-au7rboj5] input[data-astro-cid-au7rboj5]:focus,.wi-links__apply-field[data-astro-cid-au7rboj5] textarea[data-astro-cid-au7rboj5]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.wi-links__apply-captcha[data-astro-cid-au7rboj5]{display:flex;align-items:flex-end;padding-bottom:2px}.wi-links__apply-captcha-img[data-astro-cid-au7rboj5]{border-radius:8px;border:1px solid var(--rule);cursor:pointer}.wi-links__apply-submit[data-astro-cid-au7rboj5]{align-self:center;padding:.65rem 2.2rem;min-height:44px;border:none;border-radius:9999px;font-size:var(--text-sm);font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));cursor:pointer;transition:transform var(--duration-fast) var(--ease-out-quart),opacity .15s ease}.wi-links__apply-submit[data-astro-cid-au7rboj5]:hover{transform:translateY(-1px);opacity:.95}.wi-links__apply-submit[data-astro-cid-au7rboj5]:active{transform:translateY(0) scale(.98)}.wi-links__apply--unavailable[data-astro-cid-au7rboj5] .wi-links__apply-form[data-astro-cid-au7rboj5]{display:none}.wi-links__apply--unavailable[data-astro-cid-au7rboj5] .wi-links__apply-unavailable-tip[data-astro-cid-au7rboj5]{display:block!important;text-align:center;color:var(--ink-3);font-size:var(--text-sm)}@media(max-width:640px){.wi-links__apply-row[data-astro-cid-au7rboj5]{grid-template-columns:1fr}}.wi-links__title[data-astro-cid-au7rboj5]{font-size:var(--text-4xl);margin-bottom:var(--space-xs)}.wi-links__subtitle[data-astro-cid-au7rboj5]{font-size:var(--text-sm);color:var(--ink-3);letter-spacing:var(--tracking-wide);margin-block-end:0}.wi-page-accent[data-astro-cid-au7rboj5]{display:block;width:48px;height:3px;margin:var(--space-md) auto 0;border-radius:9999px;background:var(--accent)}.wi-links__group[data-astro-cid-au7rboj5]{font-size:var(--text-lg);color:var(--ink-2);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:1px solid var(--rule);font-weight:600}.Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-links[data-astro-cid-au7rboj5]{padding-block:1rem}.wi-links__header[data-astro-cid-au7rboj5]{text-align:center;margin-bottom:var(--space-3xl)}.wi-links__portal[data-astro-cid-au7rboj5]{display:inline-flex;align-items:center;gap:.375rem;padding:.6rem 1.1rem;min-height:44px;margin-top:var(--space-md);border-radius:9999px;font-size:var(--text-sm);color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));border:none;cursor:pointer;font-family:inherit;font-weight:600;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 30%,transparent);transition:transform var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart),opacity var(--duration-fast) var(--ease-out-quart)}.wi-links__portal[data-astro-cid-au7rboj5]:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent);opacity:.95}.wi-links__portal[data-astro-cid-au7rboj5]:active{transform:translateY(0) scale(.97)}.wi-links__portal[data-astro-cid-au7rboj5] svg[data-astro-cid-au7rboj5]{transition:transform var(--duration-normal) var(--ease-out-expo)}.wi-links__portal[data-astro-cid-au7rboj5]:hover svg[data-astro-cid-au7rboj5]{transform:rotate(180deg) scale(1.1)}.wi-links__comment[data-astro-cid-au7rboj5]{margin-top:var(--space-3xl)}.wi-links__apply[data-astro-cid-au7rboj5]{margin-top:var(--space-3xl);padding:var(--space-xl);border:1px solid var(--rule);border-radius:var(--radius-lg, 16px);background:var(--bg-raised)}.wi-links__apply-title[data-astro-cid-au7rboj5]{text-align:center;font-size:var(--text-xl);font-weight:700;color:var(--ink);margin-bottom:var(--space-lg)}.wi-links__apply-result[data-astro-cid-au7rboj5]{text-align:center;font-size:var(--text-sm);color:var(--accent);margin-bottom:var(--space-md)}.wi-links__apply-result--ok[data-astro-cid-au7rboj5],.wi-links-check-ok[data-astro-cid-au7rboj5]{color:var(--accent)}.wi-links__apply-result--error[data-astro-cid-au7rboj5],.wi-links-check-error[data-astro-cid-au7rboj5]{color:#e6162d}html.dark .wi-links__apply-result--error[data-astro-cid-au7rboj5],html.dark .wi-links-check-error[data-astro-cid-au7rboj5]{color:#ff6b6b}.wi-links__apply-form[data-astro-cid-au7rboj5]{display:flex;flex-direction:column;gap:var(--space-md)}.wi-links__apply-row[data-astro-cid-au7rboj5]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.wi-links__apply-field[data-astro-cid-au7rboj5]{display:flex;flex-direction:column;gap:.35rem;font-size:var(--text-sm);color:var(--ink-2)}.wi-links__apply-field[data-astro-cid-au7rboj5] input[data-astro-cid-au7rboj5],.wi-links__apply-field[data-astro-cid-au7rboj5] textarea[data-astro-cid-au7rboj5]{padding:.6rem .8rem;border:1px solid var(--rule);border-radius:10px;background:var(--bg);color:var(--ink);font-family:inherit;font-size:var(--text-sm);transition:border-color .15s ease,box-shadow .15s ease;resize:vertical}.wi-links__apply-field[data-astro-cid-au7rboj5] input[data-astro-cid-au7rboj5]:focus,.wi-links__apply-field[data-astro-cid-au7rboj5] textarea[data-astro-cid-au7rboj5]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.wi-links__apply-captcha[data-astro-cid-au7rboj5]{display:flex;align-items:flex-end;padding-bottom:2px}.wi-links__apply-captcha-img[data-astro-cid-au7rboj5]{border-radius:8px;border:1px solid var(--rule);cursor:pointer}.wi-links__apply-submit[data-astro-cid-au7rboj5]{align-self:center;padding:.65rem 2.2rem;min-height:44px;border:none;border-radius:9999px;font-size:var(--text-sm);font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));cursor:pointer;transition:transform var(--duration-fast) var(--ease-out-quart),opacity .15s ease}.wi-links__apply-submit[data-astro-cid-au7rboj5]:hover{transform:translateY(-1px);opacity:.95}.wi-links__apply-submit[data-astro-cid-au7rboj5]:active{transform:translateY(0) scale(.98)}.wi-links__apply--unavailable[data-astro-cid-au7rboj5] .wi-links__apply-form[data-astro-cid-au7rboj5]{display:none}.wi-links__apply--unavailable[data-astro-cid-au7rboj5] .wi-links__apply-unavailable-tip[data-astro-cid-au7rboj5]{display:block!important;text-align:center;color:var(--ink-3);font-size:var(--text-sm)}@media(max-width:640px){.wi-links__apply-row[data-astro-cid-au7rboj5]{grid-template-columns:1fr}}.wi-links__title[data-astro-cid-au7rboj5]{font-size:var(--text-4xl);margin-bottom:var(--space-xs)}.wi-links__subtitle[data-astro-cid-au7rboj5]{font-size:var(--text-sm);color:var(--ink-3);letter-spacing:var(--tracking-wide);margin-block-end:0}.wi-page-accent[data-astro-cid-au7rboj5]{display:block;width:48px;height:3px;margin:var(--space-md) auto 0;border-radius:9999px;background:var(--accent)}.wi-links__group[data-astro-cid-au7rboj5]{font-size:var(--text-lg);color:var(--ink-2);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:1px solid var(--rule);font-weight:600}.Line truncated
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.1 KiB |
@@ -0,0 +1 @@
|
||||
.wi-moment-detail[data-astro-cid-csz2amhe]{padding-block:1rem;max-width:720px;margin:0 auto}.wi-moment-detail__sr-only[data-astro-cid-csz2amhe]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.wi-moment-detail__topbar[data-astro-cid-csz2amhe]{margin-bottom:var(--space-lg)}.wi-moment-detail__back[data-astro-cid-csz2amhe]{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border-radius:9999px;font-size:var(--text-sm);color:var(--ink-2);text-decoration:none;background:var(--bg-raised);transition:color var(--duration-fast) var(--ease-out-quart),background var(--duration-fast) var(--ease-out-quart)}.wi-moment-detail__back[data-astro-cid-csz2amhe]:hover{color:var(--accent);background:var(--accent-bg)}.wi-moment-detail__card[data-astro-cid-csz2amhe]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:var(--space-xl)}.wi-moment-detail__layout[data-astro-cid-csz2amhe]{display:flex;gap:var(--space-md);align-items:flex-start}.wi-moment-detail__avatar[data-astro-cid-csz2amhe]{width:44px;height:44px;border-radius:10px;object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm)}.wi-moment-detail__avatar--fallback[data-astro-cid-csz2amhe]{display:flex;align-items:center;justify-content:center;background:var(--accent-bg);color:var(--accent);font-family:var(--font-sans);font-size:var(--text-md);font-weight:700}.wi-moment-detail__main[data-astro-cid-csz2amhe]{flex:1;min-width:0}.wi-moment-detail__head[data-astro-cid-csz2amhe]{display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap}.wi-moment-detail__name[data-astro-cid-csz2amhe]{font-size:var(--text-md);font-weight:600;color:var(--ink)}.wi-moment-detail__date[data-astro-cid-csz2amhe]{font-size:var(--text-xs);color:var(--ink-3)}.wi-moment-detail__text[data-astro-cid-csz2amhe]{margin-top:var(--space-sm);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--ink);word-wrap:break-word;overflow-wrap:break-word}.wi-moment-detail__text[data-astro-cid-csz2amhe] img{max-width:100%;height:auto;border-radius:8px}.wi-moment-detail__media[data-astro-cid-csz2amhe]{margin-top:var(--space-md);display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.wi-moment-detail__media[data-astro-cid-csz2amhe]:has(.wi-moment-detail__image:only-child){grid-template-columns:1fr}.wi-moment-detail__media[data-astro-cid-csz2amhe]:has(.wi-moment-detail__image:only-child) .wi-moment-detail__image[data-astro-cid-csz2amhe]{aspect-ratio:auto;max-height:300px;max-width:400px}.wi-moment-detail__media[data-astro-cid-csz2amhe]:has(.wi-moment-detail__image:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}.wi-moment-detail__media[data-astro-cid-csz2amhe]:has(.wi-moment-detail__image:nth-child(4)):not(:has(.wi-moment-detail__image:nth-child(5))){grid-template-columns:repeat(2,1fr);max-width:72%}.wi-moment-detail__media[data-astro-cid-csz2amhe]:has(.wi-moment-detail__image:nth-child(3)){max-width:100%}.wi-moment-detail__image[data-astro-cid-csz2amhe]{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;cursor:zoom-in;transition:transform .2s ease}.wi-moment-detail__image[data-astro-cid-csz2amhe]:hover{transform:scale(1.02)}.wi-moment-detail__video[data-astro-cid-csz2amhe]{width:100%;border-radius:8px;display:block}.wi-moment-detail__audio[data-astro-cid-csz2amhe]{width:100%}.wi-moment-detail__actions[data-astro-cid-csz2amhe]{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--rule)}.wi-moment-detail__like-btn[data-astro-cid-csz2amhe],.wi-moment-detail__comment-hint[data-astro-cid-csz2amhe]{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border:1px solid var(--rule);border-radius:9999px;background:transparent;color:var(--ink-2);font-size:var(--text-xs);transition:color var(--duration-fast) var(--ease-out-quart),border-color var(--duration-fast) var(--ease-out-quart),background var(--duration-fast) var(--ease-out-quart)}.wi-moment-detail__like-btn[data-astro-cid-csz2amhe]{cursor:pointer}.wi-moment-detail__comment-hint[data-astro-cid-csz2amhe]{cursor:default}.wi-moment-detail__like-btn[data-astro-cid-csz2amhe]:hover,.wi-moment-detail__like-btn--liked[data-astro-cid-csz2amhe]{color:var(--accent);border-color:var(--accent);background:var(--accent-bg)}.wi-moment-detail__comments[data-astro-cid-csz2amhe]{margin-top:var(--space-xl)}.wi-moment-detail__empty[data-astro-cid-csz2amhe]{text-align:center;padding:var(--space-4xl) var(--space-xl);color:var(--ink-3)}@media(max-width:640px){.wi-moment-detail__card[data-astro-cid-csz2amhe]{padding:var(--space-lg)}.wi-moment-detail__avatar[data-astro-cid-csz2amhe]{width:38px;height:38px}}
|
||||
@@ -0,0 +1 @@
|
||||
.wi-moments-page[data-astro-cid-ovd5htye]{padding-block:1rem}.wi-moments-page__hero[data-astro-cid-ovd5htye]{position:relative;width:100%;height:clamp(220px,30vw,380px);margin-bottom:var(--space-2xl);overflow:hidden;background:var(--bg-raised)}.wi-moments-page__cover[data-astro-cid-ovd5htye]{width:100%;height:100%;object-fit:cover;display:block}.wi-moments-page__header[data-astro-cid-ovd5htye]{text-align:center;margin-bottom:var(--space-3xl)}.wi-moments-page__title[data-astro-cid-ovd5htye]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-ovd5htye]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-moments-page__empty[data-astro-cid-ovd5htye]{text-align:center;padding:var(--space-4xl) var(--space-xl);color:var(--ink-3);font-size:var(--text-md)}.wi-moments-page__empty[data-astro-cid-ovd5htye] a[data-astro-cid-ovd5htye]{color:var(--accent)}.wi-moments-page__content[data-astro-cid-ovd5htye]{content-visibility:auto;contain-intrinsic-size:auto 800px}.wi-moments-page__actions[data-astro-cid-ovd5htye]{display:flex;align-items:center;gap:var(--space-sm)}.wi-moments-page__like-btn[data-astro-cid-ovd5htye],.wi-moments-page__comment-btn[data-astro-cid-ovd5htye]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--rule);border-radius:9999px;background:transparent;color:var(--ink-3);font-size:var(--text-xs);font-family:var(--font-body);cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.wi-moments-page__like-btn[data-astro-cid-ovd5htye]:hover,.wi-moments-page__comment-btn[data-astro-cid-ovd5htye]:hover{color:var(--accent);border-color:var(--accent)}.wi-moments-page__like-btn--liked[data-astro-cid-ovd5htye]{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg));cursor:default}.wi-moments-page__like-btn--liked[data-astro-cid-ovd5htye] .wi-moments-page__like-icon[data-astro-cid-ovd5htye]{fill:var(--accent)}.wi-moments-page__comment-btn--active[data-astro-cid-ovd5htye]{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg))}.wi-moments-page__like-icon[data-astro-cid-ovd5htye],.wi-moments-page__comment-icon[data-astro-cid-ovd5htye]{flex-shrink:0}.wi-moments-page__like-count[data-astro-cid-ovd5htye],.wi-moments-page__comment-count[data-astro-cid-ovd5htye]{line-height:1}.wi-moments-page__comment-area[data-astro-cid-ovd5htye]{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--rule)}.wi-moments-page__comment-area[data-astro-cid-ovd5htye] halo\:comment[data-astro-cid-ovd5htye]{display:block;width:100%}.wi-moments-page__cards[data-astro-cid-ovd5htye]{display:flex;flex-direction:column;gap:var(--space-lg);max-width:720px;margin:0 auto}.wi-moments-page__card-item[data-astro-cid-ovd5htye]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:var(--space-xl);transition:box-shadow var(--duration-normal) var(--ease-out-expo),transform var(--duration-normal) var(--ease-out-expo),border-color var(--duration-normal) var(--ease-out-expo)}.wi-moments-page__card-item[data-astro-cid-ovd5htye]:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);border-color:var(--accent)}.wi-moments-page__card-layout[data-astro-cid-ovd5htye]{display:flex;gap:var(--space-md);align-items:flex-start}.wi-moments-page__avatar[data-astro-cid-ovd5htye]{flex-shrink:0;width:44px;height:44px;border-radius:10px;object-fit:cover}.wi-moments-page__avatar--fallback[data-astro-cid-ovd5htye]{display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:700;font-size:var(--text-lg)}.wi-moments-page__main[data-astro-cid-ovd5htye]{flex:1;min-width:0}.wi-moments-page__name[data-astro-cid-ovd5htye]{font-size:var(--text-base);font-weight:600;color:var(--accent);margin-bottom:var(--space-xs)}.wi-moments-page__card-text[data-astro-cid-ovd5htye]{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--ink);margin-bottom:var(--space-md)}.wi-moments-page__card-media[data-astro-cid-ovd5htye]{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:var(--space-md)}.wi-moments-page__card-image[data-astro-cid-ovd5htye]{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;cursor:pointer;transition:transform .2s ease}.wi-moments-page__card-image[data-astro-cid-ovd5htye]:hover{transform:scale(1.03)}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:only-child){grid-template-columns:1fr}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:only-child) .wi-moments-page__card-image[data-astro-cid-ovd5htye]{aspect-ratio:auto;max-height:300px;max-width:400px}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:nth-child(2):last-child){grid-Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-moments-page[data-astro-cid-ovd5htye]{padding-block:1rem}.wi-moments-page__hero[data-astro-cid-ovd5htye]{position:relative;width:100%;height:clamp(220px,30vw,380px);overflow:hidden;background:var(--bg-raised)}.wi-moments-page__cover[data-astro-cid-ovd5htye]{width:100%;height:100%;object-fit:cover;display:block}.wi-moments-page__header[data-astro-cid-ovd5htye]{text-align:center;margin-bottom:var(--space-3xl)}.wi-moments-page__title[data-astro-cid-ovd5htye]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-ovd5htye]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-moments-page__empty[data-astro-cid-ovd5htye]{text-align:center;padding:var(--space-4xl) var(--space-xl);color:var(--ink-3);font-size:var(--text-md)}.wi-moments-page__empty[data-astro-cid-ovd5htye] a[data-astro-cid-ovd5htye]{color:var(--accent)}.wi-moments-page__content[data-astro-cid-ovd5htye]{content-visibility:auto;contain-intrinsic-size:auto 800px}.wi-moments-page__actions[data-astro-cid-ovd5htye]{display:flex;align-items:center;gap:var(--space-sm)}.wi-moments-page__like-btn[data-astro-cid-ovd5htye],.wi-moments-page__comment-btn[data-astro-cid-ovd5htye]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--rule);border-radius:9999px;background:transparent;color:var(--ink-3);font-size:var(--text-xs);font-family:var(--font-body);cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.wi-moments-page__like-btn[data-astro-cid-ovd5htye]:hover,.wi-moments-page__comment-btn[data-astro-cid-ovd5htye]:hover{color:var(--accent);border-color:var(--accent)}.wi-moments-page__like-btn--liked[data-astro-cid-ovd5htye]{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg));cursor:default}.wi-moments-page__like-btn--liked[data-astro-cid-ovd5htye] .wi-moments-page__like-icon[data-astro-cid-ovd5htye]{fill:var(--accent)}.wi-moments-page__comment-btn--active[data-astro-cid-ovd5htye]{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg))}.wi-moments-page__like-icon[data-astro-cid-ovd5htye],.wi-moments-page__comment-icon[data-astro-cid-ovd5htye]{flex-shrink:0}.wi-moments-page__like-count[data-astro-cid-ovd5htye],.wi-moments-page__comment-count[data-astro-cid-ovd5htye]{line-height:1}.wi-moments-page__comment-area[data-astro-cid-ovd5htye]{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--rule)}.wi-moments-page__comment-area[data-astro-cid-ovd5htye] halo\:comment[data-astro-cid-ovd5htye]{display:block;width:100%}.wi-moments-page__cards[data-astro-cid-ovd5htye]{display:flex;flex-direction:column;gap:var(--space-lg);max-width:720px;margin:0 auto}.wi-moments-page__card-item[data-astro-cid-ovd5htye]{background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:16px;padding:var(--space-xl);transition:box-shadow var(--duration-normal) var(--ease-out-expo),transform var(--duration-normal) var(--ease-out-expo)}.wi-moments-page__card-item[data-astro-cid-ovd5htye]:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.wi-moments-page__card-layout[data-astro-cid-ovd5htye]{display:flex;gap:var(--space-md);align-items:flex-start}.wi-moments-page__avatar[data-astro-cid-ovd5htye]{flex-shrink:0;width:44px;height:44px;border-radius:10px;object-fit:cover}.wi-moments-page__avatar--fallback[data-astro-cid-ovd5htye]{display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:700;font-size:var(--text-lg)}.wi-moments-page__main[data-astro-cid-ovd5htye]{flex:1;min-width:0}.wi-moments-page__name[data-astro-cid-ovd5htye]{font-size:var(--text-base);font-weight:600;color:var(--accent);margin-bottom:var(--space-xs)}.wi-moments-page__card-text[data-astro-cid-ovd5htye]{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--ink);margin-bottom:var(--space-md)}.wi-moments-page__card-media[data-astro-cid-ovd5htye]{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:var(--space-md)}.wi-moments-page__card-image[data-astro-cid-ovd5htye]{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;cursor:pointer;transition:transform .2s ease}.wi-moments-page__card-image[data-astro-cid-ovd5htye]:hover{transform:scale(1.03)}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:only-child){grid-template-columns:1fr}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:only-child) .wi-moments-page__card-image[data-astro-cid-ovd5htye]{aspect-ratio:auto;max-height:300px;max-width:400px}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}.wi-moments-page__cardLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-moments-page[data-astro-cid-ovd5htye]{padding-block:1rem}.wi-moments-page__hero[data-astro-cid-ovd5htye]{position:relative;width:100%;height:clamp(220px,30vw,380px);overflow:hidden;background:var(--bg-raised)}.wi-moments-page__cover[data-astro-cid-ovd5htye]{width:100%;height:100%;object-fit:cover;display:block}.wi-moments-page__header[data-astro-cid-ovd5htye]{text-align:center;margin-bottom:var(--space-3xl)}.wi-moments-page__title[data-astro-cid-ovd5htye]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-ovd5htye]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-moments-page__empty[data-astro-cid-ovd5htye]{text-align:center;padding:var(--space-4xl) var(--space-xl);color:var(--ink-3);font-size:var(--text-md)}.wi-moments-page__empty[data-astro-cid-ovd5htye] a[data-astro-cid-ovd5htye]{color:var(--accent)}.wi-moments-page__content[data-astro-cid-ovd5htye]{content-visibility:auto;contain-intrinsic-size:auto 800px}.wi-moments-page__actions[data-astro-cid-ovd5htye]{display:flex;align-items:center;gap:var(--space-sm)}.wi-moments-page__like-btn[data-astro-cid-ovd5htye],.wi-moments-page__comment-btn[data-astro-cid-ovd5htye]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--rule);border-radius:9999px;background:transparent;color:var(--ink-3);font-size:var(--text-xs);font-family:var(--font-body);cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.wi-moments-page__like-btn[data-astro-cid-ovd5htye]:hover,.wi-moments-page__comment-btn[data-astro-cid-ovd5htye]:hover{color:var(--accent);border-color:var(--accent)}.wi-moments-page__like-btn--liked[data-astro-cid-ovd5htye]{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg));cursor:default}.wi-moments-page__like-btn--liked[data-astro-cid-ovd5htye] .wi-moments-page__like-icon[data-astro-cid-ovd5htye]{fill:var(--accent)}.wi-moments-page__comment-btn--active[data-astro-cid-ovd5htye]{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg))}.wi-moments-page__like-icon[data-astro-cid-ovd5htye],.wi-moments-page__comment-icon[data-astro-cid-ovd5htye]{flex-shrink:0}.wi-moments-page__like-count[data-astro-cid-ovd5htye],.wi-moments-page__comment-count[data-astro-cid-ovd5htye]{line-height:1}.wi-moments-page__comment-area[data-astro-cid-ovd5htye]{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--rule)}.wi-moments-page__comment-area[data-astro-cid-ovd5htye] halo\:comment[data-astro-cid-ovd5htye]{display:block;width:100%}.wi-moments-page__cards[data-astro-cid-ovd5htye]{display:flex;flex-direction:column;gap:var(--space-lg);max-width:720px;margin:0 auto}.wi-moments-page__card-item[data-astro-cid-ovd5htye]{background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:16px;padding:var(--space-xl);transition:box-shadow var(--duration-normal) var(--ease-out-expo),transform var(--duration-normal) var(--ease-out-expo)}.wi-moments-page__card-item[data-astro-cid-ovd5htye]:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.wi-moments-page__card-layout[data-astro-cid-ovd5htye]{display:flex;gap:var(--space-md);align-items:flex-start}.wi-moments-page__avatar[data-astro-cid-ovd5htye]{flex-shrink:0;width:44px;height:44px;border-radius:10px;object-fit:cover}.wi-moments-page__avatar--fallback[data-astro-cid-ovd5htye]{display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:700;font-size:var(--text-lg)}.wi-moments-page__main[data-astro-cid-ovd5htye]{flex:1;min-width:0}.wi-moments-page__name[data-astro-cid-ovd5htye]{font-size:var(--text-base);font-weight:600;color:var(--accent);margin-bottom:var(--space-xs)}.wi-moments-page__card-text[data-astro-cid-ovd5htye]{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--ink);margin-bottom:var(--space-md)}.wi-moments-page__card-media[data-astro-cid-ovd5htye]{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:var(--space-md)}.wi-moments-page__card-image[data-astro-cid-ovd5htye]{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;cursor:pointer;transition:transform .2s ease}.wi-moments-page__card-image[data-astro-cid-ovd5htye]:hover{transform:scale(1.03)}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:only-child){grid-template-columns:1fr}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:only-child) .wi-moments-page__card-image[data-astro-cid-ovd5htye]{aspect-ratio:auto;max-height:300px;max-width:400px}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}.wi-moments-page__cardLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-moments-page[data-astro-cid-ovd5htye]{padding-block:1rem}.wi-moments-page__hero[data-astro-cid-ovd5htye]{position:relative;width:100%;height:clamp(220px,30vw,380px);margin-bottom:var(--space-2xl);overflow:hidden;background:var(--bg-raised)}.wi-moments-page__cover[data-astro-cid-ovd5htye]{width:100%;height:100%;object-fit:cover;display:block}.wi-moments-page__header[data-astro-cid-ovd5htye]{text-align:center;margin-bottom:var(--space-3xl)}.wi-moments-page__title[data-astro-cid-ovd5htye]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-ovd5htye]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-moments-page__empty[data-astro-cid-ovd5htye]{text-align:center;padding:var(--space-4xl) var(--space-xl);color:var(--ink-3);font-size:var(--text-md)}.wi-moments-page__empty[data-astro-cid-ovd5htye] a[data-astro-cid-ovd5htye]{color:var(--accent)}.wi-moments-page__content[data-astro-cid-ovd5htye]{content-visibility:auto;contain-intrinsic-size:auto 800px}.wi-moments-page__actions[data-astro-cid-ovd5htye]{display:flex;align-items:center;gap:var(--space-sm)}.wi-moments-page__like-btn[data-astro-cid-ovd5htye],.wi-moments-page__comment-btn[data-astro-cid-ovd5htye]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--rule);border-radius:9999px;background:transparent;color:var(--ink-3);font-size:var(--text-xs);font-family:var(--font-body);cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.wi-moments-page__like-btn[data-astro-cid-ovd5htye]:hover,.wi-moments-page__comment-btn[data-astro-cid-ovd5htye]:hover{color:var(--accent);border-color:var(--accent)}.wi-moments-page__like-btn--liked[data-astro-cid-ovd5htye]{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg));cursor:default}.wi-moments-page__like-btn--liked[data-astro-cid-ovd5htye] .wi-moments-page__like-icon[data-astro-cid-ovd5htye]{fill:var(--accent)}.wi-moments-page__comment-btn--active[data-astro-cid-ovd5htye]{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg))}.wi-moments-page__like-icon[data-astro-cid-ovd5htye],.wi-moments-page__comment-icon[data-astro-cid-ovd5htye]{flex-shrink:0}.wi-moments-page__like-count[data-astro-cid-ovd5htye],.wi-moments-page__comment-count[data-astro-cid-ovd5htye]{line-height:1}.wi-moments-page__comment-area[data-astro-cid-ovd5htye]{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--rule)}.wi-moments-page__comment-area[data-astro-cid-ovd5htye] halo\:comment[data-astro-cid-ovd5htye]{display:block;width:100%}.wi-moments-page__cards[data-astro-cid-ovd5htye]{display:flex;flex-direction:column;gap:var(--space-lg);max-width:720px;margin:0 auto}.wi-moments-page__card-item[data-astro-cid-ovd5htye]{background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:16px;padding:var(--space-xl);transition:box-shadow var(--duration-normal) var(--ease-out-expo),transform var(--duration-normal) var(--ease-out-expo)}.wi-moments-page__card-item[data-astro-cid-ovd5htye]:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.wi-moments-page__card-layout[data-astro-cid-ovd5htye]{display:flex;gap:var(--space-md);align-items:flex-start}.wi-moments-page__avatar[data-astro-cid-ovd5htye]{flex-shrink:0;width:44px;height:44px;border-radius:10px;object-fit:cover}.wi-moments-page__avatar--fallback[data-astro-cid-ovd5htye]{display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:700;font-size:var(--text-lg)}.wi-moments-page__main[data-astro-cid-ovd5htye]{flex:1;min-width:0}.wi-moments-page__name[data-astro-cid-ovd5htye]{font-size:var(--text-base);font-weight:600;color:var(--accent);margin-bottom:var(--space-xs)}.wi-moments-page__card-text[data-astro-cid-ovd5htye]{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--ink);margin-bottom:var(--space-md)}.wi-moments-page__card-media[data-astro-cid-ovd5htye]{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:var(--space-md)}.wi-moments-page__card-image[data-astro-cid-ovd5htye]{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;cursor:pointer;transition:transform .2s ease}.wi-moments-page__card-image[data-astro-cid-ovd5htye]:hover{transform:scale(1.03)}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:only-child){grid-template-columns:1fr}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:only-child) .wi-moments-page__card-image[data-astro-cid-ovd5htye]{aspect-ratio:auto;max-height:300px;max-width:400px}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:nth-child(2):last-child){grid-template-columns:repeaLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-moments-page[data-astro-cid-ovd5htye]{padding-block:1rem}.wi-moments-page__hero[data-astro-cid-ovd5htye]{position:relative;width:100%;height:clamp(220px,30vw,380px);overflow:hidden;background:var(--bg-raised)}.wi-moments-page__cover[data-astro-cid-ovd5htye]{width:100%;height:100%;object-fit:cover;display:block}.wi-moments-page__header[data-astro-cid-ovd5htye]{text-align:center;margin-bottom:var(--space-3xl)}.wi-moments-page__title[data-astro-cid-ovd5htye]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-ovd5htye]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-moments-page__empty[data-astro-cid-ovd5htye]{text-align:center;padding:var(--space-4xl) var(--space-xl);color:var(--ink-3);font-size:var(--text-md)}.wi-moments-page__empty[data-astro-cid-ovd5htye] a[data-astro-cid-ovd5htye]{color:var(--accent)}.wi-moments-page__content[data-astro-cid-ovd5htye]{content-visibility:auto;contain-intrinsic-size:auto 800px}.wi-moments-page__actions[data-astro-cid-ovd5htye]{display:flex;align-items:center;gap:var(--space-sm)}.wi-moments-page__like-btn[data-astro-cid-ovd5htye],.wi-moments-page__comment-btn[data-astro-cid-ovd5htye]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--rule);border-radius:9999px;background:transparent;color:var(--ink-3);font-size:var(--text-xs);font-family:var(--font-body);cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.wi-moments-page__like-btn[data-astro-cid-ovd5htye]:hover,.wi-moments-page__comment-btn[data-astro-cid-ovd5htye]:hover{color:var(--accent);border-color:var(--accent)}.wi-moments-page__like-btn--liked[data-astro-cid-ovd5htye]{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg));cursor:default}.wi-moments-page__like-btn--liked[data-astro-cid-ovd5htye] .wi-moments-page__like-icon[data-astro-cid-ovd5htye]{fill:var(--accent)}.wi-moments-page__comment-btn--active[data-astro-cid-ovd5htye]{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg))}.wi-moments-page__like-icon[data-astro-cid-ovd5htye],.wi-moments-page__comment-icon[data-astro-cid-ovd5htye]{flex-shrink:0}.wi-moments-page__like-count[data-astro-cid-ovd5htye],.wi-moments-page__comment-count[data-astro-cid-ovd5htye]{line-height:1}.wi-moments-page__comment-area[data-astro-cid-ovd5htye]{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--rule)}.wi-moments-page__comment-area[data-astro-cid-ovd5htye] halo\:comment[data-astro-cid-ovd5htye]{display:block;width:100%}.wi-moments-page__cards[data-astro-cid-ovd5htye]{display:flex;flex-direction:column;gap:var(--space-lg);max-width:720px;margin:0 auto}.wi-moments-page__card-item[data-astro-cid-ovd5htye]{background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:16px;padding:var(--space-xl);transition:box-shadow var(--duration-normal) var(--ease-out-expo),transform var(--duration-normal) var(--ease-out-expo)}.wi-moments-page__card-item[data-astro-cid-ovd5htye]:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.wi-moments-page__card-text[data-astro-cid-ovd5htye]{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--ink);margin-bottom:var(--space-md)}.wi-moments-page__card-media[data-astro-cid-ovd5htye]{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:var(--space-md)}.wi-moments-page__card-image[data-astro-cid-ovd5htye]{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;cursor:pointer;transition:transform .2s ease}.wi-moments-page__card-image[data-astro-cid-ovd5htye]:hover{transform:scale(1.03)}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:only-child){grid-template-columns:1fr}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:only-child) .wi-moments-page__card-image[data-astro-cid-ovd5htye]{aspect-ratio:auto;max-height:300px;max-width:400px}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}.wi-moments-page__card-media[data-astro-cid-ovd5htye]:has(.wi-moments-page__card-image:nth-child(4)){grid-template-columns:repeat(3,1fr)}.wi-moments-page__card-footer[data-astro-cid-ovd5htye]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.wi-moments-page__card-date[data-astro-cid-ovd5htye]{font-size:var(--text-xs);color:var(--ink-3);letter-spacing:var(--tracking-wide)}.wi-moments-page__masonry[data-astro-cid-ovd5htye]{columns:2;column-gap:var(--space-lg)}.wi-moments-page__masonry-item[data-astro-cid-ovd5htye]{break-inside:avoid;margin-bottom:var(--space-lg);background:var(--bg-raised);border:1px solid var(--rule);border-radius:16px;padding:var(--space-xl);Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-subs[data-astro-cid-d5lrd5xl]{padding-block:1rem}.wi-subs__header[data-astro-cid-d5lrd5xl]{text-align:center;margin-bottom:var(--space-3xl)}.wi-subs__title[data-astro-cid-d5lrd5xl]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-subs__subtitle[data-astro-cid-d5lrd5xl]{font-size:var(--text-sm);color:var(--ink-3);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-d5lrd5xl]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-subs__flow[data-astro-cid-d5lrd5xl]{display:flex;flex-direction:column;gap:var(--space-lg);max-width:720px;margin-inline:auto}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__flow[data-astro-cid-d5lrd5xl]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);max-width:1200px}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__card[data-astro-cid-d5lrd5xl]{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author[data-astro-cid-d5lrd5xl]{flex-direction:column;align-items:center;text-align:center;gap:var(--space-xs);margin-bottom:0}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__avatar[data-astro-cid-d5lrd5xl]{width:44px;height:44px}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-info[data-astro-cid-d5lrd5xl]{align-items:center;gap:2px}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-name[data-astro-cid-d5lrd5xl]{font-size:var(--text-sm);white-space:normal;text-align:center;line-height:var(--leading-tight);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__date[data-astro-cid-d5lrd5xl]{font-size:var(--text-xs)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__body[data-astro-cid-d5lrd5xl]{margin-bottom:0;flex:1;display:flex;flex-direction:column;gap:var(--space-xs)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__post-title[data-astro-cid-d5lrd5xl]{font-size:var(--text-md);line-height:var(--leading-snug);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;margin:0}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__summary[data-astro-cid-d5lrd5xl]{font-size:var(--text-sm);-webkit-line-clamp:3;line-clamp:3}@media(max-width:768px){.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__flow[data-astro-cid-d5lrd5xl]{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__flow[data-astro-cid-d5lrd5xl]{grid-template-columns:1fr}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__card[data-astro-cid-d5lrd5xl]{padding:var(--space-md)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author[data-astro-cid-d5lrd5xl]{flex-direction:row;text-align:left}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-info[data-astro-cid-d5lrd5xl]{align-items:flex-start}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-name[data-astro-cid-d5lrd5xl]{text-align:left}}.wi-subs__card[data-astro-cid-d5lrd5xl]{background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:16px;padding:var(--space-xl);transition:box-shadow var(--duration-normal) var(--ease-out-expo),transform var(--duration-normal) var(--ease-out-expo),border-color var(--duration-normal) var(--ease-out-expo)}.wi-subs__card[data-astro-cid-d5lrd5xl]:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--accent)}.wi-subs__author[data-astro-cid-d5lrd5xl]{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.wi-subs__avatar[data-astro-cid-d5lrd5xl]{width:44px;height:44px;border-radius:9999px;object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm)}.wi-subs__avatar--placeholder[data-astro-cid-d5lrd5xl]{display:flex;align-items:center;justify-content:center;background:var(--accent-bg);color:var(--accent);font-family:var(--font-sans);font-size:var(--text-md);font-weight:700;box-shadow:none}.wi-subs__author-info[data-astro-cid-d5lrd5xl]{display:flex;flex-direction:column;gap:2px;min-width:0}.wi-subs__author-name[data-astro-cid-d5lrd5xl]{font-size:var(--text-md);font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;transition:color var(--duration-fast) var(--ease-out-quart)}a[data-astro-cid-d5lrd5xl].wi-subs__author-name:hover{color:var(--accent)}.wi-subs__date[data-astro-cid-d5lrd5xl]{font-size:var(--text-xs);color:var(--ink-3);letter-spacing:.02em}.wi-subs__body[data-astro-cid-d5lrd5xl]{margin-bottom:var(--space-sm)}.wi-subs__title-link[data-astro-cid-d5lrd5xl]{text-decoration:none;display:block}.wi-subs__post-title[data-astro-cid-d5lrd5xl]{font-size:var(--text-lg);font-weight:600;color:var(--ink);line-height:var(--leadLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-subs[data-astro-cid-d5lrd5xl]{padding-block:1rem}.wi-subs__header[data-astro-cid-d5lrd5xl]{text-align:center;margin-bottom:var(--space-3xl)}.wi-subs__title[data-astro-cid-d5lrd5xl]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-subs__subtitle[data-astro-cid-d5lrd5xl]{font-size:var(--text-sm);color:var(--ink-3);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-d5lrd5xl]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-subs__flow[data-astro-cid-d5lrd5xl]{display:flex;flex-direction:column;gap:var(--space-lg);max-width:720px;margin-inline:auto}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__flow[data-astro-cid-d5lrd5xl]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);max-width:1200px}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__card[data-astro-cid-d5lrd5xl]{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author[data-astro-cid-d5lrd5xl]{flex-direction:column;align-items:center;text-align:center;gap:var(--space-xs);margin-bottom:0}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__avatar[data-astro-cid-d5lrd5xl]{width:44px;height:44px}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-info[data-astro-cid-d5lrd5xl]{align-items:center;gap:2px}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-name[data-astro-cid-d5lrd5xl]{font-size:var(--text-sm);white-space:normal;text-align:center;line-height:var(--leading-tight);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__date[data-astro-cid-d5lrd5xl]{font-size:var(--text-xs)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__body[data-astro-cid-d5lrd5xl]{margin-bottom:0;flex:1;display:flex;flex-direction:column;gap:var(--space-xs)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__post-title[data-astro-cid-d5lrd5xl]{font-size:var(--text-md);line-height:var(--leading-snug);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;margin:0}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__summary[data-astro-cid-d5lrd5xl]{font-size:var(--text-sm);-webkit-line-clamp:3;line-clamp:3}@media(max-width:768px){.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__flow[data-astro-cid-d5lrd5xl]{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__flow[data-astro-cid-d5lrd5xl]{grid-template-columns:1fr}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__card[data-astro-cid-d5lrd5xl]{padding:var(--space-md)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author[data-astro-cid-d5lrd5xl]{flex-direction:row;text-align:left}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-info[data-astro-cid-d5lrd5xl]{align-items:flex-start}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-name[data-astro-cid-d5lrd5xl]{text-align:left}}.wi-subs__card[data-astro-cid-d5lrd5xl]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:var(--space-xl);transition:box-shadow var(--duration-normal) var(--ease-out-expo),transform var(--duration-normal) var(--ease-out-expo),border-color var(--duration-normal) var(--ease-out-expo)}.wi-subs__card[data-astro-cid-d5lrd5xl]:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--accent)}.wi-subs__author[data-astro-cid-d5lrd5xl]{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.wi-subs__avatar[data-astro-cid-d5lrd5xl]{width:44px;height:44px;border-radius:9999px;object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm)}.wi-subs__avatar--placeholder[data-astro-cid-d5lrd5xl]{display:flex;align-items:center;justify-content:center;background:var(--accent-bg);color:var(--accent);font-family:var(--font-sans);font-size:var(--text-md);font-weight:700;box-shadow:none}.wi-subs__author-info[data-astro-cid-d5lrd5xl]{display:flex;flex-direction:column;gap:2px;min-width:0}.wi-subs__author-name[data-astro-cid-d5lrd5xl]{font-size:var(--text-md);font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;transition:color var(--duration-fast) var(--ease-out-quart)}a[data-astro-cid-d5lrd5xl].wi-subs__author-name:hover{color:var(--accent)}.wi-subs__date[data-astro-cid-d5lrd5xl]{font-size:var(--text-xs);color:var(--ink-3);letter-spacing:.02em}.wi-subs__body[data-astro-cid-d5lrd5xl]{margin-bottom:var(--space-sm)}.wi-subs__title-link[data-astro-cid-d5lrd5xl]{text-decoration:none;display:block}.wi-subs__post-title[data-astro-cid-d5lrd5xl]{font-size:var(--text-lg);font-weight:600;color:var(--ink);line-height:var(--leading-snug);margin:0 0 var(--space-xs);transition:color var(--duLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-subs[data-astro-cid-d5lrd5xl]{padding-block:1rem}.wi-subs__header[data-astro-cid-d5lrd5xl]{text-align:center;margin-bottom:var(--space-3xl)}.wi-subs__title[data-astro-cid-d5lrd5xl]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-subs__subtitle[data-astro-cid-d5lrd5xl]{font-size:var(--text-sm);color:var(--ink-3);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-d5lrd5xl]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-subs__flow[data-astro-cid-d5lrd5xl]{display:flex;flex-direction:column;gap:var(--space-lg);max-width:720px;margin-inline:auto}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__flow[data-astro-cid-d5lrd5xl]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);max-width:1200px}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__card[data-astro-cid-d5lrd5xl]{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author[data-astro-cid-d5lrd5xl]{flex-direction:column;align-items:center;text-align:center;gap:var(--space-xs);margin-bottom:0}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__avatar[data-astro-cid-d5lrd5xl]{width:44px;height:44px}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-info[data-astro-cid-d5lrd5xl]{align-items:center;gap:2px}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-name[data-astro-cid-d5lrd5xl]{font-size:var(--text-sm);white-space:normal;text-align:center;line-height:var(--leading-tight);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__date[data-astro-cid-d5lrd5xl]{font-size:var(--text-xs)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__body[data-astro-cid-d5lrd5xl]{margin-bottom:0;flex:1;display:flex;flex-direction:column;gap:var(--space-xs)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__post-title[data-astro-cid-d5lrd5xl]{font-size:var(--text-md);line-height:var(--leading-snug);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;margin:0}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__summary[data-astro-cid-d5lrd5xl]{font-size:var(--text-sm);-webkit-line-clamp:3;line-clamp:3}@media(max-width:768px){.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__flow[data-astro-cid-d5lrd5xl]{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__flow[data-astro-cid-d5lrd5xl]{grid-template-columns:1fr}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__card[data-astro-cid-d5lrd5xl]{padding:var(--space-md)}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author[data-astro-cid-d5lrd5xl]{flex-direction:row;text-align:left}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-info[data-astro-cid-d5lrd5xl]{align-items:flex-start}.wi-subs[data-astro-cid-d5lrd5xl][data-layout=grid] .wi-subs__author-name[data-astro-cid-d5lrd5xl]{text-align:left}}.wi-subs__card[data-astro-cid-d5lrd5xl]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:var(--space-xl);transition:box-shadow var(--duration-normal) var(--ease-out-expo),transform var(--duration-normal) var(--ease-out-expo),border-color var(--duration-normal) var(--ease-out-expo)}.wi-subs__card[data-astro-cid-d5lrd5xl]:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--accent)}.wi-subs__author[data-astro-cid-d5lrd5xl]{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.wi-subs__avatar[data-astro-cid-d5lrd5xl]{width:44px;height:44px;border-radius:9999px;object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm)}.wi-subs__avatar--placeholder[data-astro-cid-d5lrd5xl]{display:flex;align-items:center;justify-content:center;background:var(--accent-bg);color:var(--accent);font-family:var(--font-sans);font-size:var(--text-md);font-weight:700;box-shadow:none}.wi-subs__author-info[data-astro-cid-d5lrd5xl]{display:flex;flex-direction:column;gap:2px;min-width:0}.wi-subs__author-name[data-astro-cid-d5lrd5xl]{font-size:var(--text-md);font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;transition:color var(--duration-fast) var(--ease-out-quart)}a[data-astro-cid-d5lrd5xl].wi-subs__author-name:hover{color:var(--accent)}.wi-subs__date[data-astro-cid-d5lrd5xl]{font-size:var(--text-xs);color:var(--ink-3);letter-spacing:.02em}.wi-subs__body[data-astro-cid-d5lrd5xl]{margin-bottom:var(--space-sm)}.wi-subs__title-link[data-astro-cid-d5lrd5xl]{text-decoration:none;display:block}.wi-subs__post-title[data-astro-cid-d5lrd5xl]{font-size:var(--text-lg);font-weight:600;color:var(--ink);line-height:var(--leading-snug);margin:0 0 var(--space-xs);transition:color var(--duLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-photos-page[data-astro-cid-vgmx3pcl]{padding-block:1rem}.wi-photos-page__header[data-astro-cid-vgmx3pcl]{text-align:center;margin-bottom:var(--space-3xl)}.wi-photos-page__title[data-astro-cid-vgmx3pcl]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-vgmx3pcl]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-photos-page__groups[data-astro-cid-vgmx3pcl]{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:center;margin-bottom:var(--space-2xl)}.wi-photos-page__group-link[data-astro-cid-vgmx3pcl]{display:inline-flex;align-items:center;padding:6px 16px;border-radius:9999px;font-size:var(--text-sm);font-weight:500;color:var(--ink-2);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);text-decoration:none;transition:color var(--duration-fast) var(--ease-out-expo),background var(--duration-fast) var(--ease-out-expo),border-color var(--duration-fast) var(--ease-out-expo),transform var(--duration-fast) var(--ease-out-expo)}.wi-photos-page__group-link[data-astro-cid-vgmx3pcl]:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.wi-photos-page__group-link--active[data-astro-cid-vgmx3pcl]{color:var(--bg);background:var(--accent);border-color:var(--accent)}.wi-photos-page__group-link--active[data-astro-cid-vgmx3pcl]:hover{color:var(--bg);background:var(--accent);transform:none}.wi-photos-page__section[data-astro-cid-vgmx3pcl]{margin-bottom:var(--space-2xl)}.wi-photos-page__section[data-astro-cid-vgmx3pcl]:last-child{margin-bottom:0}.wi-photos-page__section-title[data-astro-cid-vgmx3pcl]{font-size:var(--text-lg);font-weight:600;color:var(--ink-2);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:1px solid var(--rule)}.wi-photos-page__empty[data-astro-cid-vgmx3pcl]{text-align:center;padding:var(--space-4xl) var(--space-xl);color:var(--ink-3);font-size:var(--text-md)}.wi-photos-page__empty[data-astro-cid-vgmx3pcl] a[data-astro-cid-vgmx3pcl]{color:var(--accent)}.wi-photos-page__grid[data-astro-cid-vgmx3pcl]{display:grid;gap:var(--space-md)}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=masonry]{grid-template-columns:repeat(3,1fr);grid-auto-rows:10px}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=masonry][data-columns="2"]{grid-template-columns:repeat(2,1fr)}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=masonry][data-columns="4"]{grid-template-columns:repeat(4,1fr)}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=grid]{grid-template-columns:repeat(3,1fr)}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=grid][data-columns="2"]{grid-template-columns:repeat(2,1fr)}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=grid][data-columns="4"]{grid-template-columns:repeat(4,1fr)}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=grid] .wi-photos-page__image[data-astro-cid-vgmx3pcl]{aspect-ratio:1;object-fit:cover}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=carousel]{grid-template-columns:unset;display:flex;gap:var(--space-md);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:var(--space-md);padding-bottom:var(--space-md);-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=carousel]::-webkit-scrollbar{height:4px}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=carousel]::-webkit-scrollbar-track{background:transparent}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=carousel]::-webkit-scrollbar-thumb{background:var(--accent);border-radius:9999px}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=carousel] .wi-photos-page__item[data-astro-cid-vgmx3pcl]{flex:0 0 auto;scroll-snap-align:start;width:calc(100% / 3 - var(--space-md) * 2 / 3)}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=carousel][data-columns="2"] .wi-photos-page__item[data-astro-cid-vgmx3pcl]{width:calc(100% / 2 - var(--space-md) / 2)}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=carousel][data-columns="4"] .wi-photos-page__item[data-astro-cid-vgmx3pcl]{width:calc(100% / 4 - var(--space-md) * 3 / 4)}.wi-photos-page__grid[data-astro-cid-vgmx3pcl][data-style=carousel] .wi-photos-page__image[data-astro-cid-vgmx3pcl]{aspect-ratio:4 / 3;object-fit:cover}.wi-photos-page__item[data-astro-cid-vgmx3pcl]{border-radius:12px;overflow:hidden}.wi-photos-page__link[data-astro-cid-vgmx3pcl]{display:block;position:relative;text-decoration:none;border-radius:12px;overflow:hidden;cursor:zoom-in}.wi-photos-page__image[data-astro-cid-vgmx3pcl]{display:block;width:100%;height:auto;border-radius:12px;transition:transform var(--duration-slow) var(--ease-out-expo),filter var(--duration-normal) var(--ease-out-expo)}.wi-photos-page__link[data-astro-cid-vgmx3pcl]:hover .wi-photos-page__image[data-astro-cid-vgmx3pcl]{transfLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-reading-progress[data-astro-cid-ftxg5n3y]{position:fixed;top:0;left:0;width:0;height:3px;background:var(--accent);z-index:101;transition:width .1s linear}.wi-post[data-astro-cid-ftxg5n3y]{display:grid;gap:1rem;padding-block:1rem;overflow-x:hidden}.wi-post__header[data-astro-cid-ftxg5n3y]{display:grid;gap:var(--space-lg);padding:var(--space-lg) 0 var(--space-md);border-bottom:1px solid var(--rule);text-align:center}.wi-post__cover-wrap[data-astro-cid-ftxg5n3y]{border-radius:12px;overflow:hidden}.wi-post__cover[data-astro-cid-ftxg5n3y]{width:100%;max-height:480px;object-fit:cover;border-radius:12px}.wi-post__title[data-astro-cid-ftxg5n3y]{font-family:var(--font-sans);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;line-height:var(--leading-tight);letter-spacing:-.02em;color:var(--ink);margin:0}.wi-page-accent[data-astro-cid-ftxg5n3y]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-post__meta[data-astro-cid-ftxg5n3y]{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;color:var(--ink-3);font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.wi-post__meta[data-astro-cid-ftxg5n3y] a[data-astro-cid-ftxg5n3y]{color:var(--ink-2);text-decoration:none;transition:color var(--duration-fast) var(--ease-out-quart)}.wi-post__meta[data-astro-cid-ftxg5n3y] a[data-astro-cid-ftxg5n3y]:hover{color:var(--accent)}.wi-post__meta-sep[data-astro-cid-ftxg5n3y]{color:var(--ink-3)}.wi-post__author[data-astro-cid-ftxg5n3y]{display:inline-flex;align-items:center;gap:.35rem}.wi-post__author-avatar[data-astro-cid-ftxg5n3y]{width:20px;height:20px;border-radius:50%;object-fit:cover}.wi-post__meta-categories[data-astro-cid-ftxg5n3y] a[data-astro-cid-ftxg5n3y]+a[data-astro-cid-ftxg5n3y]:before{content:", "}.wi-post__meta-tags[data-astro-cid-ftxg5n3y] a[data-astro-cid-ftxg5n3y]+a[data-astro-cid-ftxg5n3y]:before{content:", "}.wi-post__stats[data-astro-cid-ftxg5n3y]{display:inline-flex;align-items:center;gap:.4rem}.wi-post__stat-item[data-astro-cid-ftxg5n3y]+.wi-post__stat-item[data-astro-cid-ftxg5n3y]:before{content:"·";margin-right:.4rem;color:var(--ink-3)}.wi-post__body[data-astro-cid-ftxg5n3y]{width:100%;font-size:clamp(1.05rem,1rem + .25vw,1.15rem);line-height:1.85;color:#3d3530;overflow-wrap:break-word;word-wrap:break-word}html.dark .wi-post__body[data-astro-cid-ftxg5n3y]{color:#d9d2c9}.wi-toc[data-astro-cid-ftxg5n3y]{display:none}@media(min-width:1280px){.wi-toc[data-astro-cid-ftxg5n3y]{display:block;position:fixed;top:80px;width:220px;max-height:calc(100vh - 100px);overflow-y:auto;z-index:10}}.wi-toc__header[data-astro-cid-ftxg5n3y]{display:flex;align-items:center;padding-bottom:var(--space-sm);margin-bottom:var(--space-sm);border-bottom:1px solid var(--rule)}.wi-toc__title[data-astro-cid-ftxg5n3y]{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--ink);letter-spacing:var(--tracking-wide)}.wi-toc__nav[data-astro-cid-ftxg5n3y]{display:flex;flex-direction:column;gap:0;overflow:hidden}.wi-toc-fab[data-astro-cid-ftxg5n3y]{display:none;position:fixed;bottom:32px;right:24px;width:44px;height:44px;border-radius:50%;border:1px solid var(--rule);background:var(--bg-raised);color:var(--ink-2);cursor:pointer;z-index:20;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:background .2s ease,color .2s ease,border-color .2s ease,opacity .3s ease}.wi-toc-fab[data-astro-cid-ftxg5n3y]:hover{color:var(--accent);border-color:var(--accent)}@media(max-width:1279px){.wi-toc-fab[data-astro-cid-ftxg5n3y]{display:inline-flex;bottom:24px}}@media(max-width:640px){.wi-toc-fab[data-astro-cid-ftxg5n3y]{right:16px;bottom:24px;width:40px;height:40px}.wi-post__share-btn[data-astro-cid-ftxg5n3y]{width:44px;height:44px}.wi-like-btn[data-astro-cid-ftxg5n3y]{padding:.75rem 1.75rem}}.wi-toc-drawer[data-astro-cid-ftxg5n3y]{display:none}.wi-toc-drawer--open[data-astro-cid-ftxg5n3y]{display:block}.wi-toc-drawer__overlay[data-astro-cid-ftxg5n3y]{position:fixed;inset:0;background:#0006;z-index:50}.wi-toc-drawer__panel[data-astro-cid-ftxg5n3y]{position:fixed;bottom:0;left:0;right:0;max-height:60vh;background:var(--bg);border-top:1px solid var(--rule);border-radius:16px 16px 0 0;padding:1.25rem;z-index:51;overflow-y:auto;transform:translateY(0);transition:transform .3s cubic-bezier(.16,1,.3,1)}.wi-toc-drawer__header[data-astro-cid-ftxg5n3y]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--rule)}.wi-toc-drawer__title[data-astro-cid-ftxg5n3y]{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--ink)}.wi-toc-drawer__close[data-astro-cid-ftxg5n3y]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--ink-3);cursor:pointer}.wi-toc-drawer__close[data-astro-cid-ftxg5n3y]:hover{color:var(--accent)}.wi-toc-drawer__nav[data-astro-cid-ftxg5n3y]{disLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-reading-progress[data-astro-cid-ftxg5n3y]{position:fixed;top:0;left:0;width:0;height:3px;background:var(--accent);z-index:101;transition:width .1s linear}.wi-post[data-astro-cid-ftxg5n3y]{display:grid;gap:1rem;padding-block:1rem;overflow-x:hidden}.wi-post__header[data-astro-cid-ftxg5n3y]{display:grid;gap:var(--space-lg);padding:var(--space-lg) 0 var(--space-md);border-bottom:1px solid var(--rule);text-align:center}.wi-post__cover-wrap[data-astro-cid-ftxg5n3y]{border-radius:12px;overflow:hidden}.wi-post__cover[data-astro-cid-ftxg5n3y]{width:100%;max-height:480px;object-fit:cover;border-radius:12px}.wi-post__title[data-astro-cid-ftxg5n3y]{font-family:var(--font-sans);font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;line-height:var(--leading-tight);letter-spacing:-.02em;color:var(--ink);margin:0}.wi-page-accent[data-astro-cid-ftxg5n3y]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-post__meta[data-astro-cid-ftxg5n3y]{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;color:var(--ink-3);font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.wi-post__meta[data-astro-cid-ftxg5n3y] a[data-astro-cid-ftxg5n3y]{color:var(--ink-2);text-decoration:none;transition:color var(--duration-fast) var(--ease-out-quart)}.wi-post__meta[data-astro-cid-ftxg5n3y] a[data-astro-cid-ftxg5n3y]:hover{color:var(--accent)}.wi-post__meta-sep[data-astro-cid-ftxg5n3y]{color:var(--ink-3)}.wi-post__author[data-astro-cid-ftxg5n3y]{display:inline-flex;align-items:center;gap:.35rem}.wi-post__author-avatar[data-astro-cid-ftxg5n3y]{width:20px;height:20px;border-radius:50%;object-fit:cover}.wi-post__meta-categories[data-astro-cid-ftxg5n3y] a[data-astro-cid-ftxg5n3y]+a[data-astro-cid-ftxg5n3y]:before{content:", "}.wi-post__meta-tags[data-astro-cid-ftxg5n3y] a[data-astro-cid-ftxg5n3y]+a[data-astro-cid-ftxg5n3y]:before{content:", "}.wi-post__stats[data-astro-cid-ftxg5n3y]{display:inline-flex;align-items:center;gap:.4rem}.wi-post__stat-item[data-astro-cid-ftxg5n3y]+.wi-post__stat-item[data-astro-cid-ftxg5n3y]:before{content:"·";margin-right:.4rem;color:var(--ink-3)}.wi-post__body[data-astro-cid-ftxg5n3y]{width:100%;font-size:1.05rem;line-height:1.8;color:#3d3530;overflow-wrap:break-word;word-wrap:break-word}html.dark .wi-post__body[data-astro-cid-ftxg5n3y]{color:#d4cdc4}.wi-toc[data-astro-cid-ftxg5n3y]{display:none}@media(min-width:1280px){.wi-toc[data-astro-cid-ftxg5n3y]{display:block;position:fixed;top:80px;width:220px;max-height:calc(100vh - 100px);overflow-y:auto;z-index:10}}.wi-toc__header[data-astro-cid-ftxg5n3y]{display:flex;align-items:center;padding-bottom:var(--space-sm);margin-bottom:var(--space-sm);border-bottom:1px solid var(--rule)}.wi-toc__title[data-astro-cid-ftxg5n3y]{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--ink);letter-spacing:var(--tracking-wide)}.wi-toc__nav[data-astro-cid-ftxg5n3y]{display:flex;flex-direction:column;gap:0;overflow:hidden}.wi-toc-fab[data-astro-cid-ftxg5n3y]{display:none;position:fixed;bottom:32px;right:24px;width:44px;height:44px;border-radius:50%;border:1px solid var(--rule);background:var(--bg-raised);color:var(--ink-2);cursor:pointer;z-index:20;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:background .2s ease,color .2s ease,border-color .2s ease,opacity .3s ease}.wi-toc-fab[data-astro-cid-ftxg5n3y]:hover{color:var(--accent);border-color:var(--accent)}@media(max-width:1279px){.wi-toc-fab[data-astro-cid-ftxg5n3y]{display:inline-flex;bottom:24px}}@media(max-width:640px){.wi-toc-fab[data-astro-cid-ftxg5n3y]{right:16px;bottom:24px;width:40px;height:40px}.wi-post__share-btn[data-astro-cid-ftxg5n3y]{width:44px;height:44px}.wi-like-btn[data-astro-cid-ftxg5n3y]{padding:.75rem 1.75rem}}.wi-toc-drawer[data-astro-cid-ftxg5n3y]{display:none}.wi-toc-drawer--open[data-astro-cid-ftxg5n3y]{display:block}.wi-toc-drawer__overlay[data-astro-cid-ftxg5n3y]{position:fixed;inset:0;background:#0006;z-index:50}.wi-toc-drawer__panel[data-astro-cid-ftxg5n3y]{position:fixed;bottom:0;left:0;right:0;max-height:60vh;background:var(--bg);border-top:1px solid var(--rule);border-radius:16px 16px 0 0;padding:1.25rem;z-index:51;overflow-y:auto;transform:translateY(0);transition:transform .3s cubic-bezier(.16,1,.3,1)}.wi-toc-drawer__header[data-astro-cid-ftxg5n3y]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--rule)}.wi-toc-drawer__title[data-astro-cid-ftxg5n3y]{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--ink)}.wi-toc-drawer__close[data-astro-cid-ftxg5n3y]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--ink-3);cursor:pointer}.wi-toc-drawer__close[data-astro-cid-ftxg5n3y]:hover{color:var(--accent)}.wi-toc-drawer__nav[data-astro-cid-ftxg5n3y]{display:flex;flex-direction:coluLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-steam[data-astro-cid-2qupxtzr]{padding-block:1rem}.wi-steam__header[data-astro-cid-2qupxtzr]{text-align:center;margin-bottom:var(--space-3xl)}.wi-steam__title[data-astro-cid-2qupxtzr]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-2qupxtzr]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-steam__profile[data-astro-cid-2qupxtzr]{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-xl);background:var(--bg-raised);border:1px solid var(--rule);border-radius:16px;margin-bottom:var(--space-2xl)}.wi-steam__avatar[data-astro-cid-2qupxtzr]{position:relative;flex-shrink:0}.wi-steam__avatar-img[data-astro-cid-2qupxtzr]{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--rule);display:block}.wi-steam__avatar-placeholder[data-astro-cid-2qupxtzr]{display:flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;background:var(--accent-bg);border:3px solid var(--rule);color:var(--ink-3)}.wi-steam__status-dot[data-astro-cid-2qupxtzr]{position:absolute;bottom:4px;right:4px;width:14px;height:14px;border-radius:50%;border:2px solid var(--bg-raised)}.wi-steam__status-dot--online[data-astro-cid-2qupxtzr]{background:#22c55e}.wi-steam__status-dot--playing[data-astro-cid-2qupxtzr]{background:#3b82f6}.wi-steam__status-dot--offline[data-astro-cid-2qupxtzr]{background:#6b7280}.wi-steam__info[data-astro-cid-2qupxtzr]{flex:1;min-width:0}.wi-steam__name[data-astro-cid-2qupxtzr]{font-size:var(--text-xl);font-weight:700;color:var(--ink)}.wi-steam__status-text[data-astro-cid-2qupxtzr]{font-size:var(--text-sm);color:var(--ink-3);display:block;margin-top:2px}.wi-steam__profile-link[data-astro-cid-2qupxtzr]{font-size:var(--text-xs);color:var(--accent);text-decoration:none;display:inline-block;margin-top:4px}.wi-steam__profile-link[data-astro-cid-2qupxtzr]:hover{text-decoration:underline}.wi-steam__level[data-astro-cid-2qupxtzr]{display:flex;flex-direction:column;align-items:center;padding:var(--space-sm) var(--space-md);background:var(--accent-bg);border-radius:12px;flex-shrink:0}.wi-steam__level-num[data-astro-cid-2qupxtzr]{font-size:var(--text-2xl);font-weight:800;color:var(--accent);line-height:1}.wi-steam__level-label[data-astro-cid-2qupxtzr]{font-size:11px;color:var(--ink-3);margin-top:2px}.wi-steam__stats[data-astro-cid-2qupxtzr]{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin-bottom:var(--space-2xl)}.wi-steam__stat-card[data-astro-cid-2qupxtzr]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-lg);background:var(--bg-raised);border:1px solid var(--rule);border-radius:12px;min-height:80px}.wi-steam__stat-value[data-astro-cid-2qupxtzr]{font-size:var(--text-2xl);font-weight:800;color:var(--accent);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;container-type:inline-size}@container (max-width: 120px){.wi-steam__stat-value[data-astro-cid-2qupxtzr]{font-size:var(--text-lg)}}@container (max-width: 80px){.wi-steam__stat-value[data-astro-cid-2qupxtzr]{font-size:var(--text-md)}}.wi-steam__stat-label[data-astro-cid-2qupxtzr]{font-size:var(--text-xs);color:var(--ink-3);margin-top:4px;white-space:nowrap}.wi-steam__section[data-astro-cid-2qupxtzr]{margin-bottom:var(--space-2xl)}.wi-steam__section-title[data-astro-cid-2qupxtzr]{font-size:var(--text-xl);font-weight:700;color:var(--ink);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:2px solid var(--accent);display:inline-block}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]{display:flex;gap:var(--space-md);overflow-x:auto;padding-bottom:var(--space-sm);scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]::-webkit-scrollbar{height:6px}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]::-webkit-scrollbar-track{background:var(--bg);border-radius:3px}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]::-webkit-scrollbar-thumb{background:var(--rule);border-radius:3px}.wi-steam__recent-card[data-astro-cid-2qupxtzr]{position:relative;display:flex;flex-direction:column;min-width:220px;max-width:260px;background:var(--bg-raised);border:1px solid var(--rule);border-radius:12px;overflow:hidden;scroll-snap-align:start;flex-shrink:0;transition:transform var(--duration-normal) var(--ease-out-expo),box-shadow var(--duration-normal) var(--ease-out-expo),border-color var(--duration-normal) var(--ease-out-expo)}.wi-steam__recent-card[data-astro-cid-2qupxtzr]:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--accent)}.wi-steam__recent-cover[data-astro-cid-2qupxtzr]{width:100%;overflow:hidden}.wi-steam__recent-img[data-astro-cid-2qupxtzr]{width:100%;aspect-ratio:460 / 215;object-fit:cover}.wi-steam__recent-body[data-astro-cid-2qupxtzr]{display:flex;flex-direction:column;gap:4px;padding:vLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-steam[data-astro-cid-2qupxtzr]{padding-block:1rem}.wi-steam__header[data-astro-cid-2qupxtzr]{text-align:center;margin-bottom:var(--space-3xl)}.wi-steam__title[data-astro-cid-2qupxtzr]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-2qupxtzr]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-steam__profile[data-astro-cid-2qupxtzr]{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-xl);background:var(--bg-raised);border:1px solid var(--rule);border-radius:16px;margin-bottom:var(--space-2xl)}.wi-steam__avatar[data-astro-cid-2qupxtzr]{position:relative;flex-shrink:0}.wi-steam__avatar-img[data-astro-cid-2qupxtzr]{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--rule);display:block}.wi-steam__avatar-placeholder[data-astro-cid-2qupxtzr]{display:flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;background:var(--accent-bg);border:3px solid var(--rule);color:var(--ink-3)}.wi-steam__status-dot[data-astro-cid-2qupxtzr]{position:absolute;bottom:4px;right:4px;width:14px;height:14px;border-radius:50%;border:2px solid var(--bg-raised)}.wi-steam__status-dot--online[data-astro-cid-2qupxtzr]{background:#22c55e}.wi-steam__status-dot--playing[data-astro-cid-2qupxtzr]{background:#3b82f6}.wi-steam__status-dot--offline[data-astro-cid-2qupxtzr]{background:#6b7280}.wi-steam__info[data-astro-cid-2qupxtzr]{flex:1;min-width:0}.wi-steam__name[data-astro-cid-2qupxtzr]{font-size:var(--text-xl);font-weight:700;color:var(--ink)}.wi-steam__status-text[data-astro-cid-2qupxtzr]{font-size:var(--text-sm);color:var(--ink-3);display:block;margin-top:2px}.wi-steam__profile-link[data-astro-cid-2qupxtzr]{font-size:var(--text-xs);color:var(--accent);text-decoration:none;display:inline-block;margin-top:4px}.wi-steam__profile-link[data-astro-cid-2qupxtzr]:hover{text-decoration:underline}.wi-steam__level[data-astro-cid-2qupxtzr]{display:flex;flex-direction:column;align-items:center;padding:var(--space-sm) var(--space-md);background:var(--accent-bg);border-radius:12px;flex-shrink:0}.wi-steam__level-num[data-astro-cid-2qupxtzr]{font-size:var(--text-2xl);font-weight:800;color:var(--accent);line-height:1}.wi-steam__level-label[data-astro-cid-2qupxtzr]{font-size:11px;color:var(--ink-3);margin-top:2px}.wi-steam__stats[data-astro-cid-2qupxtzr]{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin-bottom:var(--space-2xl)}.wi-steam__stat-card[data-astro-cid-2qupxtzr]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-lg);background:var(--bg-raised);border:1px solid var(--rule);border-radius:12px;min-height:80px;container-type:inline-size}.wi-steam__stat-value[data-astro-cid-2qupxtzr]{font-size:var(--text-2xl);font-weight:800;color:var(--accent);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}@container (max-width: 120px){.wi-steam__stat-value[data-astro-cid-2qupxtzr]{font-size:var(--text-lg)}}@container (max-width: 80px){.wi-steam__stat-value[data-astro-cid-2qupxtzr]{font-size:var(--text-md)}}.wi-steam__stat-label[data-astro-cid-2qupxtzr]{font-size:var(--text-xs);color:var(--ink-3);margin-top:4px;white-space:nowrap}.wi-steam__section[data-astro-cid-2qupxtzr]{margin-bottom:var(--space-2xl)}.wi-steam__section-title[data-astro-cid-2qupxtzr]{font-size:var(--text-xl);font-weight:700;color:var(--ink);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:2px solid var(--accent);display:inline-block}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]{display:flex;gap:var(--space-md);overflow-x:auto;padding-bottom:var(--space-sm);scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]::-webkit-scrollbar{height:6px}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]::-webkit-scrollbar-track{background:var(--bg);border-radius:3px}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]::-webkit-scrollbar-thumb{background:var(--rule);border-radius:3px}.wi-steam__recent-card[data-astro-cid-2qupxtzr]{position:relative;display:flex;flex-direction:column;min-width:220px;max-width:260px;background:var(--bg-raised);border:1px solid var(--rule);border-radius:12px;overflow:hidden;scroll-snap-align:start;flex-shrink:0;transition:transform var(--duration-normal) var(--ease-out-expo),box-shadow var(--duration-normal) var(--ease-out-expo),border-color var(--duration-normal) var(--ease-out-expo)}.wi-steam__recent-card[data-astro-cid-2qupxtzr]:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--accent)}.wi-steam__recent-cover[data-astro-cid-2qupxtzr]{width:100%;overflow:hidden}.wi-steam__recent-img[data-astro-cid-2qupxtzr]{width:100%;aspect-ratio:460 / 215;object-fit:cover}.wi-steam__recent-body[data-astro-cid-2qupxtzr]{display:flex;flex-direction:column;gap:4px;padding:vLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.wi-steam[data-astro-cid-2qupxtzr]{padding-block:1rem}.wi-steam__header[data-astro-cid-2qupxtzr]{text-align:center;margin-bottom:var(--space-3xl)}.wi-steam__title[data-astro-cid-2qupxtzr]{font-size:var(--text-4xl);margin-bottom:var(--space-sm)}.wi-page-accent[data-astro-cid-2qupxtzr]{display:block;width:48px;height:3px;margin:var(--space-sm) auto 0;border-radius:9999px;background:var(--accent)}.wi-steam__profile[data-astro-cid-2qupxtzr]{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-xl);background:var(--bg-raised);border:1px solid var(--rule);border-radius:16px;margin-bottom:var(--space-2xl)}.wi-steam__avatar[data-astro-cid-2qupxtzr]{position:relative;flex-shrink:0}.wi-steam__avatar-img[data-astro-cid-2qupxtzr]{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--rule);display:block}.wi-steam__avatar-placeholder[data-astro-cid-2qupxtzr]{display:flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;background:var(--accent-bg);border:3px solid var(--rule);color:var(--ink-3)}.wi-steam__status-dot[data-astro-cid-2qupxtzr]{position:absolute;bottom:4px;right:4px;width:14px;height:14px;border-radius:50%;border:2px solid var(--bg-raised)}.wi-steam__status-dot--online[data-astro-cid-2qupxtzr]{background:#22c55e}.wi-steam__status-dot--playing[data-astro-cid-2qupxtzr]{background:#3b82f6}.wi-steam__status-dot--offline[data-astro-cid-2qupxtzr]{background:#6b7280}.wi-steam__info[data-astro-cid-2qupxtzr]{flex:1;min-width:0}.wi-steam__name[data-astro-cid-2qupxtzr]{font-size:var(--text-xl);font-weight:700;color:var(--ink)}.wi-steam__status-text[data-astro-cid-2qupxtzr]{font-size:var(--text-sm);color:var(--ink-3);display:block;margin-top:2px}.wi-steam__profile-link[data-astro-cid-2qupxtzr]{font-size:var(--text-xs);color:var(--accent);text-decoration:none;display:inline-block;margin-top:4px}.wi-steam__profile-link[data-astro-cid-2qupxtzr]:hover{text-decoration:underline}.wi-steam__level[data-astro-cid-2qupxtzr]{display:flex;flex-direction:column;align-items:center;padding:var(--space-sm) var(--space-md);background:var(--accent-bg);border-radius:12px;flex-shrink:0}.wi-steam__level-num[data-astro-cid-2qupxtzr]{font-size:var(--text-2xl);font-weight:800;color:var(--accent);line-height:1}.wi-steam__level-label[data-astro-cid-2qupxtzr]{font-size:11px;color:var(--ink-3);margin-top:2px}.wi-steam__stats[data-astro-cid-2qupxtzr]{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin-bottom:var(--space-2xl)}.wi-steam__stat-card[data-astro-cid-2qupxtzr]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-lg);background:var(--bg-raised);border:1px solid var(--rule);border-radius:12px;min-height:80px}.wi-steam__stat-value[data-astro-cid-2qupxtzr]{font-size:var(--text-2xl);font-weight:800;color:var(--accent);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;container-type:inline-size}@container (max-width: 120px){.wi-steam__stat-value[data-astro-cid-2qupxtzr]{font-size:var(--text-lg)}}@container (max-width: 80px){.wi-steam__stat-value[data-astro-cid-2qupxtzr]{font-size:var(--text-md)}}.wi-steam__stat-label[data-astro-cid-2qupxtzr]{font-size:var(--text-xs);color:var(--ink-3);margin-top:4px;white-space:nowrap}.wi-steam__section[data-astro-cid-2qupxtzr]{margin-bottom:var(--space-2xl)}.wi-steam__section-title[data-astro-cid-2qupxtzr]{font-size:var(--text-xl);font-weight:700;color:var(--ink);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:2px solid var(--accent);display:inline-block}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]{display:flex;gap:var(--space-md);overflow-x:auto;padding-bottom:var(--space-sm);scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]::-webkit-scrollbar{height:6px}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]::-webkit-scrollbar-track{background:var(--bg);border-radius:3px}.wi-steam__recent-scroll[data-astro-cid-2qupxtzr]::-webkit-scrollbar-thumb{background:var(--rule);border-radius:3px}.wi-steam__recent-card[data-astro-cid-2qupxtzr]{position:relative;display:flex;flex-direction:column;min-width:220px;max-width:260px;background:var(--bg-raised);border:1px solid var(--rule);border-radius:12px;overflow:hidden;scroll-snap-align:start;flex-shrink:0;transition:transform var(--duration-normal) var(--ease-out-expo),box-shadow var(--duration-normal) var(--ease-out-expo),border-color var(--duration-normal) var(--ease-out-expo)}.wi-steam__recent-card[data-astro-cid-2qupxtzr]:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--accent)}.wi-steam__recent-cover[data-astro-cid-2qupxtzr]{width:100%;overflow:hidden}.wi-steam__recent-img[data-astro-cid-2qupxtzr]{width:100%;aspect-ratio:460 / 215;object-fit:cover}.wi-steam__recent-body[data-astro-cid-2qupxtzr]{display:flex;flex-direction:column;gap:4px;padding:vLine truncated
|
||||
-52
@@ -1,52 +0,0 @@
|
||||
{
|
||||
"hash": "0ed7ed0d",
|
||||
"configHash": "c707d7b6",
|
||||
"lockfileHash": "4f412479",
|
||||
"browserHash": "3aefc297",
|
||||
"optimized": {
|
||||
"vue": {
|
||||
"src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
||||
"file": "vue.js",
|
||||
"fileHash": "9027419d",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > @vue/devtools-api": {
|
||||
"src": "../../../node_modules/@vue/devtools-api/dist/index.js",
|
||||
"file": "vitepress___@vue_devtools-api.js",
|
||||
"fileHash": "3cd67bf3",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > @vueuse/core": {
|
||||
"src": "../../../node_modules/@vueuse/core/index.mjs",
|
||||
"file": "vitepress___@vueuse_core.js",
|
||||
"fileHash": "cda81787",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > @vueuse/integrations/useFocusTrap": {
|
||||
"src": "../../../node_modules/@vueuse/integrations/useFocusTrap.mjs",
|
||||
"file": "vitepress___@vueuse_integrations_useFocusTrap.js",
|
||||
"fileHash": "7b4ec920",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > mark.js/src/vanilla.js": {
|
||||
"src": "../../../node_modules/mark.js/src/vanilla.js",
|
||||
"file": "vitepress___mark__js_src_vanilla__js.js",
|
||||
"fileHash": "3efbcd2b",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > minisearch": {
|
||||
"src": "../../../node_modules/minisearch/dist/es/index.js",
|
||||
"file": "vitepress___minisearch.js",
|
||||
"fileHash": "8ca06377",
|
||||
"needsInterop": false
|
||||
}
|
||||
},
|
||||
"chunks": {
|
||||
"chunk-4USRTV5H": {
|
||||
"file": "chunk-4USRTV5H.js"
|
||||
},
|
||||
"chunk-XY26LBYQ": {
|
||||
"file": "chunk-XY26LBYQ.js"
|
||||
}
|
||||
}
|
||||
}
|
||||
-9719
File diff suppressed because it is too large.
Load diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../../../node_modules/@vueuse/shared/index.mjs", "../../../node_modules/@vueuse/core/index.mjs"],
|
||||
"sourcesContent": ["import { shallowRef, watchEffect, readonly, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, hasInjectionContext, inject, provide, ref, isRef, unref, toValue as toValue$1, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = shallowRef(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get(v);\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const clear = () => {\n fns.clear();\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger,\n clear\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null && !hasInjectionContext())\n throw new Error(\"injectLocal must be called in setup\");\n if (instance && localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const defaultValue = options == null ? void 0 : options.defaultValue;\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key, defaultValue);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createRef(value, deep) {\n if (deep === true) {\n return ref(value);\n } else {\n return shallowRef(value);\n }\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!scope) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }Line truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["get", "set", "ref", "keys", "invoke", "toRef", "toRefs", "toValue", "window", "document", "timestamp", "navigator", "events", "getValue", "ref", "defaults", "toRef", "set", "onUpdated", "preventDefault", "toRefs", "now", "keys", "get", "isReadonly"]
|
||||
}
|
||||
-13035
File diff suppressed because it is too large.
Load diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../../../node_modules/@vue/shared/dist/shared.esm-bundler.js", "../../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js", "../../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js", "../../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js", "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js"],
|
||||
"sourcesContent": ["/**\n* @vue/shared v3.5.34\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMLine truncated
|
||||
"mappings": ";AAMA,SAAS,QAAQ,KAAK;AACpB,QAAMA,OAAsB,uBAAO,OAAO,IAAI;AAC9C,aAAW,OAAO,IAAI,MAAM,GAAG,EAAG,CAAAA,KAAI,GAAG,IAAI;AAC7C,SAAO,CAAC,QAAQ,OAAOA;AACzB;AAEA,IAAM,YAAY,OAA4C,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC;AACnF,IAAM,YAAY,OAA4C,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC;AACnF,IAAM,OAAO,MAAM;AACnB;AACA,IAAM,KAAK,MAAM;AACjB,IAAM,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,MAAM,OAAO,IAAI,WAAW,CAAC,MAAM;AAAA,CACxE,IAAI,WAAW,CAAC,IAAI,OAAO,IAAI,WAAW,CAAC,IAAI;AAChD,IAAM,kBAAkB,CAAC,QAAQ,IAAI,WAAW,WAAW;AAC3D,IAAM,SAAS,OAAO;AACtB,IAAM,SAAS,CAAC,KAAK,OAAO;AAC1B,QAAM,IAAI,IAAI,QAAQ,EAAE;AACxB,MAAI,IAAI,IAAI;AACV,QAAI,OAAO,GAAG,CAAC;AAAA,EACjB;AACF;AACA,IAAM,iBAAiB,OAAO,UAAU;AACxC,IAAM,SAAS,CAAC,KAAK,QAAQ,eAAe,KAAK,KAAK,GAAG;AACzD,IAAM,UAAU,MAAM;AACtB,IAAM,QAAQ,CAAC,QAAQ,aAAa,GAAG,MAAM;AAC7C,IAAM,QAAQ,CAAC,QAAQ,aAAa,GAAG,MAAM;AAC7C,IAAM,SAAS,CAAC,QAAQ,aAAa,GAAG,MAAM;AAC9C,IAAM,WAAW,CAAC,QAAQ,aAAa,GAAG,MAAM;AAChD,IAAM,aAAa,CAAC,QAAQ,OAAO,QAAQ;AAC3C,IAAM,WAAW,CAAC,QAAQ,OAAO,QAAQ;AACzC,IAAM,WAAW,CAAC,QAAQ,OAAO,QAAQ;AACzC,IAAM,WAAW,CAAC,QAAQ,QAAQ,QAAQ,OAAO,QAAQ;AACzD,IAAM,YAAY,CAAC,QAAQ;AACzB,UAAQ,SAAS,GAAG,KAAK,WAAW,GAAG,MAAM,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,KAAK;AAC3F;AACA,IAAM,iBAAiB,OAAO,UAAU;AACxC,IAAM,eAAe,CAAC,UAAU,eAAe,KAAK,KAAK;AACzD,IAAM,YAAY,CAAC,UAAU;AAC3B,SAAO,aAAa,KAAK,EAAE,MAAM,GAAG,EAAE;AACxC;AACA,IAAM,gBAAgB,CAAC,QAAQ,aAAa,GAAG,MAAM;AACrD,IAAM,eAAe,CAAC,QAAQ,SAAS,GAAG,KAAK,QAAQ,SAAS,IAAI,CAAC,MAAM,OAAO,KAAK,SAAS,KAAK,EAAE,MAAM;AAC7G,IAAM,iBAAiC;AAAA;AAAA,EAErC;AACF;AACA,IAAM,qBAAqC;AAAA,EACzC;AACF;AACA,IAAM,sBAAsB,CAAC,OAAO;AAClC,QAAM,QAAwB,uBAAO,OAAO,IAAI;AAChD,SAAQ,CAAC,QAAQ;AACf,UAAM,MAAM,MAAM,GAAG;AACrB,WAAO,QAAQ,MAAM,GAAG,IAAI,GAAG,GAAG;AAAA,EACpC;AACF;AACA,IAAM,aAAa;AACnB,IAAM,WAAW;AAAA,EACf,CAAC,QAAQ;AACP,WAAO,IAAI,QAAQ,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC;AAAA,EAChE;AACF;AACA,IAAM,cAAc;AACpB,IAAM,YAAY;AAAA,EAChB,CAAC,QAAQ,IAAI,QAAQ,aAAa,KAAK,EAAE,YAAY;AACvD;AACA,IAAM,aAAa,oBAAoB,CAAC,QAAQ;AAC9C,SAAO,IAAI,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC;AAClD,CAAC;AACD,IAAM,eAAe;AAAA,EACnB,CAAC,QAAQ;AACP,UAAM,IAAI,MAAM,KAAK,WAAW,GAAG,CAAC,KAAK;AACzC,WAAO;AAAA,EACT;AACF;AACA,IAAM,aAAa,CAAC,OAAO,aAAa,CAAC,OAAO,GAAG,OAAO,QAAQ;AAClE,IAAM,iBAAiB,CAAC,QAAQ,QAAQ;AACtC,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,QAAI,CAAC,EAAE,GAAG,GAAG;AAAA,EACf;AACF;AACA,IAAM,MAAM,CAAC,KAAK,KAAK,OAAO,WAAW,UAAU;AACjD,SAAO,eAAe,KAAK,KAAK;AAAA,IAC9B,cAAc;AAAA,IACd,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EACF,CAAC;AACH;AACA,IAAM,gBAAgB,CAAC,QAAQ;AAC7B,QAAM,IAAI,WAAW,GAAG;AACxB,SAAO,MAAM,CAAC,IAAI,MAAM;AAC1B;AACA,IAAM,WAAW,CAAC,QAAQ;AACxB,QAAM,IAAI,SAAS,GAAG,IAAI,OAAO,GAAG,IAAI;AACxC,SAAO,MAAM,CAAC,IAAI,MAAM;AAC1B;AACA,IAAI;AACJ,IAAM,gBAAgB,MAAM;AAC1B,SAAO,gBAAgB,cAAc,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO,OAAO,WAAW,cAAc,SAAS,OAAO,WAAW,cAAc,SAAS,CAAC;AAChN;AAkGA,IAAM,kBAAkB;AACxB,IAAM,oBAAoC,QAAQ,eAAe;AA6CjE,SAAS,eAAe,OAAO;AAC7B,MAAI,QAAQ,KAAK,GAAG;AAClB,UAAM,MAAM,CAAC;AACb,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,aAAa,SAAS,IAAI,IAAI,iBAAiB,IAAI,IAAI,eAAe,IAAI;AAChF,UAAI,YAAY;AACd,mBAAW,OAAO,YAAY;AAC5B,cAAI,GAAG,IAAI,WAAW,GAAG;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT,WAAW,SAAS,KAAK,KAAK,SAAS,KAAK,GAAG;AAC7C,WAAO;AAAA,EACT;AACF;AACA,IAAM,kBAAkB;AACxB,IAAM,sBAAsB;AAC5B,IAAM,iBAAiB;AACvB,SAAS,iBAAiB,SAAS;AACjC,QAAM,MAAM,CAAC;AACb,UAAQ,QAAQ,gBAAgB,EAAE,EAAE,MAAM,eAAe,EAAE,QAAQ,CAAC,SAAS;AAC3E,QAAI,MAAM;AACR,YAAM,MAAM,KAAK,MAAM,mBAAmB;AAC1C,UAAI,SAAS,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK;AAAA,IACtD;AAAA,EACF,CAAC;AACD,SAAO;AACT;AACA,SAAS,eAAe,QAAQ;AAC9B,MAAI,CAAC,OAAQ,QAAO;AACpB,MAAI,SAAS,MAAM,EAAG,QAAO;AAC7B,MAAI,MAAM;AACV,aAAW,OAAO,QAAQ;AACxB,UAAM,QAAQ,OAAO,GAAG;AACxB,QAAI,SAAS,KAAK,KAAK,OAAO,UAAU,UAAU;AAChD,YAAM,gBAAgB,IAAI,WAAW,IAAI,IAAI,MAAM,UAAU,GAAG;AAChE,aAAO,GAAG,aAAa,IAAI,KAAK;AAAA,IAClC;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,eAAe,OAAO;AAC7B,MAAI,MAAM;AACV,MAAI,SAAS,KAAK,GAAG;AACnB,UAAM;AAAA,EACR,WAAW,QAAQ,KAAK,GAAG;AACzB,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAM,aAAa,eAAe,MAAM,CAAC,CAAC;AAC1C,UAAI,YAAY;AACd,eAAO,aAAa;AAAA,MACtB;AAAA,IACF;AAAA,EACF,WAAW,SAAS,KAAK,GAAG;AAC1B,eAAW,QAAQ,OAAO;AACxB,UAAI,MAAM,IAAI,GAAG;AACf,eAAO,OAAO;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AACA,SAAO,IAAI,KAAK;AAClB;AACA,SAAS,eAAe,OAAO;AAC7B,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,EAAE,OAAO,OAAO,MAAM,IAAI;AAC9B,MAAI,SAAS,CAAC,SAAS,KAAK,GAAG;AAC7B,UAAM,QAAQ,eAAe,KAAK;AAAA,EACpC;AACA,MAAI,OAAO;AACT,UAAM,QAAQ,eAAe,KAAK;AAAA,EACpC;AACA,SAAO;AACT;AAEA,IAAM,YAAY;AAClB,IAAM,WAAW;AACjB,IAAM,YAAY;AAClB,IAAM,YAAY;AAClB,IAAM,YAA4B,QAAQ,SAAS;AACnD,IAAM,WAA2B,QAAQ,QAAQ;AACjD,IAAM,cAA8B,QAAQ,SAAS;AACrD,IAAM,YAA4B,QAAQ,SAAS;AAEnD,IAAM,sBAAsB;AAC5B,IAAM,uBAAuC,QAAQ,mBAAmB;AACxE,IAAM,gBAAgC;AAAA,EACpC,sBAAsB;AACxB;AACA,SAAS,mBAAmB,OAAO;AACjC,SAAO,CAAC,CAAC,SAAS,UAAU;AAC9B;AAmBA,IAAM,kBAAkC;AAAA,EACtC;AACF;AACA,IAAM,iBAAiC;AAAA,EACrC;AACF;AACA,IAAM,oBAAoC;AAAA,EACxC;AACF;AACA,SAAS,sBAAsB,OAAO;AACpC,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACT;AACA,QAAM,OAAO,OAAO;AACpB,SAAO,SAAS,YAAY,SAAS,YAAY,SAAS;AAC5D;AA6CA,IAAM,4BAA4B;AAClC,SAAS,qBAAqB,KAAK,cAAc;AAC/C,SAAO,ILine truncated
|
||||
"names": ["map", "computed", "computed", "self", "hasOwnProperty", "isRef", "readonly", "effect", "isRef", "isRef", "p", "version", "effect", "watch", "callHook", "remove", "ref", "ref2", "patchProp", "hydrate", "hasWarned", "resolve", "render", "computed", "h", "createApp", "track", "trigger", "isModelListener", "emit", "render2", "remove2", "warn", "warn", "callHook", "resolve", "watch", "def", "enterCbKey", "compile", "warn"]
|
||||
}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../../../node_modules/@vue/devtools-shared/dist/index.js", "../../../node_modules/perfect-debounce/dist/index.mjs", "../../../node_modules/hookable/dist/index.mjs", "../../../node_modules/birpc/dist/index.mjs", "../../../node_modules/@vue/devtools-kit/dist/index.js"],
|
||||
"sourcesContent": ["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target2) => (target2 = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target2, \"default\", { value: mod, enumerable: true }) : target2,\n mod\n));\n\n// ../../node_modules/.pnpm/tsup@8.4.0_@microsoft+api-extractor@7.51.1_@types+node@22.13.14__jiti@2.4.2_postcss@8.5_96eb05a9d65343021e53791dd83f3773/node_modules/tsup/assets/esm_shims.js\nvar init_esm_shims = __esm({\n \"../../node_modules/.pnpm/tsup@8.4.0_@microsoft+api-extractor@7.51.1_@types+node@22.13.14__jiti@2.4.2_postcss@8.5_96eb05a9d65343021e53791dd83f3773/node_modules/tsup/assets/esm_shims.js\"() {\n \"use strict\";\n }\n});\n\n// ../../node_modules/.pnpm/rfdc@1.4.1/node_modules/rfdc/index.js\nvar require_rfdc = __commonJS({\n \"../../node_modules/.pnpm/rfdc@1.4.1/node_modules/rfdc/index.js\"(exports, module) {\n \"use strict\";\n init_esm_shims();\n module.exports = rfdc2;\n function copyBuffer(cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur);\n }\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length);\n }\n function rfdc2(opts) {\n opts = opts || {};\n if (opts.circles) return rfdcCircles(opts);\n const constructorHandlers = /* @__PURE__ */ new Map();\n constructorHandlers.set(Date, (o) => new Date(o));\n constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)));\n constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)));\n if (opts.constructorHandlers) {\n for (const handler2 of opts.constructorHandlers) {\n constructorHandlers.set(handler2[0], handler2[1]);\n }\n }\n let handler = null;\n return opts.proto ? cloneProto : clone;\n function cloneArray(a, fn) {\n const keys = Object.keys(a);\n const a2 = new Array(keys.length);\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n const cur = a[k];\n if (typeof cur !== \"object\" || cur === null) {\n a2[k] = cur;\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n a2[k] = handler(cur, fn);\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur);\n } else {\n a2[k] = fn(cur);\n }\n }\n return a2;\n }\n function clone(o) {\n if (typeof o !== \"object\" || o === null) return o;\n if (Array.isArray(o)) return cloneArray(o, clone);\n if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {\n return handler(o, clone);\n }\n const o2 = {};\n for (const k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue;\n const cur = o[k];\n if (typeof cur !== \"object\" || cur === null) {\n o2[k] = cur;\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n o2[k] = handler(cur, clone);\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur);\n } else {\n o2[k] = clone(cur);\n }\n }\n return o2;\n }\n function cloneProto(o) {\n if (typeof o !== \"object\" || o === null) return o;\n if (Array.isArray(o)) return cloneArray(o, cloneProto);\n if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {\n return handler(o, cloneProto);\n }\n const o2 = {};\n for (const k in o) {\n const cur = o[k];\n if (tLine truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["hooks", "hooks", "hook", "hook", "hooks", "clearTimeout", "setTimeout", "__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__esm", "__commonJS", "__copyProps", "__toESM", "init_esm_shims", "init_esm_shims", "init_esm_shims", "_a", "init_esm_shims", "init_esm_shims", "init_esm_shims", "_a2", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "__toESM", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "init_esm_shims", "_a22", "init_esm_shims", "init_esm_shims"]
|
||||
}
|
||||
@@ -1,583 +0,0 @@
|
||||
import {
|
||||
DefaultMagicKeysAliasMap,
|
||||
StorageSerializers,
|
||||
TransitionPresets,
|
||||
assert,
|
||||
breakpointsAntDesign,
|
||||
breakpointsBootstrapV5,
|
||||
breakpointsElement,
|
||||
breakpointsMasterCss,
|
||||
breakpointsPrimeFlex,
|
||||
breakpointsQuasar,
|
||||
breakpointsSematic,
|
||||
breakpointsTailwind,
|
||||
breakpointsVuetify,
|
||||
breakpointsVuetifyV2,
|
||||
breakpointsVuetifyV3,
|
||||
bypassFilter,
|
||||
camelize,
|
||||
clamp,
|
||||
cloneFnJSON,
|
||||
computedAsync,
|
||||
computedEager,
|
||||
computedInject,
|
||||
computedWithControl,
|
||||
containsProp,
|
||||
controlledRef,
|
||||
createEventHook,
|
||||
createFetch,
|
||||
createFilterWrapper,
|
||||
createGlobalState,
|
||||
createInjectionState,
|
||||
createRef,
|
||||
createReusableTemplate,
|
||||
createSharedComposable,
|
||||
createSingletonPromise,
|
||||
createTemplatePromise,
|
||||
createUnrefFn,
|
||||
customStorageEventName,
|
||||
debounceFilter,
|
||||
defaultDocument,
|
||||
defaultLocation,
|
||||
defaultNavigator,
|
||||
defaultWindow,
|
||||
executeTransition,
|
||||
extendRef,
|
||||
formatDate,
|
||||
formatTimeAgo,
|
||||
get,
|
||||
getLifeCycleTarget,
|
||||
getSSRHandler,
|
||||
hasOwn,
|
||||
hyphenate,
|
||||
identity,
|
||||
increaseWithUnit,
|
||||
injectLocal,
|
||||
invoke,
|
||||
isClient,
|
||||
isDef,
|
||||
isDefined,
|
||||
isIOS,
|
||||
isObject,
|
||||
isWorker,
|
||||
makeDestructurable,
|
||||
mapGamepadToXbox360Controller,
|
||||
noop,
|
||||
normalizeDate,
|
||||
notNullish,
|
||||
now,
|
||||
objectEntries,
|
||||
objectOmit,
|
||||
objectPick,
|
||||
onClickOutside,
|
||||
onElementRemoval,
|
||||
onKeyDown,
|
||||
onKeyPressed,
|
||||
onKeyStroke,
|
||||
onKeyUp,
|
||||
onLongPress,
|
||||
onStartTyping,
|
||||
pausableFilter,
|
||||
promiseTimeout,
|
||||
provideLocal,
|
||||
provideSSRWidth,
|
||||
pxValue,
|
||||
rand,
|
||||
reactify,
|
||||
reactifyObject,
|
||||
reactiveComputed,
|
||||
reactiveOmit,
|
||||
reactivePick,
|
||||
refAutoReset,
|
||||
refDebounced,
|
||||
refDefault,
|
||||
refThrottled,
|
||||
refWithControl,
|
||||
resolveRef,
|
||||
resolveUnref,
|
||||
set,
|
||||
setSSRHandler,
|
||||
syncRef,
|
||||
syncRefs,
|
||||
templateRef,
|
||||
throttleFilter,
|
||||
timestamp,
|
||||
toArray,
|
||||
toReactive,
|
||||
toRef,
|
||||
toRefs,
|
||||
toValue,
|
||||
tryOnBeforeMount,
|
||||
tryOnBeforeUnmount,
|
||||
tryOnMounted,
|
||||
tryOnScopeDispose,
|
||||
tryOnUnmounted,
|
||||
unrefElement,
|
||||
until,
|
||||
useActiveElement,
|
||||
useAnimate,
|
||||
useArrayDifference,
|
||||
useArrayEvery,
|
||||
useArrayFilter,
|
||||
useArrayFind,
|
||||
useArrayFindIndex,
|
||||
useArrayFindLast,
|
||||
useArrayIncludes,
|
||||
useArrayJoin,
|
||||
useArrayMap,
|
||||
useArrayReduce,
|
||||
useArraySome,
|
||||
useArrayUnique,
|
||||
useAsyncQueue,
|
||||
useAsyncState,
|
||||
useBase64,
|
||||
useBattery,
|
||||
useBluetooth,
|
||||
useBreakpoints,
|
||||
useBroadcastChannel,
|
||||
useBrowserLocation,
|
||||
useCached,
|
||||
useClipboard,
|
||||
useClipboardItems,
|
||||
useCloned,
|
||||
useColorMode,
|
||||
useConfirmDialog,
|
||||
useCountdown,
|
||||
useCounter,
|
||||
useCssVar,
|
||||
useCurrentElement,
|
||||
useCycleList,
|
||||
useDark,
|
||||
useDateFormat,
|
||||
useDebounceFn,
|
||||
useDebouncedRefHistory,
|
||||
useDeviceMotion,
|
||||
useDeviceOrientation,
|
||||
useDevicePixelRatio,
|
||||
useDevicesList,
|
||||
useDisplayMedia,
|
||||
useDocumentVisibility,
|
||||
useDraggable,
|
||||
useDropZone,
|
||||
useElementBounding,
|
||||
useElementByPoint,
|
||||
useElementHover,
|
||||
useElementSize,
|
||||
useElementVisibility,
|
||||
useEventBus,
|
||||
useEventListener,
|
||||
useEventSource,
|
||||
useEyeDropper,
|
||||
useFavicon,
|
||||
useFetch,
|
||||
useFileDialog,
|
||||
useFileSystemAccess,
|
||||
useFocus,
|
||||
useFocusWithin,
|
||||
useFps,
|
||||
useFullscreen,
|
||||
useGamepad,
|
||||
useGeolocation,
|
||||
useIdle,
|
||||
useImage,
|
||||
useInfiniteScroll,
|
||||
useIntersectionObserver,
|
||||
useInterval,
|
||||
useIntervalFn,
|
||||
useKeyModifier,
|
||||
useLastChanged,
|
||||
useLocalStorage,
|
||||
useMagicKeys,
|
||||
useManualRefHistory,
|
||||
useMediaControls,
|
||||
useMediaQuery,
|
||||
useMemoize,
|
||||
useMemory,
|
||||
useMounted,
|
||||
useMouse,
|
||||
useMouseInElement,
|
||||
useMousePressed,
|
||||
useMutationObserver,
|
||||
useNavigatorLanguage,
|
||||
useNetwork,
|
||||
useNow,
|
||||
useObjectUrl,
|
||||
useOffsetPagination,
|
||||
useOnline,
|
||||
usePageLeave,
|
||||
useParallax,
|
||||
useParentElement,
|
||||
usePerformanceObserver,
|
||||
usePermission,
|
||||
usePointer,
|
||||
usePointerLock,
|
||||
usePointerSwipe,
|
||||
usePreferredColorScheme,
|
||||
usePreferredContrast,
|
||||
usePreferredDark,
|
||||
usePreferredLanguages,
|
||||
usePreferredReducedMotion,
|
||||
usePreferredReducedTransparency,
|
||||
usePrevious,
|
||||
useRafFn,
|
||||
useRefHistory,
|
||||
useResizeObserver,
|
||||
useSSRWidth,
|
||||
useScreenOrientation,
|
||||
useScreenSafeArea,
|
||||
useScriptTag,
|
||||
useScroll,
|
||||
useScrollLock,
|
||||
useSessionStorage,
|
||||
useShare,
|
||||
useSorted,
|
||||
useSpeechRecognition,
|
||||
useSpeechSynthesis,
|
||||
useStepper,
|
||||
useStorage,
|
||||
useStorageAsync,
|
||||
useStyleTag,
|
||||
useSupported,
|
||||
useSwipe,
|
||||
useTemplateRefsList,
|
||||
useTextDirection,
|
||||
useTextSelection,
|
||||
useTextareaAutosize,
|
||||
useThrottleFn,
|
||||
useThrottledRefHistory,
|
||||
useTimeAgo,
|
||||
useTimeout,
|
||||
useTimeoutFn,
|
||||
useTimeoutPoll,
|
||||
useTimestamp,
|
||||
useTitle,
|
||||
useToNumber,
|
||||
useToString,
|
||||
useToggle,
|
||||
useTransition,
|
||||
useUrlSearchParams,
|
||||
useUserMedia,
|
||||
useVModel,
|
||||
useVModels,
|
||||
useVibrate,
|
||||
useVirtualList,
|
||||
useWakeLock,
|
||||
useWebNotification,
|
||||
useWebSocket,
|
||||
useWebWorker,
|
||||
useWebWorkerFn,
|
||||
useWindowFocus,
|
||||
useWindowScroll,
|
||||
useWindowSize,
|
||||
watchArray,
|
||||
watchAtMost,
|
||||
watchDebounced,
|
||||
watchDeep,
|
||||
watchIgnorable,
|
||||
watchImmediate,
|
||||
watchOnce,
|
||||
watchPausable,
|
||||
watchThrottled,
|
||||
watchTriggerable,
|
||||
watchWithFilter,
|
||||
whenever
|
||||
} from "./chunk-4USRTV5H.js";
|
||||
import "./chunk-XY26LBYQ.js";
|
||||
export {
|
||||
DefaultMagicKeysAliasMap,
|
||||
StorageSerializers,
|
||||
TransitionPresets,
|
||||
assert,
|
||||
computedAsync as asyncComputed,
|
||||
refAutoReset as autoResetRef,
|
||||
breakpointsAntDesign,
|
||||
breakpointsBootstrapV5,
|
||||
breakpointsElement,
|
||||
breakpointsMasterCss,
|
||||
breakpointsPrimeFlex,
|
||||
breakpointsQuasar,
|
||||
breakpointsSematic,
|
||||
breakpointsTailwind,
|
||||
breakpointsVuetify,
|
||||
breakpointsVuetifyV2,
|
||||
breakpointsVuetifyV3,
|
||||
bypassFilter,
|
||||
camelize,
|
||||
clamp,
|
||||
cloneFnJSON,
|
||||
computedAsync,
|
||||
computedEager,
|
||||
computedInject,
|
||||
computedWithControl,
|
||||
containsProp,
|
||||
computedWithControl as controlledComputed,
|
||||
controlledRef,
|
||||
createEventHook,
|
||||
createFetch,
|
||||
createFilterWrapper,
|
||||
createGlobalState,
|
||||
createInjectionState,
|
||||
reactify as createReactiveFn,
|
||||
createRef,
|
||||
createReusableTemplate,
|
||||
createSharedComposable,
|
||||
createSingletonPromise,
|
||||
createTemplatePromise,
|
||||
createUnrefFn,
|
||||
customStorageEventName,
|
||||
debounceFilter,
|
||||
refDebounced as debouncedRef,
|
||||
watchDebounced as debouncedWatch,
|
||||
defaultDocument,
|
||||
defaultLocation,
|
||||
defaultNavigator,
|
||||
defaultWindow,
|
||||
computedEager as eagerComputed,
|
||||
executeTransition,
|
||||
extendRef,
|
||||
formatDate,
|
||||
formatTimeAgo,
|
||||
get,
|
||||
getLifeCycleTarget,
|
||||
getSSRHandler,
|
||||
hasOwn,
|
||||
hyphenate,
|
||||
identity,
|
||||
watchIgnorable as ignorableWatch,
|
||||
increaseWithUnit,
|
||||
injectLocal,
|
||||
invoke,
|
||||
isClient,
|
||||
isDef,
|
||||
isDefined,
|
||||
isIOS,
|
||||
isObject,
|
||||
isWorker,
|
||||
makeDestructurable,
|
||||
mapGamepadToXbox360Controller,
|
||||
noop,
|
||||
normalizeDate,
|
||||
notNullish,
|
||||
now,
|
||||
objectEntries,
|
||||
objectOmit,
|
||||
objectPick,
|
||||
onClickOutside,
|
||||
onElementRemoval,
|
||||
onKeyDown,
|
||||
onKeyPressed,
|
||||
onKeyStroke,
|
||||
onKeyUp,
|
||||
onLongPress,
|
||||
onStartTyping,
|
||||
pausableFilter,
|
||||
watchPausable as pausableWatch,
|
||||
promiseTimeout,
|
||||
provideLocal,
|
||||
provideSSRWidth,
|
||||
pxValue,
|
||||
rand,
|
||||
reactify,
|
||||
reactifyObject,
|
||||
reactiveComputed,
|
||||
reactiveOmit,
|
||||
reactivePick,
|
||||
refAutoReset,
|
||||
refDebounced,
|
||||
refDefault,
|
||||
refThrottled,
|
||||
refWithControl,
|
||||
resolveRef,
|
||||
resolveUnref,
|
||||
set,
|
||||
setSSRHandler,
|
||||
syncRef,
|
||||
syncRefs,
|
||||
templateRef,
|
||||
throttleFilter,
|
||||
refThrottled as throttledRef,
|
||||
watchThrottled as throttledWatch,
|
||||
timestamp,
|
||||
toArray,
|
||||
toReactive,
|
||||
toRef,
|
||||
toRefs,
|
||||
toValue,
|
||||
tryOnBeforeMount,
|
||||
tryOnBeforeUnmount,
|
||||
tryOnMounted,
|
||||
tryOnScopeDispose,
|
||||
tryOnUnmounted,
|
||||
unrefElement,
|
||||
until,
|
||||
useActiveElement,
|
||||
useAnimate,
|
||||
useArrayDifference,
|
||||
useArrayEvery,
|
||||
useArrayFilter,
|
||||
useArrayFind,
|
||||
useArrayFindIndex,
|
||||
useArrayFindLast,
|
||||
useArrayIncludes,
|
||||
useArrayJoin,
|
||||
useArrayMap,
|
||||
useArrayReduce,
|
||||
useArraySome,
|
||||
useArrayUnique,
|
||||
useAsyncQueue,
|
||||
useAsyncState,
|
||||
useBase64,
|
||||
useBattery,
|
||||
useBluetooth,
|
||||
useBreakpoints,
|
||||
useBroadcastChannel,
|
||||
useBrowserLocation,
|
||||
useCached,
|
||||
useClipboard,
|
||||
useClipboardItems,
|
||||
useCloned,
|
||||
useColorMode,
|
||||
useConfirmDialog,
|
||||
useCountdown,
|
||||
useCounter,
|
||||
useCssVar,
|
||||
useCurrentElement,
|
||||
useCycleList,
|
||||
useDark,
|
||||
useDateFormat,
|
||||
refDebounced as useDebounce,
|
||||
useDebounceFn,
|
||||
useDebouncedRefHistory,
|
||||
useDeviceMotion,
|
||||
useDeviceOrientation,
|
||||
useDevicePixelRatio,
|
||||
useDevicesList,
|
||||
useDisplayMedia,
|
||||
useDocumentVisibility,
|
||||
useDraggable,
|
||||
useDropZone,
|
||||
useElementBounding,
|
||||
useElementByPoint,
|
||||
useElementHover,
|
||||
useElementSize,
|
||||
useElementVisibility,
|
||||
useEventBus,
|
||||
useEventListener,
|
||||
useEventSource,
|
||||
useEyeDropper,
|
||||
useFavicon,
|
||||
useFetch,
|
||||
useFileDialog,
|
||||
useFileSystemAccess,
|
||||
useFocus,
|
||||
useFocusWithin,
|
||||
useFps,
|
||||
useFullscreen,
|
||||
useGamepad,
|
||||
useGeolocation,
|
||||
useIdle,
|
||||
useImage,
|
||||
useInfiniteScroll,
|
||||
useIntersectionObserver,
|
||||
useInterval,
|
||||
useIntervalFn,
|
||||
useKeyModifier,
|
||||
useLastChanged,
|
||||
useLocalStorage,
|
||||
useMagicKeys,
|
||||
useManualRefHistory,
|
||||
useMediaControls,
|
||||
useMediaQuery,
|
||||
useMemoize,
|
||||
useMemory,
|
||||
useMounted,
|
||||
useMouse,
|
||||
useMouseInElement,
|
||||
useMousePressed,
|
||||
useMutationObserver,
|
||||
useNavigatorLanguage,
|
||||
useNetwork,
|
||||
useNow,
|
||||
useObjectUrl,
|
||||
useOffsetPagination,
|
||||
useOnline,
|
||||
usePageLeave,
|
||||
useParallax,
|
||||
useParentElement,
|
||||
usePerformanceObserver,
|
||||
usePermission,
|
||||
usePointer,
|
||||
usePointerLock,
|
||||
usePointerSwipe,
|
||||
usePreferredColorScheme,
|
||||
usePreferredContrast,
|
||||
usePreferredDark,
|
||||
usePreferredLanguages,
|
||||
usePreferredReducedMotion,
|
||||
usePreferredReducedTransparency,
|
||||
usePrevious,
|
||||
useRafFn,
|
||||
useRefHistory,
|
||||
useResizeObserver,
|
||||
useSSRWidth,
|
||||
useScreenOrientation,
|
||||
useScreenSafeArea,
|
||||
useScriptTag,
|
||||
useScroll,
|
||||
useScrollLock,
|
||||
useSessionStorage,
|
||||
useShare,
|
||||
useSorted,
|
||||
useSpeechRecognition,
|
||||
useSpeechSynthesis,
|
||||
useStepper,
|
||||
useStorage,
|
||||
useStorageAsync,
|
||||
useStyleTag,
|
||||
useSupported,
|
||||
useSwipe,
|
||||
useTemplateRefsList,
|
||||
useTextDirection,
|
||||
useTextSelection,
|
||||
useTextareaAutosize,
|
||||
refThrottled as useThrottle,
|
||||
useThrottleFn,
|
||||
useThrottledRefHistory,
|
||||
useTimeAgo,
|
||||
useTimeout,
|
||||
useTimeoutFn,
|
||||
useTimeoutPoll,
|
||||
useTimestamp,
|
||||
useTitle,
|
||||
useToNumber,
|
||||
useToString,
|
||||
useToggle,
|
||||
useTransition,
|
||||
useUrlSearchParams,
|
||||
useUserMedia,
|
||||
useVModel,
|
||||
useVModels,
|
||||
useVibrate,
|
||||
useVirtualList,
|
||||
useWakeLock,
|
||||
useWebNotification,
|
||||
useWebSocket,
|
||||
useWebWorker,
|
||||
useWebWorkerFn,
|
||||
useWindowFocus,
|
||||
useWindowScroll,
|
||||
useWindowSize,
|
||||
watchArray,
|
||||
watchAtMost,
|
||||
watchDebounced,
|
||||
watchDeep,
|
||||
watchIgnorable,
|
||||
watchImmediate,
|
||||
watchOnce,
|
||||
watchPausable,
|
||||
watchThrottled,
|
||||
watchTriggerable,
|
||||
watchWithFilter,
|
||||
whenever
|
||||
};
|
||||
//# sourceMappingURL=vitepress___@vueuse_core.js.map
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
||||
-1352
File diff suppressed because it is too large.
Load diff
-7
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../../../node_modules/tabbable/src/index.js", "../../../node_modules/focus-trap/index.js", "../../../node_modules/@vueuse/integrations/useFocusTrap.mjs"],
|
||||
"sourcesContent": ["// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\nconst candidateSelectors = [\n 'input:not([inert]):not([inert] *)',\n 'select:not([inert]):not([inert] *)',\n 'textarea:not([inert]):not([inert] *)',\n 'a[href]:not([inert]):not([inert] *)',\n 'button:not([inert]):not([inert] *)',\n '[tabindex]:not(slot):not([inert]):not([inert] *)',\n 'audio[controls]:not([inert]):not([inert] *)',\n 'video[controls]:not([inert]):not([inert] *)',\n '[contenteditable]:not([contenteditable=\"false\"]):not([inert]):not([inert] *)',\n 'details>summary:first-of-type:not([inert]):not([inert] *)',\n 'details:not([inert]):not([inert] *)',\n];\nconst candidateSelector = /* #__PURE__ */ candidateSelectors.join(',');\n\nconst NoElement = typeof Element === 'undefined';\n\nconst matches = NoElement\n ? function () {}\n : Element.prototype.matches ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n\nconst getRootNode =\n !NoElement && Element.prototype.getRootNode\n ? (element) => element?.getRootNode?.()\n : (element) => element?.ownerDocument;\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Node} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nconst isInert = function (node, lookUp = true) {\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n const inertAtt = node?.getAttribute?.('inert');\n const inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n const result =\n inert ||\n (lookUp &&\n node &&\n // closest does not exist on shadow roots, so we fall back to a manual\n // lookup upward, in case it is not defined.\n (typeof node.closest === 'function'\n ? node.closest('[inert]')\n : isInert(node.parentNode)));\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nconst isContentEditable = function (node) {\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n const attValue = node?.getAttribute?.('contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nconst getCandidates = function (el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert (either by itself or via its parent), then all its children are inert\n if (isInert(el)) {\n return [];\n }\n\n let candidates = Array.prototype.slice.apply(\n el.querySelectorAll(candidateSelector)\n );\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned lLine truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["candidateSelectors", "candidateSelector", "join", "NoElement", "Element", "matches", "prototype", "msMatchesSelector", "webkitMatchesSelector", "getRootNode", "element", "_element$getRootNode", "call", "ownerDocument", "isInert", "node", "lookUp", "_node$getAttribute", "inertAtt", "getAttribute", "inert", "result", "closest", "parentNode", "isContentEditable", "_node$getAttribute2", "attValue", "getCandidates", "el", "includeContainer", "filter", "candidates", "Array", "slice", "apply", "querySelectorAll", "unshift", "getCandidatesIteratively", "elements", "options", "elementsToCheck", "from", "length", "shift", "tagName", "assigned", "assignedElements", "content", "children", "nestedCandidates", "flatten", "push", "scopeParent", "validCandidate", "includes", "shadowRoot", "getShadowRoot", "validShadowRoot", "shadowRootFilter", "hasTabIndex", "isNaN", "parseInt", "getTabIndex", "Error", "tabIndex", "test", "getSortOrderTabIndex", "isScope", "sortOrderedTabbables", "a", "b", "documentOrder", "isInput", "isHiddenInput", "type", "isDetailsWithSummary", "r", "some", "child", "getCheckedRadio", "nodes", "form", "i", "checked", "isTabbableRadio", "name", "radioScope", "queryRadios", "radioSet", "window", "CSS", "escape", "err", "console", "error", "message", "isRadio", "isNonTabbableRadio", "isNodeAttached", "_nodeRoot", "nodeRoot", "nodeRootHost", "host", "attached", "_nodeRootHost", "_nodeRootHost$ownerDo", "_node$ownerDocument", "contains", "_nodeRoot2", "_nodeRootHost2", "_nodeRootHost2$ownerD", "isZeroArea", "_node$getBoundingClie", "getBoundingClientRect", "width", "height", "isHidden", "_ref", "displayCheck", "visible", "checkVisibility", "checkOpacity", "opacityProperty", "contentVisibilityAuto", "visibilityProperty", "checkVisibilityCSS", "getComputedStyle", "visibility", "isDirectSummary", "nodeUnderDetails", "parentElement", "originalNode", "rootNode", "assignedSlot", "getClientRects", "isDisabledFromFieldset", "disabled", "item", "isNodeMatchingSelectorFocusable", "isNodeMatchingSelectorTabbable", "isShadowRootTabbable", "shadowHostNode", "sortByOrder", "regularTabbables", "orderedTabbables", "forEach", "candidateTabindex", "sort", "reduce", "acc", "sortable", "concat", "tabbable", "container", "bind", "focusable", "isTabbable", "focusableCandidateSelector", "isFocusable", "activeFocusTraps", "getActiveTrap", "trapStack", "length", "activateTrap", "trap", "activeTrap", "pauseTrap", "trapIndex", "indexOf", "push", "splice", "deactivateTrap", "unpauseTrap", "_setPausedState", "_isManuallyPaused", "isSelectableInput", "node", "tagName", "toLowerCase", "select", "isEscapeEvent", "e", "key", "keyCode", "isTabEvent", "isKeyForward", "shiftKey", "isKeyBackward", "delay", "fn", "setTimeout", "valueOrHandler", "value", "_len", "arguments", "params", "Array", "_key", "apply", "getActualTarget", "event", "target", "shadowRoot", "composedPath", "internalTrapStack", "createFocusTrap", "elements", "userOptions", "doc", "document", "config", "_objectSpread", "returnFocusOnDeactivate", "escapeDeactivates", "delayInitialFocus", "isolateSubtrees", "state", "containers", "containerGroups", "tabbableGroups", "adjacentElements", "Set", "alreadySilent", "nodeFocusedBeforeActivation", "mostRecentlyFocusedNode", "active", "paused", "manuallyPaused", "delayInitialFocusTimer", "undefined", "recentNavEvent", "getOption", "configOverrideOptions", "optionName", "configOptionName", "findContainerIndex", "element", "findIndex", "_ref", "container", "tabbableNodes", "contains", "includes", "find", "getNodeForOption", "_ref2", "_ref2$hasFallback", "hasFallback", "_ref2$params", "optionValue", "_toConsumableArray", "Error", "concat", "querySelector", "err", "message", "getInitialFocusNode", "isFocusable", "tabbableOptions", "activeElement", "firstTabbableGroup", "firstTabbableNode", "updateTabbableNodes", "map", "tabbable", "focusableNodes", "focusable", "lastTabbableNode", "firstDomTabbableNode", "isTabbable", "lastDomTabbableNode", "slice", "reverse", "posTabIndexesFound", "getTabIndex", "nextTabbableNode", "forward", "nodeIdx", "el", "filter", "group", "g", "getActiveElement", "tryFocus", "focus", "preventScroll", "getReturnFocusNode", "previousActiveElement", "findNextNavNode", "_ref3", "_ref3$isBackward", "isBackward", "destinationNode", "containerIndex", "containerGroup", "startOfGroupIndex", "_ref4", "destinationGroupIndex", "destinationGroup", "lastOfGroupIndex", "_ref5", "checkPointerDown", "clickOutsideDeactivates", "deactivate", "returnFocus", "allowOutsideClick", "preventDefault", "checkFocusIn", "targetContained", "Document", "stopImmediatePropagation", "nextNode", "navAcrossContainers", "mruContainerIdx", "mruTabIdx", "some", "n", "checkKeyNav", "checkTabKey", "checkEscapeKey", "checkClick", "addListeners", "addEventListener", "capture", "passive", "collectAdjacentElements", "_setSubtreeIsolation", "clear", "containerAncestors", "_iterator", "_createForOfIteratorHelper", "_step", "s", "done", "add", "insideLine truncated
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../../../node_modules/mark.js/src/lib/domiterator.js", "../../../node_modules/mark.js/src/lib/mark.js", "../../../node_modules/mark.js/src/vanilla.js"],
|
||||
"sourcesContent": ["/**\n * A NodeIterator with iframes support and a method to check if an element is\n * matching a specified selector\n * @example\n * const iterator = new DOMIterator(\n * document.querySelector(\"#context\"), true\n * );\n * iterator.forEachNode(NodeFilter.SHOW_TEXT, node => {\n * console.log(node);\n * }, node => {\n * if(DOMIterator.matches(node.parentNode, \".ignore\")){\n * return NodeFilter.FILTER_REJECT;\n * } else {\n * return NodeFilter.FILTER_ACCEPT;\n * }\n * }, () => {\n * console.log(\"DONE\");\n * });\n * @todo Outsource into separate repository\n */\nexport default class DOMIterator {\n\n /**\n * @param {HTMLElement|HTMLElement[]|NodeList|string} ctx - The context DOM\n * element, an array of DOM elements, a NodeList or a selector\n * @param {boolean} [iframes=true] - A boolean indicating if iframes should\n * be handled\n * @param {string[]} [exclude=[]] - An array containing exclusion selectors\n * for iframes\n * @param {number} [iframesTimeout=5000] - A number indicating the ms to\n * wait before an iframe should be skipped, in case the load event isn't\n * fired. This also applies if the user is offline and the resource of the\n * iframe is online (either by the browsers \"offline\" mode or because\n * there's no internet connection)\n */\n constructor(ctx, iframes = true, exclude = [], iframesTimeout = 5000) {\n /**\n * The context of the instance. Either a DOM element, an array of DOM\n * elements, a NodeList or a selector\n * @type {HTMLElement|HTMLElement[]|NodeList|string}\n * @access protected\n */\n this.ctx = ctx;\n /**\n * Boolean indicating if iframe support is enabled\n * @type {boolean}\n * @access protected\n */\n this.iframes = iframes;\n /**\n * An array containing exclusion selectors for iframes\n * @type {string[]}\n */\n this.exclude = exclude;\n /**\n * The maximum ms to wait for a load event before skipping an iframe\n * @type {number}\n */\n this.iframesTimeout = iframesTimeout;\n }\n\n /**\n * Checks if the specified DOM element matches the selector\n * @param {HTMLElement} element - The DOM element\n * @param {string|string[]} selector - The selector or an array with\n * selectors\n * @return {boolean}\n * @access public\n */\n static matches(element, selector) {\n const selectors = typeof selector === 'string' ? [selector] : selector,\n fn = (\n element.matches ||\n element.matchesSelector ||\n element.msMatchesSelector ||\n element.mozMatchesSelector ||\n element.oMatchesSelector ||\n element.webkitMatchesSelector\n );\n if (fn) {\n let match = false;\n selectors.every(sel => {\n if (fn.call(element, sel)) {\n match = true;\n return false;\n }\n return true;\n });\n return match;\n } else { // may be false e.g. when el is a textNode\n return false;\n }\n }\n\n /**\n * Returns all contexts filtered by duplicates (even nested)\n * @return {HTMLElement[]} - An array containing DOM contexts\n * @access protected\n */\n getContexts() {\n let ctx,\n filteredCtx = [];\n if (typeof this.ctx === 'undefined' || !this.ctx) { // e.g. null\n ctx = [];\n } else if (NodeList.prototype.isPrototypeOf(this.ctx)) {\n ctx = Array.prototype.slice.call(this.ctx);\n } else if (Array.isArray(this.ctx)) {\n ctx = this.ctx;\n } else if (typeof this.ctx === 'string') {\n ctx = Array.prototype.slice.call(\n document.querySelectorAll(this.ctx)\n );\n } else { // e.g. HTMLElement or element inside iframe\n ctx = [this.ctx];\n }\n // filter duplicate text nodes\n ctx.forEach(ctx => {\n const isDescendant = filteredCtx.filter(contexts => {\n return contexts.contains(ctx);\n }).length > 0;\n if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {\n filteredCtx.push(ctx);\n }\n });\n return filteredCtx;\n }\n\n /**\n * @callback DOMIterator~getIframeContentsSuccessCallback\n * @param {HTMLDocument} contents - The contentDocument of the iframe\n */\n /**\n * Calls the success callback function with the iframe document. If it can't\n * be accessed it calls the error callback function\n * @param {HTMLElement} ifr - The iframe DOM element\n * @param {DOMIterator~getIframeContentsSuccessCallback} successFn\n * @param {function} [errorFn]\n * @access protected\n */\n getIframeContents(ifr, successFn, errorFn = () => {}) {\n let doc;\n try {\n const ifrWin = ifr.contentWindow;\n doc = ifrWin.document;\n if (!ifrWin || !doc) { // no permission = null. Undefined in Phantom\n throw new Error('iframe inaccessible');\n }\n } catch (e) {\n errorFn();\n }\n if (doc) {\n successFn(doc);\n }\n }\n\n /Line truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["ctx", "ifr", "node", "dct", "Mark"]
|
||||
}
|
||||
-1813
File diff suppressed because it is too large.
Load diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": ["../../../node_modules/minisearch/src/SearchableMap/TreeIterator.ts", "../../../node_modules/minisearch/src/SearchableMap/fuzzySearch.ts", "../../../node_modules/minisearch/src/SearchableMap/SearchableMap.ts", "../../../node_modules/minisearch/src/MiniSearch.ts"],
|
||||
"sourcesContent": ["import type { RadixTree, Entry, LeafType } from './types'\n\n/** @ignore */\nconst ENTRIES = 'ENTRIES'\n\n/** @ignore */\nconst KEYS = 'KEYS'\n\n/** @ignore */\nconst VALUES = 'VALUES'\n\n/** @ignore */\nconst LEAF = '' as LeafType\n\ninterface Iterators<T> {\n ENTRIES: Entry<T>\n KEYS: string\n VALUES: T\n}\n\ntype Kind<T> = keyof Iterators<T>\ntype Result<T, K extends keyof Iterators<T>> = Iterators<T>[K]\n\ntype IteratorPath<T> = {\n node: RadixTree<T>,\n keys: string[]\n}[]\n\nexport type IterableSet<T> = {\n _tree: RadixTree<T>,\n _prefix: string\n}\n\n/**\n * @private\n */\nclass TreeIterator<T, K extends Kind<T>> implements Iterator<Result<T, K>> {\n set: IterableSet<T>\n _type: K\n _path: IteratorPath<T>\n\n constructor (set: IterableSet<T>, type: K) {\n const node = set._tree\n const keys = Array.from(node.keys())\n this.set = set\n this._type = type\n this._path = keys.length > 0 ? [{ node, keys }] : []\n }\n\n next (): IteratorResult<Result<T, K>> {\n const value = this.dive()\n this.backtrack()\n return value\n }\n\n dive (): IteratorResult<Result<T, K>> {\n if (this._path.length === 0) { return { done: true, value: undefined } }\n const { node, keys } = last(this._path)!\n if (last(keys) === LEAF) { return { done: false, value: this.result() } }\n\n const child = node.get(last(keys)!)!\n this._path.push({ node: child, keys: Array.from(child.keys()) })\n return this.dive()\n }\n\n backtrack (): void {\n if (this._path.length === 0) { return }\n const keys = last(this._path)!.keys\n keys.pop()\n if (keys.length > 0) { return }\n this._path.pop()\n this.backtrack()\n }\n\n key (): string {\n return this.set._prefix + this._path\n .map(({ keys }) => last(keys))\n .filter(key => key !== LEAF)\n .join('')\n }\n\n value (): T {\n return last(this._path)!.node.get(LEAF)!\n }\n\n result (): Result<T, K> {\n switch (this._type) {\n case VALUES: return this.value() as Result<T, K>\n case KEYS: return this.key() as Result<T, K>\n default: return [this.key(), this.value()] as Result<T, K>\n }\n }\n\n [Symbol.iterator] () {\n return this\n }\n}\n\nconst last = <T>(array: T[]): T | undefined => {\n return array[array.length - 1]\n}\n\nexport { TreeIterator, ENTRIES, KEYS, VALUES, LEAF }\n", "/* eslint-disable no-labels */\nimport { LEAF } from './TreeIterator'\nimport type { RadixTree } from './types'\n\nexport type FuzzyResult<T> = [T, number]\n\nexport type FuzzyResults<T> = Map<string, FuzzyResult<T>>\n\n/**\n * @ignore\n */\nexport const fuzzySearch = <T = any>(node: RadixTree<T>, query: string, maxDistance: number): FuzzyResults<T> => {\n const results: FuzzyResults<T> = new Map()\n if (query === undefined) return results\n\n // Number of columns in the Levenshtein matrix.\n const n = query.length + 1\n\n // Matching terms can never be longer than N + maxDistance.\n const m = n + maxDistance\n\n // Fill first matrix row and column with numbers: 0 1 2 3 ...\n const matrix = new Uint8Array(m * n).fill(maxDistance + 1)\n for (let j = 0; j < n; ++j) matrix[j] = j\n for (let i = 1; i < m; ++i) matrix[i * n] = i\n\n recurse(\n node,\n query,\n maxDistance,\n results,\n matrix,\n 1,\n n,\n ''\n )\n\n return results\n}\n\n// Modified version of http://stevehanov.ca/blog/?id=114\n\n// This builds a Levenshtein matrix for a given query and continuously updates\n// it for nodes in the radix tree that fall within the given maximum edit\n// distance. Keeping the same matrix around is beneficial especially for larger\n// edit distances.\n//\n// k a t e <-- query\n// 0 1 2 3 4\n// c 1 1 2 3 4\n// a 2 2 1 2 3\n// t 3 3 2 1 [2] <-- edit distance\n// ^\n// ^ term in radix tree, rows are added and removed as needed\n\nconst recurse = <T = any>(\n node: RadixTree<T>,\n query: string,\n maxDistance: number,\n results: FuzzyResults<T>,\n matrix: Uint8Array,\n m: number,\n n: number,\n prefix: string\n): void => {\n const offset = m * n\n\n key: for (const key of node.keys()) {\n if (key === LEAF) {\n // We've reached a leaf node. Check if the edit distance acceptable and\n // store the result if it is.\n const distance = matrix[offset - 1]\n if (distance <= maxDistance) {\n results.set(prefix, [node.get(key)!, distance])\n }\n } else {\n // Iterate over all characters in the key. Update the Levenshtein matrix\n // and check if the minimum distance in the last row is still within the\n // maximum edit distance. If it is, we can recurse over all child nodes.\n let i = m\n for (let pos = 0; pos < key.length; ++pos, ++i) {\n const char = key[pos]\n const thisRowOffset = n * i\n const prevRowOffset = thisRowOffset - n\n\n // Set the first column based on the previous row, Line truncated
|
||||
"mappings": "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 truncated
|
||||
"names": ["last", "node", "child", "key", "chunk", "promise", "conditions", "options", "results", "query", "boosts", "data"]
|
||||
}
|
||||
Vendored
-347
@@ -1,347 +0,0 @@
|
||||
import {
|
||||
BaseTransition,
|
||||
BaseTransitionPropsValidators,
|
||||
Comment,
|
||||
DeprecationTypes,
|
||||
EffectScope,
|
||||
ErrorCodes,
|
||||
ErrorTypeStrings,
|
||||
Fragment,
|
||||
KeepAlive,
|
||||
ReactiveEffect,
|
||||
Static,
|
||||
Suspense,
|
||||
Teleport,
|
||||
Text,
|
||||
TrackOpTypes,
|
||||
Transition,
|
||||
TransitionGroup,
|
||||
TriggerOpTypes,
|
||||
VueElement,
|
||||
assertNumber,
|
||||
callWithAsyncErrorHandling,
|
||||
callWithErrorHandling,
|
||||
camelize,
|
||||
capitalize,
|
||||
cloneVNode,
|
||||
compatUtils,
|
||||
compile,
|
||||
computed,
|
||||
createApp,
|
||||
createBaseVNode,
|
||||
createBlock,
|
||||
createCommentVNode,
|
||||
createElementBlock,
|
||||
createHydrationRenderer,
|
||||
createPropsRestProxy,
|
||||
createRenderer,
|
||||
createSSRApp,
|
||||
createSlots,
|
||||
createStaticVNode,
|
||||
createTextVNode,
|
||||
createVNode,
|
||||
customRef,
|
||||
defineAsyncComponent,
|
||||
defineComponent,
|
||||
defineCustomElement,
|
||||
defineEmits,
|
||||
defineExpose,
|
||||
defineModel,
|
||||
defineOptions,
|
||||
defineProps,
|
||||
defineSSRCustomElement,
|
||||
defineSlots,
|
||||
devtools,
|
||||
effect,
|
||||
effectScope,
|
||||
getCurrentInstance,
|
||||
getCurrentScope,
|
||||
getCurrentWatcher,
|
||||
getTransitionRawChildren,
|
||||
guardReactiveProps,
|
||||
h,
|
||||
handleError,
|
||||
hasInjectionContext,
|
||||
hydrate,
|
||||
hydrateOnIdle,
|
||||
hydrateOnInteraction,
|
||||
hydrateOnMediaQuery,
|
||||
hydrateOnVisible,
|
||||
initCustomFormatter,
|
||||
initDirectivesForSSR,
|
||||
inject,
|
||||
isMemoSame,
|
||||
isProxy,
|
||||
isReactive,
|
||||
isReadonly,
|
||||
isRef,
|
||||
isRuntimeOnly,
|
||||
isShallow,
|
||||
isVNode,
|
||||
markRaw,
|
||||
mergeDefaults,
|
||||
mergeModels,
|
||||
mergeProps,
|
||||
nextTick,
|
||||
nodeOps,
|
||||
normalizeClass,
|
||||
normalizeProps,
|
||||
normalizeStyle,
|
||||
onActivated,
|
||||
onBeforeMount,
|
||||
onBeforeUnmount,
|
||||
onBeforeUpdate,
|
||||
onDeactivated,
|
||||
onErrorCaptured,
|
||||
onMounted,
|
||||
onRenderTracked,
|
||||
onRenderTriggered,
|
||||
onScopeDispose,
|
||||
onServerPrefetch,
|
||||
onUnmounted,
|
||||
onUpdated,
|
||||
onWatcherCleanup,
|
||||
openBlock,
|
||||
patchProp,
|
||||
popScopeId,
|
||||
provide,
|
||||
proxyRefs,
|
||||
pushScopeId,
|
||||
queuePostFlushCb,
|
||||
reactive,
|
||||
readonly,
|
||||
ref,
|
||||
registerRuntimeCompiler,
|
||||
render,
|
||||
renderList,
|
||||
renderSlot,
|
||||
resolveComponent,
|
||||
resolveDirective,
|
||||
resolveDynamicComponent,
|
||||
resolveFilter,
|
||||
resolveTransitionHooks,
|
||||
setBlockTracking,
|
||||
setDevtoolsHook,
|
||||
setTransitionHooks,
|
||||
shallowReactive,
|
||||
shallowReadonly,
|
||||
shallowRef,
|
||||
ssrContextKey,
|
||||
ssrUtils,
|
||||
stop,
|
||||
toDisplayString,
|
||||
toHandlerKey,
|
||||
toHandlers,
|
||||
toRaw,
|
||||
toRef,
|
||||
toRefs,
|
||||
toValue,
|
||||
transformVNodeArgs,
|
||||
triggerRef,
|
||||
unref,
|
||||
useAttrs,
|
||||
useCssModule,
|
||||
useCssVars,
|
||||
useHost,
|
||||
useId,
|
||||
useModel,
|
||||
useSSRContext,
|
||||
useShadowRoot,
|
||||
useSlots,
|
||||
useTemplateRef,
|
||||
useTransitionState,
|
||||
vModelCheckbox,
|
||||
vModelDynamic,
|
||||
vModelRadio,
|
||||
vModelSelect,
|
||||
vModelText,
|
||||
vShow,
|
||||
version,
|
||||
warn,
|
||||
watch,
|
||||
watchEffect,
|
||||
watchPostEffect,
|
||||
watchSyncEffect,
|
||||
withAsyncContext,
|
||||
withCtx,
|
||||
withDefaults,
|
||||
withDirectives,
|
||||
withKeys,
|
||||
withMemo,
|
||||
withModifiers,
|
||||
withScopeId
|
||||
} from "./chunk-XY26LBYQ.js";
|
||||
export {
|
||||
BaseTransition,
|
||||
BaseTransitionPropsValidators,
|
||||
Comment,
|
||||
DeprecationTypes,
|
||||
EffectScope,
|
||||
ErrorCodes,
|
||||
ErrorTypeStrings,
|
||||
Fragment,
|
||||
KeepAlive,
|
||||
ReactiveEffect,
|
||||
Static,
|
||||
Suspense,
|
||||
Teleport,
|
||||
Text,
|
||||
TrackOpTypes,
|
||||
Transition,
|
||||
TransitionGroup,
|
||||
TriggerOpTypes,
|
||||
VueElement,
|
||||
assertNumber,
|
||||
callWithAsyncErrorHandling,
|
||||
callWithErrorHandling,
|
||||
camelize,
|
||||
capitalize,
|
||||
cloneVNode,
|
||||
compatUtils,
|
||||
compile,
|
||||
computed,
|
||||
createApp,
|
||||
createBlock,
|
||||
createCommentVNode,
|
||||
createElementBlock,
|
||||
createBaseVNode as createElementVNode,
|
||||
createHydrationRenderer,
|
||||
createPropsRestProxy,
|
||||
createRenderer,
|
||||
createSSRApp,
|
||||
createSlots,
|
||||
createStaticVNode,
|
||||
createTextVNode,
|
||||
createVNode,
|
||||
customRef,
|
||||
defineAsyncComponent,
|
||||
defineComponent,
|
||||
defineCustomElement,
|
||||
defineEmits,
|
||||
defineExpose,
|
||||
defineModel,
|
||||
defineOptions,
|
||||
defineProps,
|
||||
defineSSRCustomElement,
|
||||
defineSlots,
|
||||
devtools,
|
||||
effect,
|
||||
effectScope,
|
||||
getCurrentInstance,
|
||||
getCurrentScope,
|
||||
getCurrentWatcher,
|
||||
getTransitionRawChildren,
|
||||
guardReactiveProps,
|
||||
h,
|
||||
handleError,
|
||||
hasInjectionContext,
|
||||
hydrate,
|
||||
hydrateOnIdle,
|
||||
hydrateOnInteraction,
|
||||
hydrateOnMediaQuery,
|
||||
hydrateOnVisible,
|
||||
initCustomFormatter,
|
||||
initDirectivesForSSR,
|
||||
inject,
|
||||
isMemoSame,
|
||||
isProxy,
|
||||
isReactive,
|
||||
isReadonly,
|
||||
isRef,
|
||||
isRuntimeOnly,
|
||||
isShallow,
|
||||
isVNode,
|
||||
markRaw,
|
||||
mergeDefaults,
|
||||
mergeModels,
|
||||
mergeProps,
|
||||
nextTick,
|
||||
nodeOps,
|
||||
normalizeClass,
|
||||
normalizeProps,
|
||||
normalizeStyle,
|
||||
onActivated,
|
||||
onBeforeMount,
|
||||
onBeforeUnmount,
|
||||
onBeforeUpdate,
|
||||
onDeactivated,
|
||||
onErrorCaptured,
|
||||
onMounted,
|
||||
onRenderTracked,
|
||||
onRenderTriggered,
|
||||
onScopeDispose,
|
||||
onServerPrefetch,
|
||||
onUnmounted,
|
||||
onUpdated,
|
||||
onWatcherCleanup,
|
||||
openBlock,
|
||||
patchProp,
|
||||
popScopeId,
|
||||
provide,
|
||||
proxyRefs,
|
||||
pushScopeId,
|
||||
queuePostFlushCb,
|
||||
reactive,
|
||||
readonly,
|
||||
ref,
|
||||
registerRuntimeCompiler,
|
||||
render,
|
||||
renderList,
|
||||
renderSlot,
|
||||
resolveComponent,
|
||||
resolveDirective,
|
||||
resolveDynamicComponent,
|
||||
resolveFilter,
|
||||
resolveTransitionHooks,
|
||||
setBlockTracking,
|
||||
setDevtoolsHook,
|
||||
setTransitionHooks,
|
||||
shallowReactive,
|
||||
shallowReadonly,
|
||||
shallowRef,
|
||||
ssrContextKey,
|
||||
ssrUtils,
|
||||
stop,
|
||||
toDisplayString,
|
||||
toHandlerKey,
|
||||
toHandlers,
|
||||
toRaw,
|
||||
toRef,
|
||||
toRefs,
|
||||
toValue,
|
||||
transformVNodeArgs,
|
||||
triggerRef,
|
||||
unref,
|
||||
useAttrs,
|
||||
useCssModule,
|
||||
useCssVars,
|
||||
useHost,
|
||||
useId,
|
||||
useModel,
|
||||
useSSRContext,
|
||||
useShadowRoot,
|
||||
useSlots,
|
||||
useTemplateRef,
|
||||
useTransitionState,
|
||||
vModelCheckbox,
|
||||
vModelDynamic,
|
||||
vModelRadio,
|
||||
vModelSelect,
|
||||
vModelText,
|
||||
vShow,
|
||||
version,
|
||||
warn,
|
||||
watch,
|
||||
watchEffect,
|
||||
watchPostEffect,
|
||||
watchSyncEffect,
|
||||
withAsyncContext,
|
||||
withCtx,
|
||||
withDefaults,
|
||||
withDirectives,
|
||||
withKeys,
|
||||
withMemo,
|
||||
withModifiers,
|
||||
withScopeId
|
||||
};
|
||||
//# sourceMappingURL=vue.js.map
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
||||
@@ -36,6 +36,7 @@ export default defineConfig({
|
||||
{ text: '图库', link: '/config/photos' },
|
||||
{ text: '友情链接', link: '/config/links' },
|
||||
{ text: '朋友圈', link: '/config/friends' },
|
||||
{ text: '记得', link: '/config/important-dates' },
|
||||
{ text: '留言板', link: '/config/messageboard' },
|
||||
{ text: '评论', link: '/config/comment' },
|
||||
{ text: '页脚', link: '/config/footer' },
|
||||
@@ -53,6 +54,7 @@ export default defineConfig({
|
||||
{ text: '图库', link: '/pages/photos' },
|
||||
{ text: '友情链接', link: '/pages/links' },
|
||||
{ text: '朋友圈', link: '/pages/friends' },
|
||||
{ text: '记得', link: '/pages/important-dates' },
|
||||
{ text: '自定义页面', link: '/pages/custom-page' },
|
||||
{ text: '扩展页面', link: '/pages/extended' },
|
||||
]
|
||||
@@ -78,7 +80,7 @@ export default defineConfig({
|
||||
],
|
||||
|
||||
socialLinks: [
|
||||
{ icon: 'github', link: 'https://github.com/nxxy335top/halo-theme-WarmIsland' }
|
||||
{ icon: 'github', link: 'https://git.nxxy335.top/nxxy335/halo-theme-WarmIsland', ariaLabel: '源码仓库' }
|
||||
],
|
||||
|
||||
search: {
|
||||
|
||||
@@ -1,5 +1,138 @@
|
||||
# 更新日志
|
||||
|
||||
## v1.2.5
|
||||
|
||||
### 兼容性与元数据
|
||||
|
||||
- ⬆️ Halo 版本要求提升至 **2.27.0+**(页面布局契约、微信读书页面依赖 2.27 的能力)
|
||||
- 🔗 源码仓库与问题反馈地址统一为 `https://git.nxxy335.top/nxxy335/halo-theme-WarmIsland`
|
||||
- 📚 完善安装、开发、FAQ 文档,修正过时的技术栈与构建打包说明
|
||||
|
||||
### 性能优化
|
||||
|
||||
- 🚀 **首页滚动顺滑性**:移除逐帧改写全屏 `backdrop-filter` 模糊半径的逻辑。
|
||||
旧实现让 Chromium 每个滚动帧都重做一次全屏背景采样 + 高斯模糊,是首页掉帧主因;
|
||||
现改为固定模糊半径 + 只调整 `opacity`(合成层操作),并缓存进度值避免重复写 DOM
|
||||
- 🚀 **首屏离屏即停**:滚过首屏后 Hero 已被不透明内容区完全盖住,此时隐藏 Hero
|
||||
并暂停光球动画,长页面后半段不再有额外绘制
|
||||
- 🚀 **首屏整屏吸附回归(顺滑版)**:v1.2.5 初版改用 CSS `scroll-snap: y proximity` 后吸附
|
||||
实际失效——内容区顶部是唯一吸附点、页面顶部 `0` 没有吸附点,`proximity` 几乎不触发;
|
||||
换成 `mandatory` 又会把长内容反复拉回内容区顶部。现改为**边界吸附**:只在
|
||||
`0 ↔ 内容区顶部` 接管一次滚轮 / 触摸,进入内容区后完全交给原生滚动惯性;解锁用
|
||||
`scrollend` + 600ms 兜底(原为固定 800ms 输入锁),已在目标位置时不再接管
|
||||
- 🚀 **导航栏滚动状态去重**:只在状态真正变化时写 class,不再每帧触发样式重算
|
||||
- ♿ 补充 `prefers-reduced-motion` 支持:减少动态效果时关闭平滑滚动与光球 / 指示箭头动画,
|
||||
吸附改为即时定位(不再关闭吸附)
|
||||
- 🖼️ 首页文章列表继续使用 `content-visibility: auto` 跳过视口外渲染,图片保持懒加载
|
||||
|
||||
## v1.2.4
|
||||
|
||||
### 问题修复
|
||||
|
||||
- 🐛 **彻底修复首页页脚被 Hero 盖住(v1.2.3 的修复不完整)**:仅取消 main 的
|
||||
层叠上下文(`z-index: auto`)不足以让固定 Hero 稳定落在页脚之下。现改为
|
||||
**双保险**:
|
||||
1. `.hero` 由 `z-index: 0` 改为 `z-index: -1`,作为固定全屏背景沉到根层叠
|
||||
上下文的负 z 层,绘制在一切正常内容(含页脚)之下——这是固定背景的规范做法;
|
||||
2. 保留首页 main `z-index: auto`(仍是必须项:否则 main 若保持 `z-index: 1`
|
||||
会成为层叠上下文,把负 z 的 Hero 困在自己内部、整块仍压在页脚之上)。
|
||||
页脚因此始终保持无 z-index 的状态,既不会被 Hero 盖住,也不会回退到早期
|
||||
「页脚盖住评论区翻页下拉」的问题。经无头浏览器在真实构建产物上验证:
|
||||
滚到页底时 `elementFromPoint` 命中 `footer-inner`,页脚完整可见。
|
||||
|
||||
## v1.2.3
|
||||
|
||||
### 问题修复
|
||||
|
||||
- 🐛 **初步修复首页页脚被 Hero 盖住(不完整,已被 v1.2.4 取代)**:取消首页
|
||||
main 的层叠上下文(`z-index: auto`)。这一项单独作用时仍不够稳健,
|
||||
请直接参考 v1.2.4 的完整修复。
|
||||
|
||||
## v1.2.2
|
||||
|
||||
### 问题修复
|
||||
|
||||
- 🐛 **修复移动端抽屉菜单不显示二级菜单**:子菜单的 `th:block` 写在了 `th:each` 循环外,
|
||||
循环变量出了循环即失效,二级菜单从未渲染过;现在子菜单与父项一起循环输出
|
||||
- 🐛 **修复页脚遮挡内容弹层**:页脚的 `z-index: 1` 与内容区同级且靠后,
|
||||
会盖住评论区翻页下拉等浮层;同时把 `.wi-main` / `.wi-content-wrap` 的
|
||||
`overflow-x: hidden` 改为 `clip`,不再产生会纵向裁掉弹层的滚动容器
|
||||
- 🐛 **修复深浅色切换不同步**:页脚背景是渐变(`background-image`),
|
||||
无法参与过渡动画,切换时页脚瞬变而内容区还在 300ms 渐变;
|
||||
改为可过渡的 `background-color` + 遮罩渐隐色层,全站同步过渡
|
||||
- 🐛 **修复玻璃卡片悬浮时顶部边框消失**:Chromium 下带 `backdrop-filter` 的元素
|
||||
一旦发生位移(悬浮上移),合成层会吃掉顶部 1px 边框。已移除瞬间、友链页、
|
||||
友链圈、订阅页卡片的 `backdrop-filter`(卡片背后是纯页面背景,模糊无可见效果),
|
||||
并给瞬间卡片悬浮时加描边高亮
|
||||
|
||||
### 功能与优化
|
||||
|
||||
- 🎨 **新增瞬间详情页主题化模板**(`moment.html`):覆盖插件默认模板,
|
||||
复用瞬间列表页的卡片视觉(头像 + 昵称 + 时间 + 正文 + 九宫格 + 点赞),
|
||||
评论区默认展开,附返回列表入口与空态兜底;支持灯箱看图
|
||||
- 🎨 **Steam 游戏库页**:统计数据加载失败时不再整块隐藏,改为显示 `-` 并给出
|
||||
原因提示(Steam 接口超时 / 游戏库隐私 / 插件配置);「最近游玩」卡片成就进度
|
||||
移到右侧并增加奖杯标识
|
||||
|
||||
## v1.2.1
|
||||
|
||||
### 问题修复
|
||||
|
||||
- 🐛 **修复升级后整站没有样式**:Astro 会给 CSS/JS 加内容哈希,升级后旧文件被删除,被缓存的 HTML 仍请求旧文件名,
|
||||
Halo 直接抛 `FileNotFoundException` 返回 500,样式全部丢失。主题现在会把各版本的哈希资源一并保留
|
||||
(`compat/assets` 在构建时合并进 `templates/assets`,已覆盖 v1.1.7 起的所有版本)
|
||||
- 🐛 **避免页面出现 500**:新增构建期静态资源引用校验,模板引用的任一缺失资源都会让构建失败
|
||||
- 🐛 **修复鼠标点击效果开启后没有任何作用**:旧实现用 `th:if` 判断开关、且直接读取配置值,
|
||||
一旦配置项未随版本写入(或被 Thymeleaf 整体移除属性)就读取为空,脚本直接跳过;
|
||||
同时修复了多种特效在插入节点后随即改写 `transform` / `opacity`,导致浏览器把初态与终态合并、
|
||||
transition 完全不触发的问题(表现为点了没反应)
|
||||
- 🐛 次要修复:点击特效节点统一挂载到 `body` 下的独立图层(`z-index: 12050`),不再被导航栏、页脚遮挡
|
||||
|
||||
### 其他
|
||||
|
||||
- 🧰 新增构建脚本:`pnpm snapshot`(历史资源快照)、`pnpm package`(打安装包)、`pnpm smoke`(点击特效冒烟测试)
|
||||
|
||||
### 补充排查记录:升级后部分页面配色/新样式不生效
|
||||
|
||||
上线后收到反馈:更换主题配色后,**首页与瞬间页不跟随**,其他页面正常。经排查
|
||||
(对比浏览器实际加载的资源、CDP 读取计算样式、比对响应头)确认:
|
||||
|
||||
- 浏览器拿到的首页/瞬间 HTML 是 **v1.1.11 / v1.1.12 时期**的旧页面(引用旧哈希 CSS、
|
||||
`<html>` 上没有 v1.2.0 新增的 `data-palette` 属性)
|
||||
- 响应头 `X-Halo-Cache-At` 与 `Cache-Control: max-age=3, s-maxage=120` 表明这些页面
|
||||
被 **「页面静态缓存」插件** 缓存,而该插件只随文章变更自动刷新,
|
||||
**主题升级 / 主题设置变更不会刷新缓存**
|
||||
- 裸 `curl`(无浏览器请求头)会绕过该缓存拿到新 HTML,因此服务端"看起来"一切正常
|
||||
|
||||
这是缓存层行为、不是主题缺陷,**在 Halo 后台点一次「刷新页面缓存」即可**;
|
||||
排查步骤已写入 [FAQ](faq.md#升级主题或修改配色后部分页面的新样式配色不生效)。
|
||||
|
||||
## v1.2.0
|
||||
|
||||
### 主题配色系统
|
||||
|
||||
- ✨ 新增「主题配色」设置(总体样式 → 主题配色),内置 11 套官方预调配色:暖屿·赤陶(默认)、抹茶、黛蓝、樱粉、暮紫、海盐、琥珀、梅酒、石墨、可拿铁、天青
|
||||
- 🎨 每套配色包含浅色 / 深色两套完整色板,玻璃拟态、遮罩、阴影色调自动跟随当前配色
|
||||
- 🎨 自定义「强调色」改为留空跟随所选配色;填写后仍可单独覆盖
|
||||
- 📱 浏览器地址栏 theme-color 随配色与明暗模式联动(含切换按钮)
|
||||
|
||||
### Hero 首屏
|
||||
|
||||
- ✨ 一言文字新增独立颜色配置(浅色 / 深色模式各一项,此前只能跟随副标题颜色)
|
||||
- ✨ 新增「文字显示效果」设置:阴影 / 光晕 / 半透明遮罩层 / 渐变遮罩 / 容器(半透明边框圆角矩形 + 加大留白)
|
||||
- 🐛 默认改为无任何效果:移除标题、副标题与一言自带的白色散光投影
|
||||
|
||||
### 问题修复
|
||||
|
||||
- 🐛 修复 /douban 页面 500:适配豆瓣插件 v1.2.6 的 SQLite 数据结构(字段由 `item.spec.*` / `item.faves.*` 扁平化为 `item.*` / `item.faves*`)
|
||||
- 🐛 修复友情链接卡片悬浮光圈被裁切的问题(卡片容器不再裁切悬浮阴影与上移位移)
|
||||
- 🐛 修复瞬间页面顶图与最新一条瞬间卡片的边框贴合的问题,顶图下方增加间距
|
||||
- 🐛 友情链接卡片徽章简化为仅展示站点可达性(绿点 = 可访问,红点 = 异常),不再联合反链检测结果判断
|
||||
|
||||
### 其他
|
||||
|
||||
- ⬆️ Halo 版本要求提升至 **2.26+**
|
||||
|
||||
## v1.1.1
|
||||
|
||||
### 瞬间页面
|
||||
|
||||
@@ -80,7 +80,7 @@ ICP 备案号通常需要链接到工信部的备案查询页面。主题会自
|
||||
footer_socials:
|
||||
- platform: GitHub
|
||||
icon: fa-brands fa-github
|
||||
url: https://github.com/your-username
|
||||
url: https://git.nxxy335.top/nxxy335/halo-theme-WarmIsland
|
||||
- platform: 微博
|
||||
icon: fa-brands fa-weibo
|
||||
url: https://weibo.com/your-username
|
||||
|
||||
@@ -13,7 +13,17 @@ Hero 首屏是 WarmIsland 主题的标志性区域,占据首页首屏的全部
|
||||
| `hero_hitokoto_api` | URL | `https://v1.hitokoto.cn/` | 一言 API 地址 |
|
||||
| `hero_hitokoto_categories` | 多选 | `d, i, k` | 一言句子类型 |
|
||||
| `hero_custom_description` | 多行文本 | — | 自定义描述文案 |
|
||||
| `hero_hitokoto_auto_refresh` | 开关 | `false` | 一言自动刷新 |
|
||||
| `hero_hitokoto_refresh_interval` | 下拉 | `10000` | 一言刷新间隔(秒) |
|
||||
| `hero_background_image` | 附件 | — | 背景图片 |
|
||||
| `hero_background_image_dark` | 附件 | — | 深色模式背景图片 |
|
||||
| `hero_title_color_light` | 颜色 | — | 大标题颜色(浅色模式),留空使用主题默认 |
|
||||
| `hero_title_color_dark` | 颜色 | — | 大标题颜色(深色模式),留空使用主题默认 |
|
||||
| `hero_subtitle_color_light` | 颜色 | — | 副标题颜色(浅色模式),留空使用主题默认 |
|
||||
| `hero_subtitle_color_dark` | 颜色 | — | 副标题颜色(深色模式),留空使用主题默认 |
|
||||
| `hero_quote_color_light` | 颜色 | — | 一言文字颜色(浅色模式),留空使用主题默认 |
|
||||
| `hero_quote_color_dark` | 颜色 | — | 一言文字颜色(深色模式),留空使用主题默认 |
|
||||
| `hero_text_effect` | 下拉 | `none` | 文字显示效果:`none` / `shadow` / `glow` / `scrim` / `gradient` / `frame` |
|
||||
|
||||
## 详细说明
|
||||
|
||||
@@ -102,6 +112,31 @@ hero_custom_description: "用文字记录生活,用代码构建世界。"
|
||||
背景图片会自动应用模糊和暗化处理,以确保前景文字的可读性。建议选择色彩柔和、不包含大量细节的图片作为背景,避免干扰文案阅读。
|
||||
:::
|
||||
|
||||
### 文字颜色
|
||||
|
||||
标题、副标题、一言的颜色均可分别配置浅色 / 深色模式的取值,留空使用主题默认:
|
||||
|
||||
- **`hero_title_color_light` / `hero_title_color_dark`** — 大标题颜色。
|
||||
- **`hero_subtitle_color_light` / `hero_subtitle_color_dark`** — 副标题颜色。
|
||||
- **`hero_quote_color_light` / `hero_quote_color_dark`** — 一言文字颜色(`hero_description_mode` 为 `hitokoto` 或 `custom` 时生效)。
|
||||
|
||||
### 文字显示效果(hero_text_effect)
|
||||
|
||||
为 Hero 文字(标题 / 副标题 / 一言)叠加辅助可读效果。**默认 `none` 不使用任何效果**——v1.2.0 起,文字周围默认不再有淡淡的白色散光投影:
|
||||
|
||||
| 值 | 效果 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `none` | 无效果(默认) | 纯净文字,无任何附加投影与衬底 |
|
||||
| `shadow` | 阴影 | 文字下方叠加柔和的深色投影,适合复杂背景图 |
|
||||
| `glow` | 光晕 | 文字周围叠加白色光晕,暗色背景图上更醒目 |
|
||||
| `scrim` | 半透明遮罩层 | 文字背后垫一块毛玻璃圆角衬底,整体提升可读性 |
|
||||
| `gradient` | 渐变遮罩 | 文字背后垫斜向渐变衬底,左深右浅自然过渡 |
|
||||
| `frame` | 容器 | 把文字"装"进一个带半透明边框的圆角矩形,加大内边距与字距留白 |
|
||||
|
||||
::: tip
|
||||
遮罩类(`scrim` / `gradient`)与容器(`frame`)作用于整个文字区块,浅色模式为白色系衬底、深色模式为黑色系衬底;`frame` 会在浅色模式下使用墨色描边、深色模式下使用白色描边。
|
||||
:::
|
||||
|
||||
## 视觉效果
|
||||
|
||||
Hero 区域包含以下精心设计的视觉效果:
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# 记得
|
||||
|
||||
「记得」模块对应 [plugin-important-dates](https://github.com/yyliucha/plugin-important-dates) 插件的前台页面 `/important-dates`,用于展示重要日期、牵挂的人与座驾(爱车)信息。
|
||||
|
||||
## 配置项一览
|
||||
|
||||
| 配置项 | 类型 | 默认值 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `idates_page_title` | 文本 | `记得` | 页面标题,留空时使用插件自带标题 |
|
||||
| `idates_page_subtitle` | 文本 | `记着重要的日子、惦记的人,还有陪你跑的爱车` | 页面副标题 |
|
||||
|
||||
```yaml
|
||||
idates_page_title: "记得" # 默认
|
||||
idates_page_title: "纪念日" # 自定义
|
||||
idates_page_subtitle: "记着重要的日子、惦记的人,还有陪你跑的爱车"
|
||||
```
|
||||
|
||||
## 前置依赖
|
||||
|
||||
::: danger
|
||||
本页依赖 Halo 的 **plugin-important-dates**(记得)插件。未安装插件时 `/important-dates` 路由不存在,页面不会显示。
|
||||
|
||||
安装方式:Halo 后台 → **插件** → **安装** → 上传 jar,或直接前往 [GitHub Releases](https://github.com/yyliucha/plugin-important-dates/releases) 下载。
|
||||
:::
|
||||
|
||||
## 数据来源
|
||||
|
||||
页面数据全部由插件提供,主题不读取任何隐私字段:
|
||||
|
||||
- `dates` — 重要日期(名称、日期、农历标记、关联人员、倒计时)
|
||||
- `people` — 牵挂的人(昵称、关系、脱敏生日、生日倒计时、大头贴)
|
||||
- `cars` — 座驾(分类、品牌型号、脱敏车牌、到期事项、相册)
|
||||
- `reminders` / `carEvents` — 顶部到期提醒横幅
|
||||
|
||||
是否展示「重要」标记、大头贴、爱车视图等,均由插件自己的「设置」控制,主题侧只负责呈现。
|
||||
|
||||
## 相关页面
|
||||
|
||||
- [扩展页面](/pages/extended) — 全部插件扩展页面一览
|
||||
- [记得页面](/pages/important-dates) — 页面结构与模板覆盖说明
|
||||
+25
-2
@@ -7,7 +7,8 @@
|
||||
| 配置项 | 类型 | 默认值 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `color_scheme` | 单选 | `system` | 配色方案:`system` / `light` / `dark` |
|
||||
| `accent_color` | 颜色 | `#d4764e` | 全局强调色 |
|
||||
| `color_palette` | 下拉 | `warm-island` | 主题配色(官方预设调色板,含深浅两套色板) |
|
||||
| `accent_color` | 颜色 | — | 自定义强调色;留空跟随所选主题配色 |
|
||||
| `border_radius` | 下拉 | `medium` | 圆角风格:`small` / `medium` / `large` |
|
||||
| `layout_container_width` | 下拉 | `medium` | 容器宽度:`narrow` / `medium` / `wide` |
|
||||
| `animation_enabled` | 开关 | `true` | 全局动画总开关 |
|
||||
@@ -32,6 +33,28 @@
|
||||
选择 `system` 时,主题会监听操作系统的 `prefers-color-scheme` 媒体查询,实时响应用户的系统设置变化。访问者也可以通过导航栏的主题切换按钮手动覆盖当前模式。
|
||||
:::
|
||||
|
||||
### 主题配色(color_palette)
|
||||
|
||||
v1.2.0 起主题内置配色系统,提供 11 套官方预调配色,每套均包含浅色与深色两套完整色板(背景、文字、分隔线、强调色、玻璃拟态、阴影色调等会整体联动):
|
||||
|
||||
| 值 | 名称 | 色彩倾向 |
|
||||
| --- | --- | --- |
|
||||
| `warm-island` | 暖屿 · 赤陶(默认) | 暖橘陶土,米白纸感 |
|
||||
| `matcha` | 抹茶 | 清新草绿,米绿纸感 |
|
||||
| `indigo` | 黛蓝 | 沉稳蓝调,冷白纸感 |
|
||||
| `sakura` | 樱粉 | 柔和粉调,樱白纸感 |
|
||||
| `violet` | 暮紫 | 温柔紫调,淡紫纸感 |
|
||||
| `sea` | 海盐 | 青碧蓝绿,浅青纸感 |
|
||||
| `amber` | 琥珀 | 蜂蜜金黄,暖黄纸感 |
|
||||
| `plum` | 梅酒 | 酒红梅紫,粉白纸感 |
|
||||
| `graphite` | 石墨 | 中性灰黑,极简无彩 |
|
||||
| `cocoa` | 可拿铁 | 咖啡可可,奶咖纸感 |
|
||||
| `azure` | 天青 | 明快天蓝,浅蓝纸感 |
|
||||
|
||||
::: warning
|
||||
下方「强调色」留空时,将使用所选配色自带的强调色。**老站点升级前如果保存过强调色(默认 `#d4764e`),切换配色后强调色不会变化——清空强调色并保存即可恢复跟随配色。**
|
||||
:::
|
||||
|
||||
### 强调色(accent_color)
|
||||
|
||||
强调色是 WarmIsland 主题的灵魂,它会影响全站以下元素的颜色:
|
||||
@@ -43,7 +66,7 @@
|
||||
- 选中状态颜色
|
||||
- Hero 区域渐变色的组成部分
|
||||
|
||||
默认值 `#d4764e` 是暖屿标志性的暖橘色,与主题的温暖气质相呼应。
|
||||
留空时跟随上方「主题配色」自带的强调色(暖屿·赤陶配色即 `#d4764e` 暖橘色)。
|
||||
|
||||
::: tip
|
||||
选择强调色时,建议同时考虑浅色和深色模式下的可读性。可以在 [CSS 变量](/customize/css-variables) 页面查看所有受影响的变量,进行更精细的调整。
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
|
||||
| 工具 | 最低版本 | 推荐版本 |
|
||||
|------|----------|----------|
|
||||
| Node.js | 18.x | 20.x LTS |
|
||||
| pnpm | 8.x | 9.x |
|
||||
| Node.js | 22.12.x | 22.x LTS |
|
||||
| pnpm | 12.x | 12.x |
|
||||
| Git | 2.x | 最新 |
|
||||
|
||||
### 安装 pnpm
|
||||
@@ -19,40 +19,25 @@ npm install -g pnpm
|
||||
### 验证环境
|
||||
|
||||
```bash
|
||||
node -v # v20.x.x
|
||||
pnpm -v # 9.x.x
|
||||
node -v # v22.x.x(需 >= 22.12.0)
|
||||
pnpm -v # 12.x.x
|
||||
git --version # git version 2.x.x
|
||||
```
|
||||
|
||||
## 克隆与安装
|
||||
|
||||
```bash
|
||||
git clone https://github.com/your-username/WarmIsland.git
|
||||
cd WarmIsland
|
||||
git clone https://git.nxxy335.top/nxxy335/halo-theme-WarmIsland.git
|
||||
cd halo-theme-WarmIsland
|
||||
pnpm install
|
||||
```
|
||||
|
||||
## 开发模式
|
||||
|
||||
### 启动开发服务器
|
||||
|
||||
```bash
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
启动后,Astro 开发服务器会在 `http://localhost:4321` 运行,支持热更新。
|
||||
|
||||
### 使用 Halo DevTools
|
||||
|
||||
WarmIsland 使用 `vite-plugin-halo-theme` 插件,可以与 Halo 实例联动开发:
|
||||
|
||||
1. 确保本地 Halo 实例正在运行
|
||||
2. 在 Halo 后台安装主题的开发版本
|
||||
3. 修改源码后,主题会自动重新构建并推送到 Halo
|
||||
|
||||
```bash
|
||||
pnpm dev:halo
|
||||
```
|
||||
`pnpm dev` 用 nodemon 监听 `src/`、`public/`、`settings.yaml` 等文件的变化,
|
||||
每次变化自动执行一次 `astro build`,把结果写入 `templates/`。
|
||||
本项目是「静态模板产物 + Halo 运行时渲染」模式,没有 Astro 开发服务器,
|
||||
也不依赖 `vite-plugin-halo-theme`;本地预览请直接用 Halo 实例加载 `templates/`。
|
||||
|
||||
## 构建
|
||||
|
||||
@@ -62,15 +47,54 @@ pnpm dev:halo
|
||||
pnpm build
|
||||
```
|
||||
|
||||
构建产物位于 `dist/` 目录,包含所有模板文件和静态资源。
|
||||
构建产物位于 **`templates/`**(21 个 `.html` 模板 + `assets/` 静态资源),
|
||||
并由 `scripts/postbuild.mjs` 合并 `compat/assets` 中的历史哈希资源、校验资源引用。
|
||||
注意:`pnpm build` **不会**生成 ZIP 安装包。
|
||||
|
||||
### 打包主题
|
||||
|
||||
```bash
|
||||
pnpm package
|
||||
pnpm release # 推荐:build → snapshot → package
|
||||
# 或分步:pnpm build && pnpm snapshot && pnpm package
|
||||
```
|
||||
|
||||
生成 `.zip` 主题包,可直接在 Halo 后台上传安装。
|
||||
生成 `dist/warm-island-<version>.zip`,可直接在 Halo 后台上传安装。
|
||||
ZIP 根目录直接放 `theme.yaml` / `settings.yaml` / `templates/`,不要额外套一层目录。
|
||||
|
||||
> **`templates/` 被 `.gitignore` 忽略**,克隆仓库后默认不存在。若跳过 `pnpm build`
|
||||
> 直接 `pnpm package`,过去会产出不含任何模板的空壳包,上传后 Halo 报
|
||||
> `Template index was not found.` 并让首页 404。现在打包脚本会先校验
|
||||
> `index.html` 等模板、资源目录与版本号,不满足即报错退出。
|
||||
|
||||
## 性能与滚动顺滑
|
||||
|
||||
首页滚动曾经卡顿,根因不是 DOM 数量,而是「每帧高成本绘制 + 劫持滚动输入」:
|
||||
|
||||
| 问题 | 原因 | 现在的做法 |
|
||||
|------|------|------------|
|
||||
| 全屏模糊逐帧重算 | 滚动回调每帧改写 `backdrop-filter: blur(Npx)`,Chromium 每帧重做一次全屏背景采样 + 高斯模糊 | 模糊半径固定,滚动只改整层 `opacity`(合成层操作) |
|
||||
| 吸附吞掉滚动惯性 | 旧实现在 `wheel` / `touchend` 上 `preventDefault()` 并固定锁 800ms | 保留整屏吸附,但只在 `0 ↔ 内容区顶部` 边界接管一次;进入内容区后完全交给原生滚动。解锁用 `scrollend` + 600ms 兜底,已在目标位置时不再接管 |
|
||||
| Hero 一直绘制 | 固定全屏 Hero 的光球动画与模糊层在滚过首屏后仍在跑 | 内容区盖满视口后加 `wi-hero--offscreen` 隐藏并暂停动画 |
|
||||
| 状态反复写入 | 导航栏每个滚动帧都 `classList.add/remove` | 缓存状态,只在变化时写 |
|
||||
|
||||
**为什么吸附不用 CSS `scroll-snap`**:v1.2.5 初版试过 `html { scroll-snap-type: y proximity }`
|
||||
加内容区 `scroll-snap-align: start`,实际几乎不吸附——只有内容区顶部一个吸附点,页面顶部
|
||||
`0` 没有吸附点,`proximity` 只在滚动结束位置接近吸附点时才生效;换成 `mandatory` 则会在
|
||||
长内容的每次滚动后把页面拉回内容区顶部,正文无法阅读。`prefers-reduced-motion` 下 CSS 方案
|
||||
还会直接关闭吸附。因此改为脚本的边界吸附,CSS 侧不再设置 `scroll-snap`,避免与 `scrollTo`
|
||||
平滑动画抢夺滚动位置。
|
||||
|
||||
涉及文件:`src/pages/index.astro`(滚动渐隐 + 边界吸附脚本)、`src/components/HeroSection.astro`(模糊层与离屏规则)、
|
||||
`src/components/Navbar.astro`(状态去重)、`src/styles/main.scss`(平滑滚动与 reduced-motion)。
|
||||
|
||||
**可调项**:后台「总体样式 → 启用动效」可一键关闭滚动渐入,「Hero 首屏」可关闭整个 Hero;
|
||||
系统开启「减少动态效果」(`prefers-reduced-motion: reduce`)时,平滑滚动与光球 / 箭头动画停用,
|
||||
吸附改为即时定位(仍然可用)。长列表使用 `content-visibility: auto` 跳过视口外渲染,
|
||||
图片统一 `loading="lazy" decoding="async"`。
|
||||
|
||||
> 改动滚动逻辑后建议用浏览器 Performance 面板录制一次首页滚动:滚动帧里不应出现大面积
|
||||
> `Paint` / `Update Layer Tree`;也不要在 `scroll` 回调里读取 `getBoundingClientRect()` 之类
|
||||
> 会强制同步布局的属性(当前实现只在初始化 / resize 时测量内容区位置)。
|
||||
|
||||
## 项目结构
|
||||
|
||||
@@ -136,26 +160,26 @@ WarmIsland/
|
||||
|
||||
| 技术 | 版本 | 用途 |
|
||||
|------|------|------|
|
||||
| [Astro](https://astro.build) | 5.x | 静态站点生成,组件开发 |
|
||||
| [vite-plugin-halo-theme](https://github.com/halo-sigs/vite-plugin-halo-theme) | - | Halo 主题开发集成 |
|
||||
| [Thymeleaf](https://www.thymeleaf.org/) | - | Halo 服务端模板引擎 |
|
||||
| [Halo](https://www.halo.run/) | 2.27+ | 博客运行时,提供 Finder API 与主题渲染 |
|
||||
| [Astro](https://astro.build) | 6.x | 组件开发,构建输出静态 `.html` 模板 |
|
||||
| [Thymeleaf](https://www.thymeleaf.org/) | - | Halo 服务端模板引擎(源码里直接写 `th:*`) |
|
||||
|
||||
### 前端技术
|
||||
|
||||
| 技术 | 用途 |
|
||||
|------|------|
|
||||
| [Vue 3](https://vuejs.org/) | 交互组件(目录、点赞、无限滚动等) |
|
||||
| [SCSS](https://sass-lang.com/) | 样式预处理 |
|
||||
| [Prism.js](https://prismjs.com/) | 代码高亮 |
|
||||
| [LightGallery](https://www.lightgalleryjs.com/) | 图片灯箱 |
|
||||
| [SCSS](https://sass-lang.com/) | 样式预处理,CSS 变量驱动的配色系统 |
|
||||
| 原生 JavaScript | 滚动、菜单、主题切换、无限滚动等交互,无前端框架运行时 |
|
||||
| [LightGallery](https://www.lightgalleryjs.com/) | 图片灯箱(可选) |
|
||||
| Halo 插件生态 | 评论、代码高亮、服务端字数统计等由 Halo 与可选插件提供 |
|
||||
|
||||
### 构建工具
|
||||
|
||||
| 技术 | 用途 |
|
||||
|------|------|
|
||||
| [Vite](https://vitejs.dev/) | 构建打包 |
|
||||
| [Vite](https://vitejs.dev/)(Astro 内置) | 资源打包与内容哈希 |
|
||||
| [pnpm](https://pnpm.io/) | 包管理 |
|
||||
| [TypeScript](https://www.typescriptlang.org/) | 类型安全 |
|
||||
| [TypeScript](https://www.typescriptlang.org/) | 类型定义(`env.d.ts` / `pages.ts`) |
|
||||
|
||||
## 模板语法
|
||||
|
||||
@@ -163,7 +187,8 @@ WarmIsland 使用 Astro 编写组件,构建后输出为 Thymeleaf 模板供 Ha
|
||||
|
||||
### Astro 组件 → Thymeleaf 模板
|
||||
|
||||
Astro 组件中的前端代码会被 `vite-plugin-halo-theme` 转换为 Thymeleaf 模板:
|
||||
Astro 组件里直接书写 Thymeleaf 属性(`th:*`),构建时原样保留并输出成 `.html` 模板,
|
||||
由 Halo 在运行时渲染:
|
||||
|
||||
```astro
|
||||
---
|
||||
|
||||
+72
-2
@@ -2,11 +2,29 @@
|
||||
|
||||
## 安装相关
|
||||
|
||||
### 升级主题后首页 404「资源不存在 / Template index was not found」?
|
||||
|
||||
这是**安装包里没有模板文件**,不是主题代码或 Halo 版本问题。Halo 升级主题会用新包覆盖原主题目录,
|
||||
ZIP 里缺少 `templates/index.html` 时,渲染首页找不到 `index` 模板,直接返回 404。
|
||||
|
||||
**如何确认**:解压待上传的 ZIP,根目录应有 `theme.yaml`、`settings.yaml` 和 `templates/` 目录,
|
||||
其中有 `index.html`、`post.html` 等 20+ 个 `.html`。若只有几个 `.yaml`,就是「空壳包」——
|
||||
`templates/` 被 `.gitignore` 忽略,从源码仓库打包前没执行 `pnpm build` 就会这样。
|
||||
|
||||
**处理**:
|
||||
|
||||
1. 用完整安装包(Release 里的 ZIP)在 Halo 后台 → 主题管理 → 重新上传升级
|
||||
2. 或本地执行 `pnpm release`(build → snapshot → package)重新生成 `dist/warm-island-<version>.zip`
|
||||
3. 升级完成后清理一次 Halo 页面缓存 / CDN 缓存
|
||||
|
||||
当前版本的 `pnpm package` 会校验 `templates/index.html`、模板数量、资源目录与版本号一致性,
|
||||
构建产物缺失或不完整时直接报错退出,不会再产出空壳包。
|
||||
|
||||
### 主题安装后页面空白?
|
||||
|
||||
检查以下几点:
|
||||
|
||||
1. 确认 Halo 版本 >= 2.24.0
|
||||
1. 确认 Halo 版本 >= 2.27.0
|
||||
2. 确认主题已启用
|
||||
3. 清除浏览器缓存后重试(Ctrl+Shift+R 强制刷新)
|
||||
4. 检查 Halo 后台日志是否有报错
|
||||
@@ -26,8 +44,60 @@ docker cp templates/ halo:/root/.halo2/themes/warm-island/
|
||||
docker restart halo
|
||||
```
|
||||
|
||||
### 升级主题后整站都没有样式?
|
||||
|
||||
主题的 CSS / JS 文件名带内容哈希,每次构建都会变化。如果 Halo 页面缓存或前置反向代理
|
||||
(OpenResty、CDN 等)里还留着上一版本的 HTML,它请求的仍是已被删除的旧文件名,
|
||||
Halo 找不到文件时会返回 **500**(日志里能看到 `FileNotFoundException: .../templates/assets/Layout.xxxx.css`),
|
||||
于是样式全部失效。
|
||||
|
||||
依次处理:
|
||||
|
||||
1. Halo 后台执行一次「清理缓存」(设置 → 缓存,或直接重启 Halo / 容器)
|
||||
2. 刷新 CDN、反向代理缓存
|
||||
3. 浏览器强制刷新(Ctrl+Shift+R)
|
||||
|
||||
v1.2.1 起安装包会保留各版本的哈希资源(v1.1.7 之后全部覆盖),
|
||||
即使缓存里的旧 HTML 被再次请求也不会 500,但最终仍建议清一次缓存以使用最新样式。
|
||||
|
||||
### 升级主题或修改配色后,部分页面的新样式/配色不生效?
|
||||
|
||||
先说结论:**这不是主题问题,是「页面静态缓存」插件缓存了旧版 HTML。**
|
||||
|
||||
排查特征(本站实际案例):
|
||||
|
||||
- 换了主题配色,首页和瞬间页永远是默认配色,其他页面正常
|
||||
- 用 `curl` 直接请求同一个 URL 却能拿到新 HTML(极具迷惑性——缓存插件对
|
||||
非浏览器请求会绕过缓存,所以服务端"看起来"一切正常)
|
||||
- 响应头里有 `X-Halo-Cache-At` 和 `Cache-Control: max-age=3, s-maxage=120, must-revalidate`
|
||||
—— 这是「页面静态缓存」插件的特征头,`X-Halo-Cache-At` 就是缓存写入时间
|
||||
- 浏览器里页面引用的主题 CSS 还是旧版本的哈希文件名
|
||||
|
||||
原因:「页面静态缓存」插件**只监听文章内容的变动**自动刷新缓存,
|
||||
**主题升级、主题设置(配色、Hero、样式等)变更都不会刷新缓存**。
|
||||
缓存里的旧 HTML 是旧版本主题渲染的:没有新版的配色属性、引用的还是旧 CSS,
|
||||
所以新功能在那些页面上永远不出现,直到缓存被清理或被新访问覆盖。
|
||||
|
||||
处理步骤:
|
||||
|
||||
1. Halo 后台 → 仪表盘 → 快捷访问 → 添加「**刷新页面缓存**」入口 → 点击清理一次
|
||||
2. 浏览器强制刷新(Ctrl+Shift+R)
|
||||
3. 如果配了 CDN(插件会给已缓存页面发 `s-maxage=120`),确认 CDN 缓存策略为
|
||||
**遵循源站**,这样 CDN 最多 2 分钟就会回源,无需手动刷新
|
||||
|
||||
**长期建议**:以后每次**升级主题或修改主题设置**后,都点一次「刷新页面缓存」,
|
||||
否则未登录访客最长会一直看到旧页面(插件不会自动感知主题层的变更)。
|
||||
|
||||
## 功能相关
|
||||
|
||||
### 鼠标点击效果 / 拖尾效果开启了却没反应?
|
||||
|
||||
1. 确认「总体样式 → 鼠标点击效果」开关已开启并点击了保存
|
||||
2. 确认「点击效果类型」没有选择「关闭」(选了关闭时即使开启开关也不会有任何特效)
|
||||
3. 清除浏览器缓存后重试;老版本的浏览器请更新到较新的 Chrome / Edge / Firefox / Safari
|
||||
|
||||
若仍无效,打开浏览器控制台(F12)检查是否有 JS 报错 —— 第三方脚本报错会中断后续脚本执行。
|
||||
|
||||
### 搜索按钮不显示?
|
||||
|
||||
搜索功能依赖 Halo 搜索插件:
|
||||
@@ -100,7 +170,7 @@ docker restart halo
|
||||
|
||||
### 如何报告 Bug?
|
||||
|
||||
请在 [GitHub Issues](https://github.com/sunny-335/halo-theme-WarmIsland/issues) 中提交,包含以下信息:
|
||||
请在 [源码仓库 Issues](https://git.nxxy335.top/nxxy335/halo-theme-WarmIsland/issues) 中提交,包含以下信息:
|
||||
|
||||
- Halo 版本
|
||||
- 主题版本
|
||||
|
||||
@@ -27,7 +27,7 @@ WarmIsland(暖屿)是一款为 [Halo](https://halo.run) 打造的博客主
|
||||
|
||||
### 方式二:本地上传安装
|
||||
|
||||
1. 从 [GitHub Releases](https://github.com/nxxy335top/halo-theme-WarmIsland/releases) 下载最新版本的 `.zip` 安装包
|
||||
1. 从 [源码仓库](https://git.nxxy335.top/nxxy335/halo-theme-WarmIsland) 的 Releases / 发行版页面下载最新版本的 `.zip` 安装包
|
||||
2. 登录 Halo 后台管理控制台
|
||||
3. 进入 **主题** → **安装** → 选择 **本地上传**
|
||||
4. 上传下载的 `.zip` 文件
|
||||
|
||||
+2
-2
@@ -13,8 +13,8 @@ hero:
|
||||
text: 配置项
|
||||
link: /config/basic
|
||||
- theme: alt
|
||||
text: GitHub
|
||||
link: https://github.com/nxxy335top/halo-theme-WarmIsland
|
||||
text: 源码仓库
|
||||
link: https://git.nxxy335.top/nxxy335/halo-theme-WarmIsland
|
||||
|
||||
features:
|
||||
- title: 🎨 精致视觉
|
||||
|
||||
@@ -14,6 +14,7 @@ WarmIsland 主题深度集成了多款 Halo 插件,提供了丰富的扩展页
|
||||
| 装备 | [equipment](https://www.halo.run/store/apps/app-ytygyqml) | /equipments |
|
||||
| 足迹 | [footprint](https://www.halo.run/store/apps/app-XCtAQ) | /footprints |
|
||||
| Steam | [steam](https://www.halo.run/store/apps/app-0ojqyzfh) | /steam |
|
||||
| 记得 | [plugin-important-dates](https://github.com/yyliucha/plugin-important-dates) | /important-dates |
|
||||
|
||||
## 豆瓣页面
|
||||
[豆瓣插件](https://www.halo.run/store/apps/app-srBOL)
|
||||
@@ -36,6 +37,18 @@ WarmIsland 主题深度集成了多款 Halo 插件,提供了丰富的扩展页
|
||||
- 徽章展示
|
||||
- 最近游戏
|
||||
|
||||
## 记得页面
|
||||
|
||||
[记得插件](https://github.com/yyliucha/plugin-important-dates)
|
||||
记录重要的日子、牵挂的人与座驾,「生活 / 爱车」双视图展示:
|
||||
|
||||
- 重要日期(含农历)与倒计时便签
|
||||
- 牵挂的人:大头贴、昵称、关系与生日倒计时
|
||||
- 座驾:脱敏车牌、到期事项徽章、车主与驾驶人
|
||||
- 相册:点击车辆封面全屏只读浏览
|
||||
|
||||
详见 [记得页面](/pages/important-dates)。
|
||||
|
||||
::: info
|
||||
扩展页面需要安装对应的 Halo 插件才能使用。如果插件未安装,页面会显示友好的提示信息。
|
||||
:::
|
||||
@@ -0,0 +1,55 @@
|
||||
# 记得页面
|
||||
|
||||
`/important-dates` 由 [plugin-important-dates](https://github.com/yyliucha/plugin-important-dates) 插件提供路由,主题提供同名模板 `templates/important-dates.html` 覆盖插件默认样式,使页面完全融入 WarmIsland 的外观(导航、页脚、暗色模式)。
|
||||
|
||||
## 页面结构
|
||||
|
||||
```
|
||||
记得(标题 + 副标题 + 强调线)
|
||||
├─ 生活 / 爱车 视图切换(插件开启「前台爱车模块」时出现)
|
||||
├─ 到期提醒横幅(生活:重要日期;爱车:保险 / 年检 / 保养)
|
||||
├─ 生活视图
|
||||
│ ├─ 重要日期(便签卡片:倒计时、日期、农历标记、关联的人)
|
||||
│ └─ 牵挂的人(大头贴、昵称、关系、脱敏生日与倒计时)
|
||||
└─ 爱车视图
|
||||
├─ 我的爱车(封面、分类品牌、脱敏车牌、到期徽章、车主/驾驶人)
|
||||
└─ 车主与驾驶人 / 其他重要的人
|
||||
```
|
||||
|
||||
## 交互
|
||||
|
||||
- **视图切换**:点击「生活 / 爱车」即时切换,地址栏记忆 `?view=car`
|
||||
- **相册**:点击车辆封面全屏浏览相册(只读),`Esc` 或点击空白处关闭;未上传照片时给出轻提示
|
||||
- **忽略提醒**:横幅右侧 ✕ 表示「本次到期周期内不再提示」,记录在浏览器本地,到期日变化后自动恢复
|
||||
|
||||
## 模板覆盖机制
|
||||
|
||||
插件通过 Halo 的 `TemplateNameResolver` 解析模板名:
|
||||
|
||||
1. 主题存在 `templates/important-dates.html` → 使用主题模板
|
||||
2. 否则回退插件自带默认模板(会用主题的 `layout.html` 页面布局契约)
|
||||
|
||||
删除主题内的 `important-dates.html` 即可回到插件默认样式;插件不会写入或修改任何主题文件。
|
||||
|
||||
## 可用模板变量
|
||||
|
||||
| 变量 | 说明 |
|
||||
| --- | --- |
|
||||
| `title` | 页面标题(插件默认「记得」) |
|
||||
| `dates` / `people` | 重要日期、人员列表 |
|
||||
| `reminders` | 即将到来的重要日期(提醒横幅) |
|
||||
| `cars` / `carEvents` | 座驾列表、即将到期的座驾事项 |
|
||||
| `carPeople` / `otherPeople` / `personCars` | 车主驾驶人、其他人员、人员与车辆关系 |
|
||||
| `showCarSection` / `carSkinEnabled` / `showAvatar` / `showImportantTag` | 各展示开关 |
|
||||
| `allowDismiss` | 是否允许逐条忽略提醒 |
|
||||
|
||||
## 注意事项
|
||||
|
||||
::: warning
|
||||
`PersonVo` 没有 `gender` 字段,自定义模板时不要写 `${p.gender}`,否则会触发 SpEL `EL1008E` 导致页面 500。
|
||||
:::
|
||||
|
||||
## 相关页面
|
||||
|
||||
- [记得配置](/config/important-dates) — 页面标题与副标题
|
||||
- [扩展页面](/pages/extended) — 其它插件扩展页面
|
||||
@@ -1,2 +0,0 @@
|
||||
const js = `(function(){var h=document.querySelector(".hero");if(!h)return "No .hero element";var s=getComputedStyle(h);return JSON.stringify({width:s.width,marginLeft:s.marginLeft,marginTop:s.marginTop,paddingTop:s.paddingTop})})()`;
|
||||
console.log(Buffer.from(js).toString('base64'));
|
||||
@@ -1,130 +0,0 @@
|
||||
common.home=Home
|
||||
common.search=Search
|
||||
common.themeSwitch=Switch Theme
|
||||
common.menu=Menu
|
||||
common.close=Close
|
||||
common.toc=Table of Contents
|
||||
common.openToc=Open Table of Contents
|
||||
common.closeToc=Close Table of Contents
|
||||
common.newer=Newer
|
||||
common.older=Older
|
||||
common.loading=Loading...
|
||||
common.allLoaded=All posts loaded
|
||||
common.allMomentsLoaded=All moments loaded
|
||||
common.noPosts=No posts yet.
|
||||
common.postCount=Total {0} posts
|
||||
common.categoryCount=Total {0} categories
|
||||
common.tagCount=Total {0} tags
|
||||
common.readMore=Read more
|
||||
common.words=words
|
||||
common.readTime=min read
|
||||
common.views=views
|
||||
common.like=Like
|
||||
common.pagination=Pagination
|
||||
common.toggleMenu=Toggle menu
|
||||
common.all=All
|
||||
common.noPhotos=No photos yet.
|
||||
common.noPhotosInGroup=No photos in this group.
|
||||
common.pluginError=Plugin loading error, please check plugin status.
|
||||
common.installPlugin=This feature requires the {0} plugin, <a href="{1}">go to the marketplace to install</a>
|
||||
common.featured=Featured
|
||||
common.latestPosts=Latest Posts
|
||||
common.timeline=Timeline
|
||||
common.viewAll=View all
|
||||
|
||||
navbar.search=Search
|
||||
navbar.themeSwitch=Switch Theme
|
||||
|
||||
hero.pinned=Pinned
|
||||
hero.posts=Posts
|
||||
|
||||
article.previousPost=Previous
|
||||
article.nextPost=Next
|
||||
article.toc=Table of Contents
|
||||
article.wordCount=words
|
||||
article.readTime=min read
|
||||
article.views=views
|
||||
article.relatedPosts=Related Posts
|
||||
|
||||
share.title=Share
|
||||
share.qq=QQ
|
||||
share.wechat=WeChat
|
||||
share.weibo=Weibo
|
||||
share.twitter=X (Twitter)
|
||||
share.facebook=Facebook
|
||||
share.telegram=Telegram
|
||||
share.copyLink=Copy Link
|
||||
share.copied=Copied!
|
||||
share.qrcode=QR Code
|
||||
share.wechatQR=Scan to Share
|
||||
share.wechatHint=Open WeChat and scan the QR code to share
|
||||
|
||||
archives.title=Archives
|
||||
|
||||
categories.title=Categories
|
||||
|
||||
tags.title=Tags
|
||||
|
||||
links.title=Friends
|
||||
links.subtitle=Mountains and rivers, a journey of a thousand miles
|
||||
|
||||
moments.title=Moments
|
||||
moments.noMoments=No moments yet, go record your mood \U0001f319
|
||||
|
||||
photos.title=Gallery
|
||||
|
||||
friends.title=Friends Circle
|
||||
|
||||
equipment.title=Equipment
|
||||
|
||||
steam.title=Steam
|
||||
steam.homepage=Steam Homepage
|
||||
steam.level=Level
|
||||
steam.ownedGames=Owned Games
|
||||
steam.totalPlaytime=Total Playtime
|
||||
steam.recentPlaytime=Recent 2 Weeks
|
||||
steam.badges=Badges
|
||||
steam.hours=hours
|
||||
steam.recentlyPlayed=Recently Played
|
||||
steam.gameLibrary=Game Library
|
||||
steam.lastPlayed=Last played {0}
|
||||
|
||||
douban.title=Douban
|
||||
douban.wish=Wish
|
||||
douban.done=Done
|
||||
douban.wishRead=Wish
|
||||
douban.reading=Reading
|
||||
douban.listened=Listened
|
||||
douban.wishPlay=Wish
|
||||
douban.played=Played
|
||||
douban.wishListen=Wish
|
||||
douban.listening=Listening
|
||||
douban.playing=Playing
|
||||
douban.myRating=My:
|
||||
|
||||
messageboard.title=Message Board
|
||||
messageboard.subtitle=Leave your footprints here \U0001f319
|
||||
|
||||
footer.poweredBy=Powered by Halo
|
||||
|
||||
error.404.title=Page Not Found
|
||||
error.404.desc=The page you are looking for seems to have wandered off this island
|
||||
error.404.home=Back to Home
|
||||
error.404.back=Go Back
|
||||
error.500.title=Server Error
|
||||
error.500.desc=The island encountered some issues, please try again later
|
||||
error.500.home=Back to Home
|
||||
error.500.back=Go Back
|
||||
|
||||
sidebar.authorInfo=About Author
|
||||
sidebar.latestPosts=Latest Posts
|
||||
sidebar.recommendedPosts=Recommended
|
||||
sidebar.timeProgress=Time Progress
|
||||
sidebar.dayProgress=Day
|
||||
sidebar.monthProgress=Month
|
||||
sidebar.yearProgress=Year
|
||||
sidebar.categories=Categories
|
||||
sidebar.tags=Tags
|
||||
|
||||
comment.style=Warm
|
||||
comment.showAvatar=Show Avatar
|
||||
@@ -1,130 +0,0 @@
|
||||
common.home=Home
|
||||
common.search=Search
|
||||
common.themeSwitch=Switch Theme
|
||||
common.menu=Menu
|
||||
common.close=Close
|
||||
common.toc=Table of Contents
|
||||
common.openToc=Open Table of Contents
|
||||
common.closeToc=Close Table of Contents
|
||||
common.newer=Newer
|
||||
common.older=Older
|
||||
common.loading=Loading...
|
||||
common.allLoaded=All posts loaded
|
||||
common.noPosts=No posts yet.
|
||||
common.postCount=Total {0} posts
|
||||
common.readMore=Read more
|
||||
common.words=words
|
||||
common.readTime=min read
|
||||
common.views=views
|
||||
common.like=Like
|
||||
common.pagination=Pagination
|
||||
common.toggleMenu=Toggle menu
|
||||
common.allMomentsLoaded=All moments loaded
|
||||
common.categoryCount=Total {0} categories
|
||||
common.tagCount=Total {0} tags
|
||||
common.all=All
|
||||
common.noPhotos=No photos yet.
|
||||
common.noPhotosInGroup=No photos in this group.
|
||||
common.pluginError=Plugin loading error, please check plugin status.
|
||||
common.installPlugin=This feature requires the {0} plugin, <a href="{1}">go to the marketplace to install</a>
|
||||
common.featured=Featured
|
||||
common.latestPosts=Latest Posts
|
||||
common.timeline=Timeline
|
||||
common.viewAll=View all
|
||||
|
||||
navbar.search=Search
|
||||
navbar.themeSwitch=Switch Theme
|
||||
|
||||
hero.pinned=Pinned
|
||||
hero.posts=Posts
|
||||
|
||||
article.previousPost=Previous
|
||||
article.nextPost=Next
|
||||
article.toc=Table of Contents
|
||||
article.wordCount=words
|
||||
article.readTime=min read
|
||||
article.views=views
|
||||
article.relatedPosts=Related Posts
|
||||
|
||||
share.title=Share
|
||||
share.qq=QQ
|
||||
share.wechat=WeChat
|
||||
share.weibo=Weibo
|
||||
share.twitter=X (Twitter)
|
||||
share.facebook=Facebook
|
||||
share.telegram=Telegram
|
||||
share.copyLink=Copy Link
|
||||
share.copied=Copied!
|
||||
share.qrcode=QR Code
|
||||
share.wechatQR=Scan to Share
|
||||
share.wechatHint=Open WeChat and scan the QR code to share
|
||||
|
||||
archives.title=Archives
|
||||
|
||||
categories.title=Categories
|
||||
|
||||
tags.title=Tags
|
||||
|
||||
links.title=Friends
|
||||
links.subtitle=Mountains and rivers, a journey of a thousand miles
|
||||
|
||||
moments.title=Moments
|
||||
moments.noMoments=No moments yet, go record your mood \U0001f319
|
||||
|
||||
photos.title=Gallery
|
||||
|
||||
friends.title=Friends Circle
|
||||
|
||||
equipment.title=Equipment
|
||||
|
||||
steam.title=Steam
|
||||
steam.homepage=Steam Homepage
|
||||
steam.level=Level
|
||||
steam.ownedGames=Owned Games
|
||||
steam.totalPlaytime=Total Playtime
|
||||
steam.recentPlaytime=Recent 2 Weeks
|
||||
steam.badges=Badges
|
||||
steam.hours=hours
|
||||
steam.recentlyPlayed=Recently Played
|
||||
steam.gameLibrary=Game Library
|
||||
steam.lastPlayed=Last played {0}
|
||||
|
||||
douban.title=Douban
|
||||
douban.wish=Wish
|
||||
douban.done=Done
|
||||
douban.wishRead=Wish
|
||||
douban.reading=Reading
|
||||
douban.listened=Listened
|
||||
douban.wishPlay=Wish
|
||||
douban.played=Played
|
||||
douban.wishListen=Wish
|
||||
douban.listening=Listening
|
||||
douban.playing=Playing
|
||||
douban.myRating=My:
|
||||
|
||||
messageboard.title=Message Board
|
||||
messageboard.subtitle=Leave your footprints here \U0001f319
|
||||
|
||||
footer.poweredBy=Powered by Halo
|
||||
|
||||
error.404.title=Page Not Found
|
||||
error.404.desc=The page you are looking for seems to have wandered off this island
|
||||
error.404.home=Back to Home
|
||||
error.404.back=Go Back
|
||||
error.500.title=Server Error
|
||||
error.500.desc=The island encountered some issues, please try again later
|
||||
error.500.home=Back to Home
|
||||
error.500.back=Go Back
|
||||
|
||||
sidebar.authorInfo=About Author
|
||||
sidebar.latestPosts=Latest Posts
|
||||
sidebar.recommendedPosts=Recommended
|
||||
sidebar.timeProgress=Time Progress
|
||||
sidebar.dayProgress=Day
|
||||
sidebar.monthProgress=Month
|
||||
sidebar.yearProgress=Year
|
||||
sidebar.categories=Categories
|
||||
sidebar.tags=Tags
|
||||
|
||||
comment.style=Warm
|
||||
comment.showAvatar=Show Avatar
|
||||
@@ -1,130 +0,0 @@
|
||||
common.home=\u9996\u9875
|
||||
common.search=\u641c\u7d22
|
||||
common.themeSwitch=\u5207\u6362\u4e3b\u9898
|
||||
common.menu=\u83dc\u5355
|
||||
common.close=\u5173\u95ed
|
||||
common.toc=\u76ee\u5f55
|
||||
common.openToc=\u6253\u5f00\u76ee\u5f55
|
||||
common.closeToc=\u5173\u95ed\u76ee\u5f55
|
||||
common.newer=\u8f83\u65b0
|
||||
common.older=\u8f83\u65e7
|
||||
common.loading=\u52a0\u8f7d\u4e2d...
|
||||
common.allLoaded=\u5df2\u52a0\u8f7d\u5168\u90e8\u6587\u7ae0
|
||||
common.noPosts=\u6682\u65e0\u6587\u7ae0
|
||||
common.postCount=\u5171 {0} \u7bc7\u6587\u7ae0
|
||||
common.readMore=\u9605\u8bfb\u66f4\u591a
|
||||
common.words=\u5b57
|
||||
common.readTime=\u5206\u949f
|
||||
common.views=\u9605\u8bfb
|
||||
common.like=\u70b9\u8d5e
|
||||
common.pagination=\u5206\u9875
|
||||
common.toggleMenu=\u5207\u6362\u83dc\u5355
|
||||
common.allMomentsLoaded=\u5df2\u52a0\u8f7d\u5168\u90e8\u77ac\u95f4
|
||||
common.categoryCount=\u5171 {0} \u4e2a\u5206\u7c7b
|
||||
common.tagCount=\u5171 {0} \u4e2a\u6807\u7b7e
|
||||
common.all=\u5168\u90e8
|
||||
common.noPhotos=\u6682\u65e0\u56fe\u7247
|
||||
common.noPhotosInGroup=\u8be5\u5206\u7ec4\u6682\u65e0\u56fe\u7247
|
||||
common.pluginError=\u63d2\u4ef6\u52a0\u8f7d\u5f02\u5e38\uff0c\u8bf7\u68c0\u67e5\u63d2\u4ef6\u72b6\u6001
|
||||
common.installPlugin=\u8be5\u529f\u80fd\u9700\u8981\u5b89\u88c5\u300c{0}\u300d\u63d2\u4ef6\uff0c<a href="{1}">\u524d\u5f80\u5e94\u7528\u5e02\u573a\u5b89\u88c5</a>
|
||||
common.featured=\u7cbe\u9009
|
||||
common.latestPosts=\u6700\u65b0\u6587\u7ae0
|
||||
common.timeline=\u65f6\u95f4\u7ebf
|
||||
common.viewAll=\u67e5\u770b\u5168\u90e8
|
||||
|
||||
navbar.search=\u641c\u7d22
|
||||
navbar.themeSwitch=\u5207\u6362\u4e3b\u9898
|
||||
|
||||
hero.pinned=\u7f6e\u9876
|
||||
hero.posts=\u6587\u7ae0
|
||||
|
||||
article.previousPost=\u4e0a\u4e00\u7bc7
|
||||
article.nextPost=\u4e0b\u4e00\u7bc7
|
||||
article.toc=\u76ee\u5f55
|
||||
article.wordCount=\u5b57
|
||||
article.readTime=\u5206\u949f
|
||||
article.views=\u9605\u8bfb
|
||||
article.relatedPosts=\u76f8\u5173\u63a8\u8350
|
||||
|
||||
share.title=\u5206\u4eab
|
||||
share.qq=QQ
|
||||
share.wechat=\u5fae\u4fe1
|
||||
share.weibo=\u5fae\u535a
|
||||
share.twitter=X
|
||||
share.facebook=Facebook
|
||||
share.telegram=Telegram
|
||||
share.copyLink=\u590d\u5236\u94fe\u63a5
|
||||
share.copied=\u5df2\u590d\u5236
|
||||
share.qrcode=\u4e8c\u7ef4\u7801
|
||||
share.wechatQR=\u5fae\u4fe1\u626b\u7801\u5206\u4eab
|
||||
share.wechatHint=\u6253\u5f00\u5fae\u4fe1\uff0c\u626b\u63cf\u4e8c\u7ef4\u7801\u5373\u53ef\u5206\u4eab
|
||||
|
||||
archives.title=\u5f52\u6863
|
||||
|
||||
categories.title=\u5206\u7c7b
|
||||
|
||||
tags.title=\u6807\u7b7e
|
||||
|
||||
links.title=\u53cb\u94fe
|
||||
links.subtitle=\u5c71\u6c34\u4e00\u7a0b\uff0c\u4e09\u751f\u6709\u5e78
|
||||
|
||||
moments.title=\u52a8\u6001
|
||||
moments.noMoments=\u8fd8\u6ca1\u6709\u77ac\u95f4\uff0c\u5feb\u53bb\u8bb0\u5f55\u5f53\u4e0b\u7684\u5fc3\u60c5\u5427 \U0001f319
|
||||
|
||||
photos.title=\u76f8\u518c
|
||||
|
||||
friends.title=\u53cb\u4eba\u5708
|
||||
|
||||
equipment.title=\u88c5\u5907
|
||||
|
||||
steam.title=Steam
|
||||
steam.homepage=Steam \u4e3b\u9875
|
||||
steam.level=\u7b49\u7ea7
|
||||
steam.ownedGames=\u62e5\u6709\u6e38\u620f
|
||||
steam.totalPlaytime=\u603b\u6e38\u73a9\u65f6\u957f
|
||||
steam.recentPlaytime=\u8fd1\u4e24\u5468
|
||||
steam.badges=\u5fbd\u7ae0
|
||||
steam.hours=\u5c0f\u65f6
|
||||
steam.recentlyPlayed=\u6700\u8fd1\u6e38\u73a9
|
||||
steam.gameLibrary=\u6e38\u620f\u5e93
|
||||
steam.lastPlayed=\u6700\u540e\u6e38\u73a9 {0}
|
||||
|
||||
douban.title=\u8c46\u74e3
|
||||
douban.wish=\u60f3\u770b
|
||||
douban.done=\u770b\u8fc7
|
||||
douban.wishRead=\u60f3\u8bfb
|
||||
douban.reading=\u5728\u8bfb
|
||||
douban.listened=\u542c\u8fc7
|
||||
douban.wishPlay=\u60f3\u73a9
|
||||
douban.played=\u73a9\u8fc7
|
||||
douban.wishListen=\u60f3\u542c
|
||||
douban.listening=\u5728\u542c
|
||||
douban.playing=\u5728\u73a9
|
||||
douban.myRating=\u6211\u7684\uff1a
|
||||
|
||||
messageboard.title=\u7559\u8a00\u677f
|
||||
messageboard.subtitle=\u5728\u8fd9\u91cc\u7559\u4e0b\u4f60\u7684\u8db3\u8ff9 \U0001f319
|
||||
|
||||
footer.poweredBy=Powered by Halo
|
||||
|
||||
error.404.title=\u9875\u9762\u672a\u627e\u5230
|
||||
error.404.desc=\u4f60\u5bfb\u627e\u7684\u9875\u9762\u4f3c\u4e4e\u5df2\u7ecf\u8ff7\u8def\u4e86
|
||||
error.404.home=\u8fd4\u56de\u9996\u9875
|
||||
error.404.back=\u8fd4\u56de\u4e0a\u9875
|
||||
error.500.title=\u670d\u52a1\u5668\u9519\u8bef
|
||||
error.500.desc=\u5c0f\u5c9b\u9047\u5230\u4e86\u4e00\u4e9b\u95ee\u9898\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5
|
||||
error.500.home=\u8fd4\u56de\u9996\u9875
|
||||
error.500.back=\u8fd4\u56de\u4e0a\u9875
|
||||
|
||||
sidebar.authorInfo=\u535a\u4e3b\u4fe1\u606f
|
||||
sidebar.latestPosts=\u6700\u65b0\u6587\u7ae0
|
||||
sidebar.recommendedPosts=\u63a8\u8350\u6587\u7ae0
|
||||
sidebar.timeProgress=\u65f6\u5149\u8fdb\u5ea6
|
||||
sidebar.dayProgress=\u65e5
|
||||
sidebar.monthProgress=\u6708
|
||||
sidebar.yearProgress=\u5e74
|
||||
sidebar.categories=\u5206\u7c7b
|
||||
sidebar.tags=\u6807\u7b7e
|
||||
|
||||
comment.style=\u6e29\u6696
|
||||
comment.showAvatar=\u663e\u793a\u5934\u50cf
|
||||
@@ -1,130 +0,0 @@
|
||||
common.home=\u9996\u9801
|
||||
common.search=\u641c\u5c0b
|
||||
common.themeSwitch=\u5207\u63db\u4e3b\u984c
|
||||
common.menu=\u9078\u55ae
|
||||
common.close=\u95dc\u9589
|
||||
common.toc=\u76ee\u9304
|
||||
common.openToc=\u6253\u958b\u76ee\u9304
|
||||
common.closeToc=\u95dc\u9589\u76ee\u9304
|
||||
common.newer=\u8f03\u65b0
|
||||
common.older=\u8f03\u820a
|
||||
common.loading=\u8f09\u5165\u4e2d...
|
||||
common.allLoaded=\u5df2\u8f09\u5165\u5168\u90e8\u6587\u7ae0
|
||||
common.noPosts=\u66ab\u7121\u6587\u7ae0
|
||||
common.postCount=\u5171 {0} \u7bc7\u6587\u7ae0
|
||||
common.readMore=\u95b1\u8b80\u66f4\u591a
|
||||
common.words=\u5b57
|
||||
common.readTime=\u5206\u9418
|
||||
common.views=\u95b1\u8b80
|
||||
common.like=\u6309\u8b9a
|
||||
common.pagination=\u5206\u9801
|
||||
common.toggleMenu=\u5207\u63db\u9078\u55ae
|
||||
common.allMomentsLoaded=\u5df2\u8f09\u5165\u5168\u90e8\u77ac\u9593
|
||||
common.categoryCount=\u5171 {0} \u500b\u5206\u985e
|
||||
common.tagCount=\u5171 {0} \u500b\u6a19\u7c64
|
||||
common.all=\u5168\u90e8
|
||||
common.noPhotos=\u66ab\u7121\u5716\u7247
|
||||
common.noPhotosInGroup=\u8a72\u5206\u7d44\u66ab\u7121\u5716\u7247
|
||||
common.pluginError=\u5916\u639b\u7a0b\u5f0f\u8f09\u5165\u7570\u5e38\uff0c\u8acb\u6aa2\u67e5\u5916\u639b\u7a0b\u5f0f\u72c0\u614b
|
||||
common.installPlugin=\u8a72\u529f\u80fd\u9700\u8981\u5b89\u88dd\u300c{0}\u300d\u5916\u639b\u7a0b\u5f0f\uff0c<a href="{1}">\u524d\u5f80\u61c9\u7528\u5e02\u5834\u5b89\u88dd</a>
|
||||
common.featured=\u7cbe\u9078
|
||||
common.latestPosts=\u6700\u65b0\u6587\u7ae0
|
||||
common.timeline=\u6642\u9593\u7dda
|
||||
common.viewAll=\u67e5\u770b\u5168\u90e8
|
||||
|
||||
navbar.search=\u641c\u5c0b
|
||||
navbar.themeSwitch=\u5207\u63db\u4e3b\u984c
|
||||
|
||||
hero.pinned=\u7f6e\u9802
|
||||
hero.posts=\u6587\u7ae0
|
||||
|
||||
article.previousPost=\u4e0a\u4e00\u7bc7
|
||||
article.nextPost=\u4e0b\u4e00\u7bc7
|
||||
article.toc=\u76ee\u9304
|
||||
article.wordCount=\u5b57
|
||||
article.readTime=\u5206\u9418
|
||||
article.views=\u95b1\u8b80
|
||||
article.relatedPosts=\u76f8\u95dc\u63a8\u85a6
|
||||
|
||||
share.title=\u5206\u4eab
|
||||
share.qq=QQ
|
||||
share.wechat=\u5fae\u4fe1
|
||||
share.weibo=\u5fae\u535a
|
||||
share.twitter=X
|
||||
share.facebook=Facebook
|
||||
share.telegram=Telegram
|
||||
share.copyLink=\u8907\u88fd\u9023\u7d50
|
||||
share.copied=\u5df2\u8907\u88fd
|
||||
share.qrcode=\u4e8c\u7dad\u78bc
|
||||
share.wechatQR=\u5fae\u4fe1\u6383\u78bc\u5206\u4eab
|
||||
share.wechatHint=\u6253\u958b\u5fae\u4fe1\uff0c\u6383\u63cf\u4e8c\u7dad\u78bc\u5373\u53ef\u5206\u4eab
|
||||
|
||||
archives.title=\u6b78\u6a94
|
||||
|
||||
categories.title=\u5206\u985e
|
||||
|
||||
tags.title=\u6a19\u7c64
|
||||
|
||||
links.title=\u53cb\u93c8
|
||||
links.subtitle=\u5c71\u6c34\u4e00\u7a0b\uff0c\u4e09\u751f\u6709\u5e78
|
||||
|
||||
moments.title=\u52d5\u614b
|
||||
moments.noMoments=\u9084\u6c92\u6709\u77ac\u9593\uff0c\u5feb\u53bb\u8a18\u9304\u7576\u4e0b\u7684\u5fc3\u60c5\u5427 \U0001f319
|
||||
|
||||
photos.title=\u76f8\u7c3f
|
||||
|
||||
friends.title=\u53cb\u4eba\u5708
|
||||
|
||||
equipment.title=\u88dd\u5099
|
||||
|
||||
steam.title=Steam
|
||||
steam.homepage=Steam \u4e3b\u9801
|
||||
steam.level=\u7b49\u7d1a
|
||||
steam.ownedGames=\u64c1\u6709\u904a\u6232
|
||||
steam.totalPlaytime=\u7e3d\u904a\u73a9\u6642\u9577
|
||||
steam.recentPlaytime=\u8fd1\u5169\u9031
|
||||
steam.badges=\u5fbd\u7ae0
|
||||
steam.hours=\u5c0f\u6642
|
||||
steam.recentlyPlayed=\u6700\u8fd1\u904a\u73a9
|
||||
steam.gameLibrary=\u904a\u6232\u5eab
|
||||
steam.lastPlayed=\u6700\u5f8c\u904a\u73a9 {0}
|
||||
|
||||
douban.title=\u8c46\u74e3
|
||||
douban.wish=\u60f3\u770b
|
||||
douban.done=\u770b\u904e
|
||||
douban.wishRead=\u60f3\u8b80
|
||||
douban.reading=\u5728\u8b80
|
||||
douban.listened=\u807d\u904e
|
||||
douban.wishPlay=\u60f3\u73a9
|
||||
douban.played=\u73a9\u904e
|
||||
douban.wishListen=\u60f3\u807d
|
||||
douban.listening=\u5728\u807d
|
||||
douban.playing=\u5728\u73a9
|
||||
douban.myRating=\u6211\u7684\uff1a
|
||||
|
||||
messageboard.title=\u7559\u8a00\u677f
|
||||
messageboard.subtitle=\u5728\u9019\u88cf\u7559\u4e0b\u4f60\u7684\u8db3\u8de1 \U0001f319
|
||||
|
||||
footer.poweredBy=Powered by Halo
|
||||
|
||||
error.404.title=\u9801\u9762\u672a\u627e\u5230
|
||||
error.404.desc=\u4f60\u5c0b\u627e\u7684\u9801\u9762\u4f3c\u4e4e\u5df2\u7d93\u8ff7\u8def\u4e86
|
||||
error.404.home=\u8fd4\u56de\u9996\u9801
|
||||
error.404.back=\u8fd4\u56de\u4e0a\u9801
|
||||
error.500.title=\u4f3a\u670d\u5668\u932f\u8aa4
|
||||
error.500.desc=\u5c0f\u5cf6\u9047\u5230\u4e86\u4e00\u4e9b\u554f\u984c\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66
|
||||
error.500.home=\u8fd4\u56de\u9996\u9801
|
||||
error.500.back=\u8fd4\u56de\u4e0a\u9801
|
||||
|
||||
sidebar.authorInfo=\u535a\u4e3b\u8cc7\u8a0a
|
||||
sidebar.latestPosts=\u6700\u65b0\u6587\u7ae0
|
||||
sidebar.recommendedPosts=\u63a8\u85a6\u6587\u7ae0
|
||||
sidebar.timeProgress=\u6642\u5149\u9032\u5ea6
|
||||
sidebar.dayProgress=\u65e5
|
||||
sidebar.monthProgress=\u6708
|
||||
sidebar.yearProgress=\u5e74
|
||||
sidebar.categories=\u5206\u985e
|
||||
sidebar.tags=\u6a19\u7c64
|
||||
|
||||
comment.style=\u6eab\u6696
|
||||
comment.showAvatar=\u986f\u793a\u982d\u50cf
|
||||
+9
-14
@@ -1,12 +1,16 @@
|
||||
{
|
||||
"version": "1.1.1",
|
||||
"version": "1.2.5",
|
||||
"type": "module",
|
||||
"engines": {
|
||||
"node": ">=22.12.0"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "nodemon --config nodemon.json --exec 'astro build'",
|
||||
"build": "astro build && node -e \"const fs=require('fs');const src='templates/logo.png';const dst='templates/assets/logo.png';if(fs.existsSync(src)){fs.copyFileSync(src,dst)}\"",
|
||||
"build": "astro build && node scripts/postbuild.mjs",
|
||||
"snapshot": "node scripts/snapshot-assets.mjs",
|
||||
"package": "node scripts/package.mjs",
|
||||
"release": "pnpm run build && pnpm run snapshot && pnpm run package",
|
||||
"smoke": "node scripts/smoke-clickfx.mjs",
|
||||
"astro": "astro",
|
||||
"format": "prettier --write ."
|
||||
},
|
||||
@@ -23,24 +27,15 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"pnpm": {
|
||||
"onlyBuiltDependencies": [
|
||||
"@parcel/watcher",
|
||||
"sharp"
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/vue": "^6.0.1",
|
||||
"astro": "^6.1.4",
|
||||
"lightgallery": "^2.9.0",
|
||||
"vue": "^3.5.32"
|
||||
"lightgallery": "^2.9.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/mingcute": "^1.2.7",
|
||||
"@halo-dev/theme-package-cli": "^1.1.1",
|
||||
"nodemon": "^3.1.14",
|
||||
"prettier": "3.8.1",
|
||||
"prettier-plugin-astro": "0.14.1",
|
||||
"sass": "^1.87.0",
|
||||
"unplugin-icons": "^23.0.1"
|
||||
"sass": "^1.87.0"
|
||||
}
|
||||
}
|
||||
Generated
+682
-1061
File diff suppressed because it is too large.
Load diff
+1
-1
@@ -1,5 +1,5 @@
|
||||
allowBuilds:
|
||||
'@parcel/watcher': true
|
||||
"@parcel/watcher": true
|
||||
esbuild: true
|
||||
sharp: true
|
||||
onlyBuiltDependencies:
|
||||
|
||||
@@ -1,455 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-cn">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>字体分包构建报告</title>
|
||||
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fastly.jsdelivr.net/npm/vant@4.9.15/lib/index.css"
|
||||
/>
|
||||
<link
|
||||
href="https://unpkg.com/vue3-easy-data-table@1.5.47/dist/style.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link rel="stylesheet" href="./result.css" />
|
||||
<style>
|
||||
body {
|
||||
overflow-wrap: break-word;
|
||||
font-size: 18px;
|
||||
background-color: #edf0f3;
|
||||
--easy-table-border: 0;
|
||||
}
|
||||
main {
|
||||
padding: 20px;
|
||||
margin-top: var(--van-nav-bar-height);
|
||||
margin-bottom: var(--van-tabbar-height);
|
||||
}
|
||||
.light-blue {
|
||||
--easy-table-body-row-font-color: #427cb7;
|
||||
}
|
||||
.light-red {
|
||||
--easy-table-body-row-font-color: #b74273;
|
||||
}
|
||||
.hint {
|
||||
display: block;
|
||||
text-align: center;
|
||||
color: gray;
|
||||
margin: 1rem;
|
||||
}
|
||||
.scroller {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.user {
|
||||
height: 32%;
|
||||
padding: 0 12px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app">
|
||||
<van-nav-bar
|
||||
:title="reporter.state?.css?.family +' 分包报告'"
|
||||
right-text="Github"
|
||||
@click-right="toGithub"
|
||||
style="position: fixed; width: 100%; top: 0"
|
||||
></van-nav-bar>
|
||||
<div v-if="reporter.isLoading">加载中</div>
|
||||
<div v-if="reporter.isError">加载错误</div>
|
||||
|
||||
<main :style="style">
|
||||
<van-cell-group inset title="样式控制">
|
||||
<van-field
|
||||
v-model="fontSize"
|
||||
label="字体大小"
|
||||
placeholder="请输入字体大小"
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="fontWeight"
|
||||
label="字体重量"
|
||||
placeholder="请输入字重"
|
||||
></van-field>
|
||||
</van-cell-group>
|
||||
<!-- 汇总信息 -->
|
||||
<display-chart
|
||||
v-if="reporter.isOk() && activePage === 0"
|
||||
:reporter="reporter.state"
|
||||
></display-chart>
|
||||
<!-- 字体信息表格 -->
|
||||
<name-table
|
||||
v-if="reporter.isOk() && activePage === 1"
|
||||
:reporter="reporter.state"
|
||||
></name-table>
|
||||
<!-- 单包查询 -->
|
||||
<pkg-list
|
||||
v-if="reporter.isOk() && activePage === 2"
|
||||
:reporter="reporter.state"
|
||||
></pkg-list>
|
||||
<div class="hint">
|
||||
<a href="https://chinese-font.netlify.app">中文网字计划</a>
|
||||
<span> cn-font-split 生成 </span>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<!-- 底部导航栏 -->
|
||||
<van-tabbar v-model="activePage">
|
||||
<van-tabbar-item icon="home-o">汇总</van-tabbar-item>
|
||||
<van-tabbar-item icon="home-o">字体信息</van-tabbar-item>
|
||||
<van-tabbar-item icon="search">分包</van-tabbar-item>
|
||||
</van-tabbar>
|
||||
</div>
|
||||
</body>
|
||||
<script src="https://unpkg.com/vue@3.4.33"></script>
|
||||
<script src="https://unpkg.com/vant@4/lib/vant.min.js"></script>
|
||||
<script src="https://unpkg.com/vue3-easy-data-table@1.5.47/dist/vue3-easy-data-table.umd.js"></script>
|
||||
<script src="https://unpkg.com/echarts@5.5.1"></script>
|
||||
<script src="https://unpkg.com/vue-echarts@7.0.3"></script>
|
||||
<script src="https://unpkg.com/protobufjs@7.4.0/dist/protobuf.min.js"></script>
|
||||
<script>
|
||||
const { createApp } = Vue;
|
||||
const app = createApp({
|
||||
data() {
|
||||
return {
|
||||
reporter: PromiseToState(loadReport),
|
||||
activePage: 0,
|
||||
fontWeight: '',
|
||||
fontSize: 16,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
toGithub() {
|
||||
window.open('https://github.com/KonghaYao/cn-font-split');
|
||||
},
|
||||
},
|
||||
async mounted() {
|
||||
const state = await this.reporter.refetch();
|
||||
this.fontWeight = state.css.weight;
|
||||
},
|
||||
computed: {
|
||||
style() {
|
||||
const size = this.fontSize < 12 ? 12 : this.fontSize;
|
||||
return (
|
||||
`font-family: '${this.reporter.state?.css?.family}';` +
|
||||
`font-weight: ${this.fontWeight};` +
|
||||
`--van-cell-font-size: ${size}px;`
|
||||
);
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
/** 封装Promise为状态对象 **/
|
||||
function PromiseToState(fn) {
|
||||
return {
|
||||
state: {},
|
||||
isOk() {
|
||||
return !this.isLoading && !this.isError && this.state;
|
||||
},
|
||||
isLoading: false,
|
||||
isError: false,
|
||||
async refetch() {
|
||||
this.isLoading = true;
|
||||
this.isError = false;
|
||||
try {
|
||||
this.state = await fn();
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
this.isError = true;
|
||||
}
|
||||
this.isLoading = false;
|
||||
return this.state;
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
/** 载入构建出来的二进制报告文件 **/
|
||||
async function loadReport() {
|
||||
return new Promise((resolve, reject) => {
|
||||
protobuf.load('./index.proto', (err, root) => {
|
||||
if (err) return reject(err);
|
||||
fetch('./reporter.bin')
|
||||
.then((res) => res.arrayBuffer())
|
||||
.then((buf) => {
|
||||
const OutputReport = root.lookup('OutputReport');
|
||||
const data = OutputReport.decode(
|
||||
new Uint8Array(buf),
|
||||
);
|
||||
console.log(data);
|
||||
resolve(data);
|
||||
})
|
||||
.catch(reject);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
globalThis.app = app;
|
||||
app.use(vant);
|
||||
app.component('v-chart', VueECharts);
|
||||
app.component('easy-data-table', window['vue3-easy-data-table']);
|
||||
</script>
|
||||
|
||||
<!-- 汇总数据 -->
|
||||
<template id="display-chart">
|
||||
<van-cell-group inset title="构建信息">
|
||||
<van-cell title="构建工具" value="cn-font-split"></van-cell>
|
||||
<van-cell title="构建版本" :value="reporter.version"></van-cell>
|
||||
<van-cell title="构建平台" :value="reporter.platform"></van-cell>
|
||||
</van-cell-group>
|
||||
<van-cell-group inset title="构建详情">
|
||||
<div style="height: 300px; width: 400px">
|
||||
<v-chart :option="pieOptions"></v-chart>
|
||||
</div>
|
||||
<div style="height: 400px; width: 100%">
|
||||
<v-chart :option="option"></v-chart>
|
||||
</div>
|
||||
</van-cell-group>
|
||||
</template>
|
||||
<script>
|
||||
const tooltip = {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'cross',
|
||||
crossStyle: {
|
||||
color: '#999',
|
||||
},
|
||||
},
|
||||
};
|
||||
app.component('display-chart', {
|
||||
template: '#display-chart',
|
||||
props: {
|
||||
reporter: Object,
|
||||
},
|
||||
computed: {
|
||||
option() {
|
||||
const data = this.reporter.subsetDetail ?? [];
|
||||
return {
|
||||
title: {
|
||||
text: '构建耗时',
|
||||
x: 'center',
|
||||
},
|
||||
xAxis: { type: 'category' },
|
||||
tooltip,
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
|
||||
name: 'time / ms',
|
||||
},
|
||||
{
|
||||
type: 'value',
|
||||
name: 'bytes / KB',
|
||||
},
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: 'time',
|
||||
type: 'bar',
|
||||
data: data.map((i) => i.duration),
|
||||
},
|
||||
{
|
||||
name: 'bytes',
|
||||
type: 'line',
|
||||
data: data.map((i) =>
|
||||
(i.bytes / 1024).toFixed(2),
|
||||
),
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
pieOptions() {
|
||||
const message = this.reporter.bundleMessage;
|
||||
if (!message) return {};
|
||||
return {
|
||||
title: {
|
||||
text: '构建大小对比',
|
||||
x: 'center',
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: 'pie',
|
||||
radius: ['45%', '60%'],
|
||||
label: {
|
||||
formatter(b, c) {
|
||||
return `${b.name}\n${(
|
||||
b.value /
|
||||
(1024 * 1024)
|
||||
).toFixed(2)}MB`;
|
||||
},
|
||||
},
|
||||
data: [
|
||||
{
|
||||
value: message.bundledBytes,
|
||||
name: 'bundled',
|
||||
},
|
||||
{
|
||||
value: message.originBytes,
|
||||
name: 'origin',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'pie',
|
||||
radius: [0, '30%'],
|
||||
label: {
|
||||
formatter(b, c) {
|
||||
return `${b.name}\n${b.value}`;
|
||||
},
|
||||
},
|
||||
data: [
|
||||
{
|
||||
value: message.bundledSize,
|
||||
name: 'bundled',
|
||||
},
|
||||
{
|
||||
value: message.originSize,
|
||||
name: 'origin',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 字体信息表格 -->
|
||||
<template id="name-table">
|
||||
<van-cell-group inset title="CSS 信息">
|
||||
<van-cell
|
||||
title="font-family"
|
||||
:value="reporter.css?.family"
|
||||
></van-cell>
|
||||
<van-cell
|
||||
title="font-weight"
|
||||
:value="reporter.css?.weight"
|
||||
></van-cell>
|
||||
<van-cell
|
||||
title="font-style"
|
||||
:value="reporter.css?.style"
|
||||
></van-cell>
|
||||
<van-cell
|
||||
title="font-display"
|
||||
:value="reporter.css?.display"
|
||||
></van-cell>
|
||||
</van-cell-group>
|
||||
<van-cell-group inset title="字体信息">
|
||||
<easy-data-table
|
||||
:headers="columns"
|
||||
:items="reporter.nameTable??[]"
|
||||
:rows-per-page="1000"
|
||||
:body-row-class-name="useColor"
|
||||
></easy-data-table>
|
||||
</van-cell-group>
|
||||
</template>
|
||||
<script>
|
||||
app.component('name-table', {
|
||||
template: '#name-table',
|
||||
props: {
|
||||
reporter: Object,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
color: {
|
||||
Windows: 'light-blue',
|
||||
Macintosh: 'light-red',
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
text: '语言',
|
||||
value: 'language',
|
||||
sortable: true,
|
||||
|
||||
minWidth: '36px',
|
||||
},
|
||||
{
|
||||
text: '平台',
|
||||
value: 'platform',
|
||||
sortable: true,
|
||||
|
||||
minWidth: '20px',
|
||||
},
|
||||
{
|
||||
text: '名称',
|
||||
value: 'name',
|
||||
sortable: true,
|
||||
minWidth: '50px',
|
||||
},
|
||||
{
|
||||
text: '值',
|
||||
value: 'value',
|
||||
sortable: true,
|
||||
width: '200px',
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
useColor(item) {
|
||||
return this.color[item.platform];
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 每个包的数据 -->
|
||||
<template id="pkg-list">
|
||||
<van-cell-group inset>
|
||||
<van-field
|
||||
v-model="search"
|
||||
label="搜索"
|
||||
placeholder="请输入关键字"
|
||||
></van-field>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group inset title="字体分包详情">
|
||||
<v-list
|
||||
ref="list"
|
||||
:items="items"
|
||||
:first-render="10"
|
||||
style="height: 80vh"
|
||||
>
|
||||
<template #default="{ item, index }">
|
||||
<div style="padding: 0 1rem">
|
||||
<h2 :style="{ width: item.width }">
|
||||
ITEM: {{ index }} - {{ item.hash }}
|
||||
</h2>
|
||||
<span> {{String.fromCodePoint(...item.chars)}} </span>
|
||||
</div>
|
||||
</template>
|
||||
</v-list>
|
||||
</van-cell-group>
|
||||
</template>
|
||||
<script src="https://unpkg.com/@virtual-list/vue/dist/v3/index.iife.js"></script>
|
||||
<script>
|
||||
app.component('v-list', virtualListVue);
|
||||
app.component('pkg-list', {
|
||||
template: '#pkg-list',
|
||||
props: {
|
||||
reporter: Object,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeNames: [],
|
||||
search: '',
|
||||
};
|
||||
},
|
||||
mounted() {},
|
||||
computed: {
|
||||
items() {
|
||||
const list = this.reporter.subsetDetail ?? [];
|
||||
if (this.search) {
|
||||
return list.filter((i) => i.hash.includes(this.search));
|
||||
}
|
||||
return list;
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
app.mount('#app');
|
||||
</script>
|
||||
</html>
|
||||
@@ -1,117 +0,0 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api_interface;
|
||||
|
||||
message InputTemplate {
|
||||
bytes input = 1; // ttf/woff2 文件的 buffer
|
||||
optional string out_dir = 2; // 切割后放置文件的文件夹
|
||||
|
||||
// ====== 构建产物配置 ======
|
||||
|
||||
optional CssProperties css = 5; // CSS 配置
|
||||
optional string target_type = 6; // 目标类型
|
||||
repeated bytes subsets = 7; // 子集
|
||||
optional int32 chunk_size = 9; // 包大小
|
||||
optional float chunk_size_tolerance = 10; // 包大小容差
|
||||
optional int32 max_allow_subsets_count = 11; // 最大允许子集数量
|
||||
|
||||
optional bool test_html = 13; // 是否生成测试 HTML
|
||||
optional bool reporter = 14; // 是否生成 reporter.bin
|
||||
optional PreviewImage preview_image = 15; // 预览图像
|
||||
|
||||
optional string rename_output_font = 18; // 重命名输出字体
|
||||
optional string build_mode = 20; // TODO 构建模式
|
||||
|
||||
// ====== 预分包优化项配置 =======
|
||||
|
||||
optional bool language_areas = 8; // 是否进行语言区域优化
|
||||
optional bool multi_threads = 21; // TODO 是否使用多线程
|
||||
optional bool font_feature = 22; // 是否启用字体特性
|
||||
optional bool reduce_mins = 23; // 是否减少最小分包,
|
||||
optional bool auto_subset = 24; // 是否自动子集化
|
||||
optional bool subset_remain_chars = 25; // 是否自动添加没有声明的字符
|
||||
|
||||
// CSS 属性配置
|
||||
message CssProperties {
|
||||
optional string font_family = 1; // 字体家族名称
|
||||
optional string font_weight = 2; // 字体粗细
|
||||
optional string font_style = 3; // 字体样式
|
||||
optional string font_display = 4; // 字体显示方式
|
||||
repeated string local_family = 5; // 本地字体家族名称
|
||||
repeated PolyfillType polyfill = 6; // Polyfill 类型
|
||||
|
||||
// 注释属性
|
||||
|
||||
optional bool comment_base = 11; // 基础注释
|
||||
optional bool comment_name_table = 12; // 名称表注释
|
||||
optional bool comment_unicodes = 13; // Unicode 注释
|
||||
optional bool compress = 8; // 是否压缩
|
||||
optional string file_name = 9; // 文件名
|
||||
}
|
||||
|
||||
// Polyfill 类型
|
||||
message PolyfillType {
|
||||
string name = 1; // 名称
|
||||
string format = 2; // 格式
|
||||
}
|
||||
|
||||
// 预览图像
|
||||
message PreviewImage {
|
||||
string text = 1; // 会显示在 svg 中的文本
|
||||
string name = 2; // svg 文件的名称
|
||||
}
|
||||
}
|
||||
|
||||
enum EventName {
|
||||
UNSPECIFIED = 0;
|
||||
OUTPUT_DATA = 1; // "output_data"
|
||||
END = 2; // "end"
|
||||
}
|
||||
|
||||
message EventMessage {
|
||||
EventName event = 1;
|
||||
string message = 2;
|
||||
optional bytes data = 3;
|
||||
}
|
||||
message MultiMessages {
|
||||
repeated EventMessage messages = 1;
|
||||
}
|
||||
message OutputReport {
|
||||
string version = 1; // 版本号
|
||||
Css css = 2; // CSS相关信息,可以直接用
|
||||
string platform = 3; // 平台信息,rust 的构建平台
|
||||
|
||||
BundleMessage bundle_message = 24; // 构建消息
|
||||
repeated NameTable name_table = 25; // name 表信息
|
||||
repeated SubsetDetail subset_detail = 26; // 子集详情
|
||||
|
||||
message NameTable {
|
||||
string platform = 1; // 平台
|
||||
string language = 2; // 语言
|
||||
string name = 3; // 名称
|
||||
string value = 4; // 值
|
||||
}
|
||||
|
||||
message SubsetDetail {
|
||||
uint32 id = 1; // ID
|
||||
string hash = 2; // 哈希值
|
||||
string file_name = 6; // 文件名称
|
||||
uint32 bytes = 3; // 字节数
|
||||
repeated uint32 chars = 4; // 字符数组
|
||||
uint32 duration = 5; // 构建时间
|
||||
}
|
||||
|
||||
message BundleMessage {
|
||||
uint32 origin_size = 1; // 原始大小
|
||||
uint32 bundled_size = 2; // 产物大小
|
||||
uint32 origin_bytes = 3; // 原始字节数
|
||||
uint32 bundled_bytes = 4; // 产物字节数
|
||||
}
|
||||
|
||||
message Css {
|
||||
string family = 1; // 字体家族
|
||||
string style = 2; // 样式
|
||||
string weight = 3; // 字重
|
||||
string display = 4; // 显示方式
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
@@ -126,6 +126,5 @@
|
||||
<a class="wi-error__back" href="javascript:history.back()">返回上页</a>
|
||||
</div>
|
||||
</div>
|
||||
<script>(function(){var lang=navigator.language||'';var locale=lang.startsWith('zh-TW')||lang.startsWith('zh-HK')?'zh_TW':lang.startsWith('zh')?'zh_CN':'en';var i18n={zh_CN:{title:'页面走丢了',desc:'你寻找的页面似乎不在这个小岛上',home:'回到首页',back:'返回上页',pageTitle:'页面走丢了'},zh_TW:{title:'頁面走丟了',desc:'你尋找的頁面似乎不在這個小島上',home:'回到首頁',back:'返回上頁',pageTitle:'頁面走丟了'},en:{title:'Page Not Found',desc:'The page you are looking for seems to have wandered off this island',home:'Back to Home',back:'Go Back',pageTitle:'Page Not Found'}};var t=i18n[locale];var el=document.querySelector('.wi-error__title');if(el)el.textContent=t.title;var desc=document.querySelector('.wi-error__desc');if(desc)desc.textContent=t.desc;var home=document.querySelector('.wi-error__home');if(home)home.textContent=t.home;var back=document.querySelector('.wi-error__back');if(back)back.textContent=t.back;document.title=t.pageTitle+' - WarmIsland';})();</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
@@ -126,6 +126,5 @@
|
||||
<a class="wi-error__back" href="javascript:history.back()">返回上页</a>
|
||||
</div>
|
||||
</div>
|
||||
<script>(function(){var lang=navigator.language||'';var locale=lang.startsWith('zh-TW')||lang.startsWith('zh-HK')?'zh_TW':lang.startsWith('zh')?'zh_CN':'en';var i18n={zh_CN:{title:'服务器开小差了',desc:'小岛遇到了一些问题,稍后再来看看吧',home:'回到首页',back:'返回上页',pageTitle:'服务器开小差了'},zh_TW:{title:'伺服器開小差了',desc:'小島遇到了一些問題,稍後再來看看吧',home:'回到首頁',back:'返回上頁',pageTitle:'伺服器開小差了'},en:{title:'Server Error',desc:'The island encountered some issues, please try again later',home:'Back to Home',back:'Go Back',pageTitle:'Server Error'}};var t=i18n[locale];var el=document.querySelector('.wi-error__title');if(el)el.textContent=t.title;var desc=document.querySelector('.wi-error__desc');if(desc)desc.textContent=t.desc;var home=document.querySelector('.wi-error__home');if(home)home.textContent=t.home;var back=document.querySelector('.wi-error__back');if(back)back.textContent=t.back;document.title=t.pageTitle+' - WarmIsland';})();</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,21 +0,0 @@
|
||||
<ul class="wi-post-feed" role="list">
|
||||
<li th:each="post : ${posts.items}" class="wi-post-feed__item">
|
||||
<a class="wi-post-feed__link" th:href="@{${post.status.permalink}}">
|
||||
<div class="wi-post-feed__image-wrap" th:unless="${#strings.isEmpty(post.spec.cover)}">
|
||||
<img
|
||||
class="wi-post-feed__image"
|
||||
th:src="${post.spec.cover}"
|
||||
th:srcset="|${thumbnail.gen(post.spec.cover, 's')} 400w,
|
||||
${thumbnail.gen(post.spec.cover, 'm')} 800w,
|
||||
${thumbnail.gen(post.spec.cover, 'l')} 1200w|"
|
||||
sizes="(max-width: 768px) 100vw, 400px"
|
||||
/>
|
||||
</div>
|
||||
<div class="wi-post-feed__body">
|
||||
<p class="wi-post-feed__date" th:text="${#dates.format(post.spec.publishTime, 'yyyy-MM-dd')}"></p>
|
||||
<h2 class="wi-post-feed__title" th:text="${post.spec.title}"></h2>
|
||||
<p class="wi-post-feed__excerpt" th:text="${post.status.excerpt}"></p>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,212 @@
|
||||
/**
|
||||
* 打包主题安装包:dist/warm-island-<version>.zip
|
||||
*
|
||||
* 安装包结构与 Halo 主题目录一致(根目录直接放 theme.yaml / settings.yaml /
|
||||
* templates),与历史版本安装包保持相同布局,可直接上传安装。
|
||||
*
|
||||
* 仅依赖 Node 内置模块,无需额外依赖。
|
||||
*/
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import zlib from "node:zlib";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
||||
|
||||
/** 读取 theme.yaml 中的版本号(避免手抄版本号不一致) */
|
||||
function readThemeVersion() {
|
||||
const yaml = fs.readFileSync(path.join(root, "theme.yaml"), "utf8");
|
||||
const match = yaml.match(/^\s*version:\s*["']?([^"'\n]+)["']?\s*$/m);
|
||||
if (!match) {
|
||||
throw new Error("theme.yaml 中未找到 version 字段");
|
||||
}
|
||||
return match[1].trim();
|
||||
}
|
||||
|
||||
/* ---------------- CRC32 ---------------- */
|
||||
const CRC_TABLE = (() => {
|
||||
const table = new Int32Array(256);
|
||||
for (let i = 0; i < 256; i++) {
|
||||
let c = i;
|
||||
for (let k = 0; k < 8; k++) {
|
||||
c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
||||
}
|
||||
table[i] = c;
|
||||
}
|
||||
return table;
|
||||
})();
|
||||
|
||||
function crc32(buf) {
|
||||
let c = 0xffffffff;
|
||||
for (let i = 0; i < buf.length; i++) {
|
||||
c = CRC_TABLE[(c ^ buf[i]) & 0xff] ^ (c >>> 8);
|
||||
}
|
||||
return (c ^ 0xffffffff) >>> 0;
|
||||
}
|
||||
|
||||
/* ---------------- ZIP 写入 ---------------- */
|
||||
function dosDateTime(date = new Date()) {
|
||||
const time =
|
||||
((date.getHours() & 0x1f) << 11) |
|
||||
((date.getMinutes() & 0x3f) << 5) |
|
||||
((date.getSeconds() / 2) & 0x1f);
|
||||
const day =
|
||||
(((date.getFullYear() - 1980) & 0x7f) << 9) |
|
||||
(((date.getMonth() + 1) & 0xf) << 5) |
|
||||
(date.getDate() & 0x1f);
|
||||
return { time, day };
|
||||
}
|
||||
|
||||
function buildZip(entries, outFile) {
|
||||
const chunks = [];
|
||||
const central = [];
|
||||
let offset = 0;
|
||||
|
||||
for (const entry of entries) {
|
||||
const nameBuf = Buffer.from(entry.name, "utf8");
|
||||
const raw = entry.data;
|
||||
const crc = crc32(raw);
|
||||
const compressed = zlib.deflateRawSync(raw, { level: 9 });
|
||||
const useDeflate = compressed.length < raw.length;
|
||||
const body = useDeflate ? compressed : raw;
|
||||
const method = useDeflate ? 8 : 0;
|
||||
const { time, day } = dosDateTime(entry.date);
|
||||
|
||||
const local = Buffer.alloc(30);
|
||||
local.writeUInt32LE(0x04034b50, 0);
|
||||
local.writeUInt16LE(20, 4); // version needed
|
||||
local.writeUInt16LE(0x0800, 6); // UTF-8 名称
|
||||
local.writeUInt16LE(method, 8);
|
||||
local.writeUInt16LE(time, 10);
|
||||
local.writeUInt16LE(day, 12);
|
||||
local.writeUInt32LE(crc, 14);
|
||||
local.writeUInt32LE(body.length, 18);
|
||||
local.writeUInt32LE(raw.length, 22);
|
||||
local.writeUInt16LE(nameBuf.length, 26);
|
||||
local.writeUInt16LE(0, 28);
|
||||
|
||||
chunks.push(local, nameBuf, body);
|
||||
|
||||
const cd = Buffer.alloc(46);
|
||||
cd.writeUInt32LE(0x02014b50, 0);
|
||||
cd.writeUInt16LE(20, 4); // version made by
|
||||
cd.writeUInt16LE(20, 6); // version needed
|
||||
cd.writeUInt16LE(0x0800, 8);
|
||||
cd.writeUInt16LE(method, 10);
|
||||
cd.writeUInt16LE(time, 12);
|
||||
cd.writeUInt16LE(day, 14);
|
||||
cd.writeUInt32LE(crc, 16);
|
||||
cd.writeUInt32LE(body.length, 20);
|
||||
cd.writeUInt32LE(raw.length, 24);
|
||||
cd.writeUInt16LE(nameBuf.length, 28);
|
||||
cd.writeUInt16LE(0, 30); // extra
|
||||
cd.writeUInt16LE(0, 32); // comment
|
||||
cd.writeUInt16LE(0, 34); // disk start
|
||||
cd.writeUInt16LE(0, 36); // internal attrs
|
||||
cd.writeUInt32LE(0, 38); // external attrs
|
||||
cd.writeUInt32LE(offset, 42);
|
||||
central.push(Buffer.concat([cd, nameBuf]));
|
||||
|
||||
offset += local.length + nameBuf.length + body.length;
|
||||
}
|
||||
|
||||
const centralBuf = Buffer.concat(central);
|
||||
const eocd = Buffer.alloc(22);
|
||||
eocd.writeUInt32LE(0x06054b50, 0);
|
||||
eocd.writeUInt16LE(0, 4);
|
||||
eocd.writeUInt16LE(0, 6);
|
||||
eocd.writeUInt16LE(entries.length, 8);
|
||||
eocd.writeUInt16LE(entries.length, 10);
|
||||
eocd.writeUInt32LE(centralBuf.length, 12);
|
||||
eocd.writeUInt32LE(offset, 16);
|
||||
eocd.writeUInt16LE(0, 20);
|
||||
|
||||
fs.mkdirSync(path.dirname(outFile), { recursive: true });
|
||||
fs.writeFileSync(outFile, Buffer.concat([...chunks, centralBuf, eocd]));
|
||||
}
|
||||
|
||||
/* ---------------- 收集文件 ---------------- */
|
||||
const INCLUDE_ROOT = [
|
||||
"theme.yaml",
|
||||
"settings.yaml",
|
||||
"LICENSE",
|
||||
"README.md",
|
||||
"pnpm-lock.yaml",
|
||||
"pnpm-workspace.yaml",
|
||||
];
|
||||
const INCLUDE_DIRS = ["templates"];
|
||||
const EXCLUDE_DIRS = new Set([".git", "node_modules", "src", "dist", "compat", ".astro"]);
|
||||
|
||||
/* ---------------- 构建产物前置校验 ----------------
|
||||
* templates/ 被 .gitignore 忽略,克隆仓库或清理工作区后默认不存在。
|
||||
* 旧逻辑里 walk() 对不存在的目录只是静默跳过,于是会打出只含
|
||||
* theme.yaml / settings.yaml 的"空壳包";上传到 Halo 后旧主题被覆盖,
|
||||
* 找不到 index 模板,首页直接 404「Template index was not found.」。
|
||||
* 这里 fail fast,禁止产出这种包。
|
||||
*/
|
||||
function fail(message) {
|
||||
console.error(`[package] ${message}`);
|
||||
console.error("[package] 请先执行 pnpm build(或直接 pnpm release)生成完整模板产物后再打包。");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const templatesDir = path.join(root, "templates");
|
||||
if (!fs.existsSync(templatesDir)) fail("未找到 templates/ 目录");
|
||||
|
||||
const htmlTemplates = fs.readdirSync(templatesDir).filter((name) => name.endsWith(".html"));
|
||||
for (const required of ["index.html", "post.html", "page.html", "archives.html"]) {
|
||||
if (!htmlTemplates.includes(required)) fail(`缺少必需模板 templates/${required}`);
|
||||
}
|
||||
if (htmlTemplates.length < 10) {
|
||||
fail(`模板数量异常(仅 ${htmlTemplates.length} 个 .html),疑似构建不完整`);
|
||||
}
|
||||
if (!fs.existsSync(path.join(templatesDir, "assets"))) {
|
||||
fail("未找到 templates/assets/ 静态资源目录");
|
||||
}
|
||||
|
||||
const entries = [];
|
||||
|
||||
for (const name of INCLUDE_ROOT) {
|
||||
const full = path.join(root, name);
|
||||
if (fs.existsSync(full)) {
|
||||
entries.push({ name, data: fs.readFileSync(full), date: fs.statSync(full).mtime });
|
||||
}
|
||||
}
|
||||
|
||||
function walk(dir, prefix) {
|
||||
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
||||
const abs = path.join(dir, entry.name);
|
||||
const rel = prefix ? `${prefix}/${entry.name}` : entry.name;
|
||||
if (entry.isDirectory()) {
|
||||
if (EXCLUDE_DIRS.has(entry.name)) continue;
|
||||
walk(abs, rel);
|
||||
} else {
|
||||
entries.push({ name: rel, data: fs.readFileSync(abs), date: fs.statSync(abs).mtime });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const dir of INCLUDE_DIRS) {
|
||||
const full = path.join(root, dir);
|
||||
if (fs.existsSync(full)) walk(full, dir);
|
||||
}
|
||||
|
||||
if (!entries.some((entry) => entry.name === "templates/index.html")) {
|
||||
fail("打包清单中缺少 templates/index.html");
|
||||
}
|
||||
|
||||
const version = readThemeVersion();
|
||||
const pkgVersion = JSON.parse(fs.readFileSync(path.join(root, "package.json"), "utf8")).version;
|
||||
if (pkgVersion !== version) {
|
||||
fail(`版本号不一致:package.json=${pkgVersion},theme.yaml=${version}`);
|
||||
}
|
||||
|
||||
const outFile = path.join(root, "dist", `warm-island-${version}.zip`);
|
||||
buildZip(entries, outFile);
|
||||
|
||||
const assetCount = entries.filter((entry) => entry.name.startsWith("templates/assets/")).length;
|
||||
const sizeMB = (fs.statSync(outFile).size / 1024 / 1024).toFixed(2);
|
||||
console.log(
|
||||
`[package] dist/warm-island-${version}.zip(${entries.length} 个文件:` +
|
||||
`${htmlTemplates.length} 个模板 / ${assetCount} 个资源,${sizeMB}MB)`
|
||||
);
|
||||
@@ -0,0 +1,80 @@
|
||||
/**
|
||||
* 构建后置处理:
|
||||
* 1. 复制 logo.png 到 assets(保留历史行为)
|
||||
* 2. 合并 compat/assets 下的历史版本静态资源,避免站点/代理缓存中的旧 HTML
|
||||
* 仍然引用上一版本的哈希文件名时出现 500(FileNotFoundException)
|
||||
* 3. 校验所有 templates/*.html 引用的静态资源真实存在,缺失即构建失败
|
||||
*/
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
||||
const assetsDir = path.join(root, "templates", "assets");
|
||||
const compatDir = path.join(root, "compat", "assets");
|
||||
const templatesDir = path.join(root, "templates");
|
||||
|
||||
fs.mkdirSync(assetsDir, { recursive: true });
|
||||
|
||||
// 1. logo
|
||||
const logoSrc = path.join(templatesDir, "logo.png");
|
||||
if (fs.existsSync(logoSrc)) {
|
||||
fs.copyFileSync(logoSrc, path.join(assetsDir, "logo.png"));
|
||||
}
|
||||
|
||||
// 2. 历史资源合并(已存在的同名文件以当前构建为准,不覆盖)
|
||||
if (fs.existsSync(compatDir)) {
|
||||
let copied = 0;
|
||||
let skipped = 0;
|
||||
for (const entry of fs.readdirSync(compatDir, { withFileTypes: true })) {
|
||||
if (!entry.isFile()) continue;
|
||||
const src = path.join(compatDir, entry.name);
|
||||
const dst = path.join(assetsDir, entry.name);
|
||||
if (fs.existsSync(dst)) {
|
||||
skipped++;
|
||||
continue;
|
||||
}
|
||||
fs.copyFileSync(src, dst);
|
||||
copied++;
|
||||
}
|
||||
console.log(`[compat] 历史静态资源:复制 ${copied} 个,当前构建已覆盖 ${skipped} 个`);
|
||||
}
|
||||
|
||||
// 3. 资源引用校验
|
||||
const missing = [];
|
||||
const checked = new Set();
|
||||
/** 主题静态资源前缀,必须与 astro.config.mjs 的 base 保持一致 */
|
||||
const prefixes = ["/themes/warm-island/assets/"];
|
||||
|
||||
/** Thymeleaf 的 @{...} 链接表达式同样需要校验 */
|
||||
const REFERENCE_RE =
|
||||
/(?:href|src)=["']([^"']*?\/(?:themes\/[^/]+)\/assets\/[^"']+?)["']/g;
|
||||
|
||||
for (const file of fs.readdirSync(templatesDir)) {
|
||||
if (!file.endsWith(".html")) continue;
|
||||
const html = fs.readFileSync(path.join(templatesDir, file), "utf8");
|
||||
REFERENCE_RE.lastIndex = 0;
|
||||
let match;
|
||||
while ((match = REFERENCE_RE.exec(html)) !== null) {
|
||||
let ref = match[1];
|
||||
if (ref.includes("@{")) continue; // 由 Halo 运行时解析,跳过
|
||||
for (const prefix of prefixes) {
|
||||
if (!ref.startsWith(prefix)) continue;
|
||||
const rel = ref.slice(prefix.length).split("#")[0].split("?")[0];
|
||||
const key = `${file}:${rel}`;
|
||||
if (checked.has(key)) continue;
|
||||
checked.add(key);
|
||||
if (!fs.existsSync(path.join(assetsDir, rel))) {
|
||||
missing.push(`${file} -> ${ref}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (missing.length > 0) {
|
||||
console.error(`[verify] 发现 ${missing.length} 处静态资源缺失:`);
|
||||
for (const item of missing) console.error(` - ${item}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log(`[verify] 静态资源引用校验通过(${checked.size} 条引用)`);
|
||||
@@ -0,0 +1,154 @@
|
||||
/**
|
||||
* 点击特效脚本冒烟测试(Node 内置模块,无第三方依赖)。
|
||||
*
|
||||
* 直接从构建产物 templates/index.html 中取出特效脚本,放进桩 DOM 里执行,
|
||||
* 校验:启用/禁用判定、拖尾与点击分支、节点生成与定位。
|
||||
*
|
||||
* 这类 bug 的共同点是"不报错但没效果",靠读代码很难发现,所以固化成测试。
|
||||
* 用法:npm run build && npm run smoke
|
||||
*/
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import vm from "node:vm";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
||||
const template = path.join(root, "templates", "index.html");
|
||||
|
||||
if (!fs.existsSync(template)) {
|
||||
console.error("[smoke] 未找到 templates/index.html,请先执行 npm run build");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const html = fs.readFileSync(template, "utf8");
|
||||
const anchor = html.indexOf('id="wi-click-effect"');
|
||||
if (anchor === -1) {
|
||||
console.error("[smoke] 模板中未找到 #wi-click-effect 节点");
|
||||
process.exit(1);
|
||||
}
|
||||
const scriptOpen = html.indexOf("<script", anchor);
|
||||
const scriptStart = html.indexOf(">", scriptOpen) + 1;
|
||||
const scriptEnd = html.indexOf("</script>", scriptStart);
|
||||
const code = html.slice(scriptStart, scriptEnd);
|
||||
|
||||
const failures = [];
|
||||
|
||||
function makeEl(tag) {
|
||||
return {
|
||||
tagName: tag,
|
||||
className: "",
|
||||
innerHTML: "",
|
||||
textContent: "",
|
||||
children: [],
|
||||
parentNode: null,
|
||||
style: {},
|
||||
_attrs: {},
|
||||
get offsetWidth() {
|
||||
return 1;
|
||||
},
|
||||
getAttribute(name) {
|
||||
return Object.prototype.hasOwnProperty.call(this._attrs, name) ? this._attrs[name] : null;
|
||||
},
|
||||
appendChild(child) {
|
||||
if (child.parentNode) return child;
|
||||
child.parentNode = this;
|
||||
this.children.push(child);
|
||||
return child;
|
||||
},
|
||||
removeChild(child) {
|
||||
const i = this.children.indexOf(child);
|
||||
if (i >= 0) {
|
||||
this.children.splice(i, 1);
|
||||
child.parentNode = null;
|
||||
}
|
||||
return child;
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function run(attrs, expectEnabled, label) {
|
||||
const cfg = makeEl("div");
|
||||
Object.assign(cfg._attrs, attrs);
|
||||
const body = makeEl("body");
|
||||
const listeners = {};
|
||||
const sandbox = {
|
||||
document: {
|
||||
getElementById: (id) => (id === "wi-click-effect" ? cfg : null),
|
||||
createElement: makeEl,
|
||||
body,
|
||||
addEventListener(type, fn) {
|
||||
(listeners[type] = listeners[type] || []).push(fn);
|
||||
},
|
||||
},
|
||||
window: {},
|
||||
requestAnimationFrame: (fn) => fn(),
|
||||
setTimeout: () => 0,
|
||||
};
|
||||
vm.createContext(sandbox);
|
||||
vm.runInContext(code, sandbox);
|
||||
|
||||
const hasListener = Object.keys(listeners).length > 0;
|
||||
if (hasListener !== expectEnabled) {
|
||||
failures.push(`${label}:期望 ${expectEnabled ? "注册监听" : "不注册监听"},实际相反`);
|
||||
return;
|
||||
}
|
||||
if (!expectEnabled) {
|
||||
console.log(` ✔ ${label} -> 已跳过`);
|
||||
return;
|
||||
}
|
||||
|
||||
const layer = body.children.find((c) => c.className === "wi-click-fx-layer");
|
||||
if (!layer) {
|
||||
failures.push(`${label}:未创建 .wi-click-fx-layer`);
|
||||
return;
|
||||
}
|
||||
if (layer.children.length !== 0) {
|
||||
failures.push(`${label}:初始化时特效层不应有子节点`);
|
||||
return;
|
||||
}
|
||||
|
||||
const type = attrs["data-effect"] || "(缺失,走兜底 values)";
|
||||
if (listeners.click) {
|
||||
listeners.click[0]({ clientX: 120, clientY: 240 });
|
||||
} else if (listeners.mousemove) {
|
||||
listeners.mousemove[0]({ clientX: 120, clientY: 240 });
|
||||
} else {
|
||||
failures.push(`${label}:未注册 click 或 mousemove 监听`);
|
||||
return;
|
||||
}
|
||||
|
||||
const spawned = layer.children;
|
||||
if (spawned.length === 0) {
|
||||
failures.push(`${label}:effect=${type} 触发后未生成任何特效节点`);
|
||||
return;
|
||||
}
|
||||
const first = spawned[0];
|
||||
if (!String(first.className).startsWith("wi-click-fx ")) {
|
||||
failures.push(`${label}:特效节点缺少 wi-click-fx 基类(${first.className})`);
|
||||
}
|
||||
if (first.style.left !== "120px" || first.style.top !== "240px") {
|
||||
failures.push(`${label}:定位不正确(${first.style.left}, ${first.style.top})`);
|
||||
}
|
||||
console.log(` ✔ ${label} effect=${type} -> ${spawned.length} 个节点,className=${first.className}`);
|
||||
}
|
||||
|
||||
console.log("禁用场景:");
|
||||
run({ "data-enabled": "false", "data-effect": "values" }, false, "显式关闭");
|
||||
run({ "data-effect": "values" }, false, "配置缺失");
|
||||
run({ "data-enabled": "true", "data-effect": "off" }, false, "类型选了「关闭」");
|
||||
|
||||
console.log("点击场景:");
|
||||
for (const effect of ["values", "hearts", "fireworks", "ripples", "particles", "stars"]) {
|
||||
run({ "data-enabled": "true", "data-effect": effect }, true, effect);
|
||||
}
|
||||
console.log("兜底与拖尾:");
|
||||
run({ "data-enabled": "true" }, true, "type 缺省");
|
||||
run({ "data-enabled": "true", "data-effect": "star-trail" }, true, "star-trail");
|
||||
run({ "data-enabled": "true", "data-effect": "particle-trail" }, true, "particle-trail");
|
||||
|
||||
if (failures.length > 0) {
|
||||
console.error("\n[smoke] 失败:");
|
||||
for (const f of failures) console.error(" - " + f);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log("\n[smoke] 点击特效全部通过");
|
||||
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* 把当前构建产出的哈希静态资源快照进 compat/assets。
|
||||
*
|
||||
* 为什么要这么做:
|
||||
* Astro 给 CSS/JS 加内容哈希,主题升级后旧文件会被删除。若站点缓存或反向代理
|
||||
* (Halo 页面缓存 / Nginx / CDN)里还留着上一版本的 HTML,它仍然会请求旧哈希
|
||||
* 文件,Halo 找不到就直接抛 FileNotFoundException 返回 500,表现为"整站没样式"。
|
||||
* 把每个版本的哈希文件都留一份,旧 HTML 就永远不会请求失败。
|
||||
*
|
||||
* 用法:npm run build && npm run snapshot(随后把 compat/assets 的新增文件提交进仓库)
|
||||
*/
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
||||
const assetsDir = path.join(root, "templates", "assets");
|
||||
const compatDir = path.join(root, "compat", "assets");
|
||||
|
||||
if (!fs.existsSync(assetsDir)) {
|
||||
console.error("[snapshot] 未找到 templates/assets,请先执行 npm run build");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
fs.mkdirSync(compatDir, { recursive: true });
|
||||
|
||||
/** 名称固定、体积大的资源不需要进兼容层 */
|
||||
const SKIP_EXACT = new Set(["logo.png"]);
|
||||
const SKIP_DIRS = new Set(["fonts"]);
|
||||
|
||||
let added = 0;
|
||||
let updated = 0;
|
||||
let unchanged = 0;
|
||||
|
||||
for (const entry of fs.readdirSync(assetsDir, { withFileTypes: true })) {
|
||||
if (entry.isDirectory()) {
|
||||
if (SKIP_DIRS.has(entry.name)) continue;
|
||||
// 哈希资源都在根目录,子目录(如 fonts)不参与快照
|
||||
continue;
|
||||
}
|
||||
if (SKIP_EXACT.has(entry.name)) continue;
|
||||
|
||||
const src = path.join(assetsDir, entry.name);
|
||||
const dst = path.join(compatDir, entry.name);
|
||||
const stat = fs.statSync(src);
|
||||
if (!fs.existsSync(dst)) {
|
||||
fs.copyFileSync(src, dst);
|
||||
added++;
|
||||
} else {
|
||||
const dstBuf = fs.readFileSync(dst);
|
||||
const srcBuf = fs.readFileSync(src);
|
||||
if (dstBuf.length !== stat.size || !dstBuf.equals(srcBuf)) {
|
||||
fs.copyFileSync(src, dst);
|
||||
updated++;
|
||||
} else {
|
||||
unchanged++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log(
|
||||
`[snapshot] 新增 ${added} / 更新 ${updated} / 无变化 ${unchanged} 个历史资源(compat/assets)`
|
||||
);
|
||||
+359
-15
@@ -28,20 +28,63 @@ spec:
|
||||
- $formkit: text
|
||||
name: label_archives_title
|
||||
label: 归档页标题
|
||||
- group: welcome_popup
|
||||
label: 欢迎弹窗
|
||||
formSchema:
|
||||
- $formkit: switch
|
||||
name: welcome_popup_enabled
|
||||
id: welcome_popup_enabled
|
||||
label: 启用欢迎弹窗
|
||||
value: false
|
||||
help: 首页显示"欢迎来自 XX·XX·XX 的朋友"的浮动提示弹窗,基于访客 IP 地理定位
|
||||
- $formkit: select
|
||||
name: language
|
||||
label: 语言
|
||||
name: welcome_popup_position
|
||||
id: welcome_popup_position
|
||||
label: 弹窗位置
|
||||
options:
|
||||
- label: 跟随浏览器
|
||||
value: auto
|
||||
- label: 简体中文
|
||||
value: zh_CN
|
||||
- label: 繁體中文
|
||||
value: zh_TW
|
||||
- label: English
|
||||
value: en
|
||||
value: auto
|
||||
help: 设置主题界面语言,选择"跟随浏览器"将根据浏览器语言自动匹配
|
||||
- label: 顶端漂窗(顶部居中)
|
||||
value: top-center
|
||||
- label: 右上
|
||||
value: top-right
|
||||
- label: 左上
|
||||
value: top-left
|
||||
- label: 右下
|
||||
value: bottom-right
|
||||
- label: 左下
|
||||
value: bottom-left
|
||||
value: top-center
|
||||
if: "$get(welcome_popup_enabled).value === true"
|
||||
- $formkit: number
|
||||
name: welcome_popup_duration
|
||||
id: welcome_popup_duration
|
||||
label: 自动消失时间(秒)
|
||||
value: 5
|
||||
min: 3
|
||||
max: 60
|
||||
step: 1
|
||||
help: 弹窗自动消失的秒数,范围 3-60
|
||||
if: "$get(welcome_popup_enabled).value === true"
|
||||
- $formkit: url
|
||||
name: welcome_popup_api
|
||||
id: welcome_popup_api
|
||||
label: IP 定位主 API
|
||||
value: "https://myip.ipip.net/json"
|
||||
help: 返回 JSON 的 IP 定位主接口,默认 IPIP;留空使用默认值。支持 IPIP/腾讯/ipapi.co 等常见格式
|
||||
if: "$get(welcome_popup_enabled).value === true"
|
||||
- $formkit: url
|
||||
name: welcome_popup_fallback_api
|
||||
id: welcome_popup_fallback_api
|
||||
label: IP 定位备选 API
|
||||
value: "https://r.inews.qq.com/api/ip2city?otype=json"
|
||||
help: 主接口失败时尝试的备选接口,默认腾讯 ip2city;留空则不使用备选
|
||||
if: "$get(welcome_popup_enabled).value === true"
|
||||
- $formkit: switch
|
||||
name: welcome_popup_show_once
|
||||
id: welcome_popup_show_once
|
||||
label: 同会话仅显示一次
|
||||
value: true
|
||||
help: 开启后同一浏览器会话内不再重复弹出;关闭则每次访问首页都显示
|
||||
if: "$get(welcome_popup_enabled).value === true"
|
||||
- group: style
|
||||
label: 总体样式
|
||||
formSchema:
|
||||
@@ -56,10 +99,38 @@ spec:
|
||||
- label: 深色
|
||||
value: dark
|
||||
value: system
|
||||
- $formkit: select
|
||||
name: color_palette
|
||||
label: 主题配色
|
||||
options:
|
||||
- label: 暖屿 · 赤陶(默认)
|
||||
value: warm-island
|
||||
- label: 抹茶
|
||||
value: matcha
|
||||
- label: 黛蓝
|
||||
value: indigo
|
||||
- label: 樱粉
|
||||
value: sakura
|
||||
- label: 暮紫
|
||||
value: violet
|
||||
- label: 海盐
|
||||
value: sea
|
||||
- label: 琥珀
|
||||
value: amber
|
||||
- label: 梅酒
|
||||
value: plum
|
||||
- label: 石墨
|
||||
value: graphite
|
||||
- label: 可拿铁
|
||||
value: cocoa
|
||||
- label: 天青
|
||||
value: azure
|
||||
value: warm-island
|
||||
help: 整套官方预调配色(含深浅两套色板);下方的强调色留空时跟随所选配色,填写后将覆盖配色中的强调色
|
||||
- $formkit: color
|
||||
name: accent_color
|
||||
label: 强调色
|
||||
value: "#d4764e"
|
||||
help: 自定义强调色;留空使用「主题配色」自带的强调色
|
||||
- $formkit: select
|
||||
name: border_radius
|
||||
label: 圆角风格
|
||||
@@ -99,9 +170,36 @@ spec:
|
||||
label: 滚动渐入
|
||||
value: true
|
||||
- $formkit: switch
|
||||
name: animation_cursor_glow
|
||||
label: 光感跟随
|
||||
name: click_effect_enabled
|
||||
id: click_effect_enabled
|
||||
label: 鼠标点击效果
|
||||
value: false
|
||||
help: 在页面上点击鼠标时触发的视觉特效
|
||||
- $formkit: select
|
||||
name: click_effect_type
|
||||
id: click_effect_type
|
||||
label: 点击效果类型
|
||||
value: values
|
||||
if: "$get(click_effect_enabled).value === true"
|
||||
options:
|
||||
- label: 关闭
|
||||
value: off
|
||||
- label: 社会主义核心价值观
|
||||
value: values
|
||||
- label: 随机彩色爱心
|
||||
value: hearts
|
||||
- label: 烟花
|
||||
value: fireworks
|
||||
- label: 烟花波纹
|
||||
value: ripples
|
||||
- label: 粒子
|
||||
value: particles
|
||||
- label: 星星
|
||||
value: stars
|
||||
- label: 星星拖尾
|
||||
value: star-trail
|
||||
- label: 粒子拖尾
|
||||
value: particle-trail
|
||||
- group: navbar
|
||||
label: 导航栏
|
||||
formSchema:
|
||||
@@ -116,6 +214,35 @@ spec:
|
||||
- label: Float
|
||||
value: float
|
||||
value: glass
|
||||
- $formkit: select
|
||||
name: navbar_brand_type
|
||||
id: navbar_brand_type
|
||||
label: 左侧显示
|
||||
options:
|
||||
- label: 站点名称
|
||||
value: title
|
||||
- label: Logo
|
||||
value: logo
|
||||
value: title
|
||||
- $formkit: attachment
|
||||
name: navbar_logo
|
||||
id: navbar_logo
|
||||
label: 导航栏 Logo
|
||||
help: 选择"Logo"模式后在此上传图片;留空则使用基础设置中的自定义 Logo
|
||||
if: "$get(navbar_brand_type).value === 'logo'"
|
||||
- $formkit: select
|
||||
name: navbar_logo_radius
|
||||
id: navbar_logo_radius
|
||||
label: Logo 圆角
|
||||
options:
|
||||
- label: 直角
|
||||
value: square
|
||||
- label: 圆角
|
||||
value: rounded
|
||||
- label: 圆形
|
||||
value: circle
|
||||
value: rounded
|
||||
if: "$get(navbar_brand_type).value === 'logo'"
|
||||
- $formkit: switch
|
||||
name: navbar_show_search
|
||||
label: 显示搜索按钮
|
||||
@@ -188,9 +315,79 @@ spec:
|
||||
label: 自定义描述文案
|
||||
key: hero_custom_description
|
||||
if: "$get(hero_description_mode).value === 'custom'"
|
||||
- $formkit: switch
|
||||
name: hero_hitokoto_auto_refresh
|
||||
id: hero_hitokoto_auto_refresh
|
||||
label: 一言自动刷新
|
||||
value: false
|
||||
help: 开启后按设定间隔自动刷新一言内容
|
||||
- $formkit: select
|
||||
name: hero_hitokoto_refresh_interval
|
||||
label: 一言刷新间隔
|
||||
if: "$get(hero_hitokoto_auto_refresh).value === true"
|
||||
options:
|
||||
- label: 5 秒
|
||||
value: 5000
|
||||
- label: 10 秒
|
||||
value: 10000
|
||||
- label: 15 秒
|
||||
value: 15000
|
||||
- label: 20 秒
|
||||
value: 20000
|
||||
- label: 25 秒
|
||||
value: 25000
|
||||
- label: 30 秒
|
||||
value: 30000
|
||||
value: 10000
|
||||
- $formkit: attachment
|
||||
name: hero_background_image
|
||||
label: 背景图片
|
||||
- $formkit: attachment
|
||||
name: hero_background_image_dark
|
||||
label: 深色模式背景图片
|
||||
help: 深色模式下显示的背景图;留空则深色模式也使用上方背景图
|
||||
- $formkit: color
|
||||
name: hero_title_color_light
|
||||
label: 浅色模式大标题颜色
|
||||
help: Hero 大标题文字颜色(浅色模式);留空使用主题默认
|
||||
- $formkit: color
|
||||
name: hero_title_color_dark
|
||||
label: 深色模式大标题颜色
|
||||
help: Hero 大标题文字颜色(深色模式);留空使用主题默认
|
||||
- $formkit: color
|
||||
name: hero_subtitle_color_light
|
||||
label: 浅色模式副标题颜色
|
||||
help: Hero 副标题文字颜色(浅色模式);留空使用主题默认
|
||||
- $formkit: color
|
||||
name: hero_subtitle_color_dark
|
||||
label: 深色模式副标题颜色
|
||||
help: Hero 副标题文字颜色(深色模式);留空使用主题默认
|
||||
- $formkit: color
|
||||
name: hero_quote_color_light
|
||||
label: 浅色模式一言颜色
|
||||
help: 一言(描述文案来源为"一言"时)的文字颜色(浅色模式);留空使用主题默认
|
||||
- $formkit: color
|
||||
name: hero_quote_color_dark
|
||||
label: 深色模式一言颜色
|
||||
help: 一言的文字颜色(深色模式);留空使用主题默认
|
||||
- $formkit: select
|
||||
name: hero_text_effect
|
||||
label: 文字显示效果
|
||||
options:
|
||||
- label: 无效果(默认)
|
||||
value: none
|
||||
- label: 阴影
|
||||
value: shadow
|
||||
- label: 光晕
|
||||
value: glow
|
||||
- label: 半透明遮罩层
|
||||
value: scrim
|
||||
- label: 渐变遮罩
|
||||
value: gradient
|
||||
- label: 容器(半透明边框圆角矩形)
|
||||
value: frame
|
||||
value: none
|
||||
help: 为 Hero 文字(标题/副标题/一言)叠加的辅助可读效果;默认无效果。遮罩类与容器类会在文字背后垫一层衬底并增加留白
|
||||
- group: home
|
||||
label: 首页
|
||||
formSchema:
|
||||
@@ -304,6 +501,16 @@ spec:
|
||||
- label: Cold
|
||||
value: cold
|
||||
value: warm
|
||||
- $formkit: switch
|
||||
name: article_extra_spacing
|
||||
label: 中英文混排自动加空格
|
||||
value: true
|
||||
help: 依赖「API 扩展包」插件,在服务端为正文自动添加中英文间距;插件未安装时自动跳过
|
||||
- $formkit: switch
|
||||
name: article_extra_highlight
|
||||
label: 使用服务端代码高亮
|
||||
value: false
|
||||
help: 依赖「API 扩展包」全量版(含 JS 运行时),启用后由服务端渲染代码高亮并替代主题自带样式;如环境不支持请勿开启
|
||||
- $formkit: select
|
||||
name: article_toc_expand
|
||||
label: 目录展开模式
|
||||
@@ -371,6 +578,10 @@ spec:
|
||||
- label: Masonry
|
||||
value: masonry
|
||||
value: cards
|
||||
- $formkit: attachment
|
||||
name: moments_cover
|
||||
label: 顶部封面图
|
||||
help: 朋友圈样式顶部的封面图片,建议尺寸 1500×500
|
||||
- $formkit: select
|
||||
name: moments_loading_mode
|
||||
label: 加载方式
|
||||
@@ -418,6 +629,11 @@ spec:
|
||||
- group: links
|
||||
label: 友情链接
|
||||
formSchema:
|
||||
- $formkit: switch
|
||||
name: links_apply_form_enabled
|
||||
label: 显示友链申请表单
|
||||
value: true
|
||||
help: 在友链页底部展示访客申请表单;需链接管理插件开启「友链申请」功能,未开启时表单自动隐藏
|
||||
- $formkit: text
|
||||
name: links_page_title
|
||||
label: 页面标题
|
||||
@@ -432,12 +648,88 @@ spec:
|
||||
- label: Cards
|
||||
value: cards
|
||||
value: cards
|
||||
- $formkit: switch
|
||||
name: links_show_comment
|
||||
label: 显示评论
|
||||
value: false
|
||||
help: 默认关闭评论功能,开启后在友情链接页面底部显示评论区
|
||||
- $formkit: switch
|
||||
name: links_random_order
|
||||
label: 随机排列
|
||||
value: false
|
||||
help: 开启后友情链接卡片随机排列顺序
|
||||
- $formkit: switch
|
||||
name: links_random_portal
|
||||
label: 随机传送门按钮
|
||||
value: true
|
||||
help: 开启后页面右上角显示"随机传送"按钮,点击随机访问一位博友
|
||||
- group: subscriptions
|
||||
label: 订阅
|
||||
formSchema:
|
||||
- $formkit: text
|
||||
name: subscriptions_page_title
|
||||
label: 页面标题
|
||||
placeholder: "订阅"
|
||||
- $formkit: text
|
||||
name: subscriptions_subtitle
|
||||
label: 页面副标题
|
||||
placeholder: "博友们的最新文章"
|
||||
- $formkit: number
|
||||
name: subscriptions_page_size
|
||||
label: 每页显示数量
|
||||
value: 20
|
||||
min: 1
|
||||
max: 100
|
||||
help: 单页展示的订阅动态条数,范围 1-100
|
||||
- $formkit: select
|
||||
name: subscriptions_loading_mode
|
||||
label: 加载方式
|
||||
options:
|
||||
- label: 分页
|
||||
value: pagination
|
||||
- label: 下滑加载
|
||||
value: infinite_scroll
|
||||
value: pagination
|
||||
- $formkit: select
|
||||
name: subscriptions_layout
|
||||
label: 布局样式
|
||||
options:
|
||||
- label: 列表卡片
|
||||
value: list
|
||||
- label: 网格卡片
|
||||
value: grid
|
||||
value: list
|
||||
help: 网格卡片布局一行显示3个,内容区域更宽
|
||||
- group: friends
|
||||
label: 朋友圈
|
||||
formSchema:
|
||||
- $formkit: text
|
||||
name: friends_page_title
|
||||
label: 页面标题
|
||||
- group: weread
|
||||
label: 微信读书
|
||||
formSchema:
|
||||
- $formkit: text
|
||||
name: weread_page_title
|
||||
label: 页面标题
|
||||
placeholder: "书架"
|
||||
help: 页面顶部标题与浏览器标签页标题;插件自带的标题区会自动隐藏以避免重复
|
||||
- $formkit: text
|
||||
name: weread_page_subtitle
|
||||
label: 页面副标题
|
||||
placeholder: "来自微信读书的同步藏书"
|
||||
- group: important_dates
|
||||
label: 记得
|
||||
formSchema:
|
||||
- $formkit: text
|
||||
name: idates_page_title
|
||||
label: 页面标题
|
||||
placeholder: "记得"
|
||||
help: 对应「记得」插件的前台页面 /important-dates;留空时使用插件自带的标题
|
||||
- $formkit: text
|
||||
name: idates_page_subtitle
|
||||
label: 页面副标题
|
||||
placeholder: "记着重要的日子、惦记的人,还有陪你跑的爱车"
|
||||
- group: messageboard
|
||||
label: 留言板
|
||||
formSchema:
|
||||
@@ -469,9 +761,61 @@ spec:
|
||||
- $formkit: text
|
||||
name: footer_copyright
|
||||
label: 版权信息(留空则使用默认格式 © 年份 站点标题)
|
||||
- $formkit: switch
|
||||
name: footer_show_stats
|
||||
id: footer_show_stats
|
||||
label: 显示全站统计
|
||||
value: true
|
||||
help: 在页脚展示文章数、分类数、评论数、访问量等站点统计数据
|
||||
- $formkit: checkbox
|
||||
name: footer_stats_items
|
||||
id: footer_stats_items
|
||||
label: 统计项
|
||||
if: "$get(footer_show_stats).value !== false"
|
||||
options:
|
||||
- label: 文章数
|
||||
value: post
|
||||
- label: 分类数
|
||||
value: category
|
||||
- label: 评论数
|
||||
value: comment
|
||||
- label: 访问量
|
||||
value: visit
|
||||
- label: 点赞数
|
||||
value: upvote
|
||||
- label: 总字数
|
||||
value: word
|
||||
value:
|
||||
- post
|
||||
- category
|
||||
- comment
|
||||
- visit
|
||||
help: 总字数依赖「API 扩展包」插件,未安装时自动隐藏该项
|
||||
- $formkit: switch
|
||||
name: footer_show_icp
|
||||
label: 显示 ICP 备案号
|
||||
value: false
|
||||
help: 开启后页脚显示 ICP 备案链接
|
||||
- $formkit: text
|
||||
name: footer_icp
|
||||
label: ICP 备案号
|
||||
help: 工信部ICP备案号,填写后页脚显示备案链接(指向 beian.miit.gov.cn)
|
||||
if: "$get(footer_show_icp).value === true"
|
||||
- $formkit: switch
|
||||
name: footer_show_mps
|
||||
label: 显示公网安备号
|
||||
value: false
|
||||
help: 开启后页脚显示公网安备图标和链接
|
||||
- $formkit: text
|
||||
name: footer_mps
|
||||
label: 公网安备号
|
||||
help: 公安部联网备案号,填写后页脚显示备案图标和链接(指向 beian.mps.gov.cn)
|
||||
if: "$get(footer_show_mps).value === true"
|
||||
- $formkit: text
|
||||
name: footer_mps_url
|
||||
label: 公网安备跳转链接
|
||||
help: 留空时默认指向 https://beian.mps.gov.cn/ ,可填写其他备案查询链接
|
||||
if: "$get(footer_show_mps).value === true"
|
||||
- $formkit: repeater
|
||||
name: footer_socials
|
||||
label: 社交链接
|
||||
|
||||
@@ -0,0 +1,329 @@
|
||||
---
|
||||
/*
|
||||
* 点击特效组件。
|
||||
*
|
||||
* 设计要点:容器节点始终输出,由脚本读取 data-enabled / data-effect 决定行为。
|
||||
* 旧写法用 th:if 依赖配置值严格等于布尔 true,一旦配置未落库、值不是布尔,
|
||||
* 或 Thymeleaf 求值把属性移除,节点就不会渲染 —— 特效静默失效且无任何报错。
|
||||
*
|
||||
* 特效元素统一挂到 body 下的 .wi-click-fx-layer:
|
||||
* .wi-main 是独立的层叠上下文(z-index:1),留在里面会被导航栏/页脚遮住。
|
||||
*
|
||||
* spawn() 里必须强制回流,否则新节点的初态与终态在同一帧被合并,
|
||||
* transition 不会触发,表现同样是"点了没反应"。
|
||||
*/
|
||||
---
|
||||
|
||||
<div
|
||||
id="wi-click-effect"
|
||||
hidden
|
||||
th:attr="data-effect=${theme.config?.style?.click_effect_type ?: 'values'},data-enabled=${theme.config?.style?.click_effect_enabled}"
|
||||
></div>
|
||||
|
||||
<script is:inline th:inline="none">
|
||||
(function () {
|
||||
var cfg = document.getElementById("wi-click-effect");
|
||||
if (!cfg) return;
|
||||
|
||||
if ((cfg.getAttribute("data-enabled") || "").trim() !== "true") return;
|
||||
|
||||
var effect = (cfg.getAttribute("data-effect") || "").trim();
|
||||
if (!effect) effect = "values";
|
||||
if (effect === "off") return;
|
||||
|
||||
/* 社会主义核心价值观 */
|
||||
var CORE_VALUES = [
|
||||
"富强", "民主", "文明", "和谐",
|
||||
"自由", "平等", "公正", "法治",
|
||||
"爱国", "敬业", "诚信", "友善"
|
||||
];
|
||||
|
||||
var RANDOM_COLORS = [
|
||||
"#ff6b6b", "#f06595", "#cc5de8", "#845ef7",
|
||||
"#5c7cfa", "#339af0", "#22b8cf", "#20c997",
|
||||
"#51cf66", "#94d82d", "#fcc419", "#ff922b"
|
||||
];
|
||||
|
||||
function pick(list) {
|
||||
return list[Math.floor(Math.random() * list.length)];
|
||||
}
|
||||
|
||||
/*
|
||||
* 特效层统一挂在 body 下:
|
||||
* .wi-main 自身是层叠上下文(z-index:1),留在里面会被导航栏/页脚遮住;
|
||||
* 同时该层 position:fixed 且铺满视口,内部 fixed 子元素的
|
||||
* left/top 仍等价于 clientX/clientY。
|
||||
*/
|
||||
var layer = document.createElement("div");
|
||||
layer.className = "wi-click-fx-layer";
|
||||
document.body.appendChild(layer);
|
||||
|
||||
/* 创建单个 DOM 元素并加入特效层,返回后即可设置终态样式 */
|
||||
function spawn(el, x, y) {
|
||||
el.style.left = x + "px";
|
||||
el.style.top = y + "px";
|
||||
layer.appendChild(el);
|
||||
/*
|
||||
* 强制回流:新插入的元素若在同一帧内被改写 transform/opacity,
|
||||
* 浏览器会把初态与终态合并,transition 不会触发 —— 表现为"没有任何效果"。
|
||||
*/
|
||||
void el.offsetWidth;
|
||||
return el;
|
||||
}
|
||||
|
||||
function removeLater(el, delay) {
|
||||
setTimeout(function () {
|
||||
if (el.parentNode) el.parentNode.removeChild(el);
|
||||
}, delay);
|
||||
}
|
||||
|
||||
/* ========== 1. 社会主义核心价值观 ========== */
|
||||
function spawnValueText(x, y) {
|
||||
var el = document.createElement("span");
|
||||
el.className = "wi-click-fx wi-click-fx--text";
|
||||
el.textContent = pick(CORE_VALUES);
|
||||
el.style.color = pick(RANDOM_COLORS);
|
||||
spawn(el, x, y);
|
||||
removeLater(el, 1300);
|
||||
}
|
||||
|
||||
/* ========== 2. 随机彩色爱心 ========== */
|
||||
function spawnHeart(x, y) {
|
||||
var el = document.createElement("span");
|
||||
el.className = "wi-click-fx wi-click-fx--heart";
|
||||
el.innerHTML = "❤";
|
||||
el.style.color = pick(RANDOM_COLORS);
|
||||
spawn(el, x, y);
|
||||
el.style.transform = "translate(calc(-50% + " + ((Math.random() - 0.5) * 80).toFixed(1) + "px), -90px) scale(0.3)";
|
||||
el.style.opacity = "0";
|
||||
removeLater(el, 1100);
|
||||
}
|
||||
|
||||
/* ========== 3. 烟花 ========== */
|
||||
function spawnFirework(x, y) {
|
||||
var count = 18;
|
||||
var color = pick(RANDOM_COLORS);
|
||||
for (var i = 0; i < count; i++) {
|
||||
var el = document.createElement("span");
|
||||
el.className = "wi-click-fx wi-click-fx--spark";
|
||||
el.style.background = color;
|
||||
el.style.boxShadow = "0 0 6px " + color;
|
||||
var angle = (Math.PI * 2 * i) / count;
|
||||
var dist = 40 + Math.random() * 34;
|
||||
spawn(el, x, y);
|
||||
el.style.transform = "translate(calc(-50% + " + (Math.cos(angle) * dist).toFixed(1) + "px), calc(-50% + " + (Math.sin(angle) * dist).toFixed(1) + "px)) scale(0)";
|
||||
el.style.opacity = "0";
|
||||
removeLater(el, 900);
|
||||
}
|
||||
}
|
||||
|
||||
/* ========== 4. 烟花波纹 ========== */
|
||||
function spawnRipple(x, y) {
|
||||
var color = pick(RANDOM_COLORS);
|
||||
for (var r = 0; r < 2; r++) {
|
||||
var el = document.createElement("span");
|
||||
el.className = "wi-click-fx wi-click-fx--ripple";
|
||||
el.style.borderColor = color;
|
||||
spawn(el, x, y);
|
||||
(function (el, delay) {
|
||||
setTimeout(function () {
|
||||
el.style.transform = "translate(-50%, -50%) scale(4)";
|
||||
el.style.opacity = "0";
|
||||
removeLater(el, 700);
|
||||
}, delay);
|
||||
})(el, r * 160);
|
||||
removeLater(el, 160 + 900);
|
||||
}
|
||||
}
|
||||
|
||||
/* ========== 5. 粒子 ========== */
|
||||
function spawnParticles(x, y, n) {
|
||||
n = n || 10;
|
||||
for (var i = 0; i < n; i++) {
|
||||
var el = document.createElement("span");
|
||||
el.className = "wi-click-fx wi-click-fx--particle";
|
||||
el.style.background = pick(RANDOM_COLORS);
|
||||
spawn(el, x, y);
|
||||
el.style.transform = "translate(calc(-50% + " + ((Math.random() - 0.5) * 60).toFixed(1) + "px), calc(-50% + " + ((Math.random() - 0.5) * 60 - 20).toFixed(1) + "px)) scale(0)";
|
||||
el.style.opacity = "0";
|
||||
removeLater(el, 800);
|
||||
}
|
||||
}
|
||||
|
||||
/* ========== 6. 星星 ========== */
|
||||
function spawnStar(x, y) {
|
||||
var el = document.createElement("span");
|
||||
el.className = "wi-click-fx wi-click-fx--star";
|
||||
el.innerHTML = "★";
|
||||
el.style.color = pick(RANDOM_COLORS);
|
||||
spawn(el, x, y);
|
||||
el.style.transform = "translate(calc(-50% + " + ((Math.random() - 0.5) * 50).toFixed(1) + "px), calc(-50% + " + ((Math.random() - 0.5) * 50 - 30).toFixed(1) + "px)) scale(1.6)";
|
||||
el.style.opacity = "0";
|
||||
removeLater(el, 900);
|
||||
}
|
||||
|
||||
/* 点击分发 */
|
||||
var clickHandlers = {
|
||||
"values": spawnValueText,
|
||||
"hearts": spawnHeart,
|
||||
"fireworks": spawnFirework,
|
||||
"ripples": spawnRipple,
|
||||
"particles": function (x, y) { spawnParticles(x, y, 10); },
|
||||
"stars": spawnStar
|
||||
};
|
||||
|
||||
/* 拖尾效果 */
|
||||
function spawnTrailStar(x, y) {
|
||||
var el = document.createElement("span");
|
||||
el.className = "wi-click-fx wi-click-fx--trail-star";
|
||||
el.innerHTML = "★";
|
||||
el.style.color = pick(RANDOM_COLORS);
|
||||
spawn(el, x, y);
|
||||
el.style.opacity = "0";
|
||||
removeLater(el, 700);
|
||||
}
|
||||
|
||||
function spawnTrailParticle(x, y) {
|
||||
var el = document.createElement("span");
|
||||
el.className = "wi-click-fx wi-click-fx--trail-particle";
|
||||
el.style.background = pick(RANDOM_COLORS);
|
||||
spawn(el, x, y);
|
||||
el.style.opacity = "0";
|
||||
removeLater(el, 600);
|
||||
}
|
||||
|
||||
var trailHandlers = {
|
||||
"star-trail": spawnTrailStar,
|
||||
"particle-trail": spawnTrailParticle
|
||||
};
|
||||
|
||||
var isTrail = effect.indexOf("trail") !== -1;
|
||||
|
||||
if (isTrail) {
|
||||
var handler = trailHandlers[effect];
|
||||
if (!handler) return;
|
||||
var lastX = 0;
|
||||
var lastY = 0;
|
||||
var throttling = false;
|
||||
document.addEventListener(
|
||||
"mousemove",
|
||||
function (e) {
|
||||
lastX = e.clientX;
|
||||
lastY = e.clientY;
|
||||
if (throttling) return;
|
||||
throttling = true;
|
||||
requestAnimationFrame(function () {
|
||||
throttling = false;
|
||||
handler(lastX, lastY);
|
||||
});
|
||||
},
|
||||
{ passive: true }
|
||||
);
|
||||
} else {
|
||||
var handler = clickHandlers[effect];
|
||||
if (!handler) return;
|
||||
document.addEventListener(
|
||||
"click",
|
||||
function (e) {
|
||||
handler(e.clientX, e.clientY);
|
||||
},
|
||||
{ passive: true }
|
||||
);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<style is:global>
|
||||
/* 特效层:铺满视口的固定层,统一承载所有点击/拖尾元素 */
|
||||
.wi-click-fx-layer {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 12050;
|
||||
pointer-events: none;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.wi-click-fx {
|
||||
position: fixed;
|
||||
pointer-events: none;
|
||||
will-change: transform, opacity;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.wi-click-fx--text {
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
transform: translate(-50%, -50%);
|
||||
animation: wi-fx-text 1.2s ease-out forwards;
|
||||
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
|
||||
}
|
||||
|
||||
.wi-click-fx--heart {
|
||||
font-size: 20px;
|
||||
opacity: 1;
|
||||
transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1), opacity 1s ease-out;
|
||||
}
|
||||
|
||||
.wi-click-fx--spark {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-radius: 50%;
|
||||
opacity: 1;
|
||||
transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.8s ease-out;
|
||||
}
|
||||
|
||||
.wi-click-fx--ripple {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border: 2px solid;
|
||||
border-radius: 50%;
|
||||
transform: translate(-50%, -50%) scale(0.5);
|
||||
opacity: 0.9;
|
||||
transition: transform 0.7s ease-out, opacity 0.7s ease-out;
|
||||
}
|
||||
|
||||
.wi-click-fx--particle {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
opacity: 1;
|
||||
transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.7s ease-out;
|
||||
}
|
||||
|
||||
.wi-click-fx--star {
|
||||
font-size: 16px;
|
||||
opacity: 1;
|
||||
transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.8s ease-out;
|
||||
}
|
||||
|
||||
.wi-click-fx--trail-star {
|
||||
font-size: 12px;
|
||||
transform: translate(-50%, -50%);
|
||||
opacity: 0.9;
|
||||
transition: opacity 0.6s ease-out, transform 0.6s ease-out;
|
||||
}
|
||||
|
||||
.wi-click-fx--trail-particle {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-radius: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
opacity: 0.9;
|
||||
transition: opacity 0.5s ease-out, transform 0.5s ease-out;
|
||||
}
|
||||
|
||||
@keyframes wi-fx-text {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate(-50%, -50%) scale(0.5);
|
||||
}
|
||||
20% {
|
||||
opacity: 1;
|
||||
transform: translate(-50%, -80%) scale(1.1);
|
||||
}
|
||||
to {
|
||||
opacity: 0;
|
||||
transform: translate(-50%, -120%) scale(0.9);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,56 +0,0 @@
|
||||
---
|
||||
---
|
||||
|
||||
<div class="wi-cursor-glow" id="wi-cursor-glow"></div>
|
||||
|
||||
<script is:inline>
|
||||
(function(){
|
||||
var glowEl = document.getElementById("wi-cursor-glow");
|
||||
if (!glowEl) return;
|
||||
var rafId = 0;
|
||||
document.addEventListener("mousemove", function(e) {
|
||||
if (rafId) return;
|
||||
rafId = requestAnimationFrame(function() {
|
||||
glowEl.style.transform = "translate(calc(" + e.clientX + "px - 50%), calc(" + e.clientY + "px - 50%))";
|
||||
glowEl.classList.add("wi-cursor-glow--visible");
|
||||
rafId = 0;
|
||||
});
|
||||
}, { passive: true });
|
||||
document.addEventListener("mouseleave", function() {
|
||||
glowEl.classList.remove("wi-cursor-glow--visible");
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.wi-cursor-glow {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 400px;
|
||||
height: 400px;
|
||||
border-radius: 50%;
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(212, 118, 78, 0.06) 0%,
|
||||
transparent 70%
|
||||
);
|
||||
pointer-events: none;
|
||||
z-index: 9999;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
.wi-cursor-glow--visible {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
html.dark .wi-cursor-glow {
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(232, 149, 95, 0.04) 0%,
|
||||
transparent 70%
|
||||
);
|
||||
}
|
||||
</style>
|
||||
Loaded 100 of 150 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user