;
22 | required: true;
23 | };
24 | };
25 | type __VLS_WithDefaults = {
26 | [K in keyof Pick
]: K extends keyof D ? __VLS_Prettify
: P[K];
29 | };
30 | type __VLS_Prettify = {
31 | [K in keyof T]: T[K];
32 | } & {};
33 |
--------------------------------------------------------------------------------
/packages/docs/vitepress/demo/Image/Custom.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
BlockSize:{{ blockSize }}
4 |
5 |
6 |
7 |
8 |
ColorCount:{{ colorCount }}
9 |
10 |
11 |
12 |
13 |
18 |
19 |
20 |
21 |
40 |
--------------------------------------------------------------------------------
/packages/docs/vitepress/components/overlay.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Overlay
3 | description: Overlay 组件文档
4 |
5 | next:
6 | link: /components/text
7 | text: Text 文本
8 |
9 | prev:
10 | link: /components/icon
11 | text: Icon 图标
12 | ---
13 |
14 | # Overlay 遮罩层
15 |
16 | 向指定元素添加遮罩层, 常用于模态框、抽屉等组件背景。
17 |
18 | ## 基础用法
19 |
20 | 通过 `mask` 属性控制遮罩层**样式上的**显示隐藏, 通过 `zIndex` 属性设置遮罩层层级
21 |
22 | 设置在 `px-overlay` 上的 `attrs` 会被拦截, 自定义类名列表可通过 `overlayClass` 添加
23 |
24 | :::warning
25 | `mask` 属性仅控制**遮罩层显示**, 仅属于样式上的区分, 对于插槽内容不做处理
26 |
27 | 页面滚动的锁定与 `px-overlay` 卸载挂载关联, 建议使用 `v-if` 控制实例创建销毁
28 | :::
29 |
30 | ::: preview
31 | demo-preview=../demo/Overlay/Basic.vue
32 | :::
33 |
34 | ## 自定义颜色
35 |
36 | 通过 `color` 设置默认遮罩层颜色
37 |
38 | :::tip
39 | `grid`, `preset` 等预设装饰性遮罩层优先级高于 `color` 自定义颜色
40 |
41 | 其颜色通过 `--px-grid-color-1` 等属性修改
42 | :::
43 |
44 | ::: preview
45 | demo-preview=../demo/Overlay/Color.vue
46 | :::
47 |
48 | ## 网格背景-默认
49 |
50 | 通过 `grid` 属性设置网格背景
51 |
52 | ::: preview
53 | demo-preview=../demo/Overlay/Grid.vue
54 | :::
55 |
56 | ## 网格背景-预设1
57 |
58 | 通过 `preset1` 预设网格背景-1, 同时可通过 `matte` 属性设置遮罩层 **哑光** 效果
59 |
60 | ::: preview
61 | demo-preview=../demo/Overlay/Preset1.vue
62 | :::
63 |
64 |
65 | ## API_Table插件测试
66 |
67 | :::danger
68 | 该插件基于 `markdown-it` 开发, 解析组件 `types.ts` 文件生成 API 表格, 测试中
69 | :::
70 |
71 | ::: api-table src=components/Overlay/types.ts
72 | :::
--------------------------------------------------------------------------------
/packages/docs/vitepress/components/pixelit.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Pixelit 图片像素化
3 | description: Pixelit 组件文档
4 |
5 | next:
6 | link: /components/pixelit
7 | text: Pixelit 图片像素化
8 |
9 | prev:
10 | link: /components/animationFrame
11 | text: AniamtionFrame 动画帧
12 | ---
13 |
14 | # Pixelit 图片像素化
15 |
16 | Pixelit 用于将图片进行像素风格渲染。支持自定义缩放比例、灰度处理、调色板替换等
17 |
18 | :::tip
19 | 对于复杂图片, 相较于 [PxImage](/components/image) 组件, Pixelit 组件性能更高, 但对于纯色图片处理较差, 请合理使用
20 | :::
21 |
22 | ## 基本用法
23 |
24 | 通过设置 `src` 属性指定原始图片地址, 组件会自动进行像素化处理
25 |
26 | :::preview
27 | demo-preview=../demo/Pixelit/Basic.vue
28 | :::
29 |
30 | ## 图像尺寸
31 |
32 | 通过设置 `width`、`height` 属性来设置组件的宽高, 默认为图片的宽高。
33 |
34 | 提供 `aspect-ratio` 属性来设置组件的缩放, 默认为 `1`
35 |
36 | :::preview
37 | demo-preview=../demo/Pixelit/Size.vue
38 | :::
39 |
40 | ## 灰度化
41 |
42 | 设置 `grayscale` 属性来对图片进行灰度处理
43 |
44 | :::preview
45 | demo-preview=../demo/Pixelit/Grayscale.vue
46 | :::
47 |
48 | ## 调色板替换
49 |
50 | 通过 `palette` 属性可设置自定义颜色调色板 (二维 RGB 数组), 对图像颜色进行替换
51 |
52 | :::preview
53 | demo-preview=../demo/Pixelit/Palette.vue
54 | :::
55 |
56 | ## 在线体验
57 |
58 | 提供在线演练场, 上传图片, 快速体验
59 |
60 | :::preview
61 | demo-preview=../demo/Pixelit/Playground.vue
62 | :::
63 |
64 | ## API_Table插件测试
65 |
66 | :::danger
67 | 该插件基于 `markdown-it` 开发, 解析组件 `types.ts` 文件生成 API 表格, 测试中
68 | :::
69 |
70 | ::: api-table src=components/PixelIt/types.ts
71 | :::
--------------------------------------------------------------------------------
/packages/docs/vitepress/demo/Tag/Effect.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Dark
4 |
10 | {{ item.label }}
11 |
12 |
13 |
14 |
Light
15 |
21 | {{ item.label }}
22 |
23 |
24 |
25 |
Plain
26 |
32 | {{ item.label }}
33 |
34 |
35 |
36 |
37 |
52 |
--------------------------------------------------------------------------------
/libs/vitepress-preview-component/hooks/use-namespaces.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * 钩子函数使用
3 | * const ns = useNameSpace();
4 | * ns.b() => block
5 | * ns.e(element) => block__element
6 | * ns.m(modifier) => block--modifier
7 | * ns.bem(element,modifier) => block__element--modifier
8 | */
9 |
10 | interface UseNameSpaceReturn {
11 | b: () => string
12 | e: (element: string) => string
13 | m: (modifier: string) => string
14 | bem: (_block?: string, element?: string, modifier?: string) => string
15 | }
16 |
17 | const defaultPrefix = 'vitepress-demo-preview'
18 |
19 | const generateName = (prefix: string, block?: string, element?: string, modifier?: string) => {
20 | let defaultName = block === '' ? `${prefix}` : `${prefix}-${block}`
21 | if (element) defaultName += `__${element}`
22 | if (modifier) defaultName += `--${modifier}`
23 | return defaultName
24 | }
25 |
26 | export const useNameSpace = (block: string = ''): UseNameSpaceReturn => {
27 | const b = () => generateName(defaultPrefix, block)
28 | const e = (element: string = '') => generateName(defaultPrefix, block, element)
29 | const m = (modifier: string = '') => generateName(defaultPrefix, block, '', modifier)
30 | const bem = (_block?: string, element?: string, modifier?: string) =>
31 | generateName(defaultPrefix, _block, element, modifier)
32 |
33 | return {
34 | b,
35 | e,
36 | m,
37 | bem
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/libs/vitepress-preview-component/messages/message-notice.vue:
--------------------------------------------------------------------------------
1 |
42 |
43 |
44 |
45 |
46 |
47 | {{ content }}
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------