From 35eba4f142bfcec26fc9f42b3e0d7970a9d48d17 Mon Sep 17 00:00:00 2001 From: sakurayinfei <970412446@qq.com> Date: Sat, 5 Jul 2025 17:27:38 +0800 Subject: [PATCH 1/8] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=96=87=E6=A1=A3=E6=A1=86=E6=9E=B6-=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=97=A7=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/docs/badge.md | 18 ------- packages/docs/breadcrumb.md | 15 ------ packages/docs/button.md | 38 --------------- packages/docs/checkbox.md | 55 --------------------- packages/docs/divider.md | 15 ------ packages/docs/global.md | 39 --------------- packages/docs/i18n.md | 51 -------------------- packages/docs/input-number.md | 38 --------------- packages/docs/input.md | 91 ----------------------------------- packages/docs/link.md | 28 ----------- packages/docs/menu.md | 50 ------------------- packages/docs/name.md | 12 ----- packages/docs/opendesign.md | 66 ------------------------- packages/docs/radio.md | 52 -------------------- packages/docs/rate.md | 27 ----------- packages/docs/result.md | 19 -------- packages/docs/scrollbar.md | 15 ------ packages/docs/select.md | 54 --------------------- packages/docs/skeleton.md | 29 ----------- packages/docs/switch.md | 30 ------------ packages/docs/tab.md | 58 ---------------------- packages/docs/table.md | 9 ---- packages/docs/tag.md | 28 ----------- 23 files changed, 837 deletions(-) delete mode 100644 packages/docs/badge.md delete mode 100644 packages/docs/breadcrumb.md delete mode 100644 packages/docs/button.md delete mode 100644 packages/docs/checkbox.md delete mode 100644 packages/docs/divider.md delete mode 100644 packages/docs/global.md delete mode 100644 packages/docs/i18n.md delete mode 100644 packages/docs/input-number.md delete mode 100644 packages/docs/input.md delete mode 100644 packages/docs/link.md delete mode 100644 packages/docs/menu.md delete mode 100644 packages/docs/name.md delete mode 100644 packages/docs/opendesign.md delete mode 100644 packages/docs/radio.md delete mode 100644 packages/docs/rate.md delete mode 100644 packages/docs/result.md delete mode 100644 packages/docs/scrollbar.md delete mode 100644 packages/docs/select.md delete mode 100644 packages/docs/skeleton.md delete mode 100644 packages/docs/switch.md delete mode 100644 packages/docs/tab.md delete mode 100644 packages/docs/table.md delete mode 100644 packages/docs/tag.md diff --git a/packages/docs/badge.md b/packages/docs/badge.md deleted file mode 100644 index 42323c18..00000000 --- a/packages/docs/badge.md +++ /dev/null @@ -1,18 +0,0 @@ -# Badge 徽标 - -## props - -| name | type | 默认值 | 说明 | -| :----- | :-------------------------------------------------------- | :------- | -------------------------------------------------------------------- | -| value | string \| number | '' | 可选,显示值 | -| max | number | 99 | 可选,最大值,超过最大值显示${max}+(仅当 value 类型为 number 时生效) | -| offset | number [] | [] | 可选,徽标位置偏移量 | -| dot | boolean | false | 可选,是否显示为小红点 | -| color | 'normal' \| 'primary' \|'success'\| 'warning' \| 'danger' | 'normal' | 可选,颜色 | - -## slot - -| name | 参数 | 说明 | -| :------ | :--- | :----------- | -| default | | 徽标包裹内容 | -| content | | 徽标具体内容 | diff --git a/packages/docs/breadcrumb.md b/packages/docs/breadcrumb.md deleted file mode 100644 index df24bd21..00000000 --- a/packages/docs/breadcrumb.md +++ /dev/null @@ -1,15 +0,0 @@ -# Breadcrumb 面包屑 - -| name | type | 默认值 | 说明 | -| :-------- | :--------------- | :----- | ---------------- | -| separator | string \| number | - | 可选,分隔符字符 | - -# BreadcrumbItem - -| name | type | 默认值 | 说明 | -| :-------- | :--------------------------------------------- | :------- | ---------------------------------------- | -| href | string | - | 可选,链接跳转地址 | -| target | '\_blank' \| '\_parent' \| '\_self' \| '\_top' | '\_self' | 可选,链接跳转方式 | -| to | string \| object | - | 可选,路由跳转对象,同 vue-router | -| replace | boolean | false | 可选,路由跳转时,是否覆盖浏览器历史记录 | -| separator | string \| number | - | 可选,分隔符字符 | diff --git a/packages/docs/button.md b/packages/docs/button.md deleted file mode 100644 index bc5a8fe8..00000000 --- a/packages/docs/button.md +++ /dev/null @@ -1,38 +0,0 @@ -# Button 按钮 组件设计 - -# 组件介绍 - -页面中常用的按钮 - -1. 支持设置不同状态颜色,设置边框、填充样式,以及圆角值(也支持全局设置); -2. 支持加载状态 -3. 支持设置链接跳转,图标 - -## props 入参 - -| name | type | 默认值 | 说明 | -| :------- | :---------------------------------------------------------- | :-------- | :------------------------- | -| color | "normal" \| "primary" \| "success" \| "warning" \| "danger" | 'normal' | 可选,颜色类型 | -| size | 'mini' \| 'small' \| 'medium' \| 'large' | 'medium' | 可选,按钮尺寸 | -| variant | "solid" \| "outline" \| "text" | 'outline' | 可选,按钮类型 | -| loading | boolean | false | 可选,加载状态 | -| disabled | boolean | false | 可选,是否为禁用状态 | -| href | string | -- | 可选,链接跳转 | -| icon | Component | -- | 可选,前缀图标 | -| tag | string | 'button' | 可选,自定义元素 html 标签 | - -## event 事件 - -| name | 参数 | 返回值 | 说明 | -| :---- | :------------- | :----- | :------- | -| click | (e:MouseEvent) | -- | 点击事件 | - -## slot 插槽 - -| name | 说明 | -| :------ | :----------- | -| default | 按钮内容 | -| icon | 前缀按钮图标 | -| suffix | 后缀 | - -## expose 导出 diff --git a/packages/docs/checkbox.md b/packages/docs/checkbox.md deleted file mode 100644 index 92fb8346..00000000 --- a/packages/docs/checkbox.md +++ /dev/null @@ -1,55 +0,0 @@ -# Checkbox 多选框 - -## props - -| name | type | 默认值 | 说明 | -| :------------------ | :------------------------ | :----- | -------------------------------- | -| value | string \| number | - | 必选,多选框 value | -| modelValue(v-model) | Array | - | 可选,多选框双向绑定值 | -| defaultChecked | boolean | false | 可选,非受控状态时,默认是否选中 | -| disabled | boolean | false | 可选,是否禁用 | -| indeterminate | boolean | false | 可选,是否为半选状态 | - -## event - -| name | 参数 | 说明 | -| :----- | :------------------------------ | :----------------------------------- | -| change | val: Array; | 双向绑定值改变时,在选中多选框上触发 | - -## expose - -| name | type | 说明 | -| :------ | :------ | :------------- | -| checked | boolean | 多选框是否选中 | - -## slot - -| name | 参数 | 说明 | -| :------- | :--------------------------------- | :------------- | -| checkbox | checked:boolean; disabled: boolean | 自定义多选框 | -| default | | 多选框文字内容 | - -# CheckboxGroup 多选框组 - -## props - -| name | type | 默认值 | 说明 | -| :------------------ | :------------------------ | :----- | -------------------------------------- | -| modelValue(v-model) | Array | - | 可选,多选框组双向绑定值 | -| defaultValue | Array | [] | 可选,非受控状态时,多选框组默认值 | -| disabled | boolean | false | 可选,是否禁用 | -| direction | 'h' \| 'v' | 'h' | 可选,排列方向 | -| min | number | - | 可选,多选框组支持选中的最小多选框数量 | -| max | number | - | 可选,多选框组支持选中的最大多选框数量 | - -## event - -| name | 参数 | 说明 | -| :----- | :----------------------------- | :------------- | -| change | val: Array | 状态切换后触发 | - -## slot - -| name | 参数 | 说明 | -| :------ | :--- | :----------- | -| default | | 多选框组内容 | diff --git a/packages/docs/divider.md b/packages/docs/divider.md deleted file mode 100644 index 66af2e54..00000000 --- a/packages/docs/divider.md +++ /dev/null @@ -1,15 +0,0 @@ -# Divider 分割线 - -## props - -| name | type | 默认值 | 说明 | -| :------------ | :------------------------------ | :------- | -------------------- | -| variant | 'solid' \| 'dashed' \| 'dotted' | 'solid' | 可选,分割线类型 | -| direction | 'h' \| 'v' | 'h' | 可选,分割线方向 | -| labelPosition | 'left' \| 'center' \| 'right' | 'center' | 可选,自定义内容位置 | - -## slot - -| name | 参数 | 说明 | -| :------ | :--- | :------------- | -| default | | 分割线文字内容 | diff --git a/packages/docs/global.md b/packages/docs/global.md deleted file mode 100644 index ee01ad06..00000000 --- a/packages/docs/global.md +++ /dev/null @@ -1,39 +0,0 @@ -# 全局配置设计 - -组件可以通过全局配置部分样式属性,同时支持动态设置。 - -## 方案设计 - -1. 设置全局默认值,同时暴露接口进行默认值修改,基于 vue 响应式,实现全局配置动态化 -2. 组件内部图标统一配置,并支持接口修改,实现组件深度定制 - -## 配置全局样式 - -| 方法名 | 参数 | 返回值 | 说明 | -| :------------- | :-------------------------------------- | :----- | :----------------------- | -| initSize | (type: 'large' \| 'medium' \| 'small') | -- | 设置全局组件尺寸 | -| initRound | (type: 'pill' \| '') | -- | 设置全局组件圆角 | -| initZIndex | (val: number) | -- | 设置全局组件初始 z-index | -| initMediaPoint | point: Record<'phone' \| 'pad', number> | -- | 设置全局组件响应式断点 | - -## 配置全局图标 - -具体接口见[`init-icons.ts`](../opendesign/src/_utils/init-icons.ts) - -# 变量定义都在 var.scss 里,同时使用最外层内定义; - -# 状态类 如果在最外层使用 o-[component]-[status],在内部可以使用 is-[status] - -# 不同状态通过类改变变量值,而不是新定义多个变量; - -# 变量命名 - -- 边框(bd) `--btn-bd: 1px solid var(--o-color-control1)` -- 边框颜色(bd-color) `--btn-bd-color: var(--o-color-control1)` -- 背景颜色(bg-color) `--btn-bg-color: var(--o-color-control1)` - -# polyfill - -> resize-observer-polyfill -> intersection-observer-polyfill -> 建议在项目使用时引入 diff --git a/packages/docs/i18n.md b/packages/docs/i18n.md deleted file mode 100644 index 9a4f3ae9..00000000 --- a/packages/docs/i18n.md +++ /dev/null @@ -1,51 +0,0 @@ -# opendesign 组件国际化方案设计 - -## 背景分析 - -当前组件存在内置词条,如下拉的 placeholder、分页器的页码等,在支持多语言的网站(如 openMind)中,组件也需要默认支持语言,但当前组件库还不支持; - -## 需求分析 - -1. 组件库需要默认内置多语言类型及词条; -2. 组件库支持开发者自定义语言类型及对应词条; -3. 组件库支持全局设置语言类型,也支持模块级设置语言类型; -4. 每个组件能根据语言切换动态切换词条 - -## 实现方案设计 - -1. 组件库需要默认内置多语言类型及词条; - -- 组件库默认支持中英文,并提供中英文词条; - -2. 组件库支持开发者自定义语言类型及对应词条; - -- 通过接口支持配置自定义语言类型及词条; - -3. 组件库支持全局设置语言类型,也支持模块级设置语言类型; - -- 通过注入的方式,实现全局及部分模块语言设置; - -4. 每个组件能根据语言切换动态切换词条 - -- 组件中所有词条为响应式数据,使用统一接口设置; - -## API - -- 全局函数:导出 `useLocale`、`addLocale`,支持全局设置语言类型 - | function | 参数 | 说明 | - | :----- | :-------- | ----------- | - | useLocale | localeKey: string | 设置全局使用的语言类型 | - | addLocale | locale: i18nLanguages, opts?: { overwrite?: boolean;} | 全局增加语言类型 | - -- 组件**ConfigProvider** - | name | type | 默认值 | 说明 | - | :----- | :-------- | :-- | ----------- | - | locale | LanguageT | {} | 可选,设置语言 | - -## 涉及组件 - -- 下拉选择器 Select -- 分页器 Pagination -- 表格 Table -- 上传 Upload -- 输入框 Input diff --git a/packages/docs/input-number.md b/packages/docs/input-number.md deleted file mode 100644 index fc6ba92b..00000000 --- a/packages/docs/input-number.md +++ /dev/null @@ -1,38 +0,0 @@ -# input-number 数字输入框 - -## 说明 - -> currentValue: number|string 数字输入框当前值 - -> realValue: number 数字输入框当前真实值 - -> inputValue: string 输入框框当前值 - -> 数字非法判断:非 number 字符串(Number 无法转换为数字)、不在[min, max]范围内; - -## 设计 - -1. 初始化 currentValue - - `currentValue = modelValue ?? defaultValue` - -- 如果 modelValue 非法,展示该值,并使用删除线样式 -- 如果 defaultValue 非法,展示该值,并使用删除线样式 - -2. 聚焦时(鼠标点击,键盘 Tab 切换) - -- 触发 focus 事件,参数:(realValue, event) - -3. 输入时 - -- 触发`input`事件,参数:(inputValue, event) -- 如果输入值非法,展示该值,并使用删除线样式 - -4. 失焦时 - -- -- 触发`blur`事件,参数:(currentValue, event) - -parse/format - -1. 当 change 事件时,执行 format diff --git a/packages/docs/input.md b/packages/docs/input.md deleted file mode 100644 index 6ac8db65..00000000 --- a/packages/docs/input.md +++ /dev/null @@ -1,91 +0,0 @@ -# Input 输入框 - -输入框组件,支持用户输入内容 - -## 说明 - -> `realValue: number|string` 数字输入框当前值 - -> `inputValue: string` 输入框框当前值 - -> `displayValue: string` 输入框展示的值 - -> 数字非法判断:非 number 字符串(Number 无法转换为数字)、不在[min, max]范围内; - -## 组件交互设计 - -1. 初始化 realValue - - `realValue = modelValue ?? defaultValue` - -- 如果 `modelValue` 非法,展示该值,并使用删除线样式; -- 如果 `defaultValue` 非法,展示该值,并使用删除线样式; - -2. 聚焦时(鼠标点击,键盘 Tab 切换) - -- 触发 `focus` 事件,参数:`(realValue, e)`; - -3. 输入时 - -- 触发`input`事件,参数:`(inputValue, event)`; -- 如果无 `parse`, 赋值`realValue = inputValue`,触发`update:modelValue`事件,参数`(inputValue)`; - -4. 失焦时 - -- 如果有 `format`, `displayValue = format(realValue)`; -- 如果没有 `format`, `displayValue = realValue`; -- 如果有 `parse`, `realValue = parse(inputValue)`; -- 触发`blur`事件,参数:`(realValue, event)`; -- 如果值改变,触发`change`事件,参数: `(realValue)` -- 触发`update:modelValue`事件,参数: `(realValue)` - -5. Enter 键按下时 - -- 如果有 `format`, `displayValue = format(inputValue)`; -- 如果没有 `format`, `displayValue = inputValue`; -- 触发`pressEnter`事件,参数:`(realValue, KeyboardEvent)`; -- 如果值改变,触发`change`事件,参数: `(realValue)` -- 触发`update:modelValue`事件,参数: `(realValue)` - -## props 入参 - -| name | type | 默认值 | 说明 | -| :------------- | :---------------------------------------------------------- | :---------- | :--------------------------------------------------------------- | -| modelValue | String, Number | -- | 可选,输入框的值 v-model | -| defaultValue | String, Number | -- | 可选,输入框的默认值 | -| type | 'text' \| 'password' | 'text' | 可选,输入框类型 | -| color | "normal" \| "primary" \| "success" \| "warning" \| "danger" | 'normal' | 可选,颜色类型 | -| size | 'mini' \| 'small' \| 'medium' \| 'large' | 'medium' | 可选,按钮尺寸 | -| variant | "solid" \| "outline" \| "text" | 'outline' | 可选,按钮类型 | -| disabled | boolean | false | 可选,是否为禁用状态 | -| readonly | boolean | false | 可选,是否为只读状态 | -| invalid | boolean | false | 可选,是否为非法值状态 | -| clearable | boolean | true | 可选,是否可以清除。 | -| autoWidth | boolean | true | 可选,是否自动增加宽度 | -| placeholder | string | -- | 可选,提示文本 | -| showPasswordOn | 'click' \| 'mousedown' | 'mousedown' | 可选,显示密码的方式 | -| parse | (value: string) => string | -- | 可选,解析输入框的值 | -| format | (value: string \| number) => string \| number | -- | 可选,对值格式化,控制显示格式,需搭配 parse 处理,保证值的正确性 | - -## event 事件 - -| name | 参数 | 返回值 | 说明 | -| :---------------- | :--------------------------------- | :----- | :------------- | -| update:modelValue | (value: string) | -- | 值更新事件 | -| change | (value: string) | -- | 值变化事件 | -| input | (value: string,evt: Event) | -- | 输入事件 | -| blur | (value: string,evt: FocusEvent) | -- | 失焦事件 | -| focus | (value: string,evt: FocusEvent) | -- | 聚焦事件 | -| clear | (evt: Event) | -- | 清除输入框事件 | -| pressEnter | (value: string,evt: KeyboardEvent) | -- | 回车事件 | - -## slot 插槽 - -| name | 说明 | -| :------ | :------- | -| prepend | 前置插槽 | -| prefix | 前缀插槽 | -| suffix | 后缀插槽 | -| append | 后置插槽 | - -## expose 导出 diff --git a/packages/docs/link.md b/packages/docs/link.md deleted file mode 100644 index bb23a5b0..00000000 --- a/packages/docs/link.md +++ /dev/null @@ -1,28 +0,0 @@ -# Link 按钮 - -## props - -| name | type | 默认值 | 说明 | -| :--------- | :---------------------------------------------------------- | :------- | :--------------------------------------- | -| href | string | '' | 可选,包含超链接指向的 URL 或 URL 片段。 | -| target | '\_blank' \| '\_parent' \| '\_self' \| '\_top' | 'normal' | 可选,指定在何处显示链接的资源。 | -| type | 'normal' \| 'primary' \| 'warning' \| 'danger' \| 'success' | 'normal' | 可选,链接类型 | -| disabled | boolean | false | 可选,是否禁用 | -| loading | boolean | false | 可选,是否为 loading 状态 | -| iconPrefix | boolean | false | 可选,前缀图标 | -| iconArrow | boolean | false | 可选,图标箭头 | -| hoverable | boolean | false | 可选,hover 时是否显示背景 | - -## event - -| event | 参数 | 说明 | -| :---- | :------------- | :------- | -| click | (e:MouseEvent) | 点击事件 | - -## expose - -## slot - -| name | 说明 | -| :--- | :------- | -| icon | 按钮图标 | diff --git a/packages/docs/menu.md b/packages/docs/menu.md deleted file mode 100644 index 3f78af70..00000000 --- a/packages/docs/menu.md +++ /dev/null @@ -1,50 +0,0 @@ -# Menu 菜单 - -## OMenu - -### props - -| name | type | 默认值 | 说明 | -| :------------------ | :-------------- | :----- | -------------------------------------- | -| modelValue(v-model) | string | - | 可选,双向绑定值 | -| defaultValue | boolean | false | 可选,非受控状态时,默认选中值 | -| expanded(v-model) | Array | - | 可选,双向展开的子菜单值 | -| defaultExpanded | Array | false | 可选,非受控状态时,默认展开的子菜单值 | -| accordion | boolean | false | 可选,是否开启手风琴模式 | -| levelIndent | number | 24 | 可选,层级缩进值 | - -### event - -| name | 参数 | 说明 | -| :-------------- | :------------------- | :--------------------- | -| change | val: string | 选中值切换后触发 | -| expanded-change | val: Array | 展开子菜单值切换后触发 | - -## OSubMenu - -### props - -| name | type | 默认值 | 说明 | -| :---- | :----- | :----- | -------------- | -| value | string | - | 必选,子菜单值 | - -## slot - -| name | 参数 | 说明 | -| :--- | :--- | :--------- | -| icon | | 自定义图标 | - -## OMenuItem - -### props - -| name | type | 默认值 | 说明 | -| :------- | :------ | :----- | ---------------- | -| value | string | - | 必选,菜单选项值 | -| disabled | boolean | false | 可选,是否禁用 | - -## event - -| name | 参数 | 说明 | -| :---- | :--- | :------- | -| click | | 点击触发 | diff --git a/packages/docs/name.md b/packages/docs/name.md deleted file mode 100644 index 32a5afc1..00000000 --- a/packages/docs/name.md +++ /dev/null @@ -1,12 +0,0 @@ -## 变量命名 - -1. 命名规则: `--o-[模块/组件]-[属性]-[状态]` - -2. 模块、组件、属性、状态内部使用 “\_” 连接 - -> 示例: - -```css ---btn-color-inverse ---o-font_size-display4 -``` diff --git a/packages/docs/opendesign.md b/packages/docs/opendesign.md deleted file mode 100644 index db1c66ef..00000000 --- a/packages/docs/opendesign.md +++ /dev/null @@ -1,66 +0,0 @@ -# opendesign 组件设计 - -## 需求背景 - -为了支撑 openEuler 社区前端体验提升,帮助更多开发者、Sig 组快速搭建自己的前端页面,故设计开发了一套前端组件库。 -该组件库需要支持: - -1. 强大的皮肤定制能力,支持开发者快速定制皮肤,实现页面风格一致; -2. 上手难度低,开箱即用,提供示例模版,能快速搭建项目页面; - -## 方案设计 - -1. 基于当前开发者能力现状(国内 vue 开发者最多),采用 vue3 作为组件开发框架,组件实现采用逻辑与 UI 分离; -2. 基于 Css Variables,结合 opendesign 设计体系,设计变量体系,定义全局变量以及每个组件变量,实现全局+局部皮肤定制能力; -3. 针对尺寸、颜色、圆角、图标等设置,提供全局配置接口,基于 vue 响应式机制,实现配置动态化 -4. 组件避免依赖 dom,支持服务端渲染; - -## 方案实现 - -### 变量体系 Token - -#### 1. 全局变量 - -- 色盘 Palette -- 颜色 Color - - 基础色 - - 状态色 - - 控件色 - - 填充色 - - 信息色 -- 阴影 Shadow -- 字体 Font -- 尺寸 Size - - 组件尺寸 - - 图标尺寸 - - 圆角尺寸 -- 间距 Gap -- 动画 Animation - - 动画曲线 - - 持续时间 - -> 例: [light.token.css](../opendesign/src/_styles/light.token.css) - -#### 2. 组件变量 - -基于每个组件状态、类型,定义组件变量,值引用全局变量. - -> 例: [button/var.css](../opendesign/src/button/style/var.scss) - -### 动态全局配置 - -1. 设置全局默认值,同时暴露接口进行默认值修改 -2. 组件内部图标统一配置,并支持接口修改,实现组件深度定制 - -#### 1. 配置全局样式 - -| 方法名 | 参数 | 返回值 | 说明 | -| :------------- | :-------------------------------------- | :----- | :----------------------- | -| initSize | (type: 'large' \| 'medium' \| 'small') | -- | 设置全局组件尺寸 | -| initRound | (type: 'pill' \| '') | -- | 设置全局组件圆角 | -| initZIndex | (val: number) | -- | 设置全局组件初始 z-index | -| initMediaPoint | point: Record<'phone' \| 'pad', number> | -- | 设置全局组件响应式断点 | - -#### 2. 配置全局图标 - -具体接口见[`init-icons.ts`](../opendesign/src/_utils/init-icons.ts) diff --git a/packages/docs/radio.md b/packages/docs/radio.md deleted file mode 100644 index dbb47a17..00000000 --- a/packages/docs/radio.md +++ /dev/null @@ -1,52 +0,0 @@ -# Radio 单选框 - -## props - -| name | type | 默认值 | 说明 | -| :------------------ | :-------------------------- | :----- | -------------------------------- | -| value | string \| number \| boolean | - | 必选,单选框 value | -| modelValue(v-model) | string \| number \| boolean | - | 可选,单选框双向绑定值 | -| defaultChecked | boolean | false | 可选,非受控状态时,默认是否选中 | -| disabled | boolean | false | 可选,是否禁用 | - -## event - -| name | 参数 | 说明 | -| :----- | :------------------------------- | :----------------------------------- | -| change | val: string \| number \| boolean | 双向绑定值改变时,在选中单选框上触发 | - -## expose - -| name | type | 说明 | -| :------ | :------ | :------------- | -| checked | boolean | 单选框是否选中 | - -## slot - -| name | 参数 | 说明 | -| :------ | :--------------------------------- | :------------- | -| radio | checked:boolean; disabled: boolean | 自定义单选框 | -| default | | 单选框文字内容 | - -# RadioGroup 单选框组 - -## props - -| name | type | 默认值 | 说明 | -| :------------------ | :-------------------------- | :----- | ---------------------------------- | -| modelValue(v-model) | string \| number \| boolean | - | 可选,单选框组双向绑定值 | -| defaultValue | string \| number \| boolean | '' | 可选,非受控状态时,单选框组默认值 | -| disabled | boolean | false | 可选,是否禁用 | -| direction | 'h' \| 'v' | 'h' | 可选,排列方向 | - -## event - -| name | 参数 | 说明 | -| :----- | :------------------------------- | :------------- | -| change | val: string \| number \| boolean | 状态切换后触发 | - -## slot - -| name | 参数 | 说明 | -| :------ | :--- | :----------- | -| default | | 单选框组内容 | diff --git a/packages/docs/rate.md b/packages/docs/rate.md deleted file mode 100644 index 02e258ba..00000000 --- a/packages/docs/rate.md +++ /dev/null @@ -1,27 +0,0 @@ -# Rate 评分 - -## props - -| name | type | 默认值 | 说明 | -| :------------------ | :--------------------------------------------- | :------- | --------------------------------------------------- | -| count | number | 5 | 可选,评分数量 | -| modelValue(v-model) | number | - | 可选,双向绑定值 | -| defaultValue | number | 0 | 可选,非受控状态时,默认值 | -| size | 'large' \| 'normal' \| 'small' | 'normal' | 评分尺寸 | -| color | 'normal' \| 'primary' \| 'warning' \| 'danger' | 'normal' | 评分颜色 | -| readonly | boolean | false | 可选,是否只读 | -| allowHalf | boolean | false | 可选,是否支持半选 | -| clearable | boolean | false | 可选,是否支持可清空 | -| labels | Array | - | 提示文字,当且仅当提示文字数组长度等于 count 时生效 | - -## event - -| name | 参数 | 说明 | -| :----- | :------------ | :------------------- | -| change | index: number | 双向绑定值改变时触发 | - -## slot - -| name | 参数 | 说明 | -| :--- | :---------------------------- | :------------- | -| icon | index: number; status: string | 自定义评分图标 | diff --git a/packages/docs/result.md b/packages/docs/result.md deleted file mode 100644 index ff6727e9..00000000 --- a/packages/docs/result.md +++ /dev/null @@ -1,19 +0,0 @@ -# result 结果页 - -## props - -| name | type | 默认值 | 说明 | -| :---------- | :------------------------------------------- | :----- | ---------------- | -| status | 'info' \| 'success' \| 'warning' \| 'danger' | - | 可选,结果页状态 | -| title | string | - | 可选,结果页标题 | -| description | string | - | 可选,结果页描述 | - -## slot - -| name | 参数 | 说明 | -| :---------- | :--- | :--------------- | -| icon | | 自定义图标 | -| title | | 自定义标题 | -| description | | 自定义描述 | -| extra | | 自定义操作区域 | -| default | | 自定义结果页内容 | diff --git a/packages/docs/scrollbar.md b/packages/docs/scrollbar.md deleted file mode 100644 index cd84a21b..00000000 --- a/packages/docs/scrollbar.md +++ /dev/null @@ -1,15 +0,0 @@ -### scrollbar 刷新的时机 - -- `showType = hover` - -1. 目标容器滚动时; -2. 鼠标 hoverout 时刷新; - -- `showType = always` - -1. 目标容器滚动时; -2. `autoUpdateOnScrollSize=true`时每 1s 后,在 js idle 时间内刷新; - -- `showType = auto` - -1. 目标容器滚动时; diff --git a/packages/docs/select.md b/packages/docs/select.md deleted file mode 100644 index d4d9d55f..00000000 --- a/packages/docs/select.md +++ /dev/null @@ -1,54 +0,0 @@ -# Select 下拉选择器 - -下拉选择框,支持单选、多选,加载中状态 - -## props - -| name | type | 默认值 | 说明 | -| :---------------- | :------------------------------------------------------------------------------------------------------------------- | :-------------------------- | ---------------------------------------- | -| modelValue | string \| number \| string[] \| number[] \| (string \| number)[] | -- | 必选,下拉框的 v-model 值 | -| defaultValue | string \| number \| string[] \| number[] \| (string \| number)[] | -- | 必选,下拉框的值 | -| color | "normal" \| "primary" \| "success" \| "warning" \| "danger" | 'normal' | 可选,颜色类型 | -| size | 'mini' \| 'small' \| 'medium' \| 'large' | 'medium' | 可选,按钮尺寸 | -| variant | "solid" \| "outline" \| "text" | 'outline' | 可选,按钮类型 | -| loading | boolean | false | 可选,加载状态 | -| disabled | boolean | false | 可选,是否为禁用状态 | -| placeholder | string | -- | 可选,提示文本 | -| multiple | boolean | false | 可选,是否支持多选 | -| maxTagCount | boolean | false | 可选,是否支持多选 | -| clearable | boolean | true | 可选,是否可以清除 | -| trigger | PopupTriggerT | true | 可选,是否可以清除 | -| optionPosition | PopupPositionT | 'bl' | 可选,下拉的位置 | -| optionWidthMode | 'auto' \| 'min-width' \| 'width' | 'min-width' | 可选,下拉的宽度适配方式 | -| optionWrapClass | string | '' | 可选,下拉的自定义类 | -| unmountOnHide | boolean | false | 可选,是否在结束选择时,卸载下拉选项 | -| transition | string | o-fade-up-enter | 可选,过渡动画 | -| beforeSelect | (value: string \| number, currentValue: SelectValueT) => Promise \| boolean \| SelectValueT | -- | 可选,选择前回调,根据返回值判断是否显示 | -| beforeOptionsShow | () => Promise \| boolean | -- | 显示前回调,根据返回值判断是否显示 | -| optionsWrapper | string \| HTMLElement \| null | 'body' | 显示前回调,根据返回值判断是否显示 | -| foldLabel | (tags: Array) => string | -- | 多选超过最大 tag 是,文本显示 | -| showFoldTags | boolean \| 'hover' \| 'click' | 'hover' | 浮层显示收起的多选 tag | -| optionTitle | string | 选项标题(pad、phone 显示) | -| noResponsive | boolean | 下拉浮层是否响应式 | - -## event - -| name | 参数 | 说明 | -| :--------------------- | :--------------------- | :---------------------- | -| change | (value: SelectValueT) | 选择值切换后触发 | -| update:modelValue | (value: SelectValueT ) | 选择值变化触发 | -| options-visible-change | (value: boolean ) | 下拉选项显示/隐藏后触发 | -| clear | (evt: Event ) | 清除下拉框的值后触发 | - -## expose - -## slot - -| name | 说明 | -| :------- | :----------------- | -| tag-fold | 多选时,折叠的文本 | -| arrow | 下拉箭头图标插槽 | -| suffix | 下拉框后缀插槽 | -| default | 下拉选项插槽 | -| empty | 下拉选项为空时插槽 | -| 'name' | 每个下拉选项插槽 | diff --git a/packages/docs/skeleton.md b/packages/docs/skeleton.md deleted file mode 100644 index 4f202e1e..00000000 --- a/packages/docs/skeleton.md +++ /dev/null @@ -1,29 +0,0 @@ -# Skeleton 骨架屏 - -## skeletonProps - -| name | type | 默认值 | 说明 | -| :-------- | :------ | :----- | ---------------------------------------- | -| loading | boolean | true | 可选,是否显示加载中状态(即展示骨架屏) | -| animation | boolean | false | 可选,是否展示动画 | -| rows | number | 3 | 可选,行数 | - -## skeletonTextProps - -| name | type | 默认值 | 说明 | -| :--- | :----- | :----- | ---------- | -| rows | number | 3 | 可选,行数 | - -## skeletonAvatarProps - -| name | type | 默认值 | 说明 | -| :---- | :----------------------------------- | :------- | -------------- | -| size | 'large'\| 'medium'\| 'small'\|'mini' | 'medium' | 可选,头像尺寸 | -| round | string | 'pill' | 可选,圆角值 | - -## slot - -| name | 参数 | 说明 | -| :------- | :--- | :------------- | -| template | | 骨架屏模板内容 | -| default | | 骨架屏展示内容 | diff --git a/packages/docs/switch.md b/packages/docs/switch.md deleted file mode 100644 index 4d13f3eb..00000000 --- a/packages/docs/switch.md +++ /dev/null @@ -1,30 +0,0 @@ -# Switch 开关 - -## props - -| name | type | 默认值 | 说明 | -| :------------------ | :-------------------------------------------- | :------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| modelValue(v-model) | string \| number \| boolean | - | 可选,双向绑定值 | -| checkedValue | string \| number \| boolean | true | 可选,选中状态对应值 | -| uncheckedValue | string \| number \| boolean | false | 可选,未选中状态对应值 | -| defaultChecked | boolean | false | 非受控状态时,默认是否选中 | -| size | 'large' \| 'normal' \| 'small' | 'normal' | 可选,开关尺寸 | -| round | string | - | 可选,开关圆角 | -| disabled | boolean | false | 可选,是否禁用 | -| loading | boolean | false | 可选,是否加载中 | -| beforeChange | (val: boolean): Promise\ \| boolean | - | 可选,状态改变前的钩子函数,返回 true 或者返回 promise 且 resolve(true)则继续切换,返回 false 或者返回 promise 且被 reject 或 resolve(false)则阻止切换, | - -## event - -| name | 参数 | 说明 | -| :----- | :------------------------------------------ | :------------- | -| change | val: string \| number \| boolean, ev: Event | 状态切换后触发 | - -## expose - -## slot - -| name | 说明 | -| :--- | :--------------------- | -| on | 自定义开启状态文字内容 | -| off | 自定义关闭状态文字内容 | diff --git a/packages/docs/tab.md b/packages/docs/tab.md deleted file mode 100644 index 9bb357c6..00000000 --- a/packages/docs/tab.md +++ /dev/null @@ -1,58 +0,0 @@ -# Tab 页签 - -页签组件,支持切换页签显示不同内容 - -## props - -### OTab - -| name | type | 默认值 | 说明 | -| :---------- | :----------------------------- | :-------- | ------------------------------------ | -| modelValue | string \| number(v-model) | '' | 可选,开关状态 | -| lazy | boolean | false | 可选,是否在首次激活标签时再挂载内容 | -| addable | boolean | false | 可选,是否可以添加页签 | -| variant | "solid" \| "outline" \| "text" | 'outline' | 可选,按钮类型 | -| addInactive | boolean | false | 可选,不激活新添加页签 | -| line | boolean | true | 可选,是否展示 nav 线 | - -### OTabPane - -| name | type | 默认值 | 说明 | -| :------------ | :--------------- | :-------------- | ------------------------------------ | -| value | string \| number | instance.uid | 可选,tab id | -| label | string | undefined | 可选,页签文本 | -| transition | string | o-fade-up-enter | 可选,页签切换时过渡动画 | -| lazy | boolean | false | 可选,是否在首次激活标签时再挂载内容 | -| unmountOnHide | boolean | false | 可选,是否在未激活时卸载页签内容 | -| disabled | boolean | false | 可选,是否禁用选中 | -| closable | boolean | false | 可选,是否可以删除 | - -## event - -### OTab - -| name | 参数 | 说明 | -| :----- | :------------------------------------------------------ | :--------------- | -| change | (value: string \| number, oldValue: string \| number) | 页签切换后触发 | -| change | (value: string \| number, oldValue?: string \| number ) | 页签切换变化触发 | -| delete | (value: string \| number ) | 页签删除后触发 | -| add | (evt: MouseEvent ) | 页签添加后触发 | - -## expose - -## slot - -### OTab - -| name | 说明 | -| :----- | :------- | -| prefix | 前缀插槽 | -| suffix | 后缀插槽 | -| anchor | 高亮插槽 | - -### OTabPane - -| name | 说明 | -| :------ | :----------- | -| nav | 页签头部插槽 | -| default | 页签内容插槽 | diff --git a/packages/docs/table.md b/packages/docs/table.md deleted file mode 100644 index 0f43cc5b..00000000 --- a/packages/docs/table.md +++ /dev/null @@ -1,9 +0,0 @@ -# Table 表格 - -## props - -## event - -## expose - -## slot diff --git a/packages/docs/tag.md b/packages/docs/tag.md deleted file mode 100644 index cd36edfb..00000000 --- a/packages/docs/tag.md +++ /dev/null @@ -1,28 +0,0 @@ -# Tag 标签 - -## props - -| name | type | 默认值 | 说明 | -| :--------------- | :--------------------------------------------- | :------- | ------------------------------------------------------------- | -| color | 'normal' \| 'success' \| 'warning' \| 'danger' | 'normal' | 可选,标签颜色 | -| variant | 'solid'\|'outline' | 'solid' | 可选,标签类型 | -| size | 'large' \| 'normal' \| 'small' | 'normal' | 可选,标签尺寸 | -| round | string | - | 可选,标签圆角 | -| closable | boolean | false | 可选,是否可关闭 | -| checkable | boolean | false | 可选,是否可选中 | -| checked(v-model) | boolean | false | 可选,是否被选中(仅 checkable 为 true 生效) | -| defaultChecked | boolean | false | 可选,非受控状态时,默认是否选中(仅 checkable 为 true 生效) | - -## event - -| name | 参数 | 说明 | -| :----- | :--------------------------- | :----------- | -| change | val: boolean, ev: MouseEvent | 值改变时触发 | -| close | ev: MouseEvent | 关闭时触发 | - -## slot - -| name | 说明 | -| :------ | :------------- | -| icon | 自定义图标 | -| default | 自定义标签内容 | -- Gitee From 64c240a5d6e1751db9e76a9e373d99b25a2010d2 Mon Sep 17 00:00:00 2001 From: sakurayinfei <970412446@qq.com> Date: Sat, 5 Jul 2025 17:33:47 +0800 Subject: [PATCH 2/8] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=96=87=E6=A1=A3=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 8 +- packages/docs/.gitignore | 29 + packages/docs/README.md | 59 + packages/docs/helper/utils.ts | 8 + packages/docs/index.html | 13 + packages/docs/package.json | 39 + .../docs/plugins/generateComponentRouter.ts | 95 + packages/docs/plugins/injectDemoAndApi.ts | 41 + packages/docs/plugins/injectDemoDocs.ts | 57 + packages/docs/plugins/injectDemoSource.ts | 80 + packages/docs/plugins/markdown/common.ts | 24 + packages/docs/plugins/markdown/lineNumber.ts | 31 + packages/docs/plugins/markdown/popover.ts | 42 + .../docs/plugins/markdown/vueMdTranslate.ts | 12 + .../plugins/markdown/wrapCodeContainer.ts | 14 + packages/docs/plugins/markdown/wrapTable.ts | 11 + packages/docs/public/favicon.ico | Bin 0 -> 4286 bytes packages/docs/scripts/generateApi.ts | 154 ++ packages/docs/scripts/parseDefineSlots.ts | 67 + packages/docs/src/App.vue | 81 + .../docs/src/assets/style/a.dark.token.css | 1949 +++++++++++++++++ .../docs/src/assets/style/a.light.token.css | 1949 +++++++++++++++++ .../docs/src/assets/style/k.dark.token.css | 1949 +++++++++++++++++ .../docs/src/assets/style/k.light.token.css | 1949 +++++++++++++++++ packages/docs/src/assets/style/markdown.scss | 6 + packages/docs/src/assets/style/style.scss | 108 + .../docs/src/components/CodeContainer.vue | 104 + .../docs/src/components/DemoContainer.vue | 87 + packages/docs/src/components/TheAside.vue | 46 + packages/docs/src/components/TheHeader.vue | 187 ++ packages/docs/src/lang/en-US.ts | 12 + packages/docs/src/lang/index.ts | 43 + packages/docs/src/lang/zh-CN.ts | 12 + packages/docs/src/main.ts | 34 + packages/docs/src/pages/TheHome.vue | 14 + packages/docs/src/pages/TheIcons.vue | 90 + packages/docs/src/pages/TheText.vue | 12 + packages/docs/src/router/index.ts | 36 + packages/docs/src/stores/sidebar.ts | 43 + packages/docs/src/utils/useHighLightTheme.ts | 21 + packages/docs/src/vite-env.d.ts | 16 + packages/docs/tsconfig.json | 43 + packages/docs/tsconfig.node.json | 14 + packages/docs/vite.config.ts | 44 + packages/opendesign/.gitignore | 3 +- pnpm-lock.yaml | 1156 +++++++++- pnpm-workspace.yaml | 13 + 47 files changed, 10791 insertions(+), 14 deletions(-) create mode 100644 packages/docs/.gitignore create mode 100644 packages/docs/README.md create mode 100644 packages/docs/helper/utils.ts create mode 100644 packages/docs/index.html create mode 100644 packages/docs/package.json create mode 100644 packages/docs/plugins/generateComponentRouter.ts create mode 100644 packages/docs/plugins/injectDemoAndApi.ts create mode 100644 packages/docs/plugins/injectDemoDocs.ts create mode 100644 packages/docs/plugins/injectDemoSource.ts create mode 100644 packages/docs/plugins/markdown/common.ts create mode 100644 packages/docs/plugins/markdown/lineNumber.ts create mode 100644 packages/docs/plugins/markdown/popover.ts create mode 100644 packages/docs/plugins/markdown/vueMdTranslate.ts create mode 100644 packages/docs/plugins/markdown/wrapCodeContainer.ts create mode 100644 packages/docs/plugins/markdown/wrapTable.ts create mode 100644 packages/docs/public/favicon.ico create mode 100644 packages/docs/scripts/generateApi.ts create mode 100644 packages/docs/scripts/parseDefineSlots.ts create mode 100644 packages/docs/src/App.vue create mode 100644 packages/docs/src/assets/style/a.dark.token.css create mode 100644 packages/docs/src/assets/style/a.light.token.css create mode 100644 packages/docs/src/assets/style/k.dark.token.css create mode 100644 packages/docs/src/assets/style/k.light.token.css create mode 100644 packages/docs/src/assets/style/markdown.scss create mode 100644 packages/docs/src/assets/style/style.scss create mode 100644 packages/docs/src/components/CodeContainer.vue create mode 100644 packages/docs/src/components/DemoContainer.vue create mode 100644 packages/docs/src/components/TheAside.vue create mode 100644 packages/docs/src/components/TheHeader.vue create mode 100644 packages/docs/src/lang/en-US.ts create mode 100644 packages/docs/src/lang/index.ts create mode 100644 packages/docs/src/lang/zh-CN.ts create mode 100644 packages/docs/src/main.ts create mode 100644 packages/docs/src/pages/TheHome.vue create mode 100644 packages/docs/src/pages/TheIcons.vue create mode 100644 packages/docs/src/pages/TheText.vue create mode 100644 packages/docs/src/router/index.ts create mode 100644 packages/docs/src/stores/sidebar.ts create mode 100644 packages/docs/src/utils/useHighLightTheme.ts create mode 100644 packages/docs/src/vite-env.d.ts create mode 100644 packages/docs/tsconfig.json create mode 100644 packages/docs/tsconfig.node.json create mode 100644 packages/docs/vite.config.ts diff --git a/package.json b/package.json index bc8cb369..c0835cdd 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,16 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "pnpm -C packages/portal dev", - "dev:ak": "pnpm -C packages/portal-ak dev" + "dev:ak": "pnpm -C packages/portal-ak dev", + "docs:install": "pnpm i && pnpm -C packages/opendesign build && pnpm -C packages/docs gen:api ", + "docs:dev": "pnpm -C packages/docs dev", + "docs:build": "pnpm -C packages/docs build" }, "dependencies": { "normalize.css": "catalog:", "vue": "catalog:", - "vue-router": "catalog:" + "vue-router": "catalog:", + "@opensig/opendesign": "workspace:^" }, "devDependencies": { "@rushstack/eslint-patch": "catalog:", diff --git a/packages/docs/.gitignore b/packages/docs/.gitignore new file mode 100644 index 00000000..bea45e6a --- /dev/null +++ b/packages/docs/.gitignore @@ -0,0 +1,29 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +icon-components +es +lib +src/router/components.ts diff --git a/packages/docs/README.md b/packages/docs/README.md new file mode 100644 index 00000000..2b88c239 --- /dev/null +++ b/packages/docs/README.md @@ -0,0 +1,59 @@ +# opendesign 组件文档 + +## 快速开始 + +### 📦 安装依赖 +```bash +pnpm docs:install +``` +> 会自动完成以下操作: +> 1. 安装项目依赖 +> 2. 编译 opendesign 组件 +> 3. 生成 API 文档 + +### 🚀 运行开发服务 +```bash +pnpm docs:dev +``` +浏览器访问:http://localhost:3300 + +### 🛠️ 构建生产环境 +```bash +pnpm docs:build +``` + +## 🌍 英文翻译 + +1. **Fork 仓库** 到个人账号 +2. **创建特性分支** `git checkout -b feat/translate` +3. **新增语言文件** + ```bash + # 按以下结构创建文件 + /packages/opendesign/src/*/__docs__/index.en-US.md # 语言主文档 + /packages/opendesign/src/*/__docs__/*-api.en-US.md # API 文档 + ``` +4. **demo组件英文翻译** 在 `/packages/opendesign/src/*/__docs__/__demo__/*.vue` 文件中的`` 标签中添加en-US语言配置 + + ```html + + --- + title: + zh-CN: 中文标题 + en-US: English Title + --- + + # zh-CN + 这里是中文内容 + + # en-US + English content here + + ``` +5. 提交 PR 并等待审核 +6. 维护人员审核通过后合并 + +## ⚠️ 注意事项 +- 当前支持语言:`zh-CN`(简体中文) 和 `en-US`(英语) +- 扩展语言需遵循命名规范:`-.md`(如 `es-ES` 表示西班牙语) +- 保持原始文件结构,确保国际化文件位置正确 +- 修改内容时请勿删除原有语言版本 diff --git a/packages/docs/helper/utils.ts b/packages/docs/helper/utils.ts new file mode 100644 index 00000000..6f46ddab --- /dev/null +++ b/packages/docs/helper/utils.ts @@ -0,0 +1,8 @@ +export function getLangByFileName(_fileName: string) { + const fileName = _fileName.slice(_fileName.lastIndexOf('/') + 1); + const [name, lang, ext] = fileName.split('.'); + if (!ext) { + return { name, lang: '', ext: lang }; + } + return { name, lang, ext }; +} diff --git a/packages/docs/index.html b/packages/docs/index.html new file mode 100644 index 00000000..693d3e60 --- /dev/null +++ b/packages/docs/index.html @@ -0,0 +1,13 @@ + + + + + + + opendesign + + +
+ + + diff --git a/packages/docs/package.json b/packages/docs/package.json new file mode 100644 index 00000000..9a9ffc98 --- /dev/null +++ b/packages/docs/package.json @@ -0,0 +1,39 @@ +{ + "name": "docs", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc && vite build", + "preview": "vite preview", + "gen:api": "vite-node ./scripts/generateApi.ts" + }, + "dependencies": { + "@opensig/open-analytics": "catalog:", + "@opensig/open-scripts": "workspace:^", + "markdown-it": "catalog:", + "pinia": "catalog:", + "prettier": "catalog:", + "vue": "catalog:" + }, + "devDependencies": { + "@types/fs-extra": "catalog:", + "@types/markdown-it": "catalog:", + "@vue/compiler-sfc": "catalog:", + "fs-extra": "catalog:", + "glob": "catalog:", + "gray-matter": "catalog:", + "highlight.js": "catalog:", + "magic-string": "catalog:", + "markdown-it-async": "catalog:", + "sass": "catalog:", + "typescript": "catalog:", + "unplugin-vue-markdown": "catalog:", + "vite": "catalog:", + "vite-plugin-inspect": "catalog:", + "vue-component-meta": "catalog:", + "vue-docgen-api": "catalog:", + "vue-tsc": "catalog:" + } +} diff --git a/packages/docs/plugins/generateComponentRouter.ts b/packages/docs/plugins/generateComponentRouter.ts new file mode 100644 index 00000000..432bb77e --- /dev/null +++ b/packages/docs/plugins/generateComponentRouter.ts @@ -0,0 +1,95 @@ +import { createFilter, type Plugin } from 'vite'; +import { glob } from 'glob'; +import { resolve } from 'path'; +import { fileURLToPath } from 'url'; +import fse from 'fs-extra'; +import matter from 'gray-matter'; +import * as prettier from 'prettier'; +import tsPlugin from 'prettier/plugins/typescript'; +import { getLangByFileName } from '../helper/utils'; + +const __fileName = fileURLToPath(import.meta.url); +const searchBase = resolve(__fileName, '../../../opendesign/src'); +const output = resolve(__fileName, '../../src/router/components.ts'); +function debounce) => any>(fn: T, wait: number = 0, runFirst: boolean = true) { + let handler = null; + return (...args: Array) => { + if (runFirst) { + if (!handler) { + fn(...args); + } + } + clearTimeout(handler); + handler = setTimeout(() => { + if (!runFirst) { + fn(...args); + } + handler = 0; + }, wait); + }; +} + +const emit = debounce(() => { + glob('**/__docs__/index.*.md', { cwd: searchBase, posix: true }) + .then((files) => { + return files.map((file) => { + const fullPath = resolve(searchBase, file); + const content = fse.readFileSync(fullPath).toString(); + return { content, file, fullPath, name: file.match(/([^\/]+)\/__docs__\/?/)?.[1], lang: getLangByFileName(file).lang }; + }); + }) + .then((fileContents) => { + const headCommentRegex = /^---\s*([\s\S]*?)\s*---/; + return fileContents.map((info) => { + const match = info.content.match(headCommentRegex); + const matterData = match ? matter(match[0]) : { data: {} }; + return { + ...info, + meta: { + ...matterData.data, + lang: info.lang, + }, + }; + }); + }) + .then((res) => { + return `import { type RouteRecordRaw } from 'vue-router'; +export const routes: Array = [ +${res + .map( + (info) => ` { + path: '/${info.lang}/components/${info.name}', + name: 'component/${info.name}/${info.lang}', + component: () => import('@components/${info.file}'), + meta: ${JSON.stringify(info.meta)} + }`, + ) + .join(',')} +]; + `; + }) + .then((res) => { + return prettier.format(res, { parser: 'typescript', plugins: [tsPlugin], singleQuote: true, printWidth: 160 }); + }) + .then((res) => { + return fse.writeFile(output, res); + }); +}, 1000); + +export default function generateComponentRouter(): Plugin { + const filter = createFilter(/opendesign\/src\/.*?\/__docs__\/index\..*?\.md$/); + return { + name: 'generate-component-router', + configureServer(server) { + server.watcher.add(searchBase); + server.watcher.on('all', (event, path) => { + if (filter(path.replace(/\\/g, '/')) && ['add', 'unlink'].includes(event)) { + emit(); + } + }); + }, + buildStart() { + emit(); + }, + }; +} diff --git a/packages/docs/plugins/injectDemoAndApi.ts b/packages/docs/plugins/injectDemoAndApi.ts new file mode 100644 index 00000000..1301f91d --- /dev/null +++ b/packages/docs/plugins/injectDemoAndApi.ts @@ -0,0 +1,41 @@ +import { type Plugin } from 'vite'; +import { join, dirname } from 'node:path'; +import { existsSync, promises as fsp } from 'node:fs'; +import { getLangByFileName } from '../helper/utils'; + +export function injectDemoAndApi(): Plugin { + return { + name: 'portal:inject-demo-and-api', + enforce: 'pre', + async transform(code, id) { + if (!id.endsWith('.md')) { + return; + } + const imported:{name: string, path: string}[] = []; + let newCode = code.replace(//g, (match, componentName) => { + const demoFile = join(dirname(id), `./__demo__/${componentName}.vue`); + if (existsSync(demoFile)) { + imported.push({ + name: `AutoInject${componentName}`, + path: demoFile, + }); + return ``; + } + return match; + }) + if (imported.length) { + newCode += `\n` + } + const lang = getLangByFileName(id); + const dir = dirname(id); + const files = await fsp.readdir(dir); + for (const file of files) { + const filePath = join(dir, file); + if (filePath.endsWith(`api.${lang.lang}.md`) && await fsp.stat(filePath).then((stat) => stat.isFile())) { + newCode += `\n\n${await fsp.readFile(filePath, 'utf-8')}`; + } + } + return newCode; + }, + }; +} diff --git a/packages/docs/plugins/injectDemoDocs.ts b/packages/docs/plugins/injectDemoDocs.ts new file mode 100644 index 00000000..a1c5e9f5 --- /dev/null +++ b/packages/docs/plugins/injectDemoDocs.ts @@ -0,0 +1,57 @@ +import { type Plugin } from 'vite'; +import { MarkdownItAsync } from 'markdown-it-async'; +import { markdownItPlugins, markdownItOptions } from './markdown/common'; +import matter from 'gray-matter'; + +const parseVueQuery = (id: string) => { + let [file, query] = id.split('?', 2); + if (!query) { + return { file, query: {}, queryExtension: '' }; + } + const queryExtension = query.match(/\.([a-zA-Z0-9]+)$/)?.[1]; + query = queryExtension ? query.slice(0, query.length - queryExtension.length - 1) : query; + const queryObj = query + ? query.split('&').reduce((prev, curr) => { + const [key, value] = curr.split('='); + prev[key] = value || true; + return prev; + }, {} as Record) + : {}; + return { file, query: queryObj, queryExtension }; +}; +export function injectDemoDocs(): Plugin { + const md = new MarkdownItAsync(markdownItOptions); + markdownItPlugins.forEach((plugin) => md.use(plugin)); + const matterReg = /^---[\s\S]*?---/; + return { + name: 'portal:inject-demo-docs', + transform(code, id) { + const { query } = parseVueQuery(id); + if (!query.vue || query.type !== 'docs') { + return; + } + code = code.trimStart(); + const matterMatch = code.match(matterReg); + const matterData = matterMatch ? matter(matterMatch[0]) : null; + const h1Reg = /^#\s+(.+)/gm; + const h1MatchList = Array.from(code.matchAll(h1Reg)); + const __docs: { + title: Record; + description: Record; + } = { title: {}, description: {} }; + if (matterData?.data?.title) { + __docs.title = matterData.data.title; + } + for (let i = 0; i < h1MatchList.length; i++) { + const h1Match = h1MatchList[i]; + const [text, title] = h1Match; + const nextIndex = i + 1 < h1MatchList.length ? h1MatchList[i + 1].index : Infinity; + const desRaw = code.slice(h1Match.index + text.length, nextIndex); + __docs.description[title] = md.render(desRaw); + } + return `export default function (_sfc_main) { +_sfc_main.__docs = ${JSON.stringify(__docs)}; +}`; + }, + }; +} diff --git a/packages/docs/plugins/injectDemoSource.ts b/packages/docs/plugins/injectDemoSource.ts new file mode 100644 index 00000000..c5d349af --- /dev/null +++ b/packages/docs/plugins/injectDemoSource.ts @@ -0,0 +1,80 @@ +import fsp from 'node:fs/promises'; +import { createFilter, type Plugin } from 'vite'; +import { parse, type SFCBlock } from '@vue/compiler-sfc'; +import { md } from './markdown/common'; + +const VIRTUAL_PREFIX = 'virtual:demo-source:'; +const virtualModules = new Map(); + +const generateCode = (block: SFCBlock) => { + return `<${block.type} ${Object.entries(block.attrs) + .map(([key, value]) => { + if (typeof value === 'string') { + return `${key}="${value}"`; + } else { + return `${key}`; + } + }) + .join(' ')}>${block.content}\n`; +}; +const generateVirtualModule = (source: string) => { + const { descriptor } = parse(source); + let cleanedSource = ''; + + if (descriptor.script) { + cleanedSource = generateCode(descriptor.script); + } + if (descriptor.scriptSetup) { + cleanedSource += generateCode(descriptor.scriptSetup); + } + if (descriptor.template) { + cleanedSource += generateCode(descriptor.template); + } + if (descriptor.styles) { + descriptor.styles.forEach((style) => { + cleanedSource += generateCode(style); + }); + } + cleanedSource = cleanedSource.trimEnd(); + const result = `${md.render(`\`\`\`vue:line-numbers\n${cleanedSource}\n\`\`\``)}`.replace( + /()([\s\S]*?)<\/code><\/pre>/, + (_, pre, codeAttr, codeContent) => { + return `${pre}${codeContent}`; + } + ); + return ``; +}; +export function injectDemoSource(): Plugin { + const filter = createFilter(/opendesign\/src\/.*?\/__demo__\/.+\.vue$/); + return { + name: 'portal:inject-demo-source', + resolveId(id) { + if (virtualModules.has(id)) { + return id; + } + }, + load(id) { + return virtualModules.get(id); + }, + async transform(code, id) { + if (!filter(id) || id.startsWith(VIRTUAL_PREFIX)) { + return; + } + if (await fsp.stat(id).then((stat) => stat.isFile())) { + const source = await fsp.readFile(id, 'utf-8'); + const virtualId = `${VIRTUAL_PREFIX}${id}`; + virtualModules.set(virtualId, generateVirtualModule(source)); + return `${code} +;import _DemoSource from ${JSON.stringify(virtualId)}; +_sfc_main.DemoSource = _DemoSource;`; + } + }, + async handleHotUpdate(ctx) { + const virtualId = `${VIRTUAL_PREFIX}${ctx.file}`; + if (virtualModules.has(virtualId)) { + virtualModules.set(virtualId, generateVirtualModule(await ctx.read())); + ctx.server.watcher.emit('change', virtualId); + } + }, + }; +} diff --git a/packages/docs/plugins/markdown/common.ts b/packages/docs/plugins/markdown/common.ts new file mode 100644 index 00000000..d7f49f83 --- /dev/null +++ b/packages/docs/plugins/markdown/common.ts @@ -0,0 +1,24 @@ +import { MarkdownItAsync, type MarkdownItAsyncOptions } from 'markdown-it-async'; +import hljs from 'highlight.js'; +import lineNumber from './lineNumber'; +import popover from './popover'; +import wrapTable from './wrapTable'; +import wrapCodeContainer from './wrapCodeContainer'; + +export function highlight(str: string, lang: string, attrs: string) { + let highlightLang = lang === 'vue' ? 'html' : lang; + const hasLang = hljs.getLanguage(highlightLang); + if (!hasLang) { + highlightLang = 'bash'; + } + return hljs.highlight(str, { language: highlightLang }).value; +} +export const markdownItOptions: MarkdownItAsyncOptions = { + html: true, + linkify: true, + typographer: true, + highlight, +}; +export const markdownItPlugins = [lineNumber, popover, wrapCodeContainer, wrapTable]; +export const md = new MarkdownItAsync(markdownItOptions); +markdownItPlugins.forEach((plugin) => md.use(plugin)); diff --git a/packages/docs/plugins/markdown/lineNumber.ts b/packages/docs/plugins/markdown/lineNumber.ts new file mode 100644 index 00000000..7b3cda6e --- /dev/null +++ b/packages/docs/plugins/markdown/lineNumber.ts @@ -0,0 +1,31 @@ +import { type MarkdownItAsync } from 'markdown-it-async'; + +export default function highlightLine(md: MarkdownItAsync) { + const fence = md.renderer.rules.fence; + md.renderer.rules.fence = (tokens, idx, options, env, self) => { + const lineNumberReg = /:line-numbers(=\d+)?/; + const lineNumberMatch = tokens[idx].info.match(lineNumberReg); + let originalCode = ''; + if (lineNumberMatch) { + let start = parseInt(lineNumberMatch[1]?.slice(1) || '1'); + start = Number.isNaN(start) ? 1 : start; + tokens[idx].info = tokens[idx].info.replace(lineNumberMatch[0], ''); + originalCode = fence(tokens, idx, options, env, self); + const codeMatch = originalCode.match(/()([\s\S]*?)(<\/code><\/pre>)/); + if (codeMatch) { + const [, pre, code, post] = codeMatch; + const codeLines = code.split('\n'); + if (codeLines[codeLines.length - 1] === '') { + codeLines.pop(); + } + if (env.portal) { + env.portal.lineNumbers = true; + } else { + env.portal = { lineNumbers: true }; + } + return `${pre}${codeLines.map((line, index) => `${start + index}${line}`).join('\n')}\n${post}`; + } + } + return fence(tokens, idx, options, env, self); + }; +} diff --git a/packages/docs/plugins/markdown/popover.ts b/packages/docs/plugins/markdown/popover.ts new file mode 100644 index 00000000..f848fbf3 --- /dev/null +++ b/packages/docs/plugins/markdown/popover.ts @@ -0,0 +1,42 @@ +import { MarkdownItAsync } from 'markdown-it-async'; +import { escapeHtml } from 'markdown-it/lib/common/utils.mjs'; + +export default function popover(md: MarkdownItAsync) { + // 定义正则表达式,匹配 ^[内容]`提示信息` 语法 + const popoverRegExp = /^\^\[([^\]]*)\](\(normal|primary|success|warning|danger\))?(`[^`]*`)?/; + + md.renderer.rules.popover = function (tokens, idx) { + const token = tokens[idx]; + const content = escapeHtml(token.content); + const info = escapeHtml(token.info); + const target = (icon?: boolean) => + `${icon ? '' : ''}${content}`; + if (!info) { + return target(); + } + return ` + +${info} +`; + }; + + md.inline.ruler.before('emphasis', 'popover', function (state, silent) { + const code = state.src.slice(state.pos, state.posMax); + const matched = code.match(popoverRegExp); + if (!matched) { + return false; + } + if (!silent) { + const token = state.push('popover', 'popover', 0); + token.content = matched[1].replace(/\\\|/g, '|'); + if (!token.meta) { + token.meta = {}; + } + token.meta.color = matched[2] || 'normal'; + token.info = (matched[3] || '').replace(/^`(.*)`$/, '$1'); + token.level = state.level; + state.pos += matched[0].length; + } + return true; + }); +} diff --git a/packages/docs/plugins/markdown/vueMdTranslate.ts b/packages/docs/plugins/markdown/vueMdTranslate.ts new file mode 100644 index 00000000..a3d7d82d --- /dev/null +++ b/packages/docs/plugins/markdown/vueMdTranslate.ts @@ -0,0 +1,12 @@ +import Markdown from 'unplugin-vue-markdown/vite'; +import { MarkdownItAsync } from 'markdown-it-async'; +import { markdownItOptions, markdownItPlugins } from './common' + +export const markdownItSetup = function (md: MarkdownItAsync) { + markdownItPlugins.forEach((plugin) => md.use(plugin)); +}; +export const plugin = Markdown({ + markdownItOptions, + markdownItSetup, + exclude: /\?vue&type=docs/ +}); diff --git a/packages/docs/plugins/markdown/wrapCodeContainer.ts b/packages/docs/plugins/markdown/wrapCodeContainer.ts new file mode 100644 index 00000000..9edd147a --- /dev/null +++ b/packages/docs/plugins/markdown/wrapCodeContainer.ts @@ -0,0 +1,14 @@ +import { MarkdownItAsync } from 'markdown-it-async'; + +export default function wrapCodeContainer(md: MarkdownItAsync) { + const fence = md.renderer.rules.fence; + md.renderer.rules.fence = (tokens, idx, options, env, self) => { + const token = tokens[idx]; + const preCode = fence(tokens, idx, options, env, self); + + return ` + + ${preCode} +`; + }; +} diff --git a/packages/docs/plugins/markdown/wrapTable.ts b/packages/docs/plugins/markdown/wrapTable.ts new file mode 100644 index 00000000..abf33bc6 --- /dev/null +++ b/packages/docs/plugins/markdown/wrapTable.ts @@ -0,0 +1,11 @@ +import { type MarkdownItAsync } from 'markdown-it-async'; + +export default function wrapTable(md: MarkdownItAsync) { + md.renderer.rules.table_open = function (tokens, idx, options, env, self) { + const attrs = tokens[idx].attrs || self.renderAttrs(tokens[idx]); + return `
`; + }; + md.renderer.rules.table_close = function () { + return `
`; + }; +} diff --git a/packages/docs/public/favicon.ico b/packages/docs/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..683c4317d540c87c4ad36b559e05814d410292a1 GIT binary patch literal 4286 zcmeH}Z%kEX9LFCJ(oGqzrKOu*ib!|4<6dNH4xBYv@y@ksZEb8WU-Y6S%&QiT5OpqV zwU`?!23&gOrGJbrf5vo8-O_McZq{@)MFb*HQnXo3y~oe@+;iZa{g^SntNaf2IKe*yC2kQ{CBAGby%tKKG03YZyx>|U=)6YQaA3*JxTvV7>0{b z&e&t|KJZ%yeee#H!B)5c*I);{4PU~rw=G&6zZQS*!xiX*%CO%o&^-DX*x9sc&H3!n zZ&pAUZozl#VXf;2zn?<4uRS`JEA(H3>rkfqylvJZ>@#p2`*C+IzAWfO%lCP}q@b0C z@70X8!T@~CoE>-eGK>DJFa!;*4}2bkD-eXY95&PTKtIpC%HBgHx{ki~w9D5SI|uwo z|6R@Fe*tz4jKI&(0yjW$-^#w8X!e^q*xk^iHM;P304x{=<$=(7>+JuAE^_bD+zx97 zb`4wwJAU|){xHom_XS!o< zi$(@>EufebX`J)WIgCK9<4ZpO06o`Ln5{HP6Ao@J(GIaEAwiElgkd9po zgSnAt34Wv>%Rj&IVjl$6fnVS&Q0-A%){}qfz7n_`b+DDLkWct{A#NHDNcJi?tU0MDL&U|AJF+G7iEs|Fq7B@(76b$Xl3|f zaor@Q;J?Tw^!kh#U9GKHNTMthi73{&EI|>~E^? zZ!x}AXW~&U7VcP(^YObn)3s=N*vCWv|6{s+CFhe7NJikli-0xFb$7dEje4p*CqJoQ y=jm%4EUIV>manQV2!0UiT6ru~KeH}WpIsNKW2~^KqB_VuZ*uQ-)?{k!bk}_l9zpT| literal 0 HcmV?d00001 diff --git a/packages/docs/scripts/generateApi.ts b/packages/docs/scripts/generateApi.ts new file mode 100644 index 00000000..fd68f2a0 --- /dev/null +++ b/packages/docs/scripts/generateApi.ts @@ -0,0 +1,154 @@ +import { glob } from 'glob'; +import { fileURLToPath } from 'url'; +import fsp from 'node:fs/promises'; +import { join, dirname } from 'node:path'; +import { type ComponentMeta, createChecker } from 'vue-component-meta'; +import { parseMulti } from 'vue-docgen-api'; +import { escapeHtml } from 'markdown-it/lib/common/utils.mjs'; +import parseDefineSlots from './parseDefineSlots'; + +const __dirname = fileURLToPath(new URL('.', import.meta.url)); +const base = join(__dirname, '../../opendesign/'); +const srcDir = join(base, 'src'); +const tsConfigPath = join(base, 'tsconfig.json'); + +const checker = createChecker(tsConfigPath, { + forceUseTs: true, + noDeclarations: true, + printer: { newLine: 1 }, +}); +function escapeTableValue(value?: string) { + return escapeHtml(value ? value.replace(/\|/g, '\\|') : ''); +} +function cleanTableData(table: any[][]) { + // 清理表格数据 + table.forEach((row) => { + row.forEach((cell, cellIdx) => { + row[cellIdx] = escapeTableValue(cell); + }); + }); + // 删除空列 + const columnCount = table[0].length; + const emptyIndexes = Array(columnCount).fill(true); + for (let i = 0; i < columnCount; i++) { + for (let j = 1; j < table.length; j++) { + if (table[j][i]) { + emptyIndexes[i] = false; + break; + } + } + } + return table.map((row) => row.filter((_, i) => !emptyIndexes[i])); +} +function markdownTable(table: string[][]) { + let code = ''; + // head + code += '| ' + table[0].join(' | ') + ' |\n'; + code += '| ' + table[0].map(() => '---').join(' | ') + ' |\n'; + // body + for (let i = 1; i < table.length; i++) { + code += '| ' + table[i].join(' | ') + ' |\n'; + } + return code; +} +async function applyTempFixForEventDescriptions(filename: string, componentMeta: ComponentMeta) { + const hasEvents = componentMeta.events.length; + + if (!hasEvents) { + return componentMeta; + } + + try { + const parsedComponentDocs = await parseMulti(filename, { modules: [srcDir], nameFilter: ['default'] }); + componentMeta.events = componentMeta.events.map((event) => { + const parsedEvent = parsedComponentDocs[0].events.find((parsedEvent) => parsedEvent.name === event.name); + + if (parsedEvent) { + event.description = parsedEvent.description; + } + + return event; + }); + } catch { + // noop + } + return componentMeta; +} +async function applyTempFixForSlot(filename: string, componentMeta: ComponentMeta) { + debugger; + const slotReg = /defineSlots<{[^}]+}>\(\)/; + const slotMatch = slotReg.exec(await fsp.readFile(filename, 'utf-8')); + if (!slotMatch) { + return componentMeta; + } + const slotMeta = parseDefineSlots(slotMatch[0]); + const slots = componentMeta.slots.map((slot) => { + const parsedSlot = slotMeta.find((s) => s.name === slot.name); + if (parsedSlot) { + slot.description = parsedSlot.docs.description; + slot.type = parsedSlot.type; + } + return slot; + }); + return { + ...componentMeta, + slots, + }; +} +const terminalWidth = process.stdout.columns || 80; +const progressBarLength = Math.min(Math.floor(terminalWidth / 4), 30); +const pathReg = /\/(O.*)\.vue/; +glob('*/O*.vue', { cwd: srcDir, posix: true }).then((files) => { + files.forEach(async (file, index) => { + const fullPath = join(srcDir, file); + const meta = checker.getComponentMeta(fullPath); + const completedCount = Math.floor(((index + 1) / files.length) * progressBarLength); + const restCount = progressBarLength - completedCount; + const progressBar = `${'█'.repeat(completedCount)}${' '.repeat(restCount)}`; + const percent = (((index + 1) / files.length) * 100).toFixed(0); + + // 输出进度条 + process.stdout.write(`\r[${progressBar}] ${percent}%`); + await applyTempFixForEventDescriptions(fullPath, meta); + await applyTempFixForSlot(fullPath, meta); + const pathMath = file.match(pathReg); + const apiMdPath = join(fullPath, `../__docs__/${pathMath[1]}-api.zh-CN.md`); + let mdContent = `## API ${pathMath[1]}`; + // props + if (meta.props.length) { + let propsData = meta.props + .filter((prop) => !prop.global) + .map((prop) => { + return [ + prop.name, + prop.type, + prop.required ? '√' : '', + prop.description, + prop.tags.map((tag) => `^[${tag.name}]${tag.text ? `\`${tag.text}\`` : ''}`).join(' '), + ]; + }); + propsData.unshift(['属性名', '类型', '必填', '说明', '其它']); + propsData = cleanTableData(propsData); + mdContent = `${mdContent}\n\n### props\n\n${markdownTable(propsData)}`; + } + // events + if (meta.events.length) { + let eventsData = meta.events.map((event) => { + return [event.name, event.signature, event.description, event.tags.map((tag) => `^[${tag.name}]${tag.text ? `\`${tag.text}\`` : ''}`).join(' ')]; + }); + eventsData.unshift(['事件名', '签名', '说明', '其它']); + eventsData = cleanTableData(eventsData); + mdContent = `${mdContent}\n\n### events\n\n${markdownTable(eventsData)}`; + } + // slots + if (meta.slots.length) { + let slotsData = meta.slots.map((slot) => { + return [slot.name, slot.type, slot.description]; + }); + slotsData.unshift(['插槽', '签名', '说明']); + slotsData = cleanTableData(slotsData); + mdContent = `${mdContent}\n\n### slots\n\n${markdownTable(slotsData)}`; + } + await fsp.mkdir(dirname(apiMdPath), { recursive: true }).then(() => fsp.writeFile(apiMdPath, mdContent, { encoding: 'utf-8' })); + }); +}); diff --git a/packages/docs/scripts/parseDefineSlots.ts b/packages/docs/scripts/parseDefineSlots.ts new file mode 100644 index 00000000..0698e4b9 --- /dev/null +++ b/packages/docs/scripts/parseDefineSlots.ts @@ -0,0 +1,67 @@ +import ts from 'typescript'; + +interface SlotDefinition { + name: string; + type: string; + docs: { + description: string; + tags: { + name: string; + text: string; + }[]; + }; +} + +export default function parseDefineSlots(code: string): SlotDefinition[] { + const sourceFile = ts.createSourceFile('temp.ts', code, ts.ScriptTarget.Latest, true); + const slots: SlotDefinition[] = []; + + function visit(node: ts.Node) { + // 检测 defineSlots 调用表达式 + if (ts.isCallExpression(node) && ts.isIdentifier(node.expression) && node.expression.text === 'defineSlots' && node.typeArguments?.length) { + const typeArg = node.typeArguments[0]; + + // 处理内联对象类型 + if (ts.isTypeLiteralNode(typeArg)) { + for (const member of typeArg.members) { + if (ts.isPropertySignature(member)) { + const name = member.name.getText(sourceFile); + const type = member.type?.getText(sourceFile) || 'any'; + const docs = { + description: '', + tags: [], + }; + + // 提取文档注释 + if ((member as any).jsDoc?.length) { + docs.description = (member as any).jsDoc + .map((doc) => { + let comment = doc.getText(sourceFile); + // 清理注释格式 + comment = comment + .replace(/\/\*\*|\*\//g, '') + .replace(/^\s*\*\s?/gm, '') + .replace(/@([a-zA-Z]+)\s+(.*)/gm, (_: string, paramName: string, paramValue: string) => { + docs.tags.push({ + name: paramName, + value: paramValue || '', + }); + return ''; + }) + .trim(); + return comment; + }) + .join('\n'); + } + + slots.push({ name, type, docs }); + } + } + } + } + ts.forEachChild(node, visit); + } + + visit(sourceFile); + return slots; +} diff --git a/packages/docs/src/App.vue b/packages/docs/src/App.vue new file mode 100644 index 00000000..2e4e4439 --- /dev/null +++ b/packages/docs/src/App.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/packages/docs/src/assets/style/a.dark.token.css b/packages/docs/src/assets/style/a.dark.token.css new file mode 100644 index 00000000..706a4b24 --- /dev/null +++ b/packages/docs/src/assets/style/a.dark.token.css @@ -0,0 +1,1949 @@ +/* theme: a.dark */ +[data-o-theme="a.dark"] { + /** + * @name + * @type palette + * @group white + * @description + */ + --o-white: 255, 255, 255; + /** + * @name + * @type palette + * @group black + * @description + */ + --o-black: 0, 0, 0; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-1: 0, 4, 77; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-2: 6, 15, 120; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-3: 20, 37, 163; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-4: 40, 65, 207; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-5: 66, 99, 250; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-6: 84, 120, 251; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-7: 122, 154, 252; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-8: 160, 186, 253; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-9: 199, 217, 254; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-10: 238, 244, 255; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-1: 0, 77, 42; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-2: 2, 102, 53; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-3: 10, 127, 66; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-4: 22, 152, 80; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-5: 36, 177, 95; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-6: 51, 193, 104; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-7: 90, 208, 131; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-8: 135, 224, 163; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-9: 185, 239, 200; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-10: 240, 255, 244; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-1: 77, 24, 0; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-2: 120, 42, 1; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-3: 163, 68, 8; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-4: 207, 97, 19; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-5: 250, 130, 33; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-6: 251, 143, 32; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-7: 252, 174, 91; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-8: 253, 202, 139; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-9: 254, 227, 188; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-10: 255, 248, 237; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-1: 77, 0, 17; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-2: 115, 3, 24; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-3: 153, 9, 31; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-4: 192, 17, 37; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-5: 230, 28, 43; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-6: 235, 35, 45; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-7: 240, 82, 85; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-8: 245, 132, 130; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-9: 250, 183, 180; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-10: 255, 234, 232; + /** + * @name + * @type palette + * @group huaweired + * @description + */ + --o-red-huawei: 199, 0, 11; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-1: 0, 0, 0; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-2: 20, 20, 20; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-3: 28, 28, 28; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-4: 39, 39, 39; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-5: 47, 47, 47; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-6: 57, 57, 57; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-7: 67, 67, 67; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-8: 88, 88, 88; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-9: 122, 122, 122; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-10: 159, 159, 159; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-11: 185, 185, 185; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-12: 210, 210, 210; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-13: 238, 238, 238; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-14: 255, 255, 255; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-1: 0, 0, 0; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-2: 16, 28, 20; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-3: 23, 25, 28; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-4: 33, 35, 39; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-5: 40, 42, 47; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-6: 50, 53, 57; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-7: 61, 63, 67; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-8: 80, 84, 88; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-9: 113, 117, 122; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-10: 147, 152, 159; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-11: 172, 177, 185; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-12: 198, 202, 210; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-13: 231, 234, 238; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-14: 255, 255, 255; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-1: 77, 54, 0; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-2: 119, 87, 2; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-3: 161, 126, 11; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-4: 203, 167, 24; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-5: 245, 211, 42; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-6: 247, 222, 54; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-7: 249, 234, 100; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-8: 251, 244, 146; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-9: 253, 251, 192; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-10: 255, 255, 240; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-1: 41, 77, 0; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-2: 63, 109, 3; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-3: 91, 142, 14; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-4: 121, 174, 30; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-5: 155, 207, 50; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-6: 172, 217, 68; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-7: 194, 226, 104; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-8: 214, 236, 144; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-9: 233, 245, 186; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-10: 251, 255, 232; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-1: 0, 73, 77; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-2: 2, 101, 103; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-3: 9, 129, 127; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-4: 18, 155, 148; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-5: 30, 181, 167; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-6: 42, 196, 178; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-7: 84, 211, 192; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-8: 130, 255, 208; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-9: 182, 240, 227; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-10: 239, 255, 251; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-1: 0, 34, 77; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-2: 1, 57, 117; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-3: 8, 86, 158; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-4: 18, 118, 199; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-5: 31, 153, 240; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-6: 42, 166, 243; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-7: 89, 191, 246; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-8: 137, 214, 249; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-9: 187, 233, 252; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-10: 237, 250, 255; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-1: 22, 0, 77; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-2: 40, 3, 118; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-3: 66, 15, 160; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-4: 98, 33, 202; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-5: 134, 57, 244; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-6: 152, 74, 246; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-7: 179, 114, 248; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-8: 205, 156, 251; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-9: 228, 198, 253; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-10: 249, 240, 255; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-1: 61, 0, 77; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-2: 93, 5, 110; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-3: 127, 16, 144; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-4: 164, 33, 178; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-5: 200, 54, 212; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-6: 216, 72, 221; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-7: 229, 109, 229; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-8: 238, 149, 235; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-9: 246, 191, 243; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-10: 255, 236, 253; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-1: 77, 0, 48; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-2: 114, 3, 70; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-3: 151, 12, 91; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-4: 189, 25, 112; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-5: 226, 41, 133; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-6: 232, 53, 137; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-7: 238, 97, 158; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-8: 243, 143, 183; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-9: 249, 192, 213; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-10: 255, 242, 247; + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-white: rgb(var(--o-white)); + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-black: rgb(var(--o-black)); + /** + * @name + * @type color + * @group primary + * @description 常规 + */ + --o-color-primary1: rgb(var(--o-mixedgray-14)); + /** + * @name + * @type color + * @group primary + * @description 悬浮 + */ + --o-color-primary2: rgb(var(--o-mixedgray-13)); + /** + * @name + * @type color + * @group primary + * @description 激活 + */ + --o-color-primary3: rgb(var(--o-mixedgray-12)); + /** + * @name + * @type color + * @group primary + * @description 禁用 + */ + --o-color-primary4: rgb(var(--o-mixedgray-8)); + /** + * @name + * @type color + * @group primary + * @description 常规-浅 + */ + --o-color-primary1-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group primary + * @description 悬浮-浅 + */ + --o-color-primary2-light: rgb(var(--o-mixedgray-6)); + /** + * @name + * @type color + * @group primary + * @description 激活-浅 + */ + --o-color-primary3-light: rgb(var(--o-mixedgray-7)); + /** + * @name + * @type color + * @group primary + * @description 禁用-浅 + */ + --o-color-primary4-light: rgb(var(--o-mixedgray-6)); + /** + * @name + * @type color + * @group success + * @description 常规 + */ + --o-color-success1: rgb(var(--o-green-6)); + /** + * @name + * @type color + * @group success + * @description 悬浮 + */ + --o-color-success2: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 激活 + */ + --o-color-success3: rgb(var(--o-green-7)); + /** + * @name + * @type color + * @group success + * @description 禁用 + */ + --o-color-success4: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 常规-浅 + */ + --o-color-success1-light: rgb(var(--o-green-2)); + /** + * @name + * @type color + * @group success + * @description 悬浮-浅 + */ + --o-color-success2-light: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 激活-浅 + */ + --o-color-success3-light: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 禁用-浅 + */ + --o-color-success4-light: rgb(var(--o-green-1)); + /** + * @name + * @type color + * @group warning + * @description 常规 + */ + --o-color-warning1: rgb(var(--o-orange-6)); + /** + * @name + * @type color + * @group warning + * @description 悬浮 + */ + --o-color-warning2: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 激活 + */ + --o-color-warning3: rgb(var(--o-orange-7)); + /** + * @name + * @type color + * @group warning + * @description 禁用 + */ + --o-color-warning4: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 常规-浅 + */ + --o-color-warning1-light: rgb(var(--o-orange-2)); + /** + * @name + * @type color + * @group warning + * @description 悬浮-浅 + */ + --o-color-warning2-light: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 激活-浅 + */ + --o-color-warning3-light: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 禁用-浅 + */ + --o-color-warning4-light: rgb(var(--o-orange-1)); + /** + * @name + * @type color + * @group danger + * @description 常规 + */ + --o-color-danger1: rgb(var(--o-red-6)); + /** + * @name + * @type color + * @group danger + * @description 悬浮 + */ + --o-color-danger2: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 激活 + */ + --o-color-danger3: rgb(var(--o-red-7)); + /** + * @name + * @type color + * @group danger + * @description 禁用 + */ + --o-color-danger4: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 常规-浅 + */ + --o-color-danger1-light: rgb(var(--o-red-2)); + /** + * @name + * @type color + * @group danger + * @description 悬浮-浅 + */ + --o-color-danger2-light: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 激活-浅 + */ + --o-color-danger3-light: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 禁用-浅 + */ + --o-color-danger4-light: rgb(var(--o-red-1)); + /** + * @name + * @type color + * @group fill + * @description 一级填充:页面背景 + */ + --o-color-fill1: rgb(var(--o-mixedgray-3)); + /** + * @name + * @type color + * @group fill + * @description 二级填充:区块/卡片 + */ + --o-color-fill2: rgb(var(--o-mixedgray-4)); + /** + * @name + * @type color + * @group fill + * @description 三级填充:卡片 + */ + --o-color-fill3: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group control + * @description 常规,常用于边框 + */ + --o-color-control1: rgba(var(--o-mixedgray-14), 0.25); + /** + * @name + * @type color + * @group control + * @description 悬浮,常用于边框 + */ + --o-color-control2: rgba(var(--o-mixedgray-14), 0.6); + /** + * @name + * @type color + * @group control + * @description 激活,常用于边框 + */ + --o-color-control3: rgba(var(--o-mixedgray-14), 0.8); + /** + * @name + * @type color + * @group control + * @description 禁用,常用于边框 + */ + --o-color-control4: rgba(var(--o-mixedgray-14), 0.15); + /** + * @name + * @type color + * @group control + * @description 常规-浅,常用于背景 + */ + --o-color-control1-light: rgb(var(--o-mixedgray-7)); + /** + * @name + * @type color + * @group control + * @description 悬浮-浅,常用于背景 + */ + --o-color-control2-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group control + * @description 激活-浅,常用于背景 + */ + --o-color-control3-light: rgb(var(--o-mixedgray-6)); + /** + * @name + * @type color + * @group control + * @description 禁用-浅,常用于背景 + */ + --o-color-control4-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group control + * @description 很浅,常用于表格背景色 + */ + --o-color-control-light: rgb(var(--o-mixedgray-4)); + /** + * @name + * @type color + * @group info + * @description 一级/强调/标题 + */ + --o-color-info1: rgba(var(--o-mixedgray-14), 1.0); + /** + * @name + * @type color + * @group info + * @description 二级/次强调/正文 + */ + --o-color-info2: rgba(var(--o-mixedgray-14), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息 + */ + --o-color-info3: rgba(var(--o-mixedgray-14), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用 + */ + --o-color-info4: rgba(var(--o-mixedgray-14), 0.4); + /** + * @name + * @type color + * @group info + * @description 一级/次强调/正文反色 + */ + --o-color-info1-inverse: rgba(var(--o-mixedgray-1), 1.0); + /** + * @name + * @type color + * @group info + * @description 二级/辅助信息反色 + */ + --o-color-info2-inverse: rgba(var(--o-mixedgray-1), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息反色 + */ + --o-color-info3-inverse: rgba(var(--o-mixedgray-1), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用反色 + */ + --o-color-info4-inverse: rgba(var(--o-mixedgray-1), 0.4); + /** + * @name + * @type color + * @group mask + * @description 全局遮罩 + */ + --o-color-mask1: rgba(var(--o-mixedgray-1), 0.4); + /** + * @name + * @type color + * @group mask + * @description 局部遮罩 + */ + --o-color-mask2: rgba(var(--o-mixedgray-4), 0.2); + /** + * @name + * @type color + * @group link + * @description 常规 + */ + --o-color-link1: rgba(var(--o-deepblue-6), 1.0); + /** + * @name + * @type color + * @group link + * @description 悬浮 + */ + --o-color-link2: rgba(var(--o-deepblue-6), 0.7); + /** + * @name + * @type color + * @group link + * @description 激活 + */ + --o-color-link3: rgba(var(--o-deepblue-6), 0.9); + /** + * @name + * @type color + * @group link + * @description 禁用 + */ + --o-color-link4: rgba(var(--o-deepblue-6), 0.4); + /** + * @name 阴影1 + * @type shadow + * @group shadow + * @description 用于卡片、小弹窗、楼层阴影 + */ + --o-shadow-1: 0 3px 8px rgba(var(--o-mixedgray-1), 0.08); + /** + * @name 阴影2 + * @type shadow + * @group shadow + * @description 用于卡片悬浮阴影 + */ + --o-shadow-2: 0 4px 24px rgba(var(--o-mixedgray-1), 0.1); + /** + * @name 阴影3 + * @type shadow + * @group shadow + * @description 用于提示阴影 + */ + --o-shadow-3: 0 8px 40px rgba(var(--o-mixedgray-1), 0.1); + /** + * @name 间距1 + * @type gap + * @group gap + * @description 用于组件之间的间距1 + */ + --o-gap-1: 4px; + /** + * @name 间距2 + * @type gap + * @group gap + * @description 用于组件之间的间距2 + */ + --o-gap-2: 8px; + /** + * @name 间距3 + * @type gap + * @group gap + * @description 用于组件之间的间距3 + */ + --o-gap-3: 12px; + /** + * @name 间距4 + * @type gap + * @group gap + * @description 用于组件之间的间距4 + */ + --o-gap-4: 16px; + /** + * @name 间距5 + * @type gap + * @group gap + * @description 用于组件之间的间距5 + */ + --o-gap-5: 24px; + /** + * @name 间距6 + * @type gap + * @group gap + * @description 用于组件之间的间距6 + */ + --o-gap-6: 32px; + /** + * @name 间距7 + * @type gap + * @group gap + * @description 用于组件之间的间距7 + */ + --o-gap-7: 40px; + /** + * @name 间距8 + * @type gap + * @group gap + * @description 用于组件之间的间距8 + */ + --o-gap-8: 48px; + /** + * @name 间距9 + * @type gap + * @group gap + * @description 用于组件之间的间距9 + */ + --o-gap-9: 64px; + /** + * @name 间距10 + * @type gap + * @group gap + * @description 用于组件之间的间距10 + */ + --o-gap-10: 72px; + /** + * @name 超小尺寸 + * @type size + * @group control_size + * @description 超小尺寸 + */ + --o-control_size-2xs: 14px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-xs: 16px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-s: 24px; + /** + * @name 中尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-m: 32px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-l: 40px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-xl: 48px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-2xl: 56px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size + * @description 超小尺寸图标 + */ + --o-icon_size-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size + * @description 小尺寸图标 + */ + --o-icon_size-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size + * @description 中尺寸图标 + */ + --o-icon_size-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size + * @description 大尺寸图标 + */ + --o-icon_size-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size + * @description 超大尺寸图标 + */ + --o-icon_size-xl: 40px; + /** + * @name 2xl尺寸图标 + * @type size + * @group icon_size + * @description 2xl尺寸图标 + */ + --o-icon_size-2xl: 48px; + /** + * @name 3xl尺寸图标 + * @type size + * @group icon_size + * @description 3xl尺寸图标 + */ + --o-icon_size-3xl: 56px; + /** + * @name 4xl尺寸图标 + * @type size + * @group icon_size + * @description 4xl尺寸图标 + */ + --o-icon_size-4xl: 64px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size_control + * @description 超小尺寸控件图标(组件使用) + */ + --o-icon_size_control-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size_control + * @description 小尺寸控件图标(组件使用) + */ + --o-icon_size_control-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size_control + * @description 中尺寸控件图标(组件使用) + */ + --o-icon_size_control-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size_control + * @description 大尺寸控件图标(组件使用) + */ + --o-icon_size_control-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size_control + * @description 超大尺寸控件图标(组件使用) + */ + --o-icon_size_control-xl: 40px; + /** + * @name 一级数据展示 + * @type font + * @group font_size + * @description 一级数据展示 + */ + --o-font_size-display1: 56px; + /** + * @name 二级数据展示 + * @type font + * @group font_size + * @description 二级数据展示 + */ + --o-font_size-display2: 48px; + /** + * @name 三级数据展示 + * @type font + * @group font_size + * @description 三级数据展示 + */ + --o-font_size-display3: 40px; + /** + * @name 一级标题 + * @type font + * @group font_size + * @description 一级标题 + */ + --o-font_size-h1: 32px; + /** + * @name 二级标题 + * @type font + * @group font_size + * @description 二级标题 + */ + --o-font_size-h2: 24px; + /** + * @name 三级标题 + * @type font + * @group font_size + * @description 三级标题 + */ + --o-font_size-h3: 22px; + /** + * @name 四级标题 + * @type font + * @group font_size + * @description 四级标题 + */ + --o-font_size-h4: 20px; + /** + * @name 常规正文 + * @type font + * @group font_size + * @description 常规正文 + */ + --o-font_size-text1: 16px; + /** + * @name 大号正文 + * @type font + * @group font_size + * @description 大号正文 + */ + --o-font_size-text2: 18px; + /** + * @name 提示文本1 + * @type font + * @group font_size + * @description 提示文本1 + */ + --o-font_size-tip1: 14px; + /** + * @name 提示文本2 + * @type font + * @group font_size + * @description 提示文本2 + */ + --o-font_size-tip2: 12px; + /** + * @name 一级数据展示 + * @type font + * @group line_height + * @description 一级数据展示 + */ + --o-line_height-display1: 80px; + /** + * @name 二级数据展示 + * @type font + * @group line_height + * @description 二级数据展示 + */ + --o-line_height-display2: 64px; + /** + * @name 三级数据展示 + * @type font + * @group line_height + * @description 三级数据展示 + */ + --o-line_height-display3: 56px; + /** + * @name 一级标题 + * @type font + * @group line_height + * @description 一级标题 + */ + --o-line_height-h1: 44px; + /** + * @name 二级标题 + * @type font + * @group line_height + * @description 二级标题 + */ + --o-line_height-h2: 32px; + /** + * @name 三级标题 + * @type font + * @group line_height + * @description 三级标题 + */ + --o-line_height-h3: 30px; + /** + * @name 四级标题 + * @type font + * @group line_height + * @description 四级标题 + */ + --o-line_height-h4: 28px; + /** + * @name 正文 + * @type font + * @group line_height + * @description 正文 + */ + --o-line_height-text1: 24px; + /** + * @name 正文-大 + * @type font + * @group line_height + * @description 正文-大 + */ + --o-line_height-text2: 26x; + /** + * @name 提示文本1 + * @type font + * @group line_height + * @description 提示文本1 + */ + --o-line_height-tip1: 22px; + /** + * @name 提示文本2 + * @type font + * @group line_height + * @description 提示文本2 + */ + --o-line_height-tip2: 18px; + /** + * @name 超小尺寸圆角 + * @type size + * @group radius + * @description 超小尺寸圆角 + */ + --o-radius-xs: 4px; + /** + * @name 小尺寸圆角 + * @type size + * @group radius + * @description 小尺寸圆角 + */ + --o-radius-s: 8px; + /** + * @name 中尺寸圆角 + * @type size + * @group radius + * @description 中尺寸圆角 + */ + --o-radius-m: 12px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角 + */ + --o-radius-l: 16px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角,一般用于卡片 + */ + --o-radius-xl: 24px; + /** + * @name 超小尺寸控件圆角 + * @type size + * @group radius_control + * @description 超小尺寸控件圆角(组件使用) + */ + --o-radius_control-xs: 4px; + /** + * @name 小尺寸控件圆角 + * @type size + * @group radius_control + * @description 小尺寸控件圆角(组件使用) + */ + --o-radius_control-s: 8px; + /** + * @name 中尺寸控件圆角 + * @type size + * @group radius_control + * @description 中尺寸控件圆角(组件使用) + */ + --o-radius_control-m: 12px; + /** + * @name 大尺寸控件圆角 + * @type size + * @group radius_control + * @description 大尺寸控件圆角(组件使用) + */ + --o-radius_control-l: 16px; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于退出屏幕的动画 + */ + --o-duration-s: 200ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard-in时进入屏幕的动画 + */ + --o-duration-m1: 250ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard时开始、结束的动画 + */ + --o-duration-m2: 300ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized-in时进入屏幕的动画 + */ + --o-duration-m3: 400ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时开始、结束的动画 + */ + --o-duration-l: 500ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时,轮播切换动画 + */ + --o-duration-xl: 1000ms; + /** + * @name 线性动画曲线 + * @type animation + * @group easing + * @description 线性曲线 + */ + --o-easing-linear: cubic-bezier(0, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-in: cubic-bezier(0, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-out: cubic-bezier(0.3, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-in: cubic-bezier(0.3, 0, 0.8, 0.15); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-out: cubic-bezier(0.05, 0.7, 0.1, 1); +} \ No newline at end of file diff --git a/packages/docs/src/assets/style/a.light.token.css b/packages/docs/src/assets/style/a.light.token.css new file mode 100644 index 00000000..dd4213d7 --- /dev/null +++ b/packages/docs/src/assets/style/a.light.token.css @@ -0,0 +1,1949 @@ +/* theme: a.light */ +[data-o-theme="a.light"] { + /** + * @name + * @type palette + * @group white + * @description + */ + --o-white: 255, 255, 255; + /** + * @name + * @type palette + * @group black + * @description + */ + --o-black: 0, 0, 0; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-1: 232, 240, 255; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-2: 194, 213, 254; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-3: 157, 184, 253; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-4: 120, 153, 252; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-5: 83, 119, 251; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-6: 46, 83, 250; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-7: 29, 55, 207; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-8: 15, 32, 163; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-9: 6, 15, 120; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-10: 0, 4, 47; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-1: 232, 255, 238; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-2: 177, 239, 195; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-3: 128, 224, 158; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-4: 84, 208, 127; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-5: 45, 193, 101; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-6: 11, 177, 81; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-7: 7, 152, 72; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-8: 4, 127, 63; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-9: 2, 102, 53; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-10: 0, 77, 42; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-1: 255, 246, 232; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-2: 254, 226, 186; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-3: 253, 202, 140; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-4: 252, 176, 95; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-5: 251, 147, 50; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-6: 250, 115, 5; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-7: 207, 88, 3; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-8: 163, 64, 2; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-9: 120, 42, 1; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-10: 77, 24, 0; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-1: 255, 234, 232; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-2: 250, 185, 182; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-3: 245, 136, 134; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-4: 240, 87, 90; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-5: 235, 43, 52; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-6: 230, 0, 18; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-7: 192, 0, 22; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-8: 153, 0, 23; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-9: 115, 0, 21; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-10: 77, 0, 17; + /** + * @name + * @type palette + * @group huaweired + * @description + */ + --o-red-huawei: 199, 0, 11; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-1: 255, 255, 255; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-2: 247, 247, 247; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-3: 242, 242, 242; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-4: 237, 237, 237; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-5: 227, 227, 227; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-6: 214, 214, 214; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-7: 186, 186, 186; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-8: 148, 148, 148; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-9: 110, 110, 110; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-10: 79, 79, 79; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-11: 48, 48, 48; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-12: 36, 36, 36; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-13: 18, 18, 18; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-14: 0, 0, 0; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-1: 255, 255, 255; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-2: 244, 245, 247; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-3: 237, 239, 242; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-4: 232, 234, 237; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-5: 224, 226, 230; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-6: 209, 214, 219; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-7: 179, 185, 191; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-8: 144, 150, 158; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-9: 104, 109, 117; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-10: 79, 84, 92; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-11: 55, 59, 66; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-12: 32, 35, 41; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-13: 18, 20, 23; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-14: 0, 0, 0; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-1: 255, 255, 232; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-2: 253, 251, 185; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-3: 251, 244, 139; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-4: 249, 233, 94; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-5: 247, 221, 49; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-6: 245, 205, 5; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-7: 203, 163, 3; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-8: 161, 124, 2; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-9: 119, 87, 1; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-10: 77, 54, 0; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-1: 251, 255, 232; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-2: 233, 245, 184; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-3: 213, 236, 139; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-4: 192, 226, 97; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-5: 169, 217, 59; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-6: 146, 207, 23; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-7: 116, 174, 15; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-8: 88, 142, 8; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-9: 63, 109, 3; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-10: 41, 77, 0; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-1: 232, 255, 249; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-2: 176, 240, 226; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-3: 125, 225, 207; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-4: 79, 221, 191; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-5: 38, 196, 177; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-6: 3, 181, 165; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-7: 2, 155, 147; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-8: 1, 129, 127; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-9: 0, 101, 103; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-10: 0, 73, 77; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-1: 232, 249, 255; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-2: 185, 233, 252; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-3: 138, 214, 249; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-4: 93, 192, 246; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-5: 48, 168, 243; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-6: 5, 142, 240; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-7: 3, 111, 199; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-8: 2, 83, 158; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-9: 1, 57, 117; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-10: 0, 34, 77; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-1: 245, 232, 255; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-2: 225, 192, 253; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-3: 203, 152, 251; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-4: 178, 113, 248; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-5: 152, 75, 246; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-6: 123, 37, 244; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-7: 92, 23, 202; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-8: 64, 12, 160; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-9: 41, 4, 118; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-10: 22, 0, 77; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-1: 255, 232, 253; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-2: 246, 188, 243; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-3: 238, 146, 235; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-4: 229, 107, 229; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-5: 216, 71, 221; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-6: 199, 37, 212; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-7: 163, 23, 178; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-8: 127, 13, 144; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-9: 93, 5, 110; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-10: 61, 0, 77; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-1: 255, 232, 240; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-2: 249, 185, 209; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-3: 243, 141, 182; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-4: 238, 98, 158; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-5: 232, 57, 139; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-6: 226, 18, 122; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-7: 189, 11, 106; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-8: 151, 6, 88; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-9: 114, 2, 69; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-10: 77, 0, 48; + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-white: rgb(var(--o-white)); + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-black: rgb(var(--o-black)); + /** + * @name + * @type color + * @group primary + * @description 常规 + */ + --o-color-primary1: rgb(var(--o-mixedgray-12)); + /** + * @name + * @type color + * @group primary + * @description 悬浮 + */ + --o-color-primary2: rgb(var(--o-mixedgray-11)); + /** + * @name + * @type color + * @group primary + * @description 激活 + */ + --o-color-primary3: rgb(var(--o-mixedgray-13)); + /** + * @name + * @type color + * @group primary + * @description 禁用 + */ + --o-color-primary4: rgb(var(--o-mixedgray-6)); + /** + * @name + * @type color + * @group primary + * @description 常规-浅 + */ + --o-color-primary1-light: rgb(var(--o-mixedgray-4)); + /** + * @name + * @type color + * @group primary + * @description 悬浮-浅 + */ + --o-color-primary2-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group primary + * @description 激活-浅 + */ + --o-color-primary3-light: rgb(var(--o-mixedgray-6)); + /** + * @name + * @type color + * @group primary + * @description 禁用-浅 + */ + --o-color-primary4-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group success + * @description 常规 + */ + --o-color-success1: rgb(var(--o-green-6)); + /** + * @name + * @type color + * @group success + * @description 悬浮 + */ + --o-color-success2: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 激活 + */ + --o-color-success3: rgb(var(--o-green-7)); + /** + * @name + * @type color + * @group success + * @description 禁用 + */ + --o-color-success4: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 常规-浅 + */ + --o-color-success1-light: rgb(var(--o-green-2)); + /** + * @name + * @type color + * @group success + * @description 悬浮-浅 + */ + --o-color-success2-light: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 激活-浅 + */ + --o-color-success3-light: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 禁用-浅 + */ + --o-color-success4-light: rgb(var(--o-green-1)); + /** + * @name + * @type color + * @group warning + * @description 常规 + */ + --o-color-warning1: rgb(var(--o-orange-6)); + /** + * @name + * @type color + * @group warning + * @description 悬浮 + */ + --o-color-warning2: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 激活 + */ + --o-color-warning3: rgb(var(--o-orange-7)); + /** + * @name + * @type color + * @group warning + * @description 禁用 + */ + --o-color-warning4: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 常规-浅 + */ + --o-color-warning1-light: rgb(var(--o-orange-2)); + /** + * @name + * @type color + * @group warning + * @description 悬浮-浅 + */ + --o-color-warning2-light: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 激活-浅 + */ + --o-color-warning3-light: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 禁用-浅 + */ + --o-color-warning4-light: rgb(var(--o-orange-1)); + /** + * @name + * @type color + * @group danger + * @description 常规 + */ + --o-color-danger1: rgb(var(--o-red-6)); + /** + * @name + * @type color + * @group danger + * @description 悬浮 + */ + --o-color-danger2: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 激活 + */ + --o-color-danger3: rgb(var(--o-red-7)); + /** + * @name + * @type color + * @group danger + * @description 禁用 + */ + --o-color-danger4: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 常规-浅 + */ + --o-color-danger1-light: rgb(var(--o-red-2)); + /** + * @name + * @type color + * @group danger + * @description 悬浮-浅 + */ + --o-color-danger2-light: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 激活-浅 + */ + --o-color-danger3-light: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 禁用-浅 + */ + --o-color-danger4-light: rgb(var(--o-red-1)); + /** + * @name + * @type color + * @group fill + * @description 一级填充:页面背景 + */ + --o-color-fill1: rgb(var(--o-mixedgray-2)); + /** + * @name + * @type color + * @group fill + * @description 二级填充:区块/卡片 + */ + --o-color-fill2: rgb(var(--o-mixedgray-1)); + /** + * @name + * @type color + * @group fill + * @description 三级填充:卡片 + */ + --o-color-fill3: rgb(var(--o-mixedgray-3)); + /** + * @name + * @type color + * @group control + * @description 常规,常用于边框 + */ + --o-color-control1: rgba(var(--o-mixedgray-14), 0.25); + /** + * @name + * @type color + * @group control + * @description 悬浮,常用于边框 + */ + --o-color-control2: rgba(var(--o-mixedgray-14), 0.6); + /** + * @name + * @type color + * @group control + * @description 激活,常用于边框 + */ + --o-color-control3: rgba(var(--o-mixedgray-14), 0.8); + /** + * @name + * @type color + * @group control + * @description 禁用,常用于边框 + */ + --o-color-control4: rgba(var(--o-mixedgray-14), 0.1); + /** + * @name + * @type color + * @group control + * @description 常规-浅,常用于背景 + */ + --o-color-control1-light: rgb(var(--o-mixedgray-5)); + /** + * @name + * @type color + * @group control + * @description 悬浮-浅,常用于背景 + */ + --o-color-control2-light: rgb(var(--o-mixedgray-3)); + /** + * @name + * @type color + * @group control + * @description 激活-浅,常用于背景 + */ + --o-color-control3-light: rgb(var(--o-mixedgray-4)); + /** + * @name + * @type color + * @group control + * @description 禁用-浅,常用于背景 + */ + --o-color-control4-light: rgb(var(--o-mixedgray-3)); + /** + * @name + * @type color + * @group control + * @description 很浅,常用于表格背景色 + */ + --o-color-control-light: rgb(var(--o-mixedgray-1)); + /** + * @name + * @type color + * @group info + * @description 一级/强调/标题 + */ + --o-color-info1: rgba(var(--o-mixedgray-14), 1.0); + /** + * @name + * @type color + * @group info + * @description 二级/次强调/正文 + */ + --o-color-info2: rgba(var(--o-mixedgray-14), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息 + */ + --o-color-info3: rgba(var(--o-mixedgray-14), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用 + */ + --o-color-info4: rgba(var(--o-mixedgray-14), 0.4); + /** + * @name + * @type color + * @group info + * @description 一级/次强调/正文反色 + */ + --o-color-info1-inverse: rgba(var(--o-mixedgray-1), 1.0); + /** + * @name + * @type color + * @group info + * @description 二级/辅助信息反色 + */ + --o-color-info2-inverse: rgba(var(--o-mixedgray-1), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息反色 + */ + --o-color-info3-inverse: rgba(var(--o-mixedgray-1), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用反色 + */ + --o-color-info4-inverse: rgba(var(--o-mixedgray-1), 0.4); + /** + * @name + * @type color + * @group mask + * @description 全局遮罩 + */ + --o-color-mask1: rgba(var(--o-mixedgray-14), 0.4); + /** + * @name + * @type color + * @group mask + * @description 局部遮罩 + */ + --o-color-mask2: rgba(var(--o-mixedgray-1), 0.2); + /** + * @name + * @type color + * @group link + * @description 常规 + */ + --o-color-link1: rgba(var(--o-deepblue-6), 1.0); + /** + * @name + * @type color + * @group link + * @description 悬浮 + */ + --o-color-link2: rgba(var(--o-deepblue-6), 0.7); + /** + * @name + * @type color + * @group link + * @description 激活 + */ + --o-color-link3: rgba(var(--o-deepblue-6), 0.9); + /** + * @name + * @type color + * @group link + * @description 禁用 + */ + --o-color-link4: rgba(var(--o-deepblue-6), 0.4); + /** + * @name 阴影1 + * @type shadow + * @group shadow + * @description 用于卡片、小弹窗、楼层阴影 + */ + --o-shadow-1: 0 3px 8px rgba(var(--o-mixedgray-13), 0.08); + /** + * @name 阴影2 + * @type shadow + * @group shadow + * @description 用于卡片悬浮阴影 + */ + --o-shadow-2: 0 2px 24px rgba(var(--o-mixedgray-13), 0.15); + /** + * @name 阴影3 + * @type shadow + * @group shadow + * @description 用于提示阴影 + */ + --o-shadow-3: 0 8px 40px rgba(var(--o-mixedgray-13), 0.1); + /** + * @name 间距1 + * @type gap + * @group gap + * @description 用于组件之间的间距1 + */ + --o-gap-1: 4px; + /** + * @name 间距2 + * @type gap + * @group gap + * @description 用于组件之间的间距2 + */ + --o-gap-2: 8px; + /** + * @name 间距3 + * @type gap + * @group gap + * @description 用于组件之间的间距3 + */ + --o-gap-3: 12px; + /** + * @name 间距4 + * @type gap + * @group gap + * @description 用于组件之间的间距4 + */ + --o-gap-4: 16px; + /** + * @name 间距5 + * @type gap + * @group gap + * @description 用于组件之间的间距5 + */ + --o-gap-5: 24px; + /** + * @name 间距6 + * @type gap + * @group gap + * @description 用于组件之间的间距6 + */ + --o-gap-6: 32px; + /** + * @name 间距7 + * @type gap + * @group gap + * @description 用于组件之间的间距7 + */ + --o-gap-7: 40px; + /** + * @name 间距8 + * @type gap + * @group gap + * @description 用于组件之间的间距8 + */ + --o-gap-8: 48px; + /** + * @name 间距9 + * @type gap + * @group gap + * @description 用于组件之间的间距9 + */ + --o-gap-9: 64px; + /** + * @name 间距10 + * @type gap + * @group gap + * @description 用于组件之间的间距10 + */ + --o-gap-10: 72px; + /** + * @name 超小尺寸 + * @type size + * @group control_size + * @description 超小尺寸 + */ + --o-control_size-2xs: 14px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-xs: 16px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-s: 24px; + /** + * @name 中尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-m: 32px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-l: 40px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-xl: 48px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-2xl: 56px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size + * @description 超小尺寸图标 + */ + --o-icon_size-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size + * @description 小尺寸图标 + */ + --o-icon_size-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size + * @description 中尺寸图标 + */ + --o-icon_size-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size + * @description 大尺寸图标 + */ + --o-icon_size-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size + * @description 超大尺寸图标 + */ + --o-icon_size-xl: 40px; + /** + * @name 2xl尺寸图标 + * @type size + * @group icon_size + * @description 2xl尺寸图标 + */ + --o-icon_size-2xl: 48px; + /** + * @name 3xl尺寸图标 + * @type size + * @group icon_size + * @description 3xl尺寸图标 + */ + --o-icon_size-3xl: 56px; + /** + * @name 4xl尺寸图标 + * @type size + * @group icon_size + * @description 4xl尺寸图标 + */ + --o-icon_size-4xl: 64px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size_control + * @description 超小尺寸控件图标(组件使用) + */ + --o-icon_size_control-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size_control + * @description 小尺寸控件图标(组件使用) + */ + --o-icon_size_control-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size_control + * @description 中尺寸控件图标(组件使用) + */ + --o-icon_size_control-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size_control + * @description 大尺寸控件图标(组件使用) + */ + --o-icon_size_control-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size_control + * @description 超大尺寸控件图标(组件使用) + */ + --o-icon_size_control-xl: 40px; + /** + * @name 一级数据展示 + * @type font + * @group font_size + * @description 一级数据展示 + */ + --o-font_size-display1: 56px; + /** + * @name 二级数据展示 + * @type font + * @group font_size + * @description 二级数据展示 + */ + --o-font_size-display2: 48px; + /** + * @name 三级数据展示 + * @type font + * @group font_size + * @description 三级数据展示 + */ + --o-font_size-display3: 40px; + /** + * @name 一级标题 + * @type font + * @group font_size + * @description 一级标题 + */ + --o-font_size-h1: 32px; + /** + * @name 二级标题 + * @type font + * @group font_size + * @description 二级标题 + */ + --o-font_size-h2: 24px; + /** + * @name 三级标题 + * @type font + * @group font_size + * @description 三级标题 + */ + --o-font_size-h3: 22px; + /** + * @name 四级标题 + * @type font + * @group font_size + * @description 四级标题 + */ + --o-font_size-h4: 20px; + /** + * @name 常规正文 + * @type font + * @group font_size + * @description 常规正文 + */ + --o-font_size-text1: 16px; + /** + * @name 大号正文 + * @type font + * @group font_size + * @description 大号正文 + */ + --o-font_size-text2: 18px; + /** + * @name 提示文本1 + * @type font + * @group font_size + * @description 提示文本1 + */ + --o-font_size-tip1: 14px; + /** + * @name 提示文本2 + * @type font + * @group font_size + * @description 提示文本2 + */ + --o-font_size-tip2: 12px; + /** + * @name 一级数据展示 + * @type font + * @group line_height + * @description 一级数据展示 + */ + --o-line_height-display1: 80px; + /** + * @name 二级数据展示 + * @type font + * @group line_height + * @description 二级数据展示 + */ + --o-line_height-display2: 64px; + /** + * @name 三级数据展示 + * @type font + * @group line_height + * @description 三级数据展示 + */ + --o-line_height-display3: 56px; + /** + * @name 一级标题 + * @type font + * @group line_height + * @description 一级标题 + */ + --o-line_height-h1: 44px; + /** + * @name 二级标题 + * @type font + * @group line_height + * @description 二级标题 + */ + --o-line_height-h2: 32px; + /** + * @name 三级标题 + * @type font + * @group line_height + * @description 三级标题 + */ + --o-line_height-h3: 30px; + /** + * @name 四级标题 + * @type font + * @group line_height + * @description 四级标题 + */ + --o-line_height-h4: 28px; + /** + * @name 正文 + * @type font + * @group line_height + * @description 正文 + */ + --o-line_height-text1: 24px; + /** + * @name 正文-大 + * @type font + * @group line_height + * @description 正文-大 + */ + --o-line_height-text2: 26px; + /** + * @name 提示文本1 + * @type font + * @group line_height + * @description 提示文本1 + */ + --o-line_height-tip1: 22px; + /** + * @name 提示文本2 + * @type font + * @group line_height + * @description 提示文本2 + */ + --o-line_height-tip2: 18px; + /** + * @name 超小尺寸圆角 + * @type size + * @group radius + * @description 超小尺寸圆角 + */ + --o-radius-xs: 4px; + /** + * @name 小尺寸圆角 + * @type size + * @group radius + * @description 小尺寸圆角 + */ + --o-radius-s: 8px; + /** + * @name 中尺寸圆角 + * @type size + * @group radius + * @description 中尺寸圆角 + */ + --o-radius-m: 12px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角 + */ + --o-radius-l: 16px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角,一般用于卡片 + */ + --o-radius-xl: 24px; + /** + * @name 超小尺寸控件圆角 + * @type size + * @group radius_control + * @description 超小尺寸控件圆角(组件使用) + */ + --o-radius_control-xs: 4px; + /** + * @name 小尺寸控件圆角 + * @type size + * @group radius_control + * @description 小尺寸控件圆角(组件使用) + */ + --o-radius_control-s: 8px; + /** + * @name 中尺寸控件圆角 + * @type size + * @group radius_control + * @description 中尺寸控件圆角(组件使用) + */ + --o-radius_control-m: 12px; + /** + * @name 大尺寸控件圆角 + * @type size + * @group radius_control + * @description 大尺寸控件圆角(组件使用) + */ + --o-radius_control-l: 16px; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于退出屏幕的动画 + */ + --o-duration-s: 200ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard-in时进入屏幕的动画 + */ + --o-duration-m1: 250ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard时开始、结束的动画 + */ + --o-duration-m2: 300ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized-in时进入屏幕的动画 + */ + --o-duration-m3: 400ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时开始、结束的动画 + */ + --o-duration-l: 500ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时,轮播切换动画 + */ + --o-duration-xl: 1000ms; + /** + * @name 线性动画曲线 + * @type animation + * @group easing + * @description 线性曲线 + */ + --o-easing-linear: cubic-bezier(0, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-in: cubic-bezier(0, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-out: cubic-bezier(0.3, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-in: cubic-bezier(0.3, 0, 0.8, 0.15); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-out: cubic-bezier(0.05, 0.7, 0.1, 1); +} \ No newline at end of file diff --git a/packages/docs/src/assets/style/k.dark.token.css b/packages/docs/src/assets/style/k.dark.token.css new file mode 100644 index 00000000..b7b997a2 --- /dev/null +++ b/packages/docs/src/assets/style/k.dark.token.css @@ -0,0 +1,1949 @@ +/* theme: k.dark */ +[data-o-theme="k.dark"] { + /** + * @name + * @type palette + * @group white + * @description + */ + --o-white: 255, 255, 255; + /** + * @name + * @type palette + * @group black + * @description + */ + --o-black: 0, 0, 0; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-1: 0, 4, 77; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-2: 6, 15, 120; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-3: 20, 37, 163; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-4: 40, 65, 207; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-5: 66, 99, 250; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-6: 84, 120, 251; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-7: 122, 154, 252; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-8: 160, 186, 253; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-9: 199, 217, 254; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-10: 238, 244, 255; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-1: 0, 77, 42; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-2: 2, 102, 53; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-3: 10, 127, 66; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-4: 22, 152, 80; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-5: 36, 177, 95; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-6: 51, 193, 104; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-7: 90, 208, 131; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-8: 135, 224, 163; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-9: 185, 239, 200; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-10: 240, 255, 244; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-1: 77, 24, 0; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-2: 120, 42, 1; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-3: 163, 68, 8; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-4: 207, 97, 19; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-5: 250, 130, 33; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-6: 251, 143, 32; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-7: 252, 174, 91; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-8: 253, 202, 139; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-9: 254, 227, 188; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-10: 255, 248, 237; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-1: 77, 0, 17; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-2: 115, 3, 24; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-3: 153, 9, 31; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-4: 192, 17, 37; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-5: 230, 28, 43; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-6: 235, 35, 45; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-7: 240, 82, 85; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-8: 245, 132, 130; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-9: 250, 183, 180; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-10: 255, 234, 232; + /** + * @name + * @type palette + * @group huaweired + * @description + */ + --o-red-huawei: 199, 0, 11; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-1: 0, 0, 0; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-2: 20, 20, 20; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-3: 28, 28, 28; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-4: 39, 39, 39; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-5: 47, 47, 47; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-6: 57, 57, 57; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-7: 67, 67, 67; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-8: 88, 88, 88; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-9: 122, 122, 122; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-10: 159, 159, 159; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-11: 185, 185, 185; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-12: 210, 210, 210; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-13: 238, 238, 238; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-14: 255, 255, 255; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-1: 0, 0, 0; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-2: 16, 28, 20; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-3: 23, 25, 28; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-4: 33, 35, 39; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-5: 40, 42, 47; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-6: 50, 53, 57; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-7: 61, 63, 67; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-8: 80, 84, 88; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-9: 113, 117, 122; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-10: 147, 152, 159; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-11: 172, 177, 185; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-12: 198, 202, 210; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-13: 231, 234, 238; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-14: 255, 255, 255; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-1: 77, 54, 0; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-2: 119, 87, 2; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-3: 161, 126, 11; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-4: 203, 167, 24; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-5: 245, 211, 42; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-6: 247, 222, 54; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-7: 249, 234, 100; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-8: 251, 244, 146; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-9: 253, 251, 192; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-10: 255, 255, 240; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-1: 41, 77, 0; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-2: 63, 109, 3; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-3: 91, 142, 14; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-4: 121, 174, 30; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-5: 155, 207, 50; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-6: 172, 217, 68; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-7: 194, 226, 104; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-8: 214, 236, 144; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-9: 233, 245, 186; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-10: 251, 255, 232; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-1: 0, 73, 77; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-2: 2, 101, 103; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-3: 9, 129, 127; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-4: 18, 155, 148; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-5: 30, 181, 167; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-6: 42, 196, 178; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-7: 84, 211, 192; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-8: 130, 255, 208; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-9: 182, 240, 227; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-10: 239, 255, 251; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-1: 0, 34, 77; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-2: 1, 57, 117; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-3: 8, 86, 158; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-4: 18, 118, 199; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-5: 31, 153, 240; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-6: 42, 166, 243; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-7: 89, 191, 246; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-8: 137, 214, 249; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-9: 187, 233, 252; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-10: 237, 250, 255; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-1: 22, 0, 77; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-2: 40, 3, 118; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-3: 66, 15, 160; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-4: 98, 33, 202; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-5: 134, 57, 244; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-6: 152, 74, 246; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-7: 179, 114, 248; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-8: 205, 156, 251; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-9: 228, 198, 253; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-10: 249, 240, 255; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-1: 61, 0, 77; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-2: 93, 5, 110; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-3: 127, 16, 144; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-4: 164, 33, 178; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-5: 200, 54, 212; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-6: 216, 72, 221; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-7: 229, 109, 229; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-8: 238, 149, 235; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-9: 246, 191, 243; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-10: 255, 236, 253; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-1: 77, 0, 48; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-2: 114, 3, 70; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-3: 151, 12, 91; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-4: 189, 25, 112; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-5: 226, 41, 133; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-6: 232, 53, 137; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-7: 238, 97, 158; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-8: 243, 143, 183; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-9: 249, 192, 213; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-10: 255, 242, 247; + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-white: rgb(var(--o-white)); + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-black: rgb(var(--o-black)); + /** + * @name + * @type color + * @group primary + * @description 常规 + */ + --o-color-primary1: rgb(var(--o-gray-14)); + /** + * @name + * @type color + * @group primary + * @description 悬浮 + */ + --o-color-primary2: rgb(var(--o-gray-13)); + /** + * @name + * @type color + * @group primary + * @description 激活 + */ + --o-color-primary3: rgb(var(--o-gray-12)); + /** + * @name + * @type color + * @group primary + * @description 禁用 + */ + --o-color-primary4: rgb(var(--o-gray-8)); + /** + * @name + * @type color + * @group primary + * @description 常规-浅 + */ + --o-color-primary1-light: rgb(var(--o-gray-5)); + /** + * @name + * @type color + * @group primary + * @description 悬浮-浅 + */ + --o-color-primary2-light: rgb(var(--o-gray-6)); + /** + * @name + * @type color + * @group primary + * @description 激活-浅 + */ + --o-color-primary3-light: rgb(var(--o-gray-7)); + /** + * @name + * @type color + * @group primary + * @description 禁用-浅 + */ + --o-color-primary4-light: rgb(var(--o-gray-6)); + /** + * @name + * @type color + * @group success + * @description 常规 + */ + --o-color-success1: rgb(var(--o-green-6)); + /** + * @name + * @type color + * @group success + * @description 悬浮 + */ + --o-color-success2: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 激活 + */ + --o-color-success3: rgb(var(--o-green-7)); + /** + * @name + * @type color + * @group success + * @description 禁用 + */ + --o-color-success4: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 常规-浅 + */ + --o-color-success1-light: rgb(var(--o-green-2)); + /** + * @name + * @type color + * @group success + * @description 悬浮-浅 + */ + --o-color-success2-light: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 激活-浅 + */ + --o-color-success3-light: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 禁用-浅 + */ + --o-color-success4-light: rgb(var(--o-green-1)); + /** + * @name + * @type color + * @group warning + * @description 常规 + */ + --o-color-warning1: rgb(var(--o-orange-6)); + /** + * @name + * @type color + * @group warning + * @description 悬浮 + */ + --o-color-warning2: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 激活 + */ + --o-color-warning3: rgb(var(--o-orange-7)); + /** + * @name + * @type color + * @group warning + * @description 禁用 + */ + --o-color-warning4: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 常规-浅 + */ + --o-color-warning1-light: rgb(var(--o-orange-2)); + /** + * @name + * @type color + * @group warning + * @description 悬浮-浅 + */ + --o-color-warning2-light: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 激活-浅 + */ + --o-color-warning3-light: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 禁用-浅 + */ + --o-color-warning4-light: rgb(var(--o-orange-1)); + /** + * @name + * @type color + * @group danger + * @description 常规 + */ + --o-color-danger1: rgb(var(--o-red-6)); + /** + * @name + * @type color + * @group danger + * @description 悬浮 + */ + --o-color-danger2: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 激活 + */ + --o-color-danger3: rgb(var(--o-red-7)); + /** + * @name + * @type color + * @group danger + * @description 禁用 + */ + --o-color-danger4: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 常规-浅 + */ + --o-color-danger1-light: rgb(var(--o-red-2)); + /** + * @name + * @type color + * @group danger + * @description 悬浮-浅 + */ + --o-color-danger2-light: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 激活-浅 + */ + --o-color-danger3-light: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 禁用-浅 + */ + --o-color-danger4-light: rgb(var(--o-red-1)); + /** + * @name + * @type color + * @group fill + * @description 一级填充:页面背景 + */ + --o-color-fill1: rgb(var(--o-gray-3)); + /** + * @name + * @type color + * @group fill + * @description 二级填充:区块、卡片 + */ + --o-color-fill2: rgb(var(--o-gray-4)); + /** + * @name + * @type color + * @group fill + * @description 三级填充:卡片 + */ + --o-color-fill3: rgb(var(--o-gray-5)); + /** + * @name + * @type color + * @group control + * @description 常规,常用于边框 + */ + --o-color-control1: rgba(var(--o-gray-14), 0.25); + /** + * @name + * @type color + * @group control + * @description 悬浮,常用于边框 + */ + --o-color-control2: rgba(var(--o-gray-14), 0.6); + /** + * @name + * @type color + * @group control + * @description 激活,常用于边框 + */ + --o-color-control3: rgba(var(--o-gray-14), 0.8); + /** + * @name + * @type color + * @group control + * @description 禁用,常用于边框 + */ + --o-color-control4: rgba(var(--o-gray-14), 0.15); + /** + * @name + * @type color + * @group control + * @description 常规-浅,常用于背景 + */ + --o-color-control1-light: rgb(var(--o-gray-7)); + /** + * @name + * @type color + * @group control + * @description 悬浮-浅,常用于背景 + */ + --o-color-control2-light: rgb(var(--o-gray-5)); + /** + * @name + * @type color + * @group control + * @description 激活-浅,常用于背景 + */ + --o-color-control3-light: rgb(var(--o-gray-6)); + /** + * @name + * @type color + * @group control + * @description 禁用,常用于背景 + */ + --o-color-control4-light: rgb(var(--o-gray-5)); + /** + * @name + * @type color + * @group control + * @description 很浅,常用于表格背景色 + */ + --o-color-control-light: rgb(var(--o-gray-4)); + /** + * @name + * @type color + * @group info + * @description 一级/强调/标题 + */ + --o-color-info1: rgba(var(--o-gray-14), 1.0); + /** + * @name + * @type color + * @group info + * @description 二级/次强调/正文 + */ + --o-color-info2: rgba(var(--o-gray-14), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息 + */ + --o-color-info3: rgba(var(--o-gray-14), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用 + */ + --o-color-info4: rgba(var(--o-gray-14), 0.4); + /** + * @name + * @type color + * @group info + * @description 一级/次强调/正文反色 + */ + --o-color-info1-inverse: rgba(var(--o-gray-1), 1.0); + /** + * @name + * @type color + * @group info + * @description 二级/辅助信息反色 + */ + --o-color-info2-inverse: rgba(var(--o-gray-1), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息反色 + */ + --o-color-info3-inverse: rgba(var(--o-gray-1), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用反色 + */ + --o-color-info4-inverse: rgba(var(--o-gray-1), 0.4); + /** + * @name + * @type color + * @group mask + * @description 全局遮罩 + */ + --o-color-mask1: rgba(var(--o-gray-1), 0.4); + /** + * @name + * @type color + * @group mask + * @description 局部遮罩 + */ + --o-color-mask2: rgba(var(--o-gray-4), 0.2); + /** + * @name 阴影1 + * @type shadow + * @group shadow + * @description 用于卡片、小弹窗、楼层阴影 + */ + --o-shadow-1: 0 3px 8px rgba(var(--o-gray-1), 0.08); + /** + * @name 阴影2 + * @type shadow + * @group shadow + * @description 用于卡片悬浮阴影 + */ + --o-shadow-2: 0 4px 24px rgba(var(--o-gray-1), 0.1); + /** + * @name 阴影3 + * @type shadow + * @group shadow + * @description 用于提示阴影 + */ + --o-shadow-3: 0 8px 40px rgba(var(--o-gray-1), 0.1); + /** + * @name + * @type color + * @group link + * @description 常规 + */ + --o-color-link1: rgb(var(--o-deepblue-6), 1.0); + /** + * @name + * @type color + * @group link + * @description 悬浮 + */ + --o-color-link2: rgb(var(--o-deepblue-6), 0.7); + /** + * @name + * @type color + * @group link + * @description 激活 + */ + --o-color-link3: rgb(var(--o-deepblue-6), 0.9); + /** + * @name + * @type color + * @group link + * @description 禁用 + */ + --o-color-link4: rgb(var(--o-deepblue-6), 0.4); + /** + * @name 间距1 + * @type gap + * @group gap + * @description 用于组件之间的间距1 + */ + --o-gap-1: 4px; + /** + * @name 间距2 + * @type gap + * @group gap + * @description 用于组件之间的间距2 + */ + --o-gap-2: 8px; + /** + * @name 间距3 + * @type gap + * @group gap + * @description 用于组件之间的间距3 + */ + --o-gap-3: 12px; + /** + * @name 间距4 + * @type gap + * @group gap + * @description 用于组件之间的间距4 + */ + --o-gap-4: 16px; + /** + * @name 间距5 + * @type gap + * @group gap + * @description 用于组件之间的间距5 + */ + --o-gap-5: 24px; + /** + * @name 间距6 + * @type gap + * @group gap + * @description 用于组件之间的间距6 + */ + --o-gap-6: 32px; + /** + * @name 间距7 + * @type gap + * @group gap + * @description 用于组件之间的间距7 + */ + --o-gap-7: 40px; + /** + * @name 间距8 + * @type gap + * @group gap + * @description 用于组件之间的间距8 + */ + --o-gap-8: 48px; + /** + * @name 间距9 + * @type gap + * @group gap + * @description 用于组件之间的间距9 + */ + --o-gap-9: 64px; + /** + * @name 间距10 + * @type gap + * @group gap + * @description 用于组件之间的间距10 + */ + --o-gap-10: 72px; + /** + * @name 超小尺寸 + * @type size + * @group control_size + * @description 超小尺寸 + */ + --o-control_size-2xs: 14px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-xs: 16px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-s: 24px; + /** + * @name 中尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-m: 32px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-l: 40px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-xl: 48px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-2xl: 56px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size + * @description 超小尺寸图标 + */ + --o-icon_size-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size + * @description 小尺寸图标 + */ + --o-icon_size-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size + * @description 中尺寸图标 + */ + --o-icon_size-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size + * @description 大尺寸图标 + */ + --o-icon_size-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size + * @description 超大尺寸图标 + */ + --o-icon_size-xl: 40px; + /** + * @name 2xl尺寸图标 + * @type size + * @group icon_size + * @description 2xl尺寸图标 + */ + --o-icon_size-2xl: 48px; + /** + * @name 3xl尺寸图标 + * @type size + * @group icon_size + * @description 3xl尺寸图标 + */ + --o-icon_size-3xl: 56px; + /** + * @name 4xl尺寸图标 + * @type size + * @group icon_size + * @description 4xl尺寸图标 + */ + --o-icon_size-4xl: 64px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size_control + * @description 超小尺寸控件图标(组件使用) + */ + --o-icon_size_control-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size_control + * @description 小尺寸控件图标(组件使用) + */ + --o-icon_size_control-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size_control + * @description 中尺寸控件图标(组件使用) + */ + --o-icon_size_control-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size_control + * @description 大尺寸控件图标(组件使用) + */ + --o-icon_size_control-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size_control + * @description 超大尺寸控件图标(组件使用) + */ + --o-icon_size_control-xl: 40px; + /** + * @name 一级数据展示 + * @type font + * @group font_size + * @description 一级数据展示 + */ + --o-font_size-display1: 56px; + /** + * @name 二级数据展示 + * @type font + * @group font_size + * @description 二级数据展示 + */ + --o-font_size-display2: 48px; + /** + * @name 三级数据展示 + * @type font + * @group font_size + * @description 三级数据展示 + */ + --o-font_size-display3: 40px; + /** + * @name 一级标题 + * @type font + * @group font_size + * @description 一级标题 + */ + --o-font_size-h1: 32px; + /** + * @name 二级标题 + * @type font + * @group font_size + * @description 二级标题 + */ + --o-font_size-h2: 24px; + /** + * @name 三级标题 + * @type font + * @group font_size + * @description 三级标题 + */ + --o-font_size-h3: 22px; + /** + * @name 四级标题 + * @type font + * @group font_size + * @description 四级标题 + */ + --o-font_size-h4: 20px; + /** + * @name 常规正文 + * @type font + * @group font_size + * @description 常规正文 + */ + --o-font_size-text1: 16px; + /** + * @name 大号正文 + * @type font + * @group font_size + * @description 大号正文 + */ + --o-font_size-text2: 18px; + /** + * @name 提示文本1 + * @type font + * @group font_size + * @description 提示文本1 + */ + --o-font_size-tip1: 14px; + /** + * @name 提示文本2 + * @type font + * @group font_size + * @description 提示文本2 + */ + --o-font_size-tip2: 12px; + /** + * @name 一级数据展示 + * @type font + * @group line_height + * @description 一级数据展示 + */ + --o-line_height-display1: 80px; + /** + * @name 二级数据展示 + * @type font + * @group line_height + * @description 二级数据展示 + */ + --o-line_height-display2: 64px; + /** + * @name 三级数据展示 + * @type font + * @group line_height + * @description 三级数据展示 + */ + --o-line_height-display3: 56px; + /** + * @name 一级标题 + * @type font + * @group line_height + * @description 一级标题 + */ + --o-line_height-h1: 44px; + /** + * @name 二级标题 + * @type font + * @group line_height + * @description 二级标题 + */ + --o-line_height-h2: 32px; + /** + * @name 三级标题 + * @type font + * @group line_height + * @description 三级标题 + */ + --o-line_height-h3: 30px; + /** + * @name 四级标题 + * @type font + * @group line_height + * @description 四级标题 + */ + --o-line_height-h4: 28px; + /** + * @name 正文 + * @type font + * @group line_height + * @description 正文 + */ + --o-line_height-text1: 24px; + /** + * @name 正文-大 + * @type font + * @group line_height + * @description 正文-大 + */ + --o-line_height-text2: 26x; + /** + * @name 提示文本1 + * @type font + * @group line_height + * @description 提示文本1 + */ + --o-line_height-tip1: 22px; + /** + * @name 提示文本2 + * @type font + * @group line_height + * @description 提示文本2 + */ + --o-line_height-tip2: 18px; + /** + * @name 超小尺寸圆角 + * @type size + * @group radius + * @description 超小尺寸圆角 + */ + --o-radius-xs: 4px; + /** + * @name 小尺寸圆角 + * @type size + * @group radius + * @description 小尺寸圆角 + */ + --o-radius-s: 4px; + /** + * @name 中尺寸圆角 + * @type size + * @group radius + * @description 中尺寸圆角 + */ + --o-radius-m: 4px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角 + */ + --o-radius-l: 4px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角,一般用于卡片 + */ + --o-radius-xl: 0px; + /** + * @name 超小尺寸控件圆角 + * @type size + * @group radius_control + * @description 超小尺寸控件圆角(组件使用) + */ + --o-radius_control-xs: 4px; + /** + * @name 小尺寸控件圆角 + * @type size + * @group radius_control + * @description 小尺寸控件圆角(组件使用) + */ + --o-radius_control-s: 4px; + /** + * @name 中尺寸控件圆角 + * @type size + * @group radius_control + * @description 中尺寸控件圆角(组件使用) + */ + --o-radius_control-m: 4px; + /** + * @name 大尺寸控件圆角 + * @type size + * @group radius_control + * @description 大尺寸控件圆角(组件使用) + */ + --o-radius_control-l: 4px; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于退出屏幕的动画 + */ + --o-duration-s: 200ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard-in时进入屏幕的动画 + */ + --o-duration-m1: 250ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard时开始、结束的动画 + */ + --o-duration-m2: 300ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized-in时进入屏幕的动画 + */ + --o-duration-m3: 400ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时开始、结束的动画 + */ + --o-duration-l: 500ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时,轮播切换动画 + */ + --o-duration-xl: 1000ms; + /** + * @name 线性动画曲线 + * @type animation + * @group easing + * @description 线性曲线 + */ + --o-easing-linear: cubic-bezier(0, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-in: cubic-bezier(0, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-out: cubic-bezier(0.3, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-in: cubic-bezier(0.3, 0, 0.8, 0.15); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-out: cubic-bezier(0.05, 0.7, 0.1, 1); +} \ No newline at end of file diff --git a/packages/docs/src/assets/style/k.light.token.css b/packages/docs/src/assets/style/k.light.token.css new file mode 100644 index 00000000..a60883c1 --- /dev/null +++ b/packages/docs/src/assets/style/k.light.token.css @@ -0,0 +1,1949 @@ +/* theme: k.light */ +[data-o-theme="k.light"] { + /** + * @name + * @type palette + * @group white + * @description + */ + --o-white: 255, 255, 255; + /** + * @name + * @type palette + * @group black + * @description + */ + --o-black: 0, 0, 0; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-1: 232, 240, 255; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-2: 194, 213, 254; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-3: 157, 184, 253; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-4: 120, 153, 252; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-5: 83, 119, 251; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-6: 46, 83, 250; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-7: 29, 55, 207; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-8: 15, 32, 163; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-9: 6, 15, 120; + /** + * @name + * @type palette + * @group deepblue + * @description + */ + --o-deepblue-10: 0, 4, 47; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-1: 232, 255, 238; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-2: 177, 239, 195; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-3: 128, 224, 158; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-4: 84, 208, 127; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-5: 45, 193, 101; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-6: 11, 177, 81; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-7: 7, 152, 72; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-8: 4, 127, 63; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-9: 2, 102, 53; + /** + * @name + * @type palette + * @group green + * @description + */ + --o-green-10: 0, 77, 42; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-1: 255, 246, 232; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-2: 254, 226, 186; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-3: 253, 202, 140; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-4: 252, 176, 95; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-5: 251, 147, 50; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-6: 250, 115, 5; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-7: 207, 88, 3; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-8: 163, 64, 2; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-9: 120, 42, 1; + /** + * @name + * @type palette + * @group orange + * @description + */ + --o-orange-10: 77, 24, 0; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-1: 255, 234, 232; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-2: 250, 185, 182; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-3: 245, 136, 134; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-4: 240, 87, 90; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-5: 235, 43, 52; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-6: 230, 0, 18; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-7: 192, 0, 22; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-8: 153, 0, 23; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-9: 115, 0, 21; + /** + * @name + * @type palette + * @group red + * @description + */ + --o-red-10: 77, 0, 17; + /** + * @name + * @type palette + * @group huaweired + * @description + */ + --o-red-huawei: 199, 0, 11; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-1: 255, 255, 255; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-2: 247, 247, 247; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-3: 242, 242, 242; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-4: 237, 237, 237; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-5: 227, 227, 227; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-6: 214, 214, 214; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-7: 186, 186, 186; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-8: 148, 148, 148; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-9: 110, 110, 110; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-10: 79, 79, 79; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-11: 48, 48, 48; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-12: 36, 36, 36; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-13: 18, 18, 18; + /** + * @name + * @type palette + * @group gray + * @description + */ + --o-gray-14: 0, 0, 0; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-1: 255, 255, 255; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-2: 244, 245, 247; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-3: 237, 239, 242; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-4: 232, 234, 237; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-5: 224, 226, 230; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-6: 209, 214, 219; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-7: 179, 185, 191; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-8: 144, 150, 158; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-9: 104, 109, 117; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-10: 79, 84, 92; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-11: 55, 59, 66; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-12: 32, 35, 41; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-13: 18, 20, 23; + /** + * @name + * @type palette + * @group mixedgray + * @description + */ + --o-mixedgray-14: 0, 0, 0; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-1: 255, 255, 232; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-2: 253, 251, 185; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-3: 251, 244, 139; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-4: 249, 233, 94; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-5: 247, 221, 49; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-6: 245, 205, 5; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-7: 203, 163, 3; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-8: 161, 124, 2; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-9: 119, 87, 1; + /** + * @name + * @type palette + * @group yellow + * @description + */ + --o-yellow-10: 77, 54, 0; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-1: 251, 255, 232; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-2: 233, 245, 184; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-3: 213, 236, 139; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-4: 192, 226, 97; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-5: 169, 217, 59; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-6: 146, 207, 23; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-7: 116, 174, 15; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-8: 88, 142, 8; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-9: 63, 109, 3; + /** + * @name + * @type palette + * @group lime + * @description + */ + --o-lime-10: 41, 77, 0; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-1: 232, 255, 249; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-2: 176, 240, 226; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-3: 125, 225, 207; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-4: 79, 221, 191; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-5: 38, 196, 177; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-6: 3, 181, 165; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-7: 2, 155, 147; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-8: 1, 129, 127; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-9: 0, 101, 103; + /** + * @name + * @type palette + * @group cyan + * @description + */ + --o-cyan-10: 0, 73, 77; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-1: 232, 249, 255; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-2: 185, 233, 252; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-3: 138, 214, 249; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-4: 93, 192, 246; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-5: 48, 168, 243; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-6: 5, 142, 240; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-7: 3, 111, 199; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-8: 2, 83, 158; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-9: 1, 57, 117; + /** + * @name + * @type palette + * @group blue + * @description + */ + --o-blue-10: 0, 34, 77; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-1: 245, 232, 255; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-2: 225, 192, 253; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-3: 203, 152, 251; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-4: 178, 113, 248; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-5: 152, 75, 246; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-6: 123, 37, 244; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-7: 92, 23, 202; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-8: 64, 12, 160; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-9: 41, 4, 118; + /** + * @name + * @type palette + * @group purple + * @description + */ + --o-purple-10: 22, 0, 77; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-1: 255, 232, 253; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-2: 246, 188, 243; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-3: 238, 146, 235; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-4: 229, 107, 229; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-5: 216, 71, 221; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-6: 199, 37, 212; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-7: 163, 23, 178; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-8: 127, 13, 144; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-9: 93, 5, 110; + /** + * @name + * @type palette + * @group pink + * @description + */ + --o-pink-10: 61, 0, 77; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-1: 255, 232, 240; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-2: 249, 185, 209; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-3: 243, 141, 182; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-4: 238, 98, 158; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-5: 232, 57, 139; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-6: 226, 18, 122; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-7: 189, 11, 106; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-8: 151, 6, 88; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-9: 114, 2, 69; + /** + * @name + * @type palette + * @group rosyred + * @description + */ + --o-rosyred-10: 77, 0, 48; + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-white: rgb(var(--o-white)); + /** + * @name + * @type color + * @group base + * @description + */ + --o-color-black: rgb(var(--o-black)); + /** + * @name + * @type color + * @group primary + * @description 常规 + */ + --o-color-primary1: rgb(var(--o-gray-12)); + /** + * @name + * @type color + * @group primary + * @description 悬浮 + */ + --o-color-primary2: rgb(var(--o-gray-11)); + /** + * @name + * @type color + * @group primary + * @description 激活 + */ + --o-color-primary3: rgb(var(--o-gray-13)); + /** + * @name + * @type color + * @group primary + * @description 禁用 + */ + --o-color-primary4: rgb(var(--o-gray-6)); + /** + * @name + * @type color + * @group primary + * @description 常规-浅 + */ + --o-color-primary1-light: rgb(var(--o-gray-4)); + /** + * @name + * @type color + * @group primary + * @description 悬浮-浅 + */ + --o-color-primary2-light: rgb(var(--o-gray-5)); + /** + * @name + * @type color + * @group primary + * @description 激活-浅 + */ + --o-color-primary3-light: rgb(var(--o-gray-6)); + /** + * @name + * @type color + * @group primary + * @description 禁用-浅 + */ + --o-color-primary4-light: rgb(var(--o-gray-5)); + /** + * @name + * @type color + * @group success + * @description 常规 + */ + --o-color-success1: rgb(var(--o-green-6)); + /** + * @name + * @type color + * @group success + * @description 悬浮 + */ + --o-color-success2: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 激活 + */ + --o-color-success3: rgb(var(--o-green-7)); + /** + * @name + * @type color + * @group success + * @description 禁用 + */ + --o-color-success4: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 常规-浅 + */ + --o-color-success1-light: rgb(var(--o-green-2)); + /** + * @name + * @type color + * @group success + * @description 悬浮-浅 + */ + --o-color-success2-light: rgb(var(--o-green-3)); + /** + * @name + * @type color + * @group success + * @description 激活-浅 + */ + --o-color-success3-light: rgb(var(--o-green-4)); + /** + * @name + * @type color + * @group success + * @description 禁用-浅 + */ + --o-color-success4-light: rgb(var(--o-green-1)); + /** + * @name + * @type color + * @group warning + * @description 常规 + */ + --o-color-warning1: rgb(var(--o-orange-6)); + /** + * @name + * @type color + * @group warning + * @description 悬浮 + */ + --o-color-warning2: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 激活 + */ + --o-color-warning3: rgb(var(--o-orange-7)); + /** + * @name + * @type color + * @group warning + * @description 禁用 + */ + --o-color-warning4: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 常规-浅 + */ + --o-color-warning1-light: rgb(var(--o-orange-2)); + /** + * @name + * @type color + * @group warning + * @description 悬浮-浅 + */ + --o-color-warning2-light: rgb(var(--o-orange-3)); + /** + * @name + * @type color + * @group warning + * @description 激活-浅 + */ + --o-color-warning3-light: rgb(var(--o-orange-4)); + /** + * @name + * @type color + * @group warning + * @description 禁用-浅 + */ + --o-color-warning4-light: rgb(var(--o-orange-1)); + /** + * @name + * @type color + * @group danger + * @description 常规 + */ + --o-color-danger1: rgb(var(--o-red-6)); + /** + * @name + * @type color + * @group danger + * @description 悬浮 + */ + --o-color-danger2: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 激活 + */ + --o-color-danger3: rgb(var(--o-red-7)); + /** + * @name + * @type color + * @group danger + * @description 禁用 + */ + --o-color-danger4: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 常规-浅 + */ + --o-color-danger1-light: rgb(var(--o-red-2)); + /** + * @name + * @type color + * @group danger + * @description 悬浮-浅 + */ + --o-color-danger2-light: rgb(var(--o-red-3)); + /** + * @name + * @type color + * @group danger + * @description 激活-浅 + */ + --o-color-danger3-light: rgb(var(--o-red-4)); + /** + * @name + * @type color + * @group danger + * @description 禁用-浅 + */ + --o-color-danger4-light: rgb(var(--o-red-1)); + /** + * @name + * @type color + * @group fill + * @description 一级填充:页面背景 + */ + --o-color-fill1: rgb(var(--o-gray-2)); + /** + * @name + * @type color + * @group fill + * @description 二级填充:区块、卡片 + */ + --o-color-fill2: rgb(var(--o-gray-1)); + /** + * @name + * @type color + * @group fill + * @description 三级填充:卡片 + */ + --o-color-fill3: rgb(var(--o-gray-3)); + /** + * @name + * @type color + * @group control + * @description 常规,常用于边框 + */ + --o-color-control1: rgba(var(--o-gray-14), 0.25); + /** + * @name + * @type color + * @group control + * @description 悬浮,常用于边框 + */ + --o-color-control2: rgba(var(--o-gray-14), 0.6); + /** + * @name + * @type color + * @group control + * @description 激活,常用于边框 + */ + --o-color-control3: rgba(var(--o-gray-14), 0.8); + /** + * @name + * @type color + * @group control + * @description 禁用,常用于边框 + */ + --o-color-control4: rgba(var(--o-gray-14), 0.1); + /** + * @name + * @type color + * @group control + * @description 常规-浅,常用于背景 + */ + --o-color-control1-light: rgb(var(--o-gray-5)); + /** + * @name + * @type color + * @group control + * @description 悬浮-浅,常用于背景 + */ + --o-color-control2-light: rgb(var(--o-gray-3)); + /** + * @name + * @type color + * @group control + * @description 激活-浅,常用于背景 + */ + --o-color-control3-light: rgb(var(--o-gray-4)); + /** + * @name + * @type color + * @group control + * @description 禁用,常用于背景 + */ + --o-color-control4-light: rgb(var(--o-gray-3)); + /** + * @name + * @type color + * @group control + * @description 很浅,常用于表格背景色 + */ + --o-color-control-light: rgb(var(--o-gray-1)); + /** + * @name + * @type color + * @group info + * @description 一级/强调/标题 + */ + --o-color-info1: rgba(var(--o-gray-14), 1.0); + /** + * @name + * @type color + * @group info + * @description 二级/次强调/正文 + */ + --o-color-info2: rgba(var(--o-gray-14), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息 + */ + --o-color-info3: rgba(var(--o-gray-14), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用 + */ + --o-color-info4: rgba(var(--o-gray-14), 0.4); + /** + * @name + * @type color + * @group info + * @description 一级/次强调/正文反色 + */ + --o-color-info1-inverse: rgba(var(--o-gray-1), 1.0); + /** + * @name + * @type color + * @group info + * @description 二级/辅助信息反色 + */ + --o-color-info2-inverse: rgba(var(--o-gray-1), 0.8); + /** + * @name + * @type color + * @group info + * @description 三级/辅助信息反色 + */ + --o-color-info3-inverse: rgba(var(--o-gray-1), 0.6); + /** + * @name + * @type color + * @group info + * @description 置灰/禁用反色 + */ + --o-color-info4-inverse: rgba(var(--o-gray-1), 0.4); + /** + * @name + * @type color + * @group mask + * @description 全局遮罩 + */ + --o-color-mask1: rgba(var(--o-gray-14), 0.4); + /** + * @name + * @type color + * @group mask + * @description 局部遮罩 + */ + --o-color-mask2: rgba(var(--o-gray-1), 0.2); + /** + * @name 阴影1 + * @type shadow + * @group shadow + * @description 用于卡片、小弹窗、楼层阴影 + */ + --o-shadow-1: 0 3px 8px rgba(var(--o-gray-14), 0.08); + /** + * @name 阴影2 + * @type shadow + * @group shadow + * @description 用于卡片悬浮阴影 + */ + --o-shadow-2: 0 4px 24px rgba(var(--o-gray-14), 0.1); + /** + * @name 阴影3 + * @type shadow + * @group shadow + * @description 用于提示阴影 + */ + --o-shadow-3: 0 8px 40px rgba(var(--o-gray-14), 0.1); + /** + * @name + * @type color + * @group link + * @description 常规 + */ + --o-color-link1: rgba(var(--o-deepblue-6), 1.0); + /** + * @name + * @type color + * @group link + * @description 悬浮 + */ + --o-color-link2: rgba(var(--o-deepblue-6), 0.7); + /** + * @name + * @type color + * @group link + * @description 激活 + */ + --o-color-link3: rgba(var(--o-deepblue-6), 0.9); + /** + * @name + * @type color + * @group link + * @description 禁用 + */ + --o-color-link4: rgba(var(--o-deepblue-6), 0.4); + /** + * @name 间距1 + * @type gap + * @group gap + * @description 用于组件之间的间距1 + */ + --o-gap-1: 4px; + /** + * @name 间距2 + * @type gap + * @group gap + * @description 用于组件之间的间距2 + */ + --o-gap-2: 8px; + /** + * @name 间距3 + * @type gap + * @group gap + * @description 用于组件之间的间距3 + */ + --o-gap-3: 12px; + /** + * @name 间距4 + * @type gap + * @group gap + * @description 用于组件之间的间距4 + */ + --o-gap-4: 16px; + /** + * @name 间距5 + * @type gap + * @group gap + * @description 用于组件之间的间距5 + */ + --o-gap-5: 24px; + /** + * @name 间距6 + * @type gap + * @group gap + * @description 用于组件之间的间距6 + */ + --o-gap-6: 32px; + /** + * @name 间距7 + * @type gap + * @group gap + * @description 用于组件之间的间距7 + */ + --o-gap-7: 40px; + /** + * @name 间距8 + * @type gap + * @group gap + * @description 用于组件之间的间距8 + */ + --o-gap-8: 48px; + /** + * @name 间距9 + * @type gap + * @group gap + * @description 用于组件之间的间距9 + */ + --o-gap-9: 64px; + /** + * @name 间距10 + * @type gap + * @group gap + * @description 用于组件之间的间距10 + */ + --o-gap-10: 72px; + /** + * @name 超小尺寸 + * @type size + * @group control_size + * @description 超小尺寸 + */ + --o-control_size-2xs: 14px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-xs: 16px; + /** + * @name 小尺寸 + * @type size + * @group control_size + * @description 小尺寸 + */ + --o-control_size-s: 24px; + /** + * @name 中尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-m: 32px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-l: 40px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-xl: 48px; + /** + * @name 大尺寸 + * @type size + * @group control_size + * @description 尺寸 + */ + --o-control_size-2xl: 56px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size + * @description 超小尺寸图标 + */ + --o-icon_size-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size + * @description 小尺寸图标 + */ + --o-icon_size-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size + * @description 中尺寸图标 + */ + --o-icon_size-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size + * @description 大尺寸图标 + */ + --o-icon_size-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size + * @description 超大尺寸图标 + */ + --o-icon_size-xl: 40px; + /** + * @name 2xl尺寸图标 + * @type size + * @group icon_size + * @description 2xl尺寸图标 + */ + --o-icon_size-2xl: 48px; + /** + * @name 3xl尺寸图标 + * @type size + * @group icon_size + * @description 3xl尺寸图标 + */ + --o-icon_size-3xl: 56px; + /** + * @name 4xl尺寸图标 + * @type size + * @group icon_size + * @description 4xl尺寸图标 + */ + --o-icon_size-4xl: 64px; + /** + * @name 超小尺寸图标 + * @type size + * @group icon_size_control + * @description 超小尺寸控件图标(组件使用) + */ + --o-icon_size_control-xs: 16px; + /** + * @name 小尺寸图标 + * @type size + * @group icon_size_control + * @description 小尺寸控件图标(组件使用) + */ + --o-icon_size_control-s: 20px; + /** + * @name 中尺寸图标 + * @type size + * @group icon_size_control + * @description 中尺寸控件图标(组件使用) + */ + --o-icon_size_control-m: 24px; + /** + * @name 大尺寸图标 + * @type size + * @group icon_size_control + * @description 大尺寸控件图标(组件使用) + */ + --o-icon_size_control-l: 32px; + /** + * @name 超大尺寸图标 + * @type size + * @group icon_size_control + * @description 超大尺寸控件图标(组件使用) + */ + --o-icon_size_control-xl: 40px; + /** + * @name 一级数据展示 + * @type font + * @group font_size + * @description 一级数据展示 + */ + --o-font_size-display1: 56px; + /** + * @name 二级数据展示 + * @type font + * @group font_size + * @description 二级数据展示 + */ + --o-font_size-display2: 48px; + /** + * @name 三级数据展示 + * @type font + * @group font_size + * @description 三级数据展示 + */ + --o-font_size-display3: 40px; + /** + * @name 一级标题 + * @type font + * @group font_size + * @description 一级标题 + */ + --o-font_size-h1: 32px; + /** + * @name 二级标题 + * @type font + * @group font_size + * @description 二级标题 + */ + --o-font_size-h2: 24px; + /** + * @name 三级标题 + * @type font + * @group font_size + * @description 三级标题 + */ + --o-font_size-h3: 22px; + /** + * @name 四级标题 + * @type font + * @group font_size + * @description 四级标题 + */ + --o-font_size-h4: 20px; + /** + * @name 常规正文 + * @type font + * @group font_size + * @description 常规正文 + */ + --o-font_size-text1: 16px; + /** + * @name 大号正文 + * @type font + * @group font_size + * @description 大号正文 + */ + --o-font_size-text2: 18px; + /** + * @name 提示文本1 + * @type font + * @group font_size + * @description 提示文本1 + */ + --o-font_size-tip1: 14px; + /** + * @name 提示文本2 + * @type font + * @group font_size + * @description 提示文本2 + */ + --o-font_size-tip2: 12px; + /** + * @name 一级数据展示 + * @type font + * @group line_height + * @description 一级数据展示 + */ + --o-line_height-display1: 80px; + /** + * @name 二级数据展示 + * @type font + * @group line_height + * @description 二级数据展示 + */ + --o-line_height-display2: 64px; + /** + * @name 三级数据展示 + * @type font + * @group line_height + * @description 三级数据展示 + */ + --o-line_height-display3: 56px; + /** + * @name 一级标题 + * @type font + * @group line_height + * @description 一级标题 + */ + --o-line_height-h1: 44px; + /** + * @name 二级标题 + * @type font + * @group line_height + * @description 二级标题 + */ + --o-line_height-h2: 32px; + /** + * @name 三级标题 + * @type font + * @group line_height + * @description 三级标题 + */ + --o-line_height-h3: 30px; + /** + * @name 四级标题 + * @type font + * @group line_height + * @description 四级标题 + */ + --o-line_height-h4: 28px; + /** + * @name 正文 + * @type font + * @group line_height + * @description 正文 + */ + --o-line_height-text1: 24px; + /** + * @name 正文-大 + * @type font + * @group line_height + * @description 正文-大 + */ + --o-line_height-text2: 26px; + /** + * @name 提示文本1 + * @type font + * @group line_height + * @description 提示文本1 + */ + --o-line_height-tip1: 22px; + /** + * @name 提示文本2 + * @type font + * @group line_height + * @description 提示文本2 + */ + --o-line_height-tip2: 18px; + /** + * @name 超小尺寸圆角 + * @type size + * @group radius + * @description 超小尺寸圆角 + */ + --o-radius-xs: 4px; + /** + * @name 小尺寸圆角 + * @type size + * @group radius + * @description 小尺寸圆角 + */ + --o-radius-s: 4px; + /** + * @name 中尺寸圆角 + * @type size + * @group radius + * @description 中尺寸圆角 + */ + --o-radius-m: 4px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角 + */ + --o-radius-l: 4px; + /** + * @name 大尺寸圆角 + * @type size + * @group radius + * @description 大尺寸圆角,一般用于卡片 + */ + --o-radius-xl: 0px; + /** + * @name 超小尺寸控件圆角 + * @type size + * @group radius_control + * @description 超小尺寸控件圆角(组件使用) + */ + --o-radius_control-xs: 4px; + /** + * @name 小尺寸控件圆角 + * @type size + * @group radius_control + * @description 小尺寸控件圆角(组件使用) + */ + --o-radius_control-s: 4px; + /** + * @name 中尺寸控件圆角 + * @type size + * @group radius_control + * @description 中尺寸控件圆角(组件使用) + */ + --o-radius_control-m: 4px; + /** + * @name 大尺寸控件圆角 + * @type size + * @group radius_control + * @description 大尺寸控件圆角(组件使用) + */ + --o-radius_control-l: 4px; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于退出屏幕的动画 + */ + --o-duration-s: 200ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard-in时进入屏幕的动画 + */ + --o-duration-m1: 250ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为standard时开始、结束的动画 + */ + --o-duration-m2: 300ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized-in时进入屏幕的动画 + */ + --o-duration-m3: 400ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时开始、结束的动画 + */ + --o-duration-l: 500ms; + /** + * @name 持续时间 + * @type animation + * @group duration + * @description 用于当曲线为emphasized时,轮播切换动画 + */ + --o-duration-xl: 1000ms; + /** + * @name 线性动画曲线 + * @type animation + * @group easing + * @description 线性曲线 + */ + --o-easing-linear: cubic-bezier(0, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-in: cubic-bezier(0, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于组件 + */ + --o-easing-standard-out: cubic-bezier(0.3, 0, 1, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized: cubic-bezier(0.2, 0, 0, 1); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-in: cubic-bezier(0.3, 0, 0.8, 0.15); + /** + * @name 动画曲线 + * @type animation + * @group easing + * @description 用于大卡片、场景切换 + */ + --o-easing-emphasized-out: cubic-bezier(0.05, 0.7, 0.1, 1); +} \ No newline at end of file diff --git a/packages/docs/src/assets/style/markdown.scss b/packages/docs/src/assets/style/markdown.scss new file mode 100644 index 00000000..61a42f38 --- /dev/null +++ b/packages/docs/src/assets/style/markdown.scss @@ -0,0 +1,6 @@ +:not(pre) > code { + border-radius: 4px; + padding: 0.1em 0.2em; + margin: 0 0.2em; + background-color: var(--o-color-control1-light); +} diff --git a/packages/docs/src/assets/style/style.scss b/packages/docs/src/assets/style/style.scss new file mode 100644 index 00000000..1edf2c69 --- /dev/null +++ b/packages/docs/src/assets/style/style.scss @@ -0,0 +1,108 @@ +@use './markdown.scss'; + +body { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + + color: var(--o-color-info2); + background-color: var(--o-color-fill1); + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +/* @media (prefers-color-scheme: dark) { + :root { + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + } + + a:hover { + color: #535bf2; + } +} */ + +.page-demo { + padding: 8px 24px; + h4 { + color: var(--o-color-info1); + } +} +.col { + display: flex; + align-items: center; + justify-content: flex-start; + flex-wrap: wrap; + gap: 8px; +} +.block { + padding: var(--o-gap-4); + border: 1px solid var(--o-color-control1-light); +} +.row { + display: flex; + align-items: center; + justify-content: flex-start; + flex-wrap: wrap; + gap: 16px; + padding: 8px; +} +section { + border: 1px solid var(--o-color-control1-light); + padding: var(--o-gap-4); + + h4 { + text-align: center; + margin: 0; + margin-bottom: var(--o-gap-3); + } + + section { + margin-top: 12px; + } + .row { + width: 100%; + } +} +.col-2 { + width: 50%; + padding: 24px; + + .col-2 { + margin-left: 12px; + } +} +section { + display: flex; + align-items: center; + justify-content: flex-start; + flex-wrap: wrap; + gap: 16px; + &[block] { + display: block; + } +} + +.btn { + padding: 4px 16px; + border: 1px solid #ccc; + display: inline-flex; + border-radius: 4px; + cursor: pointer; + &:hover { + border-color: #aaa; + } +} + +.markdown-body { + padding: 8px 24px; +} diff --git a/packages/docs/src/components/CodeContainer.vue b/packages/docs/src/components/CodeContainer.vue new file mode 100644 index 00000000..b0e9b8ee --- /dev/null +++ b/packages/docs/src/components/CodeContainer.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/packages/docs/src/components/DemoContainer.vue b/packages/docs/src/components/DemoContainer.vue new file mode 100644 index 00000000..cbf3401d --- /dev/null +++ b/packages/docs/src/components/DemoContainer.vue @@ -0,0 +1,87 @@ + + + + diff --git a/packages/docs/src/components/TheAside.vue b/packages/docs/src/components/TheAside.vue new file mode 100644 index 00000000..8cb335ee --- /dev/null +++ b/packages/docs/src/components/TheAside.vue @@ -0,0 +1,46 @@ + + + diff --git a/packages/docs/src/components/TheHeader.vue b/packages/docs/src/components/TheHeader.vue new file mode 100644 index 00000000..6ca770de --- /dev/null +++ b/packages/docs/src/components/TheHeader.vue @@ -0,0 +1,187 @@ + + + diff --git a/packages/docs/src/lang/en-US.ts b/packages/docs/src/lang/en-US.ts new file mode 100644 index 00000000..d08992d9 --- /dev/null +++ b/packages/docs/src/lang/en-US.ts @@ -0,0 +1,12 @@ +export default { + components: { + component: 'component', + }, + header: { + globalSettings: 'global settings', + home: 'home', + }, + dev: { + devEnv: 'dev env' + } +}; diff --git a/packages/docs/src/lang/index.ts b/packages/docs/src/lang/index.ts new file mode 100644 index 00000000..81fe53fd --- /dev/null +++ b/packages/docs/src/lang/index.ts @@ -0,0 +1,43 @@ +import { useLocale, useI18n, addLocale } from '@opensig/opendesign'; +import { computed } from 'vue'; +// @opensig/opendesign 未暴露语言包,因此通过路径添加 +import zhCn from '@components/locale/lang/zh-cn'; +import enUS from '@components/locale/lang/en-us'; +import enUSPortal from './en-US'; +import zhCNPortal from './zh-CN'; + +export const messages = { + 'en-US': { + ...enUS, + ...enUSPortal, + }, + 'zh-CN': { + ...zhCn, + ...zhCNPortal, + }, +}; +export type LocaleT = keyof typeof messages; +type LocaleItemT = { value: LocaleT; label: string }; +export const locales: Array = [ + { + value: 'zh-CN', + label: '中文', + }, + { + value: 'en-US', + label: 'English', + }, +]; +export const LOCALE_COOKIE_KEY = 'locale'; + +const { locale } = useI18n(); +export const currentLocale = computed(() => { + const rlt = locales.find((item) => item.value === locale.value); + return rlt || locales[0]; +}); +export const changeLocale = (l: LocaleT) => { + useLocale(l); + document.cookie = `${LOCALE_COOKIE_KEY}=${l}; path=/`; +}; + +addLocale(messages, { overwrite: true }); diff --git a/packages/docs/src/lang/zh-CN.ts b/packages/docs/src/lang/zh-CN.ts new file mode 100644 index 00000000..b553fc9d --- /dev/null +++ b/packages/docs/src/lang/zh-CN.ts @@ -0,0 +1,12 @@ +export default { + components: { + component: '组件', + }, + header: { + globalSettings: '全局设置', + home: '首页', + }, + dev: { + devEnv: '开发环境', + }, +}; diff --git a/packages/docs/src/main.ts b/packages/docs/src/main.ts new file mode 100644 index 00000000..0d6e0b22 --- /dev/null +++ b/packages/docs/src/main.ts @@ -0,0 +1,34 @@ +import { createApp } from 'vue'; +import { createPinia } from 'pinia' +import 'normalize.css'; + +import '@opensig/opendesign/es/index.css'; +import '@opensig/opendesign/es/_styles/light.token.css'; +import '@opensig/opendesign/es/_styles/dark.token.css'; +import './assets/style/style.scss'; + +import './assets/style/a.light.token.css'; +import './assets/style/a.dark.token.css'; + +import './assets/style/k.light.token.css'; +import './assets/style/k.dark.token.css'; + +import { router } from '@/router/index'; + +import App from './App.vue'; +import { OPopover, OTag, OIconInfo } from '@opensig/opendesign'; +import CodeContainer from './components/CodeContainer.vue'; +import DemoContainer from './components/DemoContainer.vue'; + +const app = createApp(App); +const pinia = createPinia(); + +app.use(pinia); +app.use(router); +app.use(OPopover); +app.use(OTag); +app.component('CodeContainer', CodeContainer); +app.component('DemoContainer', DemoContainer); +app.component('OIconInfo', OIconInfo); + +app.mount('#app'); diff --git a/packages/docs/src/pages/TheHome.vue b/packages/docs/src/pages/TheHome.vue new file mode 100644 index 00000000..a37ec7b6 --- /dev/null +++ b/packages/docs/src/pages/TheHome.vue @@ -0,0 +1,14 @@ + + + diff --git a/packages/docs/src/pages/TheIcons.vue b/packages/docs/src/pages/TheIcons.vue new file mode 100644 index 00000000..e64ac7c4 --- /dev/null +++ b/packages/docs/src/pages/TheIcons.vue @@ -0,0 +1,90 @@ + + + diff --git a/packages/docs/src/pages/TheText.vue b/packages/docs/src/pages/TheText.vue new file mode 100644 index 00000000..e7365586 --- /dev/null +++ b/packages/docs/src/pages/TheText.vue @@ -0,0 +1,12 @@ + + + diff --git a/packages/docs/src/router/index.ts b/packages/docs/src/router/index.ts new file mode 100644 index 00000000..7a47ec81 --- /dev/null +++ b/packages/docs/src/router/index.ts @@ -0,0 +1,36 @@ +import { createRouter, createWebHistory } from 'vue-router'; +import TheHome from '../pages/TheHome.vue'; +import { routes as componentRoutes } from './components'; +import { useI18n } from '@opensig/opendesign'; +const { t } = useI18n(); + +export const router = createRouter({ + history: createWebHistory(), + routes: [ + { + path: '/', + name: 'Home', + component: TheHome, + }, + ...componentRoutes, + ], + scrollBehavior(to, from, savePosition) { + if (savePosition) { + return savePosition; + } else { + return { + top: 0, + behavior: 'smooth', + }; + } + }, +}); + +export const sidebarRouteConfig = { + component: { + routes: componentRoutes, + label: () => t('components.component'), + }, +}; + +export type SidebarNameT = keyof typeof sidebarRouteConfig; diff --git a/packages/docs/src/stores/sidebar.ts b/packages/docs/src/stores/sidebar.ts new file mode 100644 index 00000000..94b4a6c6 --- /dev/null +++ b/packages/docs/src/stores/sidebar.ts @@ -0,0 +1,43 @@ +import { defineStore } from 'pinia'; +import { computed, ref, watchEffect } from 'vue'; +import { useRoute } from 'vue-router'; +import { sidebarRouteConfig, type SidebarNameT } from '@/router'; +import { useI18n } from '@opensig/opendesign'; +type MetaT = { sidebar: string; lang: string }; + +export const useSidebarStore = defineStore('sidebar', () => { + const nameOptions = Object.keys(sidebarRouteConfig) as SidebarNameT[]; + const sidebarName = ref(''); + const { locale } = useI18n(); + const route = useRoute(); + watchEffect(() => { + if (!route.name || typeof route.name !== 'string') { + return; + } + const cleanName = route.name.split('/')[0] as SidebarNameT; + if (nameOptions.includes(cleanName)) { + sidebarName.value = cleanName; + } else { + sidebarName.value = ''; + } + }); + const navList = computed(() => { + if (!sidebarName.value) { + return []; + } + const routes = sidebarRouteConfig[sidebarName.value].routes; + return routes + .filter((item) => (item.meta as MetaT).lang === locale.value) + .map((item) => ({ + path: item.path, + name: item.name as string, + label: (item.meta as MetaT).sidebar, + })); + }); + const isShowSidebar = computed(() => sidebarName.value && navList.value.length); + return { + sidebarName, + navList, + isShowSidebar, + }; +}); diff --git a/packages/docs/src/utils/useHighLightTheme.ts b/packages/docs/src/utils/useHighLightTheme.ts new file mode 100644 index 00000000..3a08eda4 --- /dev/null +++ b/packages/docs/src/utils/useHighLightTheme.ts @@ -0,0 +1,21 @@ +import { Ref, watchEffect } from 'vue'; +import light from 'highlight.js/styles/github.css?url'; +import dark from 'highlight.js/styles/github-dark.css?url'; + +export function useHighLightTheme(theme: Ref) { + watchEffect(() => { + const link = document.createElement('link'); + link.rel = 'stylesheet'; + if (theme.value.includes('dark')) { + link.href = dark; + document.head.appendChild(link); + const lightLink = document.querySelector(`link[href="${light}"]`); + lightLink?.remove(); + } else { + link.href = light; + document.head.appendChild(link); + const darkLink = document.querySelector(`link[href="${dark}"]`); + darkLink?.remove(); + } + }); +} diff --git a/packages/docs/src/vite-env.d.ts b/packages/docs/src/vite-env.d.ts new file mode 100644 index 00000000..0a9d2e49 --- /dev/null +++ b/packages/docs/src/vite-env.d.ts @@ -0,0 +1,16 @@ +/// + +declare module '*.vue' { + import type { DefineComponent } from 'vue'; + const component: DefineComponent<{}, {}, any>; + export default component; +} + +declare module '*.md' { + import type { DefineComponent } from 'vue'; + const component: DefineComponent<{}, {}, any>; + export default component; +} + +declare const __DEV__: boolean; +declare const __PROD__: boolean; diff --git a/packages/docs/tsconfig.json b/packages/docs/tsconfig.json new file mode 100644 index 00000000..a0ed615c --- /dev/null +++ b/packages/docs/tsconfig.json @@ -0,0 +1,43 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "moduleResolution": "Node", + "strict": true, + "jsx": "preserve", + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "lib": [ + "ESNext", + "DOM" + ], + "skipLibCheck": true, + "noEmit": true, + "baseUrl": "./", + "paths": { + "@/*": [ + "src/*" + ], + "@components/*": [ + "../opendesign/src/*" + ] + } + }, + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue", + "../opendesign/**/*.ts" + ], + "exclude": [ + "../opendesign/**/*.config.ts" + ], + "references": [ + { + "path": "./tsconfig.node.json" + } + ] +} \ No newline at end of file diff --git a/packages/docs/tsconfig.node.json b/packages/docs/tsconfig.node.json new file mode 100644 index 00000000..794fa431 --- /dev/null +++ b/packages/docs/tsconfig.node.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": [ + "vite.config.ts", + "plugins/**/*.ts", + "scripts/**/*.ts", + "helper/**/*.ts" + ] +} \ No newline at end of file diff --git a/packages/docs/vite.config.ts b/packages/docs/vite.config.ts new file mode 100644 index 00000000..412e5aa2 --- /dev/null +++ b/packages/docs/vite.config.ts @@ -0,0 +1,44 @@ +import path from 'path'; +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; +import { plugin as markdownPlugin } from './plugins/markdown/vueMdTranslate'; +import Inspect from 'vite-plugin-inspect'; + +import { injectDemoAndApi } from './plugins/injectDemoAndApi'; +import { injectDemoSource } from './plugins/injectDemoSource'; +import { injectDemoDocs } from './plugins/injectDemoDocs'; +import generateComponentRouter from './plugins/generateComponentRouter'; + +// https://vitejs.dev/config/ +export default defineConfig({ + base: './', + build: { + target: ['chrome74'], + outDir: '../../output/o', + }, + plugins: [ + vue({ + include: [/\.vue$/, /\.md$/], + }), + injectDemoAndApi(), + injectDemoSource(), + injectDemoDocs(), + markdownPlugin, + generateComponentRouter(), + Inspect(), + ], + resolve: { + alias: { + '@/': `${path.resolve(__dirname, './src')}/`, + '@components': path.resolve(__dirname, '../opendesign/src'), + '@assets': path.resolve(__dirname, './src/assets'), + }, + }, + server: { + port: 3300, + }, + define: { + __DEV__: JSON.stringify(process.env.NODE_ENV === 'development'), + __PROD__: JSON.stringify(process.env.NODE_ENV === 'production'), + }, +}); diff --git a/packages/opendesign/.gitignore b/packages/opendesign/.gitignore index da20fbc8..bcf3a759 100644 --- a/packages/opendesign/.gitignore +++ b/packages/opendesign/.gitignore @@ -24,4 +24,5 @@ dist-ssr *.sw? es -lib \ No newline at end of file +lib +*api.*.md diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 34bee73d..9ca9aa67 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,12 +24,18 @@ catalogs: '@types/glob': specifier: ^8.1.0 version: 8.1.0 + '@types/markdown-it': + specifier: ^14.1.0 + version: 14.1.2 '@types/node': specifier: ^22.13.1 version: 22.13.1 '@vitejs/plugin-vue': specifier: ^5.2.1 version: 5.2.1 + '@vue/compiler-sfc': + specifier: ^3.5.17 + version: 3.5.17 '@vue/eslint-config-typescript': specifier: ^12.0.0 version: 12.0.0 @@ -54,9 +60,30 @@ catalogs: glob: specifier: ^11.0.1 version: 11.0.1 + gray-matter: + specifier: ^4.0.3 + version: 4.0.3 + highlight.js: + specifier: ^11.11.1 + version: 11.11.1 + magic-string: + specifier: ^0.30.17 + version: 0.30.17 + markdown-it: + specifier: ^14.1.0 + version: 14.1.0 + markdown-it-async: + specifier: ^2.2.0 + version: 2.2.0 normalize.css: specifier: ^8.0.1 version: 8.0.1 + pinia: + specifier: ^3.0.3 + version: 3.0.3 + prettier: + specifier: ^3.6.2 + version: 3.6.2 sass: specifier: ^1.71.1 version: 1.84.0 @@ -69,15 +96,27 @@ catalogs: typescript: specifier: ~5.8.2 version: 5.8.2 + unplugin-vue-markdown: + specifier: ^28.3.1 + version: 28.3.1 vite: specifier: ^6.2.3 version: 6.3.0 vite-plugin-dts: specifier: ^4.5.3 version: 4.5.3 + vite-plugin-inspect: + specifier: ^11.2.0 + version: 11.3.0 vue: specifier: ^3.5.13 version: 3.5.13 + vue-component-meta: + specifier: ^2.2.10 + version: 2.2.12 + vue-docgen-api: + specifier: ^4.79.2 + version: 4.79.2 vue-router: specifier: ^4.5.0 version: 4.5.0 @@ -89,6 +128,9 @@ importers: .: dependencies: + '@opensig/opendesign': + specifier: workspace:^ + version: link:packages/opendesign normalize.css: specifier: 'catalog:' version: 8.0.1 @@ -121,6 +163,79 @@ importers: specifier: 'catalog:' version: 5.8.2 + packages/docs: + dependencies: + '@opensig/open-analytics': + specifier: 'catalog:' + version: 0.0.3 + '@opensig/open-scripts': + specifier: workspace:^ + version: link:../scripts + markdown-it: + specifier: 'catalog:' + version: 14.1.0 + pinia: + specifier: 'catalog:' + version: 3.0.3(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2)) + prettier: + specifier: 'catalog:' + version: 3.6.2 + vue: + specifier: 'catalog:' + version: 3.5.13(typescript@5.8.2) + devDependencies: + '@types/fs-extra': + specifier: 'catalog:' + version: 9.0.13 + '@types/markdown-it': + specifier: 'catalog:' + version: 14.1.2 + '@vue/compiler-sfc': + specifier: 'catalog:' + version: 3.5.17 + fs-extra: + specifier: 'catalog:' + version: 11.3.0 + glob: + specifier: 'catalog:' + version: 11.0.1 + gray-matter: + specifier: 'catalog:' + version: 4.0.3 + highlight.js: + specifier: 'catalog:' + version: 11.11.1 + magic-string: + specifier: 'catalog:' + version: 0.30.17 + markdown-it-async: + specifier: 'catalog:' + version: 2.2.0 + sass: + specifier: 'catalog:' + version: 1.84.0 + typescript: + specifier: 'catalog:' + version: 5.8.2 + unplugin-vue-markdown: + specifier: 'catalog:' + version: 28.3.1(vite@6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1)) + vite: + specifier: 'catalog:' + version: 6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1) + vite-plugin-inspect: + specifier: 'catalog:' + version: 11.3.0(vite@6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1)) + vue-component-meta: + specifier: 'catalog:' + version: 2.2.12(typescript@5.8.2) + vue-docgen-api: + specifier: 'catalog:' + version: 4.79.2(vue@3.5.13(typescript@5.8.2)) + vue-tsc: + specifier: 'catalog:' + version: 2.2.8(typescript@5.8.2) + packages/opendesign: dependencies: date-fns: @@ -239,15 +354,28 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.26.8': resolution: {integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.0': + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/runtime@7.26.7': resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==} engines: {node: '>=6.9.0'} @@ -256,6 +384,10 @@ packages: resolution: {integrity: sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.0': + resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} + engines: {node: '>=6.9.0'} + '@bufbuild/protobuf@2.2.3': resolution: {integrity: sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==} @@ -465,6 +597,15 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@mdit-vue/plugin-component@2.1.4': + resolution: {integrity: sha512-fiLbwcaE6gZE4c8Mkdkc4X38ltXh/EdnuPE1hepFT2dLiW6I4X8ho2Wq7nhYuT8RmV4OKlCFENwCuXlKcpV/sw==} + + '@mdit-vue/plugin-frontmatter@2.1.4': + resolution: {integrity: sha512-mOlavV176njnozIf0UZGFYymmQ2LK5S1rjrbJ1uGz4Df59tu0DQntdE7YZXqmJJA9MiSx7ViCTUQCNPKg7R8Ow==} + + '@mdit-vue/types@2.1.4': + resolution: {integrity: sha512-QiGNZslz+zXUs2X8D11UQhB4KAMZ0DZghvYxa7+1B+VMLcDtz//XHpWbcuexjzE3kBXSxIUTPH3eSQCa0puZHA==} + '@microsoft/api-extractor-model@7.30.5': resolution: {integrity: sha512-0ic4rcbcDZHz833RaTZWTGu+NpNgrxVNjVaor0ZDUymfDFzjA/Uuk8hYziIUIOEOSTfmIQqyzVwlzxZxPe7tOA==} @@ -581,6 +722,9 @@ packages: resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + '@rollup/plugin-terser@0.4.4': resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} @@ -760,6 +904,15 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} @@ -840,30 +993,60 @@ packages: '@volar/language-core@2.4.11': resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==} + '@volar/language-core@2.4.15': + resolution: {integrity: sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==} + '@volar/source-map@2.4.11': resolution: {integrity: sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==} + '@volar/source-map@2.4.15': + resolution: {integrity: sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==} + '@volar/typescript@2.4.11': resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==} + '@volar/typescript@2.4.15': + resolution: {integrity: sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==} + '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + '@vue/compiler-core@3.5.17': + resolution: {integrity: sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==} + '@vue/compiler-dom@3.5.13': resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + '@vue/compiler-dom@3.5.17': + resolution: {integrity: sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==} + '@vue/compiler-sfc@3.5.13': resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + '@vue/compiler-sfc@3.5.17': + resolution: {integrity: sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==} + '@vue/compiler-ssr@3.5.13': resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + '@vue/compiler-ssr@3.5.17': + resolution: {integrity: sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==} + '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + '@vue/devtools-api@7.7.7': + resolution: {integrity: sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==} + + '@vue/devtools-kit@7.7.7': + resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==} + + '@vue/devtools-shared@7.7.7': + resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==} + '@vue/eslint-config-typescript@12.0.0': resolution: {integrity: sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==} engines: {node: ^14.17.0 || >=16.0.0} @@ -883,6 +1066,14 @@ packages: typescript: optional: true + '@vue/language-core@2.2.12': + resolution: {integrity: sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@vue/language-core@2.2.8': resolution: {integrity: sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==} peerDependencies: @@ -908,16 +1099,29 @@ packages: '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + '@vue/shared@3.5.17': + resolution: {integrity: sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + ajv-draft-04@1.0.0: resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} peerDependencies: @@ -965,6 +1169,10 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + ansis@4.1.0: + resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==} + engines: {node: '>=14'} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -975,9 +1183,26 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + assert-never@1.4.0: + resolution: {integrity: sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==} + + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + + babel-walk@3.0.0-canary-5: + resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} + engines: {node: '>= 10.0.0'} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + birpc@2.4.0: + resolution: {integrity: sha512-5IdNxTyhXHv2UlgnPHQ0h+5ypVmkrYHzL8QT+DwFZ//2N/oNV8Ch+BCRmTJ3x6/z9Axo/cXYBc9eprsUVK/Jsg==} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -997,6 +1222,18 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1005,6 +1242,9 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + character-parser@2.2.0: + resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -1046,6 +1286,13 @@ packages: confbox@0.2.2: resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + constantinople@4.0.1: + resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} + + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -1093,9 +1340,30 @@ packages: supports-color: optional: true + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + detect-libc@1.0.3: resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} @@ -1109,6 +1377,9 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} + doctypes@1.1.0: + resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==} + dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -1122,6 +1393,10 @@ packages: domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -1135,6 +1410,21 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + error-stack-parser-es@1.0.5: + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + esbuild@0.25.2: resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} engines: {node: '>=18'} @@ -1164,10 +1454,18 @@ packages: deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true + esm-resolve@1.0.11: + resolution: {integrity: sha512-LxF0wfUQm3ldUDHkkV2MIbvvY0TgzIpJ420jHSV1Dm+IlplBEWiJTKWM61GtxUfvjV6iD4OtTYFGAGM2uuIUWg==} + espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + esquery@1.6.0: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} @@ -1190,6 +1488,10 @@ packages: exsolve@1.0.4: resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==} + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1252,6 +1554,14 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1277,16 +1587,35 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -1295,6 +1624,13 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + highlight.js@11.11.1: + resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} + engines: {node: '>=12.0.0'} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1325,6 +1661,18 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-expression@4.0.0: + resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==} + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -1337,6 +1685,11 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -1345,6 +1698,21 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -1355,6 +1723,13 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + js-stringify@1.0.2: + resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -1374,9 +1749,16 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jstransformer@1.0.0: + resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} @@ -1384,6 +1766,9 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + local-pkg@1.1.1: resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} engines: {node: '>=14'} @@ -1406,15 +1791,33 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} + lru-cache@8.0.5: + resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} + engines: {node: '>=16.14'} + magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + markdown-it-async@2.2.0: + resolution: {integrity: sha512-sITME+kf799vMeO/ww/CjH6q+c05f6TLpn6VOmmWCGNqPJzSh+uFgZoMB9s0plNtW6afy63qglNAC3MhrhP/gg==} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1445,15 +1848,27 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -1471,9 +1886,20 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + open@10.1.2: + resolution: {integrity: sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==} + engines: {node: '>=18'} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -1525,6 +1951,9 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -1536,6 +1965,15 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + pinia@3.0.3: + resolution: {integrity: sha512-ttXO/InUULUXkMHpTdp9Fj4hLpD/2AoJdmAbAeW2yu1iy1k+pkFekQXw5VpC0/5p51IOR/jDaDRfRWRnMMsGOA==} + peerDependencies: + typescript: '>=4.4.4' + vue: ^2.7.0 || ^3.5.11 + peerDependenciesMeta: + typescript: + optional: true + pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} @@ -1546,18 +1984,66 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss@8.5.1: - resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.5.3: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + prettier@3.6.2: + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} + engines: {node: '>=14'} + hasBin: true + + promise@7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + + pug-attrs@3.0.0: + resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==} + + pug-code-gen@3.0.3: + resolution: {integrity: sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==} + + pug-error@2.1.0: + resolution: {integrity: sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==} + + pug-filters@4.0.0: + resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==} + + pug-lexer@5.0.1: + resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==} + + pug-linker@4.0.0: + resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==} + + pug-load@3.0.0: + resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==} + + pug-parser@6.0.0: + resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==} + + pug-runtime@3.0.1: + resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==} + + pug-strip-comments@2.0.0: + resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==} + + pug-walk@2.0.0: + resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==} + + pug@3.0.3: + resolution: {integrity: sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -1575,6 +2061,10 @@ packages: resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} engines: {node: '>= 14.18.0'} + recast@0.23.11: + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + engines: {node: '>= 4'} + regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -1595,6 +2085,9 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -1605,6 +2098,10 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -1744,6 +2241,10 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -1769,6 +2270,10 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + sirv@3.0.1: + resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} + engines: {node: '>=18'} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -1787,6 +2292,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -1810,10 +2319,18 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + superjson@2.2.2: + resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} + engines: {node: '>=16'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -1847,6 +2364,9 @@ packages: text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tinyglobby@0.2.12: resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} engines: {node: '>=12.0.0'} @@ -1855,12 +2375,22 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + token-stream@1.0.0: + resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + ts-api-utils@1.4.3: resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' + ts-map@1.0.3: + resolution: {integrity: sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w==} + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -1881,6 +2411,9 @@ packages: resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==} hasBin: true + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} @@ -1891,6 +2424,19 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unplugin-utils@0.2.4: + resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==} + engines: {node: '>=18.12.0'} + + unplugin-vue-markdown@28.3.1: + resolution: {integrity: sha512-t+vhR2QbTba/NabOkonzdaRngM/hHiDH059L4wZPPMeysTp8ZxQ5gv8QoXEqkSMoM+uKUWVZOiIWpDhYcCXR/Q==} + peerDependencies: + vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0 + + unplugin@2.3.5: + resolution: {integrity: sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==} + engines: {node: '>=18.12.0'} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -1900,6 +2446,16 @@ packages: varint@6.0.0: resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + vite-dev-rpc@1.1.0: + resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0 + + vite-hot-client@2.1.0: + resolution: {integrity: sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + vite-plugin-dts@4.5.3: resolution: {integrity: sha512-P64VnD00dR+e8S26ESoFELqc17+w7pKkwlBpgXteOljFyT0zDwD8hH4zXp49M/kciy//7ZbVXIwQCekBJjfWzA==} peerDependencies: @@ -1909,6 +2465,16 @@ packages: vite: optional: true + vite-plugin-inspect@11.3.0: + resolution: {integrity: sha512-vmt7K1WVKQkuiwvsM6e5h3HDJ2pSWTnzoj+JP9Kvu3Sh2G+nFap1F1V7tqpyA4qFxM1GQ84ryffWFGQrwShERQ==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + vite@6.3.0: resolution: {integrity: sha512-9aC0n4pr6hIbvi1YOpFjwQ+QOTGssvbJKoeYkuHHGWwlXfdxQlI8L2qNMo9awEEcCPSiS+5mJZk5jH1PAqoDeQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -1949,15 +2515,40 @@ packages: yaml: optional: true + void-elements@3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + engines: {node: '>=0.10.0'} + vscode-uri@3.1.0: resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - vue-eslint-parser@9.4.3: - resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} - engines: {node: ^14.17.0 || >=16.0.0} + vue-component-meta@2.2.12: + resolution: {integrity: sha512-dQU6/obNSNbennJ1xd+rhDid4g3vQro+9qUBBIg8HMZH2Zs1jTpkFNxuQ3z77bOlU+ew08Qck9sbYkdSePr0Pw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + vue-component-type-helpers@2.2.12: + resolution: {integrity: sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==} + + vue-docgen-api@4.79.2: + resolution: {integrity: sha512-n9ENAcs+40awPZMsas7STqjkZiVlIjxIKgiJr5rSohDP0/JCrD9VtlzNojafsA1MChm/hz2h3PDtUedx3lbgfA==} + peerDependencies: + vue: '>=2' + + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' + vue-inbrowser-compiler-independent-utils@4.71.1: + resolution: {integrity: sha512-K3wt3iVmNGaFEOUR4JIThQRWfqokxLfnPslD41FDZB2ajXp789+wCqJyGYlIFsvEQ2P61PInw6/ph5iiqg51gg==} + peerDependencies: + vue: '>=2' + vue-router@4.5.0: resolution: {integrity: sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==} peerDependencies: @@ -1980,11 +2571,18 @@ packages: web-vitals@4.2.4: resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true + with@7.0.2: + resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} + engines: {node: '>= 10.0.0'} + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -2015,12 +2613,20 @@ snapshots: '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/parser@7.26.8': dependencies: '@babel/types': 7.26.8 + '@babel/parser@7.28.0': + dependencies: + '@babel/types': 7.28.0 + '@babel/runtime@7.26.7': dependencies: regenerator-runtime: 0.14.1 @@ -2030,6 +2636,11 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.28.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@bufbuild/protobuf@2.2.3': {} '@esbuild/aix-ppc64@0.25.2': @@ -2173,6 +2784,20 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@mdit-vue/plugin-component@2.1.4': + dependencies: + '@types/markdown-it': 14.1.2 + markdown-it: 14.1.0 + + '@mdit-vue/plugin-frontmatter@2.1.4': + dependencies: + '@mdit-vue/types': 2.1.4 + '@types/markdown-it': 14.1.2 + gray-matter: 4.0.3 + markdown-it: 14.1.0 + + '@mdit-vue/types@2.1.4': {} + '@microsoft/api-extractor-model@7.30.5(@types/node@22.13.1)': dependencies: '@microsoft/tsdoc': 0.15.1 @@ -2286,6 +2911,8 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.1 optional: true + '@polka/url@1.0.0-next.29': {} + '@rollup/plugin-terser@0.4.4(rollup@4.40.0)': dependencies: serialize-javascript: 6.0.2 @@ -2422,6 +3049,15 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdurl@2.0.0': {} + '@types/minimatch@5.1.2': {} '@types/node@22.13.1': @@ -2527,14 +3163,26 @@ snapshots: dependencies: '@volar/source-map': 2.4.11 + '@volar/language-core@2.4.15': + dependencies: + '@volar/source-map': 2.4.15 + '@volar/source-map@2.4.11': {} + '@volar/source-map@2.4.15': {} + '@volar/typescript@2.4.11': dependencies: '@volar/language-core': 2.4.11 path-browserify: 1.0.1 vscode-uri: 3.1.0 + '@volar/typescript@2.4.15': + dependencies: + '@volar/language-core': 2.4.15 + path-browserify: 1.0.1 + vscode-uri: 3.1.0 + '@vue/compiler-core@3.5.13': dependencies: '@babel/parser': 7.26.8 @@ -2543,11 +3191,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.17': + dependencies: + '@babel/parser': 7.28.0 + '@vue/shared': 3.5.17 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.13': dependencies: '@vue/compiler-core': 3.5.13 '@vue/shared': 3.5.13 + '@vue/compiler-dom@3.5.17': + dependencies: + '@vue/compiler-core': 3.5.17 + '@vue/shared': 3.5.17 + '@vue/compiler-sfc@3.5.13': dependencies: '@babel/parser': 7.26.8 @@ -2557,7 +3218,19 @@ snapshots: '@vue/shared': 3.5.13 estree-walker: 2.0.2 magic-string: 0.30.17 - postcss: 8.5.1 + postcss: 8.5.3 + source-map-js: 1.2.1 + + '@vue/compiler-sfc@3.5.17': + dependencies: + '@babel/parser': 7.28.0 + '@vue/compiler-core': 3.5.17 + '@vue/compiler-dom': 3.5.17 + '@vue/compiler-ssr': 3.5.17 + '@vue/shared': 3.5.17 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.6 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.13': @@ -2565,6 +3238,11 @@ snapshots: '@vue/compiler-dom': 3.5.13 '@vue/shared': 3.5.13 + '@vue/compiler-ssr@3.5.17': + dependencies: + '@vue/compiler-dom': 3.5.17 + '@vue/shared': 3.5.17 + '@vue/compiler-vue2@2.7.16': dependencies: de-indent: 1.0.2 @@ -2572,6 +3250,24 @@ snapshots: '@vue/devtools-api@6.6.4': {} + '@vue/devtools-api@7.7.7': + dependencies: + '@vue/devtools-kit': 7.7.7 + + '@vue/devtools-kit@7.7.7': + dependencies: + '@vue/devtools-shared': 7.7.7 + birpc: 2.4.0 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.2 + + '@vue/devtools-shared@7.7.7': + dependencies: + rfdc: 1.4.1 + '@vue/eslint-config-typescript@12.0.0(eslint-plugin-vue@9.32.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.8.2)': dependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.2))(eslint@8.57.1)(typescript@5.8.2) @@ -2597,6 +3293,19 @@ snapshots: optionalDependencies: typescript: 5.8.2 + '@vue/language-core@2.2.12(typescript@5.8.2)': + dependencies: + '@volar/language-core': 2.4.15 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.13 + alien-signals: 1.0.13 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.8.2 + '@vue/language-core@2.2.8(typescript@5.8.2)': dependencies: '@volar/language-core': 2.4.11 @@ -2634,12 +3343,18 @@ snapshots: '@vue/shared@3.5.13': {} + '@vue/shared@3.5.17': {} + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 + acorn@7.4.1: {} + acorn@8.14.0: {} + acorn@8.15.0: {} + ajv-draft-04@1.0.0(ajv@8.13.0): optionalDependencies: ajv: 8.13.0 @@ -2683,6 +3398,8 @@ snapshots: ansi-styles@6.2.1: {} + ansis@4.1.0: {} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -2691,8 +3408,22 @@ snapshots: array-union@2.1.0: {} + asap@2.0.6: {} + + assert-never@1.4.0: {} + + ast-types@0.16.1: + dependencies: + tslib: 2.8.1 + + babel-walk@3.0.0-canary-5: + dependencies: + '@babel/types': 7.26.8 + balanced-match@1.0.2: {} + birpc@2.4.0: {} + boolbase@1.0.0: {} brace-expansion@1.1.11: @@ -2712,6 +3443,20 @@ snapshots: buffer-from@1.1.2: {} + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + callsites@3.1.0: {} chalk@4.1.2: @@ -2719,6 +3464,10 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + character-parser@2.2.0: + dependencies: + is-regex: 1.2.1 + chokidar@4.0.3: dependencies: readdirp: 4.1.1 @@ -2749,6 +3498,15 @@ snapshots: confbox@0.2.2: {} + constantinople@4.0.1: + dependencies: + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 + + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -2793,8 +3551,21 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.1: + dependencies: + ms: 2.1.3 + deep-is@0.1.4: {} + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + + define-lazy-prop@3.0.0: {} + detect-libc@1.0.3: optional: true @@ -2806,6 +3577,8 @@ snapshots: dependencies: esutils: 2.0.3 + doctypes@1.1.0: {} + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -2824,6 +3597,12 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + eastasianwidth@0.2.0: {} emoji-regex@8.0.0: {} @@ -2832,6 +3611,16 @@ snapshots: entities@4.5.0: {} + error-stack-parser-es@1.0.5: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + esbuild@0.25.2: optionalDependencies: '@esbuild/aix-ppc64': 0.25.2 @@ -2926,12 +3715,16 @@ snapshots: transitivePeerDependencies: - supports-color + esm-resolve@1.0.11: {} + espree@9.6.1: dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -2948,6 +3741,10 @@ snapshots: exsolve@1.0.4: {} + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + fast-deep-equal@3.1.3: {} fast-glob@3.3.3: @@ -3009,6 +3806,24 @@ snapshots: function-bind@1.1.2: {} + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -3048,18 +3863,39 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + gopd@1.2.0: {} + graceful-fs@4.2.11: {} graphemer@1.4.0: {} + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + has-flag@4.0.0: {} + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hash-sum@2.0.0: {} + hasown@2.0.2: dependencies: function-bind: 1.1.2 he@1.2.0: {} + highlight.js@11.11.1: {} + + hookable@5.5.3: {} + ignore@5.3.2: {} immutable@5.0.3: {} @@ -3084,6 +3920,15 @@ snapshots: dependencies: hasown: 2.0.2 + is-docker@3.0.0: {} + + is-expression@4.0.0: + dependencies: + acorn: 7.4.1 + object-assign: 4.1.1 + + is-extendable@0.1.1: {} + is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -3092,10 +3937,29 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + is-number@7.0.0: {} is-path-inside@3.0.3: {} + is-promise@2.2.2: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-what@4.1.16: {} + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + isexe@2.0.0: {} jackspeak@4.0.2: @@ -3104,6 +3968,13 @@ snapshots: jju@1.4.0: {} + js-stringify@1.0.2: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -3122,10 +3993,17 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jstransformer@1.0.0: + dependencies: + is-promise: 2.2.2 + promise: 7.3.1 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 + kind-of@6.0.3: {} + kolorist@1.8.0: {} levn@0.4.1: @@ -3133,6 +4011,10 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + local-pkg@1.1.1: dependencies: mlly: 1.7.4 @@ -3153,14 +4035,34 @@ snapshots: dependencies: yallist: 4.0.0 + lru-cache@8.0.5: {} + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + markdown-it-async@2.2.0: + dependencies: + '@types/markdown-it': 14.1.2 + markdown-it: 14.1.0 + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + math-intrinsics@1.1.0: {} + mdn-data@2.0.28: {} mdn-data@2.0.30: {} + mdurl@2.0.0: {} + merge2@1.4.1: {} micromatch@4.0.8: @@ -3190,6 +4092,8 @@ snapshots: minipass@7.1.2: {} + mitt@3.0.1: {} + mlly@1.7.4: dependencies: acorn: 8.14.0 @@ -3197,10 +4101,14 @@ snapshots: pkg-types: 1.3.1 ufo: 1.5.4 + mrmime@2.0.1: {} + ms@2.1.3: {} muggle-string@0.4.1: {} + nanoid@3.3.11: {} + nanoid@3.3.8: {} natural-compare@1.4.0: {} @@ -3214,10 +4122,21 @@ snapshots: dependencies: boolbase: 1.0.0 + object-assign@4.1.1: {} + + ohash@2.0.11: {} + once@1.4.0: dependencies: wrappy: 1.0.2 + open@10.1.2: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -3262,12 +4181,21 @@ snapshots: pathe@2.0.3: {} + perfect-debounce@1.0.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} picomatch@4.0.2: {} + pinia@3.0.3(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2)): + dependencies: + '@vue/devtools-api': 7.7.7 + vue: 3.5.13(typescript@5.8.2) + optionalDependencies: + typescript: 5.8.2 + pkg-types@1.3.1: dependencies: confbox: 0.1.8 @@ -3285,20 +4213,95 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.5.1: + postcss@8.5.3: dependencies: nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.3: + postcss@8.5.6: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 prelude-ls@1.2.1: {} + prettier@3.6.2: {} + + promise@7.3.1: + dependencies: + asap: 2.0.6 + + pug-attrs@3.0.0: + dependencies: + constantinople: 4.0.1 + js-stringify: 1.0.2 + pug-runtime: 3.0.1 + + pug-code-gen@3.0.3: + dependencies: + constantinople: 4.0.1 + doctypes: 1.1.0 + js-stringify: 1.0.2 + pug-attrs: 3.0.0 + pug-error: 2.1.0 + pug-runtime: 3.0.1 + void-elements: 3.1.0 + with: 7.0.2 + + pug-error@2.1.0: {} + + pug-filters@4.0.0: + dependencies: + constantinople: 4.0.1 + jstransformer: 1.0.0 + pug-error: 2.1.0 + pug-walk: 2.0.0 + resolve: 1.22.10 + + pug-lexer@5.0.1: + dependencies: + character-parser: 2.2.0 + is-expression: 4.0.0 + pug-error: 2.1.0 + + pug-linker@4.0.0: + dependencies: + pug-error: 2.1.0 + pug-walk: 2.0.0 + + pug-load@3.0.0: + dependencies: + object-assign: 4.1.1 + pug-walk: 2.0.0 + + pug-parser@6.0.0: + dependencies: + pug-error: 2.1.0 + token-stream: 1.0.0 + + pug-runtime@3.0.1: {} + + pug-strip-comments@2.0.0: + dependencies: + pug-error: 2.1.0 + + pug-walk@2.0.0: {} + + pug@3.0.3: + dependencies: + pug-code-gen: 3.0.3 + pug-filters: 4.0.0 + pug-lexer: 5.0.1 + pug-linker: 4.0.0 + pug-load: 3.0.0 + pug-parser: 6.0.0 + pug-runtime: 3.0.1 + pug-strip-comments: 2.0.0 + + punycode.js@2.3.1: {} + punycode@2.3.1: {} quansync@0.2.10: {} @@ -3311,6 +4314,14 @@ snapshots: readdirp@4.1.1: {} + recast@0.23.11: + dependencies: + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tiny-invariant: 1.3.3 + tslib: 2.8.1 + regenerator-runtime@0.14.1: {} require-from-string@2.0.2: {} @@ -3325,6 +4336,8 @@ snapshots: reusify@1.0.4: {} + rfdc@1.4.1: {} + rimraf@3.0.2: dependencies: glob: 7.2.3 @@ -3355,6 +4368,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.40.0 fsevents: 2.3.3 + run-applescript@7.0.0: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -3465,6 +4480,11 @@ snapshots: optionalDependencies: '@parcel/watcher': 2.5.1 + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + semver@7.5.4: dependencies: lru-cache: 6.0.0 @@ -3483,6 +4503,12 @@ snapshots: signal-exit@4.1.0: {} + sirv@3.0.1: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + slash@3.0.0: {} smob@1.5.0: {} @@ -3496,6 +4522,8 @@ snapshots: source-map@0.6.1: {} + speakingurl@14.0.1: {} + sprintf-js@1.0.3: {} string-argv@0.3.2: {} @@ -3520,8 +4548,14 @@ snapshots: dependencies: ansi-regex: 6.1.0 + strip-bom-string@1.0.0: {} + strip-json-comments@3.1.1: {} + superjson@2.2.2: + dependencies: + copy-anything: 3.0.5 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -3557,6 +4591,8 @@ snapshots: text-table@0.2.0: {} + tiny-invariant@1.3.3: {} + tinyglobby@0.2.12: dependencies: fdir: 6.4.3(picomatch@4.0.2) @@ -3566,10 +4602,16 @@ snapshots: dependencies: is-number: 7.0.0 + token-stream@1.0.0: {} + + totalist@3.0.1: {} + ts-api-utils@1.4.3(typescript@5.8.2): dependencies: typescript: 5.8.2 + ts-map@1.0.3: {} + tslib@2.8.1: {} type-check@0.4.0: @@ -3582,12 +4624,37 @@ snapshots: ua-parser-js@1.0.40: {} + uc.micro@2.1.0: {} + ufo@1.5.4: {} undici-types@6.20.0: {} universalify@2.0.1: {} + unplugin-utils@0.2.4: + dependencies: + pathe: 2.0.3 + picomatch: 4.0.2 + + unplugin-vue-markdown@28.3.1(vite@6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1)): + dependencies: + '@mdit-vue/plugin-component': 2.1.4 + '@mdit-vue/plugin-frontmatter': 2.1.4 + '@mdit-vue/types': 2.1.4 + '@types/markdown-it': 14.1.2 + markdown-it: 14.1.0 + markdown-it-async: 2.2.0 + unplugin: 2.3.5 + unplugin-utils: 0.2.4 + vite: 6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1) + + unplugin@2.3.5: + dependencies: + acorn: 8.15.0 + picomatch: 4.0.2 + webpack-virtual-modules: 0.6.2 + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -3596,6 +4663,16 @@ snapshots: varint@6.0.0: {} + vite-dev-rpc@1.1.0(vite@6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1)): + dependencies: + birpc: 2.4.0 + vite: 6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1) + vite-hot-client: 2.1.0(vite@6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1)) + + vite-hot-client@2.1.0(vite@6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1)): + dependencies: + vite: 6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1) + vite-plugin-dts@4.5.3(@types/node@22.13.1)(rollup@4.40.0)(typescript@5.8.2)(vite@6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1)): dependencies: '@microsoft/api-extractor': 7.52.3(@types/node@22.13.1) @@ -3615,6 +4692,21 @@ snapshots: - rollup - supports-color + vite-plugin-inspect@11.3.0(vite@6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1)): + dependencies: + ansis: 4.1.0 + debug: 4.4.1 + error-stack-parser-es: 1.0.5 + ohash: 2.0.11 + open: 10.1.2 + perfect-debounce: 1.0.0 + sirv: 3.0.1 + unplugin-utils: 0.2.4 + vite: 6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1) + vite-dev-rpc: 1.1.0(vite@6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1)) + transitivePeerDependencies: + - supports-color + vite@6.3.0(@types/node@22.13.1)(sass-embedded@1.83.4)(sass@1.84.0)(terser@5.38.1): dependencies: esbuild: 0.25.2 @@ -3630,8 +4722,37 @@ snapshots: sass-embedded: 1.83.4 terser: 5.38.1 + void-elements@3.1.0: {} + vscode-uri@3.1.0: {} + vue-component-meta@2.2.12(typescript@5.8.2): + dependencies: + '@volar/typescript': 2.4.15 + '@vue/language-core': 2.2.12(typescript@5.8.2) + path-browserify: 1.0.1 + vue-component-type-helpers: 2.2.12 + optionalDependencies: + typescript: 5.8.2 + + vue-component-type-helpers@2.2.12: {} + + vue-docgen-api@4.79.2(vue@3.5.13(typescript@5.8.2)): + dependencies: + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-sfc': 3.5.17 + ast-types: 0.16.1 + esm-resolve: 1.0.11 + hash-sum: 2.0.0 + lru-cache: 8.0.5 + pug: 3.0.3 + recast: 0.23.11 + ts-map: 1.0.3 + vue: 3.5.13(typescript@5.8.2) + vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.5.13(typescript@5.8.2)) + vue-eslint-parser@9.4.3(eslint@8.57.1): dependencies: debug: 4.4.0 @@ -3645,6 +4766,10 @@ snapshots: transitivePeerDependencies: - supports-color + vue-inbrowser-compiler-independent-utils@4.71.1(vue@3.5.13(typescript@5.8.2)): + dependencies: + vue: 3.5.13(typescript@5.8.2) + vue-router@4.5.0(vue@3.5.13(typescript@5.8.2)): dependencies: '@vue/devtools-api': 6.6.4 @@ -3668,10 +4793,19 @@ snapshots: web-vitals@4.2.4: {} + webpack-virtual-modules@0.6.2: {} + which@2.0.2: dependencies: isexe: 2.0.0 + with@7.0.2: + dependencies: + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 + assert-never: 1.4.0 + babel-walk: 3.0.0-canary-5 + word-wrap@1.2.5: {} wrap-ansi@7.0.0: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 823d897c..6c768c45 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -34,3 +34,16 @@ catalog: "@types/clean-css": "^4.2.11" "@types/fs-extra": "^9.0.13" "@types/glob": "^8.1.0" + "unplugin-vue-markdown": "^28.3.1" + "vite-plugin-inspect": "^11.2.0" + "highlight.js": "^11.11.1" + "gray-matter": "^4.0.3" + "markdown-it-async": "^2.2.0" + "@vue/compiler-sfc": "^3.5.17" + "markdown-it": "^14.1.0" + "@types/markdown-it": "^14.1.0" + "magic-string": "^0.30.17" + "vue-component-meta": "^2.2.10" + "vue-docgen-api": "^4.79.2" + "prettier": "^3.6.2" + "pinia": "^3.0.3" -- Gitee From 5e02d4c8e88e128a97845a849c0651b228feb279 Mon Sep 17 00:00:00 2001 From: sakurayinfei <970412446@qq.com> Date: Sat, 5 Jul 2025 17:33:59 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=96=B0=E5=A2=9EOButton=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../button/__docs__/__demo__/BtnIconSize.vue | 71 +++++++++++++++++++ .../button/__docs__/__demo__/BtnLoading.vue | 40 +++++++++++ .../src/button/__docs__/__demo__/BtnRound.vue | 71 +++++++++++++++++++ .../src/button/__docs__/index.en-US.md | 13 ++++ .../src/button/__docs__/index.zh-CN.md | 13 ++++ 5 files changed, 208 insertions(+) create mode 100644 packages/opendesign/src/button/__docs__/__demo__/BtnIconSize.vue create mode 100644 packages/opendesign/src/button/__docs__/__demo__/BtnLoading.vue create mode 100644 packages/opendesign/src/button/__docs__/__demo__/BtnRound.vue create mode 100644 packages/opendesign/src/button/__docs__/index.en-US.md create mode 100644 packages/opendesign/src/button/__docs__/index.zh-CN.md diff --git a/packages/opendesign/src/button/__docs__/__demo__/BtnIconSize.vue b/packages/opendesign/src/button/__docs__/__demo__/BtnIconSize.vue new file mode 100644 index 00000000..e6b2355d --- /dev/null +++ b/packages/opendesign/src/button/__docs__/__demo__/BtnIconSize.vue @@ -0,0 +1,71 @@ + +--- +title: + zh-CN: icon插槽及按钮大小 + en-US: Icon Slot and Button Size +--- + +# zh-CN + +可以通过`icon`插槽设置按钮图标,通过`size`属性设置按钮大小。 + +# en-US +The button icon can be set using the `icon` slot, and the button size can be adjusted via the `size` prop. + + + diff --git a/packages/opendesign/src/button/__docs__/__demo__/BtnLoading.vue b/packages/opendesign/src/button/__docs__/__demo__/BtnLoading.vue new file mode 100644 index 00000000..d1c7d892 --- /dev/null +++ b/packages/opendesign/src/button/__docs__/__demo__/BtnLoading.vue @@ -0,0 +1,40 @@ + +--- +title: + zh-CN: 加载中 + en-US: Loading +--- + +# zh-CN + +加载中的按钮,通过`loading`属性控制按钮的加载状态。当`loading`为`true`时,按钮会显示加载中的状态。同时`icon`插槽会被替换为加载中的图标。 + +# en-US +A button that is loading, controlled by the `loading` property. When `loading` is `true`, the button will display the loading state. The `icon` slot will be replaced with the loading icon. + + + diff --git a/packages/opendesign/src/button/__docs__/__demo__/BtnRound.vue b/packages/opendesign/src/button/__docs__/__demo__/BtnRound.vue new file mode 100644 index 00000000..35f95b7c --- /dev/null +++ b/packages/opendesign/src/button/__docs__/__demo__/BtnRound.vue @@ -0,0 +1,71 @@ + +--- +title: + zh-CN: 按钮圆角形状 + en-US: Button Round Shape +--- + +# zh-CN + +通过`round`属性设置按钮圆角形状,值为`pill`时指半圆角,值也可以是css属性`border-radius`可接受的任意值 + +# en-US + +Sets the button's rounded shape. A value of 'pill' specifies a half-rounded shape. Any valid CSS border-radius length value (e.g., '8px', '50%') can be used. + + + diff --git a/packages/opendesign/src/button/__docs__/index.en-US.md b/packages/opendesign/src/button/__docs__/index.en-US.md new file mode 100644 index 00000000..542b2d7c --- /dev/null +++ b/packages/opendesign/src/button/__docs__/index.en-US.md @@ -0,0 +1,13 @@ +--- +sidebar: OButton +--- + +# button + +button + +## demo + + + + diff --git a/packages/opendesign/src/button/__docs__/index.zh-CN.md b/packages/opendesign/src/button/__docs__/index.zh-CN.md new file mode 100644 index 00000000..0cbfe7d5 --- /dev/null +++ b/packages/opendesign/src/button/__docs__/index.zh-CN.md @@ -0,0 +1,13 @@ +--- +sidebar: OButton 按钮 +--- + +# 按钮 + +按钮 + +## 示例 + + + + -- Gitee From 42ee1bd2c0986b892850bcc1af682e440bea8389 Mon Sep 17 00:00:00 2001 From: sakurayinfei <970412446@qq.com> Date: Tue, 8 Jul 2025 09:29:09 +0800 Subject: [PATCH 4/8] =?UTF-8?q?feat:=20=E5=B0=86=5F=5Fdocs=5F=5F/=5F=5Fdem?= =?UTF-8?q?o=5F=5F=E6=96=87=E4=BB=B6=E5=A4=B9=E6=94=B9=E4=B8=BA=5F=5Fdocs?= =?UTF-8?q?=5F=5F/=5F=5Fcase=5F=5F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/docs/plugins/injectDemoAndApi.ts | 4 ++-- packages/docs/plugins/injectDemoSource.ts | 2 +- .../button/__docs__/{__demo__ => __case__}/BtnIconSize.vue | 0 .../button/__docs__/{__demo__ => __case__}/BtnLoading.vue | 0 .../src/button/__docs__/{__demo__ => __case__}/BtnRound.vue | 0 packages/opendesign/src/button/__docs__/index.en-US.md | 6 +++--- packages/opendesign/src/button/__docs__/index.zh-CN.md | 6 +++--- 7 files changed, 9 insertions(+), 9 deletions(-) rename packages/opendesign/src/button/__docs__/{__demo__ => __case__}/BtnIconSize.vue (100%) rename packages/opendesign/src/button/__docs__/{__demo__ => __case__}/BtnLoading.vue (100%) rename packages/opendesign/src/button/__docs__/{__demo__ => __case__}/BtnRound.vue (100%) diff --git a/packages/docs/plugins/injectDemoAndApi.ts b/packages/docs/plugins/injectDemoAndApi.ts index 1301f91d..5c36a998 100644 --- a/packages/docs/plugins/injectDemoAndApi.ts +++ b/packages/docs/plugins/injectDemoAndApi.ts @@ -12,8 +12,8 @@ export function injectDemoAndApi(): Plugin { return; } const imported:{name: string, path: string}[] = []; - let newCode = code.replace(//g, (match, componentName) => { - const demoFile = join(dirname(id), `./__demo__/${componentName}.vue`); + let newCode = code.replace(//g, (match, componentName) => { + const demoFile = join(dirname(id), `./__case__/${componentName}.vue`); if (existsSync(demoFile)) { imported.push({ name: `AutoInject${componentName}`, diff --git a/packages/docs/plugins/injectDemoSource.ts b/packages/docs/plugins/injectDemoSource.ts index c5d349af..b16c06c1 100644 --- a/packages/docs/plugins/injectDemoSource.ts +++ b/packages/docs/plugins/injectDemoSource.ts @@ -45,7 +45,7 @@ const generateVirtualModule = (source: string) => { return ``; }; export function injectDemoSource(): Plugin { - const filter = createFilter(/opendesign\/src\/.*?\/__demo__\/.+\.vue$/); + const filter = createFilter(/opendesign\/src\/.*?\/__case__\/.+\.vue$/); return { name: 'portal:inject-demo-source', resolveId(id) { diff --git a/packages/opendesign/src/button/__docs__/__demo__/BtnIconSize.vue b/packages/opendesign/src/button/__docs__/__case__/BtnIconSize.vue similarity index 100% rename from packages/opendesign/src/button/__docs__/__demo__/BtnIconSize.vue rename to packages/opendesign/src/button/__docs__/__case__/BtnIconSize.vue diff --git a/packages/opendesign/src/button/__docs__/__demo__/BtnLoading.vue b/packages/opendesign/src/button/__docs__/__case__/BtnLoading.vue similarity index 100% rename from packages/opendesign/src/button/__docs__/__demo__/BtnLoading.vue rename to packages/opendesign/src/button/__docs__/__case__/BtnLoading.vue diff --git a/packages/opendesign/src/button/__docs__/__demo__/BtnRound.vue b/packages/opendesign/src/button/__docs__/__case__/BtnRound.vue similarity index 100% rename from packages/opendesign/src/button/__docs__/__demo__/BtnRound.vue rename to packages/opendesign/src/button/__docs__/__case__/BtnRound.vue diff --git a/packages/opendesign/src/button/__docs__/index.en-US.md b/packages/opendesign/src/button/__docs__/index.en-US.md index 542b2d7c..8b7470e3 100644 --- a/packages/opendesign/src/button/__docs__/index.en-US.md +++ b/packages/opendesign/src/button/__docs__/index.en-US.md @@ -8,6 +8,6 @@ button ## demo - - - + + + diff --git a/packages/opendesign/src/button/__docs__/index.zh-CN.md b/packages/opendesign/src/button/__docs__/index.zh-CN.md index 0cbfe7d5..d39c3e5e 100644 --- a/packages/opendesign/src/button/__docs__/index.zh-CN.md +++ b/packages/opendesign/src/button/__docs__/index.zh-CN.md @@ -8,6 +8,6 @@ sidebar: OButton 按钮 ## 示例 - - - + + + -- Gitee From b125265869529b2159e4c6bf85f18cdd2ab86208 Mon Sep 17 00:00:00 2001 From: sakurayinfei <970412446@qq.com> Date: Tue, 8 Jul 2025 09:45:44 +0800 Subject: [PATCH 5/8] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9docs=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=A0=87=E7=AD=BEmd=E8=AF=AD=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/docs/plugins/injectDemoDocs.ts | 47 +++++------ .../docs/src/components/CodeContainer.vue | 4 +- .../docs/src/components/DemoContainer.vue | 80 ++++++++++--------- .../button/__docs__/__case__/BtnIconSize.vue | 13 ++- .../button/__docs__/__case__/BtnLoading.vue | 13 ++- .../src/button/__docs__/__case__/BtnRound.vue | 12 ++- 6 files changed, 82 insertions(+), 87 deletions(-) diff --git a/packages/docs/plugins/injectDemoDocs.ts b/packages/docs/plugins/injectDemoDocs.ts index a1c5e9f5..6353bf72 100644 --- a/packages/docs/plugins/injectDemoDocs.ts +++ b/packages/docs/plugins/injectDemoDocs.ts @@ -1,7 +1,6 @@ import { type Plugin } from 'vite'; import { MarkdownItAsync } from 'markdown-it-async'; import { markdownItPlugins, markdownItOptions } from './markdown/common'; -import matter from 'gray-matter'; const parseVueQuery = (id: string) => { let [file, query] = id.split('?', 2); @@ -11,44 +10,38 @@ const parseVueQuery = (id: string) => { const queryExtension = query.match(/\.([a-zA-Z0-9]+)$/)?.[1]; query = queryExtension ? query.slice(0, query.length - queryExtension.length - 1) : query; const queryObj = query - ? query.split('&').reduce((prev, curr) => { - const [key, value] = curr.split('='); - prev[key] = value || true; - return prev; - }, {} as Record) + ? query.split('&').reduce( + (prev, curr) => { + const [key, value] = curr.split('='); + prev[key] = value || true; + return prev; + }, + {} as Record, + ) : {}; return { file, query: queryObj, queryExtension }; }; export function injectDemoDocs(): Plugin { const md = new MarkdownItAsync(markdownItOptions); markdownItPlugins.forEach((plugin) => md.use(plugin)); - const matterReg = /^---[\s\S]*?---/; return { name: 'portal:inject-demo-docs', transform(code, id) { const { query } = parseVueQuery(id); - if (!query.vue || query.type !== 'docs') { + if (!query.vue || query.type !== 'docs' || !id.endsWith('.md')) { return; } - code = code.trimStart(); - const matterMatch = code.match(matterReg); - const matterData = matterMatch ? matter(matterMatch[0]) : null; - const h1Reg = /^#\s+(.+)/gm; - const h1MatchList = Array.from(code.matchAll(h1Reg)); - const __docs: { - title: Record; - description: Record; - } = { title: {}, description: {} }; - if (matterData?.data?.title) { - __docs.title = matterData.data.title; - } - for (let i = 0; i < h1MatchList.length; i++) { - const h1Match = h1MatchList[i]; - const [text, title] = h1Match; - const nextIndex = i + 1 < h1MatchList.length ? h1MatchList[i + 1].index : Infinity; - const desRaw = code.slice(h1Match.index + text.length, nextIndex); - __docs.description[title] = md.render(desRaw); - } + const __docs: Record = {}; + const langSeparator = //gm; + const langMatchList = Array.from(code.matchAll(langSeparator)); + langMatchList.forEach((langMatch, matchIndex) => { + const lang = langMatch[1]; + const langCode = code.slice( + langMatch.index + langMatch[0].length, + matchIndex === langMatchList.length - 1 ? code.length : langMatchList[matchIndex + 1].index, + ); + __docs[lang] = md.render(langCode); + }); return `export default function (_sfc_main) { _sfc_main.__docs = ${JSON.stringify(__docs)}; }`; diff --git a/packages/docs/src/components/CodeContainer.vue b/packages/docs/src/components/CodeContainer.vue index b0e9b8ee..f4c1f69e 100644 --- a/packages/docs/src/components/CodeContainer.vue +++ b/packages/docs/src/components/CodeContainer.vue @@ -29,7 +29,7 @@ const copyCode = async () => {
{{ props.lang }}