neko-ui 2.6.7 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/CHANGELOG.md +24 -6
  2. package/es/@moneko/routes/index.d.ts +1 -1
  3. package/es/back-top/style.js +1 -3
  4. package/es/back-top/style.js.map +1 -1
  5. package/es/button/style.js.map +1 -1
  6. package/es/capture-screen/index.js +1 -1
  7. package/es/capture-screen/index.js.map +1 -1
  8. package/es/cron/begin-interval.d.ts +1 -0
  9. package/es/cron/index.js +1 -1
  10. package/es/cron/index.js.map +1 -1
  11. package/es/cron/item.d.ts +1 -0
  12. package/es/cron/period.d.ts +1 -0
  13. package/es/cron/some.d.ts +1 -0
  14. package/es/date-picker/index.js +1 -1
  15. package/es/date-picker/index.js.map +1 -1
  16. package/es/img/style.js +0 -2
  17. package/es/img/style.js.map +1 -1
  18. package/es/index.d.ts +1 -0
  19. package/es/index.js +1 -1
  20. package/es/index.js.map +1 -1
  21. package/es/md-style/index.js +6 -8
  22. package/es/md-style/index.js.map +1 -1
  23. package/es/modal/hooks.d.ts +5 -0
  24. package/es/modal/hooks.js +2 -0
  25. package/es/modal/hooks.js.map +1 -0
  26. package/es/modal/style.js +3 -4
  27. package/es/modal/style.js.map +1 -1
  28. package/es/notification/index.d.ts +59 -0
  29. package/es/notification/index.js +2 -0
  30. package/es/notification/index.js.map +1 -0
  31. package/es/notification/notification.d.ts +3 -0
  32. package/es/notification/notification.js +2 -0
  33. package/es/notification/notification.js.map +1 -0
  34. package/es/notification/queque.d.ts +46 -0
  35. package/es/notification/queque.js +2 -0
  36. package/es/notification/queque.js.map +1 -0
  37. package/es/notification/styles.d.ts +1 -0
  38. package/es/notification/styles.js +97 -0
  39. package/es/notification/styles.js.map +1 -0
  40. package/es/popover/index.js +1 -1
  41. package/es/popover/index.js.map +1 -1
  42. package/es/popover/style.js +1 -3
  43. package/es/popover/style.js.map +1 -1
  44. package/es/prism/css.js +1 -3
  45. package/es/prism/css.js.map +1 -1
  46. package/es/select/index.js +1 -1
  47. package/es/select/index.js.map +1 -1
  48. package/es/theme/index.js +10 -8
  49. package/es/theme/index.js.map +1 -1
  50. package/es/tree/index.d.ts +3 -99
  51. package/es/tree/index.js +1 -1
  52. package/es/tree/index.js.map +1 -1
  53. package/es/tree/register.d.ts +1 -0
  54. package/es/tree/register.js +2 -0
  55. package/es/tree/register.js.map +1 -0
  56. package/es/tree/type.d.ts +104 -0
  57. package/es/tree/type.js +2 -0
  58. package/es/tree/type.js.map +1 -0
  59. package/lib/@moneko/routes/index.d.ts +1 -1
  60. package/lib/back-top/style.js +1 -3
  61. package/lib/back-top/style.js.map +1 -1
  62. package/lib/button/style.js.map +1 -1
  63. package/lib/capture-screen/index.js +1 -1
  64. package/lib/capture-screen/index.js.map +1 -1
  65. package/lib/cron/begin-interval.d.ts +1 -0
  66. package/lib/cron/index.js +1 -1
  67. package/lib/cron/index.js.map +1 -1
  68. package/lib/cron/item.d.ts +1 -0
  69. package/lib/cron/period.d.ts +1 -0
  70. package/lib/cron/some.d.ts +1 -0
  71. package/lib/img/style.js +0 -2
  72. package/lib/img/style.js.map +1 -1
  73. package/lib/index.d.ts +1 -0
  74. package/lib/index.js +1 -1
  75. package/lib/index.js.map +1 -1
  76. package/lib/md-style/index.js +6 -8
  77. package/lib/md-style/index.js.map +1 -1
  78. package/lib/modal/hooks.d.ts +5 -0
  79. package/lib/modal/hooks.js +2 -0
  80. package/lib/modal/hooks.js.map +1 -0
  81. package/lib/modal/style.js +3 -4
  82. package/lib/modal/style.js.map +1 -1
  83. package/lib/notification/index.d.ts +59 -0
  84. package/lib/notification/index.js +2 -0
  85. package/lib/notification/index.js.map +1 -0
  86. package/lib/notification/notification.d.ts +3 -0
  87. package/lib/notification/notification.js +2 -0
  88. package/lib/notification/notification.js.map +1 -0
  89. package/lib/notification/queque.d.ts +46 -0
  90. package/lib/notification/queque.js +2 -0
  91. package/lib/notification/queque.js.map +1 -0
  92. package/lib/notification/styles.d.ts +1 -0
  93. package/lib/notification/styles.js +97 -0
  94. package/lib/notification/styles.js.map +1 -0
  95. package/lib/popover/index.js +1 -1
  96. package/lib/popover/index.js.map +1 -1
  97. package/lib/popover/style.js +1 -3
  98. package/lib/popover/style.js.map +1 -1
  99. package/lib/prism/css.js +1 -3
  100. package/lib/prism/css.js.map +1 -1
  101. package/lib/theme/index.js +8 -6
  102. package/lib/theme/index.js.map +1 -1
  103. package/lib/tree/index.d.ts +3 -99
  104. package/lib/tree/index.js +1 -1
  105. package/lib/tree/index.js.map +1 -1
  106. package/lib/tree/register.d.ts +1 -0
  107. package/lib/tree/register.js +2 -0
  108. package/lib/tree/register.js.map +1 -0
  109. package/lib/tree/type.d.ts +104 -0
  110. package/lib/tree/type.js +2 -0
  111. package/lib/tree/type.js.map +1 -0
  112. package/package.json +23 -21
  113. package/umd/index.js +1 -1
  114. package/es/@introduce/api.md +0 -158
  115. package/es/@introduce/getting-started/api.md +0 -34
  116. package/es/@introduce/html/doc.md +0 -45
  117. package/es/@introduce/react/doc.md +0 -49
  118. package/es/@introduce/solid/doc.md +0 -39
  119. package/es/@introduce/vue/doc.md +0 -54
  120. package/es/@moneko/cli/doc.md +0 -211
  121. package/es/@moneko/config/api.md +0 -213
  122. package/es/@moneko/locales/doc.md +0 -130
  123. package/es/@moneko/mock/api.md +0 -177
  124. package/es/@moneko/request/api.md +0 -31
  125. package/es/@moneko/routes/doc.md +0 -81
  126. package/es/@moneko/sso/api.md +0 -158
  127. package/lib/@introduce/api.md +0 -158
  128. package/lib/@introduce/getting-started/api.md +0 -34
  129. package/lib/@introduce/html/doc.md +0 -45
  130. package/lib/@introduce/react/doc.md +0 -49
  131. package/lib/@introduce/solid/doc.md +0 -39
  132. package/lib/@introduce/vue/doc.md +0 -54
  133. package/lib/@moneko/cli/doc.md +0 -211
  134. package/lib/@moneko/config/api.md +0 -213
  135. package/lib/@moneko/locales/doc.md +0 -130
  136. package/lib/@moneko/mock/api.md +0 -177
  137. package/lib/@moneko/request/api.md +0 -31
  138. package/lib/@moneko/routes/doc.md +0 -81
  139. package/lib/@moneko/sso/api.md +0 -158
@@ -1,158 +0,0 @@
1
- [TOC]
2
-
3
- # SSO React 共享状态对象
4
-
5
- > Shared Store Object `共享状态对象`
6
- > 通过 useSyncExternalStore 衔接的外部状态管理
7
-
8
- ## 安装依赖
9
-
10
- ```shell
11
- npm install shared-store-object -S
12
- # or
13
- yarn add shared-store-object -S
14
- ```
15
-
16
- ## 使用方式
17
-
18
- > 页面 render 后在任意位置使用, 可通过简单的方式进行创建、修改、回收(回收的对象将无法继续使用)
19
-
20
- ```jsx
21
- // 引入 或 import { sso } from '@moneko/react';
22
- import sso from 'shared-store-object';
23
-
24
- // 创建公共状态
25
- const like = sso({
26
- count: 0,
27
- inc() {
28
- store.count++;
29
- },
30
- });
31
-
32
- // 使用
33
- const App = () => {
34
- const { count, inc } = like;
35
-
36
- return (
37
- <div>
38
- <p>{count}</p>
39
- <button onClick={inc}>inc</button>
40
- {/* 直接修改 */}
41
- <button onClick={() => like.count++}>add</button>
42
- {/* 函数函数修改 */}
43
- <button onClick={() => like('count', (prev) => prev + 1)}>func</button>
44
- </div>
45
- );
46
- };
47
-
48
- // 也可以直接在 react 函数外操作
49
- like.count++;
50
- ```
51
-
52
- ## 计算属性
53
-
54
- > 在第二个入参中配置计算属性
55
-
56
- ```jsx
57
- // 使用
58
- const store = sso(
59
- {
60
- count: 0,
61
- inc() {
62
- store.count++;
63
- },
64
- },
65
- // 在这里配置计算属性
66
- {
67
- age() {
68
- return store.count * 2 + 1;
69
- },
70
- },
71
- );
72
-
73
- const App = () => {
74
- const { count, age } = store;
75
-
76
- return (
77
- <div>
78
- <p>count: {count}</p>
79
- <p>age: {age}</p>
80
- <button onClick={() => store.inc()}>add</button>
81
- </div>
82
- );
83
- };
84
- ```
85
-
86
- ## 回收
87
-
88
- > 当作 react 的 useState 来使用,并在组件卸载时手动回收
89
-
90
- ```jsx
91
- // 使用
92
- const App = () => {
93
- const store = useRef(sso({ count: 0 }));
94
- // 结构出 deps 对象
95
- const { count } = store.current;
96
-
97
- useEffect(() => {
98
- return () => {
99
- // 回收之后将无法继续使用store
100
- store.current();
101
- };
102
- }, []);
103
- return (
104
- <div>
105
- <p>{count}</p>
106
- <button onClick={() => store.count++}>add</button>
107
- </div>
108
- );
109
- };
110
- ```
111
-
112
- ## 配置项
113
-
114
- > 通过 `next` 参数传递的 `iteration` 函数决定是否需要进行迭代
115
-
116
- ### 全局
117
-
118
- > 所有的 sso 都将使用这个配置
119
-
120
- ```javascript
121
- sso.config({
122
- next(iteration, key, data) {
123
- console.log('global', key, data);
124
- // 不执行 iteration 函数数据将不会改变
125
- iteration();
126
- },
127
- });
128
- ```
129
-
130
- ### 私有
131
-
132
- > 为单独的对象设置私有的配置, 权限高于全局配置
133
-
134
- ```typescript
135
- const app = sso({
136
- count: 0,
137
- });
138
-
139
- app((): Partial<SSOConfig> => {
140
- return {
141
- next(iteration, key, data) {
142
- console.log('app', key, data);
143
- // 不执行 iteration 函数数据将不会改变
144
- iteration();
145
- },
146
- };
147
- });
148
- ```
149
-
150
- ## 批量更新
151
-
152
- > 当使用 React < 18 时使用批量更新。
153
-
154
- ```javascript
155
- sso.config({
156
- next: ReactDOM.unstable_batchedUpdates,
157
- });
158
- ```
@@ -1,158 +0,0 @@
1
- [TOC]
2
-
3
- # 组件开发说明
4
-
5
- !> 这里将会了解到如何开始一个新组件的开发、文档、案例demo
6
- !> 文档将会通过源码中的 `interface`、`enum` 及对应的 `jsdoc` 实时生成
7
-
8
- <div>
9
-
10
- ```treeview
11
- 项目根目录
12
- `-- components
13
- `-- hero
14
- |-- index.tsx 源码
15
- `-- README.mdx 生成文档路由 如果你不需要文档, 可以不用创建该文件
16
- ```
17
-
18
- </div>
19
-
20
- ## 初始
21
-
22
- !> 下面我们开始开发一个名为 hero 的组件
23
- !> 在项目根目录/components 下新建一个组件名命名的文件夹, 用于存放 hero 源码
24
-
25
- ## hero
26
-
27
- 在 `components` 中新建 `hero` 文件夹
28
-
29
- ### index.tsx
30
-
31
- 在 `hero` 中新建文件: `index.tsx`
32
-
33
- ```tsx
34
- // 组件源码
35
-
36
- /** API
37
- * @since 1.0.0
38
- */
39
- export interface HeroProps {
40
- /** 自定义类名 */
41
- class?: string;
42
- /** 描述文字 */
43
- label: string;
44
- }
45
-
46
- function Hero(props: HeroProps) {
47
- return <div class={props.class}>{props.label}</div>;
48
- }
49
-
50
- export default Hero;
51
- ```
52
-
53
- 在 `components/index.ts` 文件中导出
54
-
55
- ```js
56
- export { default as Hero, type HeroProps } from './hero';
57
- ```
58
-
59
- #### jsdoc
60
-
61
- | 属性 | 描述 |
62
- | ------- | --------------------------------------------------------------- |
63
- | @since | 该API在此版本及之后生效 |
64
- | @author | 作者, 一般填写 Github 用户名, 或者邮件地址 |
65
- | @ignore | 不生成的列, 比如不需要 `必要` 这列单元格, 则 `@ignore optional` |
66
-
67
- ### README.mdx
68
-
69
- 文档路由, 用来生成对应的文档地址及导航菜单
70
- 在 `hero` 中新建文件: `README.mdx`
71
-
72
- ```md
73
- ---
74
- title: 文档组件菜单标题
75
- subtitle: 文档组件菜单副标题
76
- type: 将文档进行分组
77
- icon: 🔘
78
- order: 0 # 顺序, 这部分为 yaml 语法
79
- ---
80
-
81
- ### 这是组件文档页面
82
-
83
- > 描述
84
- ```
85
-
86
- ### examples
87
-
88
- 在 `hero` 中新建文件夹: `examples`
89
-
90
- !> examples 下的 \*.md 文件将作为案例代码进行渲染
91
-
92
- #### demo1.md
93
-
94
- 在 `examples` 中新建文件: `demo1.md`
95
-
96
- ```md
97
- ---
98
- title: 这里描述代码块的标题, 比如 "最简单的使用方式"
99
- description: 这里对代码块进行详细的说明, 每一个代码块都将作为一个完整的案例进行展示,并且可以直接在页面上修改实时渲染
100
- order: 1 # 排序
101
- ---
102
-
103
- <Hero label="label" />
104
- ```
105
-
106
- ## 注意事项
107
-
108
- ### cssModule
109
-
110
- - **\*.global.less 结尾命名的文件不会启用 cssModule**
111
-
112
- - **cssModule 使用时,样式文件中以 - 连接单词,代码中使用时应通过驼峰导入,例如**
113
-
114
- ```less
115
- // ./index.less
116
- .user-name {
117
- color: #000;
118
- background-color: #fff;
119
- }
120
- ```
121
-
122
- ```jsx
123
- import styles from './index.less';
124
-
125
- const Demo = () => {
126
- return <div class={styles.userName}>{styles.userName}</div>;
127
- };
128
-
129
- export default Demo;
130
- ```
131
-
132
- ### 文档
133
-
134
- 文档地址根据 components 下的 `README.mdx` 文件根据所在目录生成
135
-
136
- #### gfm
137
-
138
- - **README.mdx 中默认不支持 gfm, 比如 table,如需要如需要使用可通过以下方式导入外部.md 文件在 .mdx 文件中使用**
139
-
140
- ```jsx
141
- import readme from './readme.md?raw';
142
-
143
- <n-md text={readme} />;
144
- ```
145
-
146
- 或者安装 [**remark-gfm**](https://www.npmjs.com/package/remark-gfm), 并在 `config/index.ts` 中配置, 这会导致 bundle 体积变大
147
-
148
- ```js
149
- import remarkGfm from 'remark-gfm';
150
-
151
- export default {
152
- mdx: {
153
- remarkPlugins: [remarkGfm],
154
- },
155
- };
156
- ```
157
-
158
- !> 更多 api 请查看 [neko-ui](https://monako97.github.io/neko-ui) 组件
@@ -1,34 +0,0 @@
1
- [TOC]
2
-
3
- # 快速开始
4
-
5
- > 这是一个基于 SolidJS、Typescript 开发的适用于任何技术栈的 WebComponents 组件库, 你可以在其他任意 web 框架中像 `div` 一样使用它
6
-
7
- ## 安装
8
-
9
- ```shell
10
- npm install neko-ui -S
11
- # or
12
- yarn add neko-ui -S
13
- ```
14
-
15
- ## 使用
16
-
17
- ```jsx
18
- import 'neko-ui'; // 在使用前引入一次就行, 建议在入口文件进行
19
-
20
- function View() {
21
- return <n-input />;
22
- }
23
- ```
24
-
25
- ## 直接在原生html5、js中使用
26
-
27
- ```html
28
- <!-- 引入 CDN 资源 -->
29
- <script src="https://cdn.jsdelivr.net/npm/neko-ui/lib/index.js"></script>
30
- <!-- 使用 -->
31
- <body>
32
- <n-input></n-input>
33
- </body>
34
- ```
@@ -1,45 +0,0 @@
1
- [TOC]
2
-
3
- # 在 原生 js 和 html 中使用, 通过 `addEventListener` 进行事件绑定
4
-
5
- 当案例中的代码为
6
-
7
- ```jsx
8
- <n-select
9
- label="无后缀,无前缀"
10
- options={[
11
- { label: 'A', value: 'A' },
12
- { label: 'B', value: 'B' },
13
- ]}
14
- onChange={(e) => {
15
- console.log(e.detail);
16
- }}
17
- />
18
- ```
19
-
20
- ## 原生 HTML 中对应的写法为
21
-
22
- ```html
23
- <!doctype html>
24
- <html lang="en">
25
- <head>
26
- <meta charset="UTF-8" />
27
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
28
- <title>Document</title>
29
- </head>
30
- <body>
31
- <n-select id="select" label="无后缀,无前缀"></n-select>
32
- </body>
33
- <script>
34
- const select = document.querySelector('#select');
35
-
36
- select.options = [
37
- { label: 'A', value: 'A' },
38
- { label: 'B', value: 'B' },
39
- ];
40
- select.addEventListener('change', function (e) {
41
- console.log(e.detail);
42
- });
43
- </script>
44
- </html>
45
- ```
@@ -1,49 +0,0 @@
1
- [TOC]
2
-
3
- # 在 React 中使用, 通过 `addEventListener` 进行事件绑定
4
-
5
- 当案例中的代码为
6
-
7
- ```jsx
8
- <n-select
9
- label="无后缀,无前缀"
10
- options={[
11
- { label: 'A', value: 'A' },
12
- { label: 'B', value: 'B' },
13
- ]}
14
- onChange={(e) => {
15
- console.log(e.detail);
16
- }}
17
- />
18
- ```
19
-
20
- ## React中对应的写法为
21
-
22
- ```jsx
23
- import { useEffect, useRef } from 'react';
24
- import type { SelectElement } from 'neko-ui';
25
-
26
- function Demo() {
27
- const el = useRef<SelectElement>(null);
28
-
29
- useEffect(() => {
30
- if (el.current) {
31
- // 设置对象、数组类型的属性
32
- el.current.options = [
33
- { label: 'A', value: 'A' },
34
- { label: 'B', value: 'B' },
35
- ];
36
- // 绑定事件
37
- el.current?.addEventListener('change', (e) => {
38
- const [val, item] = e.detail;
39
-
40
- console.log(val, item);
41
- });
42
- }
43
- }, []);
44
- // 非函数、对象、数组类型的属性可以直接在jsx标签中设置
45
- return <n-select ref={el} label="无后缀,无前缀" />;
46
- }
47
-
48
- export default Demo;
49
- ```
@@ -1,39 +0,0 @@
1
- [TOC]
2
-
3
- # 在 Solid.js 中可直接使用
4
-
5
- 当案例中的代码为
6
-
7
- ```jsx
8
- <n-select
9
- label="无后缀,无前缀"
10
- options={[
11
- { label: 'A', value: 'A' },
12
- { label: 'B', value: 'B' },
13
- ]}
14
- onChange={(e) => {
15
- console.log(e.detail);
16
- }}
17
- />
18
- ```
19
-
20
- ## Solid.js 中对应的写法为
21
-
22
- ```tsx
23
- function Demo() {
24
- return (
25
- <n-select
26
- label="无后缀,无前缀"
27
- options={[
28
- { label: 'A', value: 'A' },
29
- { label: 'B', value: 'B' },
30
- ]}
31
- onChange={(e) => {
32
- console.log(e.detail);
33
- }}
34
- />
35
- );
36
- }
37
-
38
- export default Demo;
39
- ```
@@ -1,54 +0,0 @@
1
- [TOC]
2
-
3
- # 在 Vue 中使用
4
-
5
- 当案例中的代码为
6
-
7
- ```jsx
8
- <n-input onChange={(e) => console.log(e)} />
9
- ```
10
-
11
- 在 `Vue` 中, 事件绑定需要将 onXxx 替换为 @xxx
12
-
13
- ## 忽略自定义元素
14
-
15
- 你需要先在入口处(常见为`app.js`)添加这段代码
16
-
17
- ### Vue 2
18
-
19
- ```js
20
- Vue.config.ignoredElements = [
21
- // 忽略所有“ion-”开头的元素 (仅在 vue 2.5+ 支持)
22
- /^n-[a-z]/,
23
- // 或指定名称, 忽略 n-input 元素
24
- 'n-input',
25
- ];
26
- ```
27
-
28
- ### Vue 3
29
-
30
- ```js
31
- const app = Vue.createApp({});
32
-
33
- app.config.isCustomElement = (tag) => /^n-[a-z]/.test(tag);
34
- ```
35
-
36
- ## Vue 中对应的写法为
37
-
38
- ```html
39
- <template>
40
- <n-input @change="handleChange" />
41
- </template>
42
- <script>
43
- export default {
44
- data() {
45
- return {};
46
- },
47
- methods: {
48
- handleChange(e) {
49
- console.log(e.detail);
50
- },
51
- },
52
- };
53
- </script>
54
- ```